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:
ilia-medvedev-codefresh 2023-01-11 15:18:45 +02:00 committed by GitHub
parent f73413561a
commit 59e264f369
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 89 additions and 46 deletions

View file

@ -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'

View file

@ -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:

View file

@ -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 |

View file

@ -1,3 +1,4 @@
# Test with default values # Test with default values
crds: crds:
install: true
keep: false keep: false

View file

@ -1,4 +1,5 @@
crds: crds:
install: true
keep: false keep: false
server: server:

View file

@ -1,4 +1,5 @@
crds: crds:
install: true
keep: false keep: false
controller: controller:

View file

@ -1,4 +1,5 @@
crds: crds:
install: true
keep: false keep: false
workflow: workflow:

View file

@ -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