Init argo workflows (#3)
* codefresh initial * add gh * add docs * enable crds on install test * enable crds on install test * enable crds on install test
This commit is contained in:
parent
f73413561a
commit
59e264f369
8 changed files with 89 additions and 46 deletions
90
.github/workflows/lint-and-test.yml
vendored
90
.github/workflows/lint-and-test.yml
vendored
|
@ -1,16 +1,12 @@
|
||||||
name: Chart Publish
|
name: Linting and Testing
|
||||||
on:
|
|
||||||
push:
|
on: pull_request
|
||||||
branches:
|
|
||||||
- argo-workflows
|
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
publish:
|
chart-test:
|
||||||
permissions:
|
|
||||||
contents: write # for helm/chart-releaser-action to push chart release and create a release
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
|
@ -18,28 +14,64 @@ jobs:
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
|
|
||||||
- name: Install Helm
|
- name: Set up Helm
|
||||||
uses: azure/setup-helm@v3
|
uses: azure/setup-helm@v3
|
||||||
with:
|
with:
|
||||||
version: v3.10.1 # Also update in lint-and-test.yaml
|
version: v3.10.1 # Also update in publish.yaml
|
||||||
|
|
||||||
- name: Add dependency chart repos
|
- name: Set up python
|
||||||
run: |
|
uses: actions/setup-python@v4
|
||||||
helm repo add dandydeveloper https://dandydeveloper.github.io/charts/
|
|
||||||
- name: Configure Git
|
|
||||||
run: |
|
|
||||||
git config user.name "$GITHUB_ACTOR"
|
|
||||||
git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
|
|
||||||
- name: Package chart
|
|
||||||
run: |
|
|
||||||
rm -rf .cr-release-packages
|
|
||||||
mkdir .cr-release-packages
|
|
||||||
helm package charts/argo-workflows -u -d .cr-release-packages/
|
|
||||||
|
|
||||||
- name: Run chart-releaser
|
|
||||||
uses: helm/chart-releaser-action@main
|
|
||||||
with:
|
with:
|
||||||
config: "./.github/configs/cr.yaml"
|
python-version: 3.9
|
||||||
skip_packaging: true
|
|
||||||
env:
|
- name: Setup Chart Linting
|
||||||
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
|
id: lint
|
||||||
|
uses: helm/chart-testing-action@v2.3.0
|
||||||
|
with:
|
||||||
|
# Note: Also update in scripts/lint.sh
|
||||||
|
version: v3.7.0
|
||||||
|
|
||||||
|
- name: List changed charts
|
||||||
|
id: list-changed
|
||||||
|
run: |
|
||||||
|
## If executed with debug this won't work anymore.
|
||||||
|
changed=$(ct --config ./.github/configs/ct-lint.yaml --target-branch ${{ github.base_ref }} list-changed)
|
||||||
|
charts=$(echo "$changed" | tr '\n' ' ' | xargs)
|
||||||
|
if [[ -n "$changed" ]]; then
|
||||||
|
echo "::set-output name=changed::true"
|
||||||
|
echo "::set-output name=changed_charts::$charts"
|
||||||
|
fi
|
||||||
|
- name: Run chart-testing (lint)
|
||||||
|
run: ct lint --debug --config ./.github/configs/ct-lint.yaml --target-branch ${{ github.base_ref }} --lint-conf ./.github/configs/lintconf.yaml
|
||||||
|
|
||||||
|
- name: Run docs-testing (helm-docs)
|
||||||
|
id: helm-docs
|
||||||
|
run: |
|
||||||
|
./scripts/helm-docs.sh
|
||||||
|
if [[ $(git diff --stat) != '' ]]; then
|
||||||
|
echo -e '\033[0;31mDocumentation outdated!\033[0m ❌'
|
||||||
|
git diff --color
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
echo -e '\033[0;32mDocumentation up to date\033[0m ✔'
|
||||||
|
fi
|
||||||
|
- name: Create kind cluster
|
||||||
|
uses: helm/kind-action@v1.4.0
|
||||||
|
if: steps.list-changed.outputs.changed == 'true'
|
||||||
|
with:
|
||||||
|
config: .github/configs/kind-config.yaml
|
||||||
|
|
||||||
|
- name: Skip HPA tests of ArgoCD
|
||||||
|
if: contains(steps.list-changed.outputs.changed_charts, 'argo-cd')
|
||||||
|
run: |
|
||||||
|
## Metrics API not available in kind cluster
|
||||||
|
rm charts/argo-cd/ci/ha-autoscaling-values.yaml
|
||||||
|
- name: Create an external redis for ArgoCD externalRedis feature
|
||||||
|
if: contains(steps.list-changed.outputs.changed_charts, 'argo-cd')
|
||||||
|
run: |
|
||||||
|
kubectl create namespace redis
|
||||||
|
helm repo add bitnami https://charts.bitnami.com/bitnami
|
||||||
|
helm install redis bitnami/redis --wait --namespace redis --set auth.password=argocd --set architecture=standalone
|
||||||
|
- name: Run chart-testing (install)
|
||||||
|
run: ct install --config ./.github/configs/ct-install.yaml --target-branch ${{ github.base_ref }}
|
||||||
|
if: steps.list-changed.outputs.changed == 'true'
|
|
@ -1,9 +1,9 @@
|
||||||
apiVersion: v2
|
apiVersion: v2
|
||||||
appVersion: v3.4.4
|
appVersion: v3.4-cap-CR-15902
|
||||||
name: argo-workflows
|
name: argo-workflows
|
||||||
description: A Helm chart for Argo Workflows
|
description: A Helm chart for Argo Workflows
|
||||||
type: application
|
type: application
|
||||||
version: 0.22.8-0-cf-init
|
version: 0.22.8-1-cf-init
|
||||||
icon: https://raw.githubusercontent.com/argoproj/argo-workflows/master/docs/assets/argo.png
|
icon: https://raw.githubusercontent.com/argoproj/argo-workflows/master/docs/assets/argo.png
|
||||||
home: https://github.com/argoproj/argo-helm
|
home: https://github.com/argoproj/argo-helm
|
||||||
sources:
|
sources:
|
||||||
|
|
|
@ -46,7 +46,7 @@ Fields to note:
|
||||||
| Key | Type | Default | Description |
|
| Key | Type | Default | Description |
|
||||||
|-----|------|---------|-------------|
|
|-----|------|---------|-------------|
|
||||||
| crds.annotations | object | `{}` | Annotations to be added to all CRDs |
|
| crds.annotations | object | `{}` | Annotations to be added to all CRDs |
|
||||||
| crds.install | bool | `true` | Install and upgrade CRDs |
|
| crds.install | bool | `false` | Install and upgrade CRDs |
|
||||||
| crds.keep | bool | `true` | Keep CRDs on chart uninstall |
|
| crds.keep | bool | `true` | Keep CRDs on chart uninstall |
|
||||||
| createAggregateRoles | bool | `true` | Create clusterroles that extend existing clusterroles to interact with argo-cd crds |
|
| createAggregateRoles | bool | `true` | Create clusterroles that extend existing clusterroles to interact with argo-cd crds |
|
||||||
| emissary.images | list | `[]` | The command/args for each image on workflow, needed when the command is not specified and the emissary executor is used. |
|
| emissary.images | list | `[]` | The command/args for each image on workflow, needed when the command is not specified and the emissary executor is used. |
|
||||||
|
@ -81,7 +81,7 @@ Fields to note:
|
||||||
| controller.extraContainers | list | `[]` | Extra containers to be added to the controller deployment |
|
| controller.extraContainers | list | `[]` | Extra containers to be added to the controller deployment |
|
||||||
| controller.extraEnv | list | `[]` | Extra environment variables to provide to the controller container |
|
| controller.extraEnv | list | `[]` | Extra environment variables to provide to the controller container |
|
||||||
| controller.image.registry | string | `"quay.io"` | Registry to use for the controller |
|
| controller.image.registry | string | `"quay.io"` | Registry to use for the controller |
|
||||||
| controller.image.repository | string | `"argoproj/workflow-controller"` | Registry to use for the controller |
|
| controller.image.repository | string | `"codefresh/workflow-controller"` | Registry to use for the controller |
|
||||||
| controller.image.tag | string | `""` | Image tag for the workflow controller. Defaults to `.Values.images.tag`. |
|
| controller.image.tag | string | `""` | Image tag for the workflow controller. Defaults to `.Values.images.tag`. |
|
||||||
| controller.initialDelay | string | `nil` | Resolves ongoing, uncommon AWS EKS bug: https://github.com/argoproj/argo-workflows/pull/4224 |
|
| controller.initialDelay | string | `nil` | Resolves ongoing, uncommon AWS EKS bug: https://github.com/argoproj/argo-workflows/pull/4224 |
|
||||||
| controller.instanceID.enabled | bool | `false` | Configures the controller to filter workflow submissions to only those which have a matching instanceID attribute. |
|
| controller.instanceID.enabled | bool | `false` | Configures the controller to filter workflow submissions to only those which have a matching instanceID attribute. |
|
||||||
|
@ -145,7 +145,7 @@ Fields to note:
|
||||||
| controller.topologySpreadConstraints | list | `[]` | Assign custom [TopologySpreadConstraints] rules to the workflow controller |
|
| controller.topologySpreadConstraints | list | `[]` | Assign custom [TopologySpreadConstraints] rules to the workflow controller |
|
||||||
| controller.volumeMounts | list | `[]` | Additional volume mounts to the controller main container |
|
| controller.volumeMounts | list | `[]` | Additional volume mounts to the controller main container |
|
||||||
| controller.volumes | list | `[]` | Additional volumes to the controller pod |
|
| controller.volumes | list | `[]` | Additional volumes to the controller pod |
|
||||||
| controller.workflowDefaults | object | `{}` | Default values that will apply to all Workflows from this controller, unless overridden on the Workflow-level. Only valid for 2.7+ |
|
| controller.workflowDefaults | object | `{"spec":{"podGC":{"labelSelector":{"matchLabels":{"should-be-deleted":"true"}},"strategy":"OnWorkflowCompletion"},"ttlStrategy":{"secondsAfterCompletion":86400,"secondsAfterFailure":86400,"secondsAfterSuccess":86400}}}` | Default values that will apply to all Workflows from this controller, unless overridden on the Workflow-level. Only valid for 2.7+ |
|
||||||
| controller.workflowNamespaces | list | `["default"]` | Specify all namespaces where this workflow controller instance will manage workflows. This controls where the service account and RBAC resources will be created. Only valid when singleNamespace is false. |
|
| controller.workflowNamespaces | list | `["default"]` | Specify all namespaces where this workflow controller instance will manage workflows. This controls where the service account and RBAC resources will be created. Only valid when singleNamespace is false. |
|
||||||
| controller.workflowRestrictions | object | `{}` | Restricts the Workflows that the controller will process. Only valid for 2.9+ |
|
| controller.workflowRestrictions | object | `{}` | Restricts the Workflows that the controller will process. Only valid for 2.9+ |
|
||||||
| controller.workflowWorkers | string | `nil` | Number of workflow workers |
|
| controller.workflowWorkers | string | `nil` | Number of workflow workers |
|
||||||
|
@ -167,7 +167,7 @@ Fields to note:
|
||||||
| executor.env | list | `[]` | Adds environment variables for the executor. |
|
| executor.env | list | `[]` | Adds environment variables for the executor. |
|
||||||
| executor.image.pullPolicy | string | `""` | Image PullPolicy to use for the Workflow Executors. Defaults to `.Values.images.pullPolicy`. |
|
| executor.image.pullPolicy | string | `""` | Image PullPolicy to use for the Workflow Executors. Defaults to `.Values.images.pullPolicy`. |
|
||||||
| executor.image.registry | string | `"quay.io"` | Registry to use for the Workflow Executors |
|
| executor.image.registry | string | `"quay.io"` | Registry to use for the Workflow Executors |
|
||||||
| executor.image.repository | string | `"argoproj/argoexec"` | Repository to use for the Workflow Executors |
|
| executor.image.repository | string | `"codefresh/argoexec"` | Repository to use for the Workflow Executors |
|
||||||
| executor.image.tag | string | `""` | Image tag for the workflow executor. Defaults to `.Values.images.tag`. |
|
| executor.image.tag | string | `""` | Image tag for the workflow executor. Defaults to `.Values.images.tag`. |
|
||||||
| executor.resources | object | `{}` | Resource limits and requests for the Workflow Executors |
|
| executor.resources | object | `{}` | Resource limits and requests for the Workflow Executors |
|
||||||
| executor.securityContext | object | `{}` | sets security context for the executor container |
|
| executor.securityContext | object | `{}` | sets security context for the executor container |
|
||||||
|
@ -182,11 +182,11 @@ Fields to note:
|
||||||
| server.clusterWorkflowTemplates.enabled | bool | `true` | Create a ClusterRole and CRB for the server to access ClusterWorkflowTemplates. |
|
| server.clusterWorkflowTemplates.enabled | bool | `true` | Create a ClusterRole and CRB for the server to access ClusterWorkflowTemplates. |
|
||||||
| server.deploymentAnnotations | object | `{}` | optional map of annotations to be applied to the ui Deployment |
|
| server.deploymentAnnotations | object | `{}` | optional map of annotations to be applied to the ui Deployment |
|
||||||
| server.enabled | bool | `true` | Deploy the Argo Server |
|
| server.enabled | bool | `true` | Deploy the Argo Server |
|
||||||
| server.extraArgs | list | `[]` | Extra arguments to provide to the Argo server binary, such as for disabling authentication. |
|
| server.extraArgs | list | `["--auth-mode=server"]` | Extra arguments to provide to the Argo server binary, such as for disabling authentication. |
|
||||||
| server.extraContainers | list | `[]` | Extra containers to be added to the server deployment |
|
| server.extraContainers | list | `[]` | Extra containers to be added to the server deployment |
|
||||||
| server.extraEnv | list | `[]` | Extra environment variables to provide to the argo-server container |
|
| server.extraEnv | list | `[]` | Extra environment variables to provide to the argo-server container |
|
||||||
| server.image.registry | string | `"quay.io"` | Registry to use for the server |
|
| server.image.registry | string | `"quay.io"` | Registry to use for the server |
|
||||||
| server.image.repository | string | `"argoproj/argocli"` | Repository to use for the server |
|
| server.image.repository | string | `"codefresh/argocli"` | Repository to use for the server |
|
||||||
| server.image.tag | string | `""` | Image tag for the Argo Workflows server. Defaults to `.Values.images.tag`. |
|
| server.image.tag | string | `""` | Image tag for the Argo Workflows server. Defaults to `.Values.images.tag`. |
|
||||||
| server.ingress.annotations | object | `{}` | Additional ingress annotations |
|
| server.ingress.annotations | object | `{}` | Additional ingress annotations |
|
||||||
| server.ingress.enabled | bool | `false` | Enable an ingress resource |
|
| server.ingress.enabled | bool | `false` | Enable an ingress resource |
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
# Test with default values
|
# Test with default values
|
||||||
crds:
|
crds:
|
||||||
|
install: true
|
||||||
keep: false
|
keep: false
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
crds:
|
crds:
|
||||||
|
install: true
|
||||||
keep: false
|
keep: false
|
||||||
|
|
||||||
server:
|
server:
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
crds:
|
crds:
|
||||||
|
install: true
|
||||||
keep: false
|
keep: false
|
||||||
|
|
||||||
controller:
|
controller:
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
crds:
|
crds:
|
||||||
|
install: true
|
||||||
keep: false
|
keep: false
|
||||||
|
|
||||||
workflow:
|
workflow:
|
||||||
|
|
|
@ -10,7 +10,7 @@ images:
|
||||||
## Custom resource configuration
|
## Custom resource configuration
|
||||||
crds:
|
crds:
|
||||||
# -- Install and upgrade CRDs
|
# -- Install and upgrade CRDs
|
||||||
install: true
|
install: false
|
||||||
# -- Keep CRDs on chart uninstall
|
# -- Keep CRDs on chart uninstall
|
||||||
keep: true
|
keep: true
|
||||||
# -- Annotations to be added to all CRDs
|
# -- Annotations to be added to all CRDs
|
||||||
|
@ -57,7 +57,7 @@ controller:
|
||||||
# -- Registry to use for the controller
|
# -- Registry to use for the controller
|
||||||
registry: quay.io
|
registry: quay.io
|
||||||
# -- Registry to use for the controller
|
# -- Registry to use for the controller
|
||||||
repository: argoproj/workflow-controller
|
repository: codefresh/workflow-controller
|
||||||
# -- Image tag for the workflow controller. Defaults to `.Values.images.tag`.
|
# -- Image tag for the workflow controller. Defaults to `.Values.images.tag`.
|
||||||
tag: ""
|
tag: ""
|
||||||
# -- parallelism dictates how many workflows can be running at the same time
|
# -- parallelism dictates how many workflows can be running at the same time
|
||||||
|
@ -140,10 +140,17 @@ controller:
|
||||||
# -- Default values that will apply to all Workflows from this controller, unless overridden on the Workflow-level.
|
# -- Default values that will apply to all Workflows from this controller, unless overridden on the Workflow-level.
|
||||||
# Only valid for 2.7+
|
# Only valid for 2.7+
|
||||||
## See more: https://argoproj.github.io/argo-workflows/default-workflow-specs/
|
## See more: https://argoproj.github.io/argo-workflows/default-workflow-specs/
|
||||||
workflowDefaults: {}
|
workflowDefaults:
|
||||||
# spec:
|
spec:
|
||||||
# ttlStrategy:
|
ttlStrategy:
|
||||||
# secondsAfterCompletion: 84600
|
secondsAfterCompletion: 86400
|
||||||
|
secondsAfterSuccess: 86400
|
||||||
|
secondsAfterFailure: 86400
|
||||||
|
podGC:
|
||||||
|
strategy: OnWorkflowCompletion
|
||||||
|
labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
should-be-deleted: "true"
|
||||||
|
|
||||||
# -- Number of workflow workers
|
# -- Number of workflow workers
|
||||||
workflowWorkers: # 32
|
workflowWorkers: # 32
|
||||||
|
@ -343,7 +350,7 @@ executor:
|
||||||
# -- Registry to use for the Workflow Executors
|
# -- Registry to use for the Workflow Executors
|
||||||
registry: quay.io
|
registry: quay.io
|
||||||
# -- Repository to use for the Workflow Executors
|
# -- Repository to use for the Workflow Executors
|
||||||
repository: argoproj/argoexec
|
repository: codefresh/argoexec
|
||||||
# -- Image tag for the workflow executor. Defaults to `.Values.images.tag`.
|
# -- Image tag for the workflow executor. Defaults to `.Values.images.tag`.
|
||||||
tag: ""
|
tag: ""
|
||||||
# -- Image PullPolicy to use for the Workflow Executors. Defaults to `.Values.images.pullPolicy`.
|
# -- Image PullPolicy to use for the Workflow Executors. Defaults to `.Values.images.pullPolicy`.
|
||||||
|
@ -367,7 +374,7 @@ server:
|
||||||
# -- Registry to use for the server
|
# -- Registry to use for the server
|
||||||
registry: quay.io
|
registry: quay.io
|
||||||
# -- Repository to use for the server
|
# -- Repository to use for the server
|
||||||
repository: argoproj/argocli
|
repository: codefresh/argocli
|
||||||
# -- Image tag for the Argo Workflows server. Defaults to `.Values.images.tag`.
|
# -- Image tag for the Argo Workflows server. Defaults to `.Values.images.tag`.
|
||||||
tag: ""
|
tag: ""
|
||||||
# -- optional map of annotations to be applied to the ui Deployment
|
# -- optional map of annotations to be applied to the ui Deployment
|
||||||
|
@ -461,7 +468,7 @@ server:
|
||||||
# value: "bar"
|
# value: "bar"
|
||||||
|
|
||||||
# -- Extra arguments to provide to the Argo server binary, such as for disabling authentication.
|
# -- Extra arguments to provide to the Argo server binary, such as for disabling authentication.
|
||||||
extraArgs: []
|
extraArgs: ['--auth-mode=server']
|
||||||
# If you want to disable authentication for purposes such as:
|
# If you want to disable authentication for purposes such as:
|
||||||
# - local dev-mode without authentication
|
# - local dev-mode without authentication
|
||||||
# - gateway authentication through some other service such as KeyCloak
|
# - gateway authentication through some other service such as KeyCloak
|
||||||
|
|
Loading…
Reference in a new issue