Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,3 +42,8 @@ jobs:

- name: Run tox - deployment-cli-tools
run: tox -c tools/deployment-cli-tools

- name: Test Argo components
run: |
pip install PyYAML
python -m unittest discover -s applications/argo/tests -v
54 changes: 41 additions & 13 deletions applications/argo/deploy/README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,41 @@
# Argo sub chart

TODO change this to a chart dependency whenever this is fixed: https://github.com/argoproj/argo-helm/issues/521

To use as add dependency, add the following to Chart.yaml
```
dependencies:
- name: argo
version: ">=0.14.0"
repository: https://argoproj.github.io/argo-helm
condition: true
alias: apps-argo
```
# Argo Workflows

CloudHarness vendors the unmodified official [ArgoProj Helm chart 2.0.14](https://github.com/argoproj/argo-helm/releases/tag/argo-workflows-2.0.14),
which deploys Argo Workflows **v4.1.6** with the Emissary executor.
The Python client is pinned separately to `argo-workflows==6.7.18`.

CloudHarness integration lives outside the upstream chart: the `argo-server`
Service address, `argo-workflows` workflow service account, namespace scope,
server authentication mode and `POD_NAMES=v1` naming defaults are retained.
Explicit `controller.extraEnv` and `server.extraEnv` settings take precedence
over the naming default. The controller retains Secret `get` access for image
entrypoint discovery; existing CloudHarness service-account bindings are unchanged.

## Deployment

Use the normal CloudHarness generation and Helm deployment flow. The upstream
chart's pre-install/pre-upgrade hook installs and updates the full CRDs; a separate
`kubectl apply` is unnecessary with the default settings. Keep the hook enabled
unless CRDs are managed separately. Helm rendering alone does not execute hooks.

Let active PNS workflows finish before switching to Emissary. Remove obsolete
executor settings and old component image pins from consuming deployment values,
or update controller, server and executor together. Image overrides remain
available under `argo-workflows.controller.image`, `server.image` and
`executor.image`.

## Tasks and progress

Existing CloudHarness operations and tasks continue to use the Argo REST API.
Emissary runs the task command inside its main container; when `command` is
omitted, Argo resolves the image entrypoint. Private registry credentials must be
available through workflow or service-account image-pull Secrets.

Self-reported progress is optional. To use it, write a `completed/total` ratio,
for example `echo 3/10 > "$ARGO_PROGRESS_FILE"`, from the task.
Argo reads the file approximately every three seconds and normally reports
updates once a minute. The standard Workflow API exposes the result in
`status.nodes[...].progress`; polling and reconciliation can add latency.

See [compatibility checks](../tests/README.md) for the regression and isolated
Kubernetes tests, and the upstream [upgrade notes](https://argo-workflows.readthedocs.io/en/latest/upgrading/).
1 change: 1 addition & 0 deletions applications/argo/deploy/charts/.helmignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,4 @@
.idea/
*.tmproj
ci/
*.gotmpl
18 changes: 10 additions & 8 deletions applications/argo/deploy/charts/Chart.yaml
Original file line number Diff line number Diff line change
@@ -1,18 +1,20 @@
annotations:
artifacthub.io/changes: |
- "[Added]: Also test with default values"
- kind: changed
description: Bump argo-workflows to v4.1.6
artifacthub.io/signKey: |
fingerprint: 2B8F22F57260EFA67BE1C5824B11F800CD9D2252
url: https://argoproj.github.io/argo-helm/pgp_keys.asc
apiVersion: v2
appVersion: v3.1.15
appVersion: v4.1.6
description: A Helm chart for Argo Workflows
home: https://github.com/argoproj/argo-helm
icon: https://raw.githubusercontent.com/argoproj/argo-workflows/master/docs/assets/argo.png
icon: https://argo-workflows.readthedocs.io/en/stable/assets/logo.png
maintainers:
- name: alexec
- name: alexmt
- name: jessesuen
- name: benjaminws
- name: argoproj
url: https://argoproj.github.io/
name: argo-workflows
sources:
- https://github.com/argoproj/argo-workflows
type: application
version: 0.7.1
version: 2.0.14
591 changes: 582 additions & 9 deletions applications/argo/deploy/charts/README.md

Large diffs are not rendered by default.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: clusterworkflowtemplates.argoproj.io
annotations:
helm.sh/resource-policy: keep
spec:
group: argoproj.io
names:
kind: ClusterWorkflowTemplate
listKind: ClusterWorkflowTemplateList
plural: clusterworkflowtemplates
shortNames:
- clusterwftmpl
- cwft
singular: clusterworkflowtemplate
scope: Cluster
versions:
- name: v1alpha1
schema:
openAPIV3Schema:
description: ClusterWorkflowTemplate is the definition of a workflow template
resource in cluster scope
properties:
apiVersion:
description: |-
APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string
kind:
description: |-
Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
metadata:
type: object
spec:
type: object
x-kubernetes-map-type: atomic
x-kubernetes-preserve-unknown-fields: true
required:
- metadata
- spec
type: object
served: true
storage: true
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: cronworkflows.argoproj.io
annotations:
helm.sh/resource-policy: keep
spec:
group: argoproj.io
names:
kind: CronWorkflow
listKind: CronWorkflowList
plural: cronworkflows
shortNames:
- cwf
- cronwf
singular: cronworkflow
scope: Namespaced
versions:
- name: v1alpha1
schema:
openAPIV3Schema:
description: CronWorkflow is the definition of a scheduled workflow resource
properties:
apiVersion:
description: |-
APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string
kind:
description: |-
Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
metadata:
type: object
spec:
type: object
x-kubernetes-map-type: atomic
x-kubernetes-preserve-unknown-fields: true
status:
type: object
x-kubernetes-map-type: atomic
x-kubernetes-preserve-unknown-fields: true
required:
- metadata
- spec
type: object
served: true
storage: true
Loading
Loading