diff --git a/.clomonitor.yml b/.clomonitor.yml index c75e8a7b..9f1fff8c 100644 --- a/.clomonitor.yml +++ b/.clomonitor.yml @@ -7,12 +7,6 @@ exemptions: reason: "Helm deps are not currently scanned. Maintainers are watching developments to dependabot-core #2237" # Justification of this exemption (mandatory, it will be displayed on the UI) - check: sbom reason: "Tracking Helm dependencies is not yet a stable practice." - - check: self_assessment - reason: "Refer to self assessments supplied by the codebases Argo Helm supports." - - check: signed_releases - reason: "Argo Helm releases are made via Artifact Hub, where they are signed. The unsigned GitHub releases are for reference only." - - check: license_scanning - reason: "Temporary exemption: pending response from CNCF Service Desk" # TODO: # License scanning information diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS deleted file mode 100644 index c0d0ab9d..00000000 --- a/.github/CODEOWNERS +++ /dev/null @@ -1,6 +0,0 @@ -* @mkilchhofer @jmeridth @yu-croco - -/charts/argo-workflows/ @vladlosev @jmeridth @yu-croco @tico24 -/charts/argo-cd/ @mbevc1 @mkilchhofer @yu-croco @jmeridth @pdrastil @tico24 -/charts/argo-events/ @pdrastil @jmeridth @tico24 @yu-croco -/charts/argo-rollouts/ @jmeridth @yu-croco diff --git a/.github/configs/cr.yaml b/.github/configs/cr.yaml index 154dbfbf..01fdbe0c 100644 --- a/.github/configs/cr.yaml +++ b/.github/configs/cr.yaml @@ -1,12 +1,2 @@ ## Reference: https://github.com/helm/chart-releaser -index-path: "./index.yaml" - -# PGP signing -sign: true -key: Argo Helm maintainers -# keyring: # Set via env variable CR_KEYRING -# passphrase-file: # Set via env variable CR_PASSPHRASE_FILE - -# Enable automatic generation of release notes using GitHubs release notes generator. -# see: https://docs.github.com/en/repositories/releasing-projects-on-github/automatically-generated-release-notes -generate-release-notes: true +index-path: "./index.yaml" \ No newline at end of file diff --git a/.github/configs/ct-lint.yaml b/.github/configs/ct-lint.yaml index 99cb8b3c..1e66067a 100644 --- a/.github/configs/ct-lint.yaml +++ b/.github/configs/ct-lint.yaml @@ -7,6 +7,7 @@ chart-dirs: - charts chart-repos: - dandydeveloper=https://dandydeveloper.github.io/charts/ +helm-extra-args: "--timeout 600s" validate-chart-schema: false validate-maintainers: true validate-yaml: true diff --git a/.github/configs/labeler.yaml b/.github/configs/labeler.yaml index 80b72ba8..acd6f219 100644 --- a/.github/configs/labeler.yaml +++ b/.github/configs/labeler.yaml @@ -1,23 +1,17 @@ argo-cd: - - changed-files: - - any-glob-to-any-file: charts/argo-cd/** + - charts/argo-cd/**/* argo-events: - - changed-files: - - any-glob-to-any-file: charts/argo-events/** + - charts/argo-events/**/* argo-rollouts: - - changed-files: - - any-glob-to-any-file: charts/argo-rollouts/** + - charts/argo-rollouts/**/* argo-workflows: - - changed-files: - - any-glob-to-any-file: charts/argo-workflows/** + - charts/argo-workflows/**/* argocd-image-updater: - - changed-files: - - any-glob-to-any-file: charts/argocd-image-updater/** + - charts/argocd-image-updater/**/* argocd-apps: - - changed-files: - - any-glob-to-any-file: charts/argocd-apps/** + - charts/argocd-apps/**/* diff --git a/.github/configs/renovate-config.js b/.github/configs/renovate-config.js deleted file mode 100644 index f453f640..00000000 --- a/.github/configs/renovate-config.js +++ /dev/null @@ -1,8 +0,0 @@ -module.exports = { - platform: 'github', - // This ensures that the gitAuthor and gitSignOff fields match - gitAuthor: 'argoproj-renovate[bot] <161757507+argoproj-renovate[bot]@users.noreply.github.com>', - autodiscover: false, - allowPostUpgradeCommandTemplating: true, - allowedPostUpgradeCommands: [".*"], - }; diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 4d8e45c5..0a4fd6ca 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -6,11 +6,3 @@ updates: schedule: interval: weekly day: "saturday" - commit-message: - prefix: "chore(deps)" - groups: - dependencies: - applies-to: version-updates - update-types: - - "minor" - - "patch" diff --git a/.github/workflows/lint-and-test.yml b/.github/workflows/lint-and-test.yml index c719d45d..1f75294a 100644 --- a/.github/workflows/lint-and-test.yml +++ b/.github/workflows/lint-and-test.yml @@ -6,42 +6,30 @@ permissions: contents: read jobs: - linter-artifacthub: - runs-on: ubuntu-latest - container: - image: public.ecr.aws/artifacthub/ah:v1.14.0 - options: --user 1001 - steps: - - name: Checkout - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - - name: Run ah lint - working-directory: ./charts - run: ah lint - chart-test: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 with: fetch-depth: 0 - name: Set up Helm - uses: azure/setup-helm@fe7b79cd5ee1e45176fcad797de68ecaf3ca4814 # v4.2.0 + uses: azure/setup-helm@5119fcb9089d432beecbf79bb2c7915207344b78 # v3.5 with: version: v3.10.1 # Also update in publish.yaml - name: Set up python - uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5.4.0 + uses: actions/setup-python@57ded4d7d5e986d7296eab16560982c6dd7c923b # v4.6.0 with: python-version: 3.9 - name: Setup Chart Linting id: lint - uses: helm/chart-testing-action@0d28d3144d3a25ea2cc349d6e59901c4ff469b3b # v2.7.0 + uses: helm/chart-testing-action@e8788873172cb653a90ca2e819d79d65a66d4e76 # v2.4.0 with: # Note: Also update in scripts/lint.sh - version: v3.11.0 + version: v3.7.1 - name: List changed charts id: list-changed @@ -70,10 +58,11 @@ jobs: fi - name: Create kind cluster - uses: helm/kind-action@a1b0e391336a6ee6713a0583f8c6240d70863de3 # v1.12.0 + uses: helm/kind-action@d8ccf8fb623ce1bb360ae2f45f323d9d5c5e9f00 # v1.5.0 if: steps.list-changed.outputs.changed == 'true' with: config: .github/configs/kind-config.yaml + - name: Deploy latest ArgoCD CRDs when testing ArgoCD extensions if: | contains(steps.list-changed.outputs.changed_charts, 'argocd-image-updater') || diff --git a/.github/workflows/pr-sizing.yml b/.github/workflows/pr-sizing.yml index 9bde9db4..f75d7f82 100644 --- a/.github/workflows/pr-sizing.yml +++ b/.github/workflows/pr-sizing.yml @@ -16,7 +16,7 @@ jobs: triage: runs-on: ubuntu-latest steps: - - uses: actions/labeler@8558fd74291d67161a8a78ce36a881fa63b766a9 # v5.0.0 + - uses: actions/labeler@ba790c862c380240c6d5e7427be5ace9a05c754b # v4.0.3 with: configuration-path: ".github/configs/labeler.yaml" repo-token: "${{ secrets.GITHUB_TOKEN }}" @@ -25,6 +25,6 @@ jobs: size-label: runs-on: ubuntu-latest steps: - - uses: pascalgn/size-label-action@f8edde36b3be04b4f65dcfead05dc8691b374348 # v0.5.5 + - uses: pascalgn/size-label-action@1619680c5ac1ef360b944bb56a57587ba4aa2af8 # v0.4.3 env: GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" diff --git a/.github/workflows/pr-title.yml b/.github/workflows/pr-title.yml index 170d908b..2d45de12 100644 --- a/.github/workflows/pr-title.yml +++ b/.github/workflows/pr-title.yml @@ -19,7 +19,7 @@ jobs: name: Validate PR title runs-on: ubuntu-latest steps: - - uses: amannn/action-semantic-pull-request@0723387faaf9b38adef4775cd42cfd5155ed6017 # v5.5.3 + - uses: amannn/action-semantic-pull-request@c3cd5d1ea3580753008872425915e343e351ab54 # v5.2.0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index f6dcec99..e104fde2 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -4,27 +4,23 @@ on: push: branches: - main - paths: - - "charts/**" permissions: contents: read jobs: publish: - if: github.repository == 'argoproj/argo-helm' permissions: contents: write # for helm/chart-releaser-action to push chart release and create a release - packages: write # to push OCI chart package to GitHub Registry runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 with: fetch-depth: 0 - name: Install Helm - uses: azure/setup-helm@fe7b79cd5ee1e45176fcad797de68ecaf3ca4814 # v4.2.0 + uses: azure/setup-helm@5119fcb9089d432beecbf79bb2c7915207344b78 # v3.5 with: version: v3.10.1 # Also update in lint-and-test.yaml @@ -42,42 +38,9 @@ jobs: run: | git checkout origin/gh-pages index.yaml - # The GitHub repository secret `PGP_PRIVATE_KEY` contains the private key - # in ASCII-armored format. To export a (new) key, run this command: - # `gpg --armor --export-secret-key ` - - name: Prepare PGP key - run: | - IFS="" - echo "$PGP_PRIVATE_KEY" | gpg --dearmor > $HOME/secring.gpg - echo "$PGP_PASSPHRASE" > $HOME/passphrase.txt - - # Tell chart-releaser-action where to find the key and its passphrase - echo "CR_KEYRING=$HOME/secring.gpg" >> "$GITHUB_ENV" - echo "CR_PASSPHRASE_FILE=$HOME/passphrase.txt" >> "$GITHUB_ENV" - env: - PGP_PRIVATE_KEY: "${{ secrets.PGP_PRIVATE_KEY }}" - PGP_PASSPHRASE: "${{ secrets.PGP_PASSPHRASE }}" - - name: Run chart-releaser - uses: helm/chart-releaser-action@cae68fefc6b5f367a0275617c9f83181ba54714f # v1.7.0 + uses: helm/chart-releaser-action@be16258da8010256c6e82849661221415f031968 # v1.5.0 with: config: "./.github/configs/cr.yaml" env: CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}" - - - name: Login to GHCR - uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Push chart to GHCR - run: | - shopt -s nullglob - for pkg in .cr-release-packages/*.tgz; do - if [ -z "${pkg:-}" ]; then - break - fi - helm push "${pkg}" oci://ghcr.io/${{ github.repository }} - done diff --git a/.github/workflows/renovate.yaml b/.github/workflows/renovate.yaml deleted file mode 100644 index 9460d792..00000000 --- a/.github/workflows/renovate.yaml +++ /dev/null @@ -1,38 +0,0 @@ -name: Renovate -on: - # The "*" (#42, asterisk) character has special semantics in YAML, so this - # string has to be quoted. - schedule: - - cron: '0 * * * *' - # Manual trigger is also possible - workflow_dispatch: {} - -permissions: - contents: read - -jobs: - renovate: - if: github.repository == 'argoproj/argo-helm' - runs-on: ubuntu-latest - steps: - - name: Get token - uses: actions/create-github-app-token@0d564482f06ca65fa9e77e2510873638c82206f2 # v1.11.5 - id: get_token - with: - app-id: ${{ vars.RENOVATE_APP_ID }} - private-key: ${{ secrets.RENOVATE_APP_PRIVATE_KEY }} - - - name: Checkout - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - - - name: Self-hosted Renovate - uses: renovatebot/github-action@e084b5ac6fd201023db6dd7743aec023babb02c8 # v41.0.13 - with: - configurationFile: .github/configs/renovate-config.js - # renovate: datasource=docker depName=ghcr.io/renovatebot/renovate - renovate-version: 39.153.2 - token: '${{ steps.get_token.outputs.token }}' - mount-docker-socket: true - env: - LOG_LEVEL: 'debug' - RENOVATE_REPOSITORIES: '${{ github.repository }}' diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 29f267d3..66e1d5ee 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -19,7 +19,6 @@ permissions: read-all jobs: analysis: - if: github.repository_owner == 'argoproj' name: Scorecard analysis runs-on: ubuntu-latest permissions: @@ -33,12 +32,12 @@ jobs: steps: - name: "Checkout code" - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # v3.1.0 with: persist-credentials: false - name: "Run analysis" - uses: ossf/scorecard-action@62b2cac7ed8198b15735ed49ab1e5cf35480ba46 # v2.4.0 + uses: ossf/scorecard-action@80e868c13c90f172d68d1f4501dee99e2479f7af # v2.1.3 with: results_file: results.sarif results_format: sarif @@ -60,7 +59,7 @@ jobs: # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF # format to the repository Actions tab. - name: "Upload artifact" - uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4.6.0 + uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 with: name: SARIF file path: results.sarif @@ -68,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@9e8d0789d4a0fa9ceb6b1738f7e269594bdd67f0 # v3.28.9 + uses: github/codeql-action/upload-sarif@29b1f65c5e92e24fe6b6647da1eaabe529cec70f # v2.3.3 with: sarif_file: results.sarif diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 159a0e8e..b0356dc7 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -14,7 +14,7 @@ jobs: pull-requests: write # for actions/stale to close stale PRs runs-on: ubuntu-latest steps: - - uses: actions/stale@5bef64f19d7facfb25b37b414482c7164d639639 # v9.1.0 + - uses: actions/stale@1160a2240286f5da8ec72b1c0816ce2481aabf84 # v8.0.0 with: repo-token: ${{ secrets.GITHUB_TOKEN }} # Number of days of inactivity before an issue becomes stale diff --git a/CODEOWNERS b/CODEOWNERS new file mode 100644 index 00000000..9b0a95c5 --- /dev/null +++ b/CODEOWNERS @@ -0,0 +1,14 @@ +# All +* @mkilchhofer @jmeridth + +# Argo Workflows +/charts/argo-workflows/ @vladlosev @jmeridth @yu-croco + +# Argo CD +/charts/argo-cd/ @mbevc1 @mkilchhofer @yu-croco @jmeridth @pdrastil + +# Argo Events +/charts/argo-events/ @pdrastil @jmeridth + +# Argo Rollouts +/charts/argo-rollouts/ @jmeridth diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c20486f6..1f7745b5 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -47,8 +47,6 @@ Any breaking changes to a chart (backwards incompatible) require: ### New Application Versions -Helm charts are intended to be created for all non-patched releases of Argo CD, Workflows, Rollouts, and Events. Associated dependencies, such as Redis, will use the version recommended by the associated release. - When selecting new application versions ensure you make the following changes: * `values.yaml`: Bump all instances of the container image version @@ -66,7 +64,7 @@ Each release for each chart must be immutable. Any change to a chart (even just ### Chart Versioning -Currently we require a chart version bump for every change to a chart, including updating information for older versions. This may change in the future. +Currently we require a chart version bump for every change to a chart, including updating information for older verions. This may change in the future. ### Artifact Hub Annotations @@ -124,7 +122,7 @@ helm install charts/argo-workflows -n argo argo version ``` -Follow [these](https://argo-workflows.readthedocs.io/en/stable/quick-start/#submitting-an-example-workflow) instructions for running a hello world workflow. +Follow [these](https://argoproj.github.io/argo-workflows/quick-start/#submitting-an-example-workflow) instructions for running a hello world workflow. ### Testing Argo CD Changes diff --git a/EMERITUS.md b/EMERITUS.md index c0ff9674..2c299690 100644 --- a/EMERITUS.md +++ b/EMERITUS.md @@ -4,11 +4,9 @@ These are the people who have been approvers in the past, and have since retired We thank them for their service to the project. -| Emeritus | GitHub ID | -| -------- | --------- | -| Oliver Bähler | [oliverbaehler](https://github.com/oliverbaehler) | -| Stefan Sedich | [stefansedich](https://github.com/stefansedich) | -| Pablo Osinaga | [paguos](https://github.com/paguos) | -| Yann Soubeyrand | [yann-soubeyrand](https://github.com/yann-soubeyrand) | -| David J. M. Karlsen | [davidkarlsen](https://github.com/davidkarlsen) | -| John Behling | [jbehling](https://github.com/jbehling) | +* @oliverbaehler +* @stefansedich +* @paguos +* @yann-soubeyrand +* @davidkarlsen +* @jbehling diff --git a/README.md b/README.md index c4092e07..b29bb3d1 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,6 @@ [![Artifact HUB](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/argo)](https://artifacthub.io/packages/search?repo=argo) [![CLOMonitor](https://img.shields.io/endpoint?url=https://clomonitor.io/api/projects/cncf/argo/badge)](https://clomonitor.io/projects/cncf/argo) [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/argoproj/argo-helm/badge)](https://api.securityscorecards.dev/projects/github.com/argoproj/argo-helm) -[![OpenSSF Best Practices](https://www.bestpractices.dev/projects/7942/badge)](https://www.bestpractices.dev/projects/7942) Argo Helm is a collection of **community maintained** charts for [https://argoproj.github.io](https://argoproj.github.io) projects. The charts can be added using following command: @@ -24,7 +23,7 @@ Some users would prefer to install the CRDs _outside_ of the chart. You can disa Helm cannot upgrade custom resource definitions in the `/crds` folder [by design](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/#some-caveats-and-explanations). Our CRDs have been moved to `/templates` to address this design decision. -If you are using versions of a chart that have the CRDs in the root of the chart or have elected to manage the Argo CRDs outside of the chart, please use `kubectl` to upgrade CRDs manually from [templates/crds](templates/crds/) folder or via the manifests from the upstream project repo: +If you are using versions of a chart that have the CRDs in the root of the chart or have elected to manage the Argo Workflows CRDs outside of the chart, please use `kubectl` to upgrade CRDs manually from [templates/crds](templates/crds/) folder or via the manifests from the upstream project repo: Example: @@ -42,63 +41,3 @@ Please refer to [SECURITY.md](SECURITY.md) for details on how to report security ### Changelog Releases are managed independently for each helm chart, and changelogs are tracked on each release. Read more about this process [here](https://github.com/argoproj/argo-helm/blob/main/CONTRIBUTING.md#changelog). - -## Charts use Helm "Capabilities" - -Our charts make use of the Helm built-in object "Capabilities": -> This provides information about what capabilities the Kubernetes cluster supports. -> *Source: https://helm.sh/docs/chart_template_guide/builtin_objects/* - -Today we use: - -- `.Capabilities.APIVersions.Has` mostly to determine whether the CRDs for ServiceMonitors (from prometheus-operator) exists inside the cluster -- `.Capabilities.KubeVersion.Version` to handle correct apiVersion of a specific resource kind (eg. "policy/v1" vs. "policy/v1beta1") - -If you use the charts only to template the manifests, without installing (`helm install ..`), you need to make sure that Helm (or the Helm SDK) receives the available APIs from your Kubernetes cluster. - -For this you need to pass the `--api-versions` parameter to the `helm template` command: - -```bash -helm template argocd \ - oci://ghcr.io/argoproj/argo-helm/argo-cd \ - --api-versions monitoring.coreos.com/v1 \ - --values my-argocd-values.yaml -``` - -If you use other tools like [Kustomize](https://kubectl.docs.kubernetes.io/references/kustomize/builtins/) or [helmfile](https://helmfile.readthedocs.io/en/latest/#configuration) to render it, there are equivalent options. - -Example with Kustomize: - -```yaml -# kustomization.yaml -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization - -helmCharts: -- name: argo-cd - repo: oci://ghcr.io/argoproj/argo-helm - version: x.y.z - releaseName: argocd - apiVersions: - - monitoring.coreos.com/v1 - valuesFile: my-argocd-values.yaml -``` - -Example with helmfile: - -```yaml -# helmfile.yaml -repositories: - - name: argo - url: https://argoproj.github.io/argo-helm - -apiVersions: - - monitoring.coreos.com/v1 - -releases: - - name: argocd - namespace: argocd - chart: argo/argo-cd - values: - - my-argocd-values.yaml -``` diff --git a/SECURITY-INSIGHTS.yml b/SECURITY-INSIGHTS.yml deleted file mode 100644 index e3a6aeed..00000000 --- a/SECURITY-INSIGHTS.yml +++ /dev/null @@ -1,38 +0,0 @@ -header: - schema-version: '1.0.0' - expiration-date: '2024-11-04T10:00:00.000Z' - project-url: https://github.com/argoproj/argo-helm -project-lifecycle: - status: active - bug-fixes-only: false - core-maintainers: - - https://github.com/mkilchhofer - - https://github.com/jmeridth -contribution-policy: - accepts-pull-requests: true - accepts-automated-pull-requests: true - automated-tools-list: - - automated-tool: dependabot - action: allowed - path: - - / - contributing-policy: https://github.com/argoproj/argo-helm/blob/main/CONTRIBUTING.md - code-of-conduct: https://github.com/cncf/foundation/blob/master/code-of-conduct.md -distribution-points: - - https://argoproj.github.io/argo-helm - - https://artifacthub.io/packages/search?org=argoproj&repo=argo -security-contacts: - - type: website - value: https://github.com/argoproj/argo-helm/security/advisories/new - primary: true -vulnerability-reporting: - accepts-vulnerability-reports: true - email-contact: cncf-argo-maintainers@lists.cncf.io - security-policy: https://github.com/argoproj/argo-helm/blob/main/SECURITY.md - comment: | - Our preferred contact method related to vulnerabilities is the Security tab on GitHub. - Click the button "Report a vulnerability" to open the advisory form. - Please refer to the security policy for reporting information prior to using the email contact. -dependencies: - env-dependencies-policy: - policy-url: https://github.com/argoproj/argo-helm/blob/master/CONTRIBUTING.md#new-application-versions diff --git a/SECURITY.md b/SECURITY.md index a066f67f..7c30259c 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -2,11 +2,11 @@ ## Supported Versions and Upstream Reporting -Each helm chart currently supports the designated application version in the Chart.yaml. There is a chance a security issue you've discovered may not be with the helm chart but with the upstream application. Please visit that application's Security policy document to find out how to report the security issue. +Each helm chart currently supports the designated application version in the Chart.yaml. There is a chance a security issue you've discovered may not be with the helm chart but with the upstream application. Please visit that application's Security policy docueent to find out how to report the security issue. * [Security Policy for Argo Workflows](https://github.com/argoproj/argo-workflows/blob/master/SECURITY.md) * [Security Policy for Argo Events](https://github.com/argoproj/argo-events/blob/master/SECURITY.md) -* [Security Policy for Argo Rollouts](https://github.com/argoproj/argo-rollouts/blob/master/docs/security/security.md) +* [Security Policy for Argo Rollouts](https://github.com/argoproj/argo-rollouts/blob/master/docs/security.md) * [Security Policy for Argo CD](https://github.com/argoproj/argo-cd/blob/master/SECURITY.md) * [Security Policy for Argo CD Image Updater](https://github.com/argoproj-labs/argocd-image-updater/blob/master/SECURITY.md) diff --git a/charts/argo-cd/Chart.lock b/charts/argo-cd/Chart.lock index 36656a14..e21296c6 100644 --- a/charts/argo-cd/Chart.lock +++ b/charts/argo-cd/Chart.lock @@ -1,6 +1,6 @@ dependencies: - name: redis-ha repository: https://dandydeveloper.github.io/charts/ - version: 4.29.4 -digest: sha256:1257baf1c5e0db036af659d44095223e28ac0c9ec1ed8300a02d5def2281c9c7 -generated: "2024-11-13T09:07:36.494128+09:00" + version: 4.22.5 +digest: sha256:d2e927511e515fb862f23dd413ee3a356c855d808f6f9ad1d345ee62b8c7ea16 +generated: "2023-03-30T08:25:32.738257836+02:00" diff --git a/charts/argo-cd/Chart.yaml b/charts/argo-cd/Chart.yaml index 5d12006a..dd40f29b 100644 --- a/charts/argo-cd/Chart.yaml +++ b/charts/argo-cd/Chart.yaml @@ -1,9 +1,9 @@ apiVersion: v2 -appVersion: v2.14.2 -kubeVersion: ">=1.25.0-0" +appVersion: v2.7.1 +kubeVersion: ">=1.22.0-0" description: A Helm chart for Argo CD, a declarative, GitOps continuous delivery tool for Kubernetes. name: argo-cd -version: 7.8.3 +version: 5.32.1 home: https://github.com/argoproj/argo-helm icon: https://argo-cd.readthedocs.io/en/stable/assets/logo.png sources: @@ -18,13 +18,10 @@ maintainers: url: https://argoproj.github.io/ dependencies: - name: redis-ha - version: 4.29.4 + version: 4.22.5 repository: https://dandydeveloper.github.io/charts/ condition: redis-ha.enabled annotations: - artifacthub.io/signKey: | - fingerprint: 2B8F22F57260EFA67BE1C5824B11F800CD9D2252 - url: https://argoproj.github.io/argo-helm/pgp_keys.asc artifacthub.io/changes: | - - kind: changed - description: Bump dex version to v2.42.0 + - kind: added + description: Enable to customize Service type of applicationset-controller diff --git a/charts/argo-cd/README.md b/charts/argo-cd/README.md index 25760a5f..054dc2f9 100644 --- a/charts/argo-cd/README.md +++ b/charts/argo-cd/README.md @@ -42,7 +42,7 @@ repoServer: minReplicas: 2 applicationSet: - replicas: 2 + replicaCount: 2 ``` ### HA mode without autoscaling @@ -61,183 +61,10 @@ repoServer: replicas: 2 applicationSet: - replicas: 2 + replicaCount: 2 ``` -## Ingress configuration - -Please refer to the [Operator Manual](https://argo-cd.readthedocs.io/en/stable/operator-manual/ingress/#ingress-configurationh) for details as the samples -below corespond to their respective sections. - -### SSL-Passthrough - -The `tls: true` option will expect that the `argocd-server-tls` secret exists as Argo CD server loads TLS certificates from this place. - -```yaml -global: - domain: argocd.example.com - -certificate: - enabled: true - -server: - ingress: - enabled: true - ingressClassName: nginx - annotations: - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - nginx.ingress.kubernetes.io/ssl-passthrough: "true" - tls: true -``` - -### SSL Termination at Ingress Controller - -```yaml -global: - domain: argocd.example.com - -configs: - params: - server.insecure: true - -server: - ingress: - enabled: true - ingressClassName: nginx - annotations: - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - nginx.ingress.kubernetes.io/backend-protocol: "HTTP" - extraTls: - - hosts: - - argocd.example.com - # Based on the ingress controller used secret might be optional - secretName: wildcard-tls -``` - -> **Note:** -> If you don't plan on using a wildcard certificate it's also possible to use `tls: true` without `extraTls` section. - -### Multiple ingress resources for gRPC protocol support - -Use `ingressGrpc` section if your ingress controller supports only a single protocol per Ingress resource (i.e.: Contour). - -```yaml -global: - domain: argocd.example.com - -configs: - params: - server.insecure: true - -server: - ingress: - enabled: true - ingressClassName: contour-internal - extraTls: - - hosts: - - argocd.example.com - secretName: wildcard-tls - - ingressGrpc: - enabled: true - ingressClassName: contour-internal - extraTls: - - hosts: - - grpc.argocd.example.com - secretName: wildcard-tls -``` - -### Multiple ingress domains - -```yaml -global: - domain: argocd.example.com - -server: - ingress: - enabled: true - ingressClassName: nginx - annotations: - cert-manager.io/cluster-issuer: "" - nginx.ingress.kubernetes.io/backend-protocol: "HTTPS" - tls: true - extraHosts: - - name: argocd-alias.example.com - path: / -``` - -### AWS Application Load Balancer - -Refer to the Operator Manual for [AWS Application Load Balancer mode](https://argo-cd.readthedocs.io/en/stable/operator-manual/ingress/#aws-application-load-balancers-albs-and-classic-elb-http-mode). -The provided example assumes you are using TLS off-loading via AWS ACM service. - -> **Note:** -> Using `controller: aws` creates additional service for gRPC traffic and it's no longer need to use `ingressGrpc` configuration section. - -```yaml -global: - domain: argocd.example.com - -configs: - params: - server.insecure: true - -server: - ingress: - enabled: true - controller: aws - ingressClassName: alb - annotations: - alb.ingress.kubernetes.io/scheme: internal - alb.ingress.kubernetes.io/target-type: ip - alb.ingress.kubernetes.io/backend-protocol: HTTP - alb.ingress.kubernetes.io/listen-ports: '[{"HTTP":80}, {"HTTPS":443}]' - alb.ingress.kubernetes.io/ssl-redirect: '443' - aws: - serviceType: ClusterIP # <- Used with target-type: ip - backendProtocolVersion: GRPC -``` - -### GKE Application Load Balancer - -The implementation will populate `ingressClassName`, `networking.gke.io/managed-certificates` and `networking.gke.io/v1beta1.FrontendConfig` annotations -automatically if you provide configuration for GKE resources. - -```yaml -global: - domain: argocd.example.com - -configs: - params: - server.insecure: true - -server: - service: - annotations: - cloud.google.com/neg: '{"ingress": true}' - cloud.google.com/backend-config: '{"ports": {"http":"argocd-server"}}' - - ingress: - enabled: true - controller: gke - gke: - backendConfig: - healthCheck: - checkIntervalSec: 30 - timeoutSec: 5 - healthyThreshold: 1 - unhealthyThreshold: 2 - type: HTTP - requestPath: /healthz - port: 8080 - frontendConfig: - redirectToHttps: - enabled: true - managedCertificate: - enabled: true -``` - -## Synchronizing Changes from Original Repository +### Synchronizing Changes from Original Repository In the original [Argo CD repository](https://github.com/argoproj/argo-cd/) an [`manifests/install.yaml`](https://github.com/argoproj/argo-cd/blob/master/manifests/install.yaml) is generated using `kustomize`. It's the basis for the installation as [described in the docs](https://argo-cd.readthedocs.io/en/stable/getting_started/#1-install-argo-cd). @@ -278,141 +105,23 @@ For full list of changes please check ArtifactHub [changelog]. Highlighted versions provide information about additional steps that should be performed by user when upgrading to newer version. -### 7.0.0 - -We changed the type of `.Values.configs.clusterCredentials` from `list` to `object`. -If you used the value, please migrate like below. - -```yaml -# before -configs: - clusterCredentials: - - mycluster: - server: https://mycluster.example.com - labels: {} - annotations: {} - # ... - -# after -configs: - clusterCredentials: - mycluster: - server: https://mycluster.example.com - labels: {} - annotations: {} - # ... -``` - -### 6.10.0 - -This version introduces authentication for Redis to mitigate GHSA-9766-5277-j5hr. - -#### How to rotate Redis secret? - -Upstream steps in the [FAQ] are not enough, since we chose a different approach. -(We use a Kubernetes Job with [Chart Hooks] to create the auth secret `argocd-redis`.) - -Steps to rotate the secret when using the helm chart (bold step is additional to upstream): -* Delete `argocd-redis` secret in the namespace where Argo CD is installed. - ```bash - kubectl delete secret argocd-redis -n - ``` -* **Perform a helm upgrade** - ```bash - helm upgrade argocd argo/argo-cd --reuse-values --wait - ``` -* If you are running Redis in HA mode, restart Redis in HA. - ```bash - kubectl rollout restart deployment argocd-redis-ha-haproxy - kubectl rollout restart statefulset argocd-redis-ha-server - ``` -* If you are running Redis in non-HA mode, restart Redis. - ```bash - kubectl rollout restart deployment argocd-redis - ``` -* Restart other components. - ```bash - kubectl rollout restart deployment argocd-server argocd-repo-server - kubectl rollout restart statefulset argocd-application-controller - ``` - -### 6.9.0 -ApplicationSet controller is always created to follow [upstream's manifest](https://github.com/argoproj/argo-cd/blob/v2.11.0/manifests/core-install/kustomization.yaml#L9). - -### 6.4.0 - -Added support for application controller dynamic cluster distribution. -Please refer to [the docs](https://argo-cd.readthedocs.io/en/stable/operator-manual/dynamic-cluster-distribution) for more information. - -Added env variables to handle the non-standard names generated by the helm chart. -Here are the [docs](https://argo-cd.readthedocs.io/en/release-2.9/user-guide/environment-variables/) -and [code](https://github.com/argoproj/argo-cd/blob/99723143b96ceec9ef5b0a7feb7b4f4b0dce3497/common/common.go#L252) - -### 6.1.0 - -Added support for global domain used by all components. - -### 6.0.0 - -This version **removes support for**: - -* deprecated component options `logLevel` and `logFormat` -* deprecated component arguments `.args.` that were replaced with `configs.params` -* deprecated configuration `server.config` that was replaced with `configs.cm` -* deprecated configuration `server.rbacConfig` that was replaced with `configs.rbac` - -Major version also contains breaking **changes related to Argo CD Ingress** resources that were hard to extend and maintain for various ingress controller implementations. -Please review your setup and adjust to new configuration options: - -* catch all rule was removed for security reasons. If you need this please use `server.ingress.extraRules` to provide ingress rule without hostname -* ingress rule for `paths` changed to `path` as there is only single Argo CD backend path -* ingress rule for `hosts` changed to `hostname` as there can be only single SSO redirect for given hostname -* ingress TLS for server uses by default `argocd-server-tls` secret required by Argo CD server, additional ingresses are using `-tls` secret when `tls: true` -* additional hostnames and routing can be provided via `extraHosts` configuration section -* additional TLS secrets can be provided via `extraTls` configuration section - -Please refer to [ingress configuration](#ingress-configuration) for examples. - -### 5.53.0 - -Argocd-repo-server can now optionally use Persistent Volumes for its mountpoints instead of only emptydir() - -### 5.52.0 - -Because [Argo CD Extensions] is now deprecated and no further changes will be made, we switched to [Argo CD Extension Installer], adding an Argo CD Extension Installer to init-container in the Argo CD API server. -If you used old mechanism, please move to new mechanism. For more details, please refer `.Values.server.extensions` in values.yaml. - -### 5.35.0 - -This version supports Kubernetes version `>=1.23.0-0`. The current supported version of Kubernetes is v1.24 or later and we align with the Amazon EKS calendar, because many AWS users follow a conservative approach. - -Please see more information about EoL: [Amazon EKS EoL][EKS EoL]. - ### 5.31.0 The manifests are now using [`tini` as entrypoint][tini], instead of `entrypoint.sh`. Until Argo CD v2.8, `entrypoint.sh` is retained for upgrade compatibility. This means that the deployment manifests have to be updated after upgrading to Argo CD v2.7, and before upgrading to Argo CD v2.8 later. In case the manifests are updated before moving to Argo CD v2.8, the containers will not be able to start. -### 5.26.0 - -This version adds support for Config Management Plugins using the sidecar model and configured in a ConfigMap named `argocd-cmp-cm`. -Users will need to migrate from the previous `argocd-cm` ConfigMap method to using the sidecar method before Argo CD v2.8. See the [Argo CD CMP migration guide](https://argo-cd.readthedocs.io/en/stable/operator-manual/config-management-plugins/#migrating-from-argocd-cm-plugins) for more specifics. - -To migrate your plugins, you can now set the `configs.cmp.create` to `true` and move your plugins from `configs.cm` to `configs.cmp.plugins`. -You will also need to configure the sidecar containers under `repoServer.extraContainers` and ensure you are mounting any custom volumes you need from `repoServer.volumes` into here also. - ### 5.24.0 -This version adds additional global parameters for scheduling (`nodeSelector`, `tolerations`, `topologySpreadConstraints`). +This versions adds additional global parameters for scheduling (`nodeSelector`, `tolerations`, `topologySpreadConstraints`). Default `global.affinity` rules can be disabled when `none` value is used for the preset. ### 5.22.0 -This version adds `global.affinity` options that are used as a presets. Override on component level works as before and replaces the default preset completely. +This versions adds `global.affinity` options that are used as a presets. Override on component level works as before and replaces the default preset completely. ### 5.19.0 -This version consolidates config for custom repository TLS certificates and SSH known hosts. If you provided these values (`configs.knownHosts.*`, `configs.knownHostsAnnotations`, `configs.tlsCerts`, `configs.tlsCertsAnnotations`) please move them into new `configs.ssh` and `configs.tls` sections. +This version consolidates config for custom repository TLS certificates and SSH known hosts. If you provide this values please move them into new `configs.ssh` and `configs.tls` sections. You can also use new option `configs.ssh.extraHosts` to configure your SSH keys without maintaing / overwritting keys for public Git repositories. ### 5.13.0 @@ -647,9 +356,7 @@ server: ## Prerequisites -- Kubernetes: `>=1.25.0-0` - - We align with [Amazon EKS calendar][EKS EoL] because there are many AWS users and it's a conservative approach. - - Please check [Support Matrix of Argo CD][Kubernetes Compatibility Matrix] for official info. +- Kubernetes: `>=1.22.0-0` - Helm v3.0.0+ ## Installing the Chart @@ -669,8 +376,9 @@ NAME: my-release | Key | Type | Default | Description | |-----|------|---------|-------------| -| apiVersionOverrides | object | `{}` | | -| crds.additionalLabels | object | `{}` | Addtional labels to be added to all CRDs | +| apiVersionOverrides.autoscaling | string | `""` | String to override apiVersion of autoscaling rendered by this helm chart | +| apiVersionOverrides.certmanager | string | `""` | String to override apiVersion of cert-manager resources rendered by this helm chart | +| apiVersionOverrides.cloudgoogle | string | `""` | String to override apiVersion of GKE resources rendered by this helm chart | | crds.annotations | object | `{}` | Annotations to be added to all CRDs | | crds.install | bool | `true` | Install and upgrade CRDs | | crds.keep | bool | `true` | Keep CRDs on chart uninstall | @@ -680,25 +388,18 @@ NAME: my-release | fullnameOverride | string | `""` | String to fully override `"argo-cd.fullname"` | | kubeVersionOverride | string | `""` | Override the Kubernetes version, which is used to evaluate certain manifests | | nameOverride | string | `"argocd"` | Provide a name in place of `argocd` | -| namespaceOverride | string | `.Release.Namespace` | Override the namespace | | openshift.enabled | bool | `false` | enables using arbitrary uid for argo repo server | ## Global Configs | Key | Type | Default | Description | |-----|------|---------|-------------| -| global.addPrometheusAnnotations | bool | `false` | Add Prometheus scrape annotations to all metrics services. This can be used as an alternative to the ServiceMonitors. | | global.additionalLabels | object | `{}` | Common labels for the all resources | | global.affinity.nodeAffinity.matchExpressions | list | `[]` | Default match expressions for node affinity | | global.affinity.nodeAffinity.type | string | `"hard"` | Default node affinity rules. Either: `none`, `soft` or `hard` | | global.affinity.podAntiAffinity | string | `"soft"` | Default pod anti-affinity rules. Either: `none`, `soft` or `hard` | -| global.certificateAnnotations | object | `{}` | Annotations for the all deployed Certificates | | global.deploymentAnnotations | object | `{}` | Annotations for the all deployed Deployments | | global.deploymentStrategy | object | `{}` | Deployment strategy for the all deployed Deployments | -| global.domain | string | `"argocd.example.com"` | Default domain used by all components | -| global.dualStack.ipFamilies | list | `[]` | IP families that should be supported and the order in which they should be applied to ClusterIP as well. Can be IPv4 and/or IPv6. | -| global.dualStack.ipFamilyPolicy | string | `""` | IP family policy to configure dual-stack see [Configure dual-stack](https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services) | -| global.env | list | `[]` | Environment variables to pass to all deployed Deployments | | global.hostAliases | list | `[]` | Mapping between IP and hostnames that will be injected as entries in the pod's hosts files | | global.image.imagePullPolicy | string | `"IfNotPresent"` | If defined, a imagePullPolicy applied to all Argo CD deployments | | global.image.repository | string | `"quay.io/argoproj/argocd"` | If defined, a repository applied to all Argo CD deployments | @@ -708,12 +409,11 @@ NAME: my-release | global.logging.level | string | `"info"` | Set the global logging level. One of: `debug`, `info`, `warn` or `error` | | global.networkPolicy.create | bool | `false` | Create NetworkPolicy objects for all components | | global.networkPolicy.defaultDenyIngress | bool | `false` | Default deny all ingress traffic | -| global.nodeSelector | object | `{"kubernetes.io/os":"linux"}` | Default node selector for all components | +| global.nodeSelector | object | `{}` | Default node selector for all components | | global.podAnnotations | object | `{}` | Annotations for the all deployed pods | | global.podLabels | object | `{}` | Labels for the all deployed pods | | global.priorityClassName | string | `""` | Default priority class for all components | | global.revisionHistoryLimit | int | `3` | Number of old deployment ReplicaSets to retain. The rest will be garbage collected. | -| global.runtimeClassName | string | `""` | Runtime class name for all components | | global.securityContext | object | `{}` (See [values.yaml]) | Toggle and define pod-level security context. | | global.statefulsetAnnotations | object | `{}` | Annotations for the all deployed Statefulsets | | global.tolerations | list | `[]` | Default tolerations for all components | @@ -723,17 +423,16 @@ NAME: my-release | Key | Type | Default | Description | |-----|------|---------|-------------| -| configs.clusterCredentials | object | `{}` (See [values.yaml]) | Provide one or multiple [external cluster credentials] | +| configs.clusterCredentials | list | `[]` (See [values.yaml]) | Provide one or multiple [external cluster credentials] | | configs.cm."admin.enabled" | bool | `true` | Enable local admin user | -| configs.cm."application.instanceLabelKey" | string | `"argocd.argoproj.io/instance"` | The name of tracking label used by Argo CD for resource pruning | -| configs.cm."application.sync.impersonation.enabled" | bool | `false` | Enable control of the service account used for the sync operation (alpha) | +| configs.cm."application.instanceLabelKey" | string | Defaults to app.kubernetes.io/instance | The name of tracking label used by Argo CD for resource pruning | | configs.cm."exec.enabled" | bool | `false` | Enable exec feature in Argo UI | | configs.cm."server.rbac.log.enforce.enable" | bool | `false` | Enable logs RBAC enforcement | -| configs.cm."statusbadge.enabled" | bool | `false` | Enable Status Badge | | configs.cm."timeout.hard.reconciliation" | string | `"0s"` | Timeout to refresh application data as well as target manifests cache | | configs.cm."timeout.reconciliation" | string | `"180s"` | Timeout to discover if a new manifests version got published to the repository | | configs.cm.annotations | object | `{}` | Annotations to be added to argocd-cm configmap | | configs.cm.create | bool | `true` | Create the argocd-cm configmap for [declarative setup] | +| configs.cm.url | string | `""` | Argo CD's externally facing base URL (optional). Required when configuring SSO | | configs.cmp.annotations | object | `{}` | Annotations to be added to argocd-cmp-cm configmap | | configs.cmp.create | bool | `false` | Create the argocd-cmp-cm configmap | | configs.cmp.plugins | object | `{}` | Plugin yaml files to be added to argocd-cmp-cm | @@ -741,11 +440,8 @@ NAME: my-release | configs.credentialTemplatesAnnotations | object | `{}` | Annotations to be added to `configs.credentialTemplates` Secret | | configs.gpg.annotations | object | `{}` | Annotations to be added to argocd-gpg-keys-cm configmap | | configs.gpg.keys | object | `{}` (See [values.yaml]) | [GnuPG] public keys to add to the keyring | -| configs.params."application.namespaces" | string | `""` | Enables [Applications in any namespace] | | configs.params."applicationsetcontroller.enable.progressive.syncs" | bool | `false` | Enables use of the Progressive Syncs capability | -| configs.params."applicationsetcontroller.namespaces" | string | `""` (default is only the ns where the controller is installed) | A list of glob patterns specifying where to look for ApplicationSet resources. (e.g. `"argocd,argocd-appsets-*"`) | | configs.params."applicationsetcontroller.policy" | string | `"sync"` | Modify how application is synced between the generator and the cluster. One of: `sync`, `create-only`, `create-update`, `create-delete` | -| configs.params."controller.ignore.normalizer.jq.timeout" | string | `"1s"` | JQ Path expression timeout | | configs.params."controller.operation.processors" | int | `10` | Number of application operation processors | | configs.params."controller.repo.server.timeout.seconds" | int | `60` | Repo server RPC call timeout seconds. | | configs.params."controller.self.heal.timeout.seconds" | int | `5` | Specifies timeout between application self heal attempts | @@ -754,17 +450,14 @@ NAME: my-release | configs.params."reposerver.parallelism.limit" | int | `0` | Limit on number of concurrent manifests generate requests. Any value less the 1 means no limit. | | configs.params."server.basehref" | string | `"/"` | Value for base href in index.html. Used if Argo CD is running behind reverse proxy under subpath different from / | | configs.params."server.disable.auth" | bool | `false` | Disable Argo CD RBAC for user authentication | -| configs.params."server.enable.gzip" | bool | `true` | Enable GZIP compression | -| configs.params."server.enable.proxy.extension" | bool | `false` | Enable proxy extension feature. (proxy extension is in Alpha phase) | +| configs.params."server.enable.gzip" | bool | `false` | Enable GZIP compression | | configs.params."server.insecure" | bool | `false` | Run server without TLS | | configs.params."server.rootpath" | string | `""` | Used if Argo CD is running behind reverse proxy under subpath different from / | | configs.params."server.staticassets" | string | `"/shared/app"` | Directory path that contains additional static assets | | configs.params."server.x.frame.options" | string | `"sameorigin"` | Set X-Frame-Options header in HTTP responses to value. To disable, set to "". | | configs.params.annotations | object | `{}` | Annotations to be added to the argocd-cmd-params-cm ConfigMap | -| configs.params.create | bool | `true` | Create the argocd-cmd-params-cm configmap If false, it is expected the configmap will be created by something else. | | configs.rbac."policy.csv" | string | `''` (See [values.yaml]) | File containing user-defined policies and role definitions. | | configs.rbac."policy.default" | string | `""` | The name of the default role which Argo CD will falls back to, when authorizing API requests (optional). If omitted or empty, users may be still be able to login, but will see no apps, projects, etc... | -| configs.rbac."policy.matchMode" | string | `"glob"` | Matcher function for Casbin, `glob` for glob matcher and `regex` for regex matcher. | | configs.rbac.annotations | object | `{}` | Annotations to be added to argocd-rbac-cm configmap | | configs.rbac.create | bool | `true` | Create the argocd-rbac-cm configmap with ([Argo CD RBAC policy]) definitions. If false, it is expected the configmap will be created by something else. Argo CD will not work if there is no configmap created with the name above. | | configs.rbac.scopes | string | `"[groups]"` | OIDC scopes to examine during rbac enforcement (in addition to `sub` scope). The scope value can be a string, or a list of strings. | @@ -773,8 +466,6 @@ NAME: my-release | configs.secret.annotations | object | `{}` | Annotations to be added to argocd-secret | | configs.secret.argocdServerAdminPassword | string | `""` | Bcrypt hashed admin password | | configs.secret.argocdServerAdminPasswordMtime | string | `""` (defaults to current time) | Admin password modification time. Eg. `"2006-01-02T15:04:05Z"` | -| configs.secret.azureDevops.password | string | `""` | Shared secret password for authenticating Azure DevOps webhook events | -| configs.secret.azureDevops.username | string | `""` | Shared secret username for authenticating Azure DevOps webhook events | | configs.secret.bitbucketServerSecret | string | `""` | Shared secret for authenticating BitbucketServer webhook events | | configs.secret.bitbucketUUID | string | `""` | UUID for authenticating Bitbucket webhook events | | configs.secret.createSecret | bool | `true` | Create the argocd-secret | @@ -784,34 +475,28 @@ NAME: my-release | configs.secret.gogsSecret | string | `""` | Shared secret for authenticating Gogs webhook events | | configs.secret.labels | object | `{}` | Labels to be added to argocd-secret | | configs.ssh.annotations | object | `{}` | Annotations to be added to argocd-ssh-known-hosts-cm configmap | -| configs.ssh.create | bool | `true` | Specifies if the argocd-ssh-known-hosts-cm configmap should be created by Helm. | | configs.ssh.extraHosts | string | `""` | Additional known hosts for private repositories | | configs.ssh.knownHosts | string | See [values.yaml] | Known hosts to be added to the known host list by default. | | configs.styles | string | `""` (See [values.yaml]) | Define custom [CSS styles] for your argo instance. This setting will automatically mount the provided CSS and reference it in the argo configuration. | | configs.tls.annotations | object | `{}` | Annotations to be added to argocd-tls-certs-cm configmap | | configs.tls.certificates | object | `{}` (See [values.yaml]) | TLS certificates for Git repositories | -| configs.tls.create | bool | `true` | Specifies if the argocd-tls-certs-cm configmap should be created by Helm. | ## Argo CD Controller | Key | Type | Default | Description | |-----|------|---------|-------------| | controller.affinity | object | `{}` (defaults to global.affinity preset) | Assign custom [affinity] rules to the deployment | -| controller.automountServiceAccountToken | bool | `true` | Automount API credentials for the Service Account into the pod. | +| controller.args | object | `{}` | DEPRECATED - Application controller commandline flags | | controller.clusterRoleRules.enabled | bool | `false` | Enable custom rules for the application controller's ClusterRole resource | | controller.clusterRoleRules.rules | list | `[]` | List of custom rules for the application controller's ClusterRole resource | | controller.containerPorts.metrics | int | `8082` | Metrics container port | | controller.containerSecurityContext | object | See [values.yaml] | Application controller container-level security context | -| controller.deploymentAnnotations | object | `{}` | Annotations for the application controller Deployment | | controller.dnsConfig | object | `{}` | [DNS configuration] | | controller.dnsPolicy | string | `"ClusterFirst"` | Alternative DNS policy for application controller pods | -| controller.dynamicClusterDistribution | bool | `false` | Enable dynamic cluster distribution (alpha) Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/dynamic-cluster-distribution | -| controller.emptyDir.sizeLimit | string | `""` (defaults not set if not specified i.e. no size limit) | EmptyDir size limit for application controller | | controller.env | list | `[]` | Environment variables to pass to application controller | | controller.envFrom | list | `[]` (See [values.yaml]) | envFrom to pass to application controller | | controller.extraArgs | list | `[]` | Additional command line arguments to pass to application controller | | controller.extraContainers | list | `[]` | Additional containers to be added to the application controller pod | -| controller.heartbeatTime | int | `10` | Application controller heartbeat time Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/dynamic-cluster-distribution/#working-of-dynamic-distribution | | controller.hostNetwork | bool | `false` | Host Network for application controller pods | | controller.image.imagePullPolicy | string | `""` (defaults to global.image.imagePullPolicy) | Image pull policy for the application controller | | controller.image.repository | string | `""` (defaults to global.image.repository) | Repository to use for the application controller | @@ -827,17 +512,13 @@ NAME: my-release | controller.metrics.rules.namespace | string | `""` | PrometheusRule namespace | | controller.metrics.rules.selector | object | `{}` | PrometheusRule selector | | controller.metrics.rules.spec | list | `[]` | PrometheusRule.Spec for the application controller | -| controller.metrics.scrapeTimeout | string | `""` | Prometheus ServiceMonitor scrapeTimeout. If empty, Prometheus uses the global scrape timeout unless it is less than the target's scrape interval value in which the latter is used. | | controller.metrics.service.annotations | object | `{}` | Metrics service annotations | -| controller.metrics.service.clusterIP | string | `""` | Metrics service clusterIP. `None` makes a "headless service" (no virtual IP) | | controller.metrics.service.labels | object | `{}` | Metrics service labels | | controller.metrics.service.portName | string | `"http-metrics"` | Metrics service port name | | controller.metrics.service.servicePort | int | `8082` | Metrics service port | -| controller.metrics.service.type | string | `"ClusterIP"` | Metrics service type | | controller.metrics.serviceMonitor.additionalLabels | object | `{}` | Prometheus ServiceMonitor labels | | controller.metrics.serviceMonitor.annotations | object | `{}` | Prometheus ServiceMonitor annotations | | controller.metrics.serviceMonitor.enabled | bool | `false` | Enable a prometheus ServiceMonitor | -| controller.metrics.serviceMonitor.honorLabels | bool | `false` | When true, honorLabels preserves the metric’s labels when they collide with the target’s labels. | | controller.metrics.serviceMonitor.interval | string | `"30s"` | Prometheus ServiceMonitor interval | | controller.metrics.serviceMonitor.metricRelabelings | list | `[]` | Prometheus [MetricRelabelConfigs] to apply to samples before ingestion | | controller.metrics.serviceMonitor.namespace | string | `""` | Prometheus ServiceMonitor namespace | @@ -862,15 +543,12 @@ NAME: my-release | controller.readinessProbe.timeoutSeconds | int | `1` | Number of seconds after which the [probe] times out | | controller.replicas | int | `1` | The number of application controller pods to run. Additional replicas will cause sharding of managed clusters across number of replicas. | | controller.resources | object | `{}` | Resource limits and requests for the application controller pods | -| controller.revisionHistoryLimit | int | `5` | Maximum number of controller revisions that will be maintained in StatefulSet history | -| controller.runtimeClassName | string | `""` (defaults to global.runtimeClassName) | Runtime class name for the application controller | | controller.serviceAccount.annotations | object | `{}` | Annotations applied to created service account | | controller.serviceAccount.automountServiceAccountToken | bool | `true` | Automount API credentials for the Service Account | | controller.serviceAccount.create | bool | `true` | Create a service account for the application controller | | controller.serviceAccount.labels | object | `{}` | Labels applied to created service account | | controller.serviceAccount.name | string | `"argocd-application-controller"` | Service account name | | controller.statefulsetAnnotations | object | `{}` | Annotations for the application controller StatefulSet | -| controller.terminationGracePeriodSeconds | int | `30` | terminationGracePeriodSeconds for container lifecycle hook | | controller.tolerations | list | `[]` (defaults to global.tolerations) | [Tolerations] for use with node taints | | controller.topologySpreadConstraints | list | `[]` (defaults to global.topologySpreadConstraints) | Assign custom [TopologySpreadConstraints] rules to the application controller | | controller.volumeMounts | list | `[]` | Additional volumeMounts to the application controller main container | @@ -881,11 +559,9 @@ NAME: my-release | Key | Type | Default | Description | |-----|------|---------|-------------| | repoServer.affinity | object | `{}` (defaults to global.affinity preset) | Assign custom [affinity] rules to the deployment | -| repoServer.automountServiceAccountToken | bool | `true` | Automount API credentials for the Service Account into the pod. | -| repoServer.autoscaling.behavior | object | `{}` | Configures the scaling behavior of the target in both Up and Down directions. | +| repoServer.autoscaling.behavior | object | `{}` | Configures the scaling behavior of the target in both Up and Down directions. This is only available on HPA apiVersion `autoscaling/v2beta2` and newer | | repoServer.autoscaling.enabled | bool | `false` | Enable Horizontal Pod Autoscaler ([HPA]) for the repo server | | repoServer.autoscaling.maxReplicas | int | `5` | Maximum number of replicas for the repo server [HPA] | -| repoServer.autoscaling.metrics | list | `[]` | Configures custom HPA metrics for the Argo CD repo server Ref: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/ | | repoServer.autoscaling.minReplicas | int | `1` | Minimum number of replicas for the repo server [HPA] | | repoServer.autoscaling.targetCPUUtilizationPercentage | int | `50` | Average CPU utilization percentage for the repo server [HPA] | | repoServer.autoscaling.targetMemoryUtilizationPercentage | int | `50` | Average memory utilization percentage for the repo server [HPA] | @@ -904,10 +580,8 @@ NAME: my-release | repoServer.deploymentStrategy | object | `{}` | Deployment strategy to be added to the repo server Deployment | | repoServer.dnsConfig | object | `{}` | [DNS configuration] | | repoServer.dnsPolicy | string | `"ClusterFirst"` | Alternative DNS policy for Repo server pods | -| repoServer.emptyDir.sizeLimit | string | `""` (defaults not set if not specified i.e. no size limit) | EmptyDir size limit for repo server | | repoServer.env | list | `[]` | Environment variables to pass to repo server | | repoServer.envFrom | list | `[]` (See [values.yaml]) | envFrom to pass to repo server | -| repoServer.existingVolumes | object | `{}` | Volumes to be used in replacement of emptydir on default volumes | | repoServer.extraArgs | list | `[]` | Additional command line arguments to pass to repo server | | repoServer.extraContainers | list | `[]` | Additional containers to be added to the repo server pod | | repoServer.hostNetwork | bool | `false` | Host Network for Repo server pods | @@ -916,7 +590,6 @@ NAME: my-release | repoServer.image.tag | string | `""` (defaults to global.image.tag) | Tag to use for the repo server | | repoServer.imagePullSecrets | list | `[]` (defaults to global.imagePullSecrets) | Secrets with credentials to pull images from a private registry | | repoServer.initContainers | list | `[]` | Init containers to add to the repo server pods | -| repoServer.lifecycle | object | `{}` | Specify postStart and preStop lifecycle hooks for your argo-repo-server container | | repoServer.livenessProbe.failureThreshold | int | `3` | Minimum consecutive failures for the [probe] to be considered failed after having succeeded | | repoServer.livenessProbe.initialDelaySeconds | int | `10` | Number of seconds after the container has started before [probe] is initiated | | repoServer.livenessProbe.periodSeconds | int | `10` | How often (in seconds) to perform the [probe] | @@ -924,21 +597,17 @@ NAME: my-release | repoServer.livenessProbe.timeoutSeconds | int | `1` | Number of seconds after which the [probe] times out | | repoServer.metrics.enabled | bool | `false` | Deploy metrics service | | repoServer.metrics.service.annotations | object | `{}` | Metrics service annotations | -| repoServer.metrics.service.clusterIP | string | `""` | Metrics service clusterIP. `None` makes a "headless service" (no virtual IP) | | repoServer.metrics.service.labels | object | `{}` | Metrics service labels | | repoServer.metrics.service.portName | string | `"http-metrics"` | Metrics service port name | | repoServer.metrics.service.servicePort | int | `8084` | Metrics service port | -| repoServer.metrics.service.type | string | `"ClusterIP"` | Metrics service type | | repoServer.metrics.serviceMonitor.additionalLabels | object | `{}` | Prometheus ServiceMonitor labels | | repoServer.metrics.serviceMonitor.annotations | object | `{}` | Prometheus ServiceMonitor annotations | | repoServer.metrics.serviceMonitor.enabled | bool | `false` | Enable a prometheus ServiceMonitor | -| repoServer.metrics.serviceMonitor.honorLabels | bool | `false` | When true, honorLabels preserves the metric’s labels when they collide with the target’s labels. | | repoServer.metrics.serviceMonitor.interval | string | `"30s"` | Prometheus ServiceMonitor interval | | repoServer.metrics.serviceMonitor.metricRelabelings | list | `[]` | Prometheus [MetricRelabelConfigs] to apply to samples before ingestion | | repoServer.metrics.serviceMonitor.namespace | string | `""` | Prometheus ServiceMonitor namespace | | repoServer.metrics.serviceMonitor.relabelings | list | `[]` | Prometheus [RelabelConfigs] to apply to samples before scraping | | repoServer.metrics.serviceMonitor.scheme | string | `""` | Prometheus ServiceMonitor scheme | -| repoServer.metrics.serviceMonitor.scrapeTimeout | string | `""` | Prometheus ServiceMonitor scrapeTimeout. If empty, Prometheus uses the global scrape timeout unless it is less than the target's scrape interval value in which the latter is used. | | repoServer.metrics.serviceMonitor.selector | object | `{}` | Prometheus ServiceMonitor selector | | repoServer.metrics.serviceMonitor.tlsConfig | object | `{}` | Prometheus ServiceMonitor tlsConfig | | repoServer.name | string | `"repo-server"` | Repo server name | @@ -959,20 +628,17 @@ NAME: my-release | repoServer.readinessProbe.timeoutSeconds | int | `1` | Number of seconds after which the [probe] times out | | repoServer.replicas | int | `1` | The number of repo server pods to run | | repoServer.resources | object | `{}` | Resource limits and requests for the repo server pods | -| repoServer.runtimeClassName | string | `""` (defaults to global.runtimeClassName) | Runtime class name for the repo server | | repoServer.service.annotations | object | `{}` | Repo server service annotations | | repoServer.service.labels | object | `{}` | Repo server service labels | | repoServer.service.port | int | `8081` | Repo server service port | -| repoServer.service.portName | string | `"tcp-repo-server"` | Repo server service port name | +| repoServer.service.portName | string | `"https-repo-server"` | Repo server service port name | | repoServer.serviceAccount.annotations | object | `{}` | Annotations applied to created service account | | repoServer.serviceAccount.automountServiceAccountToken | bool | `true` | Automount API credentials for the Service Account | | repoServer.serviceAccount.create | bool | `true` | Create repo server service account | | repoServer.serviceAccount.labels | object | `{}` | Labels applied to created service account | | repoServer.serviceAccount.name | string | `""` | Repo server service account name | -| repoServer.terminationGracePeriodSeconds | int | `30` | terminationGracePeriodSeconds for container lifecycle hook | | repoServer.tolerations | list | `[]` (defaults to global.tolerations) | [Tolerations] for use with node taints | | repoServer.topologySpreadConstraints | list | `[]` (defaults to global.topologySpreadConstraints) | Assign custom [TopologySpreadConstraints] rules to the repo server | -| repoServer.useEphemeralHelmWorkingDir | bool | `true` | Toggle the usage of a ephemeral Helm working directory | | repoServer.volumeMounts | list | `[]` | Additional volumeMounts to the repo server main container | | repoServer.volumes | list | `[]` | Additional volumes to the repo server pod | @@ -980,18 +646,21 @@ NAME: my-release | Key | Type | Default | Description | |-----|------|---------|-------------| +| server.GKEbackendConfig.enabled | bool | `false` | Enable BackendConfig custom resource for Google Kubernetes Engine | +| server.GKEbackendConfig.spec | object | `{}` | [BackendConfigSpec] | +| server.GKEfrontendConfig.enabled | bool | `false` | Enable FrontConfig custom resource for Google Kubernetes Engine | +| server.GKEfrontendConfig.spec | object | `{}` | [FrontendConfigSpec] | +| server.GKEmanagedCertificate.domains | list | `["argocd.example.com"]` | Domains for the Google Managed Certificate | +| server.GKEmanagedCertificate.enabled | bool | `false` | Enable ManagedCertificate custom resource for Google Kubernetes Engine. | | server.affinity | object | `{}` (defaults to global.affinity preset) | Assign custom [affinity] rules to the deployment | -| server.automountServiceAccountToken | bool | `true` | Automount API credentials for the Service Account into the pod. | -| server.autoscaling.behavior | object | `{}` | Configures the scaling behavior of the target in both Up and Down directions. | +| server.autoscaling.behavior | object | `{}` | Configures the scaling behavior of the target in both Up and Down directions. This is only available on HPA apiVersion `autoscaling/v2beta2` and newer | | server.autoscaling.enabled | bool | `false` | Enable Horizontal Pod Autoscaler ([HPA]) for the Argo CD server | | server.autoscaling.maxReplicas | int | `5` | Maximum number of replicas for the Argo CD server [HPA] | -| server.autoscaling.metrics | list | `[]` | Configures custom HPA metrics for the Argo CD server Ref: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/ | | server.autoscaling.minReplicas | int | `1` | Minimum number of replicas for the Argo CD server [HPA] | | server.autoscaling.targetCPUUtilizationPercentage | int | `50` | Average CPU utilization percentage for the Argo CD server [HPA] | | server.autoscaling.targetMemoryUtilizationPercentage | int | `50` | Average memory utilization percentage for the Argo CD server [HPA] | | server.certificate.additionalHosts | list | `[]` | Certificate Subject Alternate Names (SANs) | -| server.certificate.annotations | object | `{}` | Annotations to be applied to the Server Certificate | -| server.certificate.domain | string | `""` (defaults to global.domain) | Certificate primary domain (commonName) | +| server.certificate.domain | string | `"argocd.example.com"` | Certificate primary domain (commonName) | | server.certificate.duration | string | `""` (defaults to 2160h = 90d if not specified) | The requested 'duration' (i.e. lifetime) of the certificate. | | server.certificate.enabled | bool | `false` | Deploy a Certificate resource (requires cert-manager) | | server.certificate.issuer.group | string | `""` | Certificate issuer group. Set if using an external issuer. Eg. `cert-manager.io` | @@ -1002,15 +671,12 @@ NAME: my-release | server.certificate.privateKey.rotationPolicy | string | `"Never"` | Rotation policy of private key when certificate is re-issued. Either: `Never` or `Always` | | server.certificate.privateKey.size | int | `2048` | Key bit size of the private key. If algorithm is set to `Ed25519`, size is ignored. | | server.certificate.renewBefore | string | `""` (defaults to 360h = 15d if not specified) | How long before the expiry a certificate should be renewed. | -| server.certificate.secretTemplateAnnotations | object | `{}` | Annotations that allow the certificate to be composed from data residing in existing Kubernetes Resources | -| server.certificate.usages | list | `[]` | Usages for the certificate | +| server.certificate.secretName | string | `"argocd-server-tls"` | The name of the Secret that will be automatically created and managed by this Certificate resource | | server.certificateSecret.annotations | object | `{}` | Annotations to be added to argocd-server-tls secret | | server.certificateSecret.crt | string | `""` | Certificate data | | server.certificateSecret.enabled | bool | `false` | Create argocd-server-tls secret | | server.certificateSecret.key | string | `""` | Private Key of the certificate | | server.certificateSecret.labels | object | `{}` | Labels to be added to argocd-server-tls secret | -| server.clusterRoleRules.enabled | bool | `false` | Enable custom rules for the server's ClusterRole resource | -| server.clusterRoleRules.rules | list | `[]` | List of custom rules for the server's ClusterRole resource | | server.containerPorts.metrics | int | `8083` | Metrics container port | | server.containerPorts.server | int | `8080` | Server container port | | server.containerSecurityContext | object | See [values.yaml] | Server container-level security context | @@ -1018,15 +684,13 @@ NAME: my-release | server.deploymentStrategy | object | `{}` | Deployment strategy to be added to the server Deployment | | server.dnsConfig | object | `{}` | [DNS configuration] | | server.dnsPolicy | string | `"ClusterFirst"` | Alternative DNS policy for Server pods | -| server.emptyDir.sizeLimit | string | `""` (defaults not set if not specified i.e. no size limit) | EmptyDir size limit for the Argo CD server | | server.env | list | `[]` | Environment variables to pass to Argo CD server | | server.envFrom | list | `[]` (See [values.yaml]) | envFrom to pass to Argo CD server | | server.extensions.containerSecurityContext | object | See [values.yaml] | Server UI extensions container-level security context | -| server.extensions.enabled | bool | `false` | Enable support for Argo CD extensions | -| server.extensions.extensionList | list | `[]` (See [values.yaml]) | Extensions for Argo CD | +| server.extensions.enabled | bool | `false` | Enable support for Argo UI extensions | | server.extensions.image.imagePullPolicy | string | `""` (defaults to global.image.imagePullPolicy) | Image pull policy for extensions | -| server.extensions.image.repository | string | `"quay.io/argoprojlabs/argocd-extension-installer"` | Repository to use for extension installer image | -| server.extensions.image.tag | string | `"v0.0.8"` | Tag to use for extension installer image | +| server.extensions.image.repository | string | `"ghcr.io/argoproj-labs/argocd-extensions"` | Repository to use for extensions image | +| server.extensions.image.tag | string | `"v0.2.1"` | Tag to use for extensions image | | server.extensions.resources | object | `{}` | Resource limits and requests for the argocd-extensions container | | server.extraArgs | list | `[]` | Additional command line arguments to pass to Argo CD server | | server.extraContainers | list | `[]` | Additional containers to be added to the server pod | @@ -1036,36 +700,28 @@ NAME: my-release | server.image.tag | string | `""` (defaults to global.image.tag) | Tag to use for the Argo CD server | | server.imagePullSecrets | list | `[]` (defaults to global.imagePullSecrets) | Secrets with credentials to pull images from a private registry | | server.ingress.annotations | object | `{}` | Additional ingress annotations | -| server.ingress.aws.backendProtocolVersion | string | `"GRPC"` | Backend protocol version for the AWS ALB gRPC service | -| server.ingress.aws.serviceType | string | `"NodePort"` | Service type for the AWS ALB gRPC service | -| server.ingress.controller | string | `"generic"` | Specific implementation for ingress controller. One of `generic`, `aws` or `gke` | | server.ingress.enabled | bool | `false` | Enable an ingress resource for the Argo CD server | -| server.ingress.extraHosts | list | `[]` (See [values.yaml]) | The list of additional hostnames to be covered by ingress record | -| server.ingress.extraPaths | list | `[]` (See [values.yaml]) | Additional ingress paths | -| server.ingress.extraRules | list | `[]` (See [values.yaml]) | Additional ingress rules | -| server.ingress.extraTls | list | `[]` (See [values.yaml]) | Additional TLS configuration | -| server.ingress.gke.backendConfig | object | `{}` (See [values.yaml]) | Google [BackendConfig] resource, for use with the GKE Ingress Controller | -| server.ingress.gke.frontendConfig | object | `{}` (See [values.yaml]) | Google [FrontendConfig] resource, for use with the GKE Ingress Controller | -| server.ingress.gke.managedCertificate.create | bool | `true` | Create ManagedCertificate resource and annotations for Google Load balancer | -| server.ingress.gke.managedCertificate.extraDomains | list | `[]` | Additional domains for ManagedCertificate resource | -| server.ingress.hostname | string | `""` (defaults to global.domain) | Argo CD server hostname | +| server.ingress.extraPaths | list | `[]` | Additional ingress paths | +| server.ingress.hosts | list | `[]` | List of ingress hosts | +| server.ingress.https | bool | `false` | Uses `server.service.servicePortHttps` instead `server.service.servicePortHttp` | | server.ingress.ingressClassName | string | `""` | Defines which ingress controller will implement the resource | | server.ingress.labels | object | `{}` | Additional ingress labels | -| server.ingress.path | string | `"/"` | The path to Argo CD server | | server.ingress.pathType | string | `"Prefix"` | Ingress path type. One of `Exact`, `Prefix` or `ImplementationSpecific` | -| server.ingress.tls | bool | `false` | Enable TLS configuration for the hostname defined at `server.ingress.hostname` | +| server.ingress.paths | list | `["/"]` | List of ingress paths | +| server.ingress.tls | list | `[]` | Ingress TLS configuration | | server.ingressGrpc.annotations | object | `{}` | Additional ingress annotations for dedicated [gRPC-ingress] | +| server.ingressGrpc.awsALB.backendProtocolVersion | string | `"HTTP2"` | Backend protocol version for the AWS ALB gRPC service | +| server.ingressGrpc.awsALB.serviceType | string | `"NodePort"` | Service type for the AWS ALB gRPC service | | server.ingressGrpc.enabled | bool | `false` | Enable an ingress resource for the Argo CD server for dedicated [gRPC-ingress] | -| server.ingressGrpc.extraHosts | list | `[]` (See [values.yaml]) | The list of additional hostnames to be covered by ingress record | -| server.ingressGrpc.extraPaths | list | `[]` (See [values.yaml]) | Additional ingress paths for dedicated [gRPC-ingress] | -| server.ingressGrpc.extraRules | list | `[]` (See [values.yaml]) | Additional ingress rules | -| server.ingressGrpc.extraTls | list | `[]` (See [values.yaml]) | Additional TLS configuration for dedicated [gRPC-ingress] | -| server.ingressGrpc.hostname | string | `""` (defaults to grpc.`server.ingress.hostname`) | Argo CD server hostname for dedicated [gRPC-ingress] | +| server.ingressGrpc.extraPaths | list | `[]` | Additional ingress paths for dedicated [gRPC-ingress] | +| server.ingressGrpc.hosts | list | `[]` | List of ingress hosts for dedicated [gRPC-ingress] | +| server.ingressGrpc.https | bool | `false` | Uses `server.service.servicePortHttps` instead `server.service.servicePortHttp` | | server.ingressGrpc.ingressClassName | string | `""` | Defines which ingress controller will implement the resource [gRPC-ingress] | +| server.ingressGrpc.isAWSALB | bool | `false` | Setup up gRPC ingress to work with an AWS ALB | | server.ingressGrpc.labels | object | `{}` | Additional ingress labels for dedicated [gRPC-ingress] | -| server.ingressGrpc.path | string | `"/"` | Argo CD server ingress path for dedicated [gRPC-ingress] | | server.ingressGrpc.pathType | string | `"Prefix"` | Ingress path type for dedicated [gRPC-ingress]. One of `Exact`, `Prefix` or `ImplementationSpecific` | -| server.ingressGrpc.tls | bool | `false` | Enable TLS configuration for the hostname defined at `server.ingressGrpc.hostname` | +| server.ingressGrpc.paths | list | `["/"]` | List of ingress paths for dedicated [gRPC-ingress] | +| server.ingressGrpc.tls | list | `[]` | Ingress TLS configuration for dedicated [gRPC-ingress] | | server.initContainers | list | `[]` | Init containers to add to the server pod | | server.lifecycle | object | `{}` | Specify postStart and preStop lifecycle hooks for your argo-cd-server container | | server.livenessProbe.failureThreshold | int | `3` | Minimum consecutive failures for the [probe] to be considered failed after having succeeded | @@ -1075,21 +731,17 @@ NAME: my-release | server.livenessProbe.timeoutSeconds | int | `1` | Number of seconds after which the [probe] times out | | server.metrics.enabled | bool | `false` | Deploy metrics service | | server.metrics.service.annotations | object | `{}` | Metrics service annotations | -| server.metrics.service.clusterIP | string | `""` | Metrics service clusterIP. `None` makes a "headless service" (no virtual IP) | | server.metrics.service.labels | object | `{}` | Metrics service labels | | server.metrics.service.portName | string | `"http-metrics"` | Metrics service port name | | server.metrics.service.servicePort | int | `8083` | Metrics service port | -| server.metrics.service.type | string | `"ClusterIP"` | Metrics service type | | server.metrics.serviceMonitor.additionalLabels | object | `{}` | Prometheus ServiceMonitor labels | | server.metrics.serviceMonitor.annotations | object | `{}` | Prometheus ServiceMonitor annotations | | server.metrics.serviceMonitor.enabled | bool | `false` | Enable a prometheus ServiceMonitor | -| server.metrics.serviceMonitor.honorLabels | bool | `false` | When true, honorLabels preserves the metric’s labels when they collide with the target’s labels. | | server.metrics.serviceMonitor.interval | string | `"30s"` | Prometheus ServiceMonitor interval | | server.metrics.serviceMonitor.metricRelabelings | list | `[]` | Prometheus [MetricRelabelConfigs] to apply to samples before ingestion | | server.metrics.serviceMonitor.namespace | string | `""` | Prometheus ServiceMonitor namespace | | server.metrics.serviceMonitor.relabelings | list | `[]` | Prometheus [RelabelConfigs] to apply to samples before scraping | | server.metrics.serviceMonitor.scheme | string | `""` | Prometheus ServiceMonitor scheme | -| server.metrics.serviceMonitor.scrapeTimeout | string | `""` | Prometheus ServiceMonitor scrapeTimeout. If empty, Prometheus uses the global scrape timeout unless it is less than the target's scrape interval value in which the latter is used. | | server.metrics.serviceMonitor.selector | object | `{}` | Prometheus ServiceMonitor selector | | server.metrics.serviceMonitor.tlsConfig | object | `{}` | Prometheus ServiceMonitor tlsConfig | | server.name | string | `"server"` | Argo CD server name | @@ -1114,12 +766,10 @@ NAME: my-release | server.route.hostname | string | `""` | Hostname of OpenShift Route | | server.route.termination_policy | string | `"None"` | Termination policy of Openshift Route | | server.route.termination_type | string | `"passthrough"` | Termination type of Openshift Route | -| server.runtimeClassName | string | `""` (defaults to global.runtimeClassName) | Runtime class name for the Argo CD server | | server.service.annotations | object | `{}` | Server service annotations | | server.service.externalIPs | list | `[]` | Server service external IPs | -| server.service.externalTrafficPolicy | string | `"Cluster"` | Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints | +| server.service.externalTrafficPolicy | string | `""` | Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints | | server.service.labels | object | `{}` | Server service labels | -| server.service.loadBalancerClass | string | `""` | The class of the load balancer implementation | | server.service.loadBalancerIP | string | `""` | LoadBalancer will get created with the IP specified in this field | | server.service.loadBalancerSourceRanges | list | `[]` | Source IP ranges to allow access to service from | | server.service.nodePortHttp | int | `30080` | Server service http port for NodePort service type (only if `server.service.type` is set to "NodePort") | @@ -1127,27 +777,46 @@ NAME: my-release | server.service.servicePortHttp | int | `80` | Server service http port | | server.service.servicePortHttpName | string | `"http"` | Server service http port name, can be used to route traffic via istio | | server.service.servicePortHttps | int | `443` | Server service https port | -| server.service.servicePortHttpsAppProtocol | string | `""` | Server service https port appProtocol | | server.service.servicePortHttpsName | string | `"https"` | Server service https port name, can be used to route traffic via istio | -| server.service.sessionAffinity | string | `"None"` | Used to maintain session affinity. Supports `ClientIP` and `None` | +| server.service.sessionAffinity | string | `""` | Used to maintain session affinity. Supports `ClientIP` and `None` | | server.service.type | string | `"ClusterIP"` | Server service type | | server.serviceAccount.annotations | object | `{}` | Annotations applied to created service account | | server.serviceAccount.automountServiceAccountToken | bool | `true` | Automount API credentials for the Service Account | | server.serviceAccount.create | bool | `true` | Create server service account | | server.serviceAccount.labels | object | `{}` | Labels applied to created service account | | server.serviceAccount.name | string | `"argocd-server"` | Server service account name | -| server.terminationGracePeriodSeconds | int | `30` | terminationGracePeriodSeconds for container lifecycle hook | | server.tolerations | list | `[]` (defaults to global.tolerations) | [Tolerations] for use with node taints | | server.topologySpreadConstraints | list | `[]` (defaults to global.topologySpreadConstraints) | Assign custom [TopologySpreadConstraints] rules to the Argo CD server | | server.volumeMounts | list | `[]` | Additional volumeMounts to the server main container | | server.volumes | list | `[]` | Additional volumes to the server pod | +### Using AWS ALB Ingress Controller With GRPC + +If you are using an AWS ALB Ingress controller, you will need to set `server.ingressGrpc.isAWSALB` to `true`. This will create a second service with the annotation `alb.ingress.kubernetes.io/backend-protocol-version: HTTP2` and modify the server ingress to add a condition annotation to route GRPC traffic to the new service. + +Example: + +```yaml +server: + ingress: + enabled: true + annotations: + alb.ingress.kubernetes.io/backend-protocol: HTTPS + alb.ingress.kubernetes.io/listen-ports: '[{"HTTPS":443}]' + alb.ingress.kubernetes.io/scheme: internal + alb.ingress.kubernetes.io/target-type: ip + ingressGrpc: + enabled: true + isAWSALB: true + awsALB: + serviceType: ClusterIP +``` + ## Dex | Key | Type | Default | Description | |-----|------|---------|-------------| | dex.affinity | object | `{}` (defaults to global.affinity preset) | Assign custom [affinity] rules to the deployment | -| dex.automountServiceAccountToken | bool | `true` | Automount API credentials for the Service Account into the pod. | | dex.certificateSecret.annotations | object | `{}` | Annotations to be added to argocd-dex-server-tls secret | | dex.certificateSecret.ca | string | `""` | Certificate authority. Required for self-signed certificates. | | dex.certificateSecret.crt | string | `""` | Certificate data. Must contain SANs of Dex service (ie: argocd-dex-server, argocd-dex-server.argo-cd.svc) | @@ -1162,7 +831,6 @@ NAME: my-release | dex.deploymentStrategy | object | `{}` | Deployment strategy to be added to the Dex server Deployment | | dex.dnsConfig | object | `{}` | [DNS configuration] | | dex.dnsPolicy | string | `"ClusterFirst"` | Alternative DNS policy for Dex server pods | -| dex.emptyDir.sizeLimit | string | `""` (defaults not set if not specified i.e. no size limit) | EmptyDir size limit for Dex server | | dex.enabled | bool | `true` | Enable dex | | dex.env | list | `[]` | Environment variables to pass to the Dex server | | dex.envFrom | list | `[]` (See [values.yaml]) | envFrom to pass to the Dex server | @@ -1170,18 +838,14 @@ NAME: my-release | dex.extraContainers | list | `[]` | Additional containers to be added to the dex pod | | dex.image.imagePullPolicy | string | `""` (defaults to global.image.imagePullPolicy) | Dex imagePullPolicy | | dex.image.repository | string | `"ghcr.io/dexidp/dex"` | Dex image repository | -| dex.image.tag | string | `"v2.42.0"` | Dex image tag | +| dex.image.tag | string | `"v2.36.0"` | Dex image tag | | dex.imagePullSecrets | list | `[]` (defaults to global.imagePullSecrets) | Secrets with credentials to pull images from a private registry | | dex.initContainers | list | `[]` | Init containers to add to the dex pod | | dex.initImage.imagePullPolicy | string | `""` (defaults to global.image.imagePullPolicy) | Argo CD init image imagePullPolicy | | dex.initImage.repository | string | `""` (defaults to global.image.repository) | Argo CD init image repository | -| dex.initImage.resources | object | `{}` (defaults to dex.resources) | Argo CD init image resources | | dex.initImage.tag | string | `""` (defaults to global.image.tag) | Argo CD init image tag | | dex.livenessProbe.enabled | bool | `false` | Enable Kubernetes liveness probe for Dex >= 2.28.0 | | dex.livenessProbe.failureThreshold | int | `3` | Minimum consecutive failures for the [probe] to be considered failed after having succeeded | -| dex.livenessProbe.httpPath | string | `"/healthz/live"` | Http path to use for the liveness probe | -| dex.livenessProbe.httpPort | string | `"metrics"` | Http port to use for the liveness probe | -| dex.livenessProbe.httpScheme | string | `"HTTP"` | Scheme to use for for the liveness probe (can be HTTP or HTTPS) | | dex.livenessProbe.initialDelaySeconds | int | `10` | Number of seconds after the container has started before [probe] is initiated | | dex.livenessProbe.periodSeconds | int | `10` | How often (in seconds) to perform the [probe] | | dex.livenessProbe.successThreshold | int | `1` | Minimum consecutive successes for the [probe] to be considered successful after having failed | @@ -1195,7 +859,6 @@ NAME: my-release | dex.metrics.serviceMonitor.additionalLabels | object | `{}` | Prometheus ServiceMonitor labels | | dex.metrics.serviceMonitor.annotations | object | `{}` | Prometheus ServiceMonitor annotations | | dex.metrics.serviceMonitor.enabled | bool | `false` | Enable a prometheus ServiceMonitor | -| dex.metrics.serviceMonitor.honorLabels | bool | `false` | When true, honorLabels preserves the metric’s labels when they collide with the target’s labels. | | dex.metrics.serviceMonitor.interval | string | `"30s"` | Prometheus ServiceMonitor interval | | dex.metrics.serviceMonitor.metricRelabelings | list | `[]` | Prometheus [MetricRelabelConfigs] to apply to samples before ingestion | | dex.metrics.serviceMonitor.namespace | string | `""` | Prometheus ServiceMonitor namespace | @@ -1215,15 +878,11 @@ NAME: my-release | dex.priorityClassName | string | `""` (defaults to global.priorityClassName) | Priority class for the dex pods | | dex.readinessProbe.enabled | bool | `false` | Enable Kubernetes readiness probe for Dex >= 2.28.0 | | dex.readinessProbe.failureThreshold | int | `3` | Minimum consecutive failures for the [probe] to be considered failed after having succeeded | -| dex.readinessProbe.httpPath | string | `"/healthz/ready"` | Http path to use for the readiness probe | -| dex.readinessProbe.httpPort | string | `"metrics"` | Http port to use for the readiness probe | -| dex.readinessProbe.httpScheme | string | `"HTTP"` | Scheme to use for for the liveness probe (can be HTTP or HTTPS) | | dex.readinessProbe.initialDelaySeconds | int | `10` | Number of seconds after the container has started before [probe] is initiated | | dex.readinessProbe.periodSeconds | int | `10` | How often (in seconds) to perform the [probe] | | dex.readinessProbe.successThreshold | int | `1` | Minimum consecutive successes for the [probe] to be considered successful after having failed | | dex.readinessProbe.timeoutSeconds | int | `1` | Number of seconds after which the [probe] times out | | dex.resources | object | `{}` | Resource limits and requests for dex | -| dex.runtimeClassName | string | `""` (defaults to global.runtimeClassName) | Runtime class name for Dex | | dex.serviceAccount.annotations | object | `{}` | Annotations applied to created service account | | dex.serviceAccount.automountServiceAccountToken | bool | `true` | Automount API credentials for the Service Account | | dex.serviceAccount.create | bool | `true` | Create dex service account | @@ -1233,7 +892,6 @@ NAME: my-release | dex.servicePortHttp | int | `5556` | Service port for HTTP access | | dex.servicePortHttpName | string | `"http"` | Service port name for HTTP access | | dex.servicePortMetrics | int | `5558` | Service port for metrics access | -| dex.terminationGracePeriodSeconds | int | `30` | terminationGracePeriodSeconds for container lifecycle hook | | dex.tolerations | list | `[]` (defaults to global.tolerations) | [Tolerations] for use with node taints | | dex.topologySpreadConstraints | list | `[]` (defaults to global.topologySpreadConstraints) | Assign custom [TopologySpreadConstraints] rules to dex | | dex.volumeMounts | list | `[]` | Additional volumeMounts to the dex main container | @@ -1246,7 +904,6 @@ NAME: my-release | Key | Type | Default | Description | |-----|------|---------|-------------| | redis.affinity | object | `{}` (defaults to global.affinity preset) | Assign custom [affinity] rules to the deployment | -| redis.automountServiceAccountToken | bool | `true` | Automount API credentials for the Service Account into the pod. | | redis.containerPorts.metrics | int | `9121` | Metrics container port | | redis.containerPorts.redis | int | `6379` | Redis container port | | redis.containerSecurityContext | object | See [values.yaml] | Redis container-level security context | @@ -1261,33 +918,15 @@ NAME: my-release | redis.exporter.env | list | `[]` | Environment variables to pass to the Redis exporter | | redis.exporter.image.imagePullPolicy | string | `""` (defaults to global.image.imagePullPolicy) | Image pull policy for the redis-exporter | | redis.exporter.image.repository | string | `"public.ecr.aws/bitnami/redis-exporter"` | Repository to use for the redis-exporter | -| redis.exporter.image.tag | string | `"1.67.0"` | Tag to use for the redis-exporter | -| redis.exporter.livenessProbe.enabled | bool | `false` | Enable Kubernetes liveness probe for Redis exporter | -| redis.exporter.livenessProbe.failureThreshold | int | `5` | Minimum consecutive failures for the [probe] to be considered failed after having succeeded | -| redis.exporter.livenessProbe.initialDelaySeconds | int | `30` | Number of seconds after the container has started before [probe] is initiated | -| redis.exporter.livenessProbe.periodSeconds | int | `15` | How often (in seconds) to perform the [probe] | -| redis.exporter.livenessProbe.successThreshold | int | `1` | Minimum consecutive successes for the [probe] to be considered successful after having failed | -| redis.exporter.livenessProbe.timeoutSeconds | int | `15` | Number of seconds after which the [probe] times out | -| redis.exporter.readinessProbe.enabled | bool | `false` | Enable Kubernetes liveness probe for Redis exporter (optional) | -| redis.exporter.readinessProbe.failureThreshold | int | `5` | Minimum consecutive failures for the [probe] to be considered failed after having succeeded | -| redis.exporter.readinessProbe.initialDelaySeconds | int | `30` | Number of seconds after the container has started before [probe] is initiated | -| redis.exporter.readinessProbe.periodSeconds | int | `15` | How often (in seconds) to perform the [probe] | -| redis.exporter.readinessProbe.successThreshold | int | `1` | Minimum consecutive successes for the [probe] to be considered successful after having failed | -| redis.exporter.readinessProbe.timeoutSeconds | int | `15` | Number of seconds after which the [probe] times out | +| redis.exporter.image.tag | string | `"1.45.0"` | Tag to use for the redis-exporter | | redis.exporter.resources | object | `{}` | Resource limits and requests for redis-exporter sidecar | | redis.extraArgs | list | `[]` | Additional command line arguments to pass to redis-server | | redis.extraContainers | list | `[]` | Additional containers to be added to the redis pod | | redis.image.imagePullPolicy | string | `""` (defaults to global.image.imagePullPolicy) | Redis image pull policy | | redis.image.repository | string | `"public.ecr.aws/docker/library/redis"` | Redis repository | -| redis.image.tag | string | `"7.4.2-alpine"` | Redis tag | +| redis.image.tag | string | `"7.0.11-alpine"` | Redis tag | | redis.imagePullSecrets | list | `[]` (defaults to global.imagePullSecrets) | Secrets with credentials to pull images from a private registry | | redis.initContainers | list | `[]` | Init containers to add to the redis pod | -| redis.livenessProbe.enabled | bool | `false` | Enable Kubernetes liveness probe for Redis server | -| redis.livenessProbe.failureThreshold | int | `5` | Minimum consecutive failures for the [probe] to be considered failed after having succeeded | -| redis.livenessProbe.initialDelaySeconds | int | `30` | Number of seconds after the container has started before [probe] is initiated | -| redis.livenessProbe.periodSeconds | int | `15` | How often (in seconds) to perform the [probe] | -| redis.livenessProbe.successThreshold | int | `1` | Minimum consecutive successes for the [probe] to be considered successful after having failed | -| redis.livenessProbe.timeoutSeconds | int | `15` | Number of seconds after which the [probe] times out | | redis.metrics.enabled | bool | `false` | Deploy metrics service | | redis.metrics.service.annotations | object | `{}` | Metrics service annotations | | redis.metrics.service.clusterIP | string | `"None"` | Metrics service clusterIP. `None` makes a "headless service" (no virtual IP) | @@ -1298,7 +937,6 @@ NAME: my-release | redis.metrics.serviceMonitor.additionalLabels | object | `{}` | Prometheus ServiceMonitor labels | | redis.metrics.serviceMonitor.annotations | object | `{}` | Prometheus ServiceMonitor annotations | | redis.metrics.serviceMonitor.enabled | bool | `false` | Enable a prometheus ServiceMonitor | -| redis.metrics.serviceMonitor.honorLabels | bool | `false` | When true, honorLabels preserves the metric’s labels when they collide with the target’s labels. | | redis.metrics.serviceMonitor.interval | string | `"30s"` | Interval at which metrics should be scraped | | redis.metrics.serviceMonitor.metricRelabelings | list | `[]` | Prometheus [MetricRelabelConfigs] to apply to samples before ingestion | | redis.metrics.serviceMonitor.namespace | string | `""` | Prometheus ServiceMonitor namespace | @@ -1316,14 +954,7 @@ NAME: my-release | redis.podAnnotations | object | `{}` | Annotations to be added to the Redis server pods | | redis.podLabels | object | `{}` | Labels to be added to the Redis server pods | | redis.priorityClassName | string | `""` (defaults to global.priorityClassName) | Priority class for redis pods | -| redis.readinessProbe.enabled | bool | `false` | Enable Kubernetes liveness probe for Redis server | -| redis.readinessProbe.failureThreshold | int | `5` | Minimum consecutive failures for the [probe] to be considered failed after having succeeded | -| redis.readinessProbe.initialDelaySeconds | int | `30` | Number of seconds after the container has started before [probe] is initiated | -| redis.readinessProbe.periodSeconds | int | `15` | How often (in seconds) to perform the [probe] | -| redis.readinessProbe.successThreshold | int | `1` | Minimum consecutive successes for the [probe] to be considered successful after having failed | -| redis.readinessProbe.timeoutSeconds | int | `15` | Number of seconds after which the [probe] times out | | redis.resources | object | `{}` | Resource limits and requests for redis | -| redis.runtimeClassName | string | `""` (defaults to global.runtimeClassName) | Runtime class name for redis | | redis.securityContext | object | See [values.yaml] | Redis pod-level security context | | redis.service.annotations | object | `{}` | Redis service annotations | | redis.service.labels | object | `{}` | Additional redis service labels | @@ -1332,7 +963,6 @@ NAME: my-release | redis.serviceAccount.create | bool | `false` | Create a service account for the redis pod | | redis.serviceAccount.name | string | `""` | Service account name for redis pod | | redis.servicePort | int | `6379` | Redis service port | -| redis.terminationGracePeriodSeconds | int | `30` | terminationGracePeriodSeconds for container lifecycle hook | | redis.tolerations | list | `[]` (defaults to global.tolerations) | [Tolerations] for use with node taints | | redis.topologySpreadConstraints | list | `[]` (defaults to global.topologySpreadConstraints) | Assign custom [TopologySpreadConstraints] rules to redis | | redis.volumeMounts | list | `[]` | Additional volumeMounts to the redis container | @@ -1346,32 +976,17 @@ The main options are listed here: | Key | Type | Default | Description | |-----|------|---------|-------------| -| redis-ha.additionalAffinities | object | `{}` | Additional affinities to add to the Redis server pods. | -| redis-ha.affinity | string | `""` | Assign custom [affinity] rules to the Redis pods. | -| redis-ha.auth | bool | `true` | Configures redis-ha with AUTH | -| redis-ha.containerSecurityContext | object | See [values.yaml] | Redis HA statefulset container-level security context | | redis-ha.enabled | bool | `false` | Enables the Redis HA subchart and disables the custom Redis single node deployment | -| redis-ha.existingSecret | string | `"argocd-redis"` | Existing Secret to use for redis-ha authentication. By default the redis-secret-init Job is generating this Secret. | | redis-ha.exporter.enabled | bool | `false` | Enable Prometheus redis-exporter sidecar | | redis-ha.exporter.image | string | `"public.ecr.aws/bitnami/redis-exporter"` | Repository to use for the redis-exporter | -| redis-ha.exporter.tag | string | `"1.58.0"` | Tag to use for the redis-exporter | -| redis-ha.haproxy.additionalAffinities | object | `{}` | Additional affinities to add to the haproxy pods. | -| redis-ha.haproxy.affinity | string | `""` | Assign custom [affinity] rules to the haproxy pods. | -| redis-ha.haproxy.containerSecurityContext | object | See [values.yaml] | HAProxy container-level security context | +| redis-ha.exporter.tag | string | `"1.45.0"` | Tag to use for the redis-exporter | | redis-ha.haproxy.enabled | bool | `true` | Enabled HAProxy LoadBalancing/Proxy | -| redis-ha.haproxy.hardAntiAffinity | bool | `true` | Whether the haproxy pods should be forced to run on separate nodes. | -| redis-ha.haproxy.labels | object | `{"app.kubernetes.io/name":"argocd-redis-ha-haproxy"}` | Custom labels for the haproxy pod. This is relevant for Argo CD CLI. | | redis-ha.haproxy.metrics.enabled | bool | `true` | HAProxy enable prometheus metric scraping | -| redis-ha.haproxy.tolerations | list | `[]` | [Tolerations] for use with node taints for haproxy pods. | -| redis-ha.hardAntiAffinity | bool | `true` | Whether the Redis server pods should be forced to run on separate nodes. | -| redis-ha.image.repository | string | `"public.ecr.aws/docker/library/redis"` | Redis repository | -| redis-ha.image.tag | string | `"7.4.2-alpine"` | Redis tag | +| redis-ha.image.tag | string | `"7.0.11-alpine"` | Redis tag | | redis-ha.persistentVolume.enabled | bool | `false` | Configures persistence on Redis nodes | | redis-ha.redis.config | object | See [values.yaml] | Any valid redis config options in this section will be applied to each server (see `redis-ha` chart) | | redis-ha.redis.config.save | string | `'""'` | Will save the DB if both the given number of seconds and the given number of write operations against the DB occurred. `""` is disabled | | redis-ha.redis.masterGroupName | string | `"argocd"` | Redis convention for naming the cluster group: must match `^[\\w-\\.]+$` and can be templated | -| redis-ha.tolerations | list | `[]` | [Tolerations] for use with node taints for Redis pods. | -| redis-ha.topologySpreadConstraints | object | `{"enabled":false,"maxSkew":"","topologyKey":"","whenUnsatisfiable":""}` | Assign custom [TopologySpreadConstraints] rules to the Redis pods. | | redis-ha.topologySpreadConstraints.enabled | bool | `false` | Enable Redis HA topology spread constraints | | redis-ha.topologySpreadConstraints.maxSkew | string | `""` (defaults to `1`) | Max skew of pods tolerated | | redis-ha.topologySpreadConstraints.topologyKey | string | `""` (defaults to `topology.kubernetes.io/zone`) | Topology key for spread | @@ -1388,61 +1003,19 @@ If you want to use an existing Redis (eg. a managed service from a cloud provide | Key | Type | Default | Description | |-----|------|---------|-------------| -| externalRedis.existingSecret | string | `""` | The name of an existing secret with Redis (must contain key `redis-password`) and Sentinel credentials. When it's set, the `externalRedis.password` parameter is ignored | +| externalRedis.existingSecret | string | `""` | The name of an existing secret with Redis credentials (must contain key `redis-password`). When it's set, the `externalRedis.password` parameter is ignored | | externalRedis.host | string | `""` | External Redis server host | | externalRedis.password | string | `""` | External Redis password | | externalRedis.port | int | `6379` | External Redis server port | | externalRedis.secretAnnotations | object | `{}` | External Redis Secret annotations | | externalRedis.username | string | `""` | External Redis username | -### Redis secret-init - -The helm chart deploys a Job to setup a random password which is used to secure the Redis. The Redis password is stored in Kubernetes secret `argocd-redis` with key `auth` in the namespace where Argo CD is installed. -If you use an External Redis (See Option 3 above), this Job is not deployed. - -| Key | Type | Default | Description | -|-----|------|---------|-------------| -| redisSecretInit.affinity | object | `{}` | Assign custom [affinity] rules to the Redis secret-init Job | -| redisSecretInit.containerSecurityContext | object | See [values.yaml] | Application controller container-level security context | -| redisSecretInit.enabled | bool | `true` | Enable Redis secret initialization. If disabled, secret must be provisioned by alternative methods | -| redisSecretInit.image.imagePullPolicy | string | `""` (defaults to global.image.imagePullPolicy) | Image pull policy for the Redis secret-init Job | -| redisSecretInit.image.repository | string | `""` (defaults to global.image.repository) | Repository to use for the Redis secret-init Job | -| redisSecretInit.image.tag | string | `""` (defaults to global.image.tag) | Tag to use for the Redis secret-init Job | -| redisSecretInit.imagePullSecrets | list | `[]` (defaults to global.imagePullSecrets) | Secrets with credentials to pull images from a private registry | -| redisSecretInit.jobAnnotations | object | `{}` | Annotations to be added to the Redis secret-init Job | -| redisSecretInit.name | string | `"redis-secret-init"` | Redis secret-init name | -| redisSecretInit.nodeSelector | object | `{}` (defaults to global.nodeSelector) | Node selector to be added to the Redis secret-init Job | -| redisSecretInit.podAnnotations | object | `{}` | Annotations to be added to the Redis secret-init Job | -| redisSecretInit.podLabels | object | `{}` | Labels to be added to the Redis secret-init Job | -| redisSecretInit.priorityClassName | string | `""` (defaults to global.priorityClassName) | Priority class for Redis secret-init Job | -| redisSecretInit.resources | object | `{}` | Resource limits and requests for Redis secret-init Job | -| redisSecretInit.securityContext | object | `{}` | Redis secret-init Job pod-level security context | -| redisSecretInit.serviceAccount.annotations | object | `{}` | Annotations applied to created service account | -| redisSecretInit.serviceAccount.automountServiceAccountToken | bool | `true` | Automount API credentials for the Service Account | -| redisSecretInit.serviceAccount.create | bool | `true` | Create a service account for the redis pod | -| redisSecretInit.serviceAccount.name | string | `""` | Service account name for redis pod | -| redisSecretInit.tolerations | list | `[]` (defaults to global.tolerations) | Tolerations to be added to the Redis secret-init Job | - ## ApplicationSet | Key | Type | Default | Description | |-----|------|---------|-------------| | applicationSet.affinity | object | `{}` (defaults to global.affinity preset) | Assign custom [affinity] rules | -| applicationSet.allowAnyNamespace | bool | `false` | Enable ApplicationSet in any namespace feature | -| applicationSet.automountServiceAccountToken | bool | `true` | Automount API credentials for the Service Account into the pod. | -| applicationSet.certificate.additionalHosts | list | `[]` | Certificate Subject Alternate Names (SANs) | -| applicationSet.certificate.annotations | object | `{}` | Annotations to be applied to the ApplicationSet Certificate | -| applicationSet.certificate.domain | string | `""` (defaults to global.domain) | Certificate primary domain (commonName) | -| applicationSet.certificate.duration | string | `""` (defaults to 2160h = 90d if not specified) | The requested 'duration' (i.e. lifetime) of the certificate. | -| applicationSet.certificate.enabled | bool | `false` | Deploy a Certificate resource (requires cert-manager) | -| applicationSet.certificate.issuer.group | string | `""` | Certificate issuer group. Set if using an external issuer. Eg. `cert-manager.io` | -| applicationSet.certificate.issuer.kind | string | `""` | Certificate issuer kind. Either `Issuer` or `ClusterIssuer` | -| applicationSet.certificate.issuer.name | string | `""` | Certificate issuer name. Eg. `letsencrypt` | -| applicationSet.certificate.privateKey.algorithm | string | `"RSA"` | Algorithm used to generate certificate private key. One of: `RSA`, `Ed25519` or `ECDSA` | -| applicationSet.certificate.privateKey.encoding | string | `"PKCS1"` | The private key cryptography standards (PKCS) encoding for private key. Either: `PCKS1` or `PKCS8` | -| applicationSet.certificate.privateKey.rotationPolicy | string | `"Never"` | Rotation policy of private key when certificate is re-issued. Either: `Never` or `Always` | -| applicationSet.certificate.privateKey.size | int | `2048` | Key bit size of the private key. If algorithm is set to `Ed25519`, size is ignored. | -| applicationSet.certificate.renewBefore | string | `""` (defaults to 360h = 15d if not specified) | How long before the expiry a certificate should be renewed. | +| applicationSet.args | object | `{}` | DEPRECATED - ApplicationSet controller command line flags | | applicationSet.containerPorts.metrics | int | `8080` | Metrics container port | | applicationSet.containerPorts.probe | int | `8081` | Probe container port | | applicationSet.containerPorts.webhook | int | `7000` | Webhook container port | @@ -1451,8 +1024,8 @@ If you use an External Redis (See Option 3 above), this Job is not deployed. | applicationSet.deploymentStrategy | object | `{}` | Deployment strategy to be added to the ApplicationSet controller Deployment | | applicationSet.dnsConfig | object | `{}` | [DNS configuration] | | applicationSet.dnsPolicy | string | `"ClusterFirst"` | Alternative DNS policy for ApplicationSet controller pods | -| applicationSet.emptyDir.sizeLimit | string | `""` (defaults not set if not specified i.e. no size limit) | EmptyDir size limit for applicationSet controller | -| applicationSet.extraArgs | list | `[]` | ApplicationSet controller command line flags | +| applicationSet.enabled | bool | `true` | Enable ApplicationSet controller | +| applicationSet.extraArgs | list | `[]` | List of extra cli args to add | | applicationSet.extraContainers | list | `[]` | Additional containers to be added to the ApplicationSet controller pod | | applicationSet.extraEnv | list | `[]` | Environment variables to pass to the ApplicationSet controller | | applicationSet.extraEnvFrom | list | `[]` (See [values.yaml]) | envFrom to pass to the ApplicationSet controller | @@ -1462,18 +1035,6 @@ If you use an External Redis (See Option 3 above), this Job is not deployed. | applicationSet.image.repository | string | `""` (defaults to global.image.repository) | Repository to use for the ApplicationSet controller | | applicationSet.image.tag | string | `""` (defaults to global.image.tag) | Tag to use for the ApplicationSet controller | | applicationSet.imagePullSecrets | list | `[]` (defaults to global.imagePullSecrets) | If defined, uses a Secret to pull an image from a private Docker registry or repository. | -| applicationSet.ingress.annotations | object | `{}` | Additional ingress annotations | -| applicationSet.ingress.enabled | bool | `false` | Enable an ingress resource for ApplicationSet webhook | -| applicationSet.ingress.extraHosts | list | `[]` (See [values.yaml]) | The list of additional hostnames to be covered by ingress record | -| applicationSet.ingress.extraPaths | list | `[]` (See [values.yaml]) | Additional ingress paths | -| applicationSet.ingress.extraRules | list | `[]` (See [values.yaml]) | Additional ingress rules | -| applicationSet.ingress.extraTls | list | `[]` (See [values.yaml]) | Additional ingress TLS configuration | -| applicationSet.ingress.hostname | string | `""` (defaults to global.domain) | Argo CD ApplicationSet hostname | -| applicationSet.ingress.ingressClassName | string | `""` | Defines which ingress ApplicationSet controller will implement the resource | -| applicationSet.ingress.labels | object | `{}` | Additional ingress labels | -| applicationSet.ingress.path | string | `"/api/webhook"` | List of ingress paths | -| applicationSet.ingress.pathType | string | `"Prefix"` | Ingress path type. One of `Exact`, `Prefix` or `ImplementationSpecific` | -| applicationSet.ingress.tls | bool | `false` | Enable TLS configuration for the hostname defined at `applicationSet.webhook.ingress.hostname` | | applicationSet.initContainers | list | `[]` | Init containers to add to the ApplicationSet controller pod | | applicationSet.livenessProbe.enabled | bool | `false` | Enable Kubernetes liveness probe for ApplicationSet controller | | applicationSet.livenessProbe.failureThreshold | int | `3` | Minimum consecutive failures for the [probe] to be considered failed after having succeeded | @@ -1483,21 +1044,17 @@ If you use an External Redis (See Option 3 above), this Job is not deployed. | applicationSet.livenessProbe.timeoutSeconds | int | `1` | Number of seconds after which the [probe] times out | | applicationSet.metrics.enabled | bool | `false` | Deploy metrics service | | applicationSet.metrics.service.annotations | object | `{}` | Metrics service annotations | -| applicationSet.metrics.service.clusterIP | string | `""` | Metrics service clusterIP. `None` makes a "headless service" (no virtual IP) | | applicationSet.metrics.service.labels | object | `{}` | Metrics service labels | | applicationSet.metrics.service.portName | string | `"http-metrics"` | Metrics service port name | -| applicationSet.metrics.service.servicePort | int | `8080` | Metrics service port | -| applicationSet.metrics.service.type | string | `"ClusterIP"` | Metrics service type | +| applicationSet.metrics.service.servicePort | int | `8085` | Metrics service port | | applicationSet.metrics.serviceMonitor.additionalLabels | object | `{}` | Prometheus ServiceMonitor labels | | applicationSet.metrics.serviceMonitor.annotations | object | `{}` | Prometheus ServiceMonitor annotations | | applicationSet.metrics.serviceMonitor.enabled | bool | `false` | Enable a prometheus ServiceMonitor | -| applicationSet.metrics.serviceMonitor.honorLabels | bool | `false` | When true, honorLabels preserves the metric’s labels when they collide with the target’s labels. | | applicationSet.metrics.serviceMonitor.interval | string | `"30s"` | Prometheus ServiceMonitor interval | | applicationSet.metrics.serviceMonitor.metricRelabelings | list | `[]` | Prometheus [MetricRelabelConfigs] to apply to samples before ingestion | | applicationSet.metrics.serviceMonitor.namespace | string | `""` | Prometheus ServiceMonitor namespace | | applicationSet.metrics.serviceMonitor.relabelings | list | `[]` | Prometheus [RelabelConfigs] to apply to samples before scraping | | applicationSet.metrics.serviceMonitor.scheme | string | `""` | Prometheus ServiceMonitor scheme | -| applicationSet.metrics.serviceMonitor.scrapeTimeout | string | `""` | Prometheus ServiceMonitor scrapeTimeout. If empty, Prometheus uses the global scrape timeout unless it is less than the target's scrape interval value in which the latter is used. | | applicationSet.metrics.serviceMonitor.selector | object | `{}` | Prometheus ServiceMonitor selector | | applicationSet.metrics.serviceMonitor.tlsConfig | object | `{}` | Prometheus ServiceMonitor tlsConfig | | applicationSet.name | string | `"applicationset-controller"` | ApplicationSet controller name string | @@ -1516,31 +1073,36 @@ If you use an External Redis (See Option 3 above), this Job is not deployed. | applicationSet.readinessProbe.periodSeconds | int | `10` | How often (in seconds) to perform the [probe] | | applicationSet.readinessProbe.successThreshold | int | `1` | Minimum consecutive successes for the [probe] to be considered successful after having failed | | applicationSet.readinessProbe.timeoutSeconds | int | `1` | Number of seconds after which the [probe] times out | -| applicationSet.replicas | int | `1` | The number of ApplicationSet controller pods to run | +| applicationSet.replicaCount | int | `1` | The number of ApplicationSet controller pods to run | | applicationSet.resources | object | `{}` | Resource limits and requests for the ApplicationSet controller pods. | -| applicationSet.runtimeClassName | string | `""` (defaults to global.runtimeClassName) | Runtime class name for the ApplicationSet controller | | applicationSet.service.annotations | object | `{}` | ApplicationSet service annotations | | applicationSet.service.labels | object | `{}` | ApplicationSet service labels | | applicationSet.service.port | int | `7000` | ApplicationSet service port | -| applicationSet.service.portName | string | `"http-webhook"` | ApplicationSet service port name | +| applicationSet.service.portName | string | `"webhook"` | ApplicationSet service port name | | applicationSet.service.type | string | `"ClusterIP"` | ApplicationSet service type | | applicationSet.serviceAccount.annotations | object | `{}` | Annotations applied to created service account | | applicationSet.serviceAccount.automountServiceAccountToken | bool | `true` | Automount API credentials for the Service Account | | applicationSet.serviceAccount.create | bool | `true` | Create ApplicationSet controller service account | | applicationSet.serviceAccount.labels | object | `{}` | Labels applied to created service account | | applicationSet.serviceAccount.name | string | `"argocd-applicationset-controller"` | ApplicationSet controller service account name | -| applicationSet.terminationGracePeriodSeconds | int | `30` | terminationGracePeriodSeconds for container lifecycle hook | | applicationSet.tolerations | list | `[]` (defaults to global.tolerations) | [Tolerations] for use with node taints | | applicationSet.topologySpreadConstraints | list | `[]` (defaults to global.topologySpreadConstraints) | Assign custom [TopologySpreadConstraints] rules to the ApplicationSet controller | +| applicationSet.webhook.ingress.annotations | object | `{}` | Additional ingress annotations | +| applicationSet.webhook.ingress.enabled | bool | `false` | Enable an ingress resource for Webhooks | +| applicationSet.webhook.ingress.extraPaths | list | `[]` | Additional ingress paths | +| applicationSet.webhook.ingress.hosts | list | `[]` | List of ingress hosts | +| applicationSet.webhook.ingress.ingressClassName | string | `""` | Defines which ingress ApplicationSet controller will implement the resource | +| applicationSet.webhook.ingress.labels | object | `{}` | Additional ingress labels | +| applicationSet.webhook.ingress.pathType | string | `"Prefix"` | Ingress path type. One of `Exact`, `Prefix` or `ImplementationSpecific` | +| applicationSet.webhook.ingress.paths | list | `["/api/webhook"]` | List of ingress paths | +| applicationSet.webhook.ingress.tls | list | `[]` | Ingress TLS configuration | ## Notifications | Key | Type | Default | Description | |-----|------|---------|-------------| | notifications.affinity | object | `{}` (defaults to global.affinity preset) | Assign custom [affinity] rules | -| notifications.argocdUrl | string | `""` (defaults to https://`global.domain`) | Argo CD dashboard url; used in place of {{.context.argocdUrl}} in templates | -| notifications.automountServiceAccountToken | bool | `true` | Automount API credentials for the Service Account into the pod. | -| notifications.clusterRoleRules.rules | list | `[]` | List of custom rules for the notifications controller's ClusterRole resource | +| notifications.argocdUrl | string | `nil` | Argo CD dashboard url; used in place of {{.context.argocdUrl}} in templates | | notifications.cm.create | bool | `true` | Whether helm chart creates notifications controller config map | | notifications.containerPorts.metrics | int | `9001` | Metrics container port | | notifications.containerSecurityContext | object | See [values.yaml] | Notification controller container-level security Context | @@ -1561,25 +1123,16 @@ If you use an External Redis (See Option 3 above), this Job is not deployed. | notifications.image.tag | string | `""` (defaults to global.image.tag) | Tag to use for the notifications controller | | notifications.imagePullSecrets | list | `[]` (defaults to global.imagePullSecrets) | Secrets with credentials to pull images from a private registry | | notifications.initContainers | list | `[]` | Init containers to add to the notifications controller pod | -| notifications.livenessProbe.enabled | bool | `false` | Enable Kubernetes liveness probe for notifications controller Pods | -| notifications.livenessProbe.failureThreshold | int | `3` | Minimum consecutive failures for the [probe] to be considered failed after having succeeded | -| notifications.livenessProbe.initialDelaySeconds | int | `10` | Number of seconds after the container has started before [probe] is initiated | -| notifications.livenessProbe.periodSeconds | int | `10` | How often (in seconds) to perform the [probe] | -| notifications.livenessProbe.successThreshold | int | `1` | Minimum consecutive successes for the [probe] to be considered successful after having failed | -| notifications.livenessProbe.timeoutSeconds | int | `1` | Number of seconds after which the [probe] times out | | notifications.logFormat | string | `""` (defaults to global.logging.format) | Notifications controller log format. Either `text` or `json` | | notifications.logLevel | string | `""` (defaults to global.logging.level) | Notifications controller log level. One of: `debug`, `info`, `warn`, `error` | | notifications.metrics.enabled | bool | `false` | Enables prometheus metrics server | | notifications.metrics.port | int | `9001` | Metrics port | | notifications.metrics.service.annotations | object | `{}` | Metrics service annotations | -| notifications.metrics.service.clusterIP | string | `""` | Metrics service clusterIP. `None` makes a "headless service" (no virtual IP) | | notifications.metrics.service.labels | object | `{}` | Metrics service labels | | notifications.metrics.service.portName | string | `"http-metrics"` | Metrics service port name | -| notifications.metrics.service.type | string | `"ClusterIP"` | Metrics service type | | notifications.metrics.serviceMonitor.additionalLabels | object | `{}` | Prometheus ServiceMonitor labels | | notifications.metrics.serviceMonitor.annotations | object | `{}` | Prometheus ServiceMonitor annotations | | notifications.metrics.serviceMonitor.enabled | bool | `false` | Enable a prometheus ServiceMonitor | -| notifications.metrics.serviceMonitor.honorLabels | bool | `false` | When true, honorLabels preserves the metric’s labels when they collide with the target’s labels. | | notifications.metrics.serviceMonitor.metricRelabelings | list | `[]` | Prometheus [MetricRelabelConfigs] to apply to samples before ingestion | | notifications.metrics.serviceMonitor.relabelings | list | `[]` | Prometheus [RelabelConfigs] to apply to samples before scraping | | notifications.metrics.serviceMonitor.scheme | string | `""` | Prometheus ServiceMonitor scheme | @@ -1596,19 +1149,10 @@ If you use an External Redis (See Option 3 above), this Job is not deployed. | notifications.podAnnotations | object | `{}` | Annotations to be applied to the notifications controller Pods | | notifications.podLabels | object | `{}` | Labels to be applied to the notifications controller Pods | | notifications.priorityClassName | string | `""` (defaults to global.priorityClassName) | Priority class for the notifications controller pods | -| notifications.readinessProbe.enabled | bool | `false` | Enable Kubernetes liveness probe for notifications controller Pods | -| notifications.readinessProbe.failureThreshold | int | `3` | Minimum consecutive failures for the [probe] to be considered failed after having succeeded | -| notifications.readinessProbe.initialDelaySeconds | int | `10` | Number of seconds after the container has started before [probe] is initiated | -| notifications.readinessProbe.periodSeconds | int | `10` | How often (in seconds) to perform the [probe] | -| notifications.readinessProbe.successThreshold | int | `1` | Minimum consecutive successes for the [probe] to be considered successful after having failed | -| notifications.readinessProbe.timeoutSeconds | int | `1` | Number of seconds after which the [probe] times out | | notifications.resources | object | `{}` | Resource limits and requests for the notifications controller | -| notifications.runtimeClassName | string | `""` (defaults to global.runtimeClassName) | Runtime class name for the notifications controller | | notifications.secret.annotations | object | `{}` | key:value pairs of annotations to be added to the secret | | notifications.secret.create | bool | `true` | Whether helm chart creates notifications controller secret | | notifications.secret.items | object | `{}` | Generic key:value pairs to be inserted into the secret | -| notifications.secret.labels | object | `{}` | key:value pairs of labels to be added to the secret | -| notifications.secret.name | string | `"argocd-notifications-secret"` | notifications controller Secret name | | notifications.serviceAccount.annotations | object | `{}` | Annotations applied to created service account | | notifications.serviceAccount.automountServiceAccountToken | bool | `true` | Automount API credentials for the Service Account | | notifications.serviceAccount.create | bool | `true` | Create notifications controller service account | @@ -1616,101 +1160,32 @@ If you use an External Redis (See Option 3 above), this Job is not deployed. | notifications.serviceAccount.name | string | `"argocd-notifications-controller"` | Notification controller service account name | | notifications.subscriptions | list | `[]` | Contains centrally managed global application subscriptions | | notifications.templates | object | `{}` | The notification template is used to generate the notification content | -| notifications.terminationGracePeriodSeconds | int | `30` | terminationGracePeriodSeconds for container lifecycle hook | | notifications.tolerations | list | `[]` (defaults to global.tolerations) | [Tolerations] for use with node taints | | notifications.topologySpreadConstraints | list | `[]` (defaults to global.topologySpreadConstraints) | Assign custom [TopologySpreadConstraints] rules to the application controller | | notifications.triggers | object | `{}` | The trigger defines the condition when the notification should be sent | -## Commit server (Manifest Hydrator) - -The Argo CD Commit Server provides push access to git repositories for hydrated manifests. - -To read more about this component, please read [Argo CD Manifest Hydrator] and [Manifest Hydrator]. - -| Key | Type | Default | Description | -|-----|------|---------|-------------| -| commitServer.affinity | object | `{}` (defaults to global.affinity preset) | Assign custom [affinity] rules | -| commitServer.automountServiceAccountToken | bool | `false` | Automount API credentials for the Service Account into the pod. | -| commitServer.containerSecurityContext | object | See [values.yaml] | commit server container-level security context | -| commitServer.deploymentAnnotations | object | `{}` | Annotations to be added to commit server Deployment | -| commitServer.deploymentStrategy | object | `{}` | Deployment strategy to be added to the commit server Deployment | -| commitServer.dnsConfig | object | `{}` | [DNS configuration] | -| commitServer.dnsPolicy | string | `"ClusterFirst"` | Alternative DNS policy for commit server pods | -| commitServer.enabled | bool | `false` | Enable commit server | -| commitServer.extraArgs | list | `[]` | commit server command line flags | -| commitServer.extraEnv | list | `[]` | Environment variables to pass to the commit server | -| commitServer.extraEnvFrom | list | `[]` (See [values.yaml]) | envFrom to pass to the commit server | -| commitServer.extraVolumeMounts | list | `[]` | List of extra mounts to add (normally used with extraVolumes) | -| commitServer.extraVolumes | list | `[]` | List of extra volumes to add | -| commitServer.image.imagePullPolicy | string | `""` (defaults to global.image.imagePullPolicy) | Image pull policy for the commit server | -| commitServer.image.repository | string | `""` (defaults to global.image.repository) | Repository to use for the commit server | -| commitServer.image.tag | string | `""` (defaults to global.image.tag) | Tag to use for the commit server | -| commitServer.livenessProbe.enabled | bool | `true` | Enable Kubernetes liveness probe for commit server | -| commitServer.livenessProbe.failureThreshold | int | `3` | Minimum consecutive failures for the [probe] to be considered failed after having succeeded | -| commitServer.livenessProbe.initialDelaySeconds | int | `30` | Number of seconds after the container has started before [probe] is initiated | -| commitServer.livenessProbe.periodSeconds | int | `30` | How often (in seconds) to perform the [probe] | -| commitServer.livenessProbe.timeoutSeconds | int | `5` | Number of seconds after which the [probe] times out | -| commitServer.metrics.enabled | bool | `false` | Enables prometheus metrics server | -| commitServer.metrics.service.annotations | object | `{}` | Metrics service annotations | -| commitServer.metrics.service.clusterIP | string | `""` | Metrics service clusterIP. `None` makes a "headless service" (no virtual IP) | -| commitServer.metrics.service.labels | object | `{}` | Metrics service labels | -| commitServer.metrics.service.portName | string | `"metrics"` | Metrics service port name | -| commitServer.metrics.service.servicePort | int | `8087` | Metrics service port | -| commitServer.metrics.service.type | string | `"ClusterIP"` | Metrics service type | -| commitServer.name | string | `"commit-server"` | Commit server name | -| commitServer.nodeSelector | object | `{}` (defaults to global.nodeSelector) | [Node selector] | -| commitServer.podAnnotations | object | `{}` | Annotations for the commit server pods | -| commitServer.podLabels | object | `{}` | Labels for the commit server pods | -| commitServer.priorityClassName | string | `""` (defaults to global.priorityClassName) | Priority class for the commit server pods | -| commitServer.readinessProbe.enabled | bool | `true` | Enable Kubernetes liveness probe for commit server | -| commitServer.readinessProbe.failureThreshold | int | `3` | Minimum consecutive failures for the [probe] to be considered failed after having succeeded | -| commitServer.readinessProbe.initialDelaySeconds | int | `5` | Number of seconds after the container has started before [probe] is initiated | -| commitServer.readinessProbe.periodSeconds | int | `10` | How often (in seconds) to perform the [probe] | -| commitServer.readinessProbe.timeoutSeconds | int | `1` | Number of seconds after which the [probe] times out | -| commitServer.resources | object | `{}` | Resource limits and requests for the commit server pods. | -| commitServer.runtimeClassName | string | `""` (defaults to global.runtimeClassName) | Runtime class name for the commit server | -| commitServer.service.annotations | object | `{}` | commit server service annotations | -| commitServer.service.labels | object | `{}` | commit server service labels | -| commitServer.serviceAccount.annotations | object | `{}` | Annotations applied to created service account | -| commitServer.serviceAccount.automountServiceAccountToken | bool | `true` | Automount API credentials for the Service Account | -| commitServer.serviceAccount.create | bool | `true` | Create commit server service account | -| commitServer.serviceAccount.labels | object | `{}` | Labels applied to created service account | -| commitServer.serviceAccount.name | string | `"argocd-commit-server"` | commit server service account name | -| commitServer.terminationGracePeriodSeconds | int | `30` | terminationGracePeriodSeconds for container lifecycle hook | -| commitServer.tolerations | list | `[]` (defaults to global.tolerations) | [Tolerations] for use with node taints | -| commitServer.topologySpreadConstraints | list | `[]` (defaults to global.topologySpreadConstraints) | Assign custom [TopologySpreadConstraints] rules to the commit server | - ---------------------------------------------- Autogenerated from chart metadata using [helm-docs](https://github.com/norwoodj/helm-docs) [Argo CD RBAC policy]: https://argo-cd.readthedocs.io/en/stable/operator-manual/rbac/ -[affinity]: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/ -[BackendConfigSpec]: https://cloud.google.com/kubernetes-engine/docs/how-to/ingress-configuration#backendconfigspec_v1beta1_cloudgooglecom +[affinity]: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ +[BackendConfigSpec]: https://cloud.google.com/kubernetes-engine/docs/concepts/backendconfig#backendconfigspec_v1beta1_cloudgooglecom [CSS styles]: https://argo-cd.readthedocs.io/en/stable/operator-manual/custom-styles/ [changelog]: https://artifacthub.io/packages/helm/argo/argo-cd?modal=changelog -[Chart Hooks]: https://helm.sh/docs/topics/charts_hooks/ [DNS configuration]: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/ [external cluster credentials]: https://argo-cd.readthedocs.io/en/stable/operator-manual/declarative-setup/#clusters -[FAQ]: https://argo-cd.readthedocs.io/en/stable/faq/ -[FrontendConfigSpec]: https://cloud.google.com/kubernetes-engine/docs/how-to/ingress-configuration#configuring_ingress_features_through_frontendconfig_parameters +[FrontendConfigSpec]: https://cloud.google.com/kubernetes-engine/docs/how-to/ingress-features#configuring_ingress_features_through_frontendconfig_parameters [declarative setup]: https://argo-cd.readthedocs.io/en/stable/operator-manual/declarative-setup [gRPC-ingress]: https://argo-cd.readthedocs.io/en/stable/operator-manual/ingress/ [GnuPG]: https://argo-cd.readthedocs.io/en/stable/user-guide/gpg-verification/ [HPA]: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/ [MetricRelabelConfigs]: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs -[Node selector]: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector +[Node selector]: https://kubernetes.io/docs/user-guide/node-selection/ [PodDisruptionBudget]: https://kubernetes.io/docs/concepts/workloads/pods/disruptions/#pod-disruption-budgets [probe]: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes [RelabelConfigs]: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config -[Tolerations]: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/ -[TopologySpreadConstraints]: https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/ +[Tolerations]: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ +[TopologySpreadConstraints]: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/ [values.yaml]: values.yaml [v2.2 to 2.3 upgrade instructions]: https://github.com/argoproj/argo-cd/blob/v2.3.0/docs/operator-manual/upgrading/2.2-2.3.md [tini]: https://github.com/argoproj/argo-cd/pull/12707 -[EKS EoL]: https://endoflife.date/amazon-eks -[Kubernetes Compatibility Matrix]: https://argo-cd.readthedocs.io/en/stable/operator-manual/installation/#supported-versions -[Applications in any namespace]: https://argo-cd.readthedocs.io/en/stable/operator-manual/app-any-namespace/#applications-in-any-namespace -[Argo CD Extensions]: https://github.com/argoproj-labs/argocd-extensions?tab=readme-ov-file#deprecation-notice -[Argo CD Extension Installer]: https://github.com/argoproj-labs/argocd-extension-installer -[Argo CD Manifest Hydrator]: https://argo-cd.readthedocs.io/en/stable/proposals/manifest-hydrator/ -[Manifest Hydrator]: https://github.com/argoproj/argo-cd/blob/master/docs/proposals/manifest-hydrator.md diff --git a/charts/argo-cd/README.md.gotmpl b/charts/argo-cd/README.md.gotmpl index d2862792..92d7f354 100644 --- a/charts/argo-cd/README.md.gotmpl +++ b/charts/argo-cd/README.md.gotmpl @@ -41,7 +41,7 @@ repoServer: minReplicas: 2 applicationSet: - replicas: 2 + replicaCount: 2 ``` ### HA mode without autoscaling @@ -60,184 +60,10 @@ repoServer: replicas: 2 applicationSet: - replicas: 2 + replicaCount: 2 ``` -## Ingress configuration - -Please refer to the [Operator Manual](https://argo-cd.readthedocs.io/en/stable/operator-manual/ingress/#ingress-configurationh) for details as the samples -below corespond to their respective sections. - -### SSL-Passthrough - -The `tls: true` option will expect that the `argocd-server-tls` secret exists as Argo CD server loads TLS certificates from this place. - -```yaml -global: - domain: argocd.example.com - -certificate: - enabled: true - -server: - ingress: - enabled: true - ingressClassName: nginx - annotations: - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - nginx.ingress.kubernetes.io/ssl-passthrough: "true" - tls: true -``` - -### SSL Termination at Ingress Controller - -```yaml -global: - domain: argocd.example.com - -configs: - params: - server.insecure: true - -server: - ingress: - enabled: true - ingressClassName: nginx - annotations: - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - nginx.ingress.kubernetes.io/backend-protocol: "HTTP" - extraTls: - - hosts: - - argocd.example.com - # Based on the ingress controller used secret might be optional - secretName: wildcard-tls -``` - -> **Note:** -> If you don't plan on using a wildcard certificate it's also possible to use `tls: true` without `extraTls` section. - -### Multiple ingress resources for gRPC protocol support - -Use `ingressGrpc` section if your ingress controller supports only a single protocol per Ingress resource (i.e.: Contour). - -```yaml -global: - domain: argocd.example.com - -configs: - params: - server.insecure: true - -server: - ingress: - enabled: true - ingressClassName: contour-internal - extraTls: - - hosts: - - argocd.example.com - secretName: wildcard-tls - - ingressGrpc: - enabled: true - ingressClassName: contour-internal - extraTls: - - hosts: - - grpc.argocd.example.com - secretName: wildcard-tls -``` - -### Multiple ingress domains - -```yaml -global: - domain: argocd.example.com - -server: - ingress: - enabled: true - ingressClassName: nginx - annotations: - cert-manager.io/cluster-issuer: "" - nginx.ingress.kubernetes.io/backend-protocol: "HTTPS" - tls: true - extraHosts: - - name: argocd-alias.example.com - path: / -``` - -### AWS Application Load Balancer - -Refer to the Operator Manual for [AWS Application Load Balancer mode](https://argo-cd.readthedocs.io/en/stable/operator-manual/ingress/#aws-application-load-balancers-albs-and-classic-elb-http-mode). -The provided example assumes you are using TLS off-loading via AWS ACM service. - -> **Note:** -> Using `controller: aws` creates additional service for gRPC traffic and it's no longer need to use `ingressGrpc` configuration section. - -```yaml -global: - domain: argocd.example.com - -configs: - params: - server.insecure: true - -server: - ingress: - enabled: true - controller: aws - ingressClassName: alb - annotations: - alb.ingress.kubernetes.io/scheme: internal - alb.ingress.kubernetes.io/target-type: ip - alb.ingress.kubernetes.io/backend-protocol: HTTP - alb.ingress.kubernetes.io/listen-ports: '[{"HTTP":80}, {"HTTPS":443}]' - alb.ingress.kubernetes.io/ssl-redirect: '443' - aws: - serviceType: ClusterIP # <- Used with target-type: ip - backendProtocolVersion: GRPC -``` - -### GKE Application Load Balancer - -The implementation will populate `ingressClassName`, `networking.gke.io/managed-certificates` and `networking.gke.io/v1beta1.FrontendConfig` annotations -automatically if you provide configuration for GKE resources. - -```yaml -global: - domain: argocd.example.com - -configs: - params: - server.insecure: true - -server: - service: - annotations: - cloud.google.com/neg: '{"ingress": true}' - cloud.google.com/backend-config: '{"ports": {"http":"argocd-server"}}' - - ingress: - enabled: true - controller: gke - gke: - backendConfig: - healthCheck: - checkIntervalSec: 30 - timeoutSec: 5 - healthyThreshold: 1 - unhealthyThreshold: 2 - type: HTTP - requestPath: /healthz - port: 8080 - frontendConfig: - redirectToHttps: - enabled: true - managedCertificate: - enabled: true -``` - - -## Synchronizing Changes from Original Repository +### Synchronizing Changes from Original Repository In the original [Argo CD repository](https://github.com/argoproj/argo-cd/) an [`manifests/install.yaml`](https://github.com/argoproj/argo-cd/blob/master/manifests/install.yaml) is generated using `kustomize`. It's the basis for the installation as [described in the docs](https://argo-cd.readthedocs.io/en/stable/getting_started/#1-install-argo-cd). @@ -278,142 +104,23 @@ For full list of changes please check ArtifactHub [changelog]. Highlighted versions provide information about additional steps that should be performed by user when upgrading to newer version. -### 7.0.0 - -We changed the type of `.Values.configs.clusterCredentials` from `list` to `object`. -If you used the value, please migrate like below. - -```yaml -# before -configs: - clusterCredentials: - - mycluster: - server: https://mycluster.example.com - labels: {} - annotations: {} - # ... - -# after -configs: - clusterCredentials: - mycluster: - server: https://mycluster.example.com - labels: {} - annotations: {} - # ... -``` - -### 6.10.0 - -This version introduces authentication for Redis to mitigate GHSA-9766-5277-j5hr. - -#### How to rotate Redis secret? - -Upstream steps in the [FAQ] are not enough, since we chose a different approach. -(We use a Kubernetes Job with [Chart Hooks] to create the auth secret `argocd-redis`.) - -Steps to rotate the secret when using the helm chart (bold step is additional to upstream): -* Delete `argocd-redis` secret in the namespace where Argo CD is installed. - ```bash - kubectl delete secret argocd-redis -n - ``` -* **Perform a helm upgrade** - ```bash - helm upgrade argocd argo/argo-cd --reuse-values --wait - ``` -* If you are running Redis in HA mode, restart Redis in HA. - ```bash - kubectl rollout restart deployment argocd-redis-ha-haproxy - kubectl rollout restart statefulset argocd-redis-ha-server - ``` -* If you are running Redis in non-HA mode, restart Redis. - ```bash - kubectl rollout restart deployment argocd-redis - ``` -* Restart other components. - ```bash - kubectl rollout restart deployment argocd-server argocd-repo-server - kubectl rollout restart statefulset argocd-application-controller - ``` - -### 6.9.0 -ApplicationSet controller is always created to follow [upstream's manifest](https://github.com/argoproj/argo-cd/blob/v2.11.0/manifests/core-install/kustomization.yaml#L9). - -### 6.4.0 - -Added support for application controller dynamic cluster distribution. -Please refer to [the docs](https://argo-cd.readthedocs.io/en/stable/operator-manual/dynamic-cluster-distribution) for more information. - -Added env variables to handle the non-standard names generated by the helm chart. -Here are the [docs](https://argo-cd.readthedocs.io/en/release-2.9/user-guide/environment-variables/) -and [code](https://github.com/argoproj/argo-cd/blob/99723143b96ceec9ef5b0a7feb7b4f4b0dce3497/common/common.go#L252) - -### 6.1.0 - -Added support for global domain used by all components. - -### 6.0.0 - -This version **removes support for**: - -* deprecated component options `logLevel` and `logFormat` -* deprecated component arguments `.args.` that were replaced with `configs.params` -* deprecated configuration `server.config` that was replaced with `configs.cm` -* deprecated configuration `server.rbacConfig` that was replaced with `configs.rbac` - -Major version also contains breaking **changes related to Argo CD Ingress** resources that were hard to extend and maintain for various ingress controller implementations. -Please review your setup and adjust to new configuration options: - -* catch all rule was removed for security reasons. If you need this please use `server.ingress.extraRules` to provide ingress rule without hostname -* ingress rule for `paths` changed to `path` as there is only single Argo CD backend path -* ingress rule for `hosts` changed to `hostname` as there can be only single SSO redirect for given hostname -* ingress TLS for server uses by default `argocd-server-tls` secret required by Argo CD server, additional ingresses are using `-tls` secret when `tls: true` -* additional hostnames and routing can be provided via `extraHosts` configuration section -* additional TLS secrets can be provided via `extraTls` configuration section - -Please refer to [ingress configuration](#ingress-configuration) for examples. - -### 5.53.0 - -Argocd-repo-server can now optionally use Persistent Volumes for its mountpoints instead of only emptydir() - -### 5.52.0 - -Because [Argo CD Extensions] is now deprecated and no further changes will be made, we switched to [Argo CD Extension Installer], adding an Argo CD Extension Installer to init-container in the Argo CD API server. -If you used old mechanism, please move to new mechanism. For more details, please refer `.Values.server.extensions` in values.yaml. - -### 5.35.0 - -This version supports Kubernetes version `>=1.23.0-0`. The current supported version of Kubernetes is v1.24 or later and we align with the Amazon EKS calendar, because many AWS users follow a conservative approach. - -Please see more information about EoL: [Amazon EKS EoL][EKS EoL]. - - ### 5.31.0 The manifests are now using [`tini` as entrypoint][tini], instead of `entrypoint.sh`. Until Argo CD v2.8, `entrypoint.sh` is retained for upgrade compatibility. This means that the deployment manifests have to be updated after upgrading to Argo CD v2.7, and before upgrading to Argo CD v2.8 later. In case the manifests are updated before moving to Argo CD v2.8, the containers will not be able to start. -### 5.26.0 - -This version adds support for Config Management Plugins using the sidecar model and configured in a ConfigMap named `argocd-cmp-cm`. -Users will need to migrate from the previous `argocd-cm` ConfigMap method to using the sidecar method before Argo CD v2.8. See the [Argo CD CMP migration guide](https://argo-cd.readthedocs.io/en/stable/operator-manual/config-management-plugins/#migrating-from-argocd-cm-plugins) for more specifics. - -To migrate your plugins, you can now set the `configs.cmp.create` to `true` and move your plugins from `configs.cm` to `configs.cmp.plugins`. -You will also need to configure the sidecar containers under `repoServer.extraContainers` and ensure you are mounting any custom volumes you need from `repoServer.volumes` into here also. - ### 5.24.0 -This version adds additional global parameters for scheduling (`nodeSelector`, `tolerations`, `topologySpreadConstraints`). +This versions adds additional global parameters for scheduling (`nodeSelector`, `tolerations`, `topologySpreadConstraints`). Default `global.affinity` rules can be disabled when `none` value is used for the preset. ### 5.22.0 -This version adds `global.affinity` options that are used as a presets. Override on component level works as before and replaces the default preset completely. +This versions adds `global.affinity` options that are used as a presets. Override on component level works as before and replaces the default preset completely. ### 5.19.0 -This version consolidates config for custom repository TLS certificates and SSH known hosts. If you provided these values (`configs.knownHosts.*`, `configs.knownHostsAnnotations`, `configs.tlsCerts`, `configs.tlsCertsAnnotations`) please move them into new `configs.ssh` and `configs.tls` sections. +This version consolidates config for custom repository TLS certificates and SSH known hosts. If you provide this values please move them into new `configs.ssh` and `configs.tls` sections. You can also use new option `configs.ssh.extraHosts` to configure your SSH keys without maintaing / overwritting keys for public Git repositories. ### 5.13.0 @@ -650,8 +357,6 @@ server: ## Prerequisites - {{ template "chart.kubeVersionLine" . }} - - We align with [Amazon EKS calendar][EKS EoL] because there are many AWS users and it's a conservative approach. - - Please check [Support Matrix of Argo CD][Kubernetes Compatibility Matrix] for official info. - Helm v3.0.0+ ## Installing the Chart @@ -672,7 +377,7 @@ NAME: my-release | Key | Type | Default | Description | |-----|------|---------|-------------| {{- range .Values }} - {{- if not (or (hasPrefix "global" .Key) (hasPrefix "configs" .Key) (hasPrefix "controller" .Key) (hasPrefix "repoServer" .Key) (hasPrefix "server" .Key) (hasPrefix "applicationSet" .Key) (hasPrefix "notifications" .Key) (hasPrefix "dex" .Key) (hasPrefix "redis" .Key) (hasPrefix "externalRedis" .Key) (hasPrefix "commitServer" .Key) ) }} + {{- if not (or (hasPrefix "global" .Key) (hasPrefix "configs" .Key) (hasPrefix "controller" .Key) (hasPrefix "repoServer" .Key) (hasPrefix "server" .Key) (hasPrefix "applicationSet" .Key) (hasPrefix "notifications" .Key) (hasPrefix "dex" .Key) (hasPrefix "redis" .Key) (hasPrefix "externalRedis" .Key) ) }} | {{ .Key }} | {{ .Type }} | {{ if .Default }}{{ .Default }}{{ else }}{{ .AutoDefault }}{{ end }} | {{ if .Description }}{{ .Description }}{{ else }}{{ .AutoDescription }}{{ end }} | {{- end }} {{- end }} @@ -727,6 +432,28 @@ NAME: my-release {{- end }} {{- end }} +### Using AWS ALB Ingress Controller With GRPC + +If you are using an AWS ALB Ingress controller, you will need to set `server.ingressGrpc.isAWSALB` to `true`. This will create a second service with the annotation `alb.ingress.kubernetes.io/backend-protocol-version: HTTP2` and modify the server ingress to add a condition annotation to route GRPC traffic to the new service. + +Example: + +```yaml +server: + ingress: + enabled: true + annotations: + alb.ingress.kubernetes.io/backend-protocol: HTTPS + alb.ingress.kubernetes.io/listen-ports: '[{"HTTPS":443}]' + alb.ingress.kubernetes.io/scheme: internal + alb.ingress.kubernetes.io/target-type: ip + ingressGrpc: + enabled: true + isAWSALB: true + awsALB: + serviceType: ClusterIP +``` + ## Dex | Key | Type | Default | Description | @@ -780,19 +507,6 @@ If you want to use an existing Redis (eg. a managed service from a cloud provide {{- end }} {{- end }} -### Redis secret-init - -The helm chart deploys a Job to setup a random password which is used to secure the Redis. The Redis password is stored in Kubernetes secret `argocd-redis` with key `auth` in the namespace where Argo CD is installed. -If you use an External Redis (See Option 3 above), this Job is not deployed. - -| Key | Type | Default | Description | -|-----|------|---------|-------------| -{{- range .Values }} - {{- if hasPrefix "redisSecretInit" .Key }} -| {{ .Key }} | {{ .Type }} | {{ if .Default }}{{ .Default }}{{ else }}{{ .AutoDefault }}{{ end }} | {{ if .Description }}{{ .Description }}{{ else }}{{ .AutoDescription }}{{ end }} | - {{- end }} -{{- end }} - ## ApplicationSet | Key | Type | Default | Description | @@ -813,51 +527,28 @@ If you use an External Redis (See Option 3 above), this Job is not deployed. {{- end }} {{- end }} -## Commit server (Manifest Hydrator) - -The Argo CD Commit Server provides push access to git repositories for hydrated manifests. - -To read more about this component, please read [Argo CD Manifest Hydrator] and [Manifest Hydrator]. - -| Key | Type | Default | Description | -|-----|------|---------|-------------| -{{- range .Values }} - {{- if hasPrefix "commitServer" .Key }} -| {{ .Key }} | {{ .Type }} | {{ if .Default }}{{ .Default }}{{ else }}{{ .AutoDefault }}{{ end }} | {{ if .Description }}{{ .Description }}{{ else }}{{ .AutoDescription }}{{ end }} | - {{- end }} -{{- end }} - ---------------------------------------------- Autogenerated from chart metadata using [helm-docs](https://github.com/norwoodj/helm-docs) [Argo CD RBAC policy]: https://argo-cd.readthedocs.io/en/stable/operator-manual/rbac/ -[affinity]: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/ -[BackendConfigSpec]: https://cloud.google.com/kubernetes-engine/docs/how-to/ingress-configuration#backendconfigspec_v1beta1_cloudgooglecom +[affinity]: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ +[BackendConfigSpec]: https://cloud.google.com/kubernetes-engine/docs/concepts/backendconfig#backendconfigspec_v1beta1_cloudgooglecom [CSS styles]: https://argo-cd.readthedocs.io/en/stable/operator-manual/custom-styles/ [changelog]: https://artifacthub.io/packages/helm/argo/argo-cd?modal=changelog -[Chart Hooks]: https://helm.sh/docs/topics/charts_hooks/ [DNS configuration]: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/ [external cluster credentials]: https://argo-cd.readthedocs.io/en/stable/operator-manual/declarative-setup/#clusters -[FAQ]: https://argo-cd.readthedocs.io/en/stable/faq/ -[FrontendConfigSpec]: https://cloud.google.com/kubernetes-engine/docs/how-to/ingress-configuration#configuring_ingress_features_through_frontendconfig_parameters +[FrontendConfigSpec]: https://cloud.google.com/kubernetes-engine/docs/how-to/ingress-features#configuring_ingress_features_through_frontendconfig_parameters [declarative setup]: https://argo-cd.readthedocs.io/en/stable/operator-manual/declarative-setup [gRPC-ingress]: https://argo-cd.readthedocs.io/en/stable/operator-manual/ingress/ [GnuPG]: https://argo-cd.readthedocs.io/en/stable/user-guide/gpg-verification/ [HPA]: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/ [MetricRelabelConfigs]: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs -[Node selector]: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector +[Node selector]: https://kubernetes.io/docs/user-guide/node-selection/ [PodDisruptionBudget]: https://kubernetes.io/docs/concepts/workloads/pods/disruptions/#pod-disruption-budgets [probe]: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes [RelabelConfigs]: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config -[Tolerations]: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/ -[TopologySpreadConstraints]: https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/ +[Tolerations]: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ +[TopologySpreadConstraints]: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/ [values.yaml]: values.yaml [v2.2 to 2.3 upgrade instructions]: https://github.com/argoproj/argo-cd/blob/v2.3.0/docs/operator-manual/upgrading/2.2-2.3.md [tini]: https://github.com/argoproj/argo-cd/pull/12707 -[EKS EoL]: https://endoflife.date/amazon-eks -[Kubernetes Compatibility Matrix]: https://argo-cd.readthedocs.io/en/stable/operator-manual/installation/#supported-versions -[Applications in any namespace]: https://argo-cd.readthedocs.io/en/stable/operator-manual/app-any-namespace/#applications-in-any-namespace -[Argo CD Extensions]: https://github.com/argoproj-labs/argocd-extensions?tab=readme-ov-file#deprecation-notice -[Argo CD Extension Installer]: https://github.com/argoproj-labs/argocd-extension-installer -[Argo CD Manifest Hydrator]: https://argo-cd.readthedocs.io/en/stable/proposals/manifest-hydrator/ -[Manifest Hydrator]: https://github.com/argoproj/argo-cd/blob/master/docs/proposals/manifest-hydrator.md diff --git a/charts/argo-cd/ci/dynamic-sharding-values.yaml b/charts/argo-cd/ci/dynamic-sharding-values.yaml deleted file mode 100644 index e0b72e73..00000000 --- a/charts/argo-cd/ci/dynamic-sharding-values.yaml +++ /dev/null @@ -1,6 +0,0 @@ -# Test application controller dynamic cluster distribution -crds: - keep: false - -controller: - dynamicClusterDistribution: true diff --git a/charts/argo-cd/ci/extension-values.yaml b/charts/argo-cd/ci/extension-values.yaml deleted file mode 100644 index 0896ca4c..00000000 --- a/charts/argo-cd/ci/extension-values.yaml +++ /dev/null @@ -1,14 +0,0 @@ -# Test Argo CD extension -crds: - keep: false -# Ref: https://github.com/argoproj-labs/argocd-extension-metrics?tab=readme-ov-file#install-ui-extension -server: - extensions: - enabled: true - extensionList: - - name: extension-metrics - env: - - name: EXTENSION_URL - value: https://github.com/argoproj-labs/argocd-extension-metrics/releases/download/v1.0.0/extension.tar.gz - - name: EXTENSION_CHECKSUM_URL - value: https://github.com/argoproj-labs/argocd-extension-metrics/releases/download/v1.0.0/extension_checksums.txt diff --git a/charts/argo-cd/ci/with-commit-server-values.yaml b/charts/argo-cd/ci/with-commit-server-values.yaml deleted file mode 100644 index b4ffedca..00000000 --- a/charts/argo-cd/ci/with-commit-server-values.yaml +++ /dev/null @@ -1,3 +0,0 @@ -# Test Argo CD with optional component "commit-server" -commitServer: - enabled: true diff --git a/charts/argo-cd/templates/NOTES.txt b/charts/argo-cd/templates/NOTES.txt index 8821ab75..d79d95f0 100644 --- a/charts/argo-cd/templates/NOTES.txt +++ b/charts/argo-cd/templates/NOTES.txt @@ -1,6 +1,127 @@ +{{- if .Values.controller.args.statusProcessors }} +DEPRECATED option controller.args.statusProcessors - Use configs.params.controller.status.processors +{{- end }} +{{- if .Values.controller.args.operationProcessors }} +DEPRECATED option controller.args.operationProcessors - Use configs.params.controller.operation.processors +{{- end }} +{{- if .Values.controller.args.appResyncPeriod }} +DEPRECATED option controller.args.appResyncPeriod - Use server.config.timeout.reconciliation +{{- end }} +{{- if .Values.controller.args.appHardResyncPeriod }} +DEPRECATED option controller.args.appHardResyncPeriod - Use server.config.timeout.hard.reconciliation +{{- end }} +{{- if .Values.controller.args.selfHealTimeout }} +DEPRECATED option controller.args.selfHealTimeout - Use configs.params.controller.self.heal.timeout.seconds +{{- end }} +{{- if .Values.controller.args.repoServerTimeoutSeconds }} +DEPRECATED option controller.args.repoServerTimeoutSeconds - Use configs.params.controller.repo.server.timeout.seconds +{{- end }} +{{- if .Values.controller.logFormat }} +DEPRECATED option controller.logFormat - Use configs.params.controller.log.format +{{- end }} +{{- if .Values.controller.logLevel }} +DEPRECATED option controller.logLevel - Use configs.params.controller.log.level +{{- end }} +{{- if .Values.server.logFormat }} +DEPRECATED option server.logFormat - Use configs.params.server.log.format +{{- end }} +{{- if .Values.server.logLevel }} +DEPRECATED option server.logLevel - Use configs.params.server.log.level +{{- end }} +{{- if has "--insecure" .Values.server.extraArgs }} +DEPRECATED option server.extraArgs."--insecure" - Use configs.params.server.insecure +{{- end }} +{{- if .Values.repoServer.logFormat }} +DEPRECATED option repoServer.logFormat - Use configs.params.repoServer.log.format +{{- end }} +{{- if .Values.repoServer.logLevel }} +DEPRECATED option repoServer.logLevel - Use configs.params.repoServer.log.level +{{- end }} +{{- if or .Values.server.config (hasKey .Values.server "configEnabled") .Values.server.configAnnotations }} +DEPRECATED option server.config - Use configs.cm +{{- end }} +{{- if or .Values.server.rbacConfig (hasKey .Values.server "rbacConfigCreate") .Values.server.rbacConfigAnnotations }} +DEPRECATED option server.rbacConfig - Use configs.rbac +{{- end }} +{{- if .Values.configs.secret.argocdServerTlsConfig }} +DEPRECATED option config.secret.argocdServerTlsConfig - Use server.certificate or server.certificateSecret +{{- end }} +{{- if .Values.configs.gpgKeys }} +DEPRECATED option configs.gpgKeys - Use config.gpg.keys +{{- end }} +{{- if .Values.configs.gpgKeysAnnotations }} +DEPRECATED option configs.gpgKeysAnnotations - Use config.gpg.annotations +{{- end }} +{{- if hasKey (.Values.controller.clusterAdminAccess | default dict) "enabled" }} +DEPRECATED option .controller.clusterAdminAccess.enabled - Use createClusterRoles +{{- end }} +{{- if hasKey (.Values.server.clusterAdminAccess | default dict) "enabled" }} +DEPRECATED option .server.clusterAdminAccess.enabled - Use createClusterRoles +{{- end }} +{{- if hasKey (.Values.repoServer.clusterAdminAccess | default dict) "enabled" }} +DEPRECATED option .server.clusterAdminAccess.enabled - Use createClusterRoles +{{- end }} +{{- if .Values.configs.knownHostsAnnotations }} +DEPRECATED option configs.knownHostsAnnotations - Use configs.ssh.annotations +{{- end }} +{{- if hasKey .Values.configs "knownHosts" }} +DEPRECATED option configs.knownHosts.data.ssh_known_hosts - Use configs.ssh.knownHosts +{{- end }} +{{- if .Values.configs.tlsCertsAnnotations }} +DEPRECATED option configs.tlsCertsAnnotations - Use configs.tls.annotations +{{- end }} +{{- if hasKey .Values.configs "tlsCerts" }} +DEPRECATED option configs.tlsCerts.data - Use configs.tls.certificates +{{- end }} +{{- if .Values.applicationSet.logFormat }} +DEPRECATED option applicationSet.logFormat - Use configs.params.applicationsetcontroller.log.format +{{- end }} +{{- if .Values.applicationSet.logLevel }} +DEPRECATED option applicationSet.logLevel - Use configs.params.applicationsetcontroller.log.level +{{- end }} +{{- if .Values.applicationSet.args.policy }} +DEPRECATED option applicationSet.args.policy - Use configs.params.applicationsetcontroller.policy +{{- end }} +{{- if .Values.applicationSet.args.dryRun }} +DEPRECATED option applicationSet.args.dryRun - Use configs.params.applicationsetcontroller.dryRun +{{- end }} +{{- if .Values.controller.service }} +REMOVED option controller.service - Use controller.metrics +{{- end }} +{{- if .Values.repoServer.copyutil }} +REMOVED option repoSever.copyutil.resources - Use repoServer.resources +{{- end }} +{{- if .Values.applicationSet.args.debug }} +REMOVED option applicationSet.args.debug - Use applicationSet.logLevel: debug +{{- end }} +{{- if .Values.applicationSet.args.enableLeaderElection }} +REMOVED option applicationSet.args.enableLeaderElection - Value determined based on replicas +{{- end }} +{{- if .Values.controller.containerPort }} +REMOVED option controller.containerPort - Use controller.containerPorts +{{- end }} +{{- if .Values.server.containerPort }} +REMOVED option server.containerPort - Use server.containerPorts +{{- end }} +{{- if .Values.repoServer.containerPort }} +REMOVED option repoServer.containerPort - Use repoServer.containerPorts +{{- end }} +{{- if .Values.applicationSet.args.metricsAddr }} +REMOVED option applicationSet.args.metricsAddr - Use applicationSet.containerPorts +{{- end }} +{{- if .Values.applicationSet.args.probeBindAddr }} +REMOVED option applicationSet.args.probeBindAddr - Use applicationSet.containerPorts +{{- end }} +{{- if .Values.redis.containerPort }} +REMOVED option redis.containerPort - Use redis.containerPorts +{{- end }} +{{- if .Values.redis.metrics.containerPort }} +REMOVED option redis.metrics.containerPort - Use redis.containerPorts +{{- end }} + In order to access the server UI you have the following options: -1. kubectl port-forward service/{{ include "argo-cd.fullname" . }}-server -n {{ include "argo-cd.namespace" . }} 8080:443 +1. kubectl port-forward service/{{ include "argo-cd.fullname" . }}-server -n {{ .Release.Namespace }} 8080:443 and then open the browser on http://localhost:8080 and accept the certificate @@ -9,10 +130,10 @@ In order to access the server UI you have the following options: - Set the `configs.params."server.insecure"` in the values file and terminate SSL at your ingress: https://argo-cd.readthedocs.io/en/stable/operator-manual/ingress/#option-2-multiple-ingress-objects-and-hosts -{{ if eq (toString (index .Values.configs.cm "admin.enabled")) "true" -}} +{{ if eq (toString (index (coalesce .Values.server.config .Values.configs.cm) "admin.enabled")) "true" -}} After reaching the UI the first time you can login with username: admin and the random password generated during the installation. You can find the password by running: -kubectl -n {{ include "argo-cd.namespace" . }} get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d +kubectl -n {{ .Release.Namespace }} get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d (You should delete the initial secret afterwards as suggested by the Getting Started Guide: https://argo-cd.readthedocs.io/en/stable/getting_started/#4-login-using-the-cli) {{ else if or (index .Values.configs.cm "dex.config") (index .Values.configs.cm "oidc.config") -}} diff --git a/charts/argo-cd/templates/_common.tpl b/charts/argo-cd/templates/_common.tpl index 4173876c..bf0c1e84 100644 --- a/charts/argo-cd/templates/_common.tpl +++ b/charts/argo-cd/templates/_common.tpl @@ -38,13 +38,6 @@ Create Argo CD app version {{- default .Chart.AppVersion .Values.global.image.tag }} {{- end -}} -{{/* -Return valid version label -*/}} -{{- define "argo-cd.versionLabelValue" -}} -{{ regexReplaceAll "[^-A-Za-z0-9_.]" (include "argo-cd.defaultTag" .) "-" | trunc 63 | trimAll "-" | trimAll "_" | trimAll "." | quote }} -{{- end -}} - {{/* Common labels */}} @@ -53,7 +46,6 @@ helm.sh/chart: {{ include "argo-cd.chart" .context }} {{ include "argo-cd.selectorLabels" (dict "context" .context "component" .component "name" .name) }} app.kubernetes.io/managed-by: {{ .context.Release.Service }} app.kubernetes.io/part-of: argocd -app.kubernetes.io/version: {{ include "argo-cd.versionLabelValue" .context }} {{- with .context.Values.global.additionalLabels }} {{ toYaml . }} {{- end }} @@ -131,13 +123,13 @@ nodeAffinity: {{/* Common deployment strategy definition -- Recreate don't have additional fields, we need to remove them if added by the mergeOverwrite +- Recreate don't have additional fields, we need to remove them if added by the mergeOverwrite */}} {{- define "argo-cd.strategy" -}} {{- $preset := . -}} -{{- if (eq (toString $preset.type) "Recreate") }} +{{- if (eq $preset.type "Recreate") }} type: Recreate -{{- else if (eq (toString $preset.type) "RollingUpdate") }} +{{- else if (eq $preset.type "RollingUpdate") }} type: RollingUpdate {{- with $preset.rollingUpdate }} rollingUpdate: diff --git a/charts/argo-cd/templates/_helpers.tpl b/charts/argo-cd/templates/_helpers.tpl index aeaf3df8..2338d1c0 100644 --- a/charts/argo-cd/templates/_helpers.tpl +++ b/charts/argo-cd/templates/_helpers.tpl @@ -11,7 +11,7 @@ to 63 chars and it includes 10 chars of hash and a separating '-'. {{/* Create the name of the controller service account to use */}} -{{- define "argo-cd.controller.serviceAccountName" -}} +{{- define "argo-cd.controllerServiceAccountName" -}} {{- if .Values.controller.serviceAccount.create -}} {{ default (include "argo-cd.controller.fullname" .) .Values.controller.serviceAccount.name }} {{- else -}} @@ -40,7 +40,7 @@ Create Dex server endpoint {{/* Create the name of the dex service account to use */}} -{{- define "argo-cd.dex.serviceAccountName" -}} +{{- define "argo-cd.dexServiceAccountName" -}} {{- if .Values.dex.serviceAccount.create -}} {{ default (include "argo-cd.dex.fullname" .) .Values.dex.serviceAccount.name }} {{- else -}} @@ -78,7 +78,7 @@ Return Redis server endpoint {{/* Create the name of the redis service account to use */}} -{{- define "argo-cd.redis.serviceAccountName" -}} +{{- define "argo-cd.redisServiceAccountName" -}} {{- if .Values.redis.serviceAccount.create -}} {{ default (include "argo-cd.redis.fullname" .) .Values.redis.serviceAccount.name }} {{- else -}} @@ -86,25 +86,6 @@ Create the name of the redis service account to use {{- end -}} {{- end -}} - -{{/* -Create Redis secret-init name -*/}} -{{- define "argo-cd.redisSecretInit.fullname" -}} -{{- printf "%s-%s" (include "argo-cd.fullname" .) .Values.redisSecretInit.name | trunc 63 | trimSuffix "-" -}} -{{- end -}} - -{{/* -Create the name of the Redis secret-init service account to use -*/}} -{{- define "argo-cd.redisSecretInit.serviceAccountName" -}} -{{- if .Values.redisSecretInit.serviceAccount.create -}} - {{ default (include "argo-cd.redisSecretInit.fullname" .) .Values.redisSecretInit.serviceAccount.name }} -{{- else -}} - {{ default "default" .Values.redisSecretInit.serviceAccount.name }} -{{- end -}} -{{- end -}} - {{/* Create argocd server name and version as used by the chart label. */}} @@ -115,7 +96,7 @@ Create argocd server name and version as used by the chart label. {{/* Create the name of the Argo CD server service account to use */}} -{{- define "argo-cd.server.serviceAccountName" -}} +{{- define "argo-cd.serverServiceAccountName" -}} {{- if .Values.server.serviceAccount.create -}} {{ default (include "argo-cd.server.fullname" .) .Values.server.serviceAccount.name }} {{- else -}} @@ -133,7 +114,7 @@ Create argocd repo-server name and version as used by the chart label. {{/* Create the name of the repo-server service account to use */}} -{{- define "argo-cd.repoServer.serviceAccountName" -}} +{{- define "argo-cd.repoServerServiceAccountName" -}} {{- if .Values.repoServer.serviceAccount.create -}} {{ default (include "argo-cd.repoServer.fullname" .) .Values.repoServer.serviceAccount.name }} {{- else -}} @@ -151,7 +132,7 @@ Create argocd application set name and version as used by the chart label. {{/* Create the name of the application set service account to use */}} -{{- define "argo-cd.applicationSet.serviceAccountName" -}} +{{- define "argo-cd.applicationSetServiceAccountName" -}} {{- if .Values.applicationSet.serviceAccount.create -}} {{ default (include "argo-cd.applicationSet.fullname" .) .Values.applicationSet.serviceAccount.name }} {{- else -}} @@ -169,7 +150,7 @@ Create argocd notifications name and version as used by the chart label. {{/* Create the name of the notifications service account to use */}} -{{- define "argo-cd.notifications.serviceAccountName" -}} +{{- define "argo-cd.notificationsServiceAccountName" -}} {{- if .Values.notifications.serviceAccount.create -}} {{ default (include "argo-cd.notifications.fullname" .) .Values.notifications.serviceAccount.name }} {{- else -}} @@ -178,43 +159,19 @@ Create the name of the notifications service account to use {{- end -}} {{/* -Create argocd commit-server name and version as used by the chart label. -*/}} -{{- define "argo-cd.commitServer.fullname" -}} -{{- printf "%s-%s" (include "argo-cd.fullname" .) .Values.commitServer.name | trunc 63 | trimSuffix "-" -}} -{{- end -}} - -{{/* -Create the name of the commit-server service account to use -*/}} -{{- define "argo-cd.commitServer.serviceAccountName" -}} -{{- if .Values.commitServer.serviceAccount.create -}} - {{ default (include "argo-cd.commitServer.fullname" .) .Values.commitServer.serviceAccount.name }} -{{- else -}} - {{ default "default" .Values.commitServer.serviceAccount.name }} -{{- end -}} -{{- end -}} - -{{/* -Argo Configuration Preset Values (Influenced by Values configuration) +Argo Configuration Preset Values (Incluenced by Values configuration) */}} {{- define "argo-cd.config.cm.presets" -}} -{{- $presets := dict -}} -{{- $_ := set $presets "url" (printf "https://%s" .Values.global.domain) -}} -{{- if eq (toString (index .Values.configs.cm "statusbadge.enabled")) "true" -}} -{{- $_ := set $presets "statusbadge.url" (printf "https://%s/" .Values.global.domain) -}} -{{- end -}} {{- if .Values.configs.styles -}} -{{- $_ := set $presets "ui.cssurl" "./custom/custom.styles.css" -}} +ui.cssurl: "./custom/custom.styles.css" {{- end -}} -{{- toYaml $presets }} {{- end -}} {{/* Merge Argo Configuration with Preset Configuration */}} {{- define "argo-cd.config.cm" -}} -{{- $config := omit .Values.configs.cm "create" "annotations" -}} +{{- $config := (mergeOverwrite (deepCopy (omit .Values.configs.cm "create" "annotations")) (.Values.server.config | default dict)) -}} {{- $preset := include "argo-cd.config.cm.presets" . | fromYaml | default dict -}} {{- range $key, $value := mergeOverwrite $preset $config }} {{- $fmted := $value | toString }} @@ -226,52 +183,33 @@ Merge Argo Configuration with Preset Configuration {{/* Argo Params Default Configuration Presets -NOTE: Configuration keys must be stored as dict because YAML treats dot as separator */}} {{- define "argo-cd.config.params.presets" -}} -{{- $presets := dict -}} -{{- $_ := set $presets "repo.server" (printf "%s:%s" (include "argo-cd.repoServer.fullname" .) (.Values.repoServer.service.port | toString)) -}} -{{- $_ := set $presets "server.repo.server.strict.tls" (.Values.repoServer.certificateSecret.enabled | toString ) -}} -{{- $_ := set $presets "redis.server" (include "argo-cd.redis.server" .) -}} -{{- $_ := set $presets "applicationsetcontroller.enable.leader.election" (gt ((.Values.applicationSet.replicas | default .Values.applicationSet.replicaCount) | int64) 1) -}} -{{- if .Values.dex.enabled -}} -{{- $_ := set $presets "server.dex.server" (include "argo-cd.dex.server" .) -}} -{{- $_ := set $presets "server.dex.server.strict.tls" .Values.dex.certificateSecret.enabled -}} -{{- end -}} -{{- range $component := tuple "applicationsetcontroller" "controller" "server" "reposerver" -}} -{{- $_ := set $presets (printf "%s.log.format" $component) $.Values.global.logging.format -}} -{{- $_ := set $presets (printf "%s.log.level" $component) $.Values.global.logging.level -}} -{{- end -}} -{{- toYaml $presets }} +repo.server: "{{ include "argo-cd.repoServer.fullname" . }}:{{ .Values.repoServer.service.port }}" +server.repo.server.strict.tls: {{ .Values.repoServer.certificateSecret.enabled | toString }} +{{- with include "argo-cd.redis.server" . }} +redis.server: {{ . | quote }} +{{- end }} +{{- if .Values.dex.enabled }} +server.dex.server: {{ include "argo-cd.dex.server" . | quote }} +server.dex.server.strict.tls: {{ .Values.dex.certificateSecret.enabled | toString }} +{{- end }} +{{- range $component := tuple "applicationsetcontroller" "controller" "server" "reposerver" }} +{{ $component }}.log.format: {{ $.Values.global.logging.format | quote }} +{{ $component }}.log.level: {{ $.Values.global.logging.level | quote }} +{{- end }} +{{- if .Values.applicationSet.enabled }} +applicationsetcontroller.enable.leader.election: {{ gt (.Values.applicationSet.replicaCount | int64) 1 }} +{{- end }} {{- end -}} {{/* Merge Argo Params Configuration with Preset Configuration */}} {{- define "argo-cd.config.params" -}} -{{- $config := omit .Values.configs.params "create" "annotations" }} +{{- $config := omit .Values.configs.params "annotations" }} {{- $preset := include "argo-cd.config.params.presets" . | fromYaml | default dict -}} {{- range $key, $value := mergeOverwrite $preset $config }} {{ $key }}: {{ toString $value | toYaml }} {{- end }} {{- end -}} - -{{/* -Expand the namespace of the release. -Allows overriding it for multi-namespace deployments in combined charts. -*/}} -{{- define "argo-cd.namespace" -}} -{{- default .Release.Namespace .Values.namespaceOverride | trunc 63 | trimSuffix "-" -}} -{{- end }} - -{{/* -Dual stack definition -*/}} -{{- define "argo-cd.dualStack" -}} -{{- with .Values.global.dualStack.ipFamilyPolicy }} -ipFamilyPolicy: {{ . }} -{{- end }} -{{- with .Values.global.dualStack.ipFamilies }} -ipFamilies: {{ toYaml . | nindent 4 }} -{{- end }} -{{- end }} diff --git a/charts/argo-cd/templates/_versions.tpl b/charts/argo-cd/templates/_versions.tpl index 966dad97..8240c4b0 100644 --- a/charts/argo-cd/templates/_versions.tpl +++ b/charts/argo-cd/templates/_versions.tpl @@ -5,3 +5,48 @@ Return the target Kubernetes version {{- define "argo-cd.kubeVersion" -}} {{- default .Capabilities.KubeVersion.Version .Values.kubeVersionOverride }} {{- end }} + +{{/* +Return the appropriate apiVersion for autoscaling +*/}} +{{- define "argo-cd.apiVersion.autoscaling" -}} +{{- if .Values.apiVersionOverrides.autoscaling -}} +{{- print .Values.apiVersionOverrides.autoscaling -}} +{{- else if semverCompare "<1.23-0" (include "argo-cd.kubeVersion" .) -}} +{{- print "autoscaling/v2beta1" -}} +{{- else -}} +{{- print "autoscaling/v2" -}} +{{- end -}} +{{- end -}} + +{{/* +Return the appropriate apiVersion for cert-manager +*/}} +{{- define "argo-cd.apiVersion.cert-manager" -}} +{{- if .Values.apiVersionOverrides.certmanager -}} +{{- print .Values.apiVersionOverrides.certmanager -}} +{{- else if .Capabilities.APIVersions.Has "cert-manager.io/v1" -}} +{{- print "cert-manager.io/v1" -}} +{{- else if .Capabilities.APIVersions.Has "cert-manager.io/v1beta1" -}} +{{- print "cert-manager.io/v1beta1" -}} +{{- else if .Capabilities.APIVersions.Has "cert-manager.io/v1alpha3" -}} +{{- print "cert-manager.io/v1alpha3" -}} +{{- else if .Capabilities.APIVersions.Has "cert-manager.io/v1alpha2" -}} +{{- print "cert-manager.io/v1alpha2" -}} +{{- else -}} +{{- print "certmanager.k8s.io/v1alpha1" -}} +{{- end -}} +{{- end -}} + +{{/* +Return the appropriate apiVersion for GKE resources +*/}} +{{- define "argo-cd.apiVersions.cloudgoogle" -}} +{{- if .Values.apiVersionOverrides.cloudgoogle -}} +{{- print .Values.apiVersionOverrides.cloudgoogle -}} +{{- else if .Capabilities.APIVersions.Has "cloud.google.com/v1" -}} +{{- print "cloud.google.com/v1" -}} +{{- else -}} +{{- print "cloud.google.com/v1beta1" -}} +{{- end -}} +{{- end -}} diff --git a/charts/argo-cd/templates/aggregate-roles.yaml b/charts/argo-cd/templates/aggregate-roles.yaml index 12d0e006..b3893922 100644 --- a/charts/argo-cd/templates/aggregate-roles.yaml +++ b/charts/argo-cd/templates/aggregate-roles.yaml @@ -11,7 +11,12 @@ rules: - argoproj.io resources: - applications + {{- if .Values.applicationSet.enabled }} - applicationsets + {{- end }} + {{- if .Values.server.extensions.enabled }} + - argocdextensions + {{- end }} - appprojects verbs: - get @@ -31,7 +36,12 @@ rules: - argoproj.io resources: - applications + {{- if .Values.applicationSet.enabled }} - applicationsets + {{- end }} + {{- if .Values.server.extensions.enabled }} + - argocdextensions + {{- end }} - appprojects verbs: - create @@ -56,7 +66,12 @@ rules: - argoproj.io resources: - applications + {{- if .Values.applicationSet.enabled }} - applicationsets + {{- end }} + {{- if .Values.server.extensions.enabled }} + - argocdextensions + {{- end }} - appprojects verbs: - create diff --git a/charts/argo-cd/templates/argocd-application-controller/clusterrole.yaml b/charts/argo-cd/templates/argocd-application-controller/clusterrole.yaml index 615b56f9..5ebe00b3 100644 --- a/charts/argo-cd/templates/argocd-application-controller/clusterrole.yaml +++ b/charts/argo-cd/templates/argocd-application-controller/clusterrole.yaml @@ -1,4 +1,5 @@ -{{- if .Values.createClusterRoles }} +{{- $config := .Values.controller.clusterAdminAccess | default dict -}} +{{- if hasKey $config "enabled" | ternary $config.enabled .Values.createClusterRoles }} apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: diff --git a/charts/argo-cd/templates/argocd-application-controller/clusterrolebinding.yaml b/charts/argo-cd/templates/argocd-application-controller/clusterrolebinding.yaml index 6076c531..39ee80a6 100644 --- a/charts/argo-cd/templates/argocd-application-controller/clusterrolebinding.yaml +++ b/charts/argo-cd/templates/argocd-application-controller/clusterrolebinding.yaml @@ -1,4 +1,5 @@ -{{- if .Values.createClusterRoles }} +{{- $config := .Values.controller.clusterAdminAccess | default dict -}} +{{- if hasKey $config "enabled" | ternary $config.enabled .Values.createClusterRoles }} apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: @@ -11,6 +12,6 @@ roleRef: name: {{ include "argo-cd.controller.fullname" . }} subjects: - kind: ServiceAccount - name: {{ include "argo-cd.controller.serviceAccountName" . }} - namespace: {{ include "argo-cd.namespace" . }} + name: {{ include "argo-cd.controllerServiceAccountName" . }} + namespace: {{ .Release.Namespace }} {{- end }} diff --git a/charts/argo-cd/templates/argocd-application-controller/deployment.yaml b/charts/argo-cd/templates/argocd-application-controller/deployment.yaml deleted file mode 100644 index 0b8285b7..00000000 --- a/charts/argo-cd/templates/argocd-application-controller/deployment.yaml +++ /dev/null @@ -1,440 +0,0 @@ -{{- if .Values.controller.dynamicClusterDistribution }} -apiVersion: apps/v1 -kind: Deployment -metadata: - {{- with (mergeOverwrite (deepCopy .Values.global.deploymentAnnotations) .Values.controller.deploymentAnnotations) }} - annotations: - {{- range $key, $value := . }} - {{ $key }}: {{ $value | quote }} - {{- end }} - {{- end }} - name: {{ template "argo-cd.controller.fullname" . }} - namespace: {{ include "argo-cd.namespace" . }} - labels: - {{- include "argo-cd.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 4 }} -spec: - replicas: {{ .Values.controller.replicas }} - revisionHistoryLimit: {{ .Values.controller.revisionHistoryLimit | default .Values.global.revisionHistoryLimit }} - selector: - matchLabels: - {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.controller.name) | nindent 6 }} - template: - metadata: - annotations: - checksum/cmd-params: {{ include (print $.Template.BasePath "/argocd-configs/argocd-cmd-params-cm.yaml") . | sha256sum }} - {{- if .Values.configs.cm.create }} - checksum/cm: {{ include (print $.Template.BasePath "/argocd-configs/argocd-cm.yaml") . | sha256sum }} - {{- end }} - {{- with (mergeOverwrite (deepCopy .Values.global.podAnnotations) .Values.controller.podAnnotations) }} - {{- range $key, $value := . }} - {{ $key }}: {{ $value | quote }} - {{- end }} - {{- end }} - labels: - {{- include "argo-cd.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 8 }} - {{- with (mergeOverwrite (deepCopy .Values.global.podLabels) .Values.controller.podLabels) }} - {{- toYaml . | nindent 8 }} - {{- end }} - spec: - {{- with .Values.controller.runtimeClassName | default .Values.global.runtimeClassName }} - runtimeClassName: {{ . }} - {{- end }} - {{- with .Values.controller.imagePullSecrets | default .Values.global.imagePullSecrets }} - imagePullSecrets: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.global.hostAliases }} - hostAliases: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.global.securityContext }} - securityContext: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.controller.priorityClassName | default .Values.global.priorityClassName }} - priorityClassName: {{ . }} - {{- end }} - {{- if .Values.controller.terminationGracePeriodSeconds }} - terminationGracePeriodSeconds: {{ .Values.controller.terminationGracePeriodSeconds }} - {{- end }} - serviceAccountName: {{ include "argo-cd.controller.serviceAccountName" . }} - automountServiceAccountToken: {{ .Values.controller.automountServiceAccountToken }} - containers: - - args: - - /usr/local/bin/argocd-application-controller - - --metrics-port={{ .Values.controller.containerPorts.metrics }} - {{- if .Values.controller.metrics.applicationLabels.enabled }} - {{- range .Values.controller.metrics.applicationLabels.labels }} - - --metrics-application-labels - - {{ . }} - {{- end }} - {{- end }} - {{- with .Values.controller.extraArgs }} - {{- toYaml . | nindent 8 }} - {{- end }} - image: {{ default .Values.global.image.repository .Values.controller.image.repository }}:{{ default (include "argo-cd.defaultTag" .) .Values.controller.image.tag }} - imagePullPolicy: {{ default .Values.global.image.imagePullPolicy .Values.controller.image.imagePullPolicy }} - name: {{ .Values.controller.name }} - env: - {{- with (concat .Values.global.env .Values.controller.env) }} - {{- toYaml . | nindent 10 }} - {{- end }} - - name: ARGOCD_ENABLE_DYNAMIC_CLUSTER_DISTRIBUTION - value: "true" - - name: ARGOCD_CONTROLLER_HEARTBEAT_TIME - value: {{ .Values.controller.heartbeatTime | quote }} - - name: ARGOCD_APPLICATION_CONTROLLER_NAME - value: {{ template "argo-cd.controller.fullname" . }} - - name: ARGOCD_RECONCILIATION_TIMEOUT - valueFrom: - configMapKeyRef: - name: argocd-cm - key: timeout.reconciliation - optional: true - - name: ARGOCD_HARD_RECONCILIATION_TIMEOUT - valueFrom: - configMapKeyRef: - name: argocd-cm - key: timeout.hard.reconciliation - optional: true - - name: ARGOCD_RECONCILIATION_JITTER - valueFrom: - configMapKeyRef: - key: timeout.reconciliation.jitter - name: argocd-cm - optional: true - - name: ARGOCD_REPO_ERROR_GRACE_PERIOD_SECONDS - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: controller.repo.error.grace.period.seconds - optional: true - - name: ARGOCD_APPLICATION_CONTROLLER_REPO_SERVER - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: repo.server - optional: true - - name: ARGOCD_APPLICATION_CONTROLLER_REPO_SERVER_TIMEOUT_SECONDS - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: controller.repo.server.timeout.seconds - optional: true - - name: ARGOCD_APPLICATION_CONTROLLER_STATUS_PROCESSORS - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: controller.status.processors - optional: true - - name: ARGOCD_APPLICATION_CONTROLLER_OPERATION_PROCESSORS - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: controller.operation.processors - optional: true - - name: ARGOCD_APPLICATION_CONTROLLER_LOGFORMAT - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: controller.log.format - optional: true - - name: ARGOCD_APPLICATION_CONTROLLER_LOGLEVEL - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: controller.log.level - optional: true - - name: ARGOCD_APPLICATION_CONTROLLER_METRICS_CACHE_EXPIRATION - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: controller.metrics.cache.expiration - optional: true - - name: ARGOCD_APPLICATION_CONTROLLER_SELF_HEAL_TIMEOUT_SECONDS - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: controller.self.heal.timeout.seconds - optional: true - - name: ARGOCD_APPLICATION_CONTROLLER_SELF_HEAL_BACKOFF_TIMEOUT_SECONDS - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: controller.self.heal.backoff.timeout.seconds - optional: true - - name: ARGOCD_APPLICATION_CONTROLLER_SELF_HEAL_BACKOFF_FACTOR - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: controller.self.heal.backoff.factor - optional: true - - name: ARGOCD_APPLICATION_CONTROLLER_SELF_HEAL_BACKOFF_CAP_SECONDS - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: controller.self.heal.backoff.cap.seconds - optional: true - - name: ARGOCD_APPLICATION_CONTROLLER_SYNC_TIMEOUT - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: controller.sync.timeout.seconds - optional: true - - name: ARGOCD_APPLICATION_CONTROLLER_REPO_SERVER_PLAINTEXT - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: controller.repo.server.plaintext - optional: true - - name: ARGOCD_APPLICATION_CONTROLLER_REPO_SERVER_STRICT_TLS - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: controller.repo.server.strict.tls - optional: true - - name: ARGOCD_APPLICATION_CONTROLLER_PERSIST_RESOURCE_HEALTH - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: controller.resource.health.persist - optional: true - - name: ARGOCD_APP_STATE_CACHE_EXPIRATION - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: controller.app.state.cache.expiration - optional: true - - name: REDIS_SERVER - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: redis.server - optional: true - - name: REDIS_COMPRESSION - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: redis.compression - optional: true - - name: REDISDB - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: redis.db - optional: true - - name: REDIS_USERNAME - valueFrom: - secretKeyRef: - name: {{ default "argocd-redis" .Values.externalRedis.existingSecret }} - key: redis-username - optional: true - - name: REDIS_PASSWORD - valueFrom: - secretKeyRef: - name: {{ default "argocd-redis" .Values.externalRedis.existingSecret }} - {{- if .Values.externalRedis.host }} - key: redis-password - {{- else }} - key: auth - {{- end }} - optional: true - - name: REDIS_SENTINEL_USERNAME - valueFrom: - secretKeyRef: - name: {{ default (include "argo-cd.redis.fullname" .) .Values.externalRedis.existingSecret }} - key: redis-sentinel-username - optional: true - - name: REDIS_SENTINEL_PASSWORD - valueFrom: - secretKeyRef: - name: {{ default (include "argo-cd.redis.fullname" .) .Values.externalRedis.existingSecret }} - key: redis-sentinel-password - optional: true - - name: ARGOCD_DEFAULT_CACHE_EXPIRATION - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: controller.default.cache.expiration - optional: true - - name: ARGOCD_APPLICATION_CONTROLLER_OTLP_ADDRESS - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: otlp.address - optional: true - - name: ARGOCD_APPLICATION_CONTROLLER_OTLP_INSECURE - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: otlp.insecure - optional: true - - name: ARGOCD_APPLICATION_CONTROLLER_OTLP_HEADERS - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: otlp.headers - optional: true - - name: ARGOCD_APPLICATION_NAMESPACES - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: application.namespaces - optional: true - - name: ARGOCD_CONTROLLER_SHARDING_ALGORITHM - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: controller.sharding.algorithm - optional: true - - name: ARGOCD_APPLICATION_CONTROLLER_KUBECTL_PARALLELISM_LIMIT - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: controller.kubectl.parallelism.limit - optional: true - - name: ARGOCD_K8SCLIENT_RETRY_MAX - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: controller.k8sclient.retry.max - optional: true - - name: ARGOCD_K8SCLIENT_RETRY_BASE_BACKOFF - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: controller.k8sclient.retry.base.backoff - optional: true - - name: ARGOCD_APPLICATION_CONTROLLER_SERVER_SIDE_DIFF - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: controller.diff.server.side - optional: true - - name: ARGOCD_IGNORE_NORMALIZER_JQ_TIMEOUT - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: controller.ignore.normalizer.jq.timeout - optional: true - - name: ARGOCD_HYDRATOR_ENABLED - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: hydrator.enabled - optional: true - - name: ARGOCD_CLUSTER_CACHE_BATCH_EVENTS_PROCESSING - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: controller.cluster.cache.batch.events.processing - optional: true - - name: ARGOCD_CLUSTER_CACHE_EVENTS_PROCESSING_INTERVAL - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: controller.cluster.cache.events.processing.interval - optional: true - {{- with .Values.controller.envFrom }} - envFrom: - {{- toYaml . | nindent 10 }} - {{- end }} - ports: - - name: metrics - containerPort: {{ .Values.controller.containerPorts.metrics }} - protocol: TCP - readinessProbe: - httpGet: - path: /healthz - port: metrics - initialDelaySeconds: {{ .Values.controller.readinessProbe.initialDelaySeconds }} - periodSeconds: {{ .Values.controller.readinessProbe.periodSeconds }} - timeoutSeconds: {{ .Values.controller.readinessProbe.timeoutSeconds }} - successThreshold: {{ .Values.controller.readinessProbe.successThreshold }} - failureThreshold: {{ .Values.controller.readinessProbe.failureThreshold }} - resources: - {{- toYaml .Values.controller.resources | nindent 10 }} - {{- with .Values.controller.containerSecurityContext }} - securityContext: - {{- toYaml . | nindent 10 }} - {{- end }} - workingDir: /home/argocd - volumeMounts: - {{- with .Values.controller.volumeMounts }} - {{- toYaml . | nindent 8 }} - {{- end }} - - mountPath: /app/config/controller/tls - name: argocd-repo-server-tls - - mountPath: /home/argocd - name: argocd-home - - name: argocd-cmd-params-cm - mountPath: /home/argocd/params - {{- with .Values.controller.extraContainers }} - {{- tpl (toYaml .) $ | nindent 6 }} - {{- end }} - {{- with .Values.controller.initContainers }} - initContainers: - {{- tpl (toYaml .) $ | nindent 6 }} - {{- end }} - {{- with include "argo-cd.affinity" (dict "context" . "component" .Values.controller) }} - affinity: - {{- trim . | nindent 8 }} - {{- end }} - {{- with .Values.controller.nodeSelector | default .Values.global.nodeSelector }} - nodeSelector: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.controller.tolerations | default .Values.global.tolerations }} - tolerations: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.controller.topologySpreadConstraints | default .Values.global.topologySpreadConstraints }} - topologySpreadConstraints: - {{- range $constraint := . }} - - {{ toYaml $constraint | nindent 8 | trim }} - {{- if not $constraint.labelSelector }} - labelSelector: - matchLabels: - {{- include "argo-cd.selectorLabels" (dict "context" $ "name" $.Values.controller.name) | nindent 12 }} - {{- end }} - {{- end }} - {{- end }} - volumes: - {{- with .Values.controller.volumes }} - {{- toYaml . | nindent 6 }} - {{- end }} - - name: argocd-home - {{- if .Values.controller.emptyDir.sizeLimit }} - emptyDir: - sizeLimit: {{ .Values.controller.emptyDir.sizeLimit }} - {{- else }} - emptyDir: {} - {{- end }} - - - name: argocd-repo-server-tls - secret: - secretName: argocd-repo-server-tls - optional: true - items: - - key: tls.crt - path: tls.crt - - key: tls.key - path: tls.key - - key: ca.crt - path: ca.crt - - name: argocd-cmd-params-cm - configMap: - optional: true - name: argocd-cmd-params-cm - items: - - key: controller.profile.enabled - path: profiler.enabled - {{- if .Values.controller.hostNetwork }} - hostNetwork: {{ .Values.controller.hostNetwork }} - {{- end }} - {{- with .Values.controller.dnsConfig }} - dnsConfig: - {{- toYaml . | nindent 8 }} - {{- end }} - dnsPolicy: {{ .Values.controller.dnsPolicy }} -{{- end }} diff --git a/charts/argo-cd/templates/argocd-application-controller/metrics.yaml b/charts/argo-cd/templates/argocd-application-controller/metrics.yaml index 086dfe9b..754b8490 100644 --- a/charts/argo-cd/templates/argocd-application-controller/metrics.yaml +++ b/charts/argo-cd/templates/argocd-application-controller/metrics.yaml @@ -3,28 +3,19 @@ apiVersion: v1 kind: Service metadata: name: {{ include "argo-cd.controller.fullname" . }}-metrics - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.controller.name "name" "metrics") | nindent 4 }} {{- with .Values.controller.metrics.service.labels }} {{- toYaml . | nindent 4 }} {{- end }} - {{- if or .Values.controller.metrics.service.annotations .Values.global.addPrometheusAnnotations }} + {{- with .Values.controller.metrics.service.annotations }} annotations: - {{- if .Values.global.addPrometheusAnnotations }} - prometheus.io/port: {{ .Values.controller.metrics.service.servicePort | quote }} - prometheus.io/scrape: "true" - {{- end }} - {{- range $key, $value := .Values.controller.metrics.service.annotations }} + {{- range $key, $value := . }} {{ $key }}: {{ $value | quote }} {{- end }} {{- end }} spec: - type: {{ .Values.controller.metrics.service.type }} - {{- if and .Values.controller.metrics.service.clusterIP (eq .Values.controller.metrics.service.type "ClusterIP") }} - clusterIP: {{ .Values.controller.metrics.service.clusterIP }} - {{- end }} - {{- include "argo-cd.dualStack" . | indent 2 }} ports: - name: {{ .Values.controller.metrics.service.portName }} protocol: TCP diff --git a/charts/argo-cd/templates/argocd-application-controller/networkpolicy.yaml b/charts/argo-cd/templates/argocd-application-controller/networkpolicy.yaml index db1ee7c2..e7448c52 100644 --- a/charts/argo-cd/templates/argocd-application-controller/networkpolicy.yaml +++ b/charts/argo-cd/templates/argocd-application-controller/networkpolicy.yaml @@ -5,7 +5,7 @@ metadata: labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 4 }} name: {{ template "argo-cd.controller.fullname" . }} - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} spec: ingress: - from: diff --git a/charts/argo-cd/templates/argocd-application-controller/pdb.yaml b/charts/argo-cd/templates/argocd-application-controller/pdb.yaml index bef09799..7eaf28e1 100644 --- a/charts/argo-cd/templates/argocd-application-controller/pdb.yaml +++ b/charts/argo-cd/templates/argocd-application-controller/pdb.yaml @@ -3,7 +3,7 @@ apiVersion: policy/v1 kind: PodDisruptionBudget metadata: name: {{ include "argo-cd.controller.fullname" . }} - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 4 }} {{- with .Values.controller.pdb.labels }} diff --git a/charts/argo-cd/templates/argocd-application-controller/prometheusrule.yaml b/charts/argo-cd/templates/argocd-application-controller/prometheusrule.yaml index 6ddc7f4c..86d66564 100644 --- a/charts/argo-cd/templates/argocd-application-controller/prometheusrule.yaml +++ b/charts/argo-cd/templates/argocd-application-controller/prometheusrule.yaml @@ -1,9 +1,9 @@ -{{- if and (.Capabilities.APIVersions.Has "monitoring.coreos.com/v1") .Values.controller.metrics.enabled .Values.controller.metrics.rules.enabled }} +{{- if and .Values.controller.metrics.enabled .Values.controller.metrics.rules.enabled }} apiVersion: monitoring.coreos.com/v1 kind: PrometheusRule metadata: name: {{ template "argo-cd.controller.fullname" . }} - namespace: {{ default (include "argo-cd.namespace" .) .Values.controller.metrics.rules.namespace | quote }} + namespace: {{ default .Release.Namespace .Values.controller.metrics.rules.namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 4 }} {{- if .Values.controller.metrics.rules.selector }} diff --git a/charts/argo-cd/templates/argocd-application-controller/role.yaml b/charts/argo-cd/templates/argocd-application-controller/role.yaml index 27e3e956..56ef17b5 100644 --- a/charts/argo-cd/templates/argocd-application-controller/role.yaml +++ b/charts/argo-cd/templates/argocd-application-controller/role.yaml @@ -2,7 +2,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: {{ template "argo-cd.controller.fullname" . }} - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 4 }} rules: @@ -34,26 +34,4 @@ rules: - events verbs: - create - - list -- apiGroups: - - apps - resources: - - deployments - verbs: - - get - - list - - watch -{{- if and (not .Values.createClusterRoles) .Values.controller.dynamicClusterDistribution }} -- apiGroups: - - "" - resources: - - configmaps - resourceNames: - - argocd-app-controller-shard-cm - verbs: - - get - - list - - watch - - create - - update -{{- end }} + - list \ No newline at end of file diff --git a/charts/argo-cd/templates/argocd-application-controller/rolebinding.yaml b/charts/argo-cd/templates/argocd-application-controller/rolebinding.yaml index 48681637..5f07f109 100644 --- a/charts/argo-cd/templates/argocd-application-controller/rolebinding.yaml +++ b/charts/argo-cd/templates/argocd-application-controller/rolebinding.yaml @@ -1,15 +1,15 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: - name: {{ include "argo-cd.controller.fullname" . }} - namespace: {{ include "argo-cd.namespace" . }} + name: {{ template "argo-cd.controller.fullname" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 4 }} roleRef: apiGroup: rbac.authorization.k8s.io kind: Role - name: {{ include "argo-cd.controller.fullname" . }} + name: {{ template "argo-cd.controller.fullname" . }} subjects: - - kind: ServiceAccount - name: {{ include "argo-cd.controller.serviceAccountName" . }} - namespace: {{ include "argo-cd.namespace" . }} +- kind: ServiceAccount + name: {{ template "argo-cd.controllerServiceAccountName" . }} + namespace: {{ .Release.Namespace }} \ No newline at end of file diff --git a/charts/argo-cd/templates/argocd-application-controller/serviceaccount.yaml b/charts/argo-cd/templates/argocd-application-controller/serviceaccount.yaml index 575cbf6d..fe56d376 100644 --- a/charts/argo-cd/templates/argocd-application-controller/serviceaccount.yaml +++ b/charts/argo-cd/templates/argocd-application-controller/serviceaccount.yaml @@ -3,17 +3,17 @@ apiVersion: v1 kind: ServiceAccount automountServiceAccountToken: {{ .Values.controller.serviceAccount.automountServiceAccountToken }} metadata: - name: {{ include "argo-cd.controller.serviceAccountName" . }} - namespace: {{ include "argo-cd.namespace" . }} - {{- with .Values.controller.serviceAccount.annotations }} + name: {{ template "argo-cd.controllerServiceAccountName" . }} + namespace: {{ .Release.Namespace | quote }} +{{- if .Values.controller.serviceAccount.annotations }} annotations: - {{- range $key, $value := . }} + {{- range $key, $value := .Values.controller.serviceAccount.annotations }} {{ $key }}: {{ $value | quote }} - {{- end }} {{- end }} +{{- end }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 4 }} - {{- with .Values.controller.serviceAccount.labels }} - {{- toYaml . | nindent 4 }} - {{- end }} + {{- range $key, $value := .Values.controller.serviceAccount.labels }} + {{ $key }}: {{ $value | quote }} + {{- end }} {{- end }} diff --git a/charts/argo-cd/templates/argocd-application-controller/servicemonitor.yaml b/charts/argo-cd/templates/argocd-application-controller/servicemonitor.yaml index d1912470..10ba7767 100644 --- a/charts/argo-cd/templates/argocd-application-controller/servicemonitor.yaml +++ b/charts/argo-cd/templates/argocd-application-controller/servicemonitor.yaml @@ -1,9 +1,9 @@ -{{- if and (.Capabilities.APIVersions.Has "monitoring.coreos.com/v1") .Values.controller.metrics.enabled .Values.controller.metrics.serviceMonitor.enabled }} +{{- if and .Values.controller.metrics.enabled .Values.controller.metrics.serviceMonitor.enabled }} apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: {{ template "argo-cd.controller.fullname" . }} - namespace: {{ default (include "argo-cd.namespace" .) .Values.controller.metrics.serviceMonitor.namespace | quote }} + namespace: {{ default .Release.Namespace .Values.controller.metrics.serviceMonitor.namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 4 }} {{- with .Values.controller.metrics.serviceMonitor.selector }} @@ -22,9 +22,6 @@ spec: {{- with .Values.controller.metrics.serviceMonitor.interval }} interval: {{ . }} {{- end }} - {{- with .Values.controller.metrics.serviceMonitor.scrapeTimeout }} - scrapeTimeout: {{ . }} - {{- end }} path: /metrics {{- with .Values.controller.metrics.serviceMonitor.relabelings }} relabelings: @@ -34,7 +31,6 @@ spec: metricRelabelings: {{- toYaml . | nindent 8 }} {{- end }} - honorLabels: {{ .Values.controller.metrics.serviceMonitor.honorLabels }} {{- with .Values.controller.metrics.serviceMonitor.scheme }} scheme: {{ . }} {{- end }} @@ -44,7 +40,7 @@ spec: {{- end }} namespaceSelector: matchNames: - - {{ include "argo-cd.namespace" . }} + - {{ .Release.Namespace }} selector: matchLabels: {{- include "argo-cd.selectorLabels" (dict "context" . "component" .Values.controller.name "name" "metrics") | nindent 6 }} diff --git a/charts/argo-cd/templates/argocd-application-controller/statefulset.yaml b/charts/argo-cd/templates/argocd-application-controller/statefulset.yaml index 733290d1..c56bf0b3 100644 --- a/charts/argo-cd/templates/argocd-application-controller/statefulset.yaml +++ b/charts/argo-cd/templates/argocd-application-controller/statefulset.yaml @@ -1,4 +1,3 @@ -{{- if not .Values.controller.dynamicClusterDistribution | default false }} apiVersion: apps/v1 kind: StatefulSet metadata: @@ -9,12 +8,13 @@ metadata: {{- end }} {{- end }} name: {{ template "argo-cd.controller.fullname" . }} - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 4 }} spec: replicas: {{ .Values.controller.replicas }} - revisionHistoryLimit: {{ .Values.controller.revisionHistoryLimit | default .Values.global.revisionHistoryLimit }} + # TODO: Remove for breaking release as history limit cannot be patched + revisionHistoryLimit: 5 serviceName: {{ include "argo-cd.controller.fullname" . }} selector: matchLabels: @@ -23,9 +23,6 @@ spec: metadata: annotations: checksum/cmd-params: {{ include (print $.Template.BasePath "/argocd-configs/argocd-cmd-params-cm.yaml") . | sha256sum }} - {{- if .Values.configs.cm.create }} - checksum/cm: {{ include (print $.Template.BasePath "/argocd-configs/argocd-cm.yaml") . | sha256sum }} - {{- end }} {{- with (mergeOverwrite (deepCopy .Values.global.podAnnotations) .Values.controller.podAnnotations) }} {{- range $key, $value := . }} {{ $key }}: {{ $value | quote }} @@ -37,9 +34,6 @@ spec: {{- toYaml . | nindent 8 }} {{- end }} spec: - {{- with .Values.controller.runtimeClassName | default .Values.global.runtimeClassName }} - runtimeClassName: {{ . }} - {{- end }} {{- with .Values.controller.imagePullSecrets | default .Values.global.imagePullSecrets }} imagePullSecrets: {{- toYaml . | nindent 8 }} @@ -55,11 +49,7 @@ spec: {{- with .Values.controller.priorityClassName | default .Values.global.priorityClassName }} priorityClassName: {{ . }} {{- end }} - {{- if .Values.controller.terminationGracePeriodSeconds }} - terminationGracePeriodSeconds: {{ .Values.controller.terminationGracePeriodSeconds }} - {{- end }} - serviceAccountName: {{ include "argo-cd.controller.serviceAccountName" . }} - automountServiceAccountToken: {{ .Values.controller.automountServiceAccountToken }} + serviceAccountName: {{ include "argo-cd.controllerServiceAccountName" . }} containers: - args: - /usr/local/bin/argocd-application-controller @@ -70,6 +60,38 @@ spec: - {{ . }} {{- end }} {{- end }} + {{- with .Values.controller.args.statusProcessors }} + - --status-processors + - {{ . | quote }} + {{- end }} + {{- with .Values.controller.args.operationProcessors }} + - --operation-processors + - {{ . | quote }} + {{- end }} + {{- with .Values.controller.args.appResyncPeriod }} + - --app-resync + - {{ . | quote }} + {{- end }} + {{- with .Values.controller.args.appHardResyncPeriod }} + - --app-hard-resync + - {{ . | quote }} + {{- end }} + {{- with .Values.controller.args.selfHealTimeout }} + - --self-heal-timeout-seconds + - {{ . | quote }} + {{- end }} + {{- with .Values.controller.args.repoServerTimeoutSeconds }} + - --repo-server-timeout-seconds + - {{ . | quote }} + {{- end }} + {{- with .Values.controller.logFormat }} + - --logformat + - {{ . | quote }} + {{- end }} + {{- with .Values.controller.logLevel }} + - --loglevel + - {{ . | quote }} + {{- end }} {{- with .Values.controller.extraArgs }} {{- toYaml . | nindent 8 }} {{- end }} @@ -77,13 +99,11 @@ spec: imagePullPolicy: {{ default .Values.global.image.imagePullPolicy .Values.controller.image.imagePullPolicy }} name: {{ .Values.controller.name }} env: - {{- with (concat .Values.global.env .Values.controller.env) }} + {{- with .Values.controller.env }} {{- toYaml . | nindent 10 }} {{- end }} - name: ARGOCD_CONTROLLER_REPLICAS value: {{ .Values.controller.replicas | quote }} - - name: ARGOCD_APPLICATION_CONTROLLER_NAME - value: {{ template "argo-cd.controller.fullname" . }} - name: ARGOCD_RECONCILIATION_TIMEOUT valueFrom: configMapKeyRef: @@ -96,18 +116,6 @@ spec: name: argocd-cm key: timeout.hard.reconciliation optional: true - - name: ARGOCD_RECONCILIATION_JITTER - valueFrom: - configMapKeyRef: - key: timeout.reconciliation.jitter - name: argocd-cm - optional: true - - name: ARGOCD_REPO_ERROR_GRACE_PERIOD_SECONDS - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: controller.repo.error.grace.period.seconds - optional: true - name: ARGOCD_APPLICATION_CONTROLLER_REPO_SERVER valueFrom: configMapKeyRef: @@ -156,30 +164,6 @@ spec: name: argocd-cmd-params-cm key: controller.self.heal.timeout.seconds optional: true - - name: ARGOCD_APPLICATION_CONTROLLER_SELF_HEAL_BACKOFF_TIMEOUT_SECONDS - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: controller.self.heal.backoff.timeout.seconds - optional: true - - name: ARGOCD_APPLICATION_CONTROLLER_SELF_HEAL_BACKOFF_FACTOR - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: controller.self.heal.backoff.factor - optional: true - - name: ARGOCD_APPLICATION_CONTROLLER_SELF_HEAL_BACKOFF_CAP_SECONDS - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: controller.self.heal.backoff.cap.seconds - optional: true - - name: ARGOCD_APPLICATION_CONTROLLER_SYNC_TIMEOUT - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: controller.sync.timeout.seconds - optional: true - name: ARGOCD_APPLICATION_CONTROLLER_REPO_SERVER_PLAINTEXT valueFrom: configMapKeyRef: @@ -225,30 +209,14 @@ spec: - name: REDIS_USERNAME valueFrom: secretKeyRef: - name: {{ default "argocd-redis" .Values.externalRedis.existingSecret }} + name: {{ default (include "argo-cd.redis.fullname" .) .Values.externalRedis.existingSecret }} key: redis-username optional: true - name: REDIS_PASSWORD valueFrom: secretKeyRef: - name: {{ default "argocd-redis" .Values.externalRedis.existingSecret }} - {{- if .Values.externalRedis.host }} + name: {{ default (include "argo-cd.redis.fullname" .) .Values.externalRedis.existingSecret }} key: redis-password - {{- else }} - key: auth - {{- end }} - optional: true - - name: REDIS_SENTINEL_USERNAME - valueFrom: - secretKeyRef: - name: {{ default (include "argo-cd.redis.fullname" .) .Values.externalRedis.existingSecret }} - key: redis-sentinel-username - optional: true - - name: REDIS_SENTINEL_PASSWORD - valueFrom: - secretKeyRef: - name: {{ default (include "argo-cd.redis.fullname" .) .Values.externalRedis.existingSecret }} - key: redis-sentinel-password optional: true - name: ARGOCD_DEFAULT_CACHE_EXPIRATION valueFrom: @@ -262,80 +230,12 @@ spec: name: argocd-cmd-params-cm key: otlp.address optional: true - - name: ARGOCD_APPLICATION_CONTROLLER_OTLP_INSECURE - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: otlp.insecure - optional: true - - name: ARGOCD_APPLICATION_CONTROLLER_OTLP_HEADERS - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: otlp.headers - optional: true - name: ARGOCD_APPLICATION_NAMESPACES valueFrom: configMapKeyRef: name: argocd-cmd-params-cm key: application.namespaces optional: true - - name: ARGOCD_CONTROLLER_SHARDING_ALGORITHM - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: controller.sharding.algorithm - optional: true - - name: ARGOCD_APPLICATION_CONTROLLER_KUBECTL_PARALLELISM_LIMIT - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: controller.kubectl.parallelism.limit - optional: true - - name: ARGOCD_K8SCLIENT_RETRY_MAX - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: controller.k8sclient.retry.max - optional: true - - name: ARGOCD_K8SCLIENT_RETRY_BASE_BACKOFF - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: controller.k8sclient.retry.base.backoff - optional: true - - name: ARGOCD_APPLICATION_CONTROLLER_SERVER_SIDE_DIFF - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: controller.diff.server.side - optional: true - - name: ARGOCD_IGNORE_NORMALIZER_JQ_TIMEOUT - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: controller.ignore.normalizer.jq.timeout - optional: true - - name: ARGOCD_HYDRATOR_ENABLED - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: hydrator.enabled - optional: true - - name: ARGOCD_CLUSTER_CACHE_BATCH_EVENTS_PROCESSING - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: controller.cluster.cache.batch.events.processing - optional: true - - name: ARGOCD_CLUSTER_CACHE_EVENTS_PROCESSING_INTERVAL - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: controller.cluster.cache.events.processing.interval - optional: true - - name: KUBECACHEDIR - value: /tmp/kubecache {{- with .Values.controller.envFrom }} envFrom: {{- toYaml . | nindent 10 }} @@ -355,10 +255,8 @@ spec: failureThreshold: {{ .Values.controller.readinessProbe.failureThreshold }} resources: {{- toYaml .Values.controller.resources | nindent 10 }} - {{- with .Values.controller.containerSecurityContext }} securityContext: - {{- toYaml . | nindent 10 }} - {{- end }} + {{- toYaml .Values.controller.containerSecurityContext | nindent 10 }} workingDir: /home/argocd volumeMounts: {{- with .Values.controller.volumeMounts }} @@ -368,10 +266,6 @@ spec: name: argocd-repo-server-tls - mountPath: /home/argocd name: argocd-home - - name: argocd-cmd-params-cm - mountPath: /home/argocd/params - - name: argocd-application-controller-tmp - mountPath: /tmp {{- with .Values.controller.extraContainers }} {{- tpl (toYaml .) $ | nindent 6 }} {{- end }} @@ -407,14 +301,7 @@ spec: {{- toYaml . | nindent 6 }} {{- end }} - name: argocd-home - {{- if .Values.controller.emptyDir.sizeLimit }} - emptyDir: - sizeLimit: {{ .Values.controller.emptyDir.sizeLimit }} - {{- else }} emptyDir: {} - {{- end }} - - emptyDir: {} - name: argocd-application-controller-tmp - name: argocd-repo-server-tls secret: secretName: argocd-repo-server-tls @@ -426,13 +313,6 @@ spec: path: tls.key - key: ca.crt path: ca.crt - - name: argocd-cmd-params-cm - configMap: - optional: true - name: argocd-cmd-params-cm - items: - - key: controller.profile.enabled - path: profiler.enabled {{- if .Values.controller.hostNetwork }} hostNetwork: {{ .Values.controller.hostNetwork }} {{- end }} @@ -441,4 +321,3 @@ spec: {{- toYaml . | nindent 8 }} {{- end }} dnsPolicy: {{ .Values.controller.dnsPolicy }} -{{- end }} diff --git a/charts/argo-cd/templates/argocd-applicationset/certificate.yaml b/charts/argo-cd/templates/argocd-applicationset/certificate.yaml deleted file mode 100644 index fce26bf5..00000000 --- a/charts/argo-cd/templates/argocd-applicationset/certificate.yaml +++ /dev/null @@ -1,39 +0,0 @@ -{{- if .Values.applicationSet.certificate.enabled -}} -apiVersion: cert-manager.io/v1 -kind: Certificate -metadata: - {{- with (mergeOverwrite (deepCopy .Values.global.certificateAnnotations) .Values.applicationSet.certificate.annotations) }} - annotations: - {{- range $key, $value := . }} - {{ $key }}: {{ $value | quote }} - {{- end }} - {{- end }} - name: {{ template "argo-cd.applicationSet.fullname" . }} - namespace: {{ include "argo-cd.namespace" . }} - labels: - {{- include "argo-cd.labels" (dict "context" . "component" .Values.applicationSet.name "name" .Values.applicationSet.name) | nindent 4 }} -spec: - secretName: argocd-applicationset-controller-tls - commonName: {{ .Values.applicationSet.certificate.domain | default .Values.global.domain }} - dnsNames: - - {{ .Values.applicationSet.certificate.domain | default .Values.global.domain }} - {{- range .Values.applicationSet.certificate.additionalHosts }} - - {{ . | quote }} - {{- end }} - {{- with .Values.applicationSet.certificate.duration }} - duration: {{ . | quote }} - {{- end }} - {{- with .Values.applicationSet.certificate.renewBefore }} - renewBefore: {{ . | quote }} - {{- end }} - issuerRef: - {{- with .Values.applicationSet.certificate.issuer.group }} - group: {{ . | quote }} - {{- end }} - kind: {{ .Values.applicationSet.certificate.issuer.kind | quote }} - name: {{ .Values.applicationSet.certificate.issuer.name | quote }} - {{- with .Values.applicationSet.certificate.privateKey }} - privateKey: - {{- toYaml . | nindent 4 }} - {{- end }} -{{- end }} diff --git a/charts/argo-cd/templates/argocd-applicationset/clusterrole.yaml b/charts/argo-cd/templates/argocd-applicationset/clusterrole.yaml deleted file mode 100644 index 2723e3d2..00000000 --- a/charts/argo-cd/templates/argocd-applicationset/clusterrole.yaml +++ /dev/null @@ -1,90 +0,0 @@ -{{- if .Values.applicationSet.allowAnyNamespace }} -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: {{ include "argo-cd.applicationSet.fullname" . }} - labels: - {{- include "argo-cd.labels" (dict "context" . "component" .Values.applicationSet.name "name" .Values.applicationSet.name) | nindent 4 }} -rules: - - apiGroups: - - argoproj.io - resources: - - applications - - applicationsets - - applicationsets/finalizers - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - argoproj.io - resources: - - applicationsets/status - verbs: - - get - - patch - - update - - apiGroups: - - argoproj.io - resources: - - appprojects - verbs: - - get - - list - - watch - - apiGroups: - - "" - resources: - - events - verbs: - - create - - get - - list - - patch - - watch - - apiGroups: - - "" - resources: - - configmaps - verbs: - - create - - update - - delete - - get - - list - - patch - - watch - - apiGroups: - - "" - resources: - - secrets - verbs: - - get - - list - - watch - - apiGroups: - - apps - - extensions - resources: - - deployments - verbs: - - get - - list - - watch - - apiGroups: - - coordination.k8s.io - resources: - - leases - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -{{- end }} diff --git a/charts/argo-cd/templates/argocd-applicationset/clusterrolebinding.yaml b/charts/argo-cd/templates/argocd-applicationset/clusterrolebinding.yaml deleted file mode 100644 index 9dcae8d2..00000000 --- a/charts/argo-cd/templates/argocd-applicationset/clusterrolebinding.yaml +++ /dev/null @@ -1,16 +0,0 @@ -{{- if .Values.applicationSet.allowAnyNamespace }} -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: {{ template "argo-cd.applicationSet.fullname" . }} - labels: - {{- include "argo-cd.labels" (dict "context" . "component" .Values.applicationSet.name "name" .Values.applicationSet.name) | nindent 4 }} -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: {{ template "argo-cd.applicationSet.fullname" . }} -subjects: - - kind: ServiceAccount - name: {{ template "argo-cd.applicationSet.serviceAccountName" . }} - namespace: {{ include "argo-cd.namespace" . }} -{{- end }} diff --git a/charts/argo-cd/templates/argocd-applicationset/deployment.yaml b/charts/argo-cd/templates/argocd-applicationset/deployment.yaml index 9c085123..9033f5b4 100644 --- a/charts/argo-cd/templates/argocd-applicationset/deployment.yaml +++ b/charts/argo-cd/templates/argocd-applicationset/deployment.yaml @@ -1,3 +1,4 @@ +{{- if .Values.applicationSet.enabled }} apiVersion: apps/v1 kind: Deployment metadata: @@ -8,7 +9,7 @@ metadata: {{- end }} {{- end }} name: {{ include "argo-cd.applicationSet.fullname" . }} - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.applicationSet.name "name" .Values.applicationSet.name) | nindent 4 }} spec: @@ -16,29 +17,25 @@ spec: strategy: {{- trim . | nindent 4 }} {{- end }} - replicas: {{ .Values.applicationSet.replicas }} + replicas: {{ .Values.applicationSet.replicaCount }} revisionHistoryLimit: {{ .Values.global.revisionHistoryLimit }} selector: matchLabels: {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.applicationSet.name) | nindent 6 }} template: metadata: + {{- with (mergeOverwrite (deepCopy .Values.global.podAnnotations) .Values.applicationSet.podAnnotations) }} annotations: - checksum/cmd-params: {{ include (print $.Template.BasePath "/argocd-configs/argocd-cmd-params-cm.yaml") . | sha256sum }} - {{- with (mergeOverwrite (deepCopy .Values.global.podAnnotations) .Values.applicationSet.podAnnotations) }} {{- range $key, $value := . }} {{ $key }}: {{ $value | quote }} {{- end }} - {{- end }} + {{- end }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.applicationSet.name "name" .Values.applicationSet.name) | nindent 8 }} {{- with (mergeOverwrite (deepCopy .Values.global.podLabels) .Values.applicationSet.podLabels) }} {{- toYaml . | nindent 8 }} {{- end }} spec: - {{- with .Values.applicationSet.runtimeClassName | default .Values.global.runtimeClassName }} - runtimeClassName: {{ . }} - {{- end }} {{- with .Values.applicationSet.imagePullSecrets | default .Values.global.imagePullSecrets }} imagePullSecrets: {{- toYaml . | nindent 8 }} @@ -54,11 +51,7 @@ spec: {{- with .Values.applicationSet.priorityClassName | default .Values.global.priorityClassName }} priorityClassName: {{ . }} {{- end }} - {{- if .Values.applicationSet.terminationGracePeriodSeconds }} - terminationGracePeriodSeconds: {{ .Values.applicationSet.terminationGracePeriodSeconds }} - {{- end }} - serviceAccountName: {{ include "argo-cd.applicationSet.serviceAccountName" . }} - automountServiceAccountToken: {{ .Values.applicationSet.automountServiceAccountToken }} + serviceAccountName: {{ include "argo-cd.applicationSetServiceAccountName" . }} containers: - name: {{ .Values.applicationSet.name }} image: {{ default .Values.global.image.repository .Values.applicationSet.image.repository }}:{{ default (include "argo-cd.defaultTag" .) .Values.applicationSet.image.tag }} @@ -68,35 +61,43 @@ spec: - --metrics-addr=:{{ .Values.applicationSet.containerPorts.metrics }} - --probe-addr=:{{ .Values.applicationSet.containerPorts.probe }} - --webhook-addr=:{{ .Values.applicationSet.containerPorts.webhook }} + {{- with .Values.applicationSet.args.policy }} + - --policy={{ . }} + {{- end }} + {{- with .Values.applicationSet.args.dryRun }} + - --dry-run={{ . }} + {{- end }} + {{- with .Values.applicationSet.logFormat }} + - --logformat + - {{ . }} + {{- end }} + {{- with .Values.applicationSet.logLevel }} + - --loglevel + - {{ . }} + {{- end }} {{- with .Values.applicationSet.extraArgs }} {{- toYaml . | nindent 12 }} {{- end }} env: - {{- with (concat .Values.global.env .Values.applicationSet.extraEnv) }} + {{- with .Values.applicationSet.extraEnv }} {{- toYaml . | nindent 12 }} {{- end }} - name: NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace - - name: ARGOCD_APPLICATIONSET_CONTROLLER_GLOBAL_PRESERVED_ANNOTATIONS - valueFrom: - configMapKeyRef: - key: applicationsetcontroller.global.preserved.annotations - name: argocd-cmd-params-cm - optional: true - - name: ARGOCD_APPLICATIONSET_CONTROLLER_GLOBAL_PRESERVED_LABELS - valueFrom: - configMapKeyRef: - key: applicationsetcontroller.global.preserved.labels - name: argocd-cmd-params-cm - optional: true - name: ARGOCD_APPLICATIONSET_CONTROLLER_ENABLE_LEADER_ELECTION valueFrom: configMapKeyRef: key: applicationsetcontroller.enable.leader.election name: argocd-cmd-params-cm optional: true + - name: ARGOCD_APPLICATIONSET_CONTROLLER_NAMESPACE + valueFrom: + configMapKeyRef: + key: applicationsetcontroller.namespace + name: argocd-cmd-params-cm + optional: true - name: ARGOCD_APPLICATIONSET_CONTROLLER_REPO_SERVER valueFrom: configMapKeyRef: @@ -109,12 +110,6 @@ spec: key: applicationsetcontroller.policy name: argocd-cmd-params-cm optional: true - - name: ARGOCD_APPLICATIONSET_CONTROLLER_ENABLE_POLICY_OVERRIDE - valueFrom: - configMapKeyRef: - key: applicationsetcontroller.enable.policy.override - name: argocd-cmd-params-cm - optional: true - name: ARGOCD_APPLICATIONSET_CONTROLLER_DEBUG valueFrom: configMapKeyRef: @@ -151,78 +146,6 @@ spec: key: applicationsetcontroller.enable.progressive.syncs name: argocd-cmd-params-cm optional: true - - name: ARGOCD_APPLICATIONSET_CONTROLLER_TOKENREF_STRICT_MODE - valueFrom: - configMapKeyRef: - key: applicationsetcontroller.enable.tokenref.strict.mode - name: argocd-cmd-params-cm - optional: true - - name: ARGOCD_APPLICATIONSET_CONTROLLER_ENABLE_NEW_GIT_FILE_GLOBBING - valueFrom: - configMapKeyRef: - key: applicationsetcontroller.enable.new.git.file.globbing - name: argocd-cmd-params-cm - optional: true - - name: ARGOCD_APPLICATIONSET_CONTROLLER_REPO_SERVER_PLAINTEXT - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: applicationsetcontroller.repo.server.plaintext - optional: true - - name: ARGOCD_APPLICATIONSET_CONTROLLER_REPO_SERVER_STRICT_TLS - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: applicationsetcontroller.repo.server.strict.tls - optional: true - - name: ARGOCD_APPLICATIONSET_CONTROLLER_REPO_SERVER_TIMEOUT_SECONDS - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: applicationsetcontroller.repo.server.timeout.seconds - optional: true - - name: ARGOCD_APPLICATIONSET_CONTROLLER_CONCURRENT_RECONCILIATIONS - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: applicationsetcontroller.concurrent.reconciliations.max - optional: true - - name: ARGOCD_APPLICATIONSET_CONTROLLER_NAMESPACES - valueFrom: - configMapKeyRef: - key: applicationsetcontroller.namespaces - name: argocd-cmd-params-cm - optional: true - - name: ARGOCD_APPLICATIONSET_CONTROLLER_SCM_ROOT_CA_PATH - valueFrom: - configMapKeyRef: - key: applicationsetcontroller.scm.root.ca.path - name: argocd-cmd-params-cm - optional: true - - name: ARGOCD_APPLICATIONSET_CONTROLLER_ALLOWED_SCM_PROVIDERS - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: applicationsetcontroller.allowed.scm.providers - optional: true - - name: ARGOCD_APPLICATIONSET_CONTROLLER_ENABLE_SCM_PROVIDERS - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: applicationsetcontroller.enable.scm.providers - optional: true - - name: ARGOCD_APPLICATIONSET_CONTROLLER_WEBHOOK_PARALLELISM_LIMIT - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: applicationsetcontroller.webhook.parallelism.limit - optional: true - - name: ARGOCD_APPLICATIONSET_CONTROLLER_REQUEUE_AFTER - valueFrom: - configMapKeyRef: - key: applicationsetcontroller.requeue.after - name: argocd-cmd-params-cm - optional: true {{- with .Values.applicationSet.extraEnvFrom }} envFrom: {{- toYaml . | nindent 12 }} @@ -259,10 +182,8 @@ spec: {{- end }} resources: {{- toYaml .Values.applicationSet.resources | nindent 12 }} - {{- with .Values.applicationSet.containerSecurityContext }} securityContext: - {{- toYaml . | nindent 12 }} - {{- end }} + {{- toYaml .Values.applicationSet.containerSecurityContext | nindent 12 }} volumeMounts: {{- with .Values.applicationSet.extraVolumeMounts }} {{- toYaml . | nindent 12 }} @@ -275,8 +196,6 @@ spec: name: gpg-keys - mountPath: /app/config/gpg/keys name: gpg-keyring - - mountPath: /app/config/reposerver/tls - name: argocd-repo-server-tls - mountPath: /tmp name: tmp {{- with .Values.applicationSet.extraContainers }} @@ -323,32 +242,12 @@ spec: configMap: name: argocd-gpg-keys-cm - name: gpg-keyring - {{- if .Values.applicationSet.emptyDir.sizeLimit }} - emptyDir: - sizeLimit: {{ .Values.applicationSet.emptyDir.sizeLimit }} - {{- else }} emptyDir: {} - {{- end }} - name: tmp - {{- if .Values.applicationSet.emptyDir.sizeLimit }} - emptyDir: - sizeLimit: {{ .Values.applicationSet.emptyDir.sizeLimit }} - {{- else }} emptyDir: {} - {{- end }} - - name: argocd-repo-server-tls - secret: - secretName: argocd-repo-server-tls - optional: true - items: - - key: tls.crt - path: tls.crt - - key: tls.key - path: tls.key - - key: ca.crt - path: ca.crt {{- with .Values.applicationSet.dnsConfig }} dnsConfig: {{- toYaml . | nindent 8 }} {{- end }} dnsPolicy: {{ .Values.applicationSet.dnsPolicy }} +{{- end }} diff --git a/charts/argo-cd/templates/argocd-applicationset/ingress.yaml b/charts/argo-cd/templates/argocd-applicationset/ingress.yaml deleted file mode 100644 index 5cdf0cfe..00000000 --- a/charts/argo-cd/templates/argocd-applicationset/ingress.yaml +++ /dev/null @@ -1,62 +0,0 @@ -{{- if .Values.applicationSet.ingress.enabled -}} -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - name: {{ include "argo-cd.applicationSet.fullname" . }} - namespace: {{ include "argo-cd.namespace" . }} - labels: - {{- include "argo-cd.labels" (dict "context" . "component" .Values.applicationSet.name "name" .Values.applicationSet.name) | nindent 4 }} - {{- with .Values.applicationSet.ingress.labels }} - {{- toYaml . | nindent 4 }} - {{- end }} - {{- with .Values.applicationSet.ingress.annotations }} - annotations: - {{- range $key, $value := . }} - {{ $key }}: {{ $value | quote }} - {{- end }} - {{- end }} -spec: - {{- with .Values.applicationSet.ingress.ingressClassName }} - ingressClassName: {{ . }} - {{- end }} - rules: - - host: {{ .Values.applicationSet.ingress.hostname | default .Values.global.domain }} - http: - paths: - {{- with .Values.applicationSet.ingress.extraPaths }} - {{- tpl (toYaml .) $ | nindent 10 }} - {{- end }} - - path: {{ .Values.applicationSet.ingress.path }} - pathType: {{ .Values.applicationSet.ingress.pathType }} - backend: - service: - name: {{ include "argo-cd.applicationSet.fullname" . }} - port: - number: {{ .Values.applicationSet.service.port }} - {{- range .Values.applicationSet.ingress.extraHosts }} - - host: {{ .name | quote }} - http: - paths: - - path: {{ default $.Values.applicationSet.ingress.path .path }} - pathType: {{ default $.Values.applicationSet.ingress.pathType .pathType }} - backend: - service: - name: {{ include "argo-cd.applicationSet.fullname" $ }} - port: - number: {{ $.Values.applicationSet.service.port }} - {{- end }} - {{- with .Values.applicationSet.ingress.extraRules }} - {{- tpl (toYaml .) $ | nindent 4 }} - {{- end }} - {{- if or .Values.applicationSet.ingress.tls .Values.applicationSet.ingress.extraTls }} - tls: - {{- if .Values.applicationSet.ingress.tls }} - - hosts: - - {{ .Values.applicationSet.ingress.hostname | default .Values.global.domain }} - secretName: argocd-applicationset-controller-tls - {{- end }} - {{- with .Values.applicationSet.ingress.extraTls }} - {{- toYaml . | nindent 4 }} - {{- end }} - {{- end }} -{{- end }} diff --git a/charts/argo-cd/templates/argocd-applicationset/metrics.yaml b/charts/argo-cd/templates/argocd-applicationset/metrics.yaml index de5638ad..fdac0bcf 100644 --- a/charts/argo-cd/templates/argocd-applicationset/metrics.yaml +++ b/charts/argo-cd/templates/argocd-applicationset/metrics.yaml @@ -1,30 +1,21 @@ -{{- if .Values.applicationSet.metrics.enabled }} +{{- if and .Values.applicationSet.enabled .Values.applicationSet.metrics.enabled }} apiVersion: v1 kind: Service metadata: name: {{ include "argo-cd.applicationSet.fullname" . }}-metrics - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.applicationSet.name "name" "metrics") | nindent 4 }} {{- with .Values.applicationSet.metrics.service.labels }} {{- toYaml . | nindent 4 }} {{- end }} - {{- if or .Values.applicationSet.metrics.service.annotations .Values.global.addPrometheusAnnotations }} + {{- with .Values.applicationSet.metrics.service.annotations }} annotations: - {{- if .Values.global.addPrometheusAnnotations }} - prometheus.io/port: {{ .Values.applicationSet.metrics.service.servicePort | quote }} - prometheus.io/scrape: "true" - {{- end }} - {{- range $key, $value := .Values.applicationSet.metrics.service.annotations }} + {{- range $key, $value := . }} {{ $key }}: {{ $value | quote }} {{- end }} {{- end }} spec: - type: {{ .Values.applicationSet.metrics.service.type }} - {{- if and .Values.applicationSet.metrics.service.clusterIP (eq .Values.applicationSet.metrics.service.type "ClusterIP") }} - clusterIP: {{ .Values.applicationSet.metrics.service.clusterIP }} - {{- end }} - {{- include "argo-cd.dualStack" . | indent 2 }} ports: - name: {{ .Values.applicationSet.metrics.service.portName }} protocol: TCP diff --git a/charts/argo-cd/templates/argocd-applicationset/networkpolicy.yaml b/charts/argo-cd/templates/argocd-applicationset/networkpolicy.yaml index 3a295f77..81020f54 100644 --- a/charts/argo-cd/templates/argocd-applicationset/networkpolicy.yaml +++ b/charts/argo-cd/templates/argocd-applicationset/networkpolicy.yaml @@ -1,14 +1,14 @@ -{{- if and .Values.global.networkPolicy.create (or .Values.applicationSet.metrics.enabled .Values.applicationSet.ingress.enabled) }} +{{- if and .Values.applicationSet.enabled .Values.global.networkPolicy.create (or .Values.applicationSet.metrics.enabled .Values.applicationSet.webhook.ingress.enabled) }} apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: {{ template "argo-cd.applicationSet.fullname" . }} - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.applicationSet.name "name" .Values.applicationSet.name) | nindent 4 }} spec: ingress: - {{- if .Values.applicationSet.ingress.enabled }} + {{- if .Values.applicationSet.webhook.ingress.enabled }} - ports: - port: webhook {{- end }} diff --git a/charts/argo-cd/templates/argocd-applicationset/pdb.yaml b/charts/argo-cd/templates/argocd-applicationset/pdb.yaml index 5d0ebc88..8f179032 100644 --- a/charts/argo-cd/templates/argocd-applicationset/pdb.yaml +++ b/charts/argo-cd/templates/argocd-applicationset/pdb.yaml @@ -1,9 +1,9 @@ -{{- if .Values.applicationSet.pdb.enabled }} +{{- if and .Values.applicationSet.enabled .Values.applicationSet.pdb.enabled }} apiVersion: policy/v1 kind: PodDisruptionBudget metadata: name: {{ include "argo-cd.applicationSet.fullname" . }} - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.applicationSet.name "name" .Values.applicationSet.name) | nindent 4 }} {{- with .Values.applicationSet.pdb.labels }} diff --git a/charts/argo-cd/templates/argocd-applicationset/role.yaml b/charts/argo-cd/templates/argocd-applicationset/role.yaml index d8cfed62..f8f55405 100644 --- a/charts/argo-cd/templates/argocd-applicationset/role.yaml +++ b/charts/argo-cd/templates/argocd-applicationset/role.yaml @@ -1,8 +1,9 @@ +{{- if .Values.applicationSet.enabled }} apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: {{ include "argo-cd.applicationSet.fullname" . }} - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.applicationSet.name "name" .Values.applicationSet.name) | nindent 4 }} rules: @@ -34,8 +35,6 @@ rules: - appprojects verbs: - get - - list - - watch - apiGroups: - "" resources: @@ -87,3 +86,4 @@ rules: - patch - update - watch +{{- end }} diff --git a/charts/argo-cd/templates/argocd-applicationset/rolebinding.yaml b/charts/argo-cd/templates/argocd-applicationset/rolebinding.yaml index 5d4f1e4a..8a70526c 100644 --- a/charts/argo-cd/templates/argocd-applicationset/rolebinding.yaml +++ b/charts/argo-cd/templates/argocd-applicationset/rolebinding.yaml @@ -1,15 +1,17 @@ +{{- if .Values.applicationSet.enabled }} apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: - name: {{ include "argo-cd.applicationSet.fullname" . }} - namespace: {{ include "argo-cd.namespace" . }} + name: {{ template "argo-cd.applicationSet.fullname" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.applicationSet.name "name" .Values.applicationSet.name) | nindent 4 }} roleRef: apiGroup: rbac.authorization.k8s.io kind: Role - name: {{ include "argo-cd.applicationSet.fullname" . }} + name: {{ template "argo-cd.applicationSet.fullname" . }} subjects: - kind: ServiceAccount - name: {{ include "argo-cd.applicationSet.serviceAccountName" . }} - namespace: {{ include "argo-cd.namespace" . }} + name: {{ template "argo-cd.applicationSetServiceAccountName" . }} + namespace: {{ .Release.Namespace }} +{{- end }} diff --git a/charts/argo-cd/templates/argocd-applicationset/service.yaml b/charts/argo-cd/templates/argocd-applicationset/service.yaml index bf58c6b4..e3a07b6f 100644 --- a/charts/argo-cd/templates/argocd-applicationset/service.yaml +++ b/charts/argo-cd/templates/argocd-applicationset/service.yaml @@ -1,3 +1,4 @@ +{{- if .Values.applicationSet.enabled }} apiVersion: v1 kind: Service metadata: @@ -8,7 +9,7 @@ metadata: {{- end }} {{- end }} name: {{ template "argo-cd.applicationSet.fullname" . }} - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.applicationSet.name "name" .Values.applicationSet.name) | nindent 4 }} {{- with .Values.applicationSet.service.labels }} @@ -16,10 +17,10 @@ metadata: {{- end }} spec: type: {{ .Values.applicationSet.service.type }} - {{- include "argo-cd.dualStack" . | indent 2 }} ports: - name: {{ .Values.applicationSet.service.portName }} port: {{ .Values.applicationSet.service.port }} targetPort: webhook selector: {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.applicationSet.name) | nindent 4 }} +{{- end }} diff --git a/charts/argo-cd/templates/argocd-applicationset/serviceaccount.yaml b/charts/argo-cd/templates/argocd-applicationset/serviceaccount.yaml index 4869cad0..a196626e 100644 --- a/charts/argo-cd/templates/argocd-applicationset/serviceaccount.yaml +++ b/charts/argo-cd/templates/argocd-applicationset/serviceaccount.yaml @@ -1,19 +1,19 @@ -{{- if .Values.applicationSet.serviceAccount.create }} +{{- if and .Values.applicationSet.enabled .Values.applicationSet.serviceAccount.create }} apiVersion: v1 kind: ServiceAccount automountServiceAccountToken: {{ .Values.applicationSet.serviceAccount.automountServiceAccountToken }} metadata: - name: {{ include "argo-cd.applicationSet.serviceAccountName" . }} - namespace: {{ include "argo-cd.namespace" . }} - {{- with .Values.applicationSet.serviceAccount.annotations }} + name: {{ template "argo-cd.applicationSetServiceAccountName" . }} + namespace: {{ .Release.Namespace | quote }} +{{- if .Values.applicationSet.serviceAccount.annotations }} annotations: - {{- range $key, $value := . }} + {{- range $key, $value := .Values.applicationSet.serviceAccount.annotations }} {{ $key }}: {{ $value | quote }} - {{- end }} {{- end }} +{{- end }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.applicationSet.name "name" .Values.applicationSet.name) | nindent 4 }} - {{- with .Values.applicationSet.serviceAccount.labels }} - {{- toYaml . | nindent 4 }} - {{- end }} + {{- range $key, $value := .Values.applicationSet.serviceAccount.labels }} + {{ $key }}: {{ $value | quote }} + {{- end }} {{- end }} diff --git a/charts/argo-cd/templates/argocd-applicationset/servicemonitor.yaml b/charts/argo-cd/templates/argocd-applicationset/servicemonitor.yaml index 52d70700..bb814a25 100644 --- a/charts/argo-cd/templates/argocd-applicationset/servicemonitor.yaml +++ b/charts/argo-cd/templates/argocd-applicationset/servicemonitor.yaml @@ -1,9 +1,10 @@ -{{- if and (.Capabilities.APIVersions.Has "monitoring.coreos.com/v1") .Values.applicationSet.metrics.enabled .Values.applicationSet.metrics.serviceMonitor.enabled }} +{{- if .Values.applicationSet.enabled }} +{{- if and .Values.applicationSet.metrics.enabled .Values.applicationSet.metrics.serviceMonitor.enabled }} apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: {{ template "argo-cd.applicationSet.fullname" . }} - namespace: {{ default (include "argo-cd.namespace" .) .Values.applicationSet.metrics.serviceMonitor.namespace | quote }} + namespace: {{ default .Release.Namespace .Values.applicationSet.metrics.serviceMonitor.namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.applicationSet.name "name" .Values.applicationSet.name) | nindent 4 }} {{- with .Values.applicationSet.metrics.serviceMonitor.selector }} @@ -22,9 +23,6 @@ spec: {{- with .Values.applicationSet.metrics.serviceMonitor.interval }} interval: {{ . }} {{- end }} - {{- with .Values.applicationSet.metrics.serviceMonitor.scrapeTimeout }} - scrapeTimeout: {{ . }} - {{- end }} path: /metrics {{- with .Values.applicationSet.metrics.serviceMonitor.relabelings }} relabelings: @@ -34,7 +32,6 @@ spec: metricRelabelings: {{- toYaml . | nindent 8 }} {{- end }} - honorLabels: {{ .Values.applicationSet.metrics.serviceMonitor.honorLabels }} {{- with .Values.applicationSet.metrics.serviceMonitor.scheme }} scheme: {{ . }} {{- end }} @@ -44,8 +41,9 @@ spec: {{- end }} namespaceSelector: matchNames: - - {{ include "argo-cd.namespace" . }} + - {{ .Release.Namespace }} selector: matchLabels: {{- include "argo-cd.selectorLabels" (dict "context" . "component" .Values.applicationSet.name "name" "metrics") | nindent 6 }} {{- end }} +{{- end }} diff --git a/charts/argo-cd/templates/argocd-applicationset/webhook-ingress.yaml b/charts/argo-cd/templates/argocd-applicationset/webhook-ingress.yaml new file mode 100644 index 00000000..d98f9423 --- /dev/null +++ b/charts/argo-cd/templates/argocd-applicationset/webhook-ingress.yaml @@ -0,0 +1,73 @@ +{{- if and .Values.applicationSet.enabled .Values.applicationSet.webhook.ingress.enabled -}} +{{- $servicePort := .Values.applicationSet.service.portName -}} +{{- $paths := .Values.applicationSet.webhook.ingress.paths -}} +{{- $extraPaths := .Values.applicationSet.webhook.ingress.extraPaths -}} +{{- $pathType := .Values.applicationSet.webhook.ingress.pathType -}} +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: {{ include "argo-cd.applicationSet.fullname" . }} + namespace: {{ .Release.Namespace | quote }} + labels: + {{- include "argo-cd.labels" (dict "context" . "component" .Values.applicationSet.name "name" .Values.applicationSet.name) | nindent 4 }} + {{- with .Values.applicationSet.webhook.ingress.labels }} + {{- toYaml . | nindent 4 }} + {{- end }} + {{- with .Values.applicationSet.webhook.ingress.annotations }} + annotations: + {{- range $key, $value := . }} + {{ $key }}: {{ $value | quote }} + {{- end }} + {{- end }} +spec: + {{- with .Values.applicationSet.webhook.ingress.ingressClassName }} + ingressClassName: {{ . }} + {{- end }} + rules: + {{- if .Values.applicationSet.webhook.ingress.hosts }} + {{- range $host := .Values.applicationSet.webhook.ingress.hosts }} + - host: {{ $host }} + http: + paths: + {{- with $extraPaths }} + {{- toYaml . | nindent 10 }} + {{- end }} + {{- range $p := $paths }} + - path: {{ $p }} + pathType: {{ $pathType }} + backend: + service: + name: {{ include "argo-cd.applicationSet.fullname" $ }} + port: + {{- if kindIs "float64" $servicePort }} + number: {{ $servicePort }} + {{- else }} + name: {{ $servicePort }} + {{- end }} + {{- end -}} + {{- end -}} + {{- else }} + - http: + paths: + {{- with $extraPaths }} + {{- toYaml . | nindent 10 }} + {{- end }} + {{- range $p := $paths }} + - path: {{ $p }} + pathType: {{ $pathType }} + backend: + service: + name: {{ include "argo-cd.applicationSet.fullname" $ }} + port: + {{- if kindIs "float64" $servicePort }} + number: {{ $servicePort }} + {{- else }} + name: {{ $servicePort }} + {{- end }} + {{- end -}} + {{- end -}} + {{- with .Values.applicationSet.webhook.ingress.tls }} + tls: + {{- toYaml . | nindent 4 }} + {{- end -}} +{{- end -}} diff --git a/charts/argo-cd/templates/argocd-commit-server/deployment.yaml b/charts/argo-cd/templates/argocd-commit-server/deployment.yaml deleted file mode 100644 index 96cf6575..00000000 --- a/charts/argo-cd/templates/argocd-commit-server/deployment.yaml +++ /dev/null @@ -1,238 +0,0 @@ -{{- if .Values.commitServer.enabled }} -apiVersion: apps/v1 -kind: Deployment -metadata: - {{- with (mergeOverwrite (deepCopy .Values.global.deploymentAnnotations) .Values.commitServer.deploymentAnnotations) }} - annotations: - {{- range $key, $value := . }} - {{ $key }}: {{ $value | quote }} - {{- end }} - {{- end }} - name: {{ template "argo-cd.commitServer.fullname" . }} - namespace: {{ include "argo-cd.namespace" . }} - labels: - {{- include "argo-cd.labels" (dict "context" . "component" .Values.commitServer.name "name" .Values.commitServer.name) | nindent 4 }} -spec: - {{- with include "argo-cd.strategy" (mergeOverwrite (deepCopy .Values.global.deploymentStrategy) .Values.commitServer.deploymentStrategy) }} - strategy: - {{- trim . | nindent 4 }} - {{- end }} - revisionHistoryLimit: {{ .Values.global.revisionHistoryLimit }} - selector: - matchLabels: - {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.commitServer.name) | nindent 6 }} - template: - metadata: - annotations: - {{- with (mergeOverwrite (deepCopy .Values.global.podAnnotations) .Values.commitServer.podAnnotations) }} - {{- range $key, $value := . }} - {{ $key }}: {{ $value | quote }} - {{- end }} - {{- end }} - labels: - {{- include "argo-cd.labels" (dict "context" . "component" .Values.commitServer.name "name" .Values.commitServer.name) | nindent 8 }} - {{- with (mergeOverwrite (deepCopy .Values.global.podLabels) .Values.commitServer.podLabels) }} - {{- toYaml . | nindent 8 }} - {{- end }} - spec: - {{- with .Values.commitServer.runtimeClassName | default .Values.global.runtimeClassName }} - runtimeClassName: {{ . }} - {{- end }} - {{- with .Values.commitServer.imagePullSecrets | default .Values.global.imagePullSecrets }} - imagePullSecrets: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.global.hostAliases }} - hostAliases: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.global.securityContext }} - securityContext: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.commitServer.priorityClassName | default .Values.global.priorityClassName }} - priorityClassName: {{ . }} - {{- end }} - {{- with .Values.commitServer.terminationGracePeriodSeconds }} - terminationGracePeriodSeconds: {{ . }} - {{- end }} - serviceAccountName: {{ include "argo-cd.commitServer.serviceAccountName" . }} - automountServiceAccountToken: {{ .Values.commitServer.automountServiceAccountToken }} - containers: - - name: {{ .Values.commitServer.name }} - image: {{ default .Values.global.image.repository .Values.commitServer.image.repository }}:{{ default (include "argo-cd.defaultTag" .) .Values.commitServer.image.tag }} - imagePullPolicy: {{ default .Values.global.image.imagePullPolicy .Values.commitServer.image.imagePullPolicy }} - args: - - /usr/local/bin/argocd-commit-server - {{- with .Values.commitServer.extraArgs }} - {{- toYaml . | nindent 8 }} - {{- end }} - env: - {{- with (concat .Values.global.env .Values.commitServer.extraEnv) }} - {{- toYaml . | nindent 10 }} - {{- end }} - - name: ARGOCD_COMMIT_SERVER_LISTEN_ADDRESS - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: commitserver.listen.address - optional: true - - name: ARGOCD_COMMIT_SERVER_METRICS_LISTEN_ADDRESS - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: commitserver.metrics.listen.address - optional: true - - name: ARGOCD_COMMIT_SERVER_LOGFORMAT - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: commitserver.log.format - optional: true - - name: ARGOCD_COMMIT_SERVER_LOGLEVEL - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: commitserver.log.level - optional: true - - name: ARGOCD_LOG_FORMAT_TIMESTAMP - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: log.format.timestamp - optional: true - {{- with .Values.commitServer.envFrom }} - envFrom: - {{- toYaml . | nindent 10 }} - {{- end }} - ports: - - containerPort: 8086 - name: server - protocol: TCP - - containerPort: 8087 - name: metrics - protocol: TCP - {{- if .Values.commitServer.livenessProbe.enabled }} - livenessProbe: - httpGet: - path: /healthz?full=true - port: 8087 - initialDelaySeconds: {{ .Values.commitServer.livenessProbe.initialDelaySeconds }} - periodSeconds: {{ .Values.commitServer.livenessProbe.periodSeconds }} - failureThreshold: {{ .Values.commitServer.livenessProbe.failureThreshold }} - timeoutSeconds: {{ .Values.commitServer.livenessProbe.timeoutSeconds }} - {{- end }} - {{- if .Values.commitServer.readinessProbe.enabled }} - readinessProbe: - httpGet: - path: /healthz - port: 8087 - initialDelaySeconds: {{ .Values.commitServer.readinessProbe.initialDelaySeconds }} - periodSeconds: {{ .Values.commitServer.readinessProbe.periodSeconds }} - failureThreshold: {{ .Values.commitServer.readinessProbe.failureThreshold }} - timeoutSeconds: {{ .Values.commitServer.readinessProbe.timeoutSeconds }} - {{- end }} - resources: - {{- toYaml .Values.commitServer.resources | nindent 10 }} - {{- with .Values.commitServer.containerSecurityContext }} - securityContext: - {{- toYaml . | nindent 10 }} - {{- end }} - {{- with .Values.commitServer.lifecycle }} - lifecycle: - {{- toYaml . | nindent 10 }} - {{- end }} - volumeMounts: - {{- with .Values.commitServer.extraVolumeMounts }} - {{- toYaml . | nindent 8 }} - {{- end }} - - name: ssh-known-hosts - mountPath: /app/config/ssh - - name: tls-certs - mountPath: /app/config/tls - - name: gpg-keys - mountPath: /app/config/gpg/source - - name: gpg-keyring - mountPath: /app/config/gpg/keys - # We need a writeable temp directory for the askpass socket file. - - name: tmp - mountPath: /tmp - initContainers: - - command: - - /bin/cp - - -n - - /usr/local/bin/argocd - - /var/run/argocd/argocd-cmp-server - image: {{ default .Values.global.image.repository .Values.commitServer.image.repository }}:{{ default (include "argo-cd.defaultTag" .) .Values.commitServer.image.tag }} - name: copyutil - resources: - {{- toYaml .Values.commitServer.resources | nindent 10 }} - {{- with .Values.commitServer.containerSecurityContext }} - securityContext: - {{- toYaml . | nindent 10 }} - {{- end }} - volumeMounts: - - mountPath: /var/run/argocd - name: var-files - volumes: - {{- with .Values.commitServer.extraVolumes }} - {{- toYaml . | nindent 8 }} - {{- end }} - - name: ssh-known-hosts - configMap: - name: argocd-ssh-known-hosts-cm - - name: tls-certs - configMap: - name: argocd-tls-certs-cm - - name: gpg-keys - configMap: - name: argocd-gpg-keys-cm - - name: gpg-keyring - emptyDir: {} - - name: tmp - emptyDir: {} - - name: argocd-commit-server-tls - secret: - secretName: argocd-commit-server-tls - optional: true - items: - - key: tls.crt - path: tls.crt - - key: tls.key - path: tls.key - - key: ca.crt - path: ca.crt - - emptyDir: {} - name: var-files - {{- with include "argo-cd.affinity" (dict "context" . "component" .Values.commitServer) }} - affinity: - {{- trim . | nindent 8 }} - {{- end }} - {{- with .Values.commitServer.nodeSelector | default .Values.global.nodeSelector }} - nodeSelector: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.commitServer.tolerations | default .Values.global.tolerations }} - tolerations: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.commitServer.topologySpreadConstraints | default .Values.global.topologySpreadConstraints }} - topologySpreadConstraints: - {{- range $constraint := . }} - - {{ toYaml $constraint | nindent 8 | trim }} - {{- if not $constraint.labelSelector }} - labelSelector: - matchLabels: - {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.commitServer.name) | nindent 12 }} - {{- end }} - {{- end }} - {{- end }} - {{- if .Values.commitServer.hostNetwork }} - hostNetwork: {{ .Values.commitServer.hostNetwork }} - {{- end }} - {{- with .Values.commitServer.dnsConfig }} - dnsConfig: - {{- toYaml . | nindent 8 }} - {{- end }} - dnsPolicy: {{ .Values.commitServer.dnsPolicy }} -{{- end }} diff --git a/charts/argo-cd/templates/argocd-commit-server/metrics.yaml b/charts/argo-cd/templates/argocd-commit-server/metrics.yaml deleted file mode 100644 index 7d198a70..00000000 --- a/charts/argo-cd/templates/argocd-commit-server/metrics.yaml +++ /dev/null @@ -1,35 +0,0 @@ -{{- if and .Values.commitServer.enabled .Values.commitServer.metrics.enabled }} -apiVersion: v1 -kind: Service -metadata: - name: {{ include "argo-cd.commitServer.fullname" . }}-metrics - namespace: {{ include "argo-cd.namespace" . }} - labels: - {{- include "argo-cd.labels" (dict "context" . "component" .Values.commitServer.name "name" "metrics") | nindent 4 }} - {{- with .Values.commitServer.metrics.service.labels }} - {{- toYaml . | nindent 4 }} - {{- end }} - {{- if or .Values.commitServer.metrics.service.annotations .Values.global.addPrometheusAnnotations }} - annotations: - {{- if .Values.global.addPrometheusAnnotations }} - prometheus.io/port: {{ .Values.commitServer.metrics.service.servicePort | quote }} - prometheus.io/scrape: "true" - {{- end }} - {{- range $key, $value := .Values.commitServer.metrics.service.annotations }} - {{ $key }}: {{ $value | quote }} - {{- end }} - {{- end }} -spec: - type: {{ .Values.commitServer.metrics.service.type }} - {{- if and .Values.commitServer.metrics.service.clusterIP (eq .Values.commitServer.metrics.service.type "ClusterIP") }} - clusterIP: {{ .Values.commitServer.metrics.service.clusterIP }} - {{- end }} - {{- include "argo-cd.dualStack" . | indent 2 }} - ports: - - name: {{ .Values.commitServer.metrics.service.portName }} - protocol: TCP - port: {{ .Values.commitServer.metrics.service.servicePort }} - targetPort: 8087 - selector: - {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.commitServer.name) | nindent 4 }} -{{- end }} diff --git a/charts/argo-cd/templates/argocd-commit-server/networkpolicy.yaml b/charts/argo-cd/templates/argocd-commit-server/networkpolicy.yaml deleted file mode 100644 index 6ec0a6ac..00000000 --- a/charts/argo-cd/templates/argocd-commit-server/networkpolicy.yaml +++ /dev/null @@ -1,25 +0,0 @@ -{{- if and .Values.commitServer.enabled .Values.global.networkPolicy.create }} -apiVersion: networking.k8s.io/v1 -kind: NetworkPolicy -metadata: - name: {{ template "argo-cd.commitServer.fullname" . }} - namespace: {{ include "argo-cd.namespace" . }} -spec: - podSelector: - matchLabels: - {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.commitServer.name) | nindent 6 }} - policyTypes: - - Ingress - ingress: - - from: - - podSelector: - matchLabels: - {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.controller.name) | nindent 14 }} - ports: - - protocol: TCP - port: 8086 - - from: - - namespaceSelector: { } - ports: - - port: 8087 -{{- end }} diff --git a/charts/argo-cd/templates/argocd-commit-server/service.yaml b/charts/argo-cd/templates/argocd-commit-server/service.yaml deleted file mode 100644 index 7b0bf878..00000000 --- a/charts/argo-cd/templates/argocd-commit-server/service.yaml +++ /dev/null @@ -1,26 +0,0 @@ -{{- if .Values.commitServer.enabled }} -apiVersion: v1 -kind: Service -metadata: - name: {{ template "argo-cd.commitServer.fullname" . }} - namespace: {{ include "argo-cd.namespace" . }} - labels: - {{- include "argo-cd.labels" (dict "context" . "component" .Values.commitServer.name "name" .Values.commitServer.name) | nindent 4 }} - {{- with .Values.commitServer.service.labels }} - {{- toYaml . | nindent 4 }} - {{- end }} - {{- with .Values.commitServer.service.annotations }} - annotations: - {{- range $key, $value := . }} - {{ $key }}: {{ $value | quote }} - {{- end }} - {{- end }} -spec: - ports: - - name: server - protocol: TCP - port: 8086 - targetPort: 8086 - selector: - {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.commitServer.name) | nindent 4 }} -{{- end }} diff --git a/charts/argo-cd/templates/argocd-commit-server/serviceaccount.yaml b/charts/argo-cd/templates/argocd-commit-server/serviceaccount.yaml deleted file mode 100644 index d0cf9e73..00000000 --- a/charts/argo-cd/templates/argocd-commit-server/serviceaccount.yaml +++ /dev/null @@ -1,19 +0,0 @@ -{{- if and .Values.commitServer.enabled .Values.commitServer.serviceAccount.create }} -apiVersion: v1 -kind: ServiceAccount -automountServiceAccountToken: {{ .Values.commitServer.serviceAccount.automountServiceAccountToken }} -metadata: - name: {{ include "argo-cd.commitServer.serviceAccountName" . }} - namespace: {{ include "argo-cd.namespace" . }} - {{- with .Values.commitServer.serviceAccount.annotations }} - annotations: - {{- range $key, $value := . }} - {{ $key }}: {{ $value | quote }} - {{- end }} - {{- end }} - labels: - {{- include "argo-cd.labels" (dict "context" . "component" .Values.commitServer.name "name" .Values.commitServer.name) | nindent 4 }} - {{- with .Values.commitServer.serviceAccount.labels }} - {{- toYaml . | nindent 4 }} - {{- end }} -{{- end }} diff --git a/charts/argo-cd/templates/argocd-configs/argocd-cm.yaml b/charts/argo-cd/templates/argocd-configs/argocd-cm.yaml index 6bd19f5c..829a6776 100644 --- a/charts/argo-cd/templates/argocd-configs/argocd-cm.yaml +++ b/charts/argo-cd/templates/argocd-configs/argocd-cm.yaml @@ -1,12 +1,12 @@ -{{- if .Values.configs.cm.create }} +{{- if (hasKey .Values.server "configEnabled") | ternary .Values.server.configEnabled .Values.configs.cm.create }} apiVersion: v1 kind: ConfigMap metadata: name: argocd-cm - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" "cm") | nindent 4 }} - {{- with .Values.configs.cm.annotations }} + {{- with (mergeOverwrite (deepCopy .Values.configs.cm.annotations) (.Values.server.configAnnotations | default dict)) }} annotations: {{- range $key, $value := . }} {{ $key }}: {{ $value | quote }} diff --git a/charts/argo-cd/templates/argocd-configs/argocd-cmd-params-cm.yaml b/charts/argo-cd/templates/argocd-configs/argocd-cmd-params-cm.yaml index f0c81b24..18fead9b 100644 --- a/charts/argo-cd/templates/argocd-configs/argocd-cmd-params-cm.yaml +++ b/charts/argo-cd/templates/argocd-configs/argocd-cmd-params-cm.yaml @@ -1,9 +1,8 @@ -{{- if .Values.configs.params.create }} apiVersion: v1 kind: ConfigMap metadata: name: argocd-cmd-params-cm - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" "cmd-params-cm") | nindent 4 }} {{- if .Values.configs.params.annotations }} @@ -14,4 +13,3 @@ metadata: {{- end }} data: {{- include "argo-cd.config.params" . | trim | nindent 2 }} -{{- end }} diff --git a/charts/argo-cd/templates/argocd-configs/argocd-cmp-cm.yaml b/charts/argo-cd/templates/argocd-configs/argocd-cmp-cm.yaml index a5d29f6c..a3400605 100644 --- a/charts/argo-cd/templates/argocd-configs/argocd-cmp-cm.yaml +++ b/charts/argo-cd/templates/argocd-configs/argocd-cmp-cm.yaml @@ -3,7 +3,7 @@ apiVersion: v1 kind: ConfigMap metadata: name: argocd-cmp-cm - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.repoServer.name "name" "cmp-cm") | nindent 4 }} {{- with .Values.configs.cmp.annotations }} diff --git a/charts/argo-cd/templates/argocd-configs/argocd-dex-server-tls-secret.yaml b/charts/argo-cd/templates/argocd-configs/argocd-dex-server-tls-secret.yaml index 747fa13c..c543e8a7 100644 --- a/charts/argo-cd/templates/argocd-configs/argocd-dex-server-tls-secret.yaml +++ b/charts/argo-cd/templates/argocd-configs/argocd-dex-server-tls-secret.yaml @@ -3,7 +3,7 @@ apiVersion: v1 kind: Secret metadata: name: argocd-dex-server-tls - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.dex.name "name" "dex-server-tls") | nindent 4 }} {{- with .Values.dex.certificateSecret.labels }} diff --git a/charts/argo-cd/templates/argocd-configs/argocd-gpg-keys-cm.yaml b/charts/argo-cd/templates/argocd-configs/argocd-gpg-keys-cm.yaml index ed299b59..982867f9 100644 --- a/charts/argo-cd/templates/argocd-configs/argocd-gpg-keys-cm.yaml +++ b/charts/argo-cd/templates/argocd-configs/argocd-gpg-keys-cm.yaml @@ -2,16 +2,16 @@ apiVersion: v1 kind: ConfigMap metadata: name: argocd-gpg-keys-cm - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "name" "gpg-keys-cm") | nindent 4 }} - {{- with .Values.configs.gpg.annotations }} + {{ with (mergeOverwrite (deepCopy .Values.configs.gpg.annotations) (.Values.configs.gpgKeysAnnotations | default dict)) -}} annotations: {{- range $key, $value := . }} {{ $key }}: {{ $value | quote }} {{- end }} {{- end }} -{{- with .Values.configs.gpg.keys }} +{{ with (mergeOverwrite (deepCopy .Values.configs.gpg.keys) (.Values.configs.gpgKeys | default dict)) -}} data: {{- toYaml . | nindent 2 }} {{- end }} diff --git a/charts/argo-cd/templates/argocd-configs/argocd-notifications-cm.yaml b/charts/argo-cd/templates/argocd-configs/argocd-notifications-cm.yaml index 663862e2..c8cdefc4 100644 --- a/charts/argo-cd/templates/argocd-configs/argocd-notifications-cm.yaml +++ b/charts/argo-cd/templates/argocd-configs/argocd-notifications-cm.yaml @@ -3,12 +3,12 @@ apiVersion: v1 kind: ConfigMap metadata: name: argocd-notifications-cm - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.notifications.name "name" .Values.notifications.name) | nindent 4 }} data: context: | - argocdUrl: {{ .Values.notifications.argocdUrl | default (printf "https://%s" .Values.global.domain) }} + argocdUrl: {{ .Values.notifications.argocdUrl | quote }} {{- with .Values.notifications.context }} {{- toYaml . | nindent 4 }} {{- end }} diff --git a/charts/argo-cd/templates/argocd-configs/argocd-notifications-secret.yaml b/charts/argo-cd/templates/argocd-configs/argocd-notifications-secret.yaml index f64a91f5..cde4d555 100644 --- a/charts/argo-cd/templates/argocd-configs/argocd-notifications-secret.yaml +++ b/charts/argo-cd/templates/argocd-configs/argocd-notifications-secret.yaml @@ -2,13 +2,10 @@ apiVersion: v1 kind: Secret metadata: - name: {{ .Values.notifications.secret.name }} - namespace: {{ include "argo-cd.namespace" . }} + name: argocd-notifications-secret + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.notifications.name "name" .Values.notifications.name) | nindent 4 }} - {{- with .Values.notifications.secret.labels }} - {{- toYaml . | nindent 4 }} - {{- end }} {{- with .Values.notifications.secret.annotations }} annotations: {{- range $key, $value := . }} diff --git a/charts/argo-cd/templates/argocd-configs/argocd-rbac-cm.yaml b/charts/argo-cd/templates/argocd-configs/argocd-rbac-cm.yaml index ae48404e..c882cb39 100644 --- a/charts/argo-cd/templates/argocd-configs/argocd-rbac-cm.yaml +++ b/charts/argo-cd/templates/argocd-configs/argocd-rbac-cm.yaml @@ -1,18 +1,18 @@ -{{- if .Values.configs.rbac.create }} +{{- if (hasKey .Values.server "rbacConfigCreate") | ternary .Values.server.rbacConfigCreate .Values.configs.rbac.create }} apiVersion: v1 kind: ConfigMap metadata: name: argocd-rbac-cm - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" "rbac-cm") | nindent 4 }} - {{- with .Values.configs.rbac.annotations }} + {{- with (mergeOverwrite (deepCopy .Values.configs.rbac.annotations) (.Values.server.rbacConfigAnnotations | default dict)) }} annotations: {{- range $key, $value := . }} {{ $key }}: {{ $value | quote }} {{- end }} {{- end }} -{{- with (omit .Values.configs.rbac "create" "annotations") }} +{{- with (mergeOverwrite (deepCopy (omit .Values.configs.rbac "create" "annotations")) (.Values.server.rbacConfig | default dict)) }} data: {{- toYaml . | nindent 2 }} {{- end }} diff --git a/charts/argo-cd/templates/argocd-configs/argocd-repo-server-tls-secret.yaml b/charts/argo-cd/templates/argocd-configs/argocd-repo-server-tls-secret.yaml index 8635d64e..4e1b3dc9 100644 --- a/charts/argo-cd/templates/argocd-configs/argocd-repo-server-tls-secret.yaml +++ b/charts/argo-cd/templates/argocd-configs/argocd-repo-server-tls-secret.yaml @@ -3,7 +3,7 @@ apiVersion: v1 kind: Secret metadata: name: argocd-repo-server-tls - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.repoServer.name "name" "repo-server-tls") | nindent 4 }} {{- with .Values.repoServer.certificateSecret.labels }} diff --git a/charts/argo-cd/templates/argocd-configs/argocd-secret.yaml b/charts/argo-cd/templates/argocd-configs/argocd-secret.yaml index 9462be26..1e69bcea 100644 --- a/charts/argo-cd/templates/argocd-configs/argocd-secret.yaml +++ b/charts/argo-cd/templates/argocd-configs/argocd-secret.yaml @@ -3,7 +3,7 @@ apiVersion: v1 kind: Secret metadata: name: argocd-secret - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" "secret") | nindent 4 }} {{- with .Values.configs.secret.labels }} @@ -16,7 +16,7 @@ metadata: {{- end }} {{- end }} type: Opaque -{{- if or .Values.configs.secret.githubSecret (or .Values.configs.secret.gitlabSecret .Values.configs.secret.bitbucketUUID .Values.configs.secret.bitbucketServerSecret .Values.configs.secret.gogsSecret (and .Values.configs.secret.azureDevops.username .Values.configs.secret.azureDevops.password) .Values.configs.secret.argocdServerAdminPassword .Values.configs.secret.extra) }} +{{- if or .Values.configs.secret.githubSecret (or .Values.configs.secret.gitlabSecret .Values.configs.secret.bitbucketUUID .Values.configs.secret.bitbucketServerSecret .Values.configs.secret.gogsSecret .Values.configs.secret.argocdServerAdminPassword .Values.configs.secret.argocdServerTlsConfig .Values.configs.secret.extra) }} # Setting a blank data again will wipe admin password/key/cert data: {{- with .Values.configs.secret.githubSecret }} @@ -34,9 +34,9 @@ data: {{- with .Values.configs.secret.gogsSecret }} webhook.gogs.secret: {{ . | b64enc }} {{- end }} - {{- if and .Values.configs.secret.azureDevops.username .Values.configs.secret.azureDevops.password }} - webhook.azuredevops.username: {{ .Values.configs.secret.azureDevops.username | b64enc }} - webhook.azuredevops.password: {{ .Values.configs.secret.azureDevops.password | b64enc }} + {{- with .Values.configs.secret.argocdServerTlsConfig }} + tls.key: {{ .key | b64enc }} + tls.crt: {{ .crt | b64enc }} {{- end }} {{- if .Values.configs.secret.argocdServerAdminPassword }} admin.password: {{ .Values.configs.secret.argocdServerAdminPassword | b64enc }} diff --git a/charts/argo-cd/templates/argocd-configs/argocd-server-tls-secret.yaml b/charts/argo-cd/templates/argocd-configs/argocd-server-tls-secret.yaml index 97116472..c612a62c 100644 --- a/charts/argo-cd/templates/argocd-configs/argocd-server-tls-secret.yaml +++ b/charts/argo-cd/templates/argocd-configs/argocd-server-tls-secret.yaml @@ -3,7 +3,7 @@ apiVersion: v1 kind: Secret metadata: name: argocd-server-tls - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" "server-tls") | nindent 4 }} {{- with .Values.server.certificateSecret.labels }} diff --git a/charts/argo-cd/templates/argocd-configs/argocd-ssh-known-hosts-cm.yaml b/charts/argo-cd/templates/argocd-configs/argocd-ssh-known-hosts-cm.yaml index 0218d40b..a7f3abdf 100644 --- a/charts/argo-cd/templates/argocd-configs/argocd-ssh-known-hosts-cm.yaml +++ b/charts/argo-cd/templates/argocd-configs/argocd-ssh-known-hosts-cm.yaml @@ -1,12 +1,11 @@ -{{- if .Values.configs.ssh.create }} apiVersion: v1 kind: ConfigMap metadata: name: argocd-ssh-known-hosts-cm - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "name" "ssh-known-hosts-cm") | nindent 4 }} - {{- with .Values.configs.ssh.annotations }} + {{- with (mergeOverwrite (deepCopy .Values.configs.ssh.annotations) (.Values.configs.knownHostsAnnotations | default dict)) }} annotations: {{- range $key, $value := . }} {{ $key }}: {{ $value | quote }} @@ -14,8 +13,11 @@ metadata: {{- end }} data: ssh_known_hosts: | - {{- .Values.configs.ssh.knownHosts | nindent 4 }} + {{- if hasKey .Values.configs "knownHosts" }} + {{- .Values.configs.knownHosts.data.ssh_known_hosts | nindent 4 }} + {{- else }} + {{- .Values.configs.ssh.knownHosts | nindent 4 }} + {{- end }} {{- with .Values.configs.ssh.extraHosts }} {{- . | nindent 4 }} {{- end }} -{{- end }} diff --git a/charts/argo-cd/templates/argocd-configs/argocd-styles-cm.yaml b/charts/argo-cd/templates/argocd-configs/argocd-styles-cm.yaml index 77421542..b98e40df 100644 --- a/charts/argo-cd/templates/argocd-configs/argocd-styles-cm.yaml +++ b/charts/argo-cd/templates/argocd-configs/argocd-styles-cm.yaml @@ -3,7 +3,7 @@ apiVersion: v1 kind: ConfigMap metadata: name: argocd-styles-cm - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.repoServer.name "name" .Values.repoServer.name) | nindent 4 }} data: diff --git a/charts/argo-cd/templates/argocd-configs/argocd-tls-certs-cm.yaml b/charts/argo-cd/templates/argocd-configs/argocd-tls-certs-cm.yaml index 3aad4011..6a5a95e5 100644 --- a/charts/argo-cd/templates/argocd-configs/argocd-tls-certs-cm.yaml +++ b/charts/argo-cd/templates/argocd-configs/argocd-tls-certs-cm.yaml @@ -1,17 +1,21 @@ -{{- if .Values.configs.tls.create }} apiVersion: v1 kind: ConfigMap metadata: name: argocd-tls-certs-cm - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "name" "tls-certs-cm") | nindent 4 }} - {{- with .Values.configs.tls.annotations }} + {{- with (mergeOverwrite (deepCopy .Values.configs.tls.annotations) (.Values.configs.tlsCertsAnnotations | default dict)) }} annotations: {{- range $key, $value := . }} {{ $key }}: {{ $value | quote }} {{- end }} {{- end }} +{{- if hasKey .Values.configs "tlsCerts" }} + {{- with .Values.configs.tlsCerts }} + {{- toYaml . | nindent 0 }} + {{- end }} +{{- else }} {{- with .Values.configs.tls.certificates }} data: {{- toYaml . | nindent 2 }} diff --git a/charts/argo-cd/templates/argocd-configs/cluster-secrets.yaml b/charts/argo-cd/templates/argocd-configs/cluster-secrets.yaml index 956bbf54..83b1c15d 100644 --- a/charts/argo-cd/templates/argocd-configs/cluster-secrets.yaml +++ b/charts/argo-cd/templates/argocd-configs/cluster-secrets.yaml @@ -1,17 +1,17 @@ -{{- range $cluster_key, $cluster_value := .Values.configs.clusterCredentials }} +{{- range .Values.configs.clusterCredentials }} --- apiVersion: v1 kind: Secret metadata: - name: {{ include "argo-cd.name" $ }}-cluster-{{ $cluster_key }} - namespace: {{ include "argo-cd.namespace" $ | quote }} + name: {{ include "argo-cd.name" $ }}-cluster-{{ .name }} + namespace: {{ $.Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" $) | nindent 4 }} - {{- with $cluster_value.labels }} + {{- with .labels }} {{- toYaml . | nindent 4 }} {{- end }} argocd.argoproj.io/secret-type: cluster - {{- with $cluster_value.annotations }} + {{- with .annotations }} annotations: {{- range $key, $value := . }} {{ $key }}: {{ $value | quote }} @@ -19,20 +19,17 @@ metadata: {{- end }} type: Opaque stringData: - {{- if $cluster_value.shard }} - shard: {{ $cluster_value.shard | quote }} - {{- end }} - name: {{ $cluster_key }} - server: {{ required "A valid .Values.configs.clusterCredentials.CLUSTERNAME.server entry is required!" $cluster_value.server }} - {{- if $cluster_value.namespaces }} - namespaces: {{ $cluster_value.namespaces }} - {{- if $cluster_value.clusterResources }} - clusterResources: {{ $cluster_value.clusterResources | quote }} + name: {{ required "A valid .Values.configs.clusterCredentials[].name entry is required!" .name }} + server: {{ required "A valid .Values.configs.clusterCredentials[].server entry is required!" .server }} + {{- if .namespaces }} + namespaces: {{ .namespaces }} + {{- if .clusterResources }} + clusterResources: {{ .clusterResources | quote }} {{- end }} {{- end }} - {{- if $cluster_value.project }} - project: {{ $cluster_value.project | quote }} + {{- if .project }} + project: {{ .project | quote }} {{- end }} config: | - {{- required "A valid .Values.configs.clusterCredentials.CLUSTERNAME.config entry is required!" $cluster_value.config | toRawJson | nindent 4 }} + {{- required "A valid .Values.configs.clusterCredentials[].config entry is required!" .config | toRawJson | nindent 4 }} {{- end }} diff --git a/charts/argo-cd/templates/argocd-configs/externalredis-secret.yaml b/charts/argo-cd/templates/argocd-configs/externalredis-secret.yaml index 2cfefde9..9bfcd983 100644 --- a/charts/argo-cd/templates/argocd-configs/externalredis-secret.yaml +++ b/charts/argo-cd/templates/argocd-configs/externalredis-secret.yaml @@ -2,8 +2,8 @@ apiVersion: v1 kind: Secret metadata: - name: argocd-redis - namespace: {{ include "argo-cd.namespace" . }} + name: {{ include "argo-cd.redis.fullname" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" $) | nindent 4 }} {{- with .Values.externalRedis.secretAnnotations }} diff --git a/charts/argo-cd/templates/argocd-configs/repository-credentials-secret.yaml b/charts/argo-cd/templates/argocd-configs/repository-credentials-secret.yaml index e4d23f9a..ed1d2fd7 100644 --- a/charts/argo-cd/templates/argocd-configs/repository-credentials-secret.yaml +++ b/charts/argo-cd/templates/argocd-configs/repository-credentials-secret.yaml @@ -4,7 +4,7 @@ apiVersion: v1 kind: Secret metadata: name: argocd-repo-creds-{{ $repo_cred_key }} - namespace: {{ include "argo-cd.namespace" $ | quote }} + namespace: {{ $.Release.Namespace | quote }} labels: argocd.argoproj.io/secret-type: repo-creds {{- include "argo-cd.labels" (dict "context" $) | nindent 4 }} diff --git a/charts/argo-cd/templates/argocd-configs/repository-secret.yaml b/charts/argo-cd/templates/argocd-configs/repository-secret.yaml index 4a77cf1b..4c028958 100644 --- a/charts/argo-cd/templates/argocd-configs/repository-secret.yaml +++ b/charts/argo-cd/templates/argocd-configs/repository-secret.yaml @@ -4,7 +4,7 @@ apiVersion: v1 kind: Secret metadata: name: argocd-repo-{{ $repo_key }} - namespace: {{ include "argo-cd.namespace" $ | quote }} + namespace: {{ $.Release.Namespace | quote }} labels: argocd.argoproj.io/secret-type: repository {{- include "argo-cd.labels" (dict "context" $) | nindent 4 }} diff --git a/charts/argo-cd/templates/argocd-notifications/clusterrole.yaml b/charts/argo-cd/templates/argocd-notifications/clusterrole.yaml deleted file mode 100644 index eba5973f..00000000 --- a/charts/argo-cd/templates/argocd-notifications/clusterrole.yaml +++ /dev/null @@ -1,52 +0,0 @@ -{{- if and .Values.notifications.enabled .Values.createClusterRoles }} -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: {{ include "argo-cd.notifications.fullname" . }} - labels: - {{- include "argo-cd.labels" (dict "context" . "component" .Values.notifications.name "name" .Values.notifications.name) | nindent 4 }} -rules: - {{- with .Values.notifications.clusterRoleRules.rules }} - {{- toYaml . | nindent 2 }} - {{- end }} - - apiGroups: - - argoproj.io - resources: - - applications - - appprojects - verbs: - - get - - list - - watch - - update - - patch - - apiGroups: - - "" - resources: - - configmaps - - secrets - verbs: - - list - - watch - {{- if (index .Values.configs.params "application.namespaces") }} - - create - {{- end }} - {{- if .Values.notifications.cm.create }} - - apiGroups: - - "" - resourceNames: - - argocd-notifications-cm - resources: - - configmaps - verbs: - - get - {{- end }} - - apiGroups: - - "" - resourceNames: - - {{ .Values.notifications.secret.name }} - resources: - - secrets - verbs: - - get -{{- end }} diff --git a/charts/argo-cd/templates/argocd-notifications/clusterrolebinding.yaml b/charts/argo-cd/templates/argocd-notifications/clusterrolebinding.yaml deleted file mode 100644 index 9a6fa7c5..00000000 --- a/charts/argo-cd/templates/argocd-notifications/clusterrolebinding.yaml +++ /dev/null @@ -1,16 +0,0 @@ -{{- if and .Values.notifications.enabled .Values.createClusterRoles }} -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: {{ include "argo-cd.notifications.fullname" . }} - labels: - {{- include "argo-cd.labels" (dict "context" . "component" .Values.notifications.name "name" .Values.notifications.name) | nindent 4 }} -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: {{ include "argo-cd.notifications.fullname" . }} -subjects: -- kind: ServiceAccount - name: {{ include "argo-cd.notifications.serviceAccountName" . }} - namespace: {{ include "argo-cd.namespace" . }} -{{- end }} diff --git a/charts/argo-cd/templates/argocd-notifications/deployment.yaml b/charts/argo-cd/templates/argocd-notifications/deployment.yaml index cee627d5..d49944fd 100644 --- a/charts/argo-cd/templates/argocd-notifications/deployment.yaml +++ b/charts/argo-cd/templates/argocd-notifications/deployment.yaml @@ -9,7 +9,7 @@ metadata: {{- end }} {{- end }} name: {{ include "argo-cd.notifications.fullname" . }} - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.notifications.name "name" .Values.notifications.name) | nindent 4 }} spec: @@ -36,9 +36,6 @@ spec: {{- toYaml . | nindent 8 }} {{- end }} spec: - {{- with .Values.notifications.runtimeClassName | default .Values.global.runtimeClassName }} - runtimeClassName: {{ . }} - {{- end }} {{- with .Values.notifications.imagePullSecrets | default .Values.global.imagePullSecrets }} imagePullSecrets: {{- toYaml . | nindent 8 }} @@ -54,11 +51,7 @@ spec: {{- with .Values.notifications.priorityClassName | default .Values.global.priorityClassName }} priorityClassName: {{ . }} {{- end }} - {{- if .Values.notifications.terminationGracePeriodSeconds }} - terminationGracePeriodSeconds: {{ .Values.notifications.terminationGracePeriodSeconds }} - {{- end }} - serviceAccountName: {{ include "argo-cd.notifications.serviceAccountName" . }} - automountServiceAccountToken: {{ .Values.notifications.automountServiceAccountToken }} + serviceAccountName: {{ include "argo-cd.notificationsServiceAccountName" . }} containers: - name: {{ .Values.notifications.name }} image: {{ default .Values.global.image.repository .Values.notifications.image.repository }}:{{ default (include "argo-cd.defaultTag" .) .Values.notifications.image.tag }} @@ -68,46 +61,15 @@ spec: - --metrics-port={{ .Values.notifications.containerPorts.metrics }} - --loglevel={{ default .Values.global.logging.level .Values.notifications.logLevel }} - --logformat={{ default .Values.global.logging.format .Values.notifications.logFormat }} - - --namespace={{ include "argo-cd.namespace" . }} + - --namespace={{ .Release.Namespace }} - --argocd-repo-server={{ template "argo-cd.repoServer.fullname" . }}:{{ .Values.repoServer.service.port }} - - --secret-name={{ .Values.notifications.secret.name }} {{- range .Values.notifications.extraArgs }} - {{ . | squote }} {{- end }} + {{- with .Values.notifications.extraEnv }} env: - {{- with (concat .Values.global.env .Values.notifications.extraEnv) }} - {{- toYaml . | nindent 12 }} - {{- end }} - - name: ARGOCD_NOTIFICATIONS_CONTROLLER_LOGLEVEL - valueFrom: - configMapKeyRef: - key: notificationscontroller.log.level - name: argocd-cmd-params-cm - optional: true - - name: ARGOCD_NOTIFICATIONS_CONTROLLER_LOGFORMAT - valueFrom: - configMapKeyRef: - key: notificationscontroller.log.format - name: argocd-cmd-params-cm - optional: true - - name: ARGOCD_APPLICATION_NAMESPACES - valueFrom: - configMapKeyRef: - key: application.namespaces - name: argocd-cmd-params-cm - optional: true - - name: ARGOCD_NOTIFICATION_CONTROLLER_SELF_SERVICE_NOTIFICATION_ENABLED - valueFrom: - configMapKeyRef: - key: notificationscontroller.selfservice.enabled - name: argocd-cmd-params-cm - optional: true - - name: ARGOCD_NOTIFICATION_CONTROLLER_REPO_SERVER_PLAINTEXT - valueFrom: - configMapKeyRef: - key: notificationscontroller.repo.server.plaintext - name: argocd-cmd-params-cm - optional: true + {{- toYaml . | nindent 12 }} + {{- end }} {{- with .Values.notifications.extraEnvFrom }} envFrom: {{- toYaml . | nindent 12 }} @@ -116,32 +78,10 @@ spec: - name: metrics containerPort: {{ .Values.notifications.containerPorts.metrics }} protocol: TCP - {{- if .Values.notifications.livenessProbe.enabled }} - livenessProbe: - tcpSocket: - port: metrics - initialDelaySeconds: {{ .Values.notifications.livenessProbe.initialDelaySeconds }} - periodSeconds: {{ .Values.notifications.livenessProbe.periodSeconds }} - timeoutSeconds: {{ .Values.notifications.livenessProbe.timeoutSeconds }} - successThreshold: {{ .Values.notifications.livenessProbe.successThreshold }} - failureThreshold: {{ .Values.notifications.livenessProbe.failureThreshold }} - {{- end }} - {{- if .Values.notifications.readinessProbe.enabled }} - readinessProbe: - tcpSocket: - port: metrics - initialDelaySeconds: {{ .Values.notifications.readinessProbe.initialDelaySeconds }} - periodSeconds: {{ .Values.notifications.readinessProbe.periodSeconds }} - timeoutSeconds: {{ .Values.notifications.readinessProbe.timeoutSeconds }} - successThreshold: {{ .Values.notifications.readinessProbe.successThreshold }} - failureThreshold: {{ .Values.notifications.readinessProbe.failureThreshold }} - {{- end }} resources: {{- toYaml .Values.notifications.resources | nindent 12 }} - {{- with .Values.notifications.containerSecurityContext }} securityContext: - {{- toYaml . | nindent 12 }} - {{- end }} + {{- toYaml .Values.notifications.containerSecurityContext | nindent 12 }} workingDir: /app volumeMounts: - name: tls-certs diff --git a/charts/argo-cd/templates/argocd-notifications/metrics.yaml b/charts/argo-cd/templates/argocd-notifications/metrics.yaml index 9dd18c8b..3c30a085 100644 --- a/charts/argo-cd/templates/argocd-notifications/metrics.yaml +++ b/charts/argo-cd/templates/argocd-notifications/metrics.yaml @@ -3,28 +3,19 @@ apiVersion: v1 kind: Service metadata: name: {{ include "argo-cd.notifications.fullname" . }}-metrics - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.notifications.name "name" "metrics") | nindent 4 }} {{- with .Values.notifications.metrics.service.labels }} {{- toYaml . | nindent 4 }} {{- end }} - {{- if or .Values.notifications.metrics.service.annotations .Values.global.addPrometheusAnnotations }} + {{- with .Values.notifications.metrics.service.annotations }} annotations: - {{- if .Values.global.addPrometheusAnnotations }} - prometheus.io/port: {{ .Values.notifications.metrics.port | quote }} - prometheus.io/scrape: "true" - {{- end }} - {{- range $key, $value := .Values.notifications.metrics.service.annotations }} + {{- range $key, $value := . }} {{ $key }}: {{ $value | quote }} {{- end }} {{- end }} spec: - type: {{ .Values.notifications.metrics.service.type }} - {{- if and .Values.notifications.metrics.service.clusterIP (eq .Values.notifications.metrics.service.type "ClusterIP") }} - clusterIP: {{ .Values.notifications.metrics.service.clusterIP }} - {{- end }} - {{- include "argo-cd.dualStack" . | indent 2 }} selector: {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.notifications.name) | nindent 6 }} ports: diff --git a/charts/argo-cd/templates/argocd-notifications/networkpolicy.yaml b/charts/argo-cd/templates/argocd-notifications/networkpolicy.yaml index b03c26ca..011a7c33 100644 --- a/charts/argo-cd/templates/argocd-notifications/networkpolicy.yaml +++ b/charts/argo-cd/templates/argocd-notifications/networkpolicy.yaml @@ -3,7 +3,7 @@ apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: {{ template "argo-cd.notifications.fullname" . }} - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.notifications.name "name" .Values.notifications.name) | nindent 4 }} spec: diff --git a/charts/argo-cd/templates/argocd-notifications/pdb.yaml b/charts/argo-cd/templates/argocd-notifications/pdb.yaml index 4bdf211a..71619547 100644 --- a/charts/argo-cd/templates/argocd-notifications/pdb.yaml +++ b/charts/argo-cd/templates/argocd-notifications/pdb.yaml @@ -3,7 +3,7 @@ apiVersion: policy/v1 kind: PodDisruptionBudget metadata: name: {{ include "argo-cd.notifications.fullname" . }} - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.notifications.name "name" .Values.notifications.name) | nindent 4 }} {{- with .Values.notifications.pdb.labels }} diff --git a/charts/argo-cd/templates/argocd-notifications/role.yaml b/charts/argo-cd/templates/argocd-notifications/role.yaml index 800a937a..128c24f5 100644 --- a/charts/argo-cd/templates/argocd-notifications/role.yaml +++ b/charts/argo-cd/templates/argocd-notifications/role.yaml @@ -3,7 +3,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: {{ template "argo-cd.notifications.fullname" . }} - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.notifications.name "name" .Values.notifications.name) | nindent 4 }} rules: @@ -37,7 +37,7 @@ rules: - apiGroups: - "" resourceNames: - - {{ .Values.notifications.secret.name }} + - argocd-notifications-secret resources: - secrets verbs: diff --git a/charts/argo-cd/templates/argocd-notifications/rolebinding.yaml b/charts/argo-cd/templates/argocd-notifications/rolebinding.yaml index e2259621..7bc6e1d1 100644 --- a/charts/argo-cd/templates/argocd-notifications/rolebinding.yaml +++ b/charts/argo-cd/templates/argocd-notifications/rolebinding.yaml @@ -2,16 +2,16 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: - name: {{ include "argo-cd.notifications.fullname" . }} - namespace: {{ include "argo-cd.namespace" . }} + name: {{ template "argo-cd.notifications.fullname" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.notifications.name "name" .Values.notifications.name) | nindent 4 }} roleRef: apiGroup: rbac.authorization.k8s.io kind: Role - name: {{ include "argo-cd.notifications.fullname" . }} + name: {{ template "argo-cd.notifications.fullname" . }} subjects: - kind: ServiceAccount - name: {{ include "argo-cd.notifications.serviceAccountName" . }} - namespace: {{ include "argo-cd.namespace" . }} + name: {{ template "argo-cd.notificationsServiceAccountName" . }} + namespace: {{ .Release.Namespace }} {{- end }} diff --git a/charts/argo-cd/templates/argocd-notifications/serviceaccount.yaml b/charts/argo-cd/templates/argocd-notifications/serviceaccount.yaml index 3da8f27c..aa824242 100644 --- a/charts/argo-cd/templates/argocd-notifications/serviceaccount.yaml +++ b/charts/argo-cd/templates/argocd-notifications/serviceaccount.yaml @@ -3,17 +3,17 @@ apiVersion: v1 kind: ServiceAccount automountServiceAccountToken: {{ .Values.notifications.serviceAccount.automountServiceAccountToken }} metadata: - name: {{ include "argo-cd.notifications.serviceAccountName" . }} - namespace: {{ include "argo-cd.namespace" . }} - {{- with .Values.notifications.serviceAccount.annotations }} + name: {{ template "argo-cd.notificationsServiceAccountName" . }} + namespace: {{ .Release.Namespace | quote }} +{{- if .Values.notifications.serviceAccount.annotations }} annotations: - {{- range $key, $value := . }} + {{- range $key, $value := .Values.notifications.serviceAccount.annotations }} {{ $key }}: {{ $value | quote }} - {{- end }} {{- end }} +{{- end }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.notifications.name "name" .Values.notifications.name) | nindent 4 }} - {{- with .Values.notifications.serviceAccount.labels }} - {{- toYaml . | nindent 4 }} - {{- end }} + {{- range $key, $value := .Values.notifications.serviceAccount.labels }} + {{ $key }}: {{ $value | quote }} + {{- end }} {{- end }} diff --git a/charts/argo-cd/templates/argocd-notifications/servicemonitor.yaml b/charts/argo-cd/templates/argocd-notifications/servicemonitor.yaml index 22b882a6..de3cc5a3 100644 --- a/charts/argo-cd/templates/argocd-notifications/servicemonitor.yaml +++ b/charts/argo-cd/templates/argocd-notifications/servicemonitor.yaml @@ -1,9 +1,9 @@ -{{- if and (.Capabilities.APIVersions.Has "monitoring.coreos.com/v1") .Values.notifications.enabled .Values.notifications.metrics.enabled .Values.notifications.metrics.serviceMonitor.enabled }} +{{- if and .Values.notifications.enabled .Values.notifications.metrics.enabled .Values.notifications.metrics.serviceMonitor.enabled }} apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: {{ template "argo-cd.notifications.fullname" . }} - namespace: {{ default (include "argo-cd.namespace" .) .Values.notifications.metrics.serviceMonitor.namespace | quote }} + namespace: {{ default .Release.Namespace .Values.notifications.metrics.serviceMonitor.namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.notifications.name "name" .Values.notifications.name) | nindent 4 }} {{- with .Values.notifications.metrics.serviceMonitor.selector }} @@ -41,10 +41,9 @@ spec: metricRelabelings: {{- toYaml . | nindent 8 }} {{- end }} - honorLabels: {{ .Values.notifications.metrics.serviceMonitor.honorLabels }} namespaceSelector: matchNames: - - {{ include "argo-cd.namespace" . }} + - {{ .Release.Namespace }} selector: matchLabels: {{- include "argo-cd.selectorLabels" (dict "context" . "component" .Values.notifications.name "name" "metrics") | nindent 6 }} diff --git a/charts/argo-cd/templates/argocd-repo-server/clusterrole.yaml b/charts/argo-cd/templates/argocd-repo-server/clusterrole.yaml index 23439b18..21dff1a9 100644 --- a/charts/argo-cd/templates/argocd-repo-server/clusterrole.yaml +++ b/charts/argo-cd/templates/argocd-repo-server/clusterrole.yaml @@ -1,4 +1,5 @@ -{{- if and .Values.createClusterRoles .Values.repoServer.clusterRoleRules.enabled }} +{{- $config := .Values.repoServer.clusterAdminAccess | default dict -}} +{{- if hasKey $config "enabled" | ternary $config.enabled .Values.createClusterRoles }} apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: @@ -6,8 +7,8 @@ metadata: labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.repoServer.name "name" .Values.repoServer.name) | nindent 4 }} rules: - {{- with .Values.repoServer.clusterRoleRules.rules }} - {{- toYaml . | nindent 2 }} + {{- if .Values.repoServer.clusterRoleRules.enabled }} + {{- toYaml .Values.repoServer.clusterRoleRules.rules | nindent 2 }} {{- else }} - apiGroups: - '*' diff --git a/charts/argo-cd/templates/argocd-repo-server/clusterrolebinding.yaml b/charts/argo-cd/templates/argocd-repo-server/clusterrolebinding.yaml index d8bd88aa..c3e21edb 100644 --- a/charts/argo-cd/templates/argocd-repo-server/clusterrolebinding.yaml +++ b/charts/argo-cd/templates/argocd-repo-server/clusterrolebinding.yaml @@ -1,4 +1,5 @@ -{{- if and .Values.createClusterRoles .Values.repoServer.clusterRoleRules.enabled }} +{{- $config := .Values.repoServer.clusterAdminAccess | default dict -}} +{{- if hasKey $config "enabled" | ternary $config.enabled .Values.createClusterRoles }} apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: @@ -11,6 +12,6 @@ roleRef: name: {{ include "argo-cd.repoServer.fullname" . }} subjects: - kind: ServiceAccount - name: {{ include "argo-cd.repoServer.serviceAccountName" . }} - namespace: {{ include "argo-cd.namespace" . }} + name: {{ include "argo-cd.repoServerServiceAccountName" . }} + namespace: {{ .Release.Namespace }} {{- end }} diff --git a/charts/argo-cd/templates/argocd-repo-server/deployment.yaml b/charts/argo-cd/templates/argocd-repo-server/deployment.yaml index f12332e9..0226b48f 100755 --- a/charts/argo-cd/templates/argocd-repo-server/deployment.yaml +++ b/charts/argo-cd/templates/argocd-repo-server/deployment.yaml @@ -8,7 +8,7 @@ metadata: {{- end }} {{- end }} name: {{ template "argo-cd.repoServer.fullname" . }} - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.repoServer.name "name" .Values.repoServer.name) | nindent 4 }} spec: @@ -30,12 +30,6 @@ spec: {{- if .Values.repoServer.certificateSecret.enabled }} checksum/repo-server-tls: {{ include (print $.Template.BasePath "/argocd-configs/argocd-repo-server-tls-secret.yaml") . | sha256sum }} {{- end }} - {{- if .Values.configs.cm.create }} - checksum/cm: {{ include (print $.Template.BasePath "/argocd-configs/argocd-cm.yaml") . | sha256sum }} - {{- end }} - {{- if .Values.configs.cmp.create }} - checksum/cmp-cm: {{ include (print $.Template.BasePath "/argocd-configs/argocd-cmp-cm.yaml") . | sha256sum }} - {{- end }} {{- with (mergeOverwrite (deepCopy .Values.global.podAnnotations) .Values.repoServer.podAnnotations) }} {{- range $key, $value := . }} {{ $key }}: {{ $value | quote }} @@ -47,9 +41,6 @@ spec: {{- toYaml . | nindent 8 }} {{- end }} spec: - {{- with .Values.repoServer.runtimeClassName | default .Values.global.runtimeClassName }} - runtimeClassName: {{ . }} - {{- end }} {{- with .Values.repoServer.imagePullSecrets | default .Values.global.imagePullSecrets }} imagePullSecrets: {{- toYaml . | nindent 8 }} @@ -65,11 +56,7 @@ spec: {{- with .Values.repoServer.priorityClassName | default .Values.global.priorityClassName }} priorityClassName: {{ . }} {{- end }} - {{- if .Values.repoServer.terminationGracePeriodSeconds }} - terminationGracePeriodSeconds: {{ .Values.repoServer.terminationGracePeriodSeconds }} - {{- end }} - serviceAccountName: {{ include "argo-cd.repoServer.serviceAccountName" . }} - automountServiceAccountToken: {{ .Values.repoServer.automountServiceAccountToken }} + serviceAccountName: {{ include "argo-cd.repoServerServiceAccountName" . }} containers: - name: {{ .Values.repoServer.name }} image: {{ default .Values.global.image.repository .Values.repoServer.image.repository }}:{{ default (include "argo-cd.defaultTag" .) .Values.repoServer.image.tag }} @@ -78,19 +65,25 @@ spec: - /usr/local/bin/argocd-repo-server - --port={{ .Values.repoServer.containerPorts.server }} - --metrics-port={{ .Values.repoServer.containerPorts.metrics }} + {{- with .Values.repoServer.logFormat }} + - --logformat + - {{ . | quote }} + {{- end }} + {{- with .Values.repoServer.logLevel }} + - --loglevel + - {{ . | quote }} + {{- end }} {{- with .Values.repoServer.extraArgs }} {{- toYaml . | nindent 8 }} {{- end }} env: - {{- with (concat .Values.global.env .Values.repoServer.env) }} + {{- with .Values.repoServer.env }} {{- toYaml . | nindent 10 }} {{- end }} {{- if .Values.openshift.enabled }} - name: USER_NAME value: argocd {{- end }} - - name: ARGOCD_REPO_SERVER_NAME - value: {{ template "argo-cd.repoServer.fullname" . }} - name: ARGOCD_RECONCILIATION_TIMEOUT valueFrom: configMapKeyRef: @@ -115,18 +108,6 @@ spec: name: argocd-cmd-params-cm key: reposerver.parallelism.limit optional: true - - name: ARGOCD_REPO_SERVER_LISTEN_ADDRESS - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: reposerver.listen.address - optional: true - - name: ARGOCD_REPO_SERVER_LISTEN_METRICS_ADDRESS - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: reposerver.metrics.listen.address - optional: true - name: ARGOCD_REPO_SERVER_DISABLE_TLS valueFrom: configMapKeyRef: @@ -178,30 +159,14 @@ spec: - name: REDIS_USERNAME valueFrom: secretKeyRef: - name: {{ default "argocd-redis" .Values.externalRedis.existingSecret }} + name: {{ default (include "argo-cd.redis.fullname" .) .Values.externalRedis.existingSecret }} key: redis-username optional: true - name: REDIS_PASSWORD valueFrom: secretKeyRef: - name: {{ default "argocd-redis" .Values.externalRedis.existingSecret }} - {{- if .Values.externalRedis.host }} + name: {{ default (include "argo-cd.redis.fullname" .) .Values.externalRedis.existingSecret }} key: redis-password - {{- else }} - key: auth - {{- end }} - optional: true - - name: REDIS_SENTINEL_USERNAME - valueFrom: - secretKeyRef: - name: {{ default (include "argo-cd.redis.fullname" .) .Values.externalRedis.existingSecret }} - key: redis-sentinel-username - optional: true - - name: REDIS_SENTINEL_PASSWORD - valueFrom: - secretKeyRef: - name: {{ default (include "argo-cd.redis.fullname" .) .Values.externalRedis.existingSecret }} - key: redis-sentinel-password optional: true - name: ARGOCD_DEFAULT_CACHE_EXPIRATION valueFrom: @@ -215,18 +180,6 @@ spec: name: argocd-cmd-params-cm key: otlp.address optional: true - - name: ARGOCD_REPO_SERVER_OTLP_INSECURE - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: otlp.insecure - optional: true - - name: ARGOCD_REPO_SERVER_OTLP_HEADERS - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: otlp.headers - optional: true - name: ARGOCD_REPO_SERVER_MAX_COMBINED_DIRECTORY_MANIFESTS_SIZE valueFrom: configMapKeyRef: @@ -239,12 +192,6 @@ spec: name: argocd-cmd-params-cm key: reposerver.plugin.tar.exclusions optional: true - - name: ARGOCD_REPO_SERVER_PLUGIN_USE_MANIFEST_GENERATE_PATHS - valueFrom: - configMapKeyRef: - key: reposerver.plugin.use.manifest.generate.paths - name: argocd-cmd-params-cm - optional: true - name: ARGOCD_REPO_SERVER_ALLOW_OUT_OF_BOUNDS_SYMLINKS valueFrom: configMapKeyRef: @@ -263,56 +210,18 @@ spec: key: reposerver.streamed.manifest.max.extracted.size name: argocd-cmd-params-cm optional: true - - name: ARGOCD_REPO_SERVER_HELM_MANIFEST_MAX_EXTRACTED_SIZE - valueFrom: - configMapKeyRef: - key: reposerver.helm.manifest.max.extracted.size - name: argocd-cmd-params-cm - optional: true - - name: ARGOCD_REPO_SERVER_DISABLE_HELM_MANIFEST_MAX_EXTRACTED_SIZE - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: reposerver.disable.helm.manifest.max.extracted.size - optional: true - name: ARGOCD_GIT_MODULES_ENABLED valueFrom: configMapKeyRef: key: reposerver.enable.git.submodule name: argocd-cmd-params-cm optional: true - - name: ARGOCD_GIT_LS_REMOTE_PARALLELISM_LIMIT - valueFrom: - configMapKeyRef: - key: reposerver.git.lsremote.parallelism.limit - name: argocd-cmd-params-cm - optional: true - - name: ARGOCD_GIT_REQUEST_TIMEOUT - valueFrom: - configMapKeyRef: - key: reposerver.git.request.timeout - name: argocd-cmd-params-cm - optional: true - - name: ARGOCD_REVISION_CACHE_LOCK_TIMEOUT - valueFrom: - configMapKeyRef: - key: reposerver.revision.cache.lock.timeout - name: argocd-cmd-params-cm - optional: true - - name: ARGOCD_REPO_SERVER_INCLUDE_HIDDEN_DIRECTORIES - valueFrom: - configMapKeyRef: - key: reposerver.include.hidden.directories - name: argocd-cmd-params-cm - optional: true - {{- if .Values.repoServer.useEphemeralHelmWorkingDir }} - name: HELM_CACHE_HOME value: /helm-working-dir - name: HELM_CONFIG_HOME value: /helm-working-dir - name: HELM_DATA_HOME value: /helm-working-dir - {{- end }} {{- with .Values.repoServer.envFrom }} envFrom: {{- toYaml . | nindent 10 }} @@ -331,10 +240,8 @@ spec: name: gpg-keyring - mountPath: /app/config/reposerver/tls name: argocd-repo-server-tls - {{- if .Values.repoServer.useEphemeralHelmWorkingDir }} - mountPath: /helm-working-dir name: helm-working-dir - {{- end }} - mountPath: /home/argocd/cmp-server/plugins name: plugins - mountPath: /tmp @@ -366,14 +273,8 @@ spec: failureThreshold: {{ .Values.repoServer.readinessProbe.failureThreshold }} resources: {{- toYaml .Values.repoServer.resources | nindent 10 }} - {{- with .Values.repoServer.containerSecurityContext }} securityContext: - {{- toYaml . | nindent 10 }} - {{- end }} - {{- with .Values.repoServer.lifecycle }} - lifecycle: - {{- toYaml . | nindent 10 }} - {{- end }} + {{- toYaml .Values.repoServer.containerSecurityContext | nindent 10 }} {{- with .Values.repoServer.extraContainers }} {{- tpl (toYaml .) $ | nindent 6 }} {{- end }} @@ -386,8 +287,10 @@ spec: image: {{ default .Values.global.image.repository .Values.repoServer.image.repository }}:{{ default (include "argo-cd.defaultTag" .) .Values.repoServer.image.tag }} imagePullPolicy: {{ default .Values.global.image.imagePullPolicy .Values.repoServer.image.imagePullPolicy }} name: copyutil + {{- with .Values.repoServer.resources }} resources: - {{- toYaml .Values.repoServer.resources | nindent 10 }} + {{- toYaml . | nindent 10 }} + {{- end }} {{- with .Values.repoServer.containerSecurityContext }} securityContext: {{- toYaml . | nindent 10 }} @@ -425,52 +328,14 @@ spec: {{- with .Values.repoServer.volumes }} {{- toYaml . | nindent 6 }} {{- end }} - {{- if .Values.repoServer.useEphemeralHelmWorkingDir }} - name: helm-working-dir - {{- if .Values.repoServer.existingVolumes.helmWorkingDir -}} - {{ toYaml .Values.repoServer.existingVolumes.helmWorkingDir | nindent 8 }} - {{- else }} - {{- if .Values.repoServer.emptyDir.sizeLimit }} - emptyDir: - sizeLimit: {{ .Values.repoServer.emptyDir.sizeLimit }} - {{- else }} emptyDir: {} - {{- end }} - {{- end }} - {{- end }} - name: plugins - {{- if .Values.repoServer.existingVolumes.plugins -}} - {{ toYaml .Values.repoServer.existingVolumes.plugins | nindent 8 }} - {{- else }} - {{- if .Values.repoServer.emptyDir.sizeLimit }} - emptyDir: - sizeLimit: {{ .Values.repoServer.emptyDir.sizeLimit }} - {{- else }} emptyDir: {} - {{- end }} - {{- end }} - name: var-files - {{- if .Values.repoServer.existingVolumes.varFiles -}} - {{ toYaml .Values.repoServer.existingVolumes.varFiles | nindent 8 }} - {{- else }} - {{- if .Values.repoServer.emptyDir.sizeLimit }} - emptyDir: - sizeLimit: {{ .Values.repoServer.emptyDir.sizeLimit }} - {{- else }} emptyDir: {} - {{- end }} - {{- end }} - name: tmp - {{- if .Values.repoServer.existingVolumes.tmp -}} - {{ toYaml .Values.repoServer.existingVolumes.tmp | nindent 8 }} - {{- else }} - {{- if .Values.repoServer.emptyDir.sizeLimit }} - emptyDir: - sizeLimit: {{ .Values.repoServer.emptyDir.sizeLimit }} - {{- else }} emptyDir: {} - {{- end }} - {{- end }} - name: ssh-known-hosts configMap: name: argocd-ssh-known-hosts-cm @@ -481,16 +346,7 @@ spec: configMap: name: argocd-gpg-keys-cm - name: gpg-keyring - {{- if .Values.repoServer.existingVolumes.gpgKeyring -}} - {{ toYaml .Values.repoServer.existingVolumes.gpgKeyring | nindent 8 }} - {{- else }} - {{- if .Values.repoServer.emptyDir.sizeLimit }} - emptyDir: - sizeLimit: {{ .Values.repoServer.emptyDir.sizeLimit }} - {{- else }} emptyDir: {} - {{- end }} - {{- end }} - name: argocd-repo-server-tls secret: secretName: argocd-repo-server-tls diff --git a/charts/argo-cd/templates/argocd-repo-server/hpa.yaml b/charts/argo-cd/templates/argocd-repo-server/hpa.yaml index 7615a412..2cba8324 100644 --- a/charts/argo-cd/templates/argocd-repo-server/hpa.yaml +++ b/charts/argo-cd/templates/argocd-repo-server/hpa.yaml @@ -1,38 +1,42 @@ {{- if .Values.repoServer.autoscaling.enabled }} -apiVersion: autoscaling/v2 +apiVersion: {{ include "argo-cd.apiVersion.autoscaling" . }} kind: HorizontalPodAutoscaler metadata: - name: {{ include "argo-cd.repoServer.fullname" . }} - namespace: {{ include "argo-cd.namespace" . }} labels: - {{- include "argo-cd.labels" (dict "context" . "component" .Values.repoServer.name "name" .Values.repoServer.name) | nindent 4 }} + {{- include "argo-cd.labels" (dict "context" . "component" .Values.repoServer.name "name" (printf "%s-hpa" .Values.repoServer.name)) | nindent 4 }} + name: {{ template "argo-cd.repoServer.fullname" . }}-hpa + namespace: {{ .Release.Namespace | quote }} spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment - name: {{ include "argo-cd.repoServer.fullname" . }} + name: {{ template "argo-cd.repoServer.fullname" . }} minReplicas: {{ .Values.repoServer.autoscaling.minReplicas }} maxReplicas: {{ .Values.repoServer.autoscaling.maxReplicas }} metrics: - {{- with .Values.repoServer.autoscaling.metrics }} - {{- toYaml . | nindent 4 }} - {{- else }} - {{- with .Values.repoServer.autoscaling.targetMemoryUtilizationPercentage }} + {{- with .Values.repoServer.autoscaling.targetMemoryUtilizationPercentage }} - type: Resource resource: name: memory + {{- if eq (include "argo-cd.apiVersion.autoscaling" $) "autoscaling/v2beta1" }} + targetAverageUtilization: {{ . }} + {{- else }} target: - type: Utilization averageUtilization: {{ . }} - {{- end }} - {{- with .Values.repoServer.autoscaling.targetCPUUtilizationPercentage }} + type: Utilization + {{- end }} + {{- end }} + {{- with .Values.repoServer.autoscaling.targetCPUUtilizationPercentage }} - type: Resource resource: name: cpu + {{- if eq (include "argo-cd.apiVersion.autoscaling" $) "autoscaling/v2beta1" }} + targetAverageUtilization: {{ . }} + {{- else }} target: - type: Utilization averageUtilization: {{ . }} - {{- end }} + type: Utilization + {{- end }} {{- end }} {{- with .Values.repoServer.autoscaling.behavior }} behavior: diff --git a/charts/argo-cd/templates/argocd-repo-server/metrics.yaml b/charts/argo-cd/templates/argocd-repo-server/metrics.yaml index 6ede9ddb..b2be38ee 100644 --- a/charts/argo-cd/templates/argocd-repo-server/metrics.yaml +++ b/charts/argo-cd/templates/argocd-repo-server/metrics.yaml @@ -3,28 +3,19 @@ apiVersion: v1 kind: Service metadata: name: {{ include "argo-cd.repoServer.fullname" . }}-metrics - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.repoServer.name "name" (printf "%s-metrics" .Values.repoServer.name)) | nindent 4 }} {{- with .Values.repoServer.metrics.service.labels }} {{- toYaml . | nindent 4 }} {{- end }} - {{- if or .Values.repoServer.metrics.service.annotations .Values.global.addPrometheusAnnotations }} + {{- with .Values.repoServer.metrics.service.annotations }} annotations: - {{- if .Values.global.addPrometheusAnnotations }} - prometheus.io/port: {{ .Values.repoServer.metrics.service.servicePort | quote }} - prometheus.io/scrape: "true" - {{- end }} - {{- range $key, $value := .Values.repoServer.metrics.service.annotations }} + {{- range $key, $value := . }} {{ $key }}: {{ $value | quote }} {{- end }} {{- end }} spec: - type: {{ .Values.repoServer.metrics.service.type }} - {{- if and .Values.repoServer.metrics.service.clusterIP (eq .Values.repoServer.metrics.service.type "ClusterIP") }} - clusterIP: {{ .Values.repoServer.metrics.service.clusterIP }} - {{- end }} - {{- include "argo-cd.dualStack" . | indent 2 }} ports: - name: {{ .Values.repoServer.metrics.service.portName }} protocol: TCP diff --git a/charts/argo-cd/templates/argocd-repo-server/networkpolicy.yaml b/charts/argo-cd/templates/argocd-repo-server/networkpolicy.yaml index c11ab129..08a1c214 100644 --- a/charts/argo-cd/templates/argocd-repo-server/networkpolicy.yaml +++ b/charts/argo-cd/templates/argocd-repo-server/networkpolicy.yaml @@ -5,7 +5,7 @@ metadata: labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.repoServer.name "name" .Values.repoServer.name) | nindent 4 }} name: {{ template "argo-cd.repoServer.fullname" . }} - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} spec: ingress: - from: @@ -20,9 +20,11 @@ spec: matchLabels: {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.notifications.name) | nindent 10 }} {{- end }} + {{- if .Values.applicationSet.enabled }} - podSelector: matchLabels: {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.applicationSet.name) | nindent 10 }} + {{- end }} ports: - port: repo-server protocol: TCP diff --git a/charts/argo-cd/templates/argocd-repo-server/pdb.yaml b/charts/argo-cd/templates/argocd-repo-server/pdb.yaml index f79af3d7..658a1fe3 100644 --- a/charts/argo-cd/templates/argocd-repo-server/pdb.yaml +++ b/charts/argo-cd/templates/argocd-repo-server/pdb.yaml @@ -3,7 +3,7 @@ apiVersion: policy/v1 kind: PodDisruptionBudget metadata: name: {{ include "argo-cd.repoServer.fullname" . }} - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.repoServer.name "name" .Values.repoServer.name) | nindent 4 }} {{- with .Values.repoServer.pdb.labels }} diff --git a/charts/argo-cd/templates/argocd-repo-server/role.yaml b/charts/argo-cd/templates/argocd-repo-server/role.yaml index 596874d4..5f9324d5 100644 --- a/charts/argo-cd/templates/argocd-repo-server/role.yaml +++ b/charts/argo-cd/templates/argocd-repo-server/role.yaml @@ -3,7 +3,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: {{ template "argo-cd.repoServer.fullname" . }} - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.repoServer.name "name" .Values.repoServer.name) | nindent 4 }} rules: diff --git a/charts/argo-cd/templates/argocd-repo-server/rolebinding.yaml b/charts/argo-cd/templates/argocd-repo-server/rolebinding.yaml index 2bc88b66..8834b778 100644 --- a/charts/argo-cd/templates/argocd-repo-server/rolebinding.yaml +++ b/charts/argo-cd/templates/argocd-repo-server/rolebinding.yaml @@ -2,16 +2,16 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: - name: {{ include "argo-cd.repoServer.fullname" . }} - namespace: {{ include "argo-cd.namespace" . }} + name: {{ template "argo-cd.repoServer.fullname" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.repoServer.name "name" .Values.repoServer.name) | nindent 4 }} roleRef: apiGroup: rbac.authorization.k8s.io kind: Role - name: {{ include "argo-cd.repoServer.fullname" . }} + name: {{ template "argo-cd.repoServer.fullname" . }} subjects: - kind: ServiceAccount - name: {{ include "argo-cd.repoServer.serviceAccountName" . }} - namespace: {{ include "argo-cd.namespace" . }} -{{- end }} + name: {{ template "argo-cd.repoServerServiceAccountName" . }} + namespace: {{ .Release.Namespace }} +{{- end }} \ No newline at end of file diff --git a/charts/argo-cd/templates/argocd-repo-server/service.yaml b/charts/argo-cd/templates/argocd-repo-server/service.yaml index 24ca10ef..c2c43463 100644 --- a/charts/argo-cd/templates/argocd-repo-server/service.yaml +++ b/charts/argo-cd/templates/argocd-repo-server/service.yaml @@ -13,13 +13,12 @@ metadata: {{- toYaml . | nindent 4 }} {{- end }} name: {{ template "argo-cd.repoServer.fullname" . }} - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} spec: - {{- include "argo-cd.dualStack" . | indent 2 }} ports: - name: {{ .Values.repoServer.service.portName }} protocol: TCP port: {{ .Values.repoServer.service.port }} targetPort: repo-server selector: - {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.repoServer.name) | nindent 4 }} + {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.repoServer.name) | nindent 4 }} \ No newline at end of file diff --git a/charts/argo-cd/templates/argocd-repo-server/serviceaccount.yaml b/charts/argo-cd/templates/argocd-repo-server/serviceaccount.yaml index 9b5777f1..7b26928f 100644 --- a/charts/argo-cd/templates/argocd-repo-server/serviceaccount.yaml +++ b/charts/argo-cd/templates/argocd-repo-server/serviceaccount.yaml @@ -3,17 +3,17 @@ apiVersion: v1 kind: ServiceAccount automountServiceAccountToken: {{ .Values.repoServer.serviceAccount.automountServiceAccountToken }} metadata: - name: {{ include "argo-cd.repoServer.serviceAccountName" . }} - namespace: {{ include "argo-cd.namespace" . }} - {{- with .Values.repoServer.serviceAccount.annotations }} + name: {{ template "argo-cd.repoServerServiceAccountName" . }} + namespace: {{ .Release.Namespace | quote }} +{{- if .Values.repoServer.serviceAccount.annotations }} annotations: - {{- range $key, $value := . }} + {{- range $key, $value := .Values.repoServer.serviceAccount.annotations }} {{ $key }}: {{ $value | quote }} - {{- end }} {{- end }} +{{- end }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.repoServer.name "name" .Values.repoServer.name) | nindent 4 }} - {{- with .Values.repoServer.serviceAccount.labels }} - {{- toYaml . | nindent 4 }} - {{- end }} + {{- range $key, $value := .Values.repoServer.serviceAccount.labels }} + {{ $key }}: {{ $value | quote }} + {{- end }} {{- end }} diff --git a/charts/argo-cd/templates/argocd-repo-server/servicemonitor.yaml b/charts/argo-cd/templates/argocd-repo-server/servicemonitor.yaml index 3d7cc497..aec96461 100644 --- a/charts/argo-cd/templates/argocd-repo-server/servicemonitor.yaml +++ b/charts/argo-cd/templates/argocd-repo-server/servicemonitor.yaml @@ -1,9 +1,9 @@ -{{- if and (.Capabilities.APIVersions.Has "monitoring.coreos.com/v1") .Values.repoServer.metrics.enabled .Values.repoServer.metrics.serviceMonitor.enabled }} +{{- if and .Values.repoServer.metrics.enabled .Values.repoServer.metrics.serviceMonitor.enabled }} apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: {{ template "argo-cd.repoServer.fullname" . }} - namespace: {{ default (include "argo-cd.namespace" .) .Values.repoServer.metrics.serviceMonitor.namespace | quote }} + namespace: {{ default .Release.Namespace .Values.repoServer.metrics.serviceMonitor.namespace | default }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.repoServer.name "name" .Values.repoServer.name) | nindent 4 }} {{- with .Values.repoServer.metrics.serviceMonitor.selector }} @@ -22,9 +22,6 @@ spec: {{- with .Values.repoServer.metrics.serviceMonitor.interval }} interval: {{ . }} {{- end }} - {{- with .Values.repoServer.metrics.serviceMonitor.scrapeTimeout }} - scrapeTimeout: {{ . }} - {{- end }} path: /metrics {{- with .Values.repoServer.metrics.serviceMonitor.relabelings }} relabelings: @@ -34,7 +31,6 @@ spec: metricRelabelings: {{- toYaml . | nindent 8 }} {{- end }} - honorLabels: {{ .Values.repoServer.metrics.serviceMonitor.honorLabels }} {{- with .Values.repoServer.metrics.serviceMonitor.scheme }} scheme: {{ . }} {{- end }} @@ -44,7 +40,7 @@ spec: {{- end }} namespaceSelector: matchNames: - - {{ include "argo-cd.namespace" . }} + - {{ .Release.Namespace }} selector: matchLabels: {{- include "argo-cd.selectorLabels" (dict "context" . "component" .Values.repoServer.name "name" (printf "%s-metrics" .Values.repoServer.name)) | nindent 6 }} diff --git a/charts/argo-cd/templates/argocd-server/aws/ingress.yaml b/charts/argo-cd/templates/argocd-server/aws/ingress.yaml deleted file mode 100644 index 46d24d3c..00000000 --- a/charts/argo-cd/templates/argocd-server/aws/ingress.yaml +++ /dev/null @@ -1,71 +0,0 @@ -{{- if and .Values.server.ingress.enabled (eq .Values.server.ingress.controller "aws") }} -{{- $insecure := index .Values.configs.params "server.insecure" | toString -}} -{{- $servicePort := eq $insecure "true" | ternary .Values.server.service.servicePortHttp .Values.server.service.servicePortHttps -}} -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - name: {{ include "argo-cd.server.fullname" . }} - namespace: {{ include "argo-cd.namespace" . }} - labels: - {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }} - {{- with .Values.server.ingress.labels }} - {{- toYaml . | nindent 4 }} - {{- end }} - annotations: - alb.ingress.kubernetes.io/conditions.{{ include "argo-cd.server.fullname" . }}-grpc: | - [{"field":"http-header","httpHeaderConfig":{"httpHeaderName": "Content-Type", "values":["application/grpc"]}}] - {{- range $key, $value := .Values.server.ingress.annotations }} - {{ $key }}: {{ $value | quote }} - {{- end }} -spec: - {{- with .Values.server.ingress.ingressClassName }} - ingressClassName: {{ . }} - {{- end }} - rules: - - host: {{ .Values.server.ingress.hostname | default .Values.global.domain }} - http: - paths: - {{- with .Values.server.ingress.extraPaths }} - {{- tpl (toYaml .) $ | nindent 10 }} - {{- end }} - - path: {{ .Values.server.ingress.path }} - pathType: {{ $.Values.server.ingressGrpc.pathType }} - backend: - service: - name: {{ include "argo-cd.server.fullname" $ }}-grpc - port: - number: {{ $servicePort }} - - path: {{ .Values.server.ingress.path }} - pathType: {{ $.Values.server.ingress.pathType }} - backend: - service: - name: {{ include "argo-cd.server.fullname" . }} - port: - number: {{ $servicePort }} - {{- range .Values.server.ingress.extraHosts }} - - host: {{ .name | quote }} - http: - paths: - - path: {{ default $.Values.server.ingress.path .path }} - pathType: {{ default $.Values.server.ingress.pathType .pathType }} - backend: - service: - name: {{ include "argo-cd.server.fullname" $ }} - port: - number: {{ $servicePort }} - {{- end }} - {{- with .Values.server.ingress.extraRules }} - {{- tpl (toYaml .) $ | nindent 4 }} - {{- end }} - {{- if or .Values.server.ingress.tls .Values.server.ingress.extraTls }} - tls: - {{- if .Values.server.ingress.tls }} - - hosts: - - {{ .Values.server.ingress.hostname | default .Values.global.domain }} - secretName: argocd-server-tls - {{- end }} - {{- with .Values.server.ingress.extraTls }} - {{- toYaml . | nindent 4 }} - {{- end }} - {{- end }} -{{- end }} diff --git a/charts/argo-cd/templates/argocd-server/aws/service.yaml b/charts/argo-cd/templates/argocd-server/aws/service.yaml index 0e9de75a..02c543d5 100644 --- a/charts/argo-cd/templates/argocd-server/aws/service.yaml +++ b/charts/argo-cd/templates/argocd-server/aws/service.yaml @@ -1,26 +1,25 @@ -{{- if and .Values.server.ingress.enabled (eq .Values.server.ingress.controller "aws") }} +{{- if and .Values.server.ingressGrpc.enabled .Values.server.ingressGrpc.isAWSALB -}} apiVersion: v1 kind: Service metadata: annotations: - alb.ingress.kubernetes.io/backend-protocol-version: {{ .Values.server.ingress.aws.backendProtocolVersion }} + alb.ingress.kubernetes.io/backend-protocol-version: {{ .Values.server.ingressGrpc.awsALB.backendProtocolVersion }} labels: {{- include "argo-cd.labels" (dict "context" . "component" (print .Values.server.name "-gprc") "name" (print .Values.server.name "-grpc")) | nindent 4 }} name: {{ template "argo-cd.server.fullname" . }}-grpc - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} spec: - {{- include "argo-cd.dualStack" . | indent 2 }} ports: - name: {{ .Values.server.service.servicePortHttpName }} protocol: TCP port: {{ .Values.server.service.servicePortHttp }} - targetPort: {{ .Values.server.containerPorts.server }} + targetPort: server - name: {{ .Values.server.service.servicePortHttpsName }} protocol: TCP port: {{ .Values.server.service.servicePortHttps }} - targetPort: {{ .Values.server.containerPorts.server }} + targetPort: server selector: {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.server.name) | nindent 4 }} sessionAffinity: None - type: {{ .Values.server.ingress.aws.serviceType }} + type: {{ .Values.server.ingressGrpc.awsALB.serviceType }} {{- end -}} diff --git a/charts/argo-cd/templates/argocd-server/certificate.yaml b/charts/argo-cd/templates/argocd-server/certificate.yaml index a9862139..eec82ae6 100644 --- a/charts/argo-cd/templates/argocd-server/certificate.yaml +++ b/charts/argo-cd/templates/argocd-server/certificate.yaml @@ -1,29 +1,16 @@ {{- if .Values.server.certificate.enabled -}} -apiVersion: cert-manager.io/v1 +apiVersion: {{ include "argo-cd.apiVersion.cert-manager" . }} kind: Certificate metadata: - {{- with (mergeOverwrite (deepCopy .Values.global.certificateAnnotations) .Values.server.certificate.annotations) }} - annotations: - {{- range $key, $value := . }} - {{ $key }}: {{ $value | quote }} - {{- end }} - {{- end }} name: {{ include "argo-cd.server.fullname" . }} - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }} spec: - {{- with .Values.server.certificate.secretTemplateAnnotations }} - secretTemplate: - annotations: - {{- range $key, $value := . }} - {{ $key }}: {{ $value | quote }} - {{- end }} - {{- end }} - secretName: argocd-server-tls - commonName: {{ .Values.server.certificate.domain | default .Values.global.domain }} + secretName: {{ .Values.server.certificate.secretName }} + commonName: {{ .Values.server.certificate.domain | quote }} dnsNames: - - {{ .Values.server.certificate.domain | default .Values.global.domain }} + - {{ .Values.server.certificate.domain | quote }} {{- range .Values.server.certificate.additionalHosts }} - {{ . | quote }} {{- end }} @@ -43,8 +30,4 @@ spec: privateKey: {{- toYaml . | nindent 4 }} {{- end }} - {{- with .Values.server.certificate.usages }} - usages: - {{- toYaml . | nindent 4 }} - {{- end }} {{- end }} diff --git a/charts/argo-cd/templates/argocd-server/clusterrole.yaml b/charts/argo-cd/templates/argocd-server/clusterrole.yaml index 1bc9aed5..0f26d470 100644 --- a/charts/argo-cd/templates/argocd-server/clusterrole.yaml +++ b/charts/argo-cd/templates/argocd-server/clusterrole.yaml @@ -1,4 +1,5 @@ -{{- if .Values.createClusterRoles }} +{{- $config := .Values.server.clusterAdminAccess | default dict -}} +{{- if hasKey $config "enabled" | ternary $config.enabled .Values.createClusterRoles }} apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: @@ -6,32 +7,28 @@ metadata: labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }} rules: - {{- if .Values.server.clusterRoleRules.enabled }} - {{- toYaml .Values.server.clusterRoleRules.rules | nindent 2 }} - {{- else }} - apiGroups: - '*' resources: - '*' verbs: - - delete # supports deletion a live object in UI - - get # supports viewing live object manifest in UI - - patch # supports `argocd app patch` + - delete + - get + - patch - apiGroups: - "" resources: - events verbs: - - list # supports listing events in UI - - create + - list - apiGroups: - "" resources: - pods - pods/log verbs: - - get # supports viewing pod logs from UI - {{- if eq (toString (index .Values.configs.cm "exec.enabled")) "true" }} + - get + {{- if eq (toString (index (coalesce .Values.server.config .Values.configs.cm) "exec.enabled")) "true" }} - apiGroups: - "" resources: @@ -43,36 +40,9 @@ rules: - argoproj.io resources: - applications - - applicationsets verbs: - get - list - update - watch - {{- if (index .Values.configs.params "application.namespaces") }} - - apiGroups: - - "argoproj.io" - resources: - - "applications" - verbs: - - create - - delete - - update - - patch - {{- end }} - - apiGroups: - - batch - resources: - {{/* supports triggering jobs from UI */}} - - jobs - verbs: - - create - - apiGroups: - - argoproj.io - resources: - - workflows - verbs: - {{/* supports triggering workflows from UI */}} - - create - {{- end }} {{- end }} diff --git a/charts/argo-cd/templates/argocd-server/clusterrolebinding.yaml b/charts/argo-cd/templates/argocd-server/clusterrolebinding.yaml index ce4a4d70..72e4d450 100644 --- a/charts/argo-cd/templates/argocd-server/clusterrolebinding.yaml +++ b/charts/argo-cd/templates/argocd-server/clusterrolebinding.yaml @@ -1,4 +1,5 @@ -{{- if .Values.createClusterRoles }} +{{- $config := .Values.server.clusterAdminAccess | default dict -}} +{{- if hasKey $config "enabled" | ternary $config.enabled .Values.createClusterRoles }} apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: @@ -11,6 +12,6 @@ roleRef: name: {{ include "argo-cd.server.fullname" . }} subjects: - kind: ServiceAccount - name: {{ include "argo-cd.server.serviceAccountName" . }} - namespace: {{ include "argo-cd.namespace" . }} + name: {{ include "argo-cd.serverServiceAccountName" . }} + namespace: {{ .Release.Namespace }} {{- end }} diff --git a/charts/argo-cd/templates/argocd-server/deployment.yaml b/charts/argo-cd/templates/argocd-server/deployment.yaml index 0b75f062..7ce72e80 100755 --- a/charts/argo-cd/templates/argocd-server/deployment.yaml +++ b/charts/argo-cd/templates/argocd-server/deployment.yaml @@ -8,7 +8,7 @@ metadata: {{- end }} {{- end }} name: {{ template "argo-cd.server.fullname" . }} - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }} spec: @@ -27,9 +27,6 @@ spec: metadata: annotations: checksum/cmd-params: {{ include (print $.Template.BasePath "/argocd-configs/argocd-cmd-params-cm.yaml") . | sha256sum }} - {{- if .Values.configs.cm.create }} - checksum/cm: {{ include (print $.Template.BasePath "/argocd-configs/argocd-cm.yaml") . | sha256sum }} - {{- end }} {{- with (mergeOverwrite (deepCopy .Values.global.podAnnotations) .Values.server.podAnnotations) }} {{- range $key, $value := . }} {{ $key }}: {{ $value | quote }} @@ -41,9 +38,6 @@ spec: {{- toYaml . | nindent 8 }} {{- end }} spec: - {{- with .Values.server.runtimeClassName | default .Values.global.runtimeClassName }} - runtimeClassName: {{ . }} - {{- end }} {{- with .Values.server.imagePullSecrets | default .Values.global.imagePullSecrets }} imagePullSecrets: {{- toYaml . | nindent 8 }} @@ -59,11 +53,7 @@ spec: {{- with .Values.server.priorityClassName | default .Values.global.priorityClassName }} priorityClassName: {{ . }} {{- end }} - {{- if .Values.server.terminationGracePeriodSeconds }} - terminationGracePeriodSeconds: {{ .Values.server.terminationGracePeriodSeconds }} - {{- end }} - serviceAccountName: {{ include "argo-cd.server.serviceAccountName" . }} - automountServiceAccountToken: {{ .Values.server.automountServiceAccountToken }} + serviceAccountName: {{ include "argo-cd.serverServiceAccountName" . }} containers: - name: {{ .Values.server.name }} image: {{ default .Values.global.image.repository .Values.server.image.repository }}:{{ default (include "argo-cd.defaultTag" .) .Values.server.image.tag }} @@ -72,15 +62,21 @@ spec: - /usr/local/bin/argocd-server - --port={{ .Values.server.containerPorts.server }} - --metrics-port={{ .Values.server.containerPorts.metrics }} + {{- with .Values.server.logFormat }} + - --logformat + - {{ . | quote }} + {{- end }} + {{- with .Values.server.logLevel }} + - --loglevel + - {{ . | quote }} + {{- end }} {{- with .Values.server.extraArgs }} {{- toYaml . | nindent 8 }} {{- end }} env: - {{- with (concat .Values.global.env .Values.server.env) }} + {{- with .Values.server.env }} {{- toYaml . | nindent 10 }} {{- end }} - - name: ARGOCD_SERVER_NAME - value: {{ template "argo-cd.server.fullname" . }} - name: ARGOCD_SERVER_INSECURE valueFrom: configMapKeyRef: @@ -246,30 +242,14 @@ spec: - name: REDIS_USERNAME valueFrom: secretKeyRef: - name: {{ default "argocd-redis" .Values.externalRedis.existingSecret }} + name: {{ default (include "argo-cd.redis.fullname" .) .Values.externalRedis.existingSecret }} key: redis-username optional: true - name: REDIS_PASSWORD valueFrom: secretKeyRef: - name: {{ default "argocd-redis" .Values.externalRedis.existingSecret }} - {{- if .Values.externalRedis.host }} + name: {{ default (include "argo-cd.redis.fullname" .) .Values.externalRedis.existingSecret }} key: redis-password - {{- else }} - key: auth - {{- end }} - optional: true - - name: REDIS_SENTINEL_USERNAME - valueFrom: - secretKeyRef: - name: {{ default (include "argo-cd.redis.fullname" .) .Values.externalRedis.existingSecret }} - key: redis-sentinel-username - optional: true - - name: REDIS_SENTINEL_PASSWORD - valueFrom: - secretKeyRef: - name: {{ default (include "argo-cd.redis.fullname" .) .Values.externalRedis.existingSecret }} - key: redis-sentinel-password optional: true - name: ARGOCD_DEFAULT_CACHE_EXPIRATION valueFrom: @@ -283,36 +263,12 @@ spec: name: argocd-cmd-params-cm key: server.http.cookie.maxnumber optional: true - - name: ARGOCD_SERVER_LISTEN_ADDRESS - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: server.listen.address - optional: true - - name: ARGOCD_SERVER_METRICS_LISTEN_ADDRESS - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: server.metrics.listen.address - optional: true - name: ARGOCD_SERVER_OTLP_ADDRESS valueFrom: configMapKeyRef: name: argocd-cmd-params-cm key: otlp.address optional: true - - name: ARGOCD_SERVER_OTLP_INSECURE - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: otlp.insecure - optional: true - - name: ARGOCD_SERVER_OTLP_HEADERS - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: otlp.headers - optional: true - name: ARGOCD_APPLICATION_NAMESPACES valueFrom: configMapKeyRef: @@ -325,60 +281,6 @@ spec: name: argocd-cmd-params-cm key: server.enable.proxy.extension optional: true - - name: ARGOCD_K8SCLIENT_RETRY_MAX - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: server.k8sclient.retry.max - optional: true - - name: ARGOCD_K8SCLIENT_RETRY_BASE_BACKOFF - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: server.k8sclient.retry.base.backoff - optional: true - - name: ARGOCD_API_CONTENT_TYPES - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: server.api.content.types - optional: true - - name: ARGOCD_SERVER_WEBHOOK_PARALLELISM_LIMIT - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: server.webhook.parallelism.limit - optional: true - - name: ARGOCD_APPLICATIONSET_CONTROLLER_ENABLE_NEW_GIT_FILE_GLOBBING - valueFrom: - configMapKeyRef: - key: applicationsetcontroller.enable.new.git.file.globbing - name: argocd-cmd-params-cm - optional: true - - name: ARGOCD_APPLICATIONSET_CONTROLLER_SCM_ROOT_CA_PATH - valueFrom: - configMapKeyRef: - key: applicationsetcontroller.scm.root.ca.path - name: argocd-cmd-params-cm - optional: true - - name: ARGOCD_APPLICATIONSET_CONTROLLER_ALLOWED_SCM_PROVIDERS - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: applicationsetcontroller.allowed.scm.providers - optional: true - - name: ARGOCD_APPLICATIONSET_CONTROLLER_ENABLE_SCM_PROVIDERS - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: applicationsetcontroller.enable.scm.providers - optional: true - - name: ARGOCD_HYDRATOR_ENABLED - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: hydrator.enabled - optional: true {{- with .Values.server.envFrom }} envFrom: {{- toYaml . | nindent 10 }} @@ -401,8 +303,6 @@ spec: name: styles - mountPath: /tmp name: tmp - - name: argocd-cmd-params-cm - mountPath: /home/argocd/params {{- if .Values.server.extensions.enabled }} - mountPath: /tmp/extensions name: extensions @@ -434,42 +334,32 @@ spec: failureThreshold: {{ .Values.server.readinessProbe.failureThreshold }} resources: {{- toYaml .Values.server.resources | nindent 10 }} - {{- with .Values.server.containerSecurityContext }} securityContext: - {{- toYaml . | nindent 10 }} - {{- end }} + {{- toYaml .Values.server.containerSecurityContext | nindent 10 }} {{- with .Values.server.lifecycle }} lifecycle: {{- toYaml . | nindent 10 }} {{- end }} - {{- with .Values.server.extraContainers }} - {{- tpl (toYaml .) $ | nindent 6 }} - {{- end }} - {{- if or .Values.server.initContainers (and .Values.server.extensions.enabled .Values.server.extensions.extensionList) }} - initContainers: - {{- with .Values.server.initContainers }} - {{- tpl (toYaml .) $ | nindent 6 }} - {{- end }} {{- if .Values.server.extensions.enabled }} - {{- range .Values.server.extensions.extensionList }} - - name: {{ .name }} - image: {{ $.Values.server.extensions.image.repository }}:{{ $.Values.server.extensions.image.tag }} - imagePullPolicy: {{ default $.Values.global.image.imagePullPolicy $.Values.server.extensions.image.imagePullPolicy }} + - name: argocd-extensions + image: {{ .Values.server.extensions.image.repository }}:{{ .Values.server.extensions.image.tag }} + imagePullPolicy: {{ .Values.server.extensions.image.imagePullPolicy }} resources: - {{- toYaml $.Values.server.extensions.resources | nindent 10 }} - {{- with $.Values.server.extensions.containerSecurityContext }} + {{- toYaml .Values.server.extensions.resources | nindent 10 }} securityContext: - {{- toYaml . | nindent 10 }} - {{- end }} + {{- toYaml .Values.server.extensions.containerSecurityContext | nindent 10 }} volumeMounts: - name: extensions mountPath: /tmp/extensions/ - name: tmp mountPath: /tmp - env: - {{- toYaml .env | nindent 10 }} {{- end }} + {{- with .Values.server.extraContainers }} + {{- tpl (toYaml .) $ | nindent 6 }} {{- end }} + {{- with .Values.server.initContainers }} + initContainers: + {{- tpl (toYaml .) $ | nindent 6 }} {{- end }} {{- with include "argo-cd.affinity" (dict "context" . "component" .Values.server) }} affinity: @@ -500,27 +390,12 @@ spec: {{- end }} {{- if .Values.server.extensions.enabled }} - name: extensions - {{- if .Values.server.emptyDir.sizeLimit }} - emptyDir: - sizeLimit: {{ .Values.server.emptyDir.sizeLimit }} - {{- else }} emptyDir: {} - {{- end }} {{- end }} - name: plugins-home - {{- if .Values.server.emptyDir.sizeLimit }} - emptyDir: - sizeLimit: {{ .Values.server.emptyDir.sizeLimit }} - {{- else }} emptyDir: {} - {{- end }} - name: tmp - {{- if .Values.server.emptyDir.sizeLimit }} - emptyDir: - sizeLimit: {{ .Values.server.emptyDir.sizeLimit }} - {{- else }} emptyDir: {} - {{- end }} - name: ssh-known-hosts configMap: name: argocd-ssh-known-hosts-cm @@ -551,13 +426,6 @@ spec: path: tls.crt - key: ca.crt path: ca.crt - - name: argocd-cmd-params-cm - configMap: - optional: true - name: argocd-cmd-params-cm - items: - - key: server.profile.enabled - path: profiler.enabled {{- if .Values.server.hostNetwork }} hostNetwork: {{ .Values.server.hostNetwork }} {{- end }} diff --git a/charts/argo-cd/templates/argocd-server/gke/backendconfig.yaml b/charts/argo-cd/templates/argocd-server/gke/backendconfig.yaml index 515e6d74..e2ae3d84 100644 --- a/charts/argo-cd/templates/argocd-server/gke/backendconfig.yaml +++ b/charts/argo-cd/templates/argocd-server/gke/backendconfig.yaml @@ -1,13 +1,11 @@ -{{- if and .Values.server.ingress.enabled (eq .Values.server.ingress.controller "gke") .Values.server.ingress.gke.backendConfig }} -apiVersion: cloud.google.com/v1 +{{- if .Values.server.GKEbackendConfig.enabled }} +apiVersion: {{ include "argo-cd.apiVersions.cloudgoogle" . }} kind: BackendConfig metadata: - name: {{ include "argo-cd.server.fullname" . }} - namespace: {{ include "argo-cd.namespace" . }} + name: {{ template "argo-cd.server.fullname" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }} -{{- with .Values.server.ingress.gke.backendConfig }} spec: - {{- toYaml . | nindent 2 }} -{{- end }} + {{- toYaml .Values.server.GKEbackendConfig.spec | nindent 2 }} {{- end }} diff --git a/charts/argo-cd/templates/argocd-server/gke/frontendconfig.yaml b/charts/argo-cd/templates/argocd-server/gke/frontendconfig.yaml index ae460a38..31687596 100644 --- a/charts/argo-cd/templates/argocd-server/gke/frontendconfig.yaml +++ b/charts/argo-cd/templates/argocd-server/gke/frontendconfig.yaml @@ -1,13 +1,11 @@ -{{- if and .Values.server.ingress.enabled (eq .Values.server.ingress.controller "gke") .Values.server.ingress.gke.frontendConfig }} +{{- if .Values.server.GKEfrontendConfig.enabled }} apiVersion: networking.gke.io/v1beta1 kind: FrontendConfig metadata: - name: {{ include "argo-cd.server.fullname" . }} - namespace: {{ include "argo-cd.namespace" . }} + name: {{ template "argo-cd.server.fullname" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }} -{{- with .Values.server.ingress.gke.frontendConfig }} spec: - {{- toYaml . | nindent 2 }} -{{- end }} + {{- toYaml .Values.server.GKEfrontendConfig.spec | nindent 2 }} {{- end }} diff --git a/charts/argo-cd/templates/argocd-server/gke/ingress.yaml b/charts/argo-cd/templates/argocd-server/gke/ingress.yaml deleted file mode 100644 index b030435b..00000000 --- a/charts/argo-cd/templates/argocd-server/gke/ingress.yaml +++ /dev/null @@ -1,69 +0,0 @@ -{{- if and .Values.server.ingress.enabled (eq .Values.server.ingress.controller "gke") }} -{{- $insecure := index .Values.configs.params "server.insecure" | toString -}} -{{- $servicePort := eq $insecure "true" | ternary .Values.server.service.servicePortHttp .Values.server.service.servicePortHttps -}} -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - name: {{ include "argo-cd.server.fullname" . }} - namespace: {{ include "argo-cd.namespace" . }} - labels: - {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }} - {{- with .Values.server.ingress.labels }} - {{- toYaml . | nindent 4 }} - {{- end }} - annotations: - ingressClassName: "gce" - {{- if .Values.server.ingress.gke.managedCertificate.create }} - networking.gke.io/managed-certificates: {{ include "argo-cd.server.fullname" . }} - {{- end }} - {{- if .Values.server.ingress.gke.frontendConfig }} - networking.gke.io/v1beta1.FrontendConfig: {{ include "argo-cd.server.fullname" . }} - {{- end }} - {{- range $key, $value := .Values.server.ingress.annotations }} - {{ $key }}: {{ $value | quote }} - {{- end }} -spec: - {{- with .Values.server.ingress.ingressClassName }} - ingressClassName: {{ . }} - {{- end }} - rules: - - host: {{ .Values.server.ingress.hostname | default .Values.global.domain }} - http: - paths: - {{- with .Values.server.ingress.extraPaths }} - {{- tpl (toYaml .) $ | nindent 10 }} - {{- end }} - - path: {{ .Values.server.ingress.path }} - pathType: {{ .Values.server.ingress.pathType }} - backend: - service: - name: {{ include "argo-cd.server.fullname" . }} - port: - number: {{ $servicePort }} - {{- range .Values.server.ingress.extraHosts }} - - host: {{ .name | quote }} - http: - paths: - - path: {{ default $.Values.server.ingress.path .path }} - pathType: {{ default $.Values.server.ingress.pathType .pathType }} - backend: - service: - name: {{ include "argo-cd.server.fullname" $ }} - port: - number: {{ $servicePort }} - {{- end }} - {{- with .Values.server.ingress.extraRules }} - {{- tpl (toYaml .) $ | nindent 4 }} - {{- end }} - {{- if or .Values.server.ingress.tls .Values.server.ingress.extraTls }} - tls: - {{- if .Values.server.ingress.tls }} - - hosts: - - {{ .Values.server.ingress.hostname | default .Values.global.domain }} - secretName: argocd-server-tls - {{- end }} - {{- with .Values.server.ingress.extraTls }} - {{- toYaml . | nindent 4 }} - {{- end }} - {{- end }} -{{- end }} diff --git a/charts/argo-cd/templates/argocd-server/gke/managedcertificate.yaml b/charts/argo-cd/templates/argocd-server/gke/managedcertificate.yaml index 2dd6f5e9..942c6b3f 100644 --- a/charts/argo-cd/templates/argocd-server/gke/managedcertificate.yaml +++ b/charts/argo-cd/templates/argocd-server/gke/managedcertificate.yaml @@ -1,15 +1,12 @@ -{{- if and .Values.server.ingress.enabled (eq .Values.server.ingress.controller "gke") .Values.server.ingress.gke.managedCertificate.create }} +{{- if .Values.server.GKEmanagedCertificate.enabled }} apiVersion: networking.gke.io/v1 kind: ManagedCertificate metadata: - name: {{ include "argo-cd.server.fullname" . }} - namespace: {{ include "argo-cd.namespace" . }} - labels: - {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }} + name: {{ template "argo-cd.server.fullname" . }} + namespace: {{ .Release.Namespace | quote }} spec: domains: - - {{ .Values.server.ingress.hostname | default .Values.global.domain }} - {{- with .Values.server.ingress.gke.managedCertificate.extraDomains }} - {{- toYaml . | nindent 4 }} + {{- with .Values.server.GKEmanagedCertificate.domains }} + {{- toYaml . | nindent 4 }} {{- end }} {{- end }} diff --git a/charts/argo-cd/templates/argocd-server/hpa.yaml b/charts/argo-cd/templates/argocd-server/hpa.yaml index 51fe559d..cbc17c31 100644 --- a/charts/argo-cd/templates/argocd-server/hpa.yaml +++ b/charts/argo-cd/templates/argocd-server/hpa.yaml @@ -1,38 +1,42 @@ {{- if .Values.server.autoscaling.enabled }} -apiVersion: autoscaling/v2 +apiVersion: {{ include "argo-cd.apiVersion.autoscaling" . }} kind: HorizontalPodAutoscaler metadata: - name: {{ include "argo-cd.server.fullname" . }} - namespace: {{ include "argo-cd.namespace" . }} labels: - {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }} + {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" (printf "%s-hpa" .Values.server.name)) | nindent 4 }} + name: {{ template "argo-cd.server.fullname" . }}-hpa + namespace: {{ .Release.Namespace | quote }} spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment - name: {{ include "argo-cd.server.fullname" . }} + name: {{ template "argo-cd.server.fullname" . }} minReplicas: {{ .Values.server.autoscaling.minReplicas }} maxReplicas: {{ .Values.server.autoscaling.maxReplicas }} metrics: - {{- with .Values.server.autoscaling.metrics }} - {{- toYaml . | nindent 4 }} - {{- else }} - {{- with .Values.server.autoscaling.targetMemoryUtilizationPercentage }} + {{- with .Values.server.autoscaling.targetMemoryUtilizationPercentage }} - type: Resource resource: name: memory + {{- if eq (include "argo-cd.apiVersion.autoscaling" $) "autoscaling/v2beta1" }} + targetAverageUtilization: {{ . }} + {{- else }} target: - type: Utilization averageUtilization: {{ . }} - {{- end }} - {{- with .Values.server.autoscaling.targetCPUUtilizationPercentage }} + type: Utilization + {{- end }} + {{- end }} + {{- with .Values.server.autoscaling.targetCPUUtilizationPercentage }} - type: Resource resource: name: cpu + {{- if eq (include "argo-cd.apiVersion.autoscaling" $) "autoscaling/v2beta1" }} + targetAverageUtilization: {{ . }} + {{- else }} target: - type: Utilization averageUtilization: {{ . }} - {{- end }} + type: Utilization + {{- end }} {{- end }} {{- with .Values.server.autoscaling.behavior }} behavior: diff --git a/charts/argo-cd/templates/argocd-server/ingress-grpc.yaml b/charts/argo-cd/templates/argocd-server/ingress-grpc.yaml index 3ad5a519..b671f86f 100644 --- a/charts/argo-cd/templates/argocd-server/ingress-grpc.yaml +++ b/charts/argo-cd/templates/argocd-server/ingress-grpc.yaml @@ -1,10 +1,13 @@ -{{- if .Values.server.ingressGrpc.enabled -}} -{{- $hostname := printf "grpc.%s" (.Values.server.ingress.hostname | default .Values.global.domain) -}} +{{- if and .Values.server.ingressGrpc.enabled (not .Values.server.ingressGrpc.isAWSALB) -}} +{{- $servicePort := ternary .Values.server.service.servicePortHttps .Values.server.service.servicePortHttp .Values.server.ingressGrpc.https -}} +{{- $paths := .Values.server.ingressGrpc.paths -}} +{{- $extraPaths := .Values.server.ingressGrpc.extraPaths -}} +{{- $pathType := .Values.server.ingressGrpc.pathType -}} apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: {{ include "argo-cd.server.fullname" . }}-grpc - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }} {{- with .Values.server.ingressGrpc.labels }} @@ -21,43 +24,50 @@ spec: ingressClassName: {{ . }} {{- end }} rules: - - host: {{ .Values.server.ingressGrpc.hostname | default $hostname }} + {{- if .Values.server.ingressGrpc.hosts }} + {{- range $host := .Values.server.ingressGrpc.hosts }} + - host: {{ $host }} http: paths: - {{- with .Values.server.ingressGrpc.extraPaths }} - {{- tpl (toYaml .) $ | nindent 10 }} + {{- with $extraPaths }} + {{- toYaml . | nindent 10 }} {{- end }} - - path: {{ .Values.server.ingressGrpc.path }} - pathType: {{ .Values.server.ingressGrpc.pathType }} - backend: - service: - name: {{ include "argo-cd.server.fullname" . }} - port: - number: {{ .Values.server.service.servicePortHttps }} - {{- range .Values.server.ingressGrpc.extraHosts }} - - host: {{ .name | quote }} - http: - paths: - - path: {{ default $.Values.server.ingressGrpc.path .path }} - pathType: {{ default $.Values.server.ingressGrpc.pathType .pathType }} + {{- range $p := $paths }} + - path: {{ $p }} + pathType: {{ $pathType }} backend: service: name: {{ include "argo-cd.server.fullname" $ }} port: - number: {{ $.Values.server.service.servicePortHttps }} - {{- end }} - {{- with .Values.server.ingressGrpc.extraRules }} - {{- tpl (toYaml .) $ | nindent 4 }} - {{- end }} - {{- if or .Values.server.ingressGrpc.tls .Values.server.ingressGrpc.extraTls }} + {{- if kindIs "float64" $servicePort }} + number: {{ $servicePort }} + {{- else }} + name: {{ $servicePort }} + {{- end }} + {{- end -}} + {{- end -}} + {{- else }} + - http: + paths: + {{- with $extraPaths }} + {{- toYaml . | nindent 10 }} + {{- end }} + {{- range $p := $paths }} + - path: {{ $p }} + pathType: {{ $pathType }} + backend: + service: + name: {{ include "argo-cd.server.fullname" $ }} + port: + {{- if kindIs "float64" $servicePort }} + number: {{ $servicePort }} + {{- else }} + name: {{ $servicePort }} + {{- end }} + {{- end -}} + {{- end -}} + {{- with .Values.server.ingressGrpc.tls }} tls: - {{- if .Values.server.ingressGrpc.tls }} - - hosts: - - {{ .Values.server.ingressGrpc.hostname | default $hostname }} - secretName: argocd-server-grpc-tls - {{- end }} - {{- with .Values.server.ingressGrpc.extraTls }} - {{- toYaml . | nindent 4 }} - {{- end }} - {{- end }} -{{- end }} + {{- toYaml . | nindent 4 }} + {{- end -}} +{{- end -}} diff --git a/charts/argo-cd/templates/argocd-server/ingress.yaml b/charts/argo-cd/templates/argocd-server/ingress.yaml index 8724baa7..98ec1cb1 100644 --- a/charts/argo-cd/templates/argocd-server/ingress.yaml +++ b/charts/argo-cd/templates/argocd-server/ingress.yaml @@ -1,69 +1,90 @@ -{{- if and .Values.server.ingress.enabled (eq .Values.server.ingress.controller "generic") }} -{{- $insecure := index .Values.configs.params "server.insecure" | toString -}} -{{- $servicePort := eq $insecure "true" | ternary .Values.server.service.servicePortHttp .Values.server.service.servicePortHttps -}} +{{- if .Values.server.ingress.enabled -}} +{{- $servicePort := ternary .Values.server.service.servicePortHttps .Values.server.service.servicePortHttp .Values.server.ingress.https -}} +{{- $paths := .Values.server.ingress.paths -}} +{{- $extraPaths := .Values.server.ingress.extraPaths -}} +{{- $pathType := .Values.server.ingress.pathType -}} apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: {{ include "argo-cd.server.fullname" . }} - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }} {{- with .Values.server.ingress.labels }} - {{- tpl (toYaml .) $ | nindent 4 }} + {{- toYaml . | nindent 4 }} {{- end }} - {{- with .Values.server.ingress.annotations }} + {{- if .Values.server.ingress.annotations }} annotations: - {{- range $key, $value := . }} - {{ $key }}: {{ tpl (toString $value) $ | quote }} + {{- range $key, $value := .Values.server.ingress.annotations }} + {{ $key }}: {{ $value | quote }} + {{- end }} + {{- if and .Values.server.ingressGrpc.isAWSALB .Values.server.ingressGrpc.enabled }} + alb.ingress.kubernetes.io/conditions.{{ template "argo-cd.server.fullname" . }}-grpc: | + [{"field":"http-header","httpHeaderConfig":{"httpHeaderName": "Content-Type", "values":["application/grpc"]}}] {{- end }} {{- end }} spec: {{- with .Values.server.ingress.ingressClassName }} - ingressClassName: {{ tpl . $ }} + ingressClassName: {{ . }} {{- end }} rules: - - host: {{ tpl (.Values.server.ingress.hostname) $ | default .Values.global.domain }} + {{- if .Values.server.ingress.hosts }} + {{- range $host := .Values.server.ingress.hosts }} + - host: {{ $host | quote }} http: paths: - {{- with .Values.server.ingress.extraPaths }} - {{- tpl (toYaml .) $ | nindent 10 }} + {{- with $extraPaths }} + {{- toYaml . | nindent 10 }} {{- end }} - - path: {{ .Values.server.ingress.path }} - pathType: {{ $.Values.server.ingress.pathType }} + {{- range $p := $paths }} + {{- if and $.Values.server.ingressGrpc.isAWSALB $.Values.server.ingressGrpc.enabled }} + - path: {{ $p }} + pathType: Prefix backend: service: - name: {{ include "argo-cd.server.fullname" . }} + name: {{ template "argo-cd.server.fullname" $ }}-grpc port: + {{- if kindIs "float64" $servicePort }} number: {{ $servicePort }} - {{- range .Values.server.ingress.extraHosts }} - - host: {{ tpl .name $ | quote }} - http: - paths: - - path: {{ default $.Values.server.ingress.path .path }} - pathType: {{ default $.Values.server.ingress.pathType .pathType }} + {{- else }} + name: {{ $servicePort }} + {{- end }} + {{- end }} + - path: {{ $p }} + pathType: {{ $pathType }} backend: service: name: {{ include "argo-cd.server.fullname" $ }} port: + {{- if kindIs "float64" $servicePort }} number: {{ $servicePort }} - {{- end }} - {{- with .Values.server.ingress.extraRules }} - {{- tpl (toYaml .) $ | nindent 4 }} - {{- end }} - {{- if or .Values.server.ingress.tls .Values.server.ingress.extraTls }} + {{- else }} + name: {{ $servicePort }} + {{- end }} + {{- end -}} + {{- end -}} + {{- else }} + - http: + paths: + {{- with $extraPaths }} + {{- toYaml . | nindent 10 }} + {{- end }} + {{- range $p := $paths }} + - path: {{ $p }} + pathType: {{ $pathType }} + backend: + service: + name: {{ include "argo-cd.server.fullname" $ }} + port: + {{- if kindIs "float64" $servicePort }} + number: {{ $servicePort }} + {{- else }} + name: {{ $servicePort }} + {{- end }} + {{- end -}} + {{- end -}} + {{- with .Values.server.ingress.tls }} tls: - {{- if .Values.server.ingress.tls }} - - hosts: - - {{ tpl (.Values.server.ingress.hostname) $ | default .Values.global.domain }} - {{- range .Values.server.ingress.extraHosts }} - {{- if .name }} - - {{ tpl .name $ }} - {{- end }} - {{- end }} - secretName: argocd-server-tls - {{- end }} - {{- with .Values.server.ingress.extraTls }} - {{- tpl (toYaml .) $ | nindent 4 }} - {{- end }} - {{- end }} -{{- end }} + {{- toYaml . | nindent 4 }} + {{- end -}} +{{- end -}} diff --git a/charts/argo-cd/templates/argocd-server/metrics.yaml b/charts/argo-cd/templates/argocd-server/metrics.yaml index d08dbae0..3a9f46f7 100644 --- a/charts/argo-cd/templates/argocd-server/metrics.yaml +++ b/charts/argo-cd/templates/argocd-server/metrics.yaml @@ -3,28 +3,19 @@ apiVersion: v1 kind: Service metadata: name: {{ include "argo-cd.server.fullname" . }}-metrics - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" (printf "%s-metrics" .Values.server.name)) | nindent 4 }} {{- with .Values.server.metrics.service.labels }} {{- toYaml . | nindent 4 }} {{- end }} - {{- if or .Values.server.metrics.service.annotations .Values.global.addPrometheusAnnotations }} + {{- with .Values.server.metrics.service.annotations }} annotations: - {{- if .Values.global.addPrometheusAnnotations }} - prometheus.io/port: {{ .Values.server.metrics.service.servicePort | quote }} - prometheus.io/scrape: "true" - {{- end }} - {{- range $key, $value := .Values.server.metrics.service.annotations }} + {{- range $key, $value := . }} {{ $key }}: {{ $value | quote }} {{- end }} {{- end }} spec: - type: {{ .Values.server.metrics.service.type }} - {{- if and .Values.server.metrics.service.clusterIP (eq .Values.server.metrics.service.type "ClusterIP") }} - clusterIP: {{ .Values.server.metrics.service.clusterIP }} - {{- end }} - {{- include "argo-cd.dualStack" . | indent 2 }} ports: - name: {{ .Values.server.metrics.service.portName }} protocol: TCP diff --git a/charts/argo-cd/templates/argocd-server/networkpolicy.yaml b/charts/argo-cd/templates/argocd-server/networkpolicy.yaml index 4621e24f..443ff359 100644 --- a/charts/argo-cd/templates/argocd-server/networkpolicy.yaml +++ b/charts/argo-cd/templates/argocd-server/networkpolicy.yaml @@ -5,7 +5,7 @@ metadata: labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }} name: {{ template "argo-cd.server.fullname" . }} - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} spec: ingress: - {} diff --git a/charts/argo-cd/templates/argocd-server/openshift/route.yaml b/charts/argo-cd/templates/argocd-server/openshift/route.yaml index b018f724..59313798 100644 --- a/charts/argo-cd/templates/argocd-server/openshift/route.yaml +++ b/charts/argo-cd/templates/argocd-server/openshift/route.yaml @@ -3,7 +3,7 @@ apiVersion: route.openshift.io/v1 kind: Route metadata: name: {{ template "argo-cd.server.fullname" . }} - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }} {{- with .Values.server.route.annotations }} @@ -13,7 +13,7 @@ metadata: {{- end }} {{- end }} spec: - host: {{ .Values.server.route.hostname | default .Values.global.domain | quote }} + host: {{ .Values.server.route.hostname | quote }} to: kind: Service name: {{ template "argo-cd.server.fullname" . }} diff --git a/charts/argo-cd/templates/argocd-server/pdb.yaml b/charts/argo-cd/templates/argocd-server/pdb.yaml index 6bc93305..adc47aec 100644 --- a/charts/argo-cd/templates/argocd-server/pdb.yaml +++ b/charts/argo-cd/templates/argocd-server/pdb.yaml @@ -3,7 +3,7 @@ apiVersion: policy/v1 kind: PodDisruptionBudget metadata: name: {{ include "argo-cd.server.fullname" . }} - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }} {{- with .Values.server.pdb.labels }} diff --git a/charts/argo-cd/templates/argocd-server/role.yaml b/charts/argo-cd/templates/argocd-server/role.yaml index 8d12e30d..f156bc18 100644 --- a/charts/argo-cd/templates/argocd-server/role.yaml +++ b/charts/argo-cd/templates/argocd-server/role.yaml @@ -2,7 +2,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: {{ include "argo-cd.server.fullname" . }} - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }} rules: @@ -25,6 +25,9 @@ rules: - applications - applicationsets - appprojects + {{- if .Values.server.extensions.enabled }} + - argocdextensions + {{- end }} verbs: - create - get @@ -40,7 +43,7 @@ rules: verbs: - create - list -{{- if eq (toString (index .Values.configs.cm "exec.enabled")) "true" }} +{{- if eq (toString (index (coalesce .Values.server.config .Values.configs.cm) "exec.enabled")) "true" }} - apiGroups: - "" resources: diff --git a/charts/argo-cd/templates/argocd-server/rolebinding.yaml b/charts/argo-cd/templates/argocd-server/rolebinding.yaml index 4d635aa9..93b1fa94 100644 --- a/charts/argo-cd/templates/argocd-server/rolebinding.yaml +++ b/charts/argo-cd/templates/argocd-server/rolebinding.yaml @@ -1,8 +1,8 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: - name: {{ include "argo-cd.server.fullname" . }} - namespace: {{ include "argo-cd.namespace" . }} + name: {{ template "argo-cd.server.fullname" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }} roleRef: @@ -11,5 +11,5 @@ roleRef: name: {{ template "argo-cd.server.fullname" . }} subjects: - kind: ServiceAccount - name: {{ include "argo-cd.server.serviceAccountName" . }} - namespace: {{ include "argo-cd.namespace" . }} + name: {{ template "argo-cd.serverServiceAccountName" . }} + namespace: {{ .Release.Namespace }} \ No newline at end of file diff --git a/charts/argo-cd/templates/argocd-server/service.yaml b/charts/argo-cd/templates/argocd-server/service.yaml index 86f8abb0..5a31f0b8 100644 --- a/charts/argo-cd/templates/argocd-server/service.yaml +++ b/charts/argo-cd/templates/argocd-server/service.yaml @@ -1,41 +1,21 @@ apiVersion: v1 kind: Service metadata: +{{- if .Values.server.service.annotations }} + annotations: + {{- range $key, $value := .Values.server.service.annotations }} + {{ $key }}: {{ $value | quote }} + {{- end }} +{{- end }} name: {{ template "argo-cd.server.fullname" . }} - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }} - {{- with .Values.server.service.labels }} - {{- toYaml . | nindent 4 }} - {{- end }} - {{- with .Values.server.service.annotations }} - annotations: - {{- range $key, $value := . }} - {{ $key }}: {{ $value | quote }} - {{- end }} - {{- end }} +{{- if .Values.server.service.labels }} +{{- toYaml .Values.server.service.labels | nindent 4 }} +{{- end }} spec: type: {{ .Values.server.service.type }} - {{- include "argo-cd.dualStack" . | indent 2 }} - {{- with .Values.server.service.externalIPs }} - externalIPs: {{ . }} - {{- end }} - {{- if or (eq .Values.server.service.type "LoadBalancer") (eq .Values.server.service.type "NodePort") }} - externalTrafficPolicy: {{ .Values.server.service.externalTrafficPolicy }} - {{- end }} - {{- if eq .Values.server.service.type "LoadBalancer" }} - {{- with .Values.server.service.loadBalancerClass }} - loadBalancerClass: {{ . }} - {{- end }} - {{- with .Values.server.service.loadBalancerIP }} - loadBalancerIP: {{ . }} - {{- end }} - {{- with .Values.server.service.loadBalancerSourceRanges }} - loadBalancerSourceRanges: - {{- toYaml . | nindent 4 }} - {{- end }} - {{- end }} - sessionAffinity: {{ .Values.server.service.sessionAffinity }} ports: - name: {{ .Values.server.service.servicePortHttpName }} protocol: TCP @@ -51,9 +31,23 @@ spec: {{- if eq .Values.server.service.type "NodePort" }} nodePort: {{ .Values.server.service.nodePortHttps }} {{- end }} - {{- with .Values.server.service.servicePortHttpsAppProtocol }} - appProtocol: {{ . }} - {{- end }} selector: {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.server.name) | nindent 4 }} - +{{- if eq .Values.server.service.type "LoadBalancer" }} +{{- if .Values.server.service.loadBalancerIP }} + loadBalancerIP: {{ .Values.server.service.loadBalancerIP | quote }} +{{- end }} +{{- if .Values.server.service.externalIPs }} + externalIPs: {{ .Values.server.service.externalIPs }} +{{- end }} +{{- if .Values.server.service.loadBalancerSourceRanges }} + loadBalancerSourceRanges: +{{ toYaml .Values.server.service.loadBalancerSourceRanges | indent 4 }} +{{- end }} +{{- end -}} +{{- with .Values.server.service.externalTrafficPolicy }} + externalTrafficPolicy: {{ . }} +{{- end }} +{{- with .Values.server.service.sessionAffinity }} + sessionAffinity: {{ . }} +{{- end }} diff --git a/charts/argo-cd/templates/argocd-server/serviceaccount.yaml b/charts/argo-cd/templates/argocd-server/serviceaccount.yaml index 9789e1d0..5d03aaf6 100644 --- a/charts/argo-cd/templates/argocd-server/serviceaccount.yaml +++ b/charts/argo-cd/templates/argocd-server/serviceaccount.yaml @@ -3,17 +3,17 @@ apiVersion: v1 kind: ServiceAccount automountServiceAccountToken: {{ .Values.server.serviceAccount.automountServiceAccountToken }} metadata: - name: {{ include "argo-cd.server.serviceAccountName" . }} - namespace: {{ include "argo-cd.namespace" . }} - {{- with .Values.server.serviceAccount.annotations }} + name: {{ template "argo-cd.serverServiceAccountName" . }} + namespace: {{ .Release.Namespace | quote }} +{{- if .Values.server.serviceAccount.annotations }} annotations: - {{- range $key, $value := . }} + {{- range $key, $value := .Values.server.serviceAccount.annotations }} {{ $key }}: {{ $value | quote }} - {{- end }} {{- end }} +{{- end }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }} - {{- with .Values.server.serviceAccount.labels }} - {{- toYaml . | nindent 4 }} - {{- end }} + {{- range $key, $value := .Values.server.serviceAccount.labels }} + {{ $key }}: {{ $value | quote }} + {{- end }} {{- end }} diff --git a/charts/argo-cd/templates/argocd-server/servicemonitor.yaml b/charts/argo-cd/templates/argocd-server/servicemonitor.yaml index 49c24138..65d102e3 100644 --- a/charts/argo-cd/templates/argocd-server/servicemonitor.yaml +++ b/charts/argo-cd/templates/argocd-server/servicemonitor.yaml @@ -1,9 +1,9 @@ -{{- if and (.Capabilities.APIVersions.Has "monitoring.coreos.com/v1") .Values.server.metrics.enabled .Values.server.metrics.serviceMonitor.enabled }} +{{- if and .Values.server.metrics.enabled .Values.server.metrics.serviceMonitor.enabled }} apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: {{ template "argo-cd.server.fullname" . }} - namespace: {{ default (include "argo-cd.namespace" .) .Values.server.metrics.serviceMonitor.namespace | quote }} + namespace: {{ default .Release.Namespace .Values.server.metrics.serviceMonitor.namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }} {{- with .Values.server.metrics.serviceMonitor.selector }} @@ -12,19 +12,16 @@ metadata: {{- with .Values.server.metrics.serviceMonitor.additionalLabels }} {{- toYaml . | nindent 4 }} {{- end }} - {{- with .Values.server.metrics.serviceMonitor.annotations }} annotations: - {{- toYaml . | nindent 4 }} - {{- end }} + {{- range $key, $value := .Values.server.metrics.serviceMonitor.annotations }} + {{ $key }}: {{ $value | quote }} + {{- end }} spec: endpoints: - port: {{ .Values.server.metrics.service.portName }} {{- with .Values.server.metrics.serviceMonitor.interval }} interval: {{ . }} {{- end }} - {{- with .Values.server.metrics.serviceMonitor.scrapeTimeout }} - scrapeTimeout: {{ . }} - {{- end }} path: /metrics {{- with .Values.server.metrics.serviceMonitor.relabelings }} relabelings: @@ -34,7 +31,6 @@ spec: metricRelabelings: {{- toYaml . | nindent 8 }} {{- end }} - honorLabels: {{ .Values.server.metrics.serviceMonitor.honorLabels }} {{- with .Values.server.metrics.serviceMonitor.scheme }} scheme: {{ . }} {{- end }} @@ -44,7 +40,7 @@ spec: {{- end }} namespaceSelector: matchNames: - - {{ include "argo-cd.namespace" . }} + - {{ .Release.Namespace }} selector: matchLabels: {{- include "argo-cd.selectorLabels" (dict "context" . "component" .Values.server.name "name" (printf "%s-metrics" .Values.server.name)) | nindent 6 }} diff --git a/charts/argo-cd/templates/crds/crd-application.yaml b/charts/argo-cd/templates/crds/crd-application.yaml index 2c69f9ba..5bb7bfb3 100644 --- a/charts/argo-cd/templates/crds/crd-application.yaml +++ b/charts/argo-cd/templates/crds/crd-application.yaml @@ -12,9 +12,6 @@ metadata: labels: app.kubernetes.io/name: applications.argoproj.io app.kubernetes.io/part-of: argocd - {{- with .Values.crds.additionalLabels }} - {{- toYaml . | nindent 4}} - {{- end }} name: applications.argoproj.io spec: group: argoproj.io @@ -39,29 +36,20 @@ spec: name: Revision priority: 10 type: string - - jsonPath: .spec.project - name: Project - priority: 10 - type: string name: v1alpha1 schema: openAPIV3Schema: description: Application is a definition of Application 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 + 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 + 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 @@ -125,11 +113,6 @@ spec: sync: description: Sync contains parameters for the operation properties: - autoHealAttemptsCount: - description: SelfHealAttemptsCount contains the number of auto-heal - attempts - format: int64 - type: integer dryRun: description: DryRun specifies to perform a `kubectl apply --dry-run` without actually performing the sync @@ -164,21 +147,22 @@ spec: type: object type: array revision: - description: |- - Revision is the revision (Git) or chart version (Helm) which to sync the application to - If omitted, will use the revision specified in app spec. + description: Revision is the revision (Git) or chart version (Helm) + which to sync the application to If omitted, will use the revision + specified in app spec. type: string revisions: - description: |- - Revisions is the list of revision (Git) or chart version (Helm) which to sync each source in sources field for the application to - If omitted, will use the revision specified in app spec. + description: Revisions is the list of revision (Git) or chart + version (Helm) which to sync each source in sources field for + the application to If omitted, will use the revision specified + in app spec. items: type: string type: array source: - description: |- - Source overrides the source definition set in the application. - This is typically set in a Rollback operation and is nil during a Sync operation + description: Source overrides the source definition set in the + application. This is typically set in a Rollback operation and + is nil during a Sync operation properties: chart: description: Chart is a Helm chart name, and must be specified @@ -249,13 +233,6 @@ spec: helm: description: Helm holds helm specific options properties: - apiVersions: - description: |- - APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default, - Argo CD uses the API versions of the target cluster. The format is [group/]version/kind. - items: - type: string - type: array fileParameters: description: FileParameters are file parameters to the helm template @@ -277,16 +254,6 @@ spec: from failing when valueFiles do not exist locally by not appending them to helm template --values type: boolean - kubeVersion: - description: |- - KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD - uses the Kubernetes version of the target cluster. - type: string - namespace: - description: Namespace is an optional namespace to template - with. If left empty, defaults to the app's destination - namespace. - type: string parameters: description: Parameters is a list of Helm parameters which are passed to the helm template command upon manifest @@ -319,14 +286,6 @@ spec: description: SkipCrds skips custom resource definition installation step (Helm's --skip-crds) type: boolean - skipSchemaValidation: - description: SkipSchemaValidation skips JSON schema validation - (Helm's --skip-schema-validation) - type: boolean - skipTests: - description: SkipTests skips test manifest installation - step (Helm's --skip-tests). - type: boolean valueFiles: description: ValuesFiles is a list of Helm value files to use when generating a template @@ -335,15 +294,8 @@ spec: type: array values: description: Values specifies Helm values to be passed - to helm template, typically defined as a block. ValuesObject - takes precedence over Values, so use one or the other. + to helm template, typically defined as a block type: string - valuesObject: - description: ValuesObject specifies Helm values to be - passed to helm template, defined as a map. This takes - precedence over Values. - type: object - x-kubernetes-preserve-unknown-fields: true version: description: Version is the Helm version to use for templating ("3") @@ -352,13 +304,6 @@ spec: kustomize: description: Kustomize holds kustomize specific options properties: - apiVersions: - description: |- - APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default, - Argo CD uses the API versions of the target cluster. The format is [group/]version/kind. - items: - type: string - type: array commonAnnotations: additionalProperties: type: string @@ -375,12 +320,6 @@ spec: description: CommonLabels is a list of additional labels to add to rendered manifests type: object - components: - description: Components specifies a list of kustomize - components to add to the kustomization before building - items: - type: string - type: array forceCommonAnnotations: description: ForceCommonAnnotations specifies whether to force applying common annotations to resources for @@ -398,15 +337,6 @@ spec: definition in the format [old_image_name=]: type: string type: array - kubeVersion: - description: |- - KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD - uses the Kubernetes version of the target cluster. - type: string - labelWithoutSelector: - description: LabelWithoutSelector specifies whether to - apply common labels to resource selectors or not - type: boolean namePrefix: description: NamePrefix is a prefix appended to resources for Kustomize apps @@ -419,37 +349,6 @@ spec: description: Namespace sets the namespace that Kustomize adds to all resources type: string - patches: - description: Patches is a list of Kustomize patches - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array replicas: description: Replicas is a list of Kustomize Replicas override specifications @@ -474,10 +373,6 @@ spec: to use for rendering manifests type: string type: object - name: - description: Name is used to refer to a source and is displayed - in the UI. It is used in multi-source Applications. - type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -540,18 +435,18 @@ spec: Helm) that contains the application manifests type: string targetRevision: - description: |- - TargetRevision defines the revision of the source to sync the application to. - In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. + description: TargetRevision defines the revision of the source + to sync the application to. In case of Git, this can be + commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version. type: string required: - repoURL type: object sources: - description: |- - Sources overrides the source definition set in the application. - This is typically set in a Rollback operation and is nil during a Sync operation + description: Sources overrides the source definition set in the + application. This is typically set in a Rollback operation and + is nil during a Sync operation items: description: ApplicationSource contains all required information about the source of an application @@ -626,13 +521,6 @@ spec: helm: description: Helm holds helm specific options properties: - apiVersions: - description: |- - APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default, - Argo CD uses the API versions of the target cluster. The format is [group/]version/kind. - items: - type: string - type: array fileParameters: description: FileParameters are file parameters to the helm template @@ -654,16 +542,6 @@ spec: from failing when valueFiles do not exist locally by not appending them to helm template --values type: boolean - kubeVersion: - description: |- - KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD - uses the Kubernetes version of the target cluster. - type: string - namespace: - description: Namespace is an optional namespace to template - with. If left empty, defaults to the app's destination - namespace. - type: string parameters: description: Parameters is a list of Helm parameters which are passed to the helm template command upon @@ -697,14 +575,6 @@ spec: description: SkipCrds skips custom resource definition installation step (Helm's --skip-crds) type: boolean - skipSchemaValidation: - description: SkipSchemaValidation skips JSON schema - validation (Helm's --skip-schema-validation) - type: boolean - skipTests: - description: SkipTests skips test manifest installation - step (Helm's --skip-tests). - type: boolean valueFiles: description: ValuesFiles is a list of Helm value files to use when generating a template @@ -713,15 +583,8 @@ spec: type: array values: description: Values specifies Helm values to be passed - to helm template, typically defined as a block. ValuesObject - takes precedence over Values, so use one or the other. + to helm template, typically defined as a block type: string - valuesObject: - description: ValuesObject specifies Helm values to be - passed to helm template, defined as a map. This takes - precedence over Values. - type: object - x-kubernetes-preserve-unknown-fields: true version: description: Version is the Helm version to use for templating ("3") @@ -730,13 +593,6 @@ spec: kustomize: description: Kustomize holds kustomize specific options properties: - apiVersions: - description: |- - APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default, - Argo CD uses the API versions of the target cluster. The format is [group/]version/kind. - items: - type: string - type: array commonAnnotations: additionalProperties: type: string @@ -754,12 +610,6 @@ spec: description: CommonLabels is a list of additional labels to add to rendered manifests type: object - components: - description: Components specifies a list of kustomize - components to add to the kustomization before building - items: - type: string - type: array forceCommonAnnotations: description: ForceCommonAnnotations specifies whether to force applying common annotations to resources @@ -778,15 +628,6 @@ spec: image definition in the format [old_image_name=]: type: string type: array - kubeVersion: - description: |- - KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD - uses the Kubernetes version of the target cluster. - type: string - labelWithoutSelector: - description: LabelWithoutSelector specifies whether - to apply common labels to resource selectors or not - type: boolean namePrefix: description: NamePrefix is a prefix appended to resources for Kustomize apps @@ -799,37 +640,6 @@ spec: description: Namespace sets the namespace that Kustomize adds to all resources type: string - patches: - description: Patches is a list of Kustomize patches - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array replicas: description: Replicas is a list of Kustomize Replicas override specifications @@ -854,10 +664,6 @@ spec: to use for rendering manifests type: string type: object - name: - description: Name is used to refer to a source and is displayed - in the UI. It is used in multi-source Applications. - type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -920,10 +726,11 @@ spec: Helm) that contains the application manifests type: string targetRevision: - description: |- - TargetRevision defines the revision of the source to sync the application to. - In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. - In case of Helm, this is a semver tag for the Chart's version. + description: TargetRevision defines the revision of the + source to sync the application to. In case of Git, this + can be commit, tag, or branch. If omitted, will equal + to HEAD. In case of Helm, this is a semver tag for the + Chart's version. type: string required: - repoURL @@ -942,10 +749,10 @@ spec: the sync. properties: force: - description: |- - Force indicates whether or not to supply the --force flag to `kubectl apply`. - The --force flag deletes and re-create the resource, when PATCH encounters conflict and has - retried for 5 times. + description: Force indicates whether or not to supply + the --force flag to `kubectl apply`. The --force flag + deletes and re-create the resource, when PATCH encounters + conflict and has retried for 5 times. type: boolean type: object hook: @@ -953,10 +760,10 @@ spec: perform the sync. This is the default strategy properties: force: - description: |- - Force indicates whether or not to supply the --force flag to `kubectl apply`. - The --force flag deletes and re-create the resource, when PATCH encounters conflict and has - retried for 5 times. + description: Force indicates whether or not to supply + the --force flag to `kubectl apply`. The --force flag + deletes and re-create the resource, when PATCH encounters + conflict and has retried for 5 times. type: boolean type: object type: object @@ -973,18 +780,16 @@ spec: properties: name: description: Name is an alternate way of specifying the target - cluster by its symbolic name. This must be set if Server is - not set. + cluster by its symbolic name type: string namespace: - description: |- - Namespace specifies the target namespace for the application's resources. - The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace + description: Namespace specifies the target namespace for the + application's resources. The namespace will only be set for + namespace-scoped resources that have not set a value for .metadata.namespace type: string server: - description: Server specifies the URL of the target cluster's - Kubernetes control plane API. This must be set if Name is not - set. + description: Server specifies the URL of the target cluster and + must be set to the Kubernetes control plane API type: string type: object ignoreDifferences: @@ -1008,9 +813,10 @@ spec: kind: type: string managedFieldsManagers: - description: |- - ManagedFieldsManagers is a list of trusted managers. Fields mutated by those managers will take precedence over the - desired state defined in the SCM and won't be displayed in diffs + description: ManagedFieldsManagers is a list of trusted managers. + Fields mutated by those managers will take precedence over + the desired state defined in the SCM and won't be displayed + in diffs items: type: string type: array @@ -1037,17 +843,18 @@ spec: type: object type: array project: - description: |- - Project is a reference to the project this application belongs to. - The empty string means that application belongs to the 'default' project. + description: Project is a reference to the project this application + belongs to. The empty string means that application belongs to the + 'default' project. type: string revisionHistoryLimit: - description: |- - RevisionHistoryLimit limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. - This should only be changed in exceptional circumstances. - Setting to zero will store no history. This will reduce storage used. - Increasing will increase the space used to store the history, so we do not recommend increasing it. - Default is 10. + description: RevisionHistoryLimit limits the number of items kept + in the application's revision history, which is used for informational + purposes as well as for rollbacks to previous versions. This should + only be changed in exceptional circumstances. Setting to zero will + store no history. This will reduce storage used. Increasing will + increase the space used to store the history, so we do not recommend + increasing it. Default is 10. format: int64 type: integer source: @@ -1122,13 +929,6 @@ spec: helm: description: Helm holds helm specific options properties: - apiVersions: - description: |- - APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default, - Argo CD uses the API versions of the target cluster. The format is [group/]version/kind. - items: - type: string - type: array fileParameters: description: FileParameters are file parameters to the helm template @@ -1150,15 +950,6 @@ spec: from failing when valueFiles do not exist locally by not appending them to helm template --values type: boolean - kubeVersion: - description: |- - KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD - uses the Kubernetes version of the target cluster. - type: string - namespace: - description: Namespace is an optional namespace to template - with. If left empty, defaults to the app's destination namespace. - type: string parameters: description: Parameters is a list of Helm parameters which are passed to the helm template command upon manifest generation @@ -1190,14 +981,6 @@ spec: description: SkipCrds skips custom resource definition installation step (Helm's --skip-crds) type: boolean - skipSchemaValidation: - description: SkipSchemaValidation skips JSON schema validation - (Helm's --skip-schema-validation) - type: boolean - skipTests: - description: SkipTests skips test manifest installation step - (Helm's --skip-tests). - type: boolean valueFiles: description: ValuesFiles is a list of Helm value files to use when generating a template @@ -1206,15 +989,8 @@ spec: type: array values: description: Values specifies Helm values to be passed to - helm template, typically defined as a block. ValuesObject - takes precedence over Values, so use one or the other. + helm template, typically defined as a block type: string - valuesObject: - description: ValuesObject specifies Helm values to be passed - to helm template, defined as a map. This takes precedence - over Values. - type: object - x-kubernetes-preserve-unknown-fields: true version: description: Version is the Helm version to use for templating ("3") @@ -1223,13 +999,6 @@ spec: kustomize: description: Kustomize holds kustomize specific options properties: - apiVersions: - description: |- - APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default, - Argo CD uses the API versions of the target cluster. The format is [group/]version/kind. - items: - type: string - type: array commonAnnotations: additionalProperties: type: string @@ -1246,12 +1015,6 @@ spec: description: CommonLabels is a list of additional labels to add to rendered manifests type: object - components: - description: Components specifies a list of kustomize components - to add to the kustomization before building - items: - type: string - type: array forceCommonAnnotations: description: ForceCommonAnnotations specifies whether to force applying common annotations to resources for Kustomize apps @@ -1268,15 +1031,6 @@ spec: definition in the format [old_image_name=]: type: string type: array - kubeVersion: - description: |- - KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD - uses the Kubernetes version of the target cluster. - type: string - labelWithoutSelector: - description: LabelWithoutSelector specifies whether to apply - common labels to resource selectors or not - type: boolean namePrefix: description: NamePrefix is a prefix appended to resources for Kustomize apps @@ -1289,37 +1043,6 @@ spec: description: Namespace sets the namespace that Kustomize adds to all resources type: string - patches: - description: Patches is a list of Kustomize patches - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array replicas: description: Replicas is a list of Kustomize Replicas override specifications @@ -1344,10 +1067,6 @@ spec: use for rendering manifests type: string type: object - name: - description: Name is used to refer to a source and is displayed - in the UI. It is used in multi-source Applications. - type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -1406,72 +1125,14 @@ spec: that contains the application manifests type: string targetRevision: - description: |- - TargetRevision defines the revision of the source to sync the application to. - In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. - In case of Helm, this is a semver tag for the Chart's version. + description: TargetRevision defines the revision of the source + to sync the application to. In case of Git, this can be commit, + tag, or branch. If omitted, will equal to HEAD. In case of Helm, + this is a semver tag for the Chart's version. type: string required: - repoURL type: object - sourceHydrator: - description: SourceHydrator provides a way to push hydrated manifests - back to git before syncing them to the cluster. - properties: - drySource: - description: DrySource specifies where the dry "don't repeat yourself" - manifest source lives. - properties: - path: - description: Path is a directory path within the Git repository - where the manifests are located - type: string - repoURL: - description: RepoURL is the URL to the git repository that - contains the application manifests - type: string - targetRevision: - description: TargetRevision defines the revision of the source - to hydrate - type: string - required: - - path - - repoURL - - targetRevision - type: object - hydrateTo: - description: |- - HydrateTo specifies an optional "staging" location to push hydrated manifests to. An external system would then - have to move manifests to the SyncSource, e.g. by pull request. - properties: - targetBranch: - description: TargetBranch is the branch to which hydrated - manifests should be committed - type: string - required: - - targetBranch - type: object - syncSource: - description: SyncSource specifies where to sync hydrated manifests - from. - properties: - path: - description: |- - Path is a directory path within the git repository where hydrated manifests should be committed to and synced - from. If hydrateTo is set, this is just the path from which hydrated manifests will be synced. - type: string - targetBranch: - description: TargetBranch is the branch to which hydrated - manifests should be committed - type: string - required: - - path - - targetBranch - type: object - required: - - drySource - - syncSource - type: object sources: description: Sources is a reference to the location of the application's manifests or chart @@ -1547,13 +1208,6 @@ spec: helm: description: Helm holds helm specific options properties: - apiVersions: - description: |- - APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default, - Argo CD uses the API versions of the target cluster. The format is [group/]version/kind. - items: - type: string - type: array fileParameters: description: FileParameters are file parameters to the helm template @@ -1575,16 +1229,6 @@ spec: from failing when valueFiles do not exist locally by not appending them to helm template --values type: boolean - kubeVersion: - description: |- - KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD - uses the Kubernetes version of the target cluster. - type: string - namespace: - description: Namespace is an optional namespace to template - with. If left empty, defaults to the app's destination - namespace. - type: string parameters: description: Parameters is a list of Helm parameters which are passed to the helm template command upon manifest @@ -1617,14 +1261,6 @@ spec: description: SkipCrds skips custom resource definition installation step (Helm's --skip-crds) type: boolean - skipSchemaValidation: - description: SkipSchemaValidation skips JSON schema validation - (Helm's --skip-schema-validation) - type: boolean - skipTests: - description: SkipTests skips test manifest installation - step (Helm's --skip-tests). - type: boolean valueFiles: description: ValuesFiles is a list of Helm value files to use when generating a template @@ -1633,15 +1269,8 @@ spec: type: array values: description: Values specifies Helm values to be passed to - helm template, typically defined as a block. ValuesObject - takes precedence over Values, so use one or the other. + helm template, typically defined as a block type: string - valuesObject: - description: ValuesObject specifies Helm values to be passed - to helm template, defined as a map. This takes precedence - over Values. - type: object - x-kubernetes-preserve-unknown-fields: true version: description: Version is the Helm version to use for templating ("3") @@ -1650,13 +1279,6 @@ spec: kustomize: description: Kustomize holds kustomize specific options properties: - apiVersions: - description: |- - APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default, - Argo CD uses the API versions of the target cluster. The format is [group/]version/kind. - items: - type: string - type: array commonAnnotations: additionalProperties: type: string @@ -1673,12 +1295,6 @@ spec: description: CommonLabels is a list of additional labels to add to rendered manifests type: object - components: - description: Components specifies a list of kustomize components - to add to the kustomization before building - items: - type: string - type: array forceCommonAnnotations: description: ForceCommonAnnotations specifies whether to force applying common annotations to resources for Kustomize @@ -1696,15 +1312,6 @@ spec: definition in the format [old_image_name=]: type: string type: array - kubeVersion: - description: |- - KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD - uses the Kubernetes version of the target cluster. - type: string - labelWithoutSelector: - description: LabelWithoutSelector specifies whether to apply - common labels to resource selectors or not - type: boolean namePrefix: description: NamePrefix is a prefix appended to resources for Kustomize apps @@ -1717,37 +1324,6 @@ spec: description: Namespace sets the namespace that Kustomize adds to all resources type: string - patches: - description: Patches is a list of Kustomize patches - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array replicas: description: Replicas is a list of Kustomize Replicas override specifications @@ -1772,10 +1348,6 @@ spec: to use for rendering manifests type: string type: object - name: - description: Name is used to refer to a source and is displayed - in the UI. It is used in multi-source Applications. - type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -1837,10 +1409,10 @@ spec: that contains the application manifests type: string targetRevision: - description: |- - TargetRevision defines the revision of the source to sync the application to. - In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. - In case of Helm, this is a semver tag for the Chart's version. + description: TargetRevision defines the revision of the source + to sync the application to. In case of Git, this can be commit, + tag, or branch. If omitted, will equal to HEAD. In case of + Helm, this is a semver tag for the Chart's version. type: string required: - repoURL @@ -1863,7 +1435,7 @@ spec: as part of automated sync (default: false)' type: boolean selfHeal: - description: 'SelfHeal specifies whether to revert resources + description: 'SelfHeal specifes whether to revert resources back to their desired state upon modification in the cluster (default: false)' type: boolean @@ -1927,7 +1499,7 @@ spec: conditions items: description: ApplicationCondition contains details about an application - condition, which is usually an error or warning + condition, which is usally an error or warning properties: lastTransitionTime: description: LastTransitionTime is the time the condition was @@ -1946,19 +1518,10 @@ spec: - type type: object type: array - controllerNamespace: - description: ControllerNamespace indicates the namespace in which - the application controller is located - type: string health: description: Health contains information about the application's current health status properties: - lastTransitionTime: - description: LastTransitionTime is the time the HealthStatus was - set or updated - format: date-time - type: string message: description: Message is a human-readable informational message describing the health status @@ -1988,19 +1551,6 @@ spec: description: ID is an auto incrementing identifier of the RevisionHistory format: int64 type: integer - initiatedBy: - description: InitiatedBy contains information about who initiated - the operations - properties: - automated: - description: Automated is set to true if operation was initiated - automatically by the application controller. - type: boolean - username: - description: Username contains the name of a user who started - operation - type: string - type: object revision: description: Revision holds the revision the sync was performed against @@ -2085,13 +1635,6 @@ spec: helm: description: Helm holds helm specific options properties: - apiVersions: - description: |- - APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default, - Argo CD uses the API versions of the target cluster. The format is [group/]version/kind. - items: - type: string - type: array fileParameters: description: FileParameters are file parameters to the helm template @@ -2113,16 +1656,6 @@ spec: from failing when valueFiles do not exist locally by not appending them to helm template --values type: boolean - kubeVersion: - description: |- - KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD - uses the Kubernetes version of the target cluster. - type: string - namespace: - description: Namespace is an optional namespace to template - with. If left empty, defaults to the app's destination - namespace. - type: string parameters: description: Parameters is a list of Helm parameters which are passed to the helm template command upon @@ -2156,14 +1689,6 @@ spec: description: SkipCrds skips custom resource definition installation step (Helm's --skip-crds) type: boolean - skipSchemaValidation: - description: SkipSchemaValidation skips JSON schema - validation (Helm's --skip-schema-validation) - type: boolean - skipTests: - description: SkipTests skips test manifest installation - step (Helm's --skip-tests). - type: boolean valueFiles: description: ValuesFiles is a list of Helm value files to use when generating a template @@ -2172,15 +1697,8 @@ spec: type: array values: description: Values specifies Helm values to be passed - to helm template, typically defined as a block. ValuesObject - takes precedence over Values, so use one or the other. + to helm template, typically defined as a block type: string - valuesObject: - description: ValuesObject specifies Helm values to be - passed to helm template, defined as a map. This takes - precedence over Values. - type: object - x-kubernetes-preserve-unknown-fields: true version: description: Version is the Helm version to use for templating ("3") @@ -2189,13 +1707,6 @@ spec: kustomize: description: Kustomize holds kustomize specific options properties: - apiVersions: - description: |- - APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default, - Argo CD uses the API versions of the target cluster. The format is [group/]version/kind. - items: - type: string - type: array commonAnnotations: additionalProperties: type: string @@ -2213,12 +1724,6 @@ spec: description: CommonLabels is a list of additional labels to add to rendered manifests type: object - components: - description: Components specifies a list of kustomize - components to add to the kustomization before building - items: - type: string - type: array forceCommonAnnotations: description: ForceCommonAnnotations specifies whether to force applying common annotations to resources @@ -2237,15 +1742,6 @@ spec: image definition in the format [old_image_name=]: type: string type: array - kubeVersion: - description: |- - KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD - uses the Kubernetes version of the target cluster. - type: string - labelWithoutSelector: - description: LabelWithoutSelector specifies whether - to apply common labels to resource selectors or not - type: boolean namePrefix: description: NamePrefix is a prefix appended to resources for Kustomize apps @@ -2258,37 +1754,6 @@ spec: description: Namespace sets the namespace that Kustomize adds to all resources type: string - patches: - description: Patches is a list of Kustomize patches - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array replicas: description: Replicas is a list of Kustomize Replicas override specifications @@ -2313,10 +1778,6 @@ spec: to use for rendering manifests type: string type: object - name: - description: Name is used to refer to a source and is displayed - in the UI. It is used in multi-source Applications. - type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -2379,10 +1840,11 @@ spec: Helm) that contains the application manifests type: string targetRevision: - description: |- - TargetRevision defines the revision of the source to sync the application to. - In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. - In case of Helm, this is a semver tag for the Chart's version. + description: TargetRevision defines the revision of the + source to sync the application to. In case of Git, this + can be commit, tag, or branch. If omitted, will equal + to HEAD. In case of Helm, this is a semver tag for the + Chart's version. type: string required: - repoURL @@ -2464,13 +1926,6 @@ spec: helm: description: Helm holds helm specific options properties: - apiVersions: - description: |- - APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default, - Argo CD uses the API versions of the target cluster. The format is [group/]version/kind. - items: - type: string - type: array fileParameters: description: FileParameters are file parameters to the helm template @@ -2493,16 +1948,6 @@ spec: template from failing when valueFiles do not exist locally by not appending them to helm template --values type: boolean - kubeVersion: - description: |- - KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD - uses the Kubernetes version of the target cluster. - type: string - namespace: - description: Namespace is an optional namespace to - template with. If left empty, defaults to the app's - destination namespace. - type: string parameters: description: Parameters is a list of Helm parameters which are passed to the helm template command upon @@ -2537,14 +1982,6 @@ spec: description: SkipCrds skips custom resource definition installation step (Helm's --skip-crds) type: boolean - skipSchemaValidation: - description: SkipSchemaValidation skips JSON schema - validation (Helm's --skip-schema-validation) - type: boolean - skipTests: - description: SkipTests skips test manifest installation - step (Helm's --skip-tests). - type: boolean valueFiles: description: ValuesFiles is a list of Helm value files to use when generating a template @@ -2553,16 +1990,8 @@ spec: type: array values: description: Values specifies Helm values to be passed - to helm template, typically defined as a block. - ValuesObject takes precedence over Values, so use - one or the other. + to helm template, typically defined as a block type: string - valuesObject: - description: ValuesObject specifies Helm values to - be passed to helm template, defined as a map. This - takes precedence over Values. - type: object - x-kubernetes-preserve-unknown-fields: true version: description: Version is the Helm version to use for templating ("3") @@ -2571,13 +2000,6 @@ spec: kustomize: description: Kustomize holds kustomize specific options properties: - apiVersions: - description: |- - APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default, - Argo CD uses the API versions of the target cluster. The format is [group/]version/kind. - items: - type: string - type: array commonAnnotations: additionalProperties: type: string @@ -2595,12 +2017,6 @@ spec: description: CommonLabels is a list of additional labels to add to rendered manifests type: object - components: - description: Components specifies a list of kustomize - components to add to the kustomization before building - items: - type: string - type: array forceCommonAnnotations: description: ForceCommonAnnotations specifies whether to force applying common annotations to resources @@ -2619,16 +2035,6 @@ spec: image definition in the format [old_image_name=]: type: string type: array - kubeVersion: - description: |- - KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD - uses the Kubernetes version of the target cluster. - type: string - labelWithoutSelector: - description: LabelWithoutSelector specifies whether - to apply common labels to resource selectors or - not - type: boolean namePrefix: description: NamePrefix is a prefix appended to resources for Kustomize apps @@ -2641,37 +2047,6 @@ spec: description: Namespace sets the namespace that Kustomize adds to all resources type: string - patches: - description: Patches is a list of Kustomize patches - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array replicas: description: Replicas is a list of Kustomize Replicas override specifications @@ -2696,10 +2071,6 @@ spec: to use for rendering manifests type: string type: object - name: - description: Name is used to refer to a source and is - displayed in the UI. It is used in multi-source Applications. - type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -2765,10 +2136,11 @@ spec: or Helm) that contains the application manifests type: string targetRevision: - description: |- - TargetRevision defines the revision of the source to sync the application to. - In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. - In case of Helm, this is a semver tag for the Chart's version. + description: TargetRevision defines the revision of the + source to sync the application to. In case of Git, this + can be commit, tag, or branch. If omitted, will equal + to HEAD. In case of Helm, this is a semver tag for the + Chart's version. type: string required: - repoURL @@ -2780,9 +2152,9 @@ spec: type: object type: array observedAt: - description: |- - ObservedAt indicates when the application state was updated without querying latest git state - Deprecated: controller no longer updates ObservedAt field + description: 'ObservedAt indicates when the application state was + updated without querying latest git state Deprecated: controller + no longer updates ObservedAt field' format: date-time type: string operationState: @@ -2860,11 +2232,6 @@ spec: sync: description: Sync contains parameters for the operation properties: - autoHealAttemptsCount: - description: SelfHealAttemptsCount contains the number - of auto-heal attempts - format: int64 - type: integer dryRun: description: DryRun specifies to perform a `kubectl apply --dry-run` without actually performing the sync @@ -2900,21 +2267,22 @@ spec: type: object type: array revision: - description: |- - Revision is the revision (Git) or chart version (Helm) which to sync the application to - If omitted, will use the revision specified in app spec. + description: Revision is the revision (Git) or chart version + (Helm) which to sync the application to If omitted, + will use the revision specified in app spec. type: string revisions: - description: |- - Revisions is the list of revision (Git) or chart version (Helm) which to sync each source in sources field for the application to - If omitted, will use the revision specified in app spec. + description: Revisions is the list of revision (Git) or + chart version (Helm) which to sync each source in sources + field for the application to If omitted, will use the + revision specified in app spec. items: type: string type: array source: - description: |- - Source overrides the source definition set in the application. - This is typically set in a Rollback operation and is nil during a Sync operation + description: Source overrides the source definition set + in the application. This is typically set in a Rollback + operation and is nil during a Sync operation properties: chart: description: Chart is a Helm chart name, and must @@ -2991,13 +2359,6 @@ spec: helm: description: Helm holds helm specific options properties: - apiVersions: - description: |- - APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default, - Argo CD uses the API versions of the target cluster. The format is [group/]version/kind. - items: - type: string - type: array fileParameters: description: FileParameters are file parameters to the helm template @@ -3022,16 +2383,6 @@ spec: not exist locally by not appending them to helm template --values type: boolean - kubeVersion: - description: |- - KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD - uses the Kubernetes version of the target cluster. - type: string - namespace: - description: Namespace is an optional namespace - to template with. If left empty, defaults to - the app's destination namespace. - type: string parameters: description: Parameters is a list of Helm parameters which are passed to the helm template command @@ -3068,14 +2419,6 @@ spec: description: SkipCrds skips custom resource definition installation step (Helm's --skip-crds) type: boolean - skipSchemaValidation: - description: SkipSchemaValidation skips JSON schema - validation (Helm's --skip-schema-validation) - type: boolean - skipTests: - description: SkipTests skips test manifest installation - step (Helm's --skip-tests). - type: boolean valueFiles: description: ValuesFiles is a list of Helm value files to use when generating a template @@ -3085,15 +2428,8 @@ spec: values: description: Values specifies Helm values to be passed to helm template, typically defined as - a block. ValuesObject takes precedence over - Values, so use one or the other. + a block type: string - valuesObject: - description: ValuesObject specifies Helm values - to be passed to helm template, defined as a - map. This takes precedence over Values. - type: object - x-kubernetes-preserve-unknown-fields: true version: description: Version is the Helm version to use for templating ("3") @@ -3102,13 +2438,6 @@ spec: kustomize: description: Kustomize holds kustomize specific options properties: - apiVersions: - description: |- - APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default, - Argo CD uses the API versions of the target cluster. The format is [group/]version/kind. - items: - type: string - type: array commonAnnotations: additionalProperties: type: string @@ -3126,13 +2455,6 @@ spec: description: CommonLabels is a list of additional labels to add to rendered manifests type: object - components: - description: Components specifies a list of kustomize - components to add to the kustomization before - building - items: - type: string - type: array forceCommonAnnotations: description: ForceCommonAnnotations specifies whether to force applying common annotations @@ -3151,16 +2473,6 @@ spec: image definition in the format [old_image_name=]: type: string type: array - kubeVersion: - description: |- - KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD - uses the Kubernetes version of the target cluster. - type: string - labelWithoutSelector: - description: LabelWithoutSelector specifies whether - to apply common labels to resource selectors - or not - type: boolean namePrefix: description: NamePrefix is a prefix appended to resources for Kustomize apps @@ -3173,37 +2485,6 @@ spec: description: Namespace sets the namespace that Kustomize adds to all resources type: string - patches: - description: Patches is a list of Kustomize patches - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array replicas: description: Replicas is a list of Kustomize Replicas override specifications @@ -3228,11 +2509,6 @@ spec: Kustomize to use for rendering manifests type: string type: object - name: - description: Name is used to refer to a source and - is displayed in the UI. It is used in multi-source - Applications. - type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced @@ -3299,18 +2575,19 @@ spec: (Git or Helm) that contains the application manifests type: string targetRevision: - description: |- - TargetRevision defines the revision of the source to sync the application to. - In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. - In case of Helm, this is a semver tag for the Chart's version. + description: TargetRevision defines the revision of + the source to sync the application to. In case of + Git, this can be commit, tag, or branch. If omitted, + will equal to HEAD. In case of Helm, this is a semver + tag for the Chart's version. type: string required: - repoURL type: object sources: - description: |- - Sources overrides the source definition set in the application. - This is typically set in a Rollback operation and is nil during a Sync operation + description: Sources overrides the source definition set + in the application. This is typically set in a Rollback + operation and is nil during a Sync operation items: description: ApplicationSource contains all required information about the source of an application @@ -3390,13 +2667,6 @@ spec: helm: description: Helm holds helm specific options properties: - apiVersions: - description: |- - APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default, - Argo CD uses the API versions of the target cluster. The format is [group/]version/kind. - items: - type: string - type: array fileParameters: description: FileParameters are file parameters to the helm template @@ -3421,16 +2691,6 @@ spec: do not exist locally by not appending them to helm template --values type: boolean - kubeVersion: - description: |- - KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD - uses the Kubernetes version of the target cluster. - type: string - namespace: - description: Namespace is an optional namespace - to template with. If left empty, defaults - to the app's destination namespace. - type: string parameters: description: Parameters is a list of Helm parameters which are passed to the helm template command @@ -3468,14 +2728,6 @@ spec: description: SkipCrds skips custom resource definition installation step (Helm's --skip-crds) type: boolean - skipSchemaValidation: - description: SkipSchemaValidation skips JSON - schema validation (Helm's --skip-schema-validation) - type: boolean - skipTests: - description: SkipTests skips test manifest installation - step (Helm's --skip-tests). - type: boolean valueFiles: description: ValuesFiles is a list of Helm value files to use when generating a template @@ -3485,15 +2737,8 @@ spec: values: description: Values specifies Helm values to be passed to helm template, typically defined - as a block. ValuesObject takes precedence - over Values, so use one or the other. + as a block type: string - valuesObject: - description: ValuesObject specifies Helm values - to be passed to helm template, defined as - a map. This takes precedence over Values. - type: object - x-kubernetes-preserve-unknown-fields: true version: description: Version is the Helm version to use for templating ("3") @@ -3503,13 +2748,6 @@ spec: description: Kustomize holds kustomize specific options properties: - apiVersions: - description: |- - APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default, - Argo CD uses the API versions of the target cluster. The format is [group/]version/kind. - items: - type: string - type: array commonAnnotations: additionalProperties: type: string @@ -3528,13 +2766,6 @@ spec: description: CommonLabels is a list of additional labels to add to rendered manifests type: object - components: - description: Components specifies a list of - kustomize components to add to the kustomization - before building - items: - type: string - type: array forceCommonAnnotations: description: ForceCommonAnnotations specifies whether to force applying common annotations @@ -3553,16 +2784,6 @@ spec: image definition in the format [old_image_name=]: type: string type: array - kubeVersion: - description: |- - KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD - uses the Kubernetes version of the target cluster. - type: string - labelWithoutSelector: - description: LabelWithoutSelector specifies - whether to apply common labels to resource - selectors or not - type: boolean namePrefix: description: NamePrefix is a prefix appended to resources for Kustomize apps @@ -3575,38 +2796,6 @@ spec: description: Namespace sets the namespace that Kustomize adds to all resources type: string - patches: - description: Patches is a list of Kustomize - patches - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array replicas: description: Replicas is a list of Kustomize Replicas override specifications @@ -3631,11 +2820,6 @@ spec: of Kustomize to use for rendering manifests type: string type: object - name: - description: Name is used to refer to a source and - is displayed in the UI. It is used in multi-source - Applications. - type: string path: description: Path is a directory path within the Git repository, and is only valid for applications @@ -3703,10 +2887,11 @@ spec: (Git or Helm) that contains the application manifests type: string targetRevision: - description: |- - TargetRevision defines the revision of the source to sync the application to. - In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. - In case of Helm, this is a semver tag for the Chart's version. + description: TargetRevision defines the revision + of the source to sync the application to. In case + of Git, this can be commit, tag, or branch. If + omitted, will equal to HEAD. In case of Helm, + this is a semver tag for the Chart's version. type: string required: - repoURL @@ -3727,10 +2912,11 @@ spec: to perform the sync. properties: force: - description: |- - Force indicates whether or not to supply the --force flag to `kubectl apply`. - The --force flag deletes and re-create the resource, when PATCH encounters conflict and has - retried for 5 times. + description: Force indicates whether or not to + supply the --force flag to `kubectl apply`. + The --force flag deletes and re-create the resource, + when PATCH encounters conflict and has retried + for 5 times. type: boolean type: object hook: @@ -3738,10 +2924,11 @@ spec: to perform the sync. This is the default strategy properties: force: - description: |- - Force indicates whether or not to supply the --force flag to `kubectl apply`. - The --force flag deletes and re-create the resource, when PATCH encounters conflict and has - retried for 5 times. + description: Force indicates whether or not to + supply the --force flag to `kubectl apply`. + The --force flag deletes and re-create the resource, + when PATCH encounters conflict and has retried + for 5 times. type: boolean type: object type: object @@ -3761,19 +2948,6 @@ spec: syncResult: description: SyncResult is the result of a Sync operation properties: - managedNamespaceMetadata: - description: ManagedNamespaceMetadata contains the current - sync state of managed namespace metadata - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object resources: description: Resources contains a list of sync result items for each individual resource in a sync operation @@ -3785,9 +2959,9 @@ spec: description: Group specifies the API group of the resource type: string hookPhase: - description: |- - HookPhase contains the state of any operation associated with this resource OR hook - This can also contain values for non-hook resources. + description: HookPhase contains the state of any operation + associated with this resource OR hook This can also + contain values for non-hook resources. type: string hookType: description: HookType specifies the type of the hook. @@ -3912,13 +3086,6 @@ spec: helm: description: Helm holds helm specific options properties: - apiVersions: - description: |- - APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default, - Argo CD uses the API versions of the target cluster. The format is [group/]version/kind. - items: - type: string - type: array fileParameters: description: FileParameters are file parameters to the helm template @@ -3941,16 +3108,6 @@ spec: template from failing when valueFiles do not exist locally by not appending them to helm template --values type: boolean - kubeVersion: - description: |- - KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD - uses the Kubernetes version of the target cluster. - type: string - namespace: - description: Namespace is an optional namespace to - template with. If left empty, defaults to the app's - destination namespace. - type: string parameters: description: Parameters is a list of Helm parameters which are passed to the helm template command upon @@ -3985,14 +3142,6 @@ spec: description: SkipCrds skips custom resource definition installation step (Helm's --skip-crds) type: boolean - skipSchemaValidation: - description: SkipSchemaValidation skips JSON schema - validation (Helm's --skip-schema-validation) - type: boolean - skipTests: - description: SkipTests skips test manifest installation - step (Helm's --skip-tests). - type: boolean valueFiles: description: ValuesFiles is a list of Helm value files to use when generating a template @@ -4001,16 +3150,8 @@ spec: type: array values: description: Values specifies Helm values to be passed - to helm template, typically defined as a block. - ValuesObject takes precedence over Values, so use - one or the other. + to helm template, typically defined as a block type: string - valuesObject: - description: ValuesObject specifies Helm values to - be passed to helm template, defined as a map. This - takes precedence over Values. - type: object - x-kubernetes-preserve-unknown-fields: true version: description: Version is the Helm version to use for templating ("3") @@ -4019,13 +3160,6 @@ spec: kustomize: description: Kustomize holds kustomize specific options properties: - apiVersions: - description: |- - APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default, - Argo CD uses the API versions of the target cluster. The format is [group/]version/kind. - items: - type: string - type: array commonAnnotations: additionalProperties: type: string @@ -4043,12 +3177,6 @@ spec: description: CommonLabels is a list of additional labels to add to rendered manifests type: object - components: - description: Components specifies a list of kustomize - components to add to the kustomization before building - items: - type: string - type: array forceCommonAnnotations: description: ForceCommonAnnotations specifies whether to force applying common annotations to resources @@ -4067,16 +3195,6 @@ spec: image definition in the format [old_image_name=]: type: string type: array - kubeVersion: - description: |- - KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD - uses the Kubernetes version of the target cluster. - type: string - labelWithoutSelector: - description: LabelWithoutSelector specifies whether - to apply common labels to resource selectors or - not - type: boolean namePrefix: description: NamePrefix is a prefix appended to resources for Kustomize apps @@ -4089,37 +3207,6 @@ spec: description: Namespace sets the namespace that Kustomize adds to all resources type: string - patches: - description: Patches is a list of Kustomize patches - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array replicas: description: Replicas is a list of Kustomize Replicas override specifications @@ -4144,10 +3231,6 @@ spec: to use for rendering manifests type: string type: object - name: - description: Name is used to refer to a source and is - displayed in the UI. It is used in multi-source Applications. - type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -4213,10 +3296,11 @@ spec: or Helm) that contains the application manifests type: string targetRevision: - description: |- - TargetRevision defines the revision of the source to sync the application to. - In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. - In case of Helm, this is a semver tag for the Chart's version. + description: TargetRevision defines the revision of the + source to sync the application to. In case of Git, this + can be commit, tag, or branch. If omitted, will equal + to HEAD. In case of Helm, this is a semver tag for the + Chart's version. type: string required: - repoURL @@ -4301,13 +3385,6 @@ spec: helm: description: Helm holds helm specific options properties: - apiVersions: - description: |- - APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default, - Argo CD uses the API versions of the target cluster. The format is [group/]version/kind. - items: - type: string - type: array fileParameters: description: FileParameters are file parameters to the helm template @@ -4332,16 +3409,6 @@ spec: locally by not appending them to helm template --values type: boolean - kubeVersion: - description: |- - KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD - uses the Kubernetes version of the target cluster. - type: string - namespace: - description: Namespace is an optional namespace - to template with. If left empty, defaults to the - app's destination namespace. - type: string parameters: description: Parameters is a list of Helm parameters which are passed to the helm template command @@ -4378,14 +3445,6 @@ spec: description: SkipCrds skips custom resource definition installation step (Helm's --skip-crds) type: boolean - skipSchemaValidation: - description: SkipSchemaValidation skips JSON schema - validation (Helm's --skip-schema-validation) - type: boolean - skipTests: - description: SkipTests skips test manifest installation - step (Helm's --skip-tests). - type: boolean valueFiles: description: ValuesFiles is a list of Helm value files to use when generating a template @@ -4395,15 +3454,8 @@ spec: values: description: Values specifies Helm values to be passed to helm template, typically defined as - a block. ValuesObject takes precedence over Values, - so use one or the other. + a block type: string - valuesObject: - description: ValuesObject specifies Helm values - to be passed to helm template, defined as a map. - This takes precedence over Values. - type: object - x-kubernetes-preserve-unknown-fields: true version: description: Version is the Helm version to use for templating ("3") @@ -4412,13 +3464,6 @@ spec: kustomize: description: Kustomize holds kustomize specific options properties: - apiVersions: - description: |- - APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default, - Argo CD uses the API versions of the target cluster. The format is [group/]version/kind. - items: - type: string - type: array commonAnnotations: additionalProperties: type: string @@ -4436,13 +3481,6 @@ spec: description: CommonLabels is a list of additional labels to add to rendered manifests type: object - components: - description: Components specifies a list of kustomize - components to add to the kustomization before - building - items: - type: string - type: array forceCommonAnnotations: description: ForceCommonAnnotations specifies whether to force applying common annotations to resources @@ -4461,16 +3499,6 @@ spec: image definition in the format [old_image_name=]: type: string type: array - kubeVersion: - description: |- - KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD - uses the Kubernetes version of the target cluster. - type: string - labelWithoutSelector: - description: LabelWithoutSelector specifies whether - to apply common labels to resource selectors or - not - type: boolean namePrefix: description: NamePrefix is a prefix appended to resources for Kustomize apps @@ -4483,37 +3511,6 @@ spec: description: Namespace sets the namespace that Kustomize adds to all resources type: string - patches: - description: Patches is a list of Kustomize patches - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array replicas: description: Replicas is a list of Kustomize Replicas override specifications @@ -4538,10 +3535,6 @@ spec: to use for rendering manifests type: string type: object - name: - description: Name is used to refer to a source and is - displayed in the UI. It is used in multi-source Applications. - type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced @@ -4608,10 +3601,11 @@ spec: or Helm) that contains the application manifests type: string targetRevision: - description: |- - TargetRevision defines the revision of the source to sync the application to. - In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. - In case of Helm, this is a semver tag for the Chart's version. + description: TargetRevision defines the revision of + the source to sync the application to. In case of + Git, this can be commit, tag, or branch. If omitted, + will equal to HEAD. In case of Helm, this is a semver + tag for the Chart's version. type: string required: - repoURL @@ -4638,9 +3632,8 @@ spec: description: Resources is a list of Kubernetes resources managed by this application items: - description: |- - ResourceStatus holds the current sync and health status of a resource - TODO: describe members of this type + description: 'ResourceStatus holds the current sync and health status + of a resource TODO: describe members of this type' properties: group: type: string @@ -4648,11 +3641,6 @@ spec: description: HealthStatus contains information about the currently observed health state of an application or resource properties: - lastTransitionTime: - description: LastTransitionTime is the time the HealthStatus - was set or updated - format: date-time - type: string message: description: Message is a human-readable informational message describing the health status @@ -4670,8 +3658,6 @@ spec: type: string namespace: type: string - requiresDeletionConfirmation: - type: boolean requiresPruning: type: boolean status: @@ -4685,177 +3671,6 @@ spec: type: string type: object type: array - sourceHydrator: - description: SourceHydrator stores information about the current state - of source hydration - properties: - currentOperation: - description: CurrentOperation holds the status of the hydrate - operation - properties: - drySHA: - description: DrySHA holds the resolved revision (sha) of the - dry source as of the most recent reconciliation - type: string - finishedAt: - description: FinishedAt indicates when the hydrate operation - finished - format: date-time - type: string - hydratedSHA: - description: HydratedSHA holds the resolved revision (sha) - of the hydrated source as of the most recent reconciliation - type: string - message: - description: Message contains a message describing the current - status of the hydrate operation - type: string - phase: - description: Phase indicates the status of the hydrate operation - enum: - - Hydrating - - Failed - - Hydrated - type: string - sourceHydrator: - description: SourceHydrator holds the hydrator config used - for the hydrate operation - properties: - drySource: - description: DrySource specifies where the dry "don't - repeat yourself" manifest source lives. - properties: - path: - description: Path is a directory path within the Git - repository where the manifests are located - type: string - repoURL: - description: RepoURL is the URL to the git repository - that contains the application manifests - type: string - targetRevision: - description: TargetRevision defines the revision of - the source to hydrate - type: string - required: - - path - - repoURL - - targetRevision - type: object - hydrateTo: - description: |- - HydrateTo specifies an optional "staging" location to push hydrated manifests to. An external system would then - have to move manifests to the SyncSource, e.g. by pull request. - properties: - targetBranch: - description: TargetBranch is the branch to which hydrated - manifests should be committed - type: string - required: - - targetBranch - type: object - syncSource: - description: SyncSource specifies where to sync hydrated - manifests from. - properties: - path: - description: |- - Path is a directory path within the git repository where hydrated manifests should be committed to and synced - from. If hydrateTo is set, this is just the path from which hydrated manifests will be synced. - type: string - targetBranch: - description: TargetBranch is the branch to which hydrated - manifests should be committed - type: string - required: - - path - - targetBranch - type: object - required: - - drySource - - syncSource - type: object - startedAt: - description: StartedAt indicates when the hydrate operation - started - format: date-time - type: string - required: - - message - - phase - type: object - lastSuccessfulOperation: - description: LastSuccessfulOperation holds info about the most - recent successful hydration - properties: - drySHA: - description: DrySHA holds the resolved revision (sha) of the - dry source as of the most recent reconciliation - type: string - hydratedSHA: - description: HydratedSHA holds the resolved revision (sha) - of the hydrated source as of the most recent reconciliation - type: string - sourceHydrator: - description: SourceHydrator holds the hydrator config used - for the hydrate operation - properties: - drySource: - description: DrySource specifies where the dry "don't - repeat yourself" manifest source lives. - properties: - path: - description: Path is a directory path within the Git - repository where the manifests are located - type: string - repoURL: - description: RepoURL is the URL to the git repository - that contains the application manifests - type: string - targetRevision: - description: TargetRevision defines the revision of - the source to hydrate - type: string - required: - - path - - repoURL - - targetRevision - type: object - hydrateTo: - description: |- - HydrateTo specifies an optional "staging" location to push hydrated manifests to. An external system would then - have to move manifests to the SyncSource, e.g. by pull request. - properties: - targetBranch: - description: TargetBranch is the branch to which hydrated - manifests should be committed - type: string - required: - - targetBranch - type: object - syncSource: - description: SyncSource specifies where to sync hydrated - manifests from. - properties: - path: - description: |- - Path is a directory path within the git repository where hydrated manifests should be committed to and synced - from. If hydrateTo is set, this is just the path from which hydrated manifests will be synced. - type: string - targetBranch: - description: TargetBranch is the branch to which hydrated - manifests should be committed - type: string - required: - - path - - targetBranch - type: object - required: - - drySource - - syncSource - type: object - type: object - type: object sourceType: description: SourceType specifies the type of this application type: string @@ -4897,55 +3712,19 @@ spec: properties: name: description: Name is an alternate way of specifying the - target cluster by its symbolic name. This must be set - if Server is not set. + target cluster by its symbolic name type: string namespace: - description: |- - Namespace specifies the target namespace for the application's resources. - The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace + description: Namespace specifies the target namespace + for the application's resources. The namespace will + only be set for namespace-scoped resources that have + not set a value for .metadata.namespace type: string server: - description: Server specifies the URL of the target cluster's - Kubernetes control plane API. This must be set if Name - is not set. + description: Server specifies the URL of the target cluster + and must be set to the Kubernetes control plane API type: string type: object - ignoreDifferences: - description: IgnoreDifferences is a reference to the application's - ignored differences used for comparison - items: - description: ResourceIgnoreDifferences contains resource - filter and list of json paths which should be ignored - during comparison with live state. - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - description: |- - ManagedFieldsManagers is a list of trusted managers. Fields mutated by those managers will take precedence over the - desired state defined in the SCM and won't be displayed in diffs - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array source: description: Source is a reference to the application's source used for comparison @@ -5020,13 +3799,6 @@ spec: helm: description: Helm holds helm specific options properties: - apiVersions: - description: |- - APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default, - Argo CD uses the API versions of the target cluster. The format is [group/]version/kind. - items: - type: string - type: array fileParameters: description: FileParameters are file parameters to the helm template @@ -5049,16 +3821,6 @@ spec: template from failing when valueFiles do not exist locally by not appending them to helm template --values type: boolean - kubeVersion: - description: |- - KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD - uses the Kubernetes version of the target cluster. - type: string - namespace: - description: Namespace is an optional namespace to - template with. If left empty, defaults to the app's - destination namespace. - type: string parameters: description: Parameters is a list of Helm parameters which are passed to the helm template command upon @@ -5093,14 +3855,6 @@ spec: description: SkipCrds skips custom resource definition installation step (Helm's --skip-crds) type: boolean - skipSchemaValidation: - description: SkipSchemaValidation skips JSON schema - validation (Helm's --skip-schema-validation) - type: boolean - skipTests: - description: SkipTests skips test manifest installation - step (Helm's --skip-tests). - type: boolean valueFiles: description: ValuesFiles is a list of Helm value files to use when generating a template @@ -5109,16 +3863,8 @@ spec: type: array values: description: Values specifies Helm values to be passed - to helm template, typically defined as a block. - ValuesObject takes precedence over Values, so use - one or the other. + to helm template, typically defined as a block type: string - valuesObject: - description: ValuesObject specifies Helm values to - be passed to helm template, defined as a map. This - takes precedence over Values. - type: object - x-kubernetes-preserve-unknown-fields: true version: description: Version is the Helm version to use for templating ("3") @@ -5127,13 +3873,6 @@ spec: kustomize: description: Kustomize holds kustomize specific options properties: - apiVersions: - description: |- - APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default, - Argo CD uses the API versions of the target cluster. The format is [group/]version/kind. - items: - type: string - type: array commonAnnotations: additionalProperties: type: string @@ -5151,12 +3890,6 @@ spec: description: CommonLabels is a list of additional labels to add to rendered manifests type: object - components: - description: Components specifies a list of kustomize - components to add to the kustomization before building - items: - type: string - type: array forceCommonAnnotations: description: ForceCommonAnnotations specifies whether to force applying common annotations to resources @@ -5175,16 +3908,6 @@ spec: image definition in the format [old_image_name=]: type: string type: array - kubeVersion: - description: |- - KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD - uses the Kubernetes version of the target cluster. - type: string - labelWithoutSelector: - description: LabelWithoutSelector specifies whether - to apply common labels to resource selectors or - not - type: boolean namePrefix: description: NamePrefix is a prefix appended to resources for Kustomize apps @@ -5197,37 +3920,6 @@ spec: description: Namespace sets the namespace that Kustomize adds to all resources type: string - patches: - description: Patches is a list of Kustomize patches - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array replicas: description: Replicas is a list of Kustomize Replicas override specifications @@ -5252,10 +3944,6 @@ spec: to use for rendering manifests type: string type: object - name: - description: Name is used to refer to a source and is - displayed in the UI. It is used in multi-source Applications. - type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -5321,10 +4009,11 @@ spec: or Helm) that contains the application manifests type: string targetRevision: - description: |- - TargetRevision defines the revision of the source to sync the application to. - In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. - In case of Helm, this is a semver tag for the Chart's version. + description: TargetRevision defines the revision of the + source to sync the application to. In case of Git, this + can be commit, tag, or branch. If omitted, will equal + to HEAD. In case of Helm, this is a semver tag for the + Chart's version. type: string required: - repoURL @@ -5409,13 +4098,6 @@ spec: helm: description: Helm holds helm specific options properties: - apiVersions: - description: |- - APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default, - Argo CD uses the API versions of the target cluster. The format is [group/]version/kind. - items: - type: string - type: array fileParameters: description: FileParameters are file parameters to the helm template @@ -5440,16 +4122,6 @@ spec: locally by not appending them to helm template --values type: boolean - kubeVersion: - description: |- - KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD - uses the Kubernetes version of the target cluster. - type: string - namespace: - description: Namespace is an optional namespace - to template with. If left empty, defaults to the - app's destination namespace. - type: string parameters: description: Parameters is a list of Helm parameters which are passed to the helm template command @@ -5486,14 +4158,6 @@ spec: description: SkipCrds skips custom resource definition installation step (Helm's --skip-crds) type: boolean - skipSchemaValidation: - description: SkipSchemaValidation skips JSON schema - validation (Helm's --skip-schema-validation) - type: boolean - skipTests: - description: SkipTests skips test manifest installation - step (Helm's --skip-tests). - type: boolean valueFiles: description: ValuesFiles is a list of Helm value files to use when generating a template @@ -5503,15 +4167,8 @@ spec: values: description: Values specifies Helm values to be passed to helm template, typically defined as - a block. ValuesObject takes precedence over Values, - so use one or the other. + a block type: string - valuesObject: - description: ValuesObject specifies Helm values - to be passed to helm template, defined as a map. - This takes precedence over Values. - type: object - x-kubernetes-preserve-unknown-fields: true version: description: Version is the Helm version to use for templating ("3") @@ -5520,13 +4177,6 @@ spec: kustomize: description: Kustomize holds kustomize specific options properties: - apiVersions: - description: |- - APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default, - Argo CD uses the API versions of the target cluster. The format is [group/]version/kind. - items: - type: string - type: array commonAnnotations: additionalProperties: type: string @@ -5544,13 +4194,6 @@ spec: description: CommonLabels is a list of additional labels to add to rendered manifests type: object - components: - description: Components specifies a list of kustomize - components to add to the kustomization before - building - items: - type: string - type: array forceCommonAnnotations: description: ForceCommonAnnotations specifies whether to force applying common annotations to resources @@ -5569,16 +4212,6 @@ spec: image definition in the format [old_image_name=]: type: string type: array - kubeVersion: - description: |- - KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD - uses the Kubernetes version of the target cluster. - type: string - labelWithoutSelector: - description: LabelWithoutSelector specifies whether - to apply common labels to resource selectors or - not - type: boolean namePrefix: description: NamePrefix is a prefix appended to resources for Kustomize apps @@ -5591,37 +4224,6 @@ spec: description: Namespace sets the namespace that Kustomize adds to all resources type: string - patches: - description: Patches is a list of Kustomize patches - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array replicas: description: Replicas is a list of Kustomize Replicas override specifications @@ -5646,10 +4248,6 @@ spec: to use for rendering manifests type: string type: object - name: - description: Name is used to refer to a source and is - displayed in the UI. It is used in multi-source Applications. - type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced @@ -5716,10 +4314,11 @@ spec: or Helm) that contains the application manifests type: string targetRevision: - description: |- - TargetRevision defines the revision of the source to sync the application to. - In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. - In case of Helm, this is a semver tag for the Chart's version. + description: TargetRevision defines the revision of + the source to sync the application to. In case of + Git, this can be commit, tag, or branch. If omitted, + will equal to HEAD. In case of Helm, this is a semver + tag for the Chart's version. type: string required: - repoURL @@ -5753,4 +4352,3 @@ spec: storage: true subresources: {} {{- end }} - diff --git a/charts/argo-cd/templates/crds/crd-applicationset.yaml b/charts/argo-cd/templates/crds/crd-applicationset.yaml index eff945f8..f9bfde6c 100644 --- a/charts/argo-cd/templates/crds/crd-applicationset.yaml +++ b/charts/argo-cd/templates/crds/crd-applicationset.yaml @@ -1,4 +1,4 @@ -{{- if .Values.crds.install }} +{{- if and .Values.crds.install .Values.applicationSet.enabled }} apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: @@ -12,9 +12,6 @@ metadata: labels: app.kubernetes.io/name: applicationsets.argoproj.io app.kubernetes.io/part-of: argocd - {{- with .Values.crds.additionalLabels }} - {{- toYaml . | nindent 4}} - {{- end }} name: applicationsets.argoproj.io spec: group: argoproj.io @@ -40,8 +37,6 @@ spec: type: object spec: properties: - applyNestedSelectors: - type: boolean generators: items: properties: @@ -62,19 +57,16 @@ spec: items: type: string type: array - x-kubernetes-list-type: atomic required: - key - operator type: object type: array - x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string type: object type: object - x-kubernetes-map-type: atomic name: type: string requeueAfterSeconds: @@ -206,10 +198,6 @@ spec: type: object helm: properties: - apiVersions: - items: - type: string - type: array fileParameters: items: properties: @@ -221,10 +209,6 @@ spec: type: array ignoreMissingValueFiles: type: boolean - kubeVersion: - type: string - namespace: - type: string parameters: items: properties: @@ -242,28 +226,17 @@ spec: type: string skipCrds: type: boolean - skipSchemaValidation: - type: boolean - skipTests: - type: boolean valueFiles: items: type: string type: array values: type: string - valuesObject: - type: object - x-kubernetes-preserve-unknown-fields: true version: type: string type: object kustomize: properties: - apiVersions: - items: - type: string - type: array commonAnnotations: additionalProperties: type: string @@ -274,10 +247,6 @@ spec: additionalProperties: type: string type: object - components: - items: - type: string - type: array forceCommonAnnotations: type: boolean forceCommonLabels: @@ -286,46 +255,12 @@ spec: items: type: string type: array - kubeVersion: - type: string - labelWithoutSelector: - type: boolean namePrefix: type: string nameSuffix: type: string namespace: type: string - patches: - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array replicas: items: properties: @@ -344,8 +279,6 @@ spec: version: type: string type: object - name: - type: string path: type: string plugin: @@ -391,42 +324,6 @@ spec: required: - repoURL type: object - sourceHydrator: - properties: - drySource: - properties: - path: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - path - - repoURL - - targetRevision - type: object - hydrateTo: - properties: - targetBranch: - type: string - required: - - targetBranch - type: object - syncSource: - properties: - path: - type: string - targetBranch: - type: string - required: - - path - - targetBranch - type: object - required: - - drySource - - syncSource - type: object sources: items: properties: @@ -478,10 +375,6 @@ spec: type: object helm: properties: - apiVersions: - items: - type: string - type: array fileParameters: items: properties: @@ -493,10 +386,6 @@ spec: type: array ignoreMissingValueFiles: type: boolean - kubeVersion: - type: string - namespace: - type: string parameters: items: properties: @@ -514,28 +403,17 @@ spec: type: string skipCrds: type: boolean - skipSchemaValidation: - type: boolean - skipTests: - type: boolean valueFiles: items: type: string type: array values: type: string - valuesObject: - type: object - x-kubernetes-preserve-unknown-fields: true version: type: string type: object kustomize: properties: - apiVersions: - items: - type: string - type: array commonAnnotations: additionalProperties: type: string @@ -546,10 +424,6 @@ spec: additionalProperties: type: string type: object - components: - items: - type: string - type: array forceCommonAnnotations: type: boolean forceCommonLabels: @@ -558,46 +432,12 @@ spec: items: type: string type: array - kubeVersion: - type: string - labelWithoutSelector: - type: boolean namePrefix: type: string nameSuffix: type: string namespace: type: string - patches: - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array replicas: items: properties: @@ -616,8 +456,6 @@ spec: version: type: string type: object - name: - type: string path: type: string plugin: @@ -724,8 +562,6 @@ spec: type: object clusters: properties: - flatList: - type: boolean selector: properties: matchExpressions: @@ -739,19 +575,16 @@ spec: items: type: string type: array - x-kubernetes-list-type: atomic required: - key - operator type: object type: array - x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string type: object type: object - x-kubernetes-map-type: atomic template: properties: metadata: @@ -878,10 +711,6 @@ spec: type: object helm: properties: - apiVersions: - items: - type: string - type: array fileParameters: items: properties: @@ -893,10 +722,6 @@ spec: type: array ignoreMissingValueFiles: type: boolean - kubeVersion: - type: string - namespace: - type: string parameters: items: properties: @@ -914,28 +739,17 @@ spec: type: string skipCrds: type: boolean - skipSchemaValidation: - type: boolean - skipTests: - type: boolean valueFiles: items: type: string type: array values: type: string - valuesObject: - type: object - x-kubernetes-preserve-unknown-fields: true version: type: string type: object kustomize: properties: - apiVersions: - items: - type: string - type: array commonAnnotations: additionalProperties: type: string @@ -946,10 +760,6 @@ spec: additionalProperties: type: string type: object - components: - items: - type: string - type: array forceCommonAnnotations: type: boolean forceCommonLabels: @@ -958,46 +768,12 @@ spec: items: type: string type: array - kubeVersion: - type: string - labelWithoutSelector: - type: boolean namePrefix: type: string nameSuffix: type: string namespace: type: string - patches: - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array replicas: items: properties: @@ -1016,8 +792,6 @@ spec: version: type: string type: object - name: - type: string path: type: string plugin: @@ -1063,42 +837,6 @@ spec: required: - repoURL type: object - sourceHydrator: - properties: - drySource: - properties: - path: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - path - - repoURL - - targetRevision - type: object - hydrateTo: - properties: - targetBranch: - type: string - required: - - targetBranch - type: object - syncSource: - properties: - path: - type: string - targetBranch: - type: string - required: - - path - - targetBranch - type: object - required: - - drySource - - syncSource - type: object sources: items: properties: @@ -1150,10 +888,6 @@ spec: type: object helm: properties: - apiVersions: - items: - type: string - type: array fileParameters: items: properties: @@ -1165,10 +899,6 @@ spec: type: array ignoreMissingValueFiles: type: boolean - kubeVersion: - type: string - namespace: - type: string parameters: items: properties: @@ -1186,28 +916,17 @@ spec: type: string skipCrds: type: boolean - skipSchemaValidation: - type: boolean - skipTests: - type: boolean valueFiles: items: type: string type: array values: type: string - valuesObject: - type: object - x-kubernetes-preserve-unknown-fields: true version: type: string type: object kustomize: properties: - apiVersions: - items: - type: string - type: array commonAnnotations: additionalProperties: type: string @@ -1218,10 +937,6 @@ spec: additionalProperties: type: string type: object - components: - items: - type: string - type: array forceCommonAnnotations: type: boolean forceCommonLabels: @@ -1230,46 +945,12 @@ spec: items: type: string type: array - kubeVersion: - type: string - labelWithoutSelector: - type: boolean namePrefix: type: string nameSuffix: type: string namespace: type: string - patches: - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array replicas: items: properties: @@ -1288,8 +969,6 @@ spec: version: type: string type: object - name: - type: string path: type: string plugin: @@ -1549,10 +1228,6 @@ spec: type: object helm: properties: - apiVersions: - items: - type: string - type: array fileParameters: items: properties: @@ -1564,10 +1239,6 @@ spec: type: array ignoreMissingValueFiles: type: boolean - kubeVersion: - type: string - namespace: - type: string parameters: items: properties: @@ -1585,28 +1256,17 @@ spec: type: string skipCrds: type: boolean - skipSchemaValidation: - type: boolean - skipTests: - type: boolean valueFiles: items: type: string type: array values: type: string - valuesObject: - type: object - x-kubernetes-preserve-unknown-fields: true version: type: string type: object kustomize: properties: - apiVersions: - items: - type: string - type: array commonAnnotations: additionalProperties: type: string @@ -1617,10 +1277,6 @@ spec: additionalProperties: type: string type: object - components: - items: - type: string - type: array forceCommonAnnotations: type: boolean forceCommonLabels: @@ -1629,46 +1285,12 @@ spec: items: type: string type: array - kubeVersion: - type: string - labelWithoutSelector: - type: boolean namePrefix: type: string nameSuffix: type: string namespace: type: string - patches: - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array replicas: items: properties: @@ -1687,8 +1309,6 @@ spec: version: type: string type: object - name: - type: string path: type: string plugin: @@ -1734,42 +1354,6 @@ spec: required: - repoURL type: object - sourceHydrator: - properties: - drySource: - properties: - path: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - path - - repoURL - - targetRevision - type: object - hydrateTo: - properties: - targetBranch: - type: string - required: - - targetBranch - type: object - syncSource: - properties: - path: - type: string - targetBranch: - type: string - required: - - path - - targetBranch - type: object - required: - - drySource - - syncSource - type: object sources: items: properties: @@ -1821,10 +1405,6 @@ spec: type: object helm: properties: - apiVersions: - items: - type: string - type: array fileParameters: items: properties: @@ -1836,10 +1416,6 @@ spec: type: array ignoreMissingValueFiles: type: boolean - kubeVersion: - type: string - namespace: - type: string parameters: items: properties: @@ -1857,28 +1433,17 @@ spec: type: string skipCrds: type: boolean - skipSchemaValidation: - type: boolean - skipTests: - type: boolean valueFiles: items: type: string type: array values: type: string - valuesObject: - type: object - x-kubernetes-preserve-unknown-fields: true version: type: string type: object kustomize: properties: - apiVersions: - items: - type: string - type: array commonAnnotations: additionalProperties: type: string @@ -1889,10 +1454,6 @@ spec: additionalProperties: type: string type: object - components: - items: - type: string - type: array forceCommonAnnotations: type: boolean forceCommonLabels: @@ -1901,46 +1462,12 @@ spec: items: type: string type: array - kubeVersion: - type: string - labelWithoutSelector: - type: boolean namePrefix: type: string nameSuffix: type: string namespace: type: string - patches: - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array replicas: items: properties: @@ -1959,8 +1486,6 @@ spec: version: type: string type: object - name: - type: string path: type: string plugin: @@ -2058,10 +1583,6 @@ spec: - metadata - spec type: object - values: - additionalProperties: - type: string - type: object required: - repoURL - revision @@ -2200,10 +1721,6 @@ spec: type: object helm: properties: - apiVersions: - items: - type: string - type: array fileParameters: items: properties: @@ -2215,10 +1732,6 @@ spec: type: array ignoreMissingValueFiles: type: boolean - kubeVersion: - type: string - namespace: - type: string parameters: items: properties: @@ -2236,28 +1749,17 @@ spec: type: string skipCrds: type: boolean - skipSchemaValidation: - type: boolean - skipTests: - type: boolean valueFiles: items: type: string type: array values: type: string - valuesObject: - type: object - x-kubernetes-preserve-unknown-fields: true version: type: string type: object kustomize: properties: - apiVersions: - items: - type: string - type: array commonAnnotations: additionalProperties: type: string @@ -2268,10 +1770,6 @@ spec: additionalProperties: type: string type: object - components: - items: - type: string - type: array forceCommonAnnotations: type: boolean forceCommonLabels: @@ -2280,46 +1778,12 @@ spec: items: type: string type: array - kubeVersion: - type: string - labelWithoutSelector: - type: boolean namePrefix: type: string nameSuffix: type: string namespace: type: string - patches: - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array replicas: items: properties: @@ -2338,8 +1802,6 @@ spec: version: type: string type: object - name: - type: string path: type: string plugin: @@ -2385,42 +1847,6 @@ spec: required: - repoURL type: object - sourceHydrator: - properties: - drySource: - properties: - path: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - path - - repoURL - - targetRevision - type: object - hydrateTo: - properties: - targetBranch: - type: string - required: - - targetBranch - type: object - syncSource: - properties: - path: - type: string - targetBranch: - type: string - required: - - path - - targetBranch - type: object - required: - - drySource - - syncSource - type: object sources: items: properties: @@ -2472,10 +1898,6 @@ spec: type: object helm: properties: - apiVersions: - items: - type: string - type: array fileParameters: items: properties: @@ -2487,10 +1909,6 @@ spec: type: array ignoreMissingValueFiles: type: boolean - kubeVersion: - type: string - namespace: - type: string parameters: items: properties: @@ -2508,28 +1926,17 @@ spec: type: string skipCrds: type: boolean - skipSchemaValidation: - type: boolean - skipTests: - type: boolean valueFiles: items: type: string type: array values: type: string - valuesObject: - type: object - x-kubernetes-preserve-unknown-fields: true version: type: string type: object kustomize: properties: - apiVersions: - items: - type: string - type: array commonAnnotations: additionalProperties: type: string @@ -2540,10 +1947,6 @@ spec: additionalProperties: type: string type: object - components: - items: - type: string - type: array forceCommonAnnotations: type: boolean forceCommonLabels: @@ -2552,46 +1955,12 @@ spec: items: type: string type: array - kubeVersion: - type: string - labelWithoutSelector: - type: boolean namePrefix: type: string nameSuffix: type: string namespace: type: string - patches: - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array replicas: items: properties: @@ -2610,8 +1979,6 @@ spec: version: type: string type: object - name: - type: string path: type: string plugin: @@ -2709,6 +2076,8 @@ spec: - metadata - spec type: object + required: + - elements type: object matrix: properties: @@ -2732,19 +2101,16 @@ spec: items: type: string type: array - x-kubernetes-list-type: atomic required: - key - operator type: object type: array - x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string type: object type: object - x-kubernetes-map-type: atomic name: type: string requeueAfterSeconds: @@ -2876,10 +2242,6 @@ spec: type: object helm: properties: - apiVersions: - items: - type: string - type: array fileParameters: items: properties: @@ -2891,10 +2253,6 @@ spec: type: array ignoreMissingValueFiles: type: boolean - kubeVersion: - type: string - namespace: - type: string parameters: items: properties: @@ -2912,28 +2270,17 @@ spec: type: string skipCrds: type: boolean - skipSchemaValidation: - type: boolean - skipTests: - type: boolean valueFiles: items: type: string type: array values: type: string - valuesObject: - type: object - x-kubernetes-preserve-unknown-fields: true version: type: string type: object kustomize: properties: - apiVersions: - items: - type: string - type: array commonAnnotations: additionalProperties: type: string @@ -2944,10 +2291,6 @@ spec: additionalProperties: type: string type: object - components: - items: - type: string - type: array forceCommonAnnotations: type: boolean forceCommonLabels: @@ -2956,46 +2299,12 @@ spec: items: type: string type: array - kubeVersion: - type: string - labelWithoutSelector: - type: boolean namePrefix: type: string nameSuffix: type: string namespace: type: string - patches: - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array replicas: items: properties: @@ -3014,8 +2323,6 @@ spec: version: type: string type: object - name: - type: string path: type: string plugin: @@ -3061,42 +2368,6 @@ spec: required: - repoURL type: object - sourceHydrator: - properties: - drySource: - properties: - path: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - path - - repoURL - - targetRevision - type: object - hydrateTo: - properties: - targetBranch: - type: string - required: - - targetBranch - type: object - syncSource: - properties: - path: - type: string - targetBranch: - type: string - required: - - path - - targetBranch - type: object - required: - - drySource - - syncSource - type: object sources: items: properties: @@ -3148,10 +2419,6 @@ spec: type: object helm: properties: - apiVersions: - items: - type: string - type: array fileParameters: items: properties: @@ -3163,10 +2430,6 @@ spec: type: array ignoreMissingValueFiles: type: boolean - kubeVersion: - type: string - namespace: - type: string parameters: items: properties: @@ -3184,28 +2447,17 @@ spec: type: string skipCrds: type: boolean - skipSchemaValidation: - type: boolean - skipTests: - type: boolean valueFiles: items: type: string type: array values: type: string - valuesObject: - type: object - x-kubernetes-preserve-unknown-fields: true version: type: string type: object kustomize: properties: - apiVersions: - items: - type: string - type: array commonAnnotations: additionalProperties: type: string @@ -3216,10 +2468,6 @@ spec: additionalProperties: type: string type: object - components: - items: - type: string - type: array forceCommonAnnotations: type: boolean forceCommonLabels: @@ -3228,46 +2476,12 @@ spec: items: type: string type: array - kubeVersion: - type: string - labelWithoutSelector: - type: boolean namePrefix: type: string nameSuffix: type: string namespace: type: string - patches: - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array replicas: items: properties: @@ -3286,8 +2500,6 @@ spec: version: type: string type: object - name: - type: string path: type: string plugin: @@ -3394,8 +2606,6 @@ spec: type: object clusters: properties: - flatList: - type: boolean selector: properties: matchExpressions: @@ -3409,19 +2619,16 @@ spec: items: type: string type: array - x-kubernetes-list-type: atomic required: - key - operator type: object type: array - x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string type: object type: object - x-kubernetes-map-type: atomic template: properties: metadata: @@ -3548,10 +2755,6 @@ spec: type: object helm: properties: - apiVersions: - items: - type: string - type: array fileParameters: items: properties: @@ -3563,10 +2766,6 @@ spec: type: array ignoreMissingValueFiles: type: boolean - kubeVersion: - type: string - namespace: - type: string parameters: items: properties: @@ -3584,28 +2783,17 @@ spec: type: string skipCrds: type: boolean - skipSchemaValidation: - type: boolean - skipTests: - type: boolean valueFiles: items: type: string type: array values: type: string - valuesObject: - type: object - x-kubernetes-preserve-unknown-fields: true version: type: string type: object kustomize: properties: - apiVersions: - items: - type: string - type: array commonAnnotations: additionalProperties: type: string @@ -3616,10 +2804,6 @@ spec: additionalProperties: type: string type: object - components: - items: - type: string - type: array forceCommonAnnotations: type: boolean forceCommonLabels: @@ -3628,46 +2812,12 @@ spec: items: type: string type: array - kubeVersion: - type: string - labelWithoutSelector: - type: boolean namePrefix: type: string nameSuffix: type: string namespace: type: string - patches: - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array replicas: items: properties: @@ -3686,8 +2836,6 @@ spec: version: type: string type: object - name: - type: string path: type: string plugin: @@ -3733,42 +2881,6 @@ spec: required: - repoURL type: object - sourceHydrator: - properties: - drySource: - properties: - path: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - path - - repoURL - - targetRevision - type: object - hydrateTo: - properties: - targetBranch: - type: string - required: - - targetBranch - type: object - syncSource: - properties: - path: - type: string - targetBranch: - type: string - required: - - path - - targetBranch - type: object - required: - - drySource - - syncSource - type: object sources: items: properties: @@ -3820,10 +2932,6 @@ spec: type: object helm: properties: - apiVersions: - items: - type: string - type: array fileParameters: items: properties: @@ -3835,10 +2943,6 @@ spec: type: array ignoreMissingValueFiles: type: boolean - kubeVersion: - type: string - namespace: - type: string parameters: items: properties: @@ -3856,28 +2960,17 @@ spec: type: string skipCrds: type: boolean - skipSchemaValidation: - type: boolean - skipTests: - type: boolean valueFiles: items: type: string type: array values: type: string - valuesObject: - type: object - x-kubernetes-preserve-unknown-fields: true version: type: string type: object kustomize: properties: - apiVersions: - items: - type: string - type: array commonAnnotations: additionalProperties: type: string @@ -3888,10 +2981,6 @@ spec: additionalProperties: type: string type: object - components: - items: - type: string - type: array forceCommonAnnotations: type: boolean forceCommonLabels: @@ -3900,46 +2989,12 @@ spec: items: type: string type: array - kubeVersion: - type: string - labelWithoutSelector: - type: boolean namePrefix: type: string nameSuffix: type: string namespace: type: string - patches: - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array replicas: items: properties: @@ -3958,8 +3013,6 @@ spec: version: type: string type: object - name: - type: string path: type: string plugin: @@ -4219,10 +3272,6 @@ spec: type: object helm: properties: - apiVersions: - items: - type: string - type: array fileParameters: items: properties: @@ -4234,10 +3283,6 @@ spec: type: array ignoreMissingValueFiles: type: boolean - kubeVersion: - type: string - namespace: - type: string parameters: items: properties: @@ -4255,28 +3300,17 @@ spec: type: string skipCrds: type: boolean - skipSchemaValidation: - type: boolean - skipTests: - type: boolean valueFiles: items: type: string type: array values: type: string - valuesObject: - type: object - x-kubernetes-preserve-unknown-fields: true version: type: string type: object kustomize: properties: - apiVersions: - items: - type: string - type: array commonAnnotations: additionalProperties: type: string @@ -4287,10 +3321,6 @@ spec: additionalProperties: type: string type: object - components: - items: - type: string - type: array forceCommonAnnotations: type: boolean forceCommonLabels: @@ -4299,46 +3329,12 @@ spec: items: type: string type: array - kubeVersion: - type: string - labelWithoutSelector: - type: boolean namePrefix: type: string nameSuffix: type: string namespace: type: string - patches: - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array replicas: items: properties: @@ -4357,8 +3353,6 @@ spec: version: type: string type: object - name: - type: string path: type: string plugin: @@ -4404,42 +3398,6 @@ spec: required: - repoURL type: object - sourceHydrator: - properties: - drySource: - properties: - path: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - path - - repoURL - - targetRevision - type: object - hydrateTo: - properties: - targetBranch: - type: string - required: - - targetBranch - type: object - syncSource: - properties: - path: - type: string - targetBranch: - type: string - required: - - path - - targetBranch - type: object - required: - - drySource - - syncSource - type: object sources: items: properties: @@ -4491,10 +3449,6 @@ spec: type: object helm: properties: - apiVersions: - items: - type: string - type: array fileParameters: items: properties: @@ -4506,10 +3460,6 @@ spec: type: array ignoreMissingValueFiles: type: boolean - kubeVersion: - type: string - namespace: - type: string parameters: items: properties: @@ -4527,28 +3477,17 @@ spec: type: string skipCrds: type: boolean - skipSchemaValidation: - type: boolean - skipTests: - type: boolean valueFiles: items: type: string type: array values: type: string - valuesObject: - type: object - x-kubernetes-preserve-unknown-fields: true version: type: string type: object kustomize: properties: - apiVersions: - items: - type: string - type: array commonAnnotations: additionalProperties: type: string @@ -4559,10 +3498,6 @@ spec: additionalProperties: type: string type: object - components: - items: - type: string - type: array forceCommonAnnotations: type: boolean forceCommonLabels: @@ -4571,46 +3506,12 @@ spec: items: type: string type: array - kubeVersion: - type: string - labelWithoutSelector: - type: boolean namePrefix: type: string nameSuffix: type: string namespace: type: string - patches: - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array replicas: items: properties: @@ -4629,8 +3530,6 @@ spec: version: type: string type: object - name: - type: string path: type: string plugin: @@ -4728,10 +3627,6 @@ spec: - metadata - spec type: object - values: - additionalProperties: - type: string - type: object required: - repoURL - revision @@ -4870,10 +3765,6 @@ spec: type: object helm: properties: - apiVersions: - items: - type: string - type: array fileParameters: items: properties: @@ -4885,10 +3776,6 @@ spec: type: array ignoreMissingValueFiles: type: boolean - kubeVersion: - type: string - namespace: - type: string parameters: items: properties: @@ -4906,28 +3793,17 @@ spec: type: string skipCrds: type: boolean - skipSchemaValidation: - type: boolean - skipTests: - type: boolean valueFiles: items: type: string type: array values: type: string - valuesObject: - type: object - x-kubernetes-preserve-unknown-fields: true version: type: string type: object kustomize: properties: - apiVersions: - items: - type: string - type: array commonAnnotations: additionalProperties: type: string @@ -4938,10 +3814,6 @@ spec: additionalProperties: type: string type: object - components: - items: - type: string - type: array forceCommonAnnotations: type: boolean forceCommonLabels: @@ -4950,46 +3822,12 @@ spec: items: type: string type: array - kubeVersion: - type: string - labelWithoutSelector: - type: boolean namePrefix: type: string nameSuffix: type: string namespace: type: string - patches: - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array replicas: items: properties: @@ -5008,8 +3846,6 @@ spec: version: type: string type: object - name: - type: string path: type: string plugin: @@ -5055,42 +3891,6 @@ spec: required: - repoURL type: object - sourceHydrator: - properties: - drySource: - properties: - path: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - path - - repoURL - - targetRevision - type: object - hydrateTo: - properties: - targetBranch: - type: string - required: - - targetBranch - type: object - syncSource: - properties: - path: - type: string - targetBranch: - type: string - required: - - path - - targetBranch - type: object - required: - - drySource - - syncSource - type: object sources: items: properties: @@ -5142,10 +3942,6 @@ spec: type: object helm: properties: - apiVersions: - items: - type: string - type: array fileParameters: items: properties: @@ -5157,10 +3953,6 @@ spec: type: array ignoreMissingValueFiles: type: boolean - kubeVersion: - type: string - namespace: - type: string parameters: items: properties: @@ -5178,28 +3970,17 @@ spec: type: string skipCrds: type: boolean - skipSchemaValidation: - type: boolean - skipTests: - type: boolean valueFiles: items: type: string type: array values: type: string - valuesObject: - type: object - x-kubernetes-preserve-unknown-fields: true version: type: string type: object kustomize: properties: - apiVersions: - items: - type: string - type: array commonAnnotations: additionalProperties: type: string @@ -5210,10 +3991,6 @@ spec: additionalProperties: type: string type: object - components: - items: - type: string - type: array forceCommonAnnotations: type: boolean forceCommonLabels: @@ -5222,46 +3999,12 @@ spec: items: type: string type: array - kubeVersion: - type: string - labelWithoutSelector: - type: boolean namePrefix: type: string nameSuffix: type: string namespace: type: string - patches: - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array replicas: items: properties: @@ -5280,8 +4023,6 @@ spec: version: type: string type: object - name: - type: string path: type: string plugin: @@ -5379,748 +4120,15 @@ spec: - metadata - spec type: object + required: + - elements type: object matrix: x-kubernetes-preserve-unknown-fields: true merge: x-kubernetes-preserve-unknown-fields: true - plugin: - properties: - configMapRef: - properties: - name: - type: string - required: - - name - type: object - input: - properties: - parameters: - additionalProperties: - x-kubernetes-preserve-unknown-fields: true - type: object - type: object - requeueAfterSeconds: - format: int64 - type: integer - template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - apiVersions: - items: - type: string - type: array - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - kubeVersion: - type: string - namespace: - type: string - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - skipSchemaValidation: - type: boolean - skipTests: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - valuesObject: - type: object - x-kubernetes-preserve-unknown-fields: true - version: - type: string - type: object - kustomize: - properties: - apiVersions: - items: - type: string - type: array - commonAnnotations: - additionalProperties: - type: string - type: object - commonAnnotationsEnvsubst: - type: boolean - commonLabels: - additionalProperties: - type: string - type: object - components: - items: - type: string - type: array - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - kubeVersion: - type: string - labelWithoutSelector: - type: boolean - namePrefix: - type: string - nameSuffix: - type: string - namespace: - type: string - patches: - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array - replicas: - items: - properties: - count: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - name: - type: string - required: - - count - - name - type: object - type: array - version: - type: string - type: object - name: - type: string - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sourceHydrator: - properties: - drySource: - properties: - path: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - path - - repoURL - - targetRevision - type: object - hydrateTo: - properties: - targetBranch: - type: string - required: - - targetBranch - type: object - syncSource: - properties: - path: - type: string - targetBranch: - type: string - required: - - path - - targetBranch - type: object - required: - - drySource - - syncSource - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - apiVersions: - items: - type: string - type: array - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - kubeVersion: - type: string - namespace: - type: string - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - skipSchemaValidation: - type: boolean - skipTests: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - valuesObject: - type: object - x-kubernetes-preserve-unknown-fields: true - version: - type: string - type: object - kustomize: - properties: - apiVersions: - items: - type: string - type: array - commonAnnotations: - additionalProperties: - type: string - type: object - commonAnnotationsEnvsubst: - type: boolean - commonLabels: - additionalProperties: - type: string - type: object - components: - items: - type: string - type: array - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - kubeVersion: - type: string - labelWithoutSelector: - type: boolean - namePrefix: - type: string - nameSuffix: - type: string - namespace: - type: string - patches: - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array - replicas: - items: - properties: - count: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - name: - type: string - required: - - count - - name - type: object - type: array - version: - type: string - type: object - name: - type: string - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object - values: - additionalProperties: - type: string - type: object - required: - - configMapRef - type: object pullRequest: properties: - azuredevops: - properties: - api: - type: string - labels: - items: - type: string - type: array - organization: - type: string - project: - type: string - repo: - type: string - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - organization - - project - - repo - type: object - bitbucket: - properties: - api: - type: string - basicAuth: - properties: - passwordRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - username: - type: string - required: - - passwordRef - - username - type: object - bearerToken: - properties: - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - tokenRef - type: object - owner: - type: string - repo: - type: string - required: - - owner - - repo - type: object bitbucketServer: properties: api: @@ -6143,33 +4151,6 @@ spec: - passwordRef - username type: object - bearerToken: - properties: - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - tokenRef - type: object - caRef: - properties: - configMapName: - type: string - key: - type: string - required: - - configMapName - - key - type: object - insecure: - type: boolean project: type: string repo: @@ -6184,8 +4165,6 @@ spec: properties: branchMatch: type: string - targetBranchMatch: - type: string type: object type: array gitea: @@ -6245,18 +4224,6 @@ spec: properties: api: type: string - caRef: - properties: - configMapName: - type: string - key: - type: string - required: - - configMapName - - key - type: object - insecure: - type: boolean labels: items: type: string @@ -6407,10 +4374,6 @@ spec: type: object helm: properties: - apiVersions: - items: - type: string - type: array fileParameters: items: properties: @@ -6422,10 +4385,6 @@ spec: type: array ignoreMissingValueFiles: type: boolean - kubeVersion: - type: string - namespace: - type: string parameters: items: properties: @@ -6443,28 +4402,17 @@ spec: type: string skipCrds: type: boolean - skipSchemaValidation: - type: boolean - skipTests: - type: boolean valueFiles: items: type: string type: array values: type: string - valuesObject: - type: object - x-kubernetes-preserve-unknown-fields: true version: type: string type: object kustomize: properties: - apiVersions: - items: - type: string - type: array commonAnnotations: additionalProperties: type: string @@ -6475,10 +4423,6 @@ spec: additionalProperties: type: string type: object - components: - items: - type: string - type: array forceCommonAnnotations: type: boolean forceCommonLabels: @@ -6487,46 +4431,12 @@ spec: items: type: string type: array - kubeVersion: - type: string - labelWithoutSelector: - type: boolean namePrefix: type: string nameSuffix: type: string namespace: type: string - patches: - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array replicas: items: properties: @@ -6545,8 +4455,6 @@ spec: version: type: string type: object - name: - type: string path: type: string plugin: @@ -6592,42 +4500,6 @@ spec: required: - repoURL type: object - sourceHydrator: - properties: - drySource: - properties: - path: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - path - - repoURL - - targetRevision - type: object - hydrateTo: - properties: - targetBranch: - type: string - required: - - targetBranch - type: object - syncSource: - properties: - path: - type: string - targetBranch: - type: string - required: - - path - - targetBranch - type: object - required: - - drySource - - syncSource - type: object sources: items: properties: @@ -6679,10 +4551,6 @@ spec: type: object helm: properties: - apiVersions: - items: - type: string - type: array fileParameters: items: properties: @@ -6694,10 +4562,6 @@ spec: type: array ignoreMissingValueFiles: type: boolean - kubeVersion: - type: string - namespace: - type: string parameters: items: properties: @@ -6715,28 +4579,17 @@ spec: type: string skipCrds: type: boolean - skipSchemaValidation: - type: boolean - skipTests: - type: boolean valueFiles: items: type: string type: array values: type: string - valuesObject: - type: object - x-kubernetes-preserve-unknown-fields: true version: type: string type: object kustomize: properties: - apiVersions: - items: - type: string - type: array commonAnnotations: additionalProperties: type: string @@ -6747,10 +4600,6 @@ spec: additionalProperties: type: string type: object - components: - items: - type: string - type: array forceCommonAnnotations: type: boolean forceCommonLabels: @@ -6759,46 +4608,12 @@ spec: items: type: string type: array - kubeVersion: - type: string - labelWithoutSelector: - type: boolean namePrefix: type: string nameSuffix: type: string namespace: type: string - patches: - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array replicas: items: properties: @@ -6817,8 +4632,6 @@ spec: version: type: string type: object - name: - type: string path: type: string plugin: @@ -6919,26 +4732,6 @@ spec: type: object scmProvider: properties: - awsCodeCommit: - properties: - allBranches: - type: boolean - region: - type: string - role: - type: string - tagFilters: - items: - properties: - key: - type: string - value: - type: string - required: - - key - type: object - type: array - type: object azureDevOps: properties: accessTokenRef: @@ -7011,33 +4804,6 @@ spec: - passwordRef - username type: object - bearerToken: - properties: - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - tokenRef - type: object - caRef: - properties: - configMapName: - type: string - key: - type: string - required: - - configMapName - - key - type: object - insecure: - type: boolean project: type: string required: @@ -7118,24 +4884,10 @@ spec: type: boolean api: type: string - caRef: - properties: - configMapName: - type: string - key: - type: string - required: - - configMapName - - key - type: object group: type: string - includeSharedProjects: - type: boolean includeSubgroups: type: boolean - insecure: - type: boolean tokenRef: properties: key: @@ -7146,8 +4898,6 @@ spec: - key - secretName type: object - topic: - type: string required: - group type: object @@ -7280,10 +5030,6 @@ spec: type: object helm: properties: - apiVersions: - items: - type: string - type: array fileParameters: items: properties: @@ -7295,10 +5041,6 @@ spec: type: array ignoreMissingValueFiles: type: boolean - kubeVersion: - type: string - namespace: - type: string parameters: items: properties: @@ -7316,28 +5058,17 @@ spec: type: string skipCrds: type: boolean - skipSchemaValidation: - type: boolean - skipTests: - type: boolean valueFiles: items: type: string type: array values: type: string - valuesObject: - type: object - x-kubernetes-preserve-unknown-fields: true version: type: string type: object kustomize: properties: - apiVersions: - items: - type: string - type: array commonAnnotations: additionalProperties: type: string @@ -7348,10 +5079,6 @@ spec: additionalProperties: type: string type: object - components: - items: - type: string - type: array forceCommonAnnotations: type: boolean forceCommonLabels: @@ -7360,46 +5087,12 @@ spec: items: type: string type: array - kubeVersion: - type: string - labelWithoutSelector: - type: boolean namePrefix: type: string nameSuffix: type: string namespace: type: string - patches: - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array replicas: items: properties: @@ -7418,8 +5111,6 @@ spec: version: type: string type: object - name: - type: string path: type: string plugin: @@ -7465,42 +5156,6 @@ spec: required: - repoURL type: object - sourceHydrator: - properties: - drySource: - properties: - path: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - path - - repoURL - - targetRevision - type: object - hydrateTo: - properties: - targetBranch: - type: string - required: - - targetBranch - type: object - syncSource: - properties: - path: - type: string - targetBranch: - type: string - required: - - path - - targetBranch - type: object - required: - - drySource - - syncSource - type: object sources: items: properties: @@ -7552,10 +5207,6 @@ spec: type: object helm: properties: - apiVersions: - items: - type: string - type: array fileParameters: items: properties: @@ -7567,10 +5218,6 @@ spec: type: array ignoreMissingValueFiles: type: boolean - kubeVersion: - type: string - namespace: - type: string parameters: items: properties: @@ -7588,28 +5235,17 @@ spec: type: string skipCrds: type: boolean - skipSchemaValidation: - type: boolean - skipTests: - type: boolean valueFiles: items: type: string type: array values: type: string - valuesObject: - type: object - x-kubernetes-preserve-unknown-fields: true version: type: string type: object kustomize: properties: - apiVersions: - items: - type: string - type: array commonAnnotations: additionalProperties: type: string @@ -7620,10 +5256,6 @@ spec: additionalProperties: type: string type: object - components: - items: - type: string - type: array forceCommonAnnotations: type: boolean forceCommonLabels: @@ -7632,46 +5264,12 @@ spec: items: type: string type: array - kubeVersion: - type: string - labelWithoutSelector: - type: boolean namePrefix: type: string nameSuffix: type: string namespace: type: string - patches: - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array replicas: items: properties: @@ -7690,8 +5288,6 @@ spec: version: type: string type: object - name: - type: string path: type: string plugin: @@ -7789,10 +5385,6 @@ spec: - metadata - spec type: object - values: - additionalProperties: - type: string - type: object type: object selector: properties: @@ -7807,19 +5399,16 @@ spec: items: type: string type: array - x-kubernetes-list-type: atomic required: - key - operator type: object type: array - x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string type: object type: object - x-kubernetes-map-type: atomic type: object type: array template: @@ -7948,10 +5537,6 @@ spec: type: object helm: properties: - apiVersions: - items: - type: string - type: array fileParameters: items: properties: @@ -7963,10 +5548,6 @@ spec: type: array ignoreMissingValueFiles: type: boolean - kubeVersion: - type: string - namespace: - type: string parameters: items: properties: @@ -7984,28 +5565,17 @@ spec: type: string skipCrds: type: boolean - skipSchemaValidation: - type: boolean - skipTests: - type: boolean valueFiles: items: type: string type: array values: type: string - valuesObject: - type: object - x-kubernetes-preserve-unknown-fields: true version: type: string type: object kustomize: properties: - apiVersions: - items: - type: string - type: array commonAnnotations: additionalProperties: type: string @@ -8016,10 +5586,6 @@ spec: additionalProperties: type: string type: object - components: - items: - type: string - type: array forceCommonAnnotations: type: boolean forceCommonLabels: @@ -8028,46 +5594,12 @@ spec: items: type: string type: array - kubeVersion: - type: string - labelWithoutSelector: - type: boolean namePrefix: type: string nameSuffix: type: string namespace: type: string - patches: - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array replicas: items: properties: @@ -8086,8 +5618,6 @@ spec: version: type: string type: object - name: - type: string path: type: string plugin: @@ -8133,42 +5663,6 @@ spec: required: - repoURL type: object - sourceHydrator: - properties: - drySource: - properties: - path: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - path - - repoURL - - targetRevision - type: object - hydrateTo: - properties: - targetBranch: - type: string - required: - - targetBranch - type: object - syncSource: - properties: - path: - type: string - targetBranch: - type: string - required: - - path - - targetBranch - type: object - required: - - drySource - - syncSource - type: object sources: items: properties: @@ -8220,10 +5714,6 @@ spec: type: object helm: properties: - apiVersions: - items: - type: string - type: array fileParameters: items: properties: @@ -8235,10 +5725,6 @@ spec: type: array ignoreMissingValueFiles: type: boolean - kubeVersion: - type: string - namespace: - type: string parameters: items: properties: @@ -8256,28 +5742,17 @@ spec: type: string skipCrds: type: boolean - skipSchemaValidation: - type: boolean - skipTests: - type: boolean valueFiles: items: type: string type: array values: type: string - valuesObject: - type: object - x-kubernetes-preserve-unknown-fields: true version: type: string type: object kustomize: properties: - apiVersions: - items: - type: string - type: array commonAnnotations: additionalProperties: type: string @@ -8288,10 +5763,6 @@ spec: additionalProperties: type: string type: object - components: - items: - type: string - type: array forceCommonAnnotations: type: boolean forceCommonLabels: @@ -8300,46 +5771,12 @@ spec: items: type: string type: array - kubeVersion: - type: string - labelWithoutSelector: - type: boolean namePrefix: type: string nameSuffix: type: string namespace: type: string - patches: - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array replicas: items: properties: @@ -8358,8 +5795,6 @@ spec: version: type: string type: object - name: - type: string path: type: string plugin: @@ -8482,19 +5917,16 @@ spec: items: type: string type: array - x-kubernetes-list-type: atomic required: - key - operator type: object type: array - x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string type: object type: object - x-kubernetes-map-type: atomic name: type: string requeueAfterSeconds: @@ -8626,10 +6058,6 @@ spec: type: object helm: properties: - apiVersions: - items: - type: string - type: array fileParameters: items: properties: @@ -8641,10 +6069,6 @@ spec: type: array ignoreMissingValueFiles: type: boolean - kubeVersion: - type: string - namespace: - type: string parameters: items: properties: @@ -8662,28 +6086,17 @@ spec: type: string skipCrds: type: boolean - skipSchemaValidation: - type: boolean - skipTests: - type: boolean valueFiles: items: type: string type: array values: type: string - valuesObject: - type: object - x-kubernetes-preserve-unknown-fields: true version: type: string type: object kustomize: properties: - apiVersions: - items: - type: string - type: array commonAnnotations: additionalProperties: type: string @@ -8694,10 +6107,6 @@ spec: additionalProperties: type: string type: object - components: - items: - type: string - type: array forceCommonAnnotations: type: boolean forceCommonLabels: @@ -8706,46 +6115,12 @@ spec: items: type: string type: array - kubeVersion: - type: string - labelWithoutSelector: - type: boolean namePrefix: type: string nameSuffix: type: string namespace: type: string - patches: - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array replicas: items: properties: @@ -8764,8 +6139,6 @@ spec: version: type: string type: object - name: - type: string path: type: string plugin: @@ -8811,42 +6184,6 @@ spec: required: - repoURL type: object - sourceHydrator: - properties: - drySource: - properties: - path: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - path - - repoURL - - targetRevision - type: object - hydrateTo: - properties: - targetBranch: - type: string - required: - - targetBranch - type: object - syncSource: - properties: - path: - type: string - targetBranch: - type: string - required: - - path - - targetBranch - type: object - required: - - drySource - - syncSource - type: object sources: items: properties: @@ -8898,10 +6235,6 @@ spec: type: object helm: properties: - apiVersions: - items: - type: string - type: array fileParameters: items: properties: @@ -8913,10 +6246,6 @@ spec: type: array ignoreMissingValueFiles: type: boolean - kubeVersion: - type: string - namespace: - type: string parameters: items: properties: @@ -8934,28 +6263,17 @@ spec: type: string skipCrds: type: boolean - skipSchemaValidation: - type: boolean - skipTests: - type: boolean valueFiles: items: type: string type: array values: type: string - valuesObject: - type: object - x-kubernetes-preserve-unknown-fields: true version: type: string type: object kustomize: properties: - apiVersions: - items: - type: string - type: array commonAnnotations: additionalProperties: type: string @@ -8966,10 +6284,6 @@ spec: additionalProperties: type: string type: object - components: - items: - type: string - type: array forceCommonAnnotations: type: boolean forceCommonLabels: @@ -8978,46 +6292,12 @@ spec: items: type: string type: array - kubeVersion: - type: string - labelWithoutSelector: - type: boolean namePrefix: type: string nameSuffix: type: string namespace: type: string - patches: - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array replicas: items: properties: @@ -9036,8 +6316,6 @@ spec: version: type: string type: object - name: - type: string path: type: string plugin: @@ -9144,8 +6422,6 @@ spec: type: object clusters: properties: - flatList: - type: boolean selector: properties: matchExpressions: @@ -9159,19 +6435,16 @@ spec: items: type: string type: array - x-kubernetes-list-type: atomic required: - key - operator type: object type: array - x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string type: object type: object - x-kubernetes-map-type: atomic template: properties: metadata: @@ -9298,10 +6571,6 @@ spec: type: object helm: properties: - apiVersions: - items: - type: string - type: array fileParameters: items: properties: @@ -9313,10 +6582,6 @@ spec: type: array ignoreMissingValueFiles: type: boolean - kubeVersion: - type: string - namespace: - type: string parameters: items: properties: @@ -9334,28 +6599,17 @@ spec: type: string skipCrds: type: boolean - skipSchemaValidation: - type: boolean - skipTests: - type: boolean valueFiles: items: type: string type: array values: type: string - valuesObject: - type: object - x-kubernetes-preserve-unknown-fields: true version: type: string type: object kustomize: properties: - apiVersions: - items: - type: string - type: array commonAnnotations: additionalProperties: type: string @@ -9366,10 +6620,6 @@ spec: additionalProperties: type: string type: object - components: - items: - type: string - type: array forceCommonAnnotations: type: boolean forceCommonLabels: @@ -9378,46 +6628,12 @@ spec: items: type: string type: array - kubeVersion: - type: string - labelWithoutSelector: - type: boolean namePrefix: type: string nameSuffix: type: string namespace: type: string - patches: - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array replicas: items: properties: @@ -9436,8 +6652,6 @@ spec: version: type: string type: object - name: - type: string path: type: string plugin: @@ -9483,42 +6697,6 @@ spec: required: - repoURL type: object - sourceHydrator: - properties: - drySource: - properties: - path: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - path - - repoURL - - targetRevision - type: object - hydrateTo: - properties: - targetBranch: - type: string - required: - - targetBranch - type: object - syncSource: - properties: - path: - type: string - targetBranch: - type: string - required: - - path - - targetBranch - type: object - required: - - drySource - - syncSource - type: object sources: items: properties: @@ -9570,10 +6748,6 @@ spec: type: object helm: properties: - apiVersions: - items: - type: string - type: array fileParameters: items: properties: @@ -9585,10 +6759,6 @@ spec: type: array ignoreMissingValueFiles: type: boolean - kubeVersion: - type: string - namespace: - type: string parameters: items: properties: @@ -9606,28 +6776,17 @@ spec: type: string skipCrds: type: boolean - skipSchemaValidation: - type: boolean - skipTests: - type: boolean valueFiles: items: type: string type: array values: type: string - valuesObject: - type: object - x-kubernetes-preserve-unknown-fields: true version: type: string type: object kustomize: properties: - apiVersions: - items: - type: string - type: array commonAnnotations: additionalProperties: type: string @@ -9638,10 +6797,6 @@ spec: additionalProperties: type: string type: object - components: - items: - type: string - type: array forceCommonAnnotations: type: boolean forceCommonLabels: @@ -9650,46 +6805,12 @@ spec: items: type: string type: array - kubeVersion: - type: string - labelWithoutSelector: - type: boolean namePrefix: type: string nameSuffix: type: string namespace: type: string - patches: - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array replicas: items: properties: @@ -9708,8 +6829,6 @@ spec: version: type: string type: object - name: - type: string path: type: string plugin: @@ -9969,10 +7088,6 @@ spec: type: object helm: properties: - apiVersions: - items: - type: string - type: array fileParameters: items: properties: @@ -9984,10 +7099,6 @@ spec: type: array ignoreMissingValueFiles: type: boolean - kubeVersion: - type: string - namespace: - type: string parameters: items: properties: @@ -10005,28 +7116,17 @@ spec: type: string skipCrds: type: boolean - skipSchemaValidation: - type: boolean - skipTests: - type: boolean valueFiles: items: type: string type: array values: type: string - valuesObject: - type: object - x-kubernetes-preserve-unknown-fields: true version: type: string type: object kustomize: properties: - apiVersions: - items: - type: string - type: array commonAnnotations: additionalProperties: type: string @@ -10037,10 +7137,6 @@ spec: additionalProperties: type: string type: object - components: - items: - type: string - type: array forceCommonAnnotations: type: boolean forceCommonLabels: @@ -10049,46 +7145,12 @@ spec: items: type: string type: array - kubeVersion: - type: string - labelWithoutSelector: - type: boolean namePrefix: type: string nameSuffix: type: string namespace: type: string - patches: - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array replicas: items: properties: @@ -10107,8 +7169,6 @@ spec: version: type: string type: object - name: - type: string path: type: string plugin: @@ -10154,42 +7214,6 @@ spec: required: - repoURL type: object - sourceHydrator: - properties: - drySource: - properties: - path: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - path - - repoURL - - targetRevision - type: object - hydrateTo: - properties: - targetBranch: - type: string - required: - - targetBranch - type: object - syncSource: - properties: - path: - type: string - targetBranch: - type: string - required: - - path - - targetBranch - type: object - required: - - drySource - - syncSource - type: object sources: items: properties: @@ -10241,10 +7265,6 @@ spec: type: object helm: properties: - apiVersions: - items: - type: string - type: array fileParameters: items: properties: @@ -10256,10 +7276,6 @@ spec: type: array ignoreMissingValueFiles: type: boolean - kubeVersion: - type: string - namespace: - type: string parameters: items: properties: @@ -10277,28 +7293,17 @@ spec: type: string skipCrds: type: boolean - skipSchemaValidation: - type: boolean - skipTests: - type: boolean valueFiles: items: type: string type: array values: type: string - valuesObject: - type: object - x-kubernetes-preserve-unknown-fields: true version: type: string type: object kustomize: properties: - apiVersions: - items: - type: string - type: array commonAnnotations: additionalProperties: type: string @@ -10309,10 +7314,6 @@ spec: additionalProperties: type: string type: object - components: - items: - type: string - type: array forceCommonAnnotations: type: boolean forceCommonLabels: @@ -10321,46 +7322,12 @@ spec: items: type: string type: array - kubeVersion: - type: string - labelWithoutSelector: - type: boolean namePrefix: type: string nameSuffix: type: string namespace: type: string - patches: - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array replicas: items: properties: @@ -10379,8 +7346,6 @@ spec: version: type: string type: object - name: - type: string path: type: string plugin: @@ -10478,10 +7443,6 @@ spec: - metadata - spec type: object - values: - additionalProperties: - type: string - type: object required: - repoURL - revision @@ -10620,10 +7581,6 @@ spec: type: object helm: properties: - apiVersions: - items: - type: string - type: array fileParameters: items: properties: @@ -10635,10 +7592,6 @@ spec: type: array ignoreMissingValueFiles: type: boolean - kubeVersion: - type: string - namespace: - type: string parameters: items: properties: @@ -10656,28 +7609,17 @@ spec: type: string skipCrds: type: boolean - skipSchemaValidation: - type: boolean - skipTests: - type: boolean valueFiles: items: type: string type: array values: type: string - valuesObject: - type: object - x-kubernetes-preserve-unknown-fields: true version: type: string type: object kustomize: properties: - apiVersions: - items: - type: string - type: array commonAnnotations: additionalProperties: type: string @@ -10688,10 +7630,6 @@ spec: additionalProperties: type: string type: object - components: - items: - type: string - type: array forceCommonAnnotations: type: boolean forceCommonLabels: @@ -10700,46 +7638,12 @@ spec: items: type: string type: array - kubeVersion: - type: string - labelWithoutSelector: - type: boolean namePrefix: type: string nameSuffix: type: string namespace: type: string - patches: - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array replicas: items: properties: @@ -10758,8 +7662,6 @@ spec: version: type: string type: object - name: - type: string path: type: string plugin: @@ -10805,42 +7707,6 @@ spec: required: - repoURL type: object - sourceHydrator: - properties: - drySource: - properties: - path: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - path - - repoURL - - targetRevision - type: object - hydrateTo: - properties: - targetBranch: - type: string - required: - - targetBranch - type: object - syncSource: - properties: - path: - type: string - targetBranch: - type: string - required: - - path - - targetBranch - type: object - required: - - drySource - - syncSource - type: object sources: items: properties: @@ -10892,10 +7758,6 @@ spec: type: object helm: properties: - apiVersions: - items: - type: string - type: array fileParameters: items: properties: @@ -10907,10 +7769,6 @@ spec: type: array ignoreMissingValueFiles: type: boolean - kubeVersion: - type: string - namespace: - type: string parameters: items: properties: @@ -10928,28 +7786,17 @@ spec: type: string skipCrds: type: boolean - skipSchemaValidation: - type: boolean - skipTests: - type: boolean valueFiles: items: type: string type: array values: type: string - valuesObject: - type: object - x-kubernetes-preserve-unknown-fields: true version: type: string type: object kustomize: properties: - apiVersions: - items: - type: string - type: array commonAnnotations: additionalProperties: type: string @@ -10960,10 +7807,6 @@ spec: additionalProperties: type: string type: object - components: - items: - type: string - type: array forceCommonAnnotations: type: boolean forceCommonLabels: @@ -10972,46 +7815,12 @@ spec: items: type: string type: array - kubeVersion: - type: string - labelWithoutSelector: - type: boolean namePrefix: type: string nameSuffix: type: string namespace: type: string - patches: - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array replicas: items: properties: @@ -11030,8 +7839,6 @@ spec: version: type: string type: object - name: - type: string path: type: string plugin: @@ -11129,748 +7936,15 @@ spec: - metadata - spec type: object + required: + - elements type: object matrix: x-kubernetes-preserve-unknown-fields: true merge: x-kubernetes-preserve-unknown-fields: true - plugin: - properties: - configMapRef: - properties: - name: - type: string - required: - - name - type: object - input: - properties: - parameters: - additionalProperties: - x-kubernetes-preserve-unknown-fields: true - type: object - type: object - requeueAfterSeconds: - format: int64 - type: integer - template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - apiVersions: - items: - type: string - type: array - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - kubeVersion: - type: string - namespace: - type: string - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - skipSchemaValidation: - type: boolean - skipTests: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - valuesObject: - type: object - x-kubernetes-preserve-unknown-fields: true - version: - type: string - type: object - kustomize: - properties: - apiVersions: - items: - type: string - type: array - commonAnnotations: - additionalProperties: - type: string - type: object - commonAnnotationsEnvsubst: - type: boolean - commonLabels: - additionalProperties: - type: string - type: object - components: - items: - type: string - type: array - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - kubeVersion: - type: string - labelWithoutSelector: - type: boolean - namePrefix: - type: string - nameSuffix: - type: string - namespace: - type: string - patches: - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array - replicas: - items: - properties: - count: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - name: - type: string - required: - - count - - name - type: object - type: array - version: - type: string - type: object - name: - type: string - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sourceHydrator: - properties: - drySource: - properties: - path: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - path - - repoURL - - targetRevision - type: object - hydrateTo: - properties: - targetBranch: - type: string - required: - - targetBranch - type: object - syncSource: - properties: - path: - type: string - targetBranch: - type: string - required: - - path - - targetBranch - type: object - required: - - drySource - - syncSource - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - apiVersions: - items: - type: string - type: array - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - kubeVersion: - type: string - namespace: - type: string - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - skipSchemaValidation: - type: boolean - skipTests: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - valuesObject: - type: object - x-kubernetes-preserve-unknown-fields: true - version: - type: string - type: object - kustomize: - properties: - apiVersions: - items: - type: string - type: array - commonAnnotations: - additionalProperties: - type: string - type: object - commonAnnotationsEnvsubst: - type: boolean - commonLabels: - additionalProperties: - type: string - type: object - components: - items: - type: string - type: array - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - kubeVersion: - type: string - labelWithoutSelector: - type: boolean - namePrefix: - type: string - nameSuffix: - type: string - namespace: - type: string - patches: - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array - replicas: - items: - properties: - count: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - name: - type: string - required: - - count - - name - type: object - type: array - version: - type: string - type: object - name: - type: string - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object - values: - additionalProperties: - type: string - type: object - required: - - configMapRef - type: object pullRequest: properties: - azuredevops: - properties: - api: - type: string - labels: - items: - type: string - type: array - organization: - type: string - project: - type: string - repo: - type: string - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - organization - - project - - repo - type: object - bitbucket: - properties: - api: - type: string - basicAuth: - properties: - passwordRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - username: - type: string - required: - - passwordRef - - username - type: object - bearerToken: - properties: - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - tokenRef - type: object - owner: - type: string - repo: - type: string - required: - - owner - - repo - type: object bitbucketServer: properties: api: @@ -11893,33 +7967,6 @@ spec: - passwordRef - username type: object - bearerToken: - properties: - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - tokenRef - type: object - caRef: - properties: - configMapName: - type: string - key: - type: string - required: - - configMapName - - key - type: object - insecure: - type: boolean project: type: string repo: @@ -11934,8 +7981,6 @@ spec: properties: branchMatch: type: string - targetBranchMatch: - type: string type: object type: array gitea: @@ -11995,18 +8040,6 @@ spec: properties: api: type: string - caRef: - properties: - configMapName: - type: string - key: - type: string - required: - - configMapName - - key - type: object - insecure: - type: boolean labels: items: type: string @@ -12157,10 +8190,6 @@ spec: type: object helm: properties: - apiVersions: - items: - type: string - type: array fileParameters: items: properties: @@ -12172,10 +8201,6 @@ spec: type: array ignoreMissingValueFiles: type: boolean - kubeVersion: - type: string - namespace: - type: string parameters: items: properties: @@ -12193,28 +8218,17 @@ spec: type: string skipCrds: type: boolean - skipSchemaValidation: - type: boolean - skipTests: - type: boolean valueFiles: items: type: string type: array values: type: string - valuesObject: - type: object - x-kubernetes-preserve-unknown-fields: true version: type: string type: object kustomize: properties: - apiVersions: - items: - type: string - type: array commonAnnotations: additionalProperties: type: string @@ -12225,10 +8239,6 @@ spec: additionalProperties: type: string type: object - components: - items: - type: string - type: array forceCommonAnnotations: type: boolean forceCommonLabels: @@ -12237,46 +8247,12 @@ spec: items: type: string type: array - kubeVersion: - type: string - labelWithoutSelector: - type: boolean namePrefix: type: string nameSuffix: type: string namespace: type: string - patches: - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array replicas: items: properties: @@ -12295,8 +8271,6 @@ spec: version: type: string type: object - name: - type: string path: type: string plugin: @@ -12342,42 +8316,6 @@ spec: required: - repoURL type: object - sourceHydrator: - properties: - drySource: - properties: - path: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - path - - repoURL - - targetRevision - type: object - hydrateTo: - properties: - targetBranch: - type: string - required: - - targetBranch - type: object - syncSource: - properties: - path: - type: string - targetBranch: - type: string - required: - - path - - targetBranch - type: object - required: - - drySource - - syncSource - type: object sources: items: properties: @@ -12429,10 +8367,6 @@ spec: type: object helm: properties: - apiVersions: - items: - type: string - type: array fileParameters: items: properties: @@ -12444,10 +8378,6 @@ spec: type: array ignoreMissingValueFiles: type: boolean - kubeVersion: - type: string - namespace: - type: string parameters: items: properties: @@ -12465,28 +8395,17 @@ spec: type: string skipCrds: type: boolean - skipSchemaValidation: - type: boolean - skipTests: - type: boolean valueFiles: items: type: string type: array values: type: string - valuesObject: - type: object - x-kubernetes-preserve-unknown-fields: true version: type: string type: object kustomize: properties: - apiVersions: - items: - type: string - type: array commonAnnotations: additionalProperties: type: string @@ -12497,10 +8416,6 @@ spec: additionalProperties: type: string type: object - components: - items: - type: string - type: array forceCommonAnnotations: type: boolean forceCommonLabels: @@ -12509,46 +8424,12 @@ spec: items: type: string type: array - kubeVersion: - type: string - labelWithoutSelector: - type: boolean namePrefix: type: string nameSuffix: type: string namespace: type: string - patches: - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array replicas: items: properties: @@ -12567,8 +8448,6 @@ spec: version: type: string type: object - name: - type: string path: type: string plugin: @@ -12669,26 +8548,6 @@ spec: type: object scmProvider: properties: - awsCodeCommit: - properties: - allBranches: - type: boolean - region: - type: string - role: - type: string - tagFilters: - items: - properties: - key: - type: string - value: - type: string - required: - - key - type: object - type: array - type: object azureDevOps: properties: accessTokenRef: @@ -12761,33 +8620,6 @@ spec: - passwordRef - username type: object - bearerToken: - properties: - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - tokenRef - type: object - caRef: - properties: - configMapName: - type: string - key: - type: string - required: - - configMapName - - key - type: object - insecure: - type: boolean project: type: string required: @@ -12868,24 +8700,10 @@ spec: type: boolean api: type: string - caRef: - properties: - configMapName: - type: string - key: - type: string - required: - - configMapName - - key - type: object group: type: string - includeSharedProjects: - type: boolean includeSubgroups: type: boolean - insecure: - type: boolean tokenRef: properties: key: @@ -12896,8 +8714,6 @@ spec: - key - secretName type: object - topic: - type: string required: - group type: object @@ -13030,10 +8846,6 @@ spec: type: object helm: properties: - apiVersions: - items: - type: string - type: array fileParameters: items: properties: @@ -13045,10 +8857,6 @@ spec: type: array ignoreMissingValueFiles: type: boolean - kubeVersion: - type: string - namespace: - type: string parameters: items: properties: @@ -13066,28 +8874,17 @@ spec: type: string skipCrds: type: boolean - skipSchemaValidation: - type: boolean - skipTests: - type: boolean valueFiles: items: type: string type: array values: type: string - valuesObject: - type: object - x-kubernetes-preserve-unknown-fields: true version: type: string type: object kustomize: properties: - apiVersions: - items: - type: string - type: array commonAnnotations: additionalProperties: type: string @@ -13098,10 +8895,6 @@ spec: additionalProperties: type: string type: object - components: - items: - type: string - type: array forceCommonAnnotations: type: boolean forceCommonLabels: @@ -13110,46 +8903,12 @@ spec: items: type: string type: array - kubeVersion: - type: string - labelWithoutSelector: - type: boolean namePrefix: type: string nameSuffix: type: string namespace: type: string - patches: - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array replicas: items: properties: @@ -13168,8 +8927,6 @@ spec: version: type: string type: object - name: - type: string path: type: string plugin: @@ -13215,42 +8972,6 @@ spec: required: - repoURL type: object - sourceHydrator: - properties: - drySource: - properties: - path: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - path - - repoURL - - targetRevision - type: object - hydrateTo: - properties: - targetBranch: - type: string - required: - - targetBranch - type: object - syncSource: - properties: - path: - type: string - targetBranch: - type: string - required: - - path - - targetBranch - type: object - required: - - drySource - - syncSource - type: object sources: items: properties: @@ -13302,10 +9023,6 @@ spec: type: object helm: properties: - apiVersions: - items: - type: string - type: array fileParameters: items: properties: @@ -13317,10 +9034,6 @@ spec: type: array ignoreMissingValueFiles: type: boolean - kubeVersion: - type: string - namespace: - type: string parameters: items: properties: @@ -13338,28 +9051,17 @@ spec: type: string skipCrds: type: boolean - skipSchemaValidation: - type: boolean - skipTests: - type: boolean valueFiles: items: type: string type: array values: type: string - valuesObject: - type: object - x-kubernetes-preserve-unknown-fields: true version: type: string type: object kustomize: properties: - apiVersions: - items: - type: string - type: array commonAnnotations: additionalProperties: type: string @@ -13370,10 +9072,6 @@ spec: additionalProperties: type: string type: object - components: - items: - type: string - type: array forceCommonAnnotations: type: boolean forceCommonLabels: @@ -13382,46 +9080,12 @@ spec: items: type: string type: array - kubeVersion: - type: string - labelWithoutSelector: - type: boolean namePrefix: type: string nameSuffix: type: string namespace: type: string - patches: - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array replicas: items: properties: @@ -13440,8 +9104,6 @@ spec: version: type: string type: object - name: - type: string path: type: string plugin: @@ -13539,10 +9201,6 @@ spec: - metadata - spec type: object - values: - additionalProperties: - type: string - type: object type: object selector: properties: @@ -13557,19 +9215,16 @@ spec: items: type: string type: array - x-kubernetes-list-type: atomic required: - key - operator type: object type: array - x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string type: object type: object - x-kubernetes-map-type: atomic type: object type: array mergeKeys: @@ -13702,10 +9357,6 @@ spec: type: object helm: properties: - apiVersions: - items: - type: string - type: array fileParameters: items: properties: @@ -13717,10 +9368,6 @@ spec: type: array ignoreMissingValueFiles: type: boolean - kubeVersion: - type: string - namespace: - type: string parameters: items: properties: @@ -13738,28 +9385,17 @@ spec: type: string skipCrds: type: boolean - skipSchemaValidation: - type: boolean - skipTests: - type: boolean valueFiles: items: type: string type: array values: type: string - valuesObject: - type: object - x-kubernetes-preserve-unknown-fields: true version: type: string type: object kustomize: properties: - apiVersions: - items: - type: string - type: array commonAnnotations: additionalProperties: type: string @@ -13770,10 +9406,6 @@ spec: additionalProperties: type: string type: object - components: - items: - type: string - type: array forceCommonAnnotations: type: boolean forceCommonLabels: @@ -13782,46 +9414,12 @@ spec: items: type: string type: array - kubeVersion: - type: string - labelWithoutSelector: - type: boolean namePrefix: type: string nameSuffix: type: string namespace: type: string - patches: - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array replicas: items: properties: @@ -13840,8 +9438,6 @@ spec: version: type: string type: object - name: - type: string path: type: string plugin: @@ -13887,42 +9483,6 @@ spec: required: - repoURL type: object - sourceHydrator: - properties: - drySource: - properties: - path: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - path - - repoURL - - targetRevision - type: object - hydrateTo: - properties: - targetBranch: - type: string - required: - - targetBranch - type: object - syncSource: - properties: - path: - type: string - targetBranch: - type: string - required: - - path - - targetBranch - type: object - required: - - drySource - - syncSource - type: object sources: items: properties: @@ -13974,10 +9534,6 @@ spec: type: object helm: properties: - apiVersions: - items: - type: string - type: array fileParameters: items: properties: @@ -13989,10 +9545,6 @@ spec: type: array ignoreMissingValueFiles: type: boolean - kubeVersion: - type: string - namespace: - type: string parameters: items: properties: @@ -14010,28 +9562,17 @@ spec: type: string skipCrds: type: boolean - skipSchemaValidation: - type: boolean - skipTests: - type: boolean valueFiles: items: type: string type: array values: type: string - valuesObject: - type: object - x-kubernetes-preserve-unknown-fields: true version: type: string type: object kustomize: properties: - apiVersions: - items: - type: string - type: array commonAnnotations: additionalProperties: type: string @@ -14042,10 +9583,6 @@ spec: additionalProperties: type: string type: object - components: - items: - type: string - type: array forceCommonAnnotations: type: boolean forceCommonLabels: @@ -14054,46 +9591,12 @@ spec: items: type: string type: array - kubeVersion: - type: string - labelWithoutSelector: - type: boolean namePrefix: type: string nameSuffix: type: string namespace: type: string - patches: - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array replicas: items: properties: @@ -14112,8 +9615,6 @@ spec: version: type: string type: object - name: - type: string path: type: string plugin: @@ -14215,743 +9716,8 @@ spec: - generators - mergeKeys type: object - plugin: - properties: - configMapRef: - properties: - name: - type: string - required: - - name - type: object - input: - properties: - parameters: - additionalProperties: - x-kubernetes-preserve-unknown-fields: true - type: object - type: object - requeueAfterSeconds: - format: int64 - type: integer - template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - apiVersions: - items: - type: string - type: array - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - kubeVersion: - type: string - namespace: - type: string - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - skipSchemaValidation: - type: boolean - skipTests: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - valuesObject: - type: object - x-kubernetes-preserve-unknown-fields: true - version: - type: string - type: object - kustomize: - properties: - apiVersions: - items: - type: string - type: array - commonAnnotations: - additionalProperties: - type: string - type: object - commonAnnotationsEnvsubst: - type: boolean - commonLabels: - additionalProperties: - type: string - type: object - components: - items: - type: string - type: array - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - kubeVersion: - type: string - labelWithoutSelector: - type: boolean - namePrefix: - type: string - nameSuffix: - type: string - namespace: - type: string - patches: - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array - replicas: - items: - properties: - count: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - name: - type: string - required: - - count - - name - type: object - type: array - version: - type: string - type: object - name: - type: string - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sourceHydrator: - properties: - drySource: - properties: - path: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - path - - repoURL - - targetRevision - type: object - hydrateTo: - properties: - targetBranch: - type: string - required: - - targetBranch - type: object - syncSource: - properties: - path: - type: string - targetBranch: - type: string - required: - - path - - targetBranch - type: object - required: - - drySource - - syncSource - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - apiVersions: - items: - type: string - type: array - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - kubeVersion: - type: string - namespace: - type: string - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - skipSchemaValidation: - type: boolean - skipTests: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - valuesObject: - type: object - x-kubernetes-preserve-unknown-fields: true - version: - type: string - type: object - kustomize: - properties: - apiVersions: - items: - type: string - type: array - commonAnnotations: - additionalProperties: - type: string - type: object - commonAnnotationsEnvsubst: - type: boolean - commonLabels: - additionalProperties: - type: string - type: object - components: - items: - type: string - type: array - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - kubeVersion: - type: string - labelWithoutSelector: - type: boolean - namePrefix: - type: string - nameSuffix: - type: string - namespace: - type: string - patches: - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array - replicas: - items: - properties: - count: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - name: - type: string - required: - - count - - name - type: object - type: array - version: - type: string - type: object - name: - type: string - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object - values: - additionalProperties: - type: string - type: object - required: - - configMapRef - type: object pullRequest: properties: - azuredevops: - properties: - api: - type: string - labels: - items: - type: string - type: array - organization: - type: string - project: - type: string - repo: - type: string - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - organization - - project - - repo - type: object - bitbucket: - properties: - api: - type: string - basicAuth: - properties: - passwordRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - username: - type: string - required: - - passwordRef - - username - type: object - bearerToken: - properties: - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - tokenRef - type: object - owner: - type: string - repo: - type: string - required: - - owner - - repo - type: object bitbucketServer: properties: api: @@ -14974,33 +9740,6 @@ spec: - passwordRef - username type: object - bearerToken: - properties: - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - tokenRef - type: object - caRef: - properties: - configMapName: - type: string - key: - type: string - required: - - configMapName - - key - type: object - insecure: - type: boolean project: type: string repo: @@ -15015,8 +9754,6 @@ spec: properties: branchMatch: type: string - targetBranchMatch: - type: string type: object type: array gitea: @@ -15076,18 +9813,6 @@ spec: properties: api: type: string - caRef: - properties: - configMapName: - type: string - key: - type: string - required: - - configMapName - - key - type: object - insecure: - type: boolean labels: items: type: string @@ -15238,10 +9963,6 @@ spec: type: object helm: properties: - apiVersions: - items: - type: string - type: array fileParameters: items: properties: @@ -15253,10 +9974,6 @@ spec: type: array ignoreMissingValueFiles: type: boolean - kubeVersion: - type: string - namespace: - type: string parameters: items: properties: @@ -15274,28 +9991,17 @@ spec: type: string skipCrds: type: boolean - skipSchemaValidation: - type: boolean - skipTests: - type: boolean valueFiles: items: type: string type: array values: type: string - valuesObject: - type: object - x-kubernetes-preserve-unknown-fields: true version: type: string type: object kustomize: properties: - apiVersions: - items: - type: string - type: array commonAnnotations: additionalProperties: type: string @@ -15306,10 +10012,6 @@ spec: additionalProperties: type: string type: object - components: - items: - type: string - type: array forceCommonAnnotations: type: boolean forceCommonLabels: @@ -15318,46 +10020,12 @@ spec: items: type: string type: array - kubeVersion: - type: string - labelWithoutSelector: - type: boolean namePrefix: type: string nameSuffix: type: string namespace: type: string - patches: - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array replicas: items: properties: @@ -15376,8 +10044,6 @@ spec: version: type: string type: object - name: - type: string path: type: string plugin: @@ -15423,42 +10089,6 @@ spec: required: - repoURL type: object - sourceHydrator: - properties: - drySource: - properties: - path: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - path - - repoURL - - targetRevision - type: object - hydrateTo: - properties: - targetBranch: - type: string - required: - - targetBranch - type: object - syncSource: - properties: - path: - type: string - targetBranch: - type: string - required: - - path - - targetBranch - type: object - required: - - drySource - - syncSource - type: object sources: items: properties: @@ -15510,10 +10140,6 @@ spec: type: object helm: properties: - apiVersions: - items: - type: string - type: array fileParameters: items: properties: @@ -15525,10 +10151,6 @@ spec: type: array ignoreMissingValueFiles: type: boolean - kubeVersion: - type: string - namespace: - type: string parameters: items: properties: @@ -15546,28 +10168,17 @@ spec: type: string skipCrds: type: boolean - skipSchemaValidation: - type: boolean - skipTests: - type: boolean valueFiles: items: type: string type: array values: type: string - valuesObject: - type: object - x-kubernetes-preserve-unknown-fields: true version: type: string type: object kustomize: properties: - apiVersions: - items: - type: string - type: array commonAnnotations: additionalProperties: type: string @@ -15578,10 +10189,6 @@ spec: additionalProperties: type: string type: object - components: - items: - type: string - type: array forceCommonAnnotations: type: boolean forceCommonLabels: @@ -15590,46 +10197,12 @@ spec: items: type: string type: array - kubeVersion: - type: string - labelWithoutSelector: - type: boolean namePrefix: type: string nameSuffix: type: string namespace: type: string - patches: - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array replicas: items: properties: @@ -15648,8 +10221,6 @@ spec: version: type: string type: object - name: - type: string path: type: string plugin: @@ -15750,26 +10321,6 @@ spec: type: object scmProvider: properties: - awsCodeCommit: - properties: - allBranches: - type: boolean - region: - type: string - role: - type: string - tagFilters: - items: - properties: - key: - type: string - value: - type: string - required: - - key - type: object - type: array - type: object azureDevOps: properties: accessTokenRef: @@ -15842,33 +10393,6 @@ spec: - passwordRef - username type: object - bearerToken: - properties: - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - tokenRef - type: object - caRef: - properties: - configMapName: - type: string - key: - type: string - required: - - configMapName - - key - type: object - insecure: - type: boolean project: type: string required: @@ -15949,24 +10473,10 @@ spec: type: boolean api: type: string - caRef: - properties: - configMapName: - type: string - key: - type: string - required: - - configMapName - - key - type: object group: type: string - includeSharedProjects: - type: boolean includeSubgroups: type: boolean - insecure: - type: boolean tokenRef: properties: key: @@ -15977,8 +10487,6 @@ spec: - key - secretName type: object - topic: - type: string required: - group type: object @@ -16111,10 +10619,6 @@ spec: type: object helm: properties: - apiVersions: - items: - type: string - type: array fileParameters: items: properties: @@ -16126,10 +10630,6 @@ spec: type: array ignoreMissingValueFiles: type: boolean - kubeVersion: - type: string - namespace: - type: string parameters: items: properties: @@ -16147,28 +10647,17 @@ spec: type: string skipCrds: type: boolean - skipSchemaValidation: - type: boolean - skipTests: - type: boolean valueFiles: items: type: string type: array values: type: string - valuesObject: - type: object - x-kubernetes-preserve-unknown-fields: true version: type: string type: object kustomize: properties: - apiVersions: - items: - type: string - type: array commonAnnotations: additionalProperties: type: string @@ -16179,10 +10668,6 @@ spec: additionalProperties: type: string type: object - components: - items: - type: string - type: array forceCommonAnnotations: type: boolean forceCommonLabels: @@ -16191,46 +10676,12 @@ spec: items: type: string type: array - kubeVersion: - type: string - labelWithoutSelector: - type: boolean namePrefix: type: string nameSuffix: type: string namespace: type: string - patches: - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array replicas: items: properties: @@ -16249,8 +10700,6 @@ spec: version: type: string type: object - name: - type: string path: type: string plugin: @@ -16296,42 +10745,6 @@ spec: required: - repoURL type: object - sourceHydrator: - properties: - drySource: - properties: - path: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - path - - repoURL - - targetRevision - type: object - hydrateTo: - properties: - targetBranch: - type: string - required: - - targetBranch - type: object - syncSource: - properties: - path: - type: string - targetBranch: - type: string - required: - - path - - targetBranch - type: object - required: - - drySource - - syncSource - type: object sources: items: properties: @@ -16383,10 +10796,6 @@ spec: type: object helm: properties: - apiVersions: - items: - type: string - type: array fileParameters: items: properties: @@ -16398,10 +10807,6 @@ spec: type: array ignoreMissingValueFiles: type: boolean - kubeVersion: - type: string - namespace: - type: string parameters: items: properties: @@ -16419,28 +10824,17 @@ spec: type: string skipCrds: type: boolean - skipSchemaValidation: - type: boolean - skipTests: - type: boolean valueFiles: items: type: string type: array values: type: string - valuesObject: - type: object - x-kubernetes-preserve-unknown-fields: true version: type: string type: object kustomize: properties: - apiVersions: - items: - type: string - type: array commonAnnotations: additionalProperties: type: string @@ -16451,10 +10845,6 @@ spec: additionalProperties: type: string type: object - components: - items: - type: string - type: array forceCommonAnnotations: type: boolean forceCommonLabels: @@ -16463,46 +10853,12 @@ spec: items: type: string type: array - kubeVersion: - type: string - labelWithoutSelector: - type: boolean namePrefix: type: string nameSuffix: type: string namespace: type: string - patches: - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array replicas: items: properties: @@ -16521,8 +10877,6 @@ spec: version: type: string type: object - name: - type: string path: type: string plugin: @@ -16620,10 +10974,6 @@ spec: - metadata - spec type: object - values: - additionalProperties: - type: string - type: object type: object selector: properties: @@ -16638,52 +10988,26 @@ spec: items: type: string type: array - x-kubernetes-list-type: atomic required: - key - operator type: object type: array - x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string type: object type: object - x-kubernetes-map-type: atomic type: object type: array goTemplate: type: boolean - goTemplateOptions: - items: - type: string - type: array - ignoreApplicationDifferences: - items: - properties: - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - name: - type: string - type: object - type: array preservedFields: properties: annotations: items: type: string type: array - labels: - items: - type: string - type: array type: object strategy: properties: @@ -16718,13 +11042,6 @@ spec: type: object syncPolicy: properties: - applicationsSync: - enum: - - create-only - - create-update - - create-delete - - sync - type: string preserveResourcesOnDeletion: type: boolean type: object @@ -16854,10 +11171,6 @@ spec: type: object helm: properties: - apiVersions: - items: - type: string - type: array fileParameters: items: properties: @@ -16869,10 +11182,6 @@ spec: type: array ignoreMissingValueFiles: type: boolean - kubeVersion: - type: string - namespace: - type: string parameters: items: properties: @@ -16890,28 +11199,17 @@ spec: type: string skipCrds: type: boolean - skipSchemaValidation: - type: boolean - skipTests: - type: boolean valueFiles: items: type: string type: array values: type: string - valuesObject: - type: object - x-kubernetes-preserve-unknown-fields: true version: type: string type: object kustomize: properties: - apiVersions: - items: - type: string - type: array commonAnnotations: additionalProperties: type: string @@ -16922,10 +11220,6 @@ spec: additionalProperties: type: string type: object - components: - items: - type: string - type: array forceCommonAnnotations: type: boolean forceCommonLabels: @@ -16934,46 +11228,12 @@ spec: items: type: string type: array - kubeVersion: - type: string - labelWithoutSelector: - type: boolean namePrefix: type: string nameSuffix: type: string namespace: type: string - patches: - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array replicas: items: properties: @@ -16992,8 +11252,6 @@ spec: version: type: string type: object - name: - type: string path: type: string plugin: @@ -17039,42 +11297,6 @@ spec: required: - repoURL type: object - sourceHydrator: - properties: - drySource: - properties: - path: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - path - - repoURL - - targetRevision - type: object - hydrateTo: - properties: - targetBranch: - type: string - required: - - targetBranch - type: object - syncSource: - properties: - path: - type: string - targetBranch: - type: string - required: - - path - - targetBranch - type: object - required: - - drySource - - syncSource - type: object sources: items: properties: @@ -17126,10 +11348,6 @@ spec: type: object helm: properties: - apiVersions: - items: - type: string - type: array fileParameters: items: properties: @@ -17141,10 +11359,6 @@ spec: type: array ignoreMissingValueFiles: type: boolean - kubeVersion: - type: string - namespace: - type: string parameters: items: properties: @@ -17162,28 +11376,17 @@ spec: type: string skipCrds: type: boolean - skipSchemaValidation: - type: boolean - skipTests: - type: boolean valueFiles: items: type: string type: array values: type: string - valuesObject: - type: object - x-kubernetes-preserve-unknown-fields: true version: type: string type: object kustomize: properties: - apiVersions: - items: - type: string - type: array commonAnnotations: additionalProperties: type: string @@ -17194,10 +11397,6 @@ spec: additionalProperties: type: string type: object - components: - items: - type: string - type: array forceCommonAnnotations: type: boolean forceCommonLabels: @@ -17206,46 +11405,12 @@ spec: items: type: string type: array - kubeVersion: - type: string - labelWithoutSelector: - type: boolean namePrefix: type: string nameSuffix: type: string namespace: type: string - patches: - items: - properties: - options: - additionalProperties: - type: boolean - type: object - patch: - type: string - path: - type: string - target: - properties: - annotationSelector: - type: string - group: - type: string - kind: - type: string - labelSelector: - type: string - name: - type: string - namespace: - type: string - version: - type: string - type: object - type: object - type: array replicas: items: properties: @@ -17264,8 +11429,6 @@ spec: version: type: string type: object - name: - type: string path: type: string plugin: @@ -17363,8 +11526,6 @@ spec: - metadata - spec type: object - templatePatch: - type: string required: - generators - template @@ -17385,16 +11546,11 @@ spec: type: string step: type: string - targetRevisions: - items: - type: string - type: array required: - application - message - status - step - - targetRevisions type: object type: array conditions: @@ -17418,42 +11574,6 @@ spec: - type type: object type: array - resources: - items: - properties: - group: - type: string - health: - properties: - lastTransitionTime: - format: date-time - type: string - message: - type: string - status: - type: string - type: object - hook: - type: boolean - kind: - type: string - name: - type: string - namespace: - type: string - requiresDeletionConfirmation: - type: boolean - requiresPruning: - type: boolean - status: - type: string - syncWave: - format: int64 - type: integer - version: - type: string - type: object - type: array type: object required: - metadata diff --git a/charts/argo-cd/templates/crds/crd-extension.yaml b/charts/argo-cd/templates/crds/crd-extension.yaml new file mode 100644 index 00000000..802f0e8c --- /dev/null +++ b/charts/argo-cd/templates/crds/crd-extension.yaml @@ -0,0 +1,104 @@ +{{- if and .Values.crds.install .Values.server.extensions.enabled }} +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + {{- if .Values.crds.keep }} + "helm.sh/resource-policy": keep + {{- end }} + {{- with .Values.crds.annotations }} + {{- toYaml . | nindent 4 }} + {{- end }} + controller-gen.kubebuilder.io/version: v0.4.1 + labels: + app.kubernetes.io/name: argocdextensions.argoproj.io + app.kubernetes.io/part-of: argocd + name: argocdextensions.argoproj.io +spec: + group: argoproj.io + names: + kind: ArgoCDExtension + listKind: ArgoCDExtensionList + plural: argocdextensions + singular: argocdextension + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: ArgoCDExtension is the Schema for the argocdextensions API + 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: + description: ArgoCDExtensionSpec defines the desired state of ArgoCDExtension + properties: + sources: + description: Sources specifies where the extension should come from + items: + description: ExtensionSource specifies where the extension should + be sourced from + properties: + git: + description: Git is specified if the extension should be sourced + from a git repository + properties: + revision: + description: Revision specifies the revision of the Repository + to fetch + type: string + url: + description: URL specifies the Git repository URL to fetch + type: string + type: object + web: + description: Web is specified if the extension should be sourced + from a web file + properties: + url: + description: URK specifies the remote file URL + type: string + type: object + type: object + type: array + required: + - sources + type: object + status: + description: ArgoCDExtensionStatus defines the observed state of ArgoCDExtension + properties: + conditions: + items: + properties: + message: + description: Message contains human-readable message indicating + details about condition + type: string + status: + description: Boolean status describing if the condition is currently + true + type: string + type: + description: Type is an ArgoCDExtension condition type + type: string + required: + - message + - status + - type + type: object + type: array + type: object + type: object + served: true + storage: true +{{- end }} diff --git a/charts/argo-cd/templates/crds/crd-project.yaml b/charts/argo-cd/templates/crds/crd-project.yaml index 1865aa2d..81e57d82 100644 --- a/charts/argo-cd/templates/crds/crd-project.yaml +++ b/charts/argo-cd/templates/crds/crd-project.yaml @@ -12,9 +12,6 @@ metadata: labels: app.kubernetes.io/name: appprojects.argoproj.io app.kubernetes.io/part-of: argocd - {{- with .Values.crds.additionalLabels }} - {{- toYaml . | nindent 4}} - {{- end }} name: appprojects.argoproj.io spec: group: argoproj.io @@ -31,28 +28,22 @@ spec: - name: v1alpha1 schema: openAPIV3Schema: - description: |- - AppProject provides a logical grouping of applications, providing controls for: - * where the apps may deploy to (cluster whitelist) - * what may be deployed (repository whitelist, resource whitelist/blacklist) - * who can access these applications (roles, OIDC group claims bindings) - * and what they can do (RBAC policies) - * automation access to these roles (JWT tokens) + description: 'AppProject provides a logical grouping of applications, providing + controls for: * where the apps may deploy to (cluster whitelist) * what + may be deployed (repository whitelist, resource whitelist/blacklist) * who + can access these applications (roles, OIDC group claims bindings) * and + what they can do (RBAC policies) * automation access to these roles (JWT + tokens)' 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 + 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 + 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 @@ -63,9 +54,9 @@ spec: description: ClusterResourceBlacklist contains list of blacklisted cluster level resources items: - description: |- - GroupKind specifies a Group and a Kind, but does not force a version. This is useful for identifying - concepts during lookup stages without having partially valid types + description: GroupKind specifies a Group and a Kind, but does not + force a version. This is useful for identifying concepts during + lookup stages without having partially valid types properties: group: type: string @@ -80,9 +71,9 @@ spec: description: ClusterResourceWhitelist contains list of whitelisted cluster level resources items: - description: |- - GroupKind specifies a Group and a Kind, but does not force a version. This is useful for identifying - concepts during lookup stages without having partially valid types + description: GroupKind specifies a Group and a Kind, but does not + force a version. This is useful for identifying concepts during + lookup stages without having partially valid types properties: group: type: string @@ -96,32 +87,6 @@ spec: description: description: Description contains optional project description type: string - destinationServiceAccounts: - description: DestinationServiceAccounts holds information about the - service accounts to be impersonated for the application sync operation - for each destination. - items: - description: ApplicationDestinationServiceAccount holds information - about the service account to be impersonated for the application - sync operation. - properties: - defaultServiceAccount: - description: DefaultServiceAccount to be used for impersonation - during the sync operation - type: string - namespace: - description: Namespace specifies the target namespace for the - application's resources. - type: string - server: - description: Server specifies the URL of the target cluster's - Kubernetes control plane API. - type: string - required: - - defaultServiceAccount - - server - type: object - type: array destinations: description: Destinations contains list of destinations available for deployment @@ -131,18 +96,16 @@ spec: properties: name: description: Name is an alternate way of specifying the target - cluster by its symbolic name. This must be set if Server is - not set. + cluster by its symbolic name type: string namespace: - description: |- - Namespace specifies the target namespace for the application's resources. - The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace + description: Namespace specifies the target namespace for the + application's resources. The namespace will only be set for + namespace-scoped resources that have not set a value for .metadata.namespace type: string server: - description: Server specifies the URL of the target cluster's - Kubernetes control plane API. This must be set if Name is - not set. + description: Server specifies the URL of the target cluster + and must be set to the Kubernetes control plane API type: string type: object type: array @@ -150,9 +113,9 @@ spec: description: NamespaceResourceBlacklist contains list of blacklisted namespace level resources items: - description: |- - GroupKind specifies a Group and a Kind, but does not force a version. This is useful for identifying - concepts during lookup stages without having partially valid types + description: GroupKind specifies a Group and a Kind, but does not + force a version. This is useful for identifying concepts during + lookup stages without having partially valid types properties: group: type: string @@ -167,9 +130,9 @@ spec: description: NamespaceResourceWhitelist contains list of whitelisted namespace level resources items: - description: |- - GroupKind specifies a Group and a Kind, but does not force a version. This is useful for identifying - concepts during lookup stages without having partially valid types + description: GroupKind specifies a Group and a Kind, but does not + force a version. This is useful for identifying concepts during + lookup stages without having partially valid types properties: group: type: string diff --git a/charts/argo-cd/templates/dex/deployment.yaml b/charts/argo-cd/templates/dex/deployment.yaml index 4c6209ad..6ae17170 100755 --- a/charts/argo-cd/templates/dex/deployment.yaml +++ b/charts/argo-cd/templates/dex/deployment.yaml @@ -9,7 +9,7 @@ metadata: {{- end }} {{- end }} name: {{ template "argo-cd.dex.fullname" . }} - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.dex.name "name" .Values.dex.name) | nindent 4 }} spec: @@ -26,9 +26,6 @@ spec: metadata: annotations: checksum/cmd-params: {{ include (print $.Template.BasePath "/argocd-configs/argocd-cmd-params-cm.yaml") . | sha256sum }} - {{- if (index .Values.configs.cm "dex.config") }} - checksum/cm: {{ include (print $.Template.BasePath "/argocd-configs/argocd-cm.yaml") . | sha256sum }} - {{- end }} {{- if .Values.dex.certificateSecret.enabled }} checksum/dex-server-tls: {{ include (print $.Template.BasePath "/argocd-configs/argocd-dex-server-tls-secret.yaml") . | sha256sum }} {{- end }} @@ -43,9 +40,6 @@ spec: {{- toYaml . | nindent 8 }} {{- end }} spec: - {{- with .Values.dex.runtimeClassName | default .Values.global.runtimeClassName }} - runtimeClassName: {{ . }} - {{- end }} {{- with .Values.dex.imagePullSecrets | default .Values.global.imagePullSecrets }} imagePullSecrets: {{- toYaml . | nindent 8 }} @@ -61,11 +55,7 @@ spec: {{- with .Values.dex.priorityClassName | default .Values.global.priorityClassName }} priorityClassName: {{ . }} {{- end }} - {{- if .Values.dex.terminationGracePeriodSeconds }} - terminationGracePeriodSeconds: {{ .Values.dex.terminationGracePeriodSeconds }} - {{- end }} - serviceAccountName: {{ template "argo-cd.dex.serviceAccountName" . }} - automountServiceAccountToken: {{ .Values.dex.automountServiceAccountToken }} + serviceAccountName: {{ template "argo-cd.dexServiceAccountName" . }} containers: - name: {{ .Values.dex.name }} image: {{ .Values.dex.image.repository }}:{{ .Values.dex.image.tag }} @@ -80,21 +70,9 @@ spec: {{- toYaml . | nindent 8 }} {{- end }} env: - {{- with (concat .Values.global.env .Values.dex.env) }} + {{- with .Values.dex.env }} {{- toYaml . | nindent 10 }} {{- end }} - - name: ARGOCD_DEX_SERVER_LOGFORMAT - valueFrom: - configMapKeyRef: - key: dexserver.log.format - name: argocd-cmd-params-cm - optional: true - - name: ARGOCD_DEX_SERVER_LOGLEVEL - valueFrom: - configMapKeyRef: - key: dexserver.log.level - name: argocd-cmd-params-cm - optional: true - name: ARGOCD_DEX_SERVER_DISABLE_TLS valueFrom: configMapKeyRef: @@ -118,9 +96,8 @@ spec: {{- if .Values.dex.livenessProbe.enabled }} livenessProbe: httpGet: - path: {{ .Values.dex.livenessProbe.httpPath }} - port: {{ .Values.dex.livenessProbe.httpPort }} - scheme: {{ .Values.dex.livenessProbe.httpScheme }} + path: /healthz/live + port: metrics initialDelaySeconds: {{ .Values.dex.livenessProbe.initialDelaySeconds }} periodSeconds: {{ .Values.dex.livenessProbe.periodSeconds }} timeoutSeconds: {{ .Values.dex.livenessProbe.timeoutSeconds }} @@ -130,9 +107,8 @@ spec: {{- if .Values.dex.readinessProbe.enabled }} readinessProbe: httpGet: - path: {{ .Values.dex.readinessProbe.httpPath }} - port: {{ .Values.dex.readinessProbe.httpPort }} - scheme: {{ .Values.dex.readinessProbe.httpScheme }} + path: /healthz/ready + port: metrics initialDelaySeconds: {{ .Values.dex.readinessProbe.initialDelaySeconds }} periodSeconds: {{ .Values.dex.readinessProbe.periodSeconds }} timeoutSeconds: {{ .Values.dex.readinessProbe.timeoutSeconds }} @@ -141,10 +117,8 @@ spec: {{- end }} resources: {{- toYaml .Values.dex.resources | nindent 10 }} - {{- with .Values.dex.containerSecurityContext }} securityContext: - {{- toYaml . | nindent 10 }} - {{- end }} + {{- toYaml .Values.dex.containerSecurityContext | nindent 10 }} volumeMounts: {{- with .Values.dex.volumeMounts }} {{- toYaml . | nindent 8 }} @@ -162,7 +136,7 @@ spec: - name: copyutil image: {{ default .Values.global.image.repository .Values.dex.initImage.repository }}:{{ default (include "argo-cd.defaultTag" .) .Values.dex.initImage.tag }} imagePullPolicy: {{ default .Values.global.image.imagePullPolicy .Values.dex.initImage.imagePullPolicy }} - command: + args: - /bin/cp - -n - /usr/local/bin/argocd @@ -173,11 +147,9 @@ spec: - mountPath: /tmp name: dexconfig resources: - {{- toYaml (default .Values.dex.resources .Values.dex.initImage.resources) | nindent 10 }} - {{- with .Values.dex.containerSecurityContext }} + {{- toYaml .Values.dex.resources | nindent 10 }} securityContext: - {{- toYaml . | nindent 10 }} - {{- end }} + {{- toYaml .Values.dex.containerSecurityContext | nindent 10 }} {{- with .Values.dex.initContainers }} {{- tpl (toYaml .) $ | nindent 6 }} {{- end }} @@ -206,19 +178,9 @@ spec: {{- end }} volumes: - name: static-files - {{- if .Values.dex.emptyDir.sizeLimit }} - emptyDir: - sizeLimit: {{ .Values.dex.emptyDir.sizeLimit }} - {{- else }} emptyDir: {} - {{- end }} - name: dexconfig - {{- if .Values.dex.emptyDir.sizeLimit }} - emptyDir: - sizeLimit: {{ .Values.dex.emptyDir.sizeLimit }} - {{- else }} emptyDir: {} - {{- end }} - name: argocd-dex-server-tls secret: secretName: argocd-dex-server-tls diff --git a/charts/argo-cd/templates/dex/networkpolicy.yaml b/charts/argo-cd/templates/dex/networkpolicy.yaml index 6d0c9789..cb0fcc55 100644 --- a/charts/argo-cd/templates/dex/networkpolicy.yaml +++ b/charts/argo-cd/templates/dex/networkpolicy.yaml @@ -5,7 +5,7 @@ metadata: labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.dex.name "name" .Values.dex.name) | nindent 4 }} name: {{ template "argo-cd.dex.fullname" . }} - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} spec: ingress: - from: diff --git a/charts/argo-cd/templates/dex/pdb.yaml b/charts/argo-cd/templates/dex/pdb.yaml index 12161024..c0adc73f 100644 --- a/charts/argo-cd/templates/dex/pdb.yaml +++ b/charts/argo-cd/templates/dex/pdb.yaml @@ -3,7 +3,7 @@ apiVersion: policy/v1 kind: PodDisruptionBudget metadata: name: {{ include "argo-cd.dex.fullname" . }} - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.dex.name "name" .Values.dex.name) | nindent 4 }} {{- with .Values.dex.pdb.labels }} diff --git a/charts/argo-cd/templates/dex/role.yaml b/charts/argo-cd/templates/dex/role.yaml index e79b3cf7..49d40891 100644 --- a/charts/argo-cd/templates/dex/role.yaml +++ b/charts/argo-cd/templates/dex/role.yaml @@ -3,7 +3,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: {{ template "argo-cd.dex.fullname" . }} - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.dex.name "name" .Values.dex.name) | nindent 4 }} rules: @@ -16,4 +16,4 @@ rules: - get - list - watch -{{- end }} +{{- end }} \ No newline at end of file diff --git a/charts/argo-cd/templates/dex/rolebinding.yaml b/charts/argo-cd/templates/dex/rolebinding.yaml index 792a465a..08da1544 100644 --- a/charts/argo-cd/templates/dex/rolebinding.yaml +++ b/charts/argo-cd/templates/dex/rolebinding.yaml @@ -2,16 +2,16 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: - name: {{ include "argo-cd.dex.fullname" . }} - namespace: {{ include "argo-cd.namespace" . }} + name: {{ template "argo-cd.dex.fullname" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.dex.name "name" .Values.dex.name) | nindent 4 }} roleRef: apiGroup: rbac.authorization.k8s.io kind: Role - name: {{ include "argo-cd.dex.fullname" . }} + name: {{ template "argo-cd.dex.fullname" . }} subjects: - kind: ServiceAccount - name: {{ include "argo-cd.dex.serviceAccountName" . }} - namespace: {{ include "argo-cd.namespace" . }} -{{- end }} + name: {{ template "argo-cd.dexServiceAccountName" . }} + namespace: {{ .Release.Namespace }} +{{- end }} \ No newline at end of file diff --git a/charts/argo-cd/templates/dex/service.yaml b/charts/argo-cd/templates/dex/service.yaml index b52acfb1..73c98483 100644 --- a/charts/argo-cd/templates/dex/service.yaml +++ b/charts/argo-cd/templates/dex/service.yaml @@ -3,7 +3,7 @@ apiVersion: v1 kind: Service metadata: name: {{ template "argo-cd.dex.fullname" . }} - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} {{- if .Values.dex.metrics.service.annotations }} annotations: {{- range $key, $value := .Values.dex.metrics.service.annotations }} @@ -16,7 +16,6 @@ metadata: {{- toYaml .Values.dex.metrics.service.labels | nindent 4 }} {{- end }} spec: - {{- include "argo-cd.dualStack" . | indent 2 }} ports: - name: {{ .Values.dex.servicePortHttpName }} protocol: TCP diff --git a/charts/argo-cd/templates/dex/serviceaccount.yaml b/charts/argo-cd/templates/dex/serviceaccount.yaml index aeff2441..65abd57c 100644 --- a/charts/argo-cd/templates/dex/serviceaccount.yaml +++ b/charts/argo-cd/templates/dex/serviceaccount.yaml @@ -3,14 +3,14 @@ apiVersion: v1 kind: ServiceAccount automountServiceAccountToken: {{ .Values.dex.serviceAccount.automountServiceAccountToken }} metadata: - name: {{ include "argo-cd.dex.serviceAccountName" . }} - namespace: {{ include "argo-cd.namespace" . }} - {{- with .Values.dex.serviceAccount.annotations }} + name: {{ template "argo-cd.dexServiceAccountName" . }} + namespace: {{ .Release.Namespace | quote }} +{{- if .Values.dex.serviceAccount.annotations }} annotations: - {{- range $key, $value := . }} + {{- range $key, $value := .Values.dex.serviceAccount.annotations }} {{ $key }}: {{ $value | quote }} - {{- end }} {{- end }} +{{- end }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.dex.name "name" .Values.dex.name) | nindent 4 }} {{- end }} diff --git a/charts/argo-cd/templates/dex/servicemonitor.yaml b/charts/argo-cd/templates/dex/servicemonitor.yaml index 2564cfa1..21d12be2 100644 --- a/charts/argo-cd/templates/dex/servicemonitor.yaml +++ b/charts/argo-cd/templates/dex/servicemonitor.yaml @@ -1,9 +1,9 @@ -{{- if and (.Capabilities.APIVersions.Has "monitoring.coreos.com/v1") .Values.dex.enabled .Values.dex.metrics.enabled .Values.dex.metrics.serviceMonitor.enabled }} +{{- if and .Values.dex.metrics.enabled .Values.dex.metrics.serviceMonitor.enabled }} apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: {{ template "argo-cd.dex.fullname" . }} - namespace: {{ default (include "argo-cd.namespace" .) .Values.dex.metrics.serviceMonitor.namespace | quote }} + namespace: {{ default .Release.Namespace .Values.dex.metrics.serviceMonitor.namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.dex.name "name" .Values.dex.name) | nindent 4 }} {{- with .Values.dex.metrics.serviceMonitor.selector }} @@ -31,7 +31,6 @@ spec: metricRelabelings: {{- toYaml . |nindent 8 }} {{- end }} - honorLabels: {{ .Values.dex.metrics.serviceMonitor.honorLabels }} {{- with .Values.dex.metrics.serviceMonitor.scheme }} scheme: {{ . }} {{- end }} @@ -41,7 +40,7 @@ spec: {{- end }} namespaceSelector: matchNames: - - {{ include "argo-cd.namespace" . }} + - {{ .Release.Namespace }} selector: matchLabels: {{- include "argo-cd.selectorLabels" (dict "context" . "component" .Values.dex.name "name" .Values.dex.name) | nindent 6 }} diff --git a/charts/argo-cd/templates/extra-manifests.yaml b/charts/argo-cd/templates/extra-manifests.yaml index fc9a76b8..f17b1a93 100644 --- a/charts/argo-cd/templates/extra-manifests.yaml +++ b/charts/argo-cd/templates/extra-manifests.yaml @@ -1,6 +1,6 @@ {{ range .Values.extraObjects }} --- -{{ if typeIs "string" . }} +{{- if typeIs "string" . }} {{- tpl . $ }} {{- else }} {{- tpl (toYaml .) $ }} diff --git a/charts/argo-cd/templates/networkpolicy-default-deny.yaml b/charts/argo-cd/templates/networkpolicy-default-deny.yaml index 06d1979a..b499ab03 100644 --- a/charts/argo-cd/templates/networkpolicy-default-deny.yaml +++ b/charts/argo-cd/templates/networkpolicy-default-deny.yaml @@ -5,7 +5,7 @@ metadata: labels: {{- include "argo-cd.labels" (dict "context" .) | nindent 4 }} name: {{ template "argo-cd.fullname" . }}-default-deny - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} spec: podSelector: {} policyTypes: diff --git a/charts/argo-cd/templates/redis-secret-init/job.yaml b/charts/argo-cd/templates/redis-secret-init/job.yaml deleted file mode 100644 index 5fd41f64..00000000 --- a/charts/argo-cd/templates/redis-secret-init/job.yaml +++ /dev/null @@ -1,70 +0,0 @@ -{{- if and .Values.redisSecretInit.enabled (not .Values.externalRedis.host) }} -apiVersion: batch/v1 -kind: Job -metadata: - name: {{ include "argo-cd.redisSecretInit.fullname" . }} - namespace: {{ include "argo-cd.namespace" . | quote }} - annotations: - "helm.sh/hook": pre-install,pre-upgrade - "helm.sh/hook-delete-policy": before-hook-creation - {{- range $key, $value := .Values.redisSecretInit.jobAnnotations }} - {{ $key }}: {{ $value | quote }} - {{- end }} - labels: - {{- include "argo-cd.labels" (dict "context" . "component" .Values.redisSecretInit.name "name" .Values.redisSecretInit.name) | nindent 4 }} -spec: - ttlSecondsAfterFinished: 60 - template: - metadata: - labels: - {{- include "argo-cd.labels" (dict "context" . "component" .Values.redisSecretInit.name "name" .Values.redisSecretInit.name) | nindent 8 }} - {{- with (mergeOverwrite (deepCopy .Values.global.podLabels) .Values.redisSecretInit.podLabels) }} - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with (mergeOverwrite (deepCopy .Values.global.podAnnotations) .Values.redisSecretInit.podAnnotations) }} - annotations: - {{- range $key, $value := . }} - {{ $key }}: {{ $value | quote }} - {{- end }} - {{- end }} - spec: - {{- with .Values.redisSecretInit.imagePullSecrets | default .Values.global.imagePullSecrets }} - imagePullSecrets: - {{- toYaml . | nindent 8 }} - {{- end }} - containers: - - command: - - argocd - - admin - - redis-initial-password - image: {{ default .Values.global.image.repository .Values.redisSecretInit.image.repository }}:{{ default (include "argo-cd.defaultTag" .) .Values.redisSecretInit.image.tag }} - imagePullPolicy: {{ default .Values.global.image.imagePullPolicy .Values.redisSecretInit.image.imagePullPolicy }} - name: secret-init - resources: - {{- toYaml .Values.redisSecretInit.resources | nindent 10 }} - {{- with .Values.redisSecretInit.containerSecurityContext }} - securityContext: - {{- toYaml . | nindent 10 }} - {{- end }} - {{- with .Values.redisSecretInit.securityContext }} - securityContext: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.redisSecretInit.priorityClassName | default .Values.global.priorityClassName }} - priorityClassName: {{ . }} - {{- end }} - restartPolicy: OnFailure - {{- with include "argo-cd.affinity" (dict "context" . "component" .Values.redisSecretInit) }} - affinity: - {{- trim . | nindent 8 }} - {{- end }} - {{- with .Values.redisSecretInit.nodeSelector | default .Values.global.nodeSelector }} - nodeSelector: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.redisSecretInit.tolerations | default .Values.global.tolerations }} - tolerations: - {{- toYaml . | nindent 8 }} - {{- end }} - serviceAccountName: {{ include "argo-cd.redisSecretInit.serviceAccountName" . }} -{{- end }} diff --git a/charts/argo-cd/templates/redis-secret-init/role.yaml b/charts/argo-cd/templates/redis-secret-init/role.yaml deleted file mode 100644 index 9e8259f9..00000000 --- a/charts/argo-cd/templates/redis-secret-init/role.yaml +++ /dev/null @@ -1,27 +0,0 @@ -{{- if and .Values.redisSecretInit.enabled (not .Values.externalRedis.host) }} -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - annotations: - "helm.sh/hook": pre-install,pre-upgrade - "helm.sh/hook-delete-policy": before-hook-creation - labels: - {{- include "argo-cd.labels" (dict "context" . "component" .Values.redisSecretInit.name "name" .Values.redisSecretInit.name) | nindent 4 }} - name: {{ include "argo-cd.redisSecretInit.fullname" . }} - namespace: {{ include "argo-cd.namespace" . | quote }} -rules: - - apiGroups: - - "" - resources: - - secrets - resourceNames: - - argocd-redis - verbs: - - get - - apiGroups: - - "" - resources: - - secrets - verbs: - - create -{{- end }} diff --git a/charts/argo-cd/templates/redis-secret-init/rolebinding.yaml b/charts/argo-cd/templates/redis-secret-init/rolebinding.yaml deleted file mode 100644 index a199628a..00000000 --- a/charts/argo-cd/templates/redis-secret-init/rolebinding.yaml +++ /dev/null @@ -1,19 +0,0 @@ -{{- if and .Values.redisSecretInit.enabled (not .Values.externalRedis.host) }} -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - annotations: - "helm.sh/hook": pre-install,pre-upgrade - "helm.sh/hook-delete-policy": before-hook-creation - labels: - {{- include "argo-cd.labels" (dict "context" . "component" .Values.redisSecretInit.name "name" .Values.redisSecretInit.name) | nindent 4 }} - name: {{ include "argo-cd.redisSecretInit.fullname" . }} - namespace: {{ include "argo-cd.namespace" . | quote }} -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: {{ include "argo-cd.redisSecretInit.fullname" . }} -subjects: - - kind: ServiceAccount - name: {{ include "argo-cd.redisSecretInit.serviceAccountName" . }} -{{- end }} diff --git a/charts/argo-cd/templates/redis-secret-init/serviceaccount.yaml b/charts/argo-cd/templates/redis-secret-init/serviceaccount.yaml deleted file mode 100644 index 85540d26..00000000 --- a/charts/argo-cd/templates/redis-secret-init/serviceaccount.yaml +++ /dev/null @@ -1,16 +0,0 @@ -{{- if and .Values.redisSecretInit.enabled .Values.redisSecretInit.serviceAccount.create (not .Values.externalRedis.host) }} -apiVersion: v1 -kind: ServiceAccount -automountServiceAccountToken: {{ .Values.redisSecretInit.serviceAccount.automountServiceAccountToken }} -metadata: - name: {{ include "argo-cd.redisSecretInit.serviceAccountName" . }} - namespace: {{ include "argo-cd.namespace" . | quote }} - annotations: - "helm.sh/hook": pre-install,pre-upgrade - "helm.sh/hook-delete-policy": before-hook-creation - {{- range $key, $value := .Values.redisSecretInit.serviceAccount.annotations }} - {{ $key }}: {{ $value | quote }} - {{- end }} - labels: - {{- include "argo-cd.labels" (dict "context" . "component" .Values.redisSecretInit.name "name" .Values.redisSecretInit.name) | nindent 4 }} -{{- end }} diff --git a/charts/argo-cd/templates/redis/deployment.yaml b/charts/argo-cd/templates/redis/deployment.yaml index 65581665..fc0bebbd 100755 --- a/charts/argo-cd/templates/redis/deployment.yaml +++ b/charts/argo-cd/templates/redis/deployment.yaml @@ -10,7 +10,7 @@ metadata: {{- end }} {{- end }} name: {{ include "argo-cd.redis.fullname" . }} - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.redis.name "name" .Values.redis.name) | nindent 4 }} spec: @@ -33,9 +33,6 @@ spec: {{- end }} {{- end }} spec: - {{- with .Values.redis.runtimeClassName | default .Values.global.runtimeClassName }} - runtimeClassName: {{ . }} - {{- end }} {{- with .Values.redis.imagePullSecrets | default .Values.global.imagePullSecrets }} imagePullSecrets: {{- toYaml . | nindent 8 }} @@ -51,77 +48,37 @@ spec: {{- with .Values.redis.priorityClassName | default .Values.global.priorityClassName }} priorityClassName: {{ . }} {{- end }} - {{- if .Values.redis.terminationGracePeriodSeconds }} - terminationGracePeriodSeconds: {{ .Values.redis.terminationGracePeriodSeconds }} - {{- end }} - serviceAccountName: {{ include "argo-cd.redis.serviceAccountName" . }} - automountServiceAccountToken: {{ .Values.redis.automountServiceAccountToken }} + serviceAccountName: {{ include "argo-cd.redisServiceAccountName" . }} containers: - name: {{ .Values.redis.name }} image: {{ .Values.redis.image.repository }}:{{ .Values.redis.image.tag }} imagePullPolicy: {{ default .Values.global.image.imagePullPolicy .Values.redis.image.imagePullPolicy }} args: - {{- with .Values.redis.extraArgs }} - {{- toYaml . | nindent 8 }} - {{- end }} - --save - "" - --appendonly - "no" - - --requirepass $(REDIS_PASSWORD) + {{- with .Values.redis.extraArgs }} + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.redis.env }} env: - - name: REDIS_PASSWORD - valueFrom: - secretKeyRef: - name: argocd-redis - key: auth - {{- with (concat .Values.global.env .Values.redis.env) }} {{- toYaml . | nindent 8 }} {{- end }} {{- with .Values.redis.envFrom }} envFrom: {{- toYaml . | nindent 8 }} {{- end }} - {{- if .Values.redis.livenessProbe.enabled }} - livenessProbe: - initialDelaySeconds: {{ .Values.redis.livenessProbe.initialDelaySeconds }} - periodSeconds: {{ .Values.redis.livenessProbe.periodSeconds }} - timeoutSeconds: {{ .Values.redis.livenessProbe.timeoutSeconds }} - successThreshold: {{ .Values.redis.livenessProbe.successThreshold }} - failureThreshold: {{ .Values.redis.livenessProbe.failureThreshold }} - exec: - command: - - sh - - -c - - /health/redis_liveness.sh - {{- end }} - {{- if .Values.redis.readinessProbe.enabled }} - readinessProbe: - initialDelaySeconds: {{ .Values.redis.readinessProbe.initialDelaySeconds }} - periodSeconds: {{ .Values.redis.readinessProbe.periodSeconds }} - timeoutSeconds: {{ .Values.redis.readinessProbe.timeoutSeconds }} - successThreshold: {{ .Values.redis.readinessProbe.successThreshold }} - failureThreshold: {{ .Values.redis.readinessProbe.failureThreshold }} - exec: - command: - - sh - - -c - - /health/redis_readiness.sh - {{- end }} ports: - name: redis containerPort: {{ .Values.redis.containerPorts.redis }} protocol: TCP resources: {{- toYaml .Values.redis.resources | nindent 10 }} - {{- with .Values.redis.containerSecurityContext }} securityContext: - {{- toYaml . | nindent 10 }} - {{- end }} - volumeMounts: - - mountPath: /health - name: health + {{- toYaml .Values.redis.containerSecurityContext | nindent 10 }} {{- with .Values.redis.volumeMounts }} + volumeMounts: {{- toYaml . | nindent 10 }} {{- end }} {{- if .Values.redis.exporter.enabled }} @@ -133,46 +90,17 @@ spec: value: {{ printf "redis://localhost:%v" .Values.redis.containerPorts.redis }} - name: REDIS_EXPORTER_WEB_LISTEN_ADDRESS value: {{ printf "0.0.0.0:%v" .Values.redis.containerPorts.metrics }} - - name: REDIS_PASSWORD - valueFrom: - secretKeyRef: - name: argocd-redis - key: auth - {{- with (concat .Values.global.env .Values.redis.exporter.env) }} + {{- with .Values.redis.exporter.env }} {{- toYaml . | nindent 8 }} {{- end }} ports: - name: metrics containerPort: {{ .Values.redis.containerPorts.metrics }} protocol: TCP - {{- if .Values.redis.exporter.livenessProbe.enabled }} - livenessProbe: - httpGet: - path: /metrics - port: {{ .Values.redis.containerPorts.metrics }} - initialDelaySeconds: {{ .Values.redis.exporter.livenessProbe.initialDelaySeconds }} - timeoutSeconds: {{ .Values.redis.exporter.livenessProbe.timeoutSeconds }} - periodSeconds: {{ .Values.redis.exporter.livenessProbe.periodSeconds }} - successThreshold: {{ .Values.redis.exporter.livenessProbe.successThreshold }} - failureThreshold: {{ .Values.redis.exporter.livenessProbe.failureThreshold }} - {{- end }} - {{- if .Values.redis.exporter.readinessProbe.enabled }} - readinessProbe: - httpGet: - path: /metrics - port: {{ .Values.redis.containerPorts.metrics }} - initialDelaySeconds: {{ .Values.redis.exporter.readinessProbe.initialDelaySeconds }} - timeoutSeconds: {{ .Values.redis.exporter.readinessProbe.timeoutSeconds }} - periodSeconds: {{ .Values.redis.exporter.readinessProbe.periodSeconds }} - successThreshold: {{ .Values.redis.exporter.readinessProbe.successThreshold }} - failureThreshold: {{ .Values.redis.exporter.readinessProbe.failureThreshold }} - {{- end }} resources: {{- toYaml .Values.redis.exporter.resources | nindent 10 }} - {{- with .Values.redis.exporter.containerSecurityContext }} securityContext: - {{- toYaml . | nindent 10 }} - {{- end }} + {{- toYaml .Values.redis.exporter.containerSecurityContext | nindent 10 }} {{- end }} {{- with .Values.redis.extraContainers }} {{- tpl (toYaml .) $ | nindent 6 }} @@ -204,12 +132,8 @@ spec: {{- end }} {{- end }} {{- end }} - volumes: - - name: health - configMap: - name: {{ include "argo-cd.redis.fullname" . }}-health-configmap - defaultMode: 493 {{- with .Values.redis.volumes }} + volumes: {{- toYaml . | nindent 8}} {{- end }} {{- with .Values.redis.dnsConfig }} diff --git a/charts/argo-cd/templates/redis/health-configmap.yaml b/charts/argo-cd/templates/redis/health-configmap.yaml deleted file mode 100644 index 7443625f..00000000 --- a/charts/argo-cd/templates/redis/health-configmap.yaml +++ /dev/null @@ -1,37 +0,0 @@ -{{- $redisHa := index .Values "redis-ha" -}} -{{- if and .Values.redis.enabled (not $redisHa.enabled) -}} -apiVersion: v1 -kind: ConfigMap -metadata: - name: {{ include "argo-cd.redis.fullname" . }}-health-configmap - namespace: {{ include "argo-cd.namespace" . }} - labels: - {{- include "argo-cd.labels" (dict "context" . "component" .Values.redis.name "name" .Values.redis.name) | nindent 4 }} -data: - redis_liveness.sh: | - response=$( - redis-cli \ - -a "${REDIS_PASSWORD}" --no-auth-warning \ - -h localhost \ - -p {{ .Values.redis.containerPorts.redis }} \ - ping - ) - if [ "$response" != "PONG" ] && [ "${response:0:7}" != "LOADING" ] ; then - echo "$response" - exit 1 - fi - echo "response=$response" - redis_readiness.sh: | - response=$( - redis-cli \ - -a "${REDIS_PASSWORD}" --no-auth-warning \ - -h localhost \ - -p {{ .Values.redis.containerPorts.redis }} \ - ping - ) - if [ "$response" != "PONG" ] ; then - echo "$response" - exit 1 - fi - echo "response=$response" -{{- end }} diff --git a/charts/argo-cd/templates/redis/metrics.yaml b/charts/argo-cd/templates/redis/metrics.yaml index 040f5ebf..db526285 100644 --- a/charts/argo-cd/templates/redis/metrics.yaml +++ b/charts/argo-cd/templates/redis/metrics.yaml @@ -4,26 +4,22 @@ apiVersion: v1 kind: Service metadata: name: {{ include "argo-cd.redis.fullname" . }}-metrics - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.redis.name "name" .Values.redis.name) | nindent 4 }} {{- with .Values.redis.metrics.service.labels }} {{- toYaml . | nindent 4 }} {{- end }} - {{- if or .Values.redis.metrics.service.annotations .Values.global.addPrometheusAnnotations }} + {{- with .Values.redis.metrics.service.annotations }} annotations: - {{- if .Values.global.addPrometheusAnnotations }} - prometheus.io/port: {{ .Values.redis.metrics.service.servicePort | quote }} - prometheus.io/scrape: "true" - {{- end }} - {{- range $key, $value := .Values.redis.metrics.service.annotations }} + {{- range $key, $value := . }} {{ $key }}: {{ $value | quote }} {{- end }} {{- end }} spec: type: {{ .Values.redis.metrics.service.type }} - {{- if and .Values.redis.metrics.service.clusterIP (eq .Values.redis.metrics.service.type "ClusterIP") }} - clusterIP: {{ .Values.redis.metrics.service.clusterIP }} + {{- with .Values.redis.metrics.service.clusterIP }} + clusterIP: {{ . }} {{- end }} ports: - name: {{ .Values.redis.metrics.service.portName }} diff --git a/charts/argo-cd/templates/redis/networkpolicy.yaml b/charts/argo-cd/templates/redis/networkpolicy.yaml index d602a931..cd8150e1 100644 --- a/charts/argo-cd/templates/redis/networkpolicy.yaml +++ b/charts/argo-cd/templates/redis/networkpolicy.yaml @@ -6,7 +6,7 @@ metadata: labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.redis.name "name" .Values.redis.name) | nindent 4 }} name: {{ template "argo-cd.redis.fullname" . }} - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} spec: ingress: - from: diff --git a/charts/argo-cd/templates/redis/pdb.yaml b/charts/argo-cd/templates/redis/pdb.yaml index c614144d..59423b47 100644 --- a/charts/argo-cd/templates/redis/pdb.yaml +++ b/charts/argo-cd/templates/redis/pdb.yaml @@ -4,7 +4,7 @@ apiVersion: policy/v1 kind: PodDisruptionBudget metadata: name: {{ include "argo-cd.redis.fullname" . }} - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.redis.name "name" .Values.redis.name) | nindent 4 }} {{- with .Values.redis.pdb.labels }} diff --git a/charts/argo-cd/templates/redis/service.yaml b/charts/argo-cd/templates/redis/service.yaml index a60cf77e..31f497d7 100644 --- a/charts/argo-cd/templates/redis/service.yaml +++ b/charts/argo-cd/templates/redis/service.yaml @@ -4,7 +4,7 @@ apiVersion: v1 kind: Service metadata: name: {{ template "argo-cd.redis.fullname" . }} - namespace: {{ include "argo-cd.namespace" . }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.redis.name "name" .Values.redis.name) | nindent 4 }} {{- with .Values.redis.service.labels }} @@ -17,7 +17,6 @@ metadata: {{- end }} {{- end }} spec: - {{- include "argo-cd.dualStack" . | indent 2 }} ports: - name: redis port: {{ .Values.redis.servicePort }} diff --git a/charts/argo-cd/templates/redis/serviceaccount.yaml b/charts/argo-cd/templates/redis/serviceaccount.yaml index bc942e22..503fb434 100644 --- a/charts/argo-cd/templates/redis/serviceaccount.yaml +++ b/charts/argo-cd/templates/redis/serviceaccount.yaml @@ -3,14 +3,14 @@ apiVersion: v1 kind: ServiceAccount automountServiceAccountToken: {{ .Values.redis.serviceAccount.automountServiceAccountToken }} metadata: - name: {{ include "argo-cd.redis.serviceAccountName" . }} - namespace: {{ include "argo-cd.namespace" . }} - {{- with .Values.redis.serviceAccount.annotations }} + name: {{ template "argo-cd.redisServiceAccountName" . }} + namespace: {{ .Release.Namespace | quote }} +{{- if .Values.redis.serviceAccount.annotations }} annotations: - {{- range $key, $value := . }} + {{- range $key, $value := .Values.redis.serviceAccount.annotations }} {{ $key }}: {{ $value | quote }} - {{- end }} {{- end }} +{{- end }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.redis.name "name" .Values.redis.name) | nindent 4 }} {{- end }} diff --git a/charts/argo-cd/templates/redis/servicemonitor.yaml b/charts/argo-cd/templates/redis/servicemonitor.yaml index 4710d286..46a7e32c 100644 --- a/charts/argo-cd/templates/redis/servicemonitor.yaml +++ b/charts/argo-cd/templates/redis/servicemonitor.yaml @@ -1,10 +1,10 @@ {{- $redisHa := (index .Values "redis-ha") -}} -{{- if and (.Capabilities.APIVersions.Has "monitoring.coreos.com/v1") .Values.redis.enabled (not $redisHa.enabled) .Values.redis.metrics.enabled .Values.redis.metrics.serviceMonitor.enabled -}} +{{- if and .Values.redis.enabled (not $redisHa.enabled) .Values.redis.metrics.enabled .Values.redis.metrics.serviceMonitor.enabled -}} apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: {{ template "argo-cd.redis.fullname" . }} - namespace: {{ default (include "argo-cd.namespace" .) .Values.redis.metrics.serviceMonitor.namespace | quote }} + namespace: {{ default .Release.Namespace .Values.redis.metrics.serviceMonitor.namespace | quote }} labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.redis.name "name" .Values.redis.name) | nindent 4 }} {{- with .Values.redis.metrics.serviceMonitor.selector }} @@ -32,7 +32,6 @@ spec: metricRelabelings: {{- toYaml . | nindent 8 }} {{- end }} - honorLabels: {{ .Values.redis.metrics.serviceMonitor.honorLabels }} {{- with .Values.redis.metrics.serviceMonitor.scheme }} scheme: {{ . }} {{- end }} @@ -42,7 +41,7 @@ spec: {{- end }} namespaceSelector: matchNames: - - {{ include "argo-cd.namespace" . }} + - {{ .Release.Namespace }} selector: matchLabels: {{- include "argo-cd.selectorLabels" (dict "context" . "component" .Values.redis.name "name" .Values.redis.name) | nindent 6 }} diff --git a/charts/argo-cd/values.yaml b/charts/argo-cd/values.yaml index f1213daf..3f95a663 100644 --- a/charts/argo-cd/values.yaml +++ b/charts/argo-cd/values.yaml @@ -6,15 +6,18 @@ nameOverride: argocd # -- String to fully override `"argo-cd.fullname"` fullnameOverride: "" -# -- Override the namespace -# @default -- `.Release.Namespace` -namespaceOverride: "" # -- Override the Kubernetes version, which is used to evaluate certain manifests kubeVersionOverride: "" # Override APIVersions # If you want to template helm charts but cannot access k8s API server # you can set api versions here -apiVersionOverrides: {} +apiVersionOverrides: + # -- String to override apiVersion of cert-manager resources rendered by this helm chart + certmanager: "" # cert-manager.io/v1 + # -- String to override apiVersion of GKE resources rendered by this helm chart + cloudgoogle: "" # cloud.google.com/v1 + # -- String to override apiVersion of autoscaling rendered by this helm chart + autoscaling: "" # autoscaling/v2 # -- Create aggregated roles that extend existing cluster roles to interact with argo-cd resources ## Ref: https://kubernetes.io/docs/reference/access-authn-authz/rbac/#aggregated-clusterroles @@ -35,18 +38,9 @@ crds: keep: true # -- Annotations to be added to all CRDs annotations: {} - # -- Addtional labels to be added to all CRDs - additionalLabels: {} ## Globally shared configuration global: - # -- Default domain used by all components - ## Used for ingresses, certificates, SSO, notifications, etc. - domain: argocd.example.com - - # -- Runtime class name for all components - runtimeClassName: "" - # -- Common labels for the all resources additionalLabels: {} # app: argo-cd @@ -85,9 +79,6 @@ global: # -- Labels for the all deployed pods podLabels: {} - # -- Add Prometheus scrape annotations to all metrics services. This can be used as an alternative to the ServiceMonitors. - addPrometheusAnnotations: false - # -- Toggle and define pod-level security context. # @default -- `{}` (See [values.yaml]) securityContext: {} @@ -101,13 +92,6 @@ global: # hostnames: # - git.myhostname - # Configure dual-stack used by all component services - dualStack: - # -- IP family policy to configure dual-stack see [Configure dual-stack](https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services) - ipFamilyPolicy: "" - # -- IP families that should be supported and the order in which they should be applied to ClusterIP as well. Can be IPv4 and/or IPv6. - ipFamilies: [] - # Default network policy rules used by all components networkPolicy: # -- Create NetworkPolicy objects for all components @@ -119,8 +103,7 @@ global: priorityClassName: "" # -- Default node selector for all components - nodeSelector: - kubernetes.io/os: linux + nodeSelector: {} # -- Default tolerations for all components tolerations: [] @@ -142,7 +125,7 @@ global: # - antarctica-west1 # -- Default [TopologySpreadConstraints] rules for all components - ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/ + ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/ ## If labelSelector is left out, it will default to the labelSelector of the component topologySpreadConstraints: [] # - maxSkew: 1 @@ -156,12 +139,6 @@ global: # maxSurge: 25% # maxUnavailable: 25% - # -- Environment variables to pass to all deployed Deployments - env: [] - - # -- Annotations for the all deployed Certificates - certificateAnnotations: {} - ## Argo Configs configs: # General Argo CD configuration @@ -173,12 +150,12 @@ configs: # -- Annotations to be added to argocd-cm configmap annotations: {} - # -- The name of tracking label used by Argo CD for resource pruning - application.instanceLabelKey: argocd.argoproj.io/instance + # -- Argo CD's externally facing base URL (optional). Required when configuring SSO + url: "" - # -- Enable control of the service account used for the sync operation (alpha) - ## Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/app-sync-using-impersonation/ - application.sync.impersonation.enabled: false + # -- The name of tracking label used by Argo CD for resource pruning + # @default -- Defaults to app.kubernetes.io/instance + application.instanceLabelKey: argocd.argoproj.io/instance # -- Enable logs RBAC enforcement ## Ref: https://argo-cd.readthedocs.io/en/latest/operator-manual/upgrading/2.3-2.4/#enable-logs-rbac-enforcement @@ -198,10 +175,6 @@ configs: # -- Timeout to refresh application data as well as target manifests cache timeout.hard.reconciliation: 0s - # -- Enable Status Badge - ## Ref: https://argo-cd.readthedocs.io/en/stable/user-guide/status-badge/ - statusbadge.enabled: false - # Dex configuration # dex.config: | # connectors: @@ -233,32 +206,9 @@ configs: # - profile # - email - # Extension Configuration - ## Ref: https://argo-cd.readthedocs.io/en/latest/developer-guide/extensions/proxy-extensions/ - # extension.config: | - # extensions: - # - name: httpbin - # backend: - # connectionTimeout: 2s - # keepAlive: 15s - # idleConnectionTimeout: 60s - # maxIdleConnections: 30 - # services: - # - url: http://httpbin.org - # headers: - # - name: some-header - # value: '$some.argocd.secret.key' - # cluster: - # name: some-cluster - # server: https://some-cluster - # Argo CD configuration parameters ## Ref: https://github.com/argoproj/argo-cd/blob/master/docs/operator-manual/argocd-cmd-params-cm.yaml params: - # -- Create the argocd-cmd-params-cm configmap - # If false, it is expected the configmap will be created by something else. - create: true - # -- Annotations to be added to the argocd-cmd-params-cm ConfigMap annotations: {} @@ -278,7 +228,6 @@ configs: ## Server properties # -- Run server without TLS - ## NOTE: This value should be set when you generate params by other means as it changes ports used by ingress template. server.insecure: false # -- Value for base href in index.html. Used if Argo CD is running behind reverse proxy under subpath different from / server.basehref: / @@ -289,9 +238,7 @@ configs: # -- Disable Argo CD RBAC for user authentication server.disable.auth: false # -- Enable GZIP compression - server.enable.gzip: true - # -- Enable proxy extension feature. (proxy extension is in Alpha phase) - server.enable.proxy.extension: false + server.enable.gzip: false # -- Set X-Frame-Options header in HTTP responses to value. To disable, set to "". server.x.frame.options: sameorigin @@ -304,22 +251,6 @@ configs: applicationsetcontroller.policy: sync # -- Enables use of the Progressive Syncs capability applicationsetcontroller.enable.progressive.syncs: false - # -- A list of glob patterns specifying where to look for ApplicationSet resources. (e.g. `"argocd,argocd-appsets-*"`) - # @default -- `""` (default is only the ns where the controller is installed) - ## For more information: https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Appset-Any-Namespace/ - applicationsetcontroller.namespaces: "" - - # -- Enables [Applications in any namespace] - ## List of additional namespaces where applications may be created in and reconciled from. - ## The namespace where Argo CD is installed to will always be allowed. - ## Set comma-separated list. (e.g. app-team-one, app-team-two) - application.namespaces: "" - - # -- JQ Path expression timeout - ## By default, the evaluation of a JQPathExpression is limited to one second. - ## If you encounter a "JQ patch execution timed out" error message due to a complex JQPathExpression - ## that requires more time to evaluate, you can extend the timeout period. - controller.ignore.normalizer.jq.timeout: "1s" # Argo CD RBAC policy configuration ## Ref: https://github.com/argoproj/argo-cd/blob/master/docs/operator-manual/rbac.md @@ -343,7 +274,7 @@ configs: # p, subject, resource, action, object, effect # Role definitions and bindings are in the form: # g, subject, inherited-subject - # policy.csv: | + # policy.csv | # p, role:org-admin, applications, *, */*, allow # p, role:org-admin, clusters, get, *, allow # p, role:org-admin, repositories, *, *, allow @@ -355,9 +286,6 @@ configs: # The scope value can be a string, or a list of strings. scopes: "[groups]" - # -- Matcher function for Casbin, `glob` for glob matcher and `regex` for regex matcher. - policy.matchMode: "glob" - # GnuPG public keys for commit verification ## Ref: https://argo-cd.readthedocs.io/en/stable/user-guide/gpg-verification/ gpg: @@ -376,21 +304,13 @@ configs: # SSH known hosts for Git repositories ## Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/declarative-setup/#ssh-known-host-public-keys ssh: - # -- Specifies if the argocd-ssh-known-hosts-cm configmap should be created by Helm. - create: true - # -- Annotations to be added to argocd-ssh-known-hosts-cm configmap annotations: {} # -- Known hosts to be added to the known host list by default. # @default -- See [values.yaml] knownHosts: | - [ssh.github.com]:443 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEmKSENjQEezOmxkZMy7opKgwFB9nkt5YRrYMjNuG5N87uRgg6CLrbo5wAdT/y6v0mKV0U2w0WZ2YB/++Tpockg= - [ssh.github.com]:443 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl - [ssh.github.com]:443 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCj7ndNxQowgcQnjshcLrqPEiiphnt+VTTvDP6mHBL9j1aNUkY4Ue1gvwnGLVlOhGeYrnZaMgRK6+PKCUXaDbC7qtbW8gIkhL7aGCsOr/C56SJMy/BCZfxd1nWzAOxSDPgVsmerOBYfNqltV9/hWCqBywINIR+5dIg6JTJ72pcEpEjcYgXkE2YEFXV1JHnsKgbLWNlhScqb2UmyRkQyytRLtL+38TGxkxCflmO+5Z8CSSNY7GidjMIZ7Q4zMjA2n1nGrlTDkzwDCsw+wqFPGQA179cnfGWOWRVruj16z6XyvxvjJwbz0wQZ75XK5tKSb7FNyeIEs4TT4jk+S4dhPeAUC5y+bDYirYgM4GC7uEnztnZyaVWQ7B381AK4Qdrwt51ZqExKbQpTUNn+EjqoTwvqNj4kqx5QUCI0ThS/YkOxJCXmPUWZbhjpCg56i+2aB6CmK2JGhn57K5mj0MNdBXA4/WnwH6XoPWJzK5Nyu2zB3nAZp+S5hpQs+p1vN1/wsjk= - bitbucket.org ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBPIQmuzMBuKdWeF4+a2sjSSpBK0iqitSQ+5BM9KhpexuGt20JpTVM7u5BDZngncgrqDMbWdxMWWOGtZ9UgbqgZE= - bitbucket.org ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIazEu89wgQZ4bqs3d63QSMzYVa0MuJ2e2gKTKqu+UUO - bitbucket.org ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDQeJzhupRu0u0cdegZIa8e86EG2qOCsIsD1Xw0xSeiPDlCr7kq97NLmMbpKTX6Esc30NuoqEEHCuc7yWtwp8dI76EEEB1VqY9QJq6vk+aySyboD5QF61I/1WeTwu+deCbgKMGbUijeXhtfbxSxm6JwGrXrhBdofTsbKRUsrN1WoNgUa8uqN1Vx6WAJw1JHPhglEGGHea6QICwJOAr/6mrui/oB7pkaWKHj3z7d1IC4KWLtY47elvjbaTlkN04Kc/5LFEirorGYVbt15kAUlqGM65pk6ZBxtaO3+30LVlORZkxOh+LKL/BvbZ/iRNhItLqNyieoQj/uh/7Iv4uyH/cV/0b4WDSd3DptigWq84lJubb9t/DnZlrJazxyDCulTmKdOR7vs9gMTo+uoIrPSb8ScTtvw65+odKAlBj59dhnVp9zd7QUojOpXlL62Aw56U4oO+FALuevvMjiWeavKhJqlR7i5n9srYcrNV7ttmDw7kf/97P5zauIhxcjX+xHv4M= + bitbucket.org ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAubiN81eDcafrgMeLzaFPsw2kNvEcqTKl/VqLat/MaB33pZy0y3rJZtnqwR2qOOvbwKZYKiEO1O6VqNEBxKvJJelCq0dTXWT5pbO2gDXC6h6QDXCaHo6pOHGPUy+YBaGQRGuSusMEASYiWunYN0vCAI8QaXnWMXNMdFP3jHAJH0eDsoiGnLPBlBp4TNm6rYI74nMzgz3B9IikW4WVK+dc8KZJZWYjAuORU3jc1c/NPskD2ASinf8v3xnfXeukU0sJ5N6m5E8VLjObPEO+mN2t/FZTMZLiFqPWc/ALSqnMnnhwrNi2rbfg/rd/IpL8Le3pSBne8+seeFVBoGqzHM9yXw== github.com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEmKSENjQEezOmxkZMy7opKgwFB9nkt5YRrYMjNuG5N87uRgg6CLrbo5wAdT/y6v0mKV0U2w0WZ2YB/++Tpockg= github.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl github.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCj7ndNxQowgcQnjshcLrqPEiiphnt+VTTvDP6mHBL9j1aNUkY4Ue1gvwnGLVlOhGeYrnZaMgRK6+PKCUXaDbC7qtbW8gIkhL7aGCsOr/C56SJMy/BCZfxd1nWzAOxSDPgVsmerOBYfNqltV9/hWCqBywINIR+5dIg6JTJ72pcEpEjcYgXkE2YEFXV1JHnsKgbLWNlhScqb2UmyRkQyytRLtL+38TGxkxCflmO+5Z8CSSNY7GidjMIZ7Q4zMjA2n1nGrlTDkzwDCsw+wqFPGQA179cnfGWOWRVruj16z6XyvxvjJwbz0wQZ75XK5tKSb7FNyeIEs4TT4jk+S4dhPeAUC5y+bDYirYgM4GC7uEnztnZyaVWQ7B381AK4Qdrwt51ZqExKbQpTUNn+EjqoTwvqNj4kqx5QUCI0ThS/YkOxJCXmPUWZbhjpCg56i+2aB6CmK2JGhn57K5mj0MNdBXA4/WnwH6XoPWJzK5Nyu2zB3nAZp+S5hpQs+p1vN1/wsjk= @@ -417,9 +337,6 @@ configs: # ... # -----END CERTIFICATE----- - # -- Specifies if the argocd-tls-certs-cm configmap should be created by Helm. - create: true - # ConfigMap for Config Management Plugins # Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/config-management-plugins/ cmp: @@ -464,14 +381,14 @@ configs: # command: [sh, -c, find . -name env.yaml] # -- Provide one or multiple [external cluster credentials] - # @default -- `{}` (See [values.yaml]) + # @default -- `[]` (See [values.yaml]) ## Ref: ## - https://argo-cd.readthedocs.io/en/stable/operator-manual/declarative-setup/#clusters ## - https://argo-cd.readthedocs.io/en/stable/operator-manual/security/#external-cluster-credentials ## - https://argo-cd.readthedocs.io/en/stable/user-guide/projects/#project-scoped-repositories-and-clusters - clusterCredentials: {} - # mycluster: - # server: https://mycluster.example.com + clusterCredentials: [] + # - name: mycluster + # server: https://mycluster.com # labels: {} # annotations: {} # config: @@ -479,8 +396,8 @@ configs: # tlsClientConfig: # insecure: false # caData: "" - # mycluster2: - # server: https://mycluster2.example.com + # - name: mycluster2 + # server: https://mycluster2.com # labels: {} # annotations: {} # namespaces: namespace1,namespace2 @@ -490,8 +407,8 @@ configs: # tlsClientConfig: # insecure: false # caData: "" - # mycluster3-project-scoped: - # server: https://mycluster3.example.com + # - name: mycluster3-project-scoped + # server: https://mycluster3.com # labels: {} # annotations: {} # project: my-project1 @@ -500,16 +417,16 @@ configs: # tlsClientConfig: # insecure: false # caData: "" - # mycluster4-sharded: - # shard: 1 - # server: https://mycluster4.example.com - # labels: {} - # annotations: {} - # config: - # bearerToken: "" - # tlsClientConfig: - # insecure: false - # caData: "" + + # DEPRECATED - Moved to configs.ssh.annotations + # knownHostsAnnotations: {} + # DEPRECATED - Moved to configs.ssh.knownHosts + # knownHosts: {} + + # DEPRECATED - Moved to configs.tls.annotations + # tlsCertsAnnotations: {} + # DEPRECATED - Moved to configs.tls.certificates + # tlsCerts: {} # -- Repository credentials to be used as Templates for other repos ## Creates a secret for each key/value specified below to create repository credentials @@ -539,7 +456,7 @@ configs: # -- Repositories list to be used by applications ## Creates a secret for each key/value specified below to create repositories - ## Note: the last example in the list would use a repository credential template, configured under "configs.credentialTemplates". + ## Note: the last example in the list would use a repository credential template, configured under "configs.repositoryCredentials". repositories: {} # istio-helm-repo: # url: https://storage.googleapis.com/istio-prerelease/daily-build/master-latest-daily/charts @@ -577,12 +494,6 @@ configs: bitbucketUUID: "" # -- Shared secret for authenticating Gogs webhook events gogsSecret: "" - ## Azure DevOps - azureDevops: - # -- Shared secret username for authenticating Azure DevOps webhook events - username: "" - # -- Shared secret password for authenticating Azure DevOps webhook events - password: "" # -- add additional secrets to be added to argocd-secret ## Custom secrets. Useful for injecting SSO secrets into environment variables. @@ -592,6 +503,12 @@ configs: {} # LDAP_PASSWORD: "mypassword" + # -- Argo TLS Data + # DEPRECATED - Use server.certificate or server.certificateSecret + # argocdServerTlsConfig: + # key: '' + # crt: '' + # -- Bcrypt hashed admin password ## Argo expects the password in the secret to be bcrypt hashed. You can create this hash with ## `htpasswd -nbBC 10 "" $ARGO_PWD | tr -d ':\n' | sed 's/$2y/$2a/'` @@ -606,7 +523,7 @@ configs: ## Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/custom-styles/ styles: "" # styles: | - # .sidebar { + # .nav-bar { # background: linear-gradient(to bottom, #999, #777, #333, #222, #111); # } @@ -646,29 +563,8 @@ controller: # -- The number of application controller pods to run. # Additional replicas will cause sharding of managed clusters across number of replicas. - ## With dynamic cluster distribution turned on, sharding of the clusters will gracefully - ## rebalance if the number of replica's changes or one becomes unhealthy. (alpha) replicas: 1 - # -- Enable dynamic cluster distribution (alpha) - # Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/dynamic-cluster-distribution - ## This is done using a deployment instead of a statefulSet - ## When replicas are added or removed, the sharding algorithm is re-run to ensure that the - ## clusters are distributed according to the algorithm. If the algorithm is well-balanced, - ## like round-robin, then the shards will be well-balanced. - dynamicClusterDistribution: false - - # -- Runtime class name for the application controller - # @default -- `""` (defaults to global.runtimeClassName) - runtimeClassName: "" - - # -- Application controller heartbeat time - # Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/dynamic-cluster-distribution/#working-of-dynamic-distribution - heartbeatTime: 10 - - # -- Maximum number of controller revisions that will be maintained in StatefulSet history - revisionHistoryLimit: 5 - ## Application controller Pod Disruption Budget ## Ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/ pdb: @@ -701,6 +597,22 @@ controller: # @default -- `[]` (defaults to global.imagePullSecrets) imagePullSecrets: [] + # -- DEPRECATED - Application controller commandline flags + args: {} + # DEPRECATED - Use configs.params to override + # # -- define the application controller `--status-processors` + # statusProcessors: "20" + # # -- define the application controller `--operation-processors` + # operationProcessors: "10" + # # -- define the application controller `--app-hard-resync` + # appHardResyncPeriod: "0" + # # -- define the application controller `--app-resync` + # appResyncPeriod: "180" + # # -- define the application controller `--self-heal-timeout-seconds` + # selfHealTimeout: "5" + # # -- define the application controller `--repo-server-timeout-seconds` + # repoServerTimeoutSeconds: "60" + # -- Additional command line arguments to pass to application controller extraArgs: [] @@ -746,19 +658,9 @@ controller: # - name: custom-tools # emptyDir: {} - ## Application controller emptyDir volumes - emptyDir: - # -- EmptyDir size limit for application controller - # @default -- `""` (defaults not set if not specified i.e. no size limit) - sizeLimit: "" - # sizeLimit: "1Gi" - # -- Annotations for the application controller StatefulSet statefulsetAnnotations: {} - # -- Annotations for the application controller Deployment - deploymentAnnotations: {} - # -- Annotations to be added to application controller pods podAnnotations: {} @@ -800,7 +702,7 @@ controller: - ALL # Readiness probe for application controller - ## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/ + ## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/ readinessProbe: # -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded failureThreshold: 3 @@ -813,9 +715,6 @@ controller: # -- Number of seconds after which the [probe] times out timeoutSeconds: 1 - # -- terminationGracePeriodSeconds for container lifecycle hook - terminationGracePeriodSeconds: 30 - # -- Priority class for the application controller pods # @default -- `""` (defaults to global.priorityClassName) priorityClassName: "" @@ -834,16 +733,13 @@ controller: # -- Assign custom [TopologySpreadConstraints] rules to the application controller # @default -- `[]` (defaults to global.topologySpreadConstraints) - ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/ + ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/ ## If labelSelector is left out, it will default to the labelSelector configuration of the deployment topologySpreadConstraints: [] # - maxSkew: 1 # topologyKey: topology.kubernetes.io/zone # whenUnsatisfiable: DoNotSchedule - # -- Automount API credentials for the Service Account into the pod. - automountServiceAccountToken: true - serviceAccount: # -- Create a service account for the application controller create: true @@ -860,18 +756,12 @@ controller: metrics: # -- Deploy metrics service enabled: false - # -- Prometheus ServiceMonitor scrapeTimeout. If empty, Prometheus uses the global scrape timeout unless it is less than the target's scrape interval value in which the latter is used. - scrapeTimeout: "" applicationLabels: # -- Enables additional labels in argocd_app_labels metric enabled: false # -- Additional labels labels: [] service: - # -- Metrics service type - type: ClusterIP - # -- Metrics service clusterIP. `None` makes a "headless service" (no virtual IP) - clusterIP: "" # -- Metrics service annotations annotations: {} # -- Metrics service labels @@ -885,8 +775,6 @@ controller: enabled: false # -- Prometheus ServiceMonitor interval interval: 30s - # -- When true, honorLabels preserves the metric’s labels when they collide with the target’s labels. - honorLabels: false # -- Prometheus [RelabelConfigs] to apply to samples before scraping relabelings: [] # -- Prometheus [MetricRelabelConfigs] to apply to samples before ingestion @@ -964,10 +852,6 @@ dex: # -- Additional command line arguments to pass to the Dex server extraArgs: [] - # -- Runtime class name for Dex - # @default -- `""` (defaults to global.runtimeClassName) - runtimeClassName: "" - metrics: # -- Deploy metrics service enabled: false @@ -983,8 +867,6 @@ dex: enabled: false # -- Prometheus ServiceMonitor interval interval: 30s - # -- When true, honorLabels preserves the metric’s labels when they collide with the target’s labels. - honorLabels: false # -- Prometheus [RelabelConfigs] to apply to samples before scraping relabelings: [] # -- Prometheus [MetricRelabelConfigs] to apply to samples before ingestion @@ -1025,7 +907,7 @@ dex: # -- Dex image repository repository: ghcr.io/dexidp/dex # -- Dex image tag - tag: v2.42.0 + tag: v2.36.0 # -- Dex imagePullPolicy # @default -- `""` (defaults to global.image.imagePullPolicy) imagePullPolicy: "" @@ -1045,15 +927,6 @@ dex: # -- Argo CD init image imagePullPolicy # @default -- `""` (defaults to global.image.imagePullPolicy) imagePullPolicy: "" - # -- Argo CD init image resources - # @default -- `{}` (defaults to dex.resources) - resources: {} - # requests: - # cpu: 5m - # memory: 96Mi - # limits: - # cpu: 10m - # memory: 144Mi # -- Environment variables to pass to the Dex server env: [] @@ -1080,13 +953,6 @@ dex: # -- Additional volumes to the dex pod volumes: [] - ## Dex server emptyDir volumes - emptyDir: - # -- EmptyDir size limit for Dex server - # @default -- `""` (defaults not set if not specified i.e. no size limit) - sizeLimit: "" - # sizeLimit: "1Gi" - # TLS certificate configuration via Secret ## Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/tls/#configuring-tls-to-argocd-dex-server ## Note: Issuing certificates via cert-manager in not supported right now because it's not possible to restart Dex automatically without extra controllers. @@ -1154,12 +1020,6 @@ dex: livenessProbe: # -- Enable Kubernetes liveness probe for Dex >= 2.28.0 enabled: false - # -- Http path to use for the liveness probe - httpPath: /healthz/live - # -- Http port to use for the liveness probe - httpPort: metrics - # -- Scheme to use for for the liveness probe (can be HTTP or HTTPS) - httpScheme: HTTP # -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded failureThreshold: 3 # -- Number of seconds after the container has started before [probe] is initiated @@ -1174,12 +1034,6 @@ dex: readinessProbe: # -- Enable Kubernetes readiness probe for Dex >= 2.28.0 enabled: false - # -- Http path to use for the readiness probe - httpPath: /healthz/ready - # -- Http port to use for the readiness probe - httpPort: metrics - # -- Scheme to use for for the liveness probe (can be HTTP or HTTPS) - httpScheme: HTTP # -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded failureThreshold: 3 # -- Number of seconds after the container has started before [probe] is initiated @@ -1191,12 +1045,6 @@ dex: # -- Number of seconds after which the [probe] times out timeoutSeconds: 1 - # -- terminationGracePeriodSeconds for container lifecycle hook - terminationGracePeriodSeconds: 30 - - # -- Automount API credentials for the Service Account into the pod. - automountServiceAccountToken: true - serviceAccount: # -- Create dex service account create: true @@ -1236,7 +1084,7 @@ dex: # -- Assign custom [TopologySpreadConstraints] rules to dex # @default -- `[]` (defaults to global.topologySpreadConstraints) - ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/ + ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/ ## If labelSelector is left out, it will default to the labelSelector configuration of the deployment topologySpreadConstraints: [] # - maxSkew: 1 @@ -1264,10 +1112,6 @@ redis: # -- Redis name name: redis - # -- Runtime class name for redis - # @default -- `""` (defaults to global.runtimeClassName) - runtimeClassName: "" - ## Redis Pod Disruption Budget ## Ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/ pdb: @@ -1289,7 +1133,7 @@ redis: # -- Redis repository repository: public.ecr.aws/docker/library/redis # -- Redis tag - tag: 7.4.2-alpine + tag: 7.0.11-alpine # -- Redis image pull policy # @default -- `""` (defaults to global.image.imagePullPolicy) imagePullPolicy: "" @@ -1305,7 +1149,7 @@ redis: # -- Repository to use for the redis-exporter repository: public.ecr.aws/bitnami/redis-exporter # -- Tag to use for the redis-exporter - tag: 1.67.0 + tag: 1.45.0 # -- Image pull policy for the redis-exporter # @default -- `""` (defaults to global.image.imagePullPolicy) imagePullPolicy: "" @@ -1322,35 +1166,6 @@ redis: drop: - ALL - ## Probes for Redis exporter (optional) - ## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/ - readinessProbe: - # -- Enable Kubernetes liveness probe for Redis exporter (optional) - enabled: false - # -- Number of seconds after the container has started before [probe] is initiated - initialDelaySeconds: 30 - # -- How often (in seconds) to perform the [probe] - periodSeconds: 15 - # -- Number of seconds after which the [probe] times out - timeoutSeconds: 15 - # -- Minimum consecutive successes for the [probe] to be considered successful after having failed - successThreshold: 1 - # -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded - failureThreshold: 5 - livenessProbe: - # -- Enable Kubernetes liveness probe for Redis exporter - enabled: false - # -- Number of seconds after the container has started before [probe] is initiated - initialDelaySeconds: 30 - # -- How often (in seconds) to perform the [probe] - periodSeconds: 15 - # -- Number of seconds after which the [probe] times out - timeoutSeconds: 15 - # -- Minimum consecutive successes for the [probe] to be considered successful after having failed - successThreshold: 1 - # -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded - failureThreshold: 5 - # -- Resource limits and requests for redis-exporter sidecar resources: {} # limits: @@ -1380,35 +1195,6 @@ redis: # - secretRef: # name: secret-name - ## Probes for Redis server (optional) - ## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/ - readinessProbe: - # -- Enable Kubernetes liveness probe for Redis server - enabled: false - # -- Number of seconds after the container has started before [probe] is initiated - initialDelaySeconds: 30 - # -- How often (in seconds) to perform the [probe] - periodSeconds: 15 - # -- Number of seconds after which the [probe] times out - timeoutSeconds: 15 - # -- Minimum consecutive successes for the [probe] to be considered successful after having failed - successThreshold: 1 - # -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded - failureThreshold: 5 - livenessProbe: - # -- Enable Kubernetes liveness probe for Redis server - enabled: false - # -- Number of seconds after the container has started before [probe] is initiated - initialDelaySeconds: 30 - # -- How often (in seconds) to perform the [probe] - periodSeconds: 15 - # -- Number of seconds after which the [probe] times out - timeoutSeconds: 15 - # -- Minimum consecutive successes for the [probe] to be considered successful after having failed - successThreshold: 1 - # -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded - failureThreshold: 5 - # -- Additional containers to be added to the redis pod ## Note: Supports use of custom Helm templates extraContainers: [] @@ -1464,7 +1250,6 @@ redis: # -- Redis container-level security context # @default -- See [values.yaml] containerSecurityContext: - readOnlyRootFilesystem: true allowPrivilegeEscalation: false capabilities: drop: @@ -1491,19 +1276,13 @@ redis: # -- Assign custom [TopologySpreadConstraints] rules to redis # @default -- `[]` (defaults to global.topologySpreadConstraints) - ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/ + ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/ ## If labelSelector is left out, it will default to the labelSelector configuration of the deployment topologySpreadConstraints: [] # - maxSkew: 1 # topologyKey: topology.kubernetes.io/zone # whenUnsatisfiable: DoNotSchedule - # -- terminationGracePeriodSeconds for container lifecycle hook - terminationGracePeriodSeconds: 30 - - # -- Automount API credentials for the Service Account into the pod. - automountServiceAccountToken: true - serviceAccount: # -- Create a service account for the redis pod create: false @@ -1544,8 +1323,6 @@ redis: enabled: false # -- Interval at which metrics should be scraped interval: 30s - # -- When true, honorLabels preserves the metric’s labels when they collide with the target’s labels. - honorLabels: false # -- Prometheus [RelabelConfigs] to apply to samples before scraping relabelings: [] # -- Prometheus [MetricRelabelConfigs] to apply to samples before ingestion @@ -1565,17 +1342,12 @@ redis: # -- Prometheus ServiceMonitor annotations annotations: {} -## Redis-HA subchart replaces custom redis deployment when `redis-ha.enabled=true` -# Ref: https://github.com/DandyDeveloper/charts/blob/master/charts/redis-ha/values.yaml +# This key configures Redis-HA subchart and when enabled (redis-ha.enabled=true) +# the custom redis deployment is omitted +# Check the redis-ha chart for more properties redis-ha: # -- Enables the Redis HA subchart and disables the custom Redis single node deployment enabled: false - ## Redis image - image: - # -- Redis repository - repository: public.ecr.aws/docker/library/redis - # -- Redis tag - tag: 7.4.2-alpine ## Prometheus redis-exporter sidecar exporter: # -- Enable Prometheus redis-exporter sidecar @@ -1583,11 +1355,10 @@ redis-ha: # -- Repository to use for the redis-exporter image: public.ecr.aws/bitnami/redis-exporter # -- Tag to use for the redis-exporter - tag: 1.58.0 + tag: 1.45.0 persistentVolume: # -- Configures persistence on Redis nodes enabled: false - ## Redis specific configuration options redis: # -- Redis convention for naming the cluster group: must match `^[\\w-\\.]+$` and can be templated masterGroupName: argocd @@ -1597,50 +1368,17 @@ redis-ha: # -- Will save the DB if both the given number of seconds and the given number of write operations against the DB occurred. `""` is disabled # @default -- `'""'` save: '""' - ## Enables a HA Proxy for better LoadBalancing / Sentinel Master support. Automatically proxies to Redis master. haproxy: # -- Enabled HAProxy LoadBalancing/Proxy enabled: true - # -- Custom labels for the haproxy pod. This is relevant for Argo CD CLI. - labels: - app.kubernetes.io/name: argocd-redis-ha-haproxy metrics: # -- HAProxy enable prometheus metric scraping enabled: true - # -- Whether the haproxy pods should be forced to run on separate nodes. - hardAntiAffinity: true - # -- Additional affinities to add to the haproxy pods. - additionalAffinities: {} - # -- Assign custom [affinity] rules to the haproxy pods. - affinity: | + image: + # -- Redis tag + tag: 7.0.11-alpine - # -- [Tolerations] for use with node taints for haproxy pods. - tolerations: [] - # -- HAProxy container-level security context - # @default -- See [values.yaml] - containerSecurityContext: - readOnlyRootFilesystem: true - - # -- Configures redis-ha with AUTH - auth: true - # -- Existing Secret to use for redis-ha authentication. - # By default the redis-secret-init Job is generating this Secret. - existingSecret: argocd-redis - - # -- Whether the Redis server pods should be forced to run on separate nodes. - hardAntiAffinity: true - - # -- Additional affinities to add to the Redis server pods. - additionalAffinities: {} - - # -- Assign custom [affinity] rules to the Redis pods. - affinity: | - - # -- [Tolerations] for use with node taints for Redis pods. - tolerations: [] - - # -- Assign custom [TopologySpreadConstraints] rules to the Redis pods. - ## https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/ + ## https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/ topologySpreadConstraints: # -- Enable Redis HA topology spread constraints enabled: false @@ -1653,10 +1391,6 @@ redis-ha: # -- Enforcement policy, hard or soft # @default -- `""` (defaults to `ScheduleAnyway`) whenUnsatisfiable: "" - # -- Redis HA statefulset container-level security context - # @default -- See [values.yaml] - containerSecurityContext: - readOnlyRootFilesystem: true # External Redis parameters externalRedis: @@ -1668,91 +1402,12 @@ externalRedis: password: "" # -- External Redis server port port: 6379 - # -- The name of an existing secret with Redis (must contain key `redis-password`) and Sentinel credentials. + # -- The name of an existing secret with Redis credentials (must contain key `redis-password`). # When it's set, the `externalRedis.password` parameter is ignored existingSecret: "" # -- External Redis Secret annotations secretAnnotations: {} -redisSecretInit: - # -- Enable Redis secret initialization. If disabled, secret must be provisioned by alternative methods - enabled: true - # -- Redis secret-init name - name: redis-secret-init - - image: - # -- Repository to use for the Redis secret-init Job - # @default -- `""` (defaults to global.image.repository) - repository: "" # defaults to global.image.repository - # -- Tag to use for the Redis secret-init Job - # @default -- `""` (defaults to global.image.tag) - tag: "" # defaults to global.image.tag - # -- Image pull policy for the Redis secret-init Job - # @default -- `""` (defaults to global.image.imagePullPolicy) - imagePullPolicy: "" # IfNotPresent - - # -- Secrets with credentials to pull images from a private registry - # @default -- `[]` (defaults to global.imagePullSecrets) - imagePullSecrets: [] - - # -- Annotations to be added to the Redis secret-init Job - jobAnnotations: {} - - # -- Annotations to be added to the Redis secret-init Job - podAnnotations: {} - - # -- Labels to be added to the Redis secret-init Job - podLabels: {} - - # -- Resource limits and requests for Redis secret-init Job - resources: {} - # limits: - # cpu: 200m - # memory: 128Mi - # requests: - # cpu: 100m - # memory: 64Mi - - # -- Application controller container-level security context - # @default -- See [values.yaml] - containerSecurityContext: - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - readOnlyRootFilesystem: true - runAsNonRoot: true - seccompProfile: - type: RuntimeDefault - - # -- Redis secret-init Job pod-level security context - securityContext: {} - - serviceAccount: - # -- Create a service account for the redis pod - create: true - # -- Service account name for redis pod - name: "" - # -- Annotations applied to created service account - annotations: {} - # -- Automount API credentials for the Service Account - automountServiceAccountToken: true - - # -- Priority class for Redis secret-init Job - # @default -- `""` (defaults to global.priorityClassName) - priorityClassName: "" - - # -- Assign custom [affinity] rules to the Redis secret-init Job - affinity: {} - - # -- Node selector to be added to the Redis secret-init Job - # @default -- `{}` (defaults to global.nodeSelector) - nodeSelector: {} - - # -- Tolerations to be added to the Redis secret-init Job - # @default -- `[]` (defaults to global.tolerations) - tolerations: [] - ## Server server: # -- Argo CD server name @@ -1761,10 +1416,6 @@ server: # -- The number of server pods to run replicas: 1 - # -- Runtime class name for the Argo CD server - # @default -- `""` (defaults to global.runtimeClassName) - runtimeClassName: "" - ## Argo CD server Horizontal Pod Autoscaler autoscaling: # -- Enable Horizontal Pod Autoscaler ([HPA]) for the Argo CD server @@ -1778,6 +1429,7 @@ server: # -- Average memory utilization percentage for the Argo CD server [HPA] targetMemoryUtilizationPercentage: 50 # -- Configures the scaling behavior of the target in both Up and Down directions. + # This is only available on HPA apiVersion `autoscaling/v2beta2` and newer behavior: {} # scaleDown: # stabilizationWindowSeconds: 300 @@ -1791,9 +1443,6 @@ server: # - type: Pods # value: 2 # periodSeconds: 60 - # -- Configures custom HPA metrics for the Argo CD server - # Ref: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/ - metrics: [] ## Argo CD server Pod Disruption Budget ## Ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/ @@ -1844,43 +1493,29 @@ server: # -- Specify postStart and preStop lifecycle hooks for your argo-cd-server container lifecycle: {} - ## Argo CD extensions + ## Argo UI extensions ## This function in tech preview stage, do expect instability or breaking changes in newer versions. - ## Ref: https://github.com/argoproj-labs/argocd-extension-installer - ## When you enable extensions, you need to configure RBAC of logged in Argo CD user. - ## Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/rbac/#the-extensions-resource + ## Ref: https://github.com/argoproj-labs/argocd-extensions extensions: - # -- Enable support for Argo CD extensions + # -- Enable support for Argo UI extensions enabled: false - ## Argo CD extension installer image + ## Argo UI extensions image image: - # -- Repository to use for extension installer image - repository: "quay.io/argoprojlabs/argocd-extension-installer" - # -- Tag to use for extension installer image - tag: "v0.0.8" + # -- Repository to use for extensions image + repository: "ghcr.io/argoproj-labs/argocd-extensions" + # -- Tag to use for extensions image + tag: "v0.2.1" # -- Image pull policy for extensions # @default -- `""` (defaults to global.image.imagePullPolicy) imagePullPolicy: "" - # -- Extensions for Argo CD - # @default -- `[]` (See [values.yaml]) - ## Ref: https://github.com/argoproj-labs/argocd-extension-metrics#install-ui-extension - extensionList: [] - # - name: extension-metrics - # env: - # - name: EXTENSION_URL - # value: https://github.com/argoproj-labs/argocd-extension-metrics/releases/download/v1.0.0/extension.tar.gz - # - name: EXTENSION_CHECKSUM_URL - # value: https://github.com/argoproj-labs/argocd-extension-metrics/releases/download/v1.0.0/extension_checksums.txt - # -- Server UI extensions container-level security context # @default -- See [values.yaml] containerSecurityContext: runAsNonRoot: true readOnlyRootFilesystem: true allowPrivilegeEscalation: false - runAsUser: 1000 seccompProfile: type: RuntimeDefault capabilities: @@ -1946,13 +1581,6 @@ server: # - name: custom-tools # emptyDir: {} - ## Argo CD server emptyDir volumes - emptyDir: - # -- EmptyDir size limit for the Argo CD server - # @default -- `""` (defaults not set if not specified i.e. no size limit) - sizeLimit: "" - # sizeLimit: "1Gi" - # -- Annotations to be added to server Deployment deploymentAnnotations: {} @@ -1999,7 +1627,7 @@ server: - ALL ## Readiness and liveness probes for default backend - ## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/ + ## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/ readinessProbe: # -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded failureThreshold: 3 @@ -2024,9 +1652,6 @@ server: # -- Number of seconds after which the [probe] times out timeoutSeconds: 1 - # -- terminationGracePeriodSeconds for container lifecycle hook - terminationGracePeriodSeconds: 30 - # -- Priority class for the Argo CD server pods # @default -- `""` (defaults to global.priorityClassName) priorityClassName: "" @@ -2045,7 +1670,7 @@ server: # -- Assign custom [TopologySpreadConstraints] rules to the Argo CD server # @default -- `[]` (defaults to global.topologySpreadConstraints) - ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/ + ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/ ## If labelSelector is left out, it will default to the labelSelector configuration of the deployment topologySpreadConstraints: [] # - maxSkew: 1 @@ -2064,9 +1689,10 @@ server: certificate: # -- Deploy a Certificate resource (requires cert-manager) enabled: false + # -- The name of the Secret that will be automatically created and managed by this Certificate resource + secretName: argocd-server-tls # -- Certificate primary domain (commonName) - # @default -- `""` (defaults to global.domain) - domain: "" + domain: argocd.example.com # -- Certificate Subject Alternate Names (SANs) additionalHosts: [] # -- The requested 'duration' (i.e. lifetime) of the certificate. @@ -2096,13 +1722,6 @@ server: algorithm: RSA # -- Key bit size of the private key. If algorithm is set to `Ed25519`, size is ignored. size: 2048 - # -- Annotations to be applied to the Server Certificate - annotations: {} - # -- Usages for the certificate - ### Ref: https://cert-manager.io/docs/reference/api-docs/#cert-manager.io/v1.KeyUsage - usages: [] - # -- Annotations that allow the certificate to be composed from data residing in existing Kubernetes Resources - secretTemplateAnnotations: {} # TLS certificate configuration via Secret ## Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/tls/#tls-certificates-used-by-argocd-server @@ -2138,35 +1757,22 @@ server: servicePortHttpName: http # -- Server service https port name, can be used to route traffic via istio servicePortHttpsName: https - # -- Server service https port appProtocol - ## Ref: https://kubernetes.io/docs/concepts/services-networking/service/#application-protocol - servicePortHttpsAppProtocol: "" - # -- The class of the load balancer implementation - loadBalancerClass: "" # -- LoadBalancer will get created with the IP specified in this field loadBalancerIP: "" # -- Source IP ranges to allow access to service from - ## EKS Ref: https://repost.aws/knowledge-center/eks-cidr-ip-address-loadbalancer - ## GKE Ref: https://cloud.google.com/kubernetes-engine/docs/concepts/network-overview#limit-connectivity-ext-lb loadBalancerSourceRanges: [] # -- Server service external IPs externalIPs: [] # -- Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints - ## Ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip - externalTrafficPolicy: Cluster + externalTrafficPolicy: "" # -- Used to maintain session affinity. Supports `ClientIP` and `None` - ## Ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies - sessionAffinity: None + sessionAffinity: "" ## Server metrics service configuration metrics: # -- Deploy metrics service enabled: false service: - # -- Metrics service type - type: ClusterIP - # -- Metrics service clusterIP. `None` makes a "headless service" (no virtual IP) - clusterIP: "" # -- Metrics service annotations annotations: {} # -- Metrics service labels @@ -2180,10 +1786,6 @@ server: enabled: false # -- Prometheus ServiceMonitor interval interval: 30s - # -- Prometheus ServiceMonitor scrapeTimeout. If empty, Prometheus uses the global scrape timeout unless it is less than the target's scrape interval value in which the latter is used. - scrapeTimeout: "" - # -- When true, honorLabels preserves the metric’s labels when they collide with the target’s labels. - honorLabels: false # -- Prometheus [RelabelConfigs] to apply to samples before scraping relabelings: [] # -- Prometheus [MetricRelabelConfigs] to apply to samples before ingestion @@ -2203,9 +1805,6 @@ server: # -- Prometheus ServiceMonitor annotations annotations: {} - # -- Automount API credentials for the Service Account into the pod. - automountServiceAccountToken: true - serviceAccount: # -- Create server service account create: true @@ -2218,48 +1817,29 @@ server: # -- Automount API credentials for the Service Account automountServiceAccountToken: true - # Argo CD server ingress configuration ingress: # -- Enable an ingress resource for the Argo CD server enabled: false - # -- Specific implementation for ingress controller. One of `generic`, `aws` or `gke` - ## Additional configuration might be required in related configuration sections - controller: generic + # -- Additional ingress annotations + annotations: {} # -- Additional ingress labels labels: {} - # -- Additional ingress annotations - ## Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/ingress/#option-1-ssl-passthrough - annotations: {} - # nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - # nginx.ingress.kubernetes.io/ssl-passthrough: "true" - # -- Defines which ingress controller will implement the resource ingressClassName: "" - # -- Argo CD server hostname - # @default -- `""` (defaults to global.domain) - hostname: "" - - # -- The path to Argo CD server - path: / + # -- List of ingress hosts + ## Argo Ingress. + ## Hostnames must be provided if Ingress is enabled. + ## Secrets must be manually created in the namespace + hosts: [] + # - argocd.example.com + # -- List of ingress paths + paths: + - / # -- Ingress path type. One of `Exact`, `Prefix` or `ImplementationSpecific` pathType: Prefix - - # -- Enable TLS configuration for the hostname defined at `server.ingress.hostname` - ## TLS certificate will be retrieved from a TLS secret `argocd-server-tls` - ## You can create this secret via `certificate` or `certificateSecret` option - tls: false - - # -- The list of additional hostnames to be covered by ingress record - # @default -- `[]` (See [values.yaml]) - extraHosts: [] - # - name: argocd.example.com - # path: / - # -- Additional ingress paths - # @default -- `[]` (See [values.yaml]) - ## Note: Supports use of custom Helm templates extraPaths: [] # - path: /* # pathType: Prefix @@ -2269,76 +1849,22 @@ server: # port: # name: use-annotation - # -- Additional ingress rules - # @default -- `[]` (See [values.yaml]) - ## Note: Supports use of custom Helm templates - extraRules: [] - # - http: - # paths: - # - path: / - # pathType: Prefix - # backend: - # service: - # name: '{{ include "argo-cd.server.fullname" . }}' - # port: - # name: '{{ .Values.server.service.servicePortHttpsName }}' + # -- Ingress TLS configuration + tls: [] + # - secretName: your-certificate-name + # hosts: + # - argocd.example.com - # -- Additional TLS configuration - # @default -- `[]` (See [values.yaml]) - extraTls: [] - # - hosts: - # - argocd.example.com - # secretName: your-certificate-name + # -- Uses `server.service.servicePortHttps` instead `server.service.servicePortHttp` + https: false - # AWS specific options for Application Load Balancer - # Applies only when `serv.ingress.controller` is set to `aws` - ## Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/ingress/#aws-application-load-balancers-albs-and-classic-elb-http-mode - aws: - # -- Backend protocol version for the AWS ALB gRPC service - ## This tells AWS to send traffic from the ALB using gRPC. - ## For more information: https://docs.aws.amazon.com/elasticloadbalancing/latest/application/target-group-health-checks.html#health-check-settings - backendProtocolVersion: GRPC - # -- Service type for the AWS ALB gRPC service - ## Can be of type NodePort or ClusterIP depending on which mode you are running. - ## Instance mode needs type NodePort, IP mode needs type ClusterIP - ## Ref: https://kubernetes-sigs.github.io/aws-load-balancer-controller/v2.2/how-it-works/#ingress-traffic - serviceType: NodePort - - # Google specific options for Google Application Load Balancer - # Applies only when `server.ingress.controller` is set to `gke` - ## Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/ingress/#google-cloud-load-balancers-with-kubernetes-ingress - gke: - # -- Google [BackendConfig] resource, for use with the GKE Ingress Controller - # @default -- `{}` (See [values.yaml]) - ## Ref: https://cloud.google.com/kubernetes-engine/docs/how-to/ingress-features#configuring_ingress_features_through_frontendconfig_parameters - backendConfig: {} - # iap: - # enabled: true - # oauthclientCredentials: - # secretName: argocd-secret - - # -- Google [FrontendConfig] resource, for use with the GKE Ingress Controller - # @default -- `{}` (See [values.yaml]) - ## Ref: https://cloud.google.com/kubernetes-engine/docs/how-to/ingress-features#configuring_ingress_features_through_frontendconfig_parameters - frontendConfig: {} - # redirectToHttps: - # enabled: true - # responseCodeName: RESPONSE_CODE - - # Managed GKE certificate for ingress hostname - managedCertificate: - # -- Create ManagedCertificate resource and annotations for Google Load balancer - ## Ref: https://cloud.google.com/kubernetes-engine/docs/how-to/managed-certs - create: true - # -- Additional domains for ManagedCertificate resource - extraDomains: [] - # - argocd.example.com - - # Dedicated gRPC ingress for ingress controllers that supports only single backend protocol per Ingress resource - # Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/ingress/#option-2-multiple-ingress-objects-and-hosts + # dedicated ingress for gRPC as documented at + # Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/ingress/ ingressGrpc: # -- Enable an ingress resource for the Argo CD server for dedicated [gRPC-ingress] enabled: false + # -- Setup up gRPC ingress to work with an AWS ALB + isAWSALB: false # -- Additional ingress annotations for dedicated [gRPC-ingress] annotations: {} # -- Additional ingress labels for dedicated [gRPC-ingress] @@ -2346,29 +1872,32 @@ server: # -- Defines which ingress controller will implement the resource [gRPC-ingress] ingressClassName: "" - # -- Argo CD server hostname for dedicated [gRPC-ingress] - # @default -- `""` (defaults to grpc.`server.ingress.hostname`) - hostname: "" + awsALB: + # -- Service type for the AWS ALB gRPC service + ## Service Type if isAWSALB is set to true + ## Can be of type NodePort or ClusterIP depending on which mode you are + ## are running. Instance mode needs type NodePort, IP mode needs type + ## ClusterIP + ## Ref: https://kubernetes-sigs.github.io/aws-load-balancer-controller/v2.2/how-it-works/#ingress-traffic + serviceType: NodePort + # -- Backend protocol version for the AWS ALB gRPC service + ## This tells AWS to send traffic from the ALB using HTTP2. Can use gRPC as well if you want to leverage gRPC specific features + backendProtocolVersion: HTTP2 - # -- Argo CD server ingress path for dedicated [gRPC-ingress] - path: / + # -- List of ingress hosts for dedicated [gRPC-ingress] + ## Argo Ingress. + ## Hostnames must be provided if Ingress is enabled. + ## Secrets must be manually created in the namespace + ## + hosts: [] + # - argocd.example.com + # -- List of ingress paths for dedicated [gRPC-ingress] + paths: + - / # -- Ingress path type for dedicated [gRPC-ingress]. One of `Exact`, `Prefix` or `ImplementationSpecific` pathType: Prefix - - # -- Enable TLS configuration for the hostname defined at `server.ingressGrpc.hostname` - ## TLS certificate will be retrieved from a TLS secret with name: `argocd-server-grpc-tls` - tls: false - - # -- The list of additional hostnames to be covered by ingress record - # @default -- `[]` (See [values.yaml]) - extraHosts: [] - # - name: grpc.argocd.example.com - # path: / - # -- Additional ingress paths for dedicated [gRPC-ingress] - # @default -- `[]` (See [values.yaml]) - ## Note: Supports use of custom Helm templates extraPaths: [] # - path: /* # pathType: Prefix @@ -2378,27 +1907,15 @@ server: # port: # name: use-annotation - # -- Additional ingress rules - # @default -- `[]` (See [values.yaml]) - ## Note: Supports use of custom Helm templates - extraRules: [] - # - http: - # paths: - # - path: / - # pathType: Prefix - # backend: - # service: - # name: '{{ include "argo-cd.server.fullname" . }}' - # port: - # name: '{{ .Values.server.service.servicePortHttpName }}' - - # -- Additional TLS configuration for dedicated [gRPC-ingress] - # @default -- `[]` (See [values.yaml]) - extraTls: [] + # -- Ingress TLS configuration for dedicated [gRPC-ingress] + tls: [] # - secretName: your-certificate-name # hosts: # - argocd.example.com + # -- Uses `server.service.servicePortHttps` instead `server.service.servicePortHttp` + https: false + # Create a OpenShift Route with SSL passthrough for UI and CLI # Consider setting 'hostname' e.g. https://argocd.apps-crc.testing/ using your Default Ingress Controller Domain # Find your domain with: kubectl describe --namespace=openshift-ingress-operator ingresscontroller/default | grep Domain: @@ -2415,13 +1932,37 @@ server: # -- Termination policy of Openshift Route termination_policy: None - ## Enable this and set the rules: to whatever custom rules you want for the Cluster Role resource. - ## Defaults to off - clusterRoleRules: - # -- Enable custom rules for the server's ClusterRole resource + GKEbackendConfig: + # -- Enable BackendConfig custom resource for Google Kubernetes Engine enabled: false - # -- List of custom rules for the server's ClusterRole resource - rules: [] + # -- [BackendConfigSpec] + spec: {} + # spec: + # iap: + # enabled: true + # oauthclientCredentials: + # secretName: argocd-secret + + ## Create a Google Managed Certificate for use with the GKE Ingress Controller + ## https://cloud.google.com/kubernetes-engine/docs/how-to/managed-certs + GKEmanagedCertificate: + # -- Enable ManagedCertificate custom resource for Google Kubernetes Engine. + enabled: false + # -- Domains for the Google Managed Certificate + domains: + - argocd.example.com + + ## Create a Google FrontendConfig Custom Resource, for use with the GKE Ingress Controller + ## https://cloud.google.com/kubernetes-engine/docs/how-to/ingress-features#configuring_ingress_features_through_frontendconfig_parameters + GKEfrontendConfig: + # -- Enable FrontConfig custom resource for Google Kubernetes Engine + enabled: false + # -- [FrontendConfigSpec] + spec: {} + # spec: + # redirectToHttps: + # enabled: true + # responseCodeName: RESPONSE_CODE ## Repo Server repoServer: @@ -2431,10 +1972,6 @@ repoServer: # -- The number of repo server pods to run replicas: 1 - # -- Runtime class name for the repo server - # @default -- `""` (defaults to global.runtimeClassName) - runtimeClassName: "" - ## Repo server Horizontal Pod Autoscaler autoscaling: # -- Enable Horizontal Pod Autoscaler ([HPA]) for the repo server @@ -2448,6 +1985,7 @@ repoServer: # -- Average memory utilization percentage for the repo server [HPA] targetMemoryUtilizationPercentage: 50 # -- Configures the scaling behavior of the target in both Up and Down directions. + # This is only available on HPA apiVersion `autoscaling/v2beta2` and newer behavior: {} # scaleDown: # stabilizationWindowSeconds: 300 @@ -2461,9 +1999,6 @@ repoServer: # - type: Pods # value: 2 # periodSeconds: 60 - # -- Configures custom HPA metrics for the Argo CD repo server - # Ref: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/ - metrics: [] ## Repo server Pod Disruption Budget ## Ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/ @@ -2511,9 +2046,6 @@ repoServer: # - secretRef: # name: secret-name - # -- Specify postStart and preStop lifecycle hooks for your argo-repo-server container - lifecycle: {} - # -- Additional containers to be added to the repo server pod ## Ref: https://argo-cd.readthedocs.io/en/stable/user-guide/config-management-plugins/ ## Note: Supports use of custom Helm templates @@ -2573,34 +2105,6 @@ repoServer: # - name: cmp-tmp # emptyDir: {} - # -- Volumes to be used in replacement of emptydir on default volumes - existingVolumes: {} - # gpgKeyring: - # persistentVolumeClaim: - # claimName: pvc-argocd-repo-server-keyring - # helmWorkingDir: - # persistentVolumeClaim: - # claimName: pvc-argocd-repo-server-workdir - # tmp: - # persistentVolumeClaim: - # claimName: pvc-argocd-repo-server-tmp - # varFiles: - # persistentVolumeClaim: - # claimName: pvc-argocd-repo-server-varfiles - # plugins: - # persistentVolumeClaim: - # claimName: pvc-argocd-repo-server-plugins - - ## RepoServer emptyDir volumes - emptyDir: - # -- EmptyDir size limit for repo server - # @default -- `""` (defaults not set if not specified i.e. no size limit) - sizeLimit: "" - # sizeLimit: "1Gi" - - # -- Toggle the usage of a ephemeral Helm working directory - useEphemeralHelmWorkingDir: true - # -- Annotations to be added to repo server Deployment deploymentAnnotations: {} @@ -2647,7 +2151,7 @@ repoServer: - ALL ## Readiness and liveness probes for default backend - ## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/ + ## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/ readinessProbe: # -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded failureThreshold: 3 @@ -2672,9 +2176,6 @@ repoServer: # -- Number of seconds after which the [probe] times out timeoutSeconds: 1 - # -- terminationGracePeriodSeconds for container lifecycle hook - terminationGracePeriodSeconds: 30 - # -- [Node selector] # @default -- `{}` (defaults to global.nodeSelector) nodeSelector: {} @@ -2689,7 +2190,7 @@ repoServer: # -- Assign custom [TopologySpreadConstraints] rules to the repo server # @default -- `[]` (defaults to global.topologySpreadConstraints) - ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/ + ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/ ## If labelSelector is left out, it will default to the labelSelector configuration of the deployment topologySpreadConstraints: [] # - maxSkew: 1 @@ -2733,17 +2234,13 @@ repoServer: # -- Repo server service port port: 8081 # -- Repo server service port name - portName: tcp-repo-server + portName: https-repo-server ## Repo server metrics service configuration metrics: # -- Deploy metrics service enabled: false service: - # -- Metrics service type - type: ClusterIP - # -- Metrics service clusterIP. `None` makes a "headless service" (no virtual IP) - clusterIP: "" # -- Metrics service annotations annotations: {} # -- Metrics service labels @@ -2757,10 +2254,6 @@ repoServer: enabled: false # -- Prometheus ServiceMonitor interval interval: 30s - # -- Prometheus ServiceMonitor scrapeTimeout. If empty, Prometheus uses the global scrape timeout unless it is less than the target's scrape interval value in which the latter is used. - scrapeTimeout: "" - # -- When true, honorLabels preserves the metric’s labels when they collide with the target’s labels. - honorLabels: false # -- Prometheus [RelabelConfigs] to apply to samples before scraping relabelings: [] # -- Prometheus [MetricRelabelConfigs] to apply to samples before ingestion @@ -2789,9 +2282,6 @@ repoServer: # -- List of custom rules for the Repo server's Cluster Role resource rules: [] - # -- Automount API credentials for the Service Account into the pod. - automountServiceAccountToken: true - ## Repo server service account ## If create is set to true, make sure to uncomment the name and update the rbac section below serviceAccount: @@ -2819,15 +2309,14 @@ repoServer: ## ApplicationSet controller applicationSet: + # -- Enable ApplicationSet controller + enabled: true + # -- ApplicationSet controller name string name: applicationset-controller # -- The number of ApplicationSet controller pods to run - replicas: 1 - - # -- Runtime class name for the ApplicationSet controller - # @default -- `""` (defaults to global.runtimeClassName) - runtimeClassName: "" + replicaCount: 1 ## ApplicationSet controller Pod Disruption Budget ## Ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/ @@ -2861,7 +2350,16 @@ applicationSet: # @default -- `[]` (defaults to global.imagePullSecrets) imagePullSecrets: [] - # -- ApplicationSet controller command line flags + # -- DEPRECATED - ApplicationSet controller command line flags + args: {} + # DEPRECATED - Use configs.params.applicationsetcontroller.policy to override + # -- How application is synced between the generator and the cluster + # policy: sync + # DEPRECATED - Use configs.params.applicationsetcontroller.dryrun to override + # -- Enable dry run mode + # dryRun: false + + # -- List of extra cli args to add extraArgs: [] # -- Environment variables to pass to the ApplicationSet controller @@ -2891,28 +2389,17 @@ applicationSet: # -- List of extra volumes to add extraVolumes: [] - ## ApplicationSet controller emptyDir volumes - emptyDir: - # -- EmptyDir size limit for applicationSet controller - # @default -- `""` (defaults not set if not specified i.e. no size limit) - sizeLimit: "" - # sizeLimit: "1Gi" - ## Metrics service configuration metrics: # -- Deploy metrics service enabled: false service: - # -- Metrics service type - type: ClusterIP - # -- Metrics service clusterIP. `None` makes a "headless service" (no virtual IP) - clusterIP: "" # -- Metrics service annotations annotations: {} # -- Metrics service labels labels: {} # -- Metrics service port - servicePort: 8080 + servicePort: 8085 # -- Metrics service port name portName: http-metrics serviceMonitor: @@ -2920,10 +2407,6 @@ applicationSet: enabled: false # -- Prometheus ServiceMonitor interval interval: 30s - # -- Prometheus ServiceMonitor scrapeTimeout. If empty, Prometheus uses the global scrape timeout unless it is less than the target's scrape interval value in which the latter is used. - scrapeTimeout: "" - # -- When true, honorLabels preserves the metric’s labels when they collide with the target’s labels. - honorLabels: false # -- Prometheus [RelabelConfigs] to apply to samples before scraping relabelings: [] # -- Prometheus [MetricRelabelConfigs] to apply to samples before ingestion @@ -2954,10 +2437,7 @@ applicationSet: # -- ApplicationSet service port port: 7000 # -- ApplicationSet service port name - portName: http-webhook - - # -- Automount API credentials for the Service Account into the pod. - automountServiceAccountToken: true + portName: webhook serviceAccount: # -- Create ApplicationSet controller service account @@ -3016,7 +2496,7 @@ applicationSet: - ALL ## Probes for ApplicationSet controller (optional) - ## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/ + ## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/ readinessProbe: # -- Enable Kubernetes liveness probe for ApplicationSet controller enabled: false @@ -3045,9 +2525,6 @@ applicationSet: # -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded failureThreshold: 3 - # -- terminationGracePeriodSeconds for container lifecycle hook - terminationGracePeriodSeconds: 30 - # -- [Node selector] # @default -- `{}` (defaults to global.nodeSelector) nodeSelector: {} @@ -3080,112 +2557,51 @@ applicationSet: # @default -- `""` (defaults to global.priorityClassName) priorityClassName: "" - # TLS certificate configuration via cert-manager - ## Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/tls/#tls-configuration - certificate: - # -- Deploy a Certificate resource (requires cert-manager) - enabled: false - # -- Certificate primary domain (commonName) - # @default -- `""` (defaults to global.domain) - domain: "" - # -- Certificate Subject Alternate Names (SANs) - additionalHosts: [] - # -- The requested 'duration' (i.e. lifetime) of the certificate. - # @default -- `""` (defaults to 2160h = 90d if not specified) - ## Ref: https://cert-manager.io/docs/usage/certificate/#renewal - duration: "" - # -- How long before the expiry a certificate should be renewed. - # @default -- `""` (defaults to 360h = 15d if not specified) - ## Ref: https://cert-manager.io/docs/usage/certificate/#renewal - renewBefore: "" - # Certificate issuer - ## Ref: https://cert-manager.io/docs/concepts/issuer - issuer: - # -- Certificate issuer group. Set if using an external issuer. Eg. `cert-manager.io` - group: "" - # -- Certificate issuer kind. Either `Issuer` or `ClusterIssuer` - kind: "" - # -- Certificate issuer name. Eg. `letsencrypt` - name: "" - # Private key of the certificate - privateKey: - # -- Rotation policy of private key when certificate is re-issued. Either: `Never` or `Always` - rotationPolicy: Never - # -- The private key cryptography standards (PKCS) encoding for private key. Either: `PCKS1` or `PKCS8` - encoding: PKCS1 - # -- Algorithm used to generate certificate private key. One of: `RSA`, `Ed25519` or `ECDSA` - algorithm: RSA - # -- Key bit size of the private key. If algorithm is set to `Ed25519`, size is ignored. - size: 2048 - # -- Annotations to be applied to the ApplicationSet Certificate - annotations: {} - - ## Ingress for the Git Generator webhook + ## Webhook for the Git Generator ## Ref: https://argocd-applicationset.readthedocs.io/en/master/Generators-Git/#webhook-configuration) - ingress: - # -- Enable an ingress resource for ApplicationSet webhook - enabled: false - # -- Additional ingress labels - labels: {} - # -- Additional ingress annotations - annotations: {} + webhook: + ingress: + # -- Enable an ingress resource for Webhooks + enabled: false + # -- Additional ingress annotations + annotations: {} + # -- Additional ingress labels + labels: {} + # -- Defines which ingress ApplicationSet controller will implement the resource + ingressClassName: "" - # -- Defines which ingress ApplicationSet controller will implement the resource - ingressClassName: "" + # -- List of ingress hosts + ## Hostnames must be provided if Ingress is enabled. + ## Secrets must be manually created in the namespace + hosts: [] + # - argocd-applicationset.example.com - # -- Argo CD ApplicationSet hostname - # @default -- `""` (defaults to global.domain) - hostname: "" + # -- List of ingress paths + paths: + - /api/webhook + # -- Ingress path type. One of `Exact`, `Prefix` or `ImplementationSpecific` + pathType: Prefix + # -- Additional ingress paths + extraPaths: [] + # - path: /* + # backend: + # serviceName: ssl-redirect + # servicePort: use-annotation + ## for Kubernetes >=1.19 (when "networking.k8s.io/v1" is used) + # - path: /* + # pathType: Prefix + # backend: + # service: + # name: ssl-redirect + # port: + # name: use-annotation - # -- List of ingress paths - path: /api/webhook + # -- Ingress TLS configuration + tls: [] + # - secretName: argocd-applicationset-tls + # hosts: + # - argocd-applicationset.example.com - # -- Ingress path type. One of `Exact`, `Prefix` or `ImplementationSpecific` - pathType: Prefix - - # -- Enable TLS configuration for the hostname defined at `applicationSet.webhook.ingress.hostname` - ## TLS certificate will be retrieved from a TLS secret with name:`argocd-applicationset-controller-tls` - tls: false - - # -- The list of additional hostnames to be covered by ingress record - # @default -- `[]` (See [values.yaml]) - extraHosts: [] - # - name: argocd.example.com - # path: / - - # -- Additional ingress paths - # @default -- `[]` (See [values.yaml]) - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: use-annotation - - # -- Additional ingress rules - # @default -- `[]` (See [values.yaml]) - ## Note: Supports use of custom Helm templates - extraRules: [] - # - http: - # paths: - # - path: /api/webhook - # pathType: Prefix - # backend: - # service: - # name: '{{ include "argo-cd.applicationSet.fullname" . }}' - # port: - # name: '{{ .Values.applicationSet.service.portName }}' - - # -- Additional ingress TLS configuration - # @default -- `[]` (See [values.yaml]) - extraTls: [] - # - secretName: argocd-applicationset-tls - # hosts: - # - argocd-applicationset.example.com - # -- Enable ApplicationSet in any namespace feature - allowAnyNamespace: false ## Notifications controller notifications: # -- Enable notifications controller @@ -3195,12 +2611,7 @@ notifications: name: notifications-controller # -- Argo CD dashboard url; used in place of {{.context.argocdUrl}} in templates - # @default -- `""` (defaults to https://`global.domain`) - argocdUrl: "" - - # -- Runtime class name for the notifications controller - # @default -- `""` (defaults to global.runtimeClassName) - runtimeClassName: "" + argocdUrl: ## Notifications controller Pod Disruption Budget ## Ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/ @@ -3270,40 +2681,33 @@ notifications: extraVolumes: [] # -- Define user-defined context - ## For more information: https://argo-cd.readthedocs.io/en/stable/operator-manual/notifications/templates/#defining-user-defined-context + ## For more information: https://argocd-notifications.readthedocs.io/en/stable/templates/#defining-user-defined-context context: {} # region: east # environmentName: staging secret: # -- Whether helm chart creates notifications controller secret - ## If true, will create a secret with the name below. Otherwise, will assume existence of a secret with that name. create: true - # -- notifications controller Secret name - name: "argocd-notifications-secret" - # -- key:value pairs of annotations to be added to the secret annotations: {} - # -- key:value pairs of labels to be added to the secret - labels: {} - # -- Generic key:value pairs to be inserted into the secret ## Can be used for templates, notification services etc. Some examples given below. - ## For more information: https://argo-cd.readthedocs.io/en/stable/operator-manual/notifications/services/overview/ + ## For more information: https://argocd-notifications.readthedocs.io/en/stable/services/overview/ items: {} # slack-token: - # # For more information: https://argo-cd.readthedocs.io/en/stable/operator-manual/notifications/services/slack/ + # # For more information: https://argocd-notifications.readthedocs.io/en/stable/services/slack/ # grafana-apiKey: - # # For more information: https://argo-cd.readthedocs.io/en/stable/operator-manual/notifications/services/grafana/ + # # For more information: https://argocd-notifications.readthedocs.io/en/stable/services/grafana/ # webhooks-github-token: # email-username: # email-password: - # For more information: https://argo-cd.readthedocs.io/en/stable/operator-manual/notifications/services/email/ + # For more information: https://argocd-notifications.readthedocs.io/en/stable/services/email/ metrics: # -- Enables prometheus metrics server @@ -3311,10 +2715,6 @@ notifications: # -- Metrics port port: 9001 service: - # -- Metrics service type - type: ClusterIP - # -- Metrics service clusterIP. `None` makes a "headless service" (no virtual IP) - clusterIP: "" # -- Metrics service annotations annotations: {} # -- Metrics service labels @@ -3338,8 +2738,6 @@ notifications: scheme: "" # -- Prometheus ServiceMonitor tlsConfig tlsConfig: {} - # -- When true, honorLabels preserves the metric’s labels when they collide with the target’s labels. - honorLabels: false # -- Prometheus [RelabelConfigs] to apply to samples before scraping relabelings: [] # -- Prometheus [MetricRelabelConfigs] to apply to samples before ingestion @@ -3347,7 +2745,7 @@ notifications: # -- Configures notification services such as slack, email or custom webhook # @default -- See [values.yaml] - ## For more information: https://argo-cd.readthedocs.io/en/stable/operator-manual/notifications/services/overview/ + ## For more information: https://argocd-notifications.readthedocs.io/en/stable/services/overview/ notifiers: {} # service.slack: | # token: $slack-token @@ -3392,39 +2790,6 @@ notifications: drop: - ALL - ## Probes for notifications controller Pods (optional) - ## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/ - readinessProbe: - # -- Enable Kubernetes liveness probe for notifications controller Pods - enabled: false - # -- Number of seconds after the container has started before [probe] is initiated - initialDelaySeconds: 10 - # -- How often (in seconds) to perform the [probe] - periodSeconds: 10 - # -- Number of seconds after which the [probe] times out - timeoutSeconds: 1 - # -- Minimum consecutive successes for the [probe] to be considered successful after having failed - successThreshold: 1 - # -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded - failureThreshold: 3 - - livenessProbe: - # -- Enable Kubernetes liveness probe for notifications controller Pods - enabled: false - # -- Number of seconds after the container has started before [probe] is initiated - initialDelaySeconds: 10 - # -- How often (in seconds) to perform the [probe] - periodSeconds: 10 - # -- Number of seconds after which the [probe] times out - timeoutSeconds: 1 - # -- Minimum consecutive successes for the [probe] to be considered successful after having failed - successThreshold: 1 - # -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded - failureThreshold: 3 - - # -- terminationGracePeriodSeconds for container lifecycle hook - terminationGracePeriodSeconds: 30 - # -- [Node selector] # @default -- `{}` (defaults to global.nodeSelector) nodeSelector: {} @@ -3439,7 +2804,7 @@ notifications: # -- Assign custom [TopologySpreadConstraints] rules to the application controller # @default -- `[]` (defaults to global.topologySpreadConstraints) - ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/ + ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/ ## If labelSelector is left out, it will default to the labelSelector configuration of the deployment topologySpreadConstraints: [] # - maxSkew: 1 @@ -3454,9 +2819,6 @@ notifications: # @default -- `""` (defaults to global.priorityClassName) priorityClassName: "" - # -- Automount API credentials for the Service Account into the pod. - automountServiceAccountToken: true - serviceAccount: # -- Create notifications controller service account create: true @@ -3473,14 +2835,8 @@ notifications: # -- Whether helm chart creates notifications controller config map create: true - ## Enable this and set the rules: to whatever custom rules you want for the Cluster Role resource. - ## Defaults to off - clusterRoleRules: - # -- List of custom rules for the notifications controller's ClusterRole resource - rules: [] - # -- Contains centrally managed global application subscriptions - ## For more information: https://argo-cd.readthedocs.io/en/stable/operator-manual/notifications/subscriptions/ + ## For more information: https://argocd-notifications.readthedocs.io/en/stable/subscriptions/ subscriptions: [] # # subscription for on-sync-status-unknown trigger notifications # - recipients: @@ -3496,7 +2852,7 @@ notifications: # - on-sync-status-unknown # -- The notification template is used to generate the notification content - ## For more information: https://argo-cd.readthedocs.io/en/stable/operator-manual/notifications/templates/ + ## For more information: https://argocd-notifications.readthedocs.io/en/stable/templates/ templates: {} # template.app-deployed: | # email: @@ -3713,7 +3069,7 @@ notifications: # }] # -- The trigger defines the condition when the notification should be sent - ## For more information: https://argo-cd.readthedocs.io/en/stable/operator-manual/notifications/triggers/ + ## For more information: https://argocd-notifications.readthedocs.io/en/stable/triggers/ triggers: {} # trigger.on-deployed: | # - description: Application is synced and healthy. Triggered once per commit. @@ -3747,186 +3103,6 @@ notifications: # - app-sync-succeeded # when: app.status.operationState.phase in ['Succeeded'] # - # For more information: https://argo-cd.readthedocs.io/en/stable/operator-manual/notifications/triggers/#default-triggers + # For more information: https://argocd-notifications.readthedocs.io/en/stable/triggers/#default-triggers # defaultTriggers: | # - on-sync-status-unknown - -commitServer: - # -- Enable commit server - enabled: false - - # -- Commit server name - name: commit-server - - # -- Runtime class name for the commit server - # @default -- `""` (defaults to global.runtimeClassName) - runtimeClassName: "" - - ## commit server controller image - image: - # -- Repository to use for the commit server - # @default -- `""` (defaults to global.image.repository) - repository: "" - # -- Tag to use for the commit server - # @default -- `""` (defaults to global.image.tag) - tag: "" - # -- Image pull policy for the commit server - # @default -- `""` (defaults to global.image.imagePullPolicy) - imagePullPolicy: "" - - # -- commit server command line flags - extraArgs: [] - - # -- Environment variables to pass to the commit server - extraEnv: [] - # - name: "MY_VAR" - # value: "value" - - # -- envFrom to pass to the commit server - # @default -- `[]` (See [values.yaml]) - extraEnvFrom: [] - # - configMapRef: - # name: config-map-name - # - secretRef: - # name: secret-name - - # -- List of extra mounts to add (normally used with extraVolumes) - extraVolumeMounts: [] - - # -- List of extra volumes to add - extraVolumes: [] - - metrics: - # -- Enables prometheus metrics server - enabled: false - service: - # -- Metrics service type - type: ClusterIP - # -- Metrics service clusterIP. `None` makes a "headless service" (no virtual IP) - clusterIP: "" - # -- Metrics service annotations - annotations: {} - # -- Metrics service labels - labels: {} - # -- Metrics service port - servicePort: 8087 - # -- Metrics service port name - portName: metrics - - ## commit server service configuration - service: - # -- commit server service annotations - annotations: {} - # -- commit server service labels - labels: {} - - # -- Automount API credentials for the Service Account into the pod. - automountServiceAccountToken: false - - serviceAccount: - # -- Create commit server service account - create: true - # -- commit server service account name - name: argocd-commit-server - # -- Annotations applied to created service account - annotations: {} - # -- Labels applied to created service account - labels: {} - # -- Automount API credentials for the Service Account - automountServiceAccountToken: true - - # -- Annotations to be added to commit server Deployment - deploymentAnnotations: {} - - # -- Annotations for the commit server pods - podAnnotations: {} - - # -- Labels for the commit server pods - podLabels: {} - - # -- Resource limits and requests for the commit server pods. - resources: {} - # limits: - # cpu: 100m - # memory: 128Mi - # requests: - # cpu: 100m - # memory: 128Mi - - # -- [DNS configuration] - dnsConfig: {} - # -- Alternative DNS policy for commit server pods - dnsPolicy: "ClusterFirst" - - # -- commit server container-level security context - # @default -- See [values.yaml] - containerSecurityContext: - runAsNonRoot: true - readOnlyRootFilesystem: true - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - seccompProfile: - type: RuntimeDefault - - ## Probes for commit server (optional) - ## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/ - readinessProbe: - # -- Enable Kubernetes liveness probe for commit server - enabled: true - # -- Number of seconds after the container has started before [probe] is initiated - initialDelaySeconds: 5 - # -- How often (in seconds) to perform the [probe] - periodSeconds: 10 - # -- Number of seconds after which the [probe] times out - timeoutSeconds: 1 - # -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded - failureThreshold: 3 - - livenessProbe: - # -- Enable Kubernetes liveness probe for commit server - enabled: true - # -- Number of seconds after the container has started before [probe] is initiated - initialDelaySeconds: 30 - # -- How often (in seconds) to perform the [probe] - periodSeconds: 30 - # -- Number of seconds after which the [probe] times out - timeoutSeconds: 5 - # -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded - failureThreshold: 3 - - # -- terminationGracePeriodSeconds for container lifecycle hook - terminationGracePeriodSeconds: 30 - - # -- [Node selector] - # @default -- `{}` (defaults to global.nodeSelector) - nodeSelector: {} - - # -- [Tolerations] for use with node taints - # @default -- `[]` (defaults to global.tolerations) - tolerations: [] - - # -- Assign custom [affinity] rules - # @default -- `{}` (defaults to global.affinity preset) - affinity: {} - - # -- Assign custom [TopologySpreadConstraints] rules to the commit server - # @default -- `[]` (defaults to global.topologySpreadConstraints) - ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/ - ## If labelSelector is left out, it will default to the labelSelector configuration of the deployment - topologySpreadConstraints: [] - # - maxSkew: 1 - # topologyKey: topology.kubernetes.io/zone - # whenUnsatisfiable: DoNotSchedule - - # -- Deployment strategy to be added to the commit server Deployment - deploymentStrategy: {} - # type: RollingUpdate - # rollingUpdate: - # maxSurge: 25% - # maxUnavailable: 25% - - # -- Priority class for the commit server pods - # @default -- `""` (defaults to global.priorityClassName) - priorityClassName: "" diff --git a/charts/argo-events/Chart.yaml b/charts/argo-events/Chart.yaml index a184cb91..b763af57 100644 --- a/charts/argo-events/Chart.yaml +++ b/charts/argo-events/Chart.yaml @@ -1,8 +1,8 @@ apiVersion: v2 -appVersion: v1.9.5 +appVersion: v1.7.6 description: A Helm chart for Argo Events, the event-driven workflow automation framework name: argo-events -version: 2.4.13 +version: 2.3.1 home: https://github.com/argoproj/argo-helm icon: https://avatars.githubusercontent.com/u/30269780?s=200&v=4 keywords: @@ -14,9 +14,6 @@ maintainers: - name: argoproj url: https://argoproj.github.io/ annotations: - artifacthub.io/signKey: | - fingerprint: 2B8F22F57260EFA67BE1C5824B11F800CD9D2252 - url: https://argoproj.github.io/argo-helm/pgp_keys.asc artifacthub.io/changes: | - - kind: changed - description: Bump argo-events to v1.9.5 + - kind: chore + description: Update chart icon diff --git a/charts/argo-events/README.md b/charts/argo-events/README.md index 7e9f6e37..f06f9d3a 100644 --- a/charts/argo-events/README.md +++ b/charts/argo-events/README.md @@ -60,58 +60,16 @@ done |-----|------|---------|-------------| | configs.jetstream.settings.maxFileStore | int | `-1` | Maximum size of the file storage (e.g. 20G) | | configs.jetstream.settings.maxMemoryStore | int | `-1` | Maximum size of the memory storage (e.g. 1G) | -| configs.jetstream.streamConfig.discard | int | `0` | 0: DiscardOld, 1: DiscardNew | | configs.jetstream.streamConfig.duplicates | string | `"300s"` | Not documented at the moment | | configs.jetstream.streamConfig.maxAge | string | `"72h"` | Maximum age of existing messages, i.e. “72h”, “4h35m” | | configs.jetstream.streamConfig.maxBytes | string | `"1GB"` | | | configs.jetstream.streamConfig.maxMsgs | int | `1000000` | Maximum number of messages before expiring oldest message | | configs.jetstream.streamConfig.replicas | int | `3` | Number of replicas, defaults to 3 and requires minimal 3 | -| configs.jetstream.streamConfig.retention | int | `0` | 0: Limits, 1: Interest, 2: WorkQueue | -| configs.jetstream.versions[0].configReloaderImage | string | `"natsio/nats-server-config-reloader:0.14.0"` | | -| configs.jetstream.versions[0].metricsExporterImage | string | `"natsio/prometheus-nats-exporter:0.14.0"` | | -| configs.jetstream.versions[0].natsImage | string | `"nats:2.10.10"` | | +| configs.jetstream.versions[0].configReloaderImage | string | `"natsio/nats-server-config-reloader:latest"` | | +| configs.jetstream.versions[0].metricsExporterImage | string | `"natsio/prometheus-nats-exporter:latest"` | | +| configs.jetstream.versions[0].natsImage | string | `"nats:latest"` | | | configs.jetstream.versions[0].startCommand | string | `"/nats-server"` | | | configs.jetstream.versions[0].version | string | `"latest"` | | -| configs.jetstream.versions[1].configReloaderImage | string | `"natsio/nats-server-config-reloader:0.7.0"` | | -| configs.jetstream.versions[1].metricsExporterImage | string | `"natsio/prometheus-nats-exporter:0.9.1"` | | -| configs.jetstream.versions[1].natsImage | string | `"nats:2.8.1"` | | -| configs.jetstream.versions[1].startCommand | string | `"/nats-server"` | | -| configs.jetstream.versions[1].version | string | `"2.8.1"` | | -| configs.jetstream.versions[2].configReloaderImage | string | `"natsio/nats-server-config-reloader:0.7.0"` | | -| configs.jetstream.versions[2].metricsExporterImage | string | `"natsio/prometheus-nats-exporter:0.9.1"` | | -| configs.jetstream.versions[2].natsImage | string | `"nats:2.8.1-alpine"` | | -| configs.jetstream.versions[2].startCommand | string | `"nats-server"` | | -| configs.jetstream.versions[2].version | string | `"2.8.1-alpine"` | | -| configs.jetstream.versions[3].configReloaderImage | string | `"natsio/nats-server-config-reloader:0.7.0"` | | -| configs.jetstream.versions[3].metricsExporterImage | string | `"natsio/prometheus-nats-exporter:0.9.1"` | | -| configs.jetstream.versions[3].natsImage | string | `"nats:2.8.2"` | | -| configs.jetstream.versions[3].startCommand | string | `"/nats-server"` | | -| configs.jetstream.versions[3].version | string | `"2.8.2"` | | -| configs.jetstream.versions[4].configReloaderImage | string | `"natsio/nats-server-config-reloader:0.7.0"` | | -| configs.jetstream.versions[4].metricsExporterImage | string | `"natsio/prometheus-nats-exporter:0.9.1"` | | -| configs.jetstream.versions[4].natsImage | string | `"nats:2.8.2-alpine"` | | -| configs.jetstream.versions[4].startCommand | string | `"nats-server"` | | -| configs.jetstream.versions[4].version | string | `"2.8.2-alpine"` | | -| configs.jetstream.versions[5].configReloaderImage | string | `"natsio/nats-server-config-reloader:0.7.0"` | | -| configs.jetstream.versions[5].metricsExporterImage | string | `"natsio/prometheus-nats-exporter:0.9.1"` | | -| configs.jetstream.versions[5].natsImage | string | `"nats:2.9.1"` | | -| configs.jetstream.versions[5].startCommand | string | `"/nats-server"` | | -| configs.jetstream.versions[5].version | string | `"2.9.1"` | | -| configs.jetstream.versions[6].configReloaderImage | string | `"natsio/nats-server-config-reloader:0.7.0"` | | -| configs.jetstream.versions[6].metricsExporterImage | string | `"natsio/prometheus-nats-exporter:0.9.1"` | | -| configs.jetstream.versions[6].natsImage | string | `"nats:2.9.12"` | | -| configs.jetstream.versions[6].startCommand | string | `"/nats-server"` | | -| configs.jetstream.versions[6].version | string | `"2.9.12"` | | -| configs.jetstream.versions[7].configReloaderImage | string | `"natsio/nats-server-config-reloader:0.7.0"` | | -| configs.jetstream.versions[7].metricsExporterImage | string | `"natsio/prometheus-nats-exporter:0.9.1"` | | -| configs.jetstream.versions[7].natsImage | string | `"nats:2.9.16"` | | -| configs.jetstream.versions[7].startCommand | string | `"/nats-server"` | | -| configs.jetstream.versions[7].version | string | `"2.9.16"` | | -| configs.jetstream.versions[8].configReloaderImage | string | `"natsio/nats-server-config-reloader:0.14.0"` | | -| configs.jetstream.versions[8].metricsExporterImage | string | `"natsio/prometheus-nats-exporter:0.14.0"` | | -| configs.jetstream.versions[8].natsImage | string | `"nats:2.10.10"` | | -| configs.jetstream.versions[8].startCommand | string | `"/nats-server"` | | -| configs.jetstream.versions[8].version | string | `"2.10.10"` | | | configs.nats.versions | list | See [values.yaml] | Supported versions of NATS event bus | | crds.annotations | object | `{}` | Annotations to be added to all CRDs | | crds.install | bool | `true` | Install and upgrade CRDs | @@ -129,7 +87,6 @@ done | global.podLabels | object | `{}` | Labels for the all deployed pods | | global.securityContext | object | `{}` | Toggle and define securityContext. See [values.yaml] | | nameOverride | string | `"argo-events"` | Provide a name in place of `argo-events` | -| namespaceOverride | string | `.Release.Namespace` | Override the namespace | | openshift | bool | `false` | Deploy on OpenShift | ### Controller @@ -170,7 +127,6 @@ done | controller.podLabels | object | `{}` | Labels to be added to events controller pods | | controller.priorityClassName | string | `""` | Priority class for the events controller pods | | controller.rbac.enabled | bool | `true` | Create events controller RBAC | -| controller.rbac.managedNamespace | string | `""` | Additional namespace to be monitored by the controller | | controller.rbac.namespaced | bool | `false` | Restrict events controller to operate only in a single namespace instead of cluster-wide scope. | | controller.rbac.rules | list | `[]` | Additional user rules for event controller's rbac | | controller.readinessProbe.failureThreshold | int | `3` | Minimum consecutive failures for the [probe] to be considered failed after having succeeded | @@ -234,9 +190,9 @@ done ---------------------------------------------- Autogenerated from chart metadata using [helm-docs](https://github.com/norwoodj/helm-docs) -[affinity]: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/ -[Node selector]: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector +[affinity]: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ +[Node selector]: https://kubernetes.io/docs/user-guide/node-selection/ [probe]: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes -[Tolerations]: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/ -[TopologySpreadConstraints]: https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/ +[Tolerations]: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ +[TopologySpreadConstraints]: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/ [values.yaml]: values.yaml diff --git a/charts/argo-events/README.md.gotmpl b/charts/argo-events/README.md.gotmpl index 505217ba..c25a3e97 100644 --- a/charts/argo-events/README.md.gotmpl +++ b/charts/argo-events/README.md.gotmpl @@ -89,9 +89,9 @@ done ---------------------------------------------- Autogenerated from chart metadata using [helm-docs](https://github.com/norwoodj/helm-docs) -[affinity]: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/ -[Node selector]: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector +[affinity]: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ +[Node selector]: https://kubernetes.io/docs/user-guide/node-selection/ [probe]: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes -[Tolerations]: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/ -[TopologySpreadConstraints]: https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/ +[Tolerations]: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ +[TopologySpreadConstraints]: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/ [values.yaml]: values.yaml diff --git a/charts/argo-events/templates/_helpers.tpl b/charts/argo-events/templates/_helpers.tpl index 79c7051d..d18f2ca9 100644 --- a/charts/argo-events/templates/_helpers.tpl +++ b/charts/argo-events/templates/_helpers.tpl @@ -104,9 +104,6 @@ helm.sh/chart: {{ include "argo-events.chart" .context }} {{ include "argo-events.selectorLabels" (dict "context" .context "component" .component "name" .name) }} app.kubernetes.io/managed-by: {{ .context.Release.Service }} app.kubernetes.io/part-of: argo-events -{{- with .context.Values.global.additionalLabels }} -{{ toYaml . }} -{{- end }} {{- end }} {{/* @@ -139,11 +136,3 @@ Define Pdb apiVersion {{- printf "policy/v1beta1" -}} {{- end }} {{- end }} - -{{/* -Expand the namespace of the release. -Allows overriding it for multi-namespace deployments in combined charts. -*/}} -{{- define "argo-events.namespace" -}} -{{- default .Release.Namespace .Values.namespaceOverride | trunc 63 | trimSuffix "-" -}} -{{- end }} diff --git a/charts/argo-events/templates/argo-events-controller/config.yaml b/charts/argo-events/templates/argo-events-controller/config.yaml index e3047de7..b3293385 100644 --- a/charts/argo-events/templates/argo-events-controller/config.yaml +++ b/charts/argo-events/templates/argo-events-controller/config.yaml @@ -2,7 +2,7 @@ apiVersion: v1 kind: ConfigMap metadata: name: {{ include "argo-events.controller.fullname" . }} - namespace: {{ include "argo-events.namespace" . | quote }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-events.labels" (dict "context" . "name" .Values.controller.name) | nindent 4 }} data: @@ -32,8 +32,6 @@ data: maxBytes: {{ .Values.configs.jetstream.streamConfig.maxBytes }} replicas: {{ .Values.configs.jetstream.streamConfig.replicas }} duplicates: {{ .Values.configs.jetstream.streamConfig.duplicates }} - retention: {{ .Values.configs.jetstream.streamConfig.retention }} - discard: {{ .Values.configs.jetstream.streamConfig.discard }} versions: {{- range .Values.configs.jetstream.versions }} - version: {{ .version }} diff --git a/charts/argo-events/templates/argo-events-controller/deployment.yaml b/charts/argo-events/templates/argo-events-controller/deployment.yaml index 17bf0a6a..9b7ace1b 100644 --- a/charts/argo-events/templates/argo-events-controller/deployment.yaml +++ b/charts/argo-events/templates/argo-events-controller/deployment.yaml @@ -2,7 +2,7 @@ apiVersion: apps/v1 kind: Deployment metadata: name: {{ include "argo-events.controller.fullname" . }} - namespace: {{ include "argo-events.namespace" . | quote }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-events.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 4 }} app.kubernetes.io/version: {{ include "argo-events.controller_chart_version_label" . }} @@ -48,10 +48,6 @@ spec: {{- if .Values.controller.rbac.namespaced }} - --namespaced {{- end }} - {{- if .Values.controller.rbac.managedNamespace }} - - --managed-namespace - - {{ .Values.controller.rbac.managedNamespace }} - {{- end }} {{- with .Values.controller.containerSecurityContext }} securityContext: {{- toYaml . | nindent 10 }} @@ -108,10 +104,6 @@ spec: {{- with .Values.controller.extraContainers }} {{- toYaml . | nindent 6 }} {{- end -}} - {{- with .Values.controller.initContainers }} - initContainers: - {{- toYaml . | nindent 8 }} - {{- end }} {{- with .Values.controller.nodeSelector }} nodeSelector: {{- toYaml . | nindent 8 }} diff --git a/charts/argo-events/templates/argo-events-controller/pdb.yaml b/charts/argo-events/templates/argo-events-controller/pdb.yaml index 269e2de4..0451ecd7 100644 --- a/charts/argo-events/templates/argo-events-controller/pdb.yaml +++ b/charts/argo-events/templates/argo-events-controller/pdb.yaml @@ -3,7 +3,7 @@ apiVersion: {{ template "argo-events.pdb.apiVersion" . }} kind: PodDisruptionBudget metadata: name: {{ template "argo-events.controller.fullname" . }} - namespace: {{ include "argo-events.namespace" . | quote }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-events.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 4 }} {{- with .Values.controller.pdb.labels }} diff --git a/charts/argo-events/templates/argo-events-controller/rbac.yaml b/charts/argo-events/templates/argo-events-controller/rbac.yaml index 69a0adcb..aa9c7c2b 100644 --- a/charts/argo-events/templates/argo-events-controller/rbac.yaml +++ b/charts/argo-events/templates/argo-events-controller/rbac.yaml @@ -4,7 +4,7 @@ kind: {{ .Values.controller.rbac.namespaced | ternary "Role" "ClusterRole" }} metadata: name: {{ include "argo-events.controller.fullname" . }} {{- if .Values.controller.rbac.namespaced }} - namespace: {{ include "argo-events.namespace" . | quote }} + namespace: {{ .Release.Namespace | quote }} {{- end }} labels: {{- include "argo-events.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 4 }} @@ -122,5 +122,5 @@ roleRef: subjects: - kind: ServiceAccount name: {{ include "argo-events.controller.serviceAccountName" . }} - namespace: {{ include "argo-events.namespace" . | quote }} + namespace: {{ .Release.Namespace | quote }} {{- end }} diff --git a/charts/argo-events/templates/argo-events-controller/service.yaml b/charts/argo-events/templates/argo-events-controller/service.yaml index 55fe9361..fe36320b 100644 --- a/charts/argo-events/templates/argo-events-controller/service.yaml +++ b/charts/argo-events/templates/argo-events-controller/service.yaml @@ -3,7 +3,7 @@ apiVersion: v1 kind: Service metadata: name: {{ template "argo-events.controller.fullname" . }}-metrics - namespace: {{ include "argo-events.namespace" . | quote }} + namespace: {{ .Release.Namespace | quote }} {{- with .Values.controller.metrics.service.annotations }} annotations: {{- range $key, $value := . }} diff --git a/charts/argo-events/templates/argo-events-controller/serviceaccount.yaml b/charts/argo-events/templates/argo-events-controller/serviceaccount.yaml index bd697989..3b8a9c81 100644 --- a/charts/argo-events/templates/argo-events-controller/serviceaccount.yaml +++ b/charts/argo-events/templates/argo-events-controller/serviceaccount.yaml @@ -4,7 +4,7 @@ kind: ServiceAccount automountServiceAccountToken: {{ .Values.controller.serviceAccount.automountServiceAccountToken }} metadata: name: {{ include "argo-events.controller.serviceAccountName" . }} - namespace: {{ include "argo-events.namespace" . | quote }} + namespace: {{ .Release.Namespace | quote }} {{- with .Values.controller.serviceAccount.annotations }} annotations: {{- range $key, $value := . }} diff --git a/charts/argo-events/templates/argo-events-controller/servicemonitor.yaml b/charts/argo-events/templates/argo-events-controller/servicemonitor.yaml index 371794ee..55cda1d4 100644 --- a/charts/argo-events/templates/argo-events-controller/servicemonitor.yaml +++ b/charts/argo-events/templates/argo-events-controller/servicemonitor.yaml @@ -3,7 +3,7 @@ apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: {{ template "argo-events.controller.fullname" . }} - namespace: {{ default (include "argo-events.namespace" .) .Values.controller.metrics.serviceMonitor.namespace | quote }} + namespace: {{ default .Release.Namespace .Values.controller.metrics.serviceMonitor.namespace | quote }} labels: {{- include "argo-events.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 4 }} {{- with .Values.controller.metrics.serviceMonitor.selector }} @@ -29,7 +29,7 @@ spec: {{- end }} namespaceSelector: matchNames: - - {{ include "argo-events.namespace" . | quote }} + - {{ .Release.Namespace | quote }} selector: matchLabels: {{- include "argo-events.selectorLabels" (dict "context" . "component" .Values.controller.name "name" (printf "%s-metrics" .Values.controller.name)) | nindent 6 }} diff --git a/charts/argo-events/templates/argo-events-webhook/clusterrolebinding.yaml b/charts/argo-events/templates/argo-events-webhook/clusterrolebinding.yaml index c701c8d7..89226483 100644 --- a/charts/argo-events/templates/argo-events-webhook/clusterrolebinding.yaml +++ b/charts/argo-events/templates/argo-events-webhook/clusterrolebinding.yaml @@ -12,5 +12,5 @@ roleRef: subjects: - kind: ServiceAccount name: {{ include "argo-events.webhook.serviceAccountName" . }} - namespace: {{ include "argo-events.namespace" . | quote }} + namespace: {{ .Release.Namespace | quote }} {{- end }} diff --git a/charts/argo-events/templates/argo-events-webhook/deployment.yaml b/charts/argo-events/templates/argo-events-webhook/deployment.yaml index 0b995ba2..0445484e 100644 --- a/charts/argo-events/templates/argo-events-webhook/deployment.yaml +++ b/charts/argo-events/templates/argo-events-webhook/deployment.yaml @@ -3,7 +3,7 @@ apiVersion: apps/v1 kind: Deployment metadata: name: events-webhook - namespace: {{ include "argo-events.namespace" . | quote }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-events.labels" (dict "context" . "component" .Values.webhook.name "name" .Values.webhook.name) | nindent 4 }} app.kubernetes.io/version: {{ include "argo-events.webhook_chart_version_label" . }} diff --git a/charts/argo-events/templates/argo-events-webhook/pdb.yaml b/charts/argo-events/templates/argo-events-webhook/pdb.yaml index 26ee675d..a3daa745 100644 --- a/charts/argo-events/templates/argo-events-webhook/pdb.yaml +++ b/charts/argo-events/templates/argo-events-webhook/pdb.yaml @@ -3,7 +3,7 @@ apiVersion: {{ template "argo-events.pdb.apiVersion" . }} kind: PodDisruptionBudget metadata: name: {{ template "argo-events.webhook.fullname" . }} - namespace: {{ include "argo-events.namespace" . | quote }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-events.labels" (dict "context" . "component" .Values.webhook.name "name" .Values.webhook.name) | nindent 4 }} {{- with .Values.webhook.pdb.labels }} diff --git a/charts/argo-events/templates/argo-events-webhook/service.yaml b/charts/argo-events/templates/argo-events-webhook/service.yaml index 797ceb43..15563d0e 100644 --- a/charts/argo-events/templates/argo-events-webhook/service.yaml +++ b/charts/argo-events/templates/argo-events-webhook/service.yaml @@ -3,12 +3,12 @@ apiVersion: v1 kind: Service metadata: name: events-webhook - namespace: {{ include "argo-events.namespace" . | quote }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-events.labels" (dict "context" . "name" .Values.webhook.name) | nindent 4 }} spec: ports: - - port: {{ int .Values.webhook.port }} + - port: 443 targetPort: webhook selector: {{- include "argo-events.selectorLabels" (dict "context" $ "name" $.Values.webhook.name) | nindent 4 }} diff --git a/charts/argo-events/templates/argo-events-webhook/serviceaccount.yaml b/charts/argo-events/templates/argo-events-webhook/serviceaccount.yaml index 0efad0c2..e3e2ac5b 100644 --- a/charts/argo-events/templates/argo-events-webhook/serviceaccount.yaml +++ b/charts/argo-events/templates/argo-events-webhook/serviceaccount.yaml @@ -4,7 +4,7 @@ kind: ServiceAccount automountServiceAccountToken: {{ .Values.webhook.serviceAccount.automountServiceAccountToken }} metadata: name: {{ include "argo-events.webhook.serviceAccountName" . }} - namespace: {{ include "argo-events.namespace" . | quote }} + namespace: {{ .Release.Namespace | quote }} {{- with .Values.webhook.serviceAccount.annotations }} annotations: {{- range $key, $value := . }} diff --git a/charts/argo-events/values.yaml b/charts/argo-events/values.yaml index fb9878c9..89a7323d 100644 --- a/charts/argo-events/values.yaml +++ b/charts/argo-events/values.yaml @@ -6,9 +6,6 @@ nameOverride: argo-events # -- String to fully override "argo-events.fullname" template fullnameOverride: "" -# -- Override the namespace -# @default -- `.Release.Namespace` -namespaceOverride: "" # -- Deploy on OpenShift openshift: false @@ -94,56 +91,12 @@ configs: replicas: 3 # -- Not documented at the moment duplicates: 300s - # -- 0: Limits, 1: Interest, 2: WorkQueue - retention: 0 - # -- 0: DiscardOld, 1: DiscardNew - discard: 0 # Supported versions of JetStream eventbus versions: - - version: latest - natsImage: nats:2.10.10 - metricsExporterImage: natsio/prometheus-nats-exporter:0.14.0 - configReloaderImage: natsio/nats-server-config-reloader:0.14.0 - startCommand: /nats-server - - version: 2.8.1 - natsImage: nats:2.8.1 - metricsExporterImage: natsio/prometheus-nats-exporter:0.9.1 - configReloaderImage: natsio/nats-server-config-reloader:0.7.0 - startCommand: /nats-server - - version: 2.8.1-alpine - natsImage: nats:2.8.1-alpine - metricsExporterImage: natsio/prometheus-nats-exporter:0.9.1 - configReloaderImage: natsio/nats-server-config-reloader:0.7.0 - startCommand: nats-server - - version: 2.8.2 - natsImage: nats:2.8.2 - metricsExporterImage: natsio/prometheus-nats-exporter:0.9.1 - configReloaderImage: natsio/nats-server-config-reloader:0.7.0 - startCommand: /nats-server - - version: 2.8.2-alpine - natsImage: nats:2.8.2-alpine - metricsExporterImage: natsio/prometheus-nats-exporter:0.9.1 - configReloaderImage: natsio/nats-server-config-reloader:0.7.0 - startCommand: nats-server - - version: 2.9.1 - natsImage: nats:2.9.1 - metricsExporterImage: natsio/prometheus-nats-exporter:0.9.1 - configReloaderImage: natsio/nats-server-config-reloader:0.7.0 - startCommand: /nats-server - - version: 2.9.12 - natsImage: nats:2.9.12 - metricsExporterImage: natsio/prometheus-nats-exporter:0.9.1 - configReloaderImage: natsio/nats-server-config-reloader:0.7.0 - startCommand: /nats-server - - version: 2.9.16 - natsImage: nats:2.9.16 - metricsExporterImage: natsio/prometheus-nats-exporter:0.9.1 - configReloaderImage: natsio/nats-server-config-reloader:0.7.0 - startCommand: /nats-server - - version: 2.10.10 - natsImage: nats:2.10.10 - metricsExporterImage: natsio/prometheus-nats-exporter:0.14.0 - configReloaderImage: natsio/nats-server-config-reloader:0.14.0 + - version: "latest" + natsImage: nats:latest + metricsExporterImage: natsio/prometheus-nats-exporter:latest + configReloaderImage: natsio/nats-server-config-reloader:latest startCommand: /nats-server # -- Array of extra K8s manifests to deploy @@ -185,8 +138,6 @@ controller: enabled: true # -- Restrict events controller to operate only in a single namespace instead of cluster-wide scope. namespaced: false - # -- Additional namespace to be monitored by the controller - managedNamespace: "" # -- Additional user rules for event controller's rbac rules: [] @@ -243,7 +194,7 @@ controller: # runAsNonRoot: true ## Readiness and liveness probes for default backend - ## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/ + ## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/ readinessProbe: # -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded failureThreshold: 3 @@ -281,7 +232,7 @@ controller: affinity: {} # -- Assign custom [TopologySpreadConstraints] rules to the events controller - ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/ + ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/ ## If labelSelector is left out, it will default to the labelSelector configuration of the deployment topologySpreadConstraints: [] # - maxSkew: 1 @@ -409,7 +360,7 @@ webhook: # runAsNonRoot: true ## Readiness and liveness probes for default backend - ## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/ + ## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/ readinessProbe: # -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded failureThreshold: 3 @@ -447,7 +398,7 @@ webhook: affinity: {} # -- Assign custom [TopologySpreadConstraints] rules to the event controller - ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/ + ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/ ## If labelSelector is left out, it will default to the labelSelector configuration of the deployment topologySpreadConstraints: [] # - maxSkew: 1 diff --git a/charts/argo-rollouts/Chart.yaml b/charts/argo-rollouts/Chart.yaml index a9ed74ee..46ca6ba7 100644 --- a/charts/argo-rollouts/Chart.yaml +++ b/charts/argo-rollouts/Chart.yaml @@ -1,8 +1,8 @@ apiVersion: v2 -appVersion: v1.8.0 +appVersion: v1.4.1 description: A Helm chart for Argo Rollouts name: argo-rollouts -version: 2.39.0 +version: 2.27.0 home: https://github.com/argoproj/argo-helm icon: https://argoproj.github.io/argo-rollouts/assets/logo.png keywords: @@ -14,9 +14,6 @@ maintainers: - name: argoproj url: https://argoproj.github.io/ annotations: - artifacthub.io/signKey: | - fingerprint: 2B8F22F57260EFA67BE1C5824B11F800CD9D2252 - url: https://argoproj.github.io/argo-helm/pgp_keys.asc artifacthub.io/changes: | - - kind: changed - description: Bump argo-rollouts to v1.8.0 + - kind: added + description: Allow extraObjects to contain string templates diff --git a/charts/argo-rollouts/README.md b/charts/argo-rollouts/README.md index aa09ca14..58784cf0 100644 --- a/charts/argo-rollouts/README.md +++ b/charts/argo-rollouts/README.md @@ -49,31 +49,21 @@ For full list of changes please check ArtifactHub [changelog]. | createClusterAggregateRoles | bool | `true` | flag to enable creation of cluster aggregate roles (requires cluster RBAC) | | extraObjects | list | `[]` | Additional manifests to deploy within the chart. A list of objects. | | fullnameOverride | string | `nil` | String to fully override "argo-rollouts.fullname" template | -| global.deploymentAnnotations | object | `{}` | Annotations for all deployed Deployments | -| global.deploymentLabels | object | `{}` | Labels for all deployed Deployments | -| global.revisionHistoryLimit | int | `10` | Number of old deployment ReplicaSets to retain. The rest will be garbage collected. | | imagePullSecrets | list | `[]` | Secrets with credentials to pull images from a private registry. Registry secret names as an array. | | installCRDs | bool | `true` | Install and upgrade CRDs | | keepCRDs | bool | `true` | Keep CRD's on helm uninstall | | kubeVersionOverride | string | `""` | Override the Kubernetes version, which is used to evaluate certain manifests | | nameOverride | string | `nil` | String to partially override "argo-rollouts.fullname" template | -| notifications.configmap.create | bool | `true` | Whether to create notifications configmap | | notifications.notifiers | object | `{}` | Configures notification services | -| notifications.secret.annotations | object | `{}` | Annotations to be added to the notifications secret | -| notifications.secret.create | bool | `false` | Whether to create notifications secret. | +| notifications.secret.create | bool | `false` | Whether to create notifications secret | | notifications.secret.items | object | `{}` | Generic key:value pairs to be inserted into the notifications secret | -| notifications.subscriptions | list | `[]` | The subscriptions define the subscriptions to the triggers in a general way for all rollouts | | notifications.templates | object | `{}` | Notification templates | | notifications.triggers | object | `{}` | The trigger defines the condition when the notification should be sent | -| providerRBAC.additionalRules | list | `[]` | Additional RBAC rules for others providers | | providerRBAC.enabled | bool | `true` | Toggles addition of provider-specific RBAC rules to the controller Role and ClusterRole | | providerRBAC.providers.ambassador | bool | `true` | Adds RBAC rules for the Ambassador provider | | providerRBAC.providers.apisix | bool | `true` | Adds RBAC rules for the Apisix provider | | providerRBAC.providers.awsAppMesh | bool | `true` | Adds RBAC rules for the AWS App Mesh provider | | providerRBAC.providers.awsLoadBalancerController | bool | `true` | Adds RBAC rules for the AWS Load Balancer Controller provider | -| providerRBAC.providers.contour | bool | `true` | Adds RBAC rules for the Contour provider, see `https://github.com/argoproj-labs/rollouts-plugin-trafficrouter-contour/blob/main/README.md` | -| providerRBAC.providers.gatewayAPI | bool | `true` | Adds RBAC rules for the Gateway API provider | -| providerRBAC.providers.glooPlatform | bool | `true` | Adds RBAC rules for the Gloo Platform provider, see `https://github.com/argoproj-labs/rollouts-plugin-trafficrouter-glooplatform/blob/main/README.md` | | providerRBAC.providers.istio | bool | `true` | Adds RBAC rules for the Istio provider | | providerRBAC.providers.smi | bool | `true` | Adds RBAC rules for the SMI provider | | providerRBAC.providers.traefik | bool | `true` | Adds RBAC rules for the Traefik provider | @@ -82,14 +72,10 @@ For full list of changes please check ArtifactHub [changelog]. | Key | Type | Default | Description | |-----|------|---------|-------------| -| containerSecurityContext | object | `{"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"readOnlyRootFilesystem":true,"seccompProfile":{"type":"RuntimeDefault"}}` | Security Context to set on container level | +| containerSecurityContext | object | `{}` | Security Context to set on container level | | controller.affinity | object | `{}` | Assign custom [affinity] rules to the deployment | | controller.component | string | `"rollouts-controller"` | Value of label `app.kubernetes.io/component` | -| controller.containerPorts.healthz | int | `8080` | Healthz container port | -| controller.containerPorts.metrics | int | `8090` | Metrics container port | | controller.createClusterRole | bool | `true` | flag to enable creation of cluster controller role (requires cluster RBAC) | -| controller.deploymentAnnotations | object | `{}` | Annotations to be added to the controller deployment | -| controller.deploymentLabels | object | `{}` | Labels to be added to the controller deployment | | controller.extraArgs | list | `[]` | Additional command line arguments to pass to rollouts-controller. A list of flags. | | controller.extraContainers | list | `[]` | Literal yaml for extra containers to be added to controller deployment. | | controller.extraEnv | list | `[]` | Additional environment variables for rollouts-controller. A list of name/value maps. | @@ -98,21 +84,12 @@ For full list of changes please check ArtifactHub [changelog]. | controller.image.repository | string | `"argoproj/argo-rollouts"` | Repository to use | | controller.image.tag | string | `""` | Overrides the image tag (default is the chart appVersion) | | controller.initContainers | list | `[]` | Init containers to add to the rollouts controller pod | -| controller.lifecycle | object | `{}` | Specify lifecycle hooks for the controller | | controller.livenessProbe | object | See [values.yaml] | Configure liveness [probe] for the controller | -| controller.logging.format | string | `"text"` | Set the logging format (one of: `text`, `json`) | -| controller.logging.kloglevel | string | `"0"` | Set the klog logging level | -| controller.logging.level | string | `"info"` | Set the logging level (one of: `debug`, `info`, `warn`, `error`) | -| controller.metricProviderPlugins | list | `[]` | Configures 3rd party metric providers for controller | | controller.metrics.enabled | bool | `false` | Deploy metrics service | -| controller.metrics.service.annotations | object | `{}` | Service annotations | -| controller.metrics.service.port | int | `8090` | Metrics service port | -| controller.metrics.service.portName | string | `"metrics"` | Metrics service port name | | controller.metrics.serviceMonitor.additionalAnnotations | object | `{}` | Annotations to be added to the ServiceMonitor | | controller.metrics.serviceMonitor.additionalLabels | object | `{}` | Labels to be added to the ServiceMonitor | | controller.metrics.serviceMonitor.enabled | bool | `false` | Enable a prometheus ServiceMonitor | | controller.metrics.serviceMonitor.metricRelabelings | list | `[]` | MetricRelabelConfigs to apply to samples before ingestion | -| controller.metrics.serviceMonitor.namespace | string | `""` | Namespace to be used for the ServiceMonitor | | controller.metrics.serviceMonitor.relabelings | list | `[]` | RelabelConfigs to apply to samples before scraping | | controller.nodeSelector | object | `{}` | [Node selector] | | controller.pdb.annotations | object | `{}` | Annotations to be added to controller [Pod Disruption Budget] | @@ -121,15 +98,12 @@ For full list of changes please check ArtifactHub [changelog]. | controller.pdb.maxUnavailable | string | `nil` | Maximum number / percentage of pods that may be made unavailable | | controller.pdb.minAvailable | string | `nil` | Minimum number / percentage of pods that should remain scheduled | | controller.podAnnotations | object | `{}` | Annotations to be added to application controller pods | -| controller.podLabels | object | `{}` | Labels to be added to the application controller pods | | controller.priorityClassName | string | `""` | [priorityClassName] for the controller | | controller.readinessProbe | object | See [values.yaml] | Configure readiness [probe] for the controller | | controller.replicas | int | `2` | The number of controller pods to run | | controller.resources | object | `{}` | Resource limits and requests for the controller pods. | -| controller.terminationGracePeriodSeconds | int | `30` | terminationGracePeriodSeconds for container lifecycle hook | | controller.tolerations | list | `[]` | [Tolerations] for use with node taints | | controller.topologySpreadConstraints | list | `[]` | Assign custom [TopologySpreadConstraints] rules to the controller | -| controller.trafficRouterPlugins | list | `[]` | Configures 3rd party traffic router plugins for controller | | controller.volumeMounts | list | `[]` | Additional volumeMounts to add to the controller container | | controller.volumes | list | `[]` | Additional volumes to add to the controller pod | | podAnnotations | object | `{}` | Annotations for the all deployed pods | @@ -148,8 +122,6 @@ For full list of changes please check ArtifactHub [changelog]. | dashboard.component | string | `"rollouts-dashboard"` | Value of label `app.kubernetes.io/component` | | dashboard.containerSecurityContext | object | `{}` | Security Context to set on container level | | dashboard.createClusterRole | bool | `true` | flag to enable creation of dashbord cluster role (requires cluster RBAC) | -| dashboard.deploymentAnnotations | object | `{}` | Annotations to be added to the dashboard deployment | -| dashboard.deploymentLabels | object | `{}` | Labels to be added to the dashboard deployment | | dashboard.enabled | bool | `false` | Deploy dashboard server | | dashboard.extraArgs | list | `[]` | Additional command line arguments to pass to rollouts-dashboard. A list of flags. | | dashboard.extraEnv | list | `[]` | Additional environment variables for rollouts-dashboard. A list of name/value maps. | @@ -166,8 +138,6 @@ For full list of changes please check ArtifactHub [changelog]. | dashboard.ingress.pathType | string | `"Prefix"` | Dashboard ingress path type | | dashboard.ingress.paths | list | `["/"]` | Dashboard ingress paths | | dashboard.ingress.tls | list | `[]` | Dashboard ingress tls | -| dashboard.logging.kloglevel | string | `"0"` | Set the klog logging level | -| dashboard.logging.level | string | `"info"` | Set the logging level (one of: `debug`, `info`, `warn`, `error`) | | dashboard.nodeSelector | object | `{}` | [Node selector] | | dashboard.pdb.annotations | object | `{}` | Annotations to be added to dashboard [Pod Disruption Budget] | | dashboard.pdb.enabled | bool | `false` | Deploy a [Pod Disruption Budget] for the dashboard | @@ -175,7 +145,6 @@ For full list of changes please check ArtifactHub [changelog]. | dashboard.pdb.maxUnavailable | string | `nil` | Maximum number / percentage of pods that may be made unavailable | | dashboard.pdb.minAvailable | string | `nil` | Minimum number / percentage of pods that should remain scheduled | | dashboard.podAnnotations | object | `{}` | Annotations to be added to application dashboard pods | -| dashboard.podLabels | object | `{}` | Labels to be added to the application dashboard pods | | dashboard.podSecurityContext | object | `{"runAsNonRoot":true}` | Security Context to set on pod level | | dashboard.priorityClassName | string | `""` | [priorityClassName] for the dashboard server | | dashboard.readonly | bool | `false` | Set cluster role to readonly | @@ -184,7 +153,6 @@ For full list of changes please check ArtifactHub [changelog]. | dashboard.service.annotations | object | `{}` | Service annotations | | dashboard.service.externalIPs | list | `[]` | Dashboard service external IPs | | dashboard.service.labels | object | `{}` | Service labels | -| dashboard.service.loadBalancerClass | string | `""` | The class of the load balancer implementation | | dashboard.service.loadBalancerIP | string | `""` | LoadBalancer will get created with the IP specified in this field | | dashboard.service.loadBalancerSourceRanges | list | `[]` | Source IP ranges to allow access to service from | | dashboard.service.nodePort | int | `nil` | Service nodePort | diff --git a/charts/argo-rollouts/ci/enable-extra-objects-values.yaml b/charts/argo-rollouts/ci/enable-extra-objects-values.yaml deleted file mode 100644 index 8d18ecd3..00000000 --- a/charts/argo-rollouts/ci/enable-extra-objects-values.yaml +++ /dev/null @@ -1,14 +0,0 @@ -# Test with extraObjects enabled -# Do not deploy the CRDs as they are already present from the previous test -installCRDs: false - -extraObjects: - - apiVersion: v1 - kind: Secret - metadata: - name: datadog - type: Opaque - data: - address: aHR0cHM6Ly9hcGkuZGF0YWRvZ2hxLmNvbQo= # https://api.datadoghq.com - api-key: dGVzdC1hcGkta2V5Cg== # test-api-key - app-key: dGVzdC1hcHAta2V5Cg== # test-app-key diff --git a/charts/argo-rollouts/templates/_helpers.tpl b/charts/argo-rollouts/templates/_helpers.tpl index 820996a8..46ebaea5 100644 --- a/charts/argo-rollouts/templates/_helpers.tpl +++ b/charts/argo-rollouts/templates/_helpers.tpl @@ -109,311 +109,3 @@ Return the appropriate apiVersion for pod disruption budget {{- print "policy/v1" -}} {{- end -}} {{- end -}} - -{{/* -Return the rules for controller's Role and ClusterRole -*/}} -{{- define "argo-rollouts.controller.roleRules" -}} -- apiGroups: - - argoproj.io - resources: - - rollouts - - rollouts/status - - rollouts/finalizers - verbs: - - get - - list - - watch - - update - - patch -- apiGroups: - - argoproj.io - resources: - - analysisruns - - analysisruns/finalizers - - experiments - - experiments/finalizers - verbs: - - create - - get - - list - - watch - - update - - patch - - delete -- apiGroups: - - argoproj.io - resources: - - analysistemplates - - clusteranalysistemplates - verbs: - - get - - list - - watch -# replicaset access needed for managing ReplicaSets -- apiGroups: - - apps - resources: - - replicasets - verbs: - - create - - get - - list - - watch - - update - - patch - - delete -# deployments and podtemplates read access needed for workload reference support -- apiGroups: - - "" - - apps - resources: - - deployments - - podtemplates - verbs: - - get - - list - - watch - - update -# services patch needed to update selector of canary/stable/active/preview services -# services create needed to create and delete services for experiments -- apiGroups: - - "" - resources: - - services - verbs: - - get - - list - - watch - - patch - - create - - delete -# leases create/get/update needed for leader election -- apiGroups: - - coordination.k8s.io - resources: - - leases - verbs: - - create - - get - - update -# secret read access to run analysis templates which reference secrets -- apiGroups: - - "" - resources: - - secrets - verbs: - - get - - list - - watch -- apiGroups: - - "" - resources: - - configmaps - verbs: - - get - - list - - watch -{{- if .Values.providerRBAC.providers.gatewayAPI }} - - create - - update -{{- end }} -# pod list/update needed for updating ephemeral data -- apiGroups: - - "" - resources: - - pods - verbs: - - list - - update - - watch -# pods eviction needed for restart -- apiGroups: - - "" - resources: - - pods/eviction - verbs: - - create -# event write needed for emitting events -- apiGroups: - - "" - resources: - - events - verbs: - - create - - update - - patch -# ingress patch needed for managing ingress annotations, create needed for nginx canary -- apiGroups: - - networking.k8s.io - - extensions - resources: - - ingresses - verbs: - - create - - get - - list - - watch - - update - - patch -# job access needed for analysis template job metrics -- apiGroups: - - batch - resources: - - jobs - verbs: - - create - - get - - list - - watch - - update - - patch - - delete -{{- if .Values.providerRBAC.enabled }} -{{- if .Values.providerRBAC.providers.istio }} -# virtualservice/destinationrule access needed for using the Istio provider -- apiGroups: - - networking.istio.io - resources: - - virtualservices - - destinationrules - verbs: - - watch - - get - - update - - patch - - list -{{- end }} -{{- if .Values.providerRBAC.providers.smi }} -# trafficsplit access needed for using the SMI provider -- apiGroups: - - split.smi-spec.io - resources: - - trafficsplits - verbs: - - create - - watch - - get - - update - - patch -{{- end }} -{{- if .Values.providerRBAC.providers.ambassador }} -# ambassador access needed for Ambassador provider -- apiGroups: - - getambassador.io - - x.getambassador.io - resources: - - mappings - - ambassadormappings - verbs: - - create - - watch - - get - - update - - list - - delete -{{- end }} -{{- if .Values.providerRBAC.providers.awsLoadBalancerController }} -# Endpoints and TargetGroupBindings needed for ALB target group verification when using AWS Load Balancer Controller -- apiGroups: - - "" - resources: - - endpoints - verbs: - - get -- apiGroups: - - elbv2.k8s.aws - resources: - - targetgroupbindings - verbs: - - list - - get -{{- end }} -{{- if .Values.providerRBAC.providers.awsAppMesh }} -# AppMesh virtualservices/virtualrouter CRD read-only access needed for using the App Mesh provider -- apiGroups: - - appmesh.k8s.aws - resources: - - virtualservices - verbs: - - watch - - get - - list -# AppMesh virtualnode CRD r/w access needed for using the App Mesh provider -- apiGroups: - - appmesh.k8s.aws - resources: - - virtualnodes - - virtualrouters - verbs: - - watch - - get - - list - - update - - patch -{{- end }} -{{- if .Values.providerRBAC.providers.traefik }} -# Traefik access needed when using the Traefik provider -- apiGroups: - - traefik.containo.us - - traefik.io - resources: - - traefikservices - verbs: - - watch - - get - - update -{{- end }} -{{- if .Values.providerRBAC.providers.apisix }} -# Access needed when using the Apisix provider -- apiGroups: - - apisix.apache.org - resources: - - apisixroutes - verbs: - - watch - - get - - update -{{- end }} -{{- if .Values.providerRBAC.providers.contour }} - # Access needed when using the Contour provider -- apiGroups: - - projectcontour.io - resources: - - httpproxies - verbs: - - get - - list - - watch - - update -{{- end }} -{{- if .Values.providerRBAC.providers.glooPlatform }} - # Access needed when using the Gloo Platform provider -- apiGroups: - - networking.gloo.solo.io - resources: - - routetables - verbs: - - '*' -{{- end }} -{{- if .Values.providerRBAC.providers.gatewayAPI }} - # Access needed when using the Gateway API provider -- apiGroups: - - gateway.networking.k8s.io - resources: - - httproutes - - tcproutes - - tlsroutes - - udproutes - - grpcroutes - verbs: - - get - - list - - watch - - update -{{- end }} -{{- with .Values.providerRBAC.additionalRules }} -{{ toYaml . }} -{{- end }} -{{- end }} -{{- end -}} diff --git a/charts/argo-rollouts/templates/controller/clusterrole.yaml b/charts/argo-rollouts/templates/controller/clusterrole.yaml index 026f23d7..964daed3 100644 --- a/charts/argo-rollouts/templates/controller/clusterrole.yaml +++ b/charts/argo-rollouts/templates/controller/clusterrole.yaml @@ -7,5 +7,252 @@ metadata: app.kubernetes.io/component: {{ .Values.controller.component }} {{- include "argo-rollouts.labels" . | nindent 4 }} rules: - {{- include "argo-rollouts.controller.roleRules" . | nindent 2 }} +- apiGroups: + - argoproj.io + resources: + - rollouts + - rollouts/status + - rollouts/finalizers + verbs: + - get + - list + - watch + - update + - patch +- apiGroups: + - argoproj.io + resources: + - analysisruns + - analysisruns/finalizers + - experiments + - experiments/finalizers + verbs: + - create + - get + - list + - watch + - update + - patch + - delete +- apiGroups: + - argoproj.io + resources: + - analysistemplates + - clusteranalysistemplates + verbs: + - get + - list + - watch +# replicaset access needed for managing ReplicaSets +- apiGroups: + - apps + resources: + - replicasets + verbs: + - create + - get + - list + - watch + - update + - patch + - delete +# deployments and podtemplates read access needed for workload reference support +- apiGroups: + - "" + - apps + resources: + - deployments + - podtemplates + verbs: + - get + - list + - watch +# services patch needed to update selector of canary/stable/active/preview services +# services create needed to create and delete services for experiments +- apiGroups: + - "" + resources: + - services + verbs: + - get + - list + - watch + - patch + - create + - delete +# leases create/get/update needed for leader election +- apiGroups: + - coordination.k8s.io + resources: + - leases + verbs: + - create + - get + - update +# secret read access to run analysis templates which reference secrets +- apiGroups: + - "" + resources: + - secrets + - configmaps + verbs: + - get + - list + - watch +# pod list/update needed for updating ephemeral data +- apiGroups: + - "" + resources: + - pods + verbs: + - list + - update + - watch +# pods eviction needed for restart +- apiGroups: + - "" + resources: + - pods/eviction + verbs: + - create +# event write needed for emitting events +- apiGroups: + - "" + resources: + - events + verbs: + - create + - update + - patch +# ingress patch needed for managing ingress annotations, create needed for nginx canary +- apiGroups: + - networking.k8s.io + - extensions + resources: + - ingresses + verbs: + - create + - get + - list + - watch + - patch +# job access needed for analysis template job metrics +- apiGroups: + - batch + resources: + - jobs + verbs: + - create + - get + - list + - watch + - update + - patch + - delete +{{- if .Values.providerRBAC.enabled }} +{{- if .Values.providerRBAC.providers.istio }} +# virtualservice/destinationrule access needed for using the Istio provider +- apiGroups: + - networking.istio.io + resources: + - virtualservices + - destinationrules + verbs: + - watch + - get + - update + - patch + - list +{{- end }} +{{- if .Values.providerRBAC.providers.smi }} +# trafficsplit access needed for using the SMI provider +- apiGroups: + - split.smi-spec.io + resources: + - trafficsplits + verbs: + - create + - watch + - get + - update + - patch +{{- end }} +{{- if .Values.providerRBAC.providers.ambassador }} +# ambassador access needed for Ambassador provider +- apiGroups: + - getambassador.io + - x.getambassador.io + resources: + - mappings + - ambassadormappings + verbs: + - create + - watch + - get + - update + - list + - delete +{{- end }} +{{- if .Values.providerRBAC.providers.awsLoadBalancerController }} +# Endpoints and TargetGroupBindings needed for ALB target group verification when using AWS Load Balancer Controller +- apiGroups: + - "" + resources: + - endpoints + verbs: + - get +- apiGroups: + - elbv2.k8s.aws + resources: + - targetgroupbindings + verbs: + - list + - get +{{- end }} +{{- if .Values.providerRBAC.providers.awsAppMesh }} +# AppMesh virtualservices/virtualrouter CRD read-only access needed for using the App Mesh provider +- apiGroups: + - appmesh.k8s.aws + resources: + - virtualservices + verbs: + - watch + - get + - list +# AppMesh virtualnode CRD r/w access needed for using the App Mesh provider +- apiGroups: + - appmesh.k8s.aws + resources: + - virtualnodes + - virtualrouters + verbs: + - watch + - get + - list + - update + - patch +{{- end }} +{{- if .Values.providerRBAC.providers.traefik }} +# Traefik access needed when using the Traefik provider +- apiGroups: + - traefik.containo.us + resources: + - traefikservices + verbs: + - watch + - get + - update +{{- end }} +{{- if .Values.providerRBAC.providers.apisix }} +# Access needed when using the Apisix provider +- apiGroups: + - apisix.apache.org + resources: + - apisixroutes + verbs: + - watch + - get + - update +{{- end }} +{{- end }} {{- end }} diff --git a/charts/argo-rollouts/templates/controller/configmap.yaml b/charts/argo-rollouts/templates/controller/configmap.yaml deleted file mode 100644 index a1971ab9..00000000 --- a/charts/argo-rollouts/templates/controller/configmap.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: v1 -kind: ConfigMap -metadata: - name: argo-rollouts-config - namespace: {{ .Release.Namespace | quote }} - labels: - app.kubernetes.io/component: {{ .Values.controller.component }} - {{- include "argo-rollouts.labels" . | nindent 4 }} -data: - {{- with .Values.controller.metricProviderPlugins }} - metricProviderPlugins: |- - {{- toYaml . | nindent 4 }} - {{- end }} - {{- with .Values.controller.trafficRouterPlugins }} - trafficRouterPlugins: |- - {{- toYaml . | nindent 4 }} - {{- end }} diff --git a/charts/argo-rollouts/templates/controller/deployment.yaml b/charts/argo-rollouts/templates/controller/deployment.yaml index 7aea72a4..95ec845f 100644 --- a/charts/argo-rollouts/templates/controller/deployment.yaml +++ b/charts/argo-rollouts/templates/controller/deployment.yaml @@ -1,18 +1,9 @@ apiVersion: apps/v1 kind: Deployment metadata: - {{- with (mergeOverwrite (deepCopy .Values.global.deploymentAnnotations) .Values.controller.deploymentAnnotations) }} - annotations: - {{- range $key, $value := . }} - {{ $key }}: {{ $value | quote }} - {{- end }} - {{- end }} name: {{ include "argo-rollouts.fullname" . }} namespace: {{ .Release.Namespace | quote }} labels: - {{- range $key, $value := (mergeOverwrite (deepCopy .Values.global.deploymentLabels) .Values.controller.deploymentLabels) }} - {{ $key }}: {{ $value | quote }} - {{- end }} app.kubernetes.io/component: {{ .Values.controller.component }} {{- include "argo-rollouts.labels" . | nindent 4 }} spec: @@ -21,9 +12,8 @@ spec: app.kubernetes.io/component: {{ .Values.controller.component }} {{- include "argo-rollouts.selectorLabels" . | nindent 6 }} strategy: - type: RollingUpdate + type: Recreate replicas: {{ .Values.controller.replicas }} - revisionHistoryLimit: {{ .Values.global.revisionHistoryLimit }} template: metadata: {{- with (mergeOverwrite (deepCopy .Values.podAnnotations) .Values.controller.podAnnotations) }} @@ -35,7 +25,7 @@ spec: labels: {{- include "argo-rollouts.selectorLabels" . | nindent 8 }} app.kubernetes.io/component: {{ .Values.controller.component }} - {{- range $key, $value := (mergeOverwrite (deepCopy .Values.podLabels) .Values.controller.podLabels) }} + {{- range $key, $value := .Values.podLabels }} {{ $key }}: {{ $value | quote }} {{- end }} spec: @@ -47,15 +37,10 @@ spec: containers: - image: "{{ .Values.controller.image.registry }}/{{ .Values.controller.image.repository }}:{{ default .Chart.AppVersion .Values.controller.image.tag }}" args: - - --healthzPort={{ .Values.controller.containerPorts.healthz }} - - --metricsport={{ .Values.controller.containerPorts.metrics }} - - "--loglevel={{ .Values.controller.logging.level }}" - - "--logformat={{ .Values.controller.logging.format }}" - - "--kloglevel={{ .Values.controller.logging.kloglevel }}" {{- if not .Values.clusterInstall }} - --namespaced {{- end }} - {{- if gt (int .Values.controller.replicas) 1 }} + {{- if gt .Values.controller.replicas 1.0 }} - --leader-elect {{- end }} {{- with .Values.controller.extraArgs }} @@ -68,9 +53,9 @@ spec: imagePullPolicy: {{ .Values.controller.image.pullPolicy }} name: argo-rollouts ports: - - containerPort: {{ .Values.controller.containerPorts.metrics }} + - containerPort: 8090 name: metrics - - containerPort: {{ .Values.controller.containerPorts.healthz }} + - containerPort: 8080 name: healthz livenessProbe: {{- toYaml .Values.controller.livenessProbe | nindent 10 }} @@ -78,17 +63,10 @@ spec: {{- toYaml .Values.controller.readinessProbe | nindent 10 }} securityContext: {{- toYaml .Values.containerSecurityContext | nindent 10 }} - {{- with .Values.controller.lifecycle }} - lifecycle: {{ toYaml . | nindent 10 }} - {{- end }} resources: {{- toYaml .Values.controller.resources | nindent 10 }} - volumeMounts: - - name: plugin-bin - mountPath: /home/argo-rollouts/plugin-bin - - name: tmp - mountPath: /tmp {{- with .Values.controller.volumeMounts }} + volumeMounts: {{- toYaml . | nindent 8 }} {{- end }} {{- with .Values.controller.extraContainers }} @@ -104,9 +82,6 @@ spec: {{- end }} securityContext: {{- toYaml .Values.podSecurityContext | nindent 8 }} - {{- with .Values.controller.terminationGracePeriodSeconds }} - terminationGracePeriodSeconds: {{ . }} - {{- end }} {{- if .Values.controller.tolerations }} tolerations: {{- toYaml .Values.controller.tolerations | nindent 8 }} @@ -130,11 +105,7 @@ spec: {{- with .Values.controller.priorityClassName }} priorityClassName: {{ . }} {{- end }} - volumes: - - name: plugin-bin - emptyDir: {} - - name: tmp - emptyDir: {} {{- with .Values.controller.volumes }} + volumes: {{- toYaml . | nindent 6 }} {{- end }} diff --git a/charts/argo-rollouts/templates/controller/metrics-service.yaml b/charts/argo-rollouts/templates/controller/metrics-service.yaml index 671a0837..0effcc23 100644 --- a/charts/argo-rollouts/templates/controller/metrics-service.yaml +++ b/charts/argo-rollouts/templates/controller/metrics-service.yaml @@ -7,19 +7,16 @@ metadata: labels: app.kubernetes.io/component: {{ .Values.controller.component }} {{- include "argo-rollouts.labels" . | nindent 4 }} - annotations: {{- with .Values.serviceAnnotations }} - {{- toYaml . | nindent 4 }} - {{- end }} - {{- with .Values.controller.metrics.service.annotations }} + annotations: {{- toYaml . | nindent 4 }} {{- end }} spec: ports: - - name: {{ .Values.controller.metrics.service.portName }} + - name: metrics protocol: TCP - port: {{ .Values.controller.metrics.service.port }} - targetPort: metrics + port: 8090 + targetPort: 8090 selector: app.kubernetes.io/component: {{ .Values.controller.component }} {{- include "argo-rollouts.selectorLabels" . | nindent 4 }} diff --git a/charts/argo-rollouts/templates/controller/notifications-configmap.yaml b/charts/argo-rollouts/templates/controller/notifcations-configmap.yaml similarity index 75% rename from charts/argo-rollouts/templates/controller/notifications-configmap.yaml rename to charts/argo-rollouts/templates/controller/notifcations-configmap.yaml index 680f468f..a370a600 100644 --- a/charts/argo-rollouts/templates/controller/notifications-configmap.yaml +++ b/charts/argo-rollouts/templates/controller/notifcations-configmap.yaml @@ -1,4 +1,3 @@ -{{ if .Values.notifications.configmap.create }} apiVersion: v1 kind: ConfigMap metadata: @@ -17,8 +16,3 @@ data: {{- with .Values.notifications.triggers }} {{- toYaml . | nindent 2 }} {{- end }} - {{- with .Values.notifications.subscriptions }} - subscriptions: | - {{- toYaml . | nindent 4 }} - {{- end }} -{{- end }} diff --git a/charts/argo-rollouts/templates/controller/notifications-secret.yaml b/charts/argo-rollouts/templates/controller/notifications-secret.yaml index f48d895f..52b393df 100644 --- a/charts/argo-rollouts/templates/controller/notifications-secret.yaml +++ b/charts/argo-rollouts/templates/controller/notifications-secret.yaml @@ -4,12 +4,6 @@ kind: Secret metadata: name: argo-rollouts-notification-secret namespace: {{ .Release.Namespace | quote }} - {{- with .Values.notifications.secret.annotations }} - annotations: - {{- range $key, $value := . }} - {{ $key }}: {{ $value | quote }} - {{- end }} - {{- end }} labels: app.kubernetes.io/component: {{ .Values.controller.component }} {{- include "argo-rollouts.labels" . | nindent 4 }} diff --git a/charts/argo-rollouts/templates/controller/role.yaml b/charts/argo-rollouts/templates/controller/role.yaml index 6ba0805a..e3b80672 100644 --- a/charts/argo-rollouts/templates/controller/role.yaml +++ b/charts/argo-rollouts/templates/controller/role.yaml @@ -8,5 +8,252 @@ metadata: app.kubernetes.io/component: {{ .Values.controller.component }} {{- include "argo-rollouts.labels" . | nindent 4 }} rules: - {{- include "argo-rollouts.controller.roleRules" . | nindent 2 }} +- apiGroups: + - argoproj.io + resources: + - rollouts + - rollouts/status + - rollouts/finalizers + verbs: + - get + - list + - watch + - update + - patch +- apiGroups: + - argoproj.io + resources: + - analysisruns + - analysisruns/finalizers + - experiments + - experiments/finalizers + verbs: + - create + - get + - list + - watch + - update + - patch + - delete +- apiGroups: + - argoproj.io + resources: + - analysistemplates + - clusteranalysistemplates + verbs: + - get + - list + - watch +# replicaset access needed for managing ReplicaSets +- apiGroups: + - apps + resources: + - replicasets + verbs: + - create + - get + - list + - watch + - update + - patch + - delete +# deployments and podtemplates read access needed for workload reference support +- apiGroups: + - "" + - apps + resources: + - deployments + - podtemplates + verbs: + - get + - list + - watch +# services patch needed to update selector of canary/stable/active/preview services +# services create needed to create and delete services for experiments +- apiGroups: + - "" + resources: + - services + verbs: + - get + - list + - watch + - patch + - create + - delete +# leases create/get/update needed for leader election +- apiGroups: + - coordination.k8s.io + resources: + - leases + verbs: + - create + - get + - update +# secret read access to run analysis templates which reference secrets +- apiGroups: + - "" + resources: + - secrets + - configmaps + verbs: + - get + - list + - watch +# pod list/update needed for updating ephemeral data +- apiGroups: + - "" + resources: + - pods + verbs: + - list + - update + - watch +# pods eviction needed for restart +- apiGroups: + - "" + resources: + - pods/eviction + verbs: + - create +# event write needed for emitting events +- apiGroups: + - "" + resources: + - events + verbs: + - create + - update + - patch +# ingress patch needed for managing ingress annotations, create needed for nginx canary +- apiGroups: + - networking.k8s.io + - extensions + resources: + - ingresses + verbs: + - create + - get + - list + - watch + - patch +# job access needed for analysis template job metrics +- apiGroups: + - batch + resources: + - jobs + verbs: + - create + - get + - list + - watch + - update + - patch + - delete +{{- if .Values.providerRBAC.enabled }} +{{- if .Values.providerRBAC.providers.istio }} +# virtualservice/destinationrule access needed for using the Istio provider +- apiGroups: + - networking.istio.io + resources: + - virtualservices + - destinationrules + verbs: + - watch + - get + - update + - patch + - list +{{- end }} +{{- if .Values.providerRBAC.providers.smi }} +# trafficsplit access needed for using the SMI provider +- apiGroups: + - split.smi-spec.io + resources: + - trafficsplits + verbs: + - create + - watch + - get + - update + - patch +{{- end }} +{{- if .Values.providerRBAC.providers.ambassador }} +# ambassador access needed for Ambassador provider +- apiGroups: + - getambassador.io + - x.getambassador.io + resources: + - mappings + - ambassadormappings + verbs: + - create + - watch + - get + - update + - list + - delete +{{- end }} +{{- if .Values.providerRBAC.providers.awsLoadBalancerController }} +# Endpoints and TargetGroupBindings needed for ALB target group verification when using AWS Load Balancer Controller +- apiGroups: + - "" + resources: + - endpoints + verbs: + - get +- apiGroups: + - elbv2.k8s.aws + resources: + - targetgroupbindings + verbs: + - list + - get +{{- end }} +{{- if .Values.providerRBAC.providers.awsAppMesh }} +# AppMesh virtualservices/virtualrouter CRD read-only access needed for using the App Mesh provider +- apiGroups: + - appmesh.k8s.aws + resources: + - virtualservices + verbs: + - watch + - get + - list +# AppMesh virtualnode CRD r/w access needed for using the App Mesh provider +- apiGroups: + - appmesh.k8s.aws + resources: + - virtualnodes + - virtualrouters + verbs: + - watch + - get + - list + - update + - patch +{{- end }} +{{- if .Values.providerRBAC.providers.traefik }} +# Traefik access needed when using the Traefik provider +- apiGroups: + - traefik.containo.us + resources: + - traefikservices + verbs: + - watch + - get + - update +{{- end }} +{{- if .Values.providerRBAC.providers.apisix }} +# Access needed when using the Apisix provider +- apiGroups: + - apisix.apache.org + resources: + - apisixroutes + verbs: + - watch + - get + - update +{{- end }} +{{- end }} {{- end }} diff --git a/charts/argo-rollouts/templates/controller/servicemonitor.yaml b/charts/argo-rollouts/templates/controller/servicemonitor.yaml index d7ab901e..cb489e3b 100644 --- a/charts/argo-rollouts/templates/controller/servicemonitor.yaml +++ b/charts/argo-rollouts/templates/controller/servicemonitor.yaml @@ -3,7 +3,7 @@ apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: {{ include "argo-rollouts.fullname" . }} - namespace: {{ default .Release.Namespace .Values.controller.metrics.serviceMonitor.namespace | quote }} + namespace: {{ .Release.Namespace | quote }} labels: app.kubernetes.io/component: {{ .Values.controller.component }} {{- include "argo-rollouts.labels" . | nindent 4 }} @@ -16,7 +16,7 @@ metadata: {{- end }} spec: endpoints: - - port: {{ .Values.controller.metrics.service.portName }} + - port: metrics {{- with .Values.controller.metrics.serviceMonitor.relabelings }} relabelings: {{- toYaml . | nindent 6 }} diff --git a/charts/argo-rollouts/templates/crds/analysis-run-crd.yaml b/charts/argo-rollouts/templates/crds/analysis-run-crd.yaml index d723b248..70187985 100644 --- a/charts/argo-rollouts/templates/crds/analysis-run-crd.yaml +++ b/charts/argo-rollouts/templates/crds/analysis-run-crd.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.7.0 {{- if .Values.keepCRDs }} "helm.sh/resource-policy": keep {{- end }} @@ -108,11 +108,6 @@ spec: - type: integer - type: string x-kubernetes-int-or-string: true - consecutiveSuccessLimit: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true count: anyOf: - type: integer @@ -193,42 +188,12 @@ spec: type: object datadog: properties: - aggregator: - enum: - - avg - - min - - max - - sum - - last - - percentile - - mean - - l2norm - - area - type: string - apiVersion: - default: v1 - enum: - - v1 - - v2 - type: string - formula: - type: string interval: - default: 5m type: string - queries: - additionalProperties: - type: string - type: object query: type: string - secretRef: - properties: - name: - type: string - namespaced: - type: boolean - type: object + required: + - query type: object graphite: properties: @@ -265,9 +230,6 @@ spec: backoffLimit: format: int32 type: integer - backoffLimitPerIndex: - format: int32 - type: integer completionMode: type: string completions: @@ -275,58 +237,9 @@ spec: type: integer manualSelector: type: boolean - maxFailedIndexes: - format: int32 - type: integer parallelism: format: int32 type: integer - podFailurePolicy: - properties: - rules: - items: - properties: - action: - type: string - onExitCodes: - properties: - containerName: - type: string - operator: - type: string - values: - items: - format: int32 - type: integer - type: array - x-kubernetes-list-type: set - required: - - operator - - values - type: object - onPodConditions: - items: - properties: - status: - type: string - type: - type: string - required: - - status - - type - type: object - type: array - x-kubernetes-list-type: atomic - required: - - action - type: object - type: array - x-kubernetes-list-type: atomic - required: - - rules - type: object - podReplacementPolicy: - type: string selector: properties: matchExpressions: @@ -350,7 +263,6 @@ spec: type: string type: object type: object - x-kubernetes-map-type: atomic suspend: type: boolean template: @@ -413,7 +325,6 @@ spec: type: object type: array type: object - x-kubernetes-map-type: atomic weight: format: int32 type: integer @@ -460,12 +371,10 @@ spec: type: object type: array type: object - x-kubernetes-map-type: atomic type: array required: - nodeSelectorTerms type: object - x-kubernetes-map-type: atomic type: object podAffinity: properties: @@ -497,17 +406,6 @@ spec: type: string type: object type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - mismatchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic namespaceSelector: properties: matchExpressions: @@ -531,7 +429,6 @@ spec: type: string type: object type: object - x-kubernetes-map-type: atomic namespaces: items: type: string @@ -575,17 +472,6 @@ spec: type: string type: object type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - mismatchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic namespaceSelector: properties: matchExpressions: @@ -609,7 +495,6 @@ spec: type: string type: object type: object - x-kubernetes-map-type: atomic namespaces: items: type: string @@ -651,17 +536,6 @@ spec: type: string type: object type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - mismatchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic namespaceSelector: properties: matchExpressions: @@ -685,7 +559,6 @@ spec: type: string type: object type: object - x-kubernetes-map-type: atomic namespaces: items: type: string @@ -729,17 +602,6 @@ spec: type: string type: object type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - mismatchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic namespaceSelector: properties: matchExpressions: @@ -763,7 +625,6 @@ spec: type: string type: object type: object - x-kubernetes-map-type: atomic namespaces: items: type: string @@ -809,7 +670,6 @@ spec: required: - key type: object - x-kubernetes-map-type: atomic fieldRef: properties: apiVersion: @@ -819,7 +679,6 @@ spec: required: - fieldPath type: object - x-kubernetes-map-type: atomic resourceFieldRef: properties: containerName: @@ -835,7 +694,6 @@ spec: required: - resource type: object - x-kubernetes-map-type: atomic secretKeyRef: properties: key: @@ -847,7 +705,6 @@ spec: required: - key type: object - x-kubernetes-map-type: atomic type: object required: - name @@ -863,7 +720,6 @@ spec: optional: type: boolean type: object - x-kubernetes-map-type: atomic prefix: type: string secretRef: @@ -873,7 +729,6 @@ spec: optional: type: boolean type: object - x-kubernetes-map-type: atomic type: object type: array image: @@ -919,14 +774,6 @@ spec: required: - port type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - type: object tcpSocket: properties: host: @@ -977,14 +824,6 @@ spec: required: - port type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - type: object tcpSocket: properties: host: @@ -1181,40 +1020,13 @@ spec: format: int32 type: integer type: object - resizePolicy: - items: - properties: - resourceName: - type: string - restartPolicy: - type: string - required: - - resourceName - - restartPolicy - type: object - type: array - x-kubernetes-list-type: atomic resources: properties: - claims: - items: - properties: - name: - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map limits: x-kubernetes-preserve-unknown-fields: true requests: x-kubernetes-preserve-unknown-fields: true type: object - restartPolicy: - type: string securityContext: properties: allowPrivilegeEscalation: @@ -1457,7 +1269,6 @@ spec: required: - key type: object - x-kubernetes-map-type: atomic fieldRef: properties: apiVersion: @@ -1467,7 +1278,6 @@ spec: required: - fieldPath type: object - x-kubernetes-map-type: atomic resourceFieldRef: properties: containerName: @@ -1483,7 +1293,6 @@ spec: required: - resource type: object - x-kubernetes-map-type: atomic secretKeyRef: properties: key: @@ -1495,7 +1304,6 @@ spec: required: - key type: object - x-kubernetes-map-type: atomic type: object required: - name @@ -1511,7 +1319,6 @@ spec: optional: type: boolean type: object - x-kubernetes-map-type: atomic prefix: type: string secretRef: @@ -1521,7 +1328,6 @@ spec: optional: type: boolean type: object - x-kubernetes-map-type: atomic type: object type: array image: @@ -1567,14 +1373,6 @@ spec: required: - port type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - type: object tcpSocket: properties: host: @@ -1625,14 +1423,6 @@ spec: required: - port type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - type: object tcpSocket: properties: host: @@ -1829,40 +1619,13 @@ spec: format: int32 type: integer type: object - resizePolicy: - items: - properties: - resourceName: - type: string - restartPolicy: - type: string - required: - - resourceName - - restartPolicy - type: object - type: array - x-kubernetes-list-type: atomic resources: properties: - claims: - items: - properties: - name: - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map limits: x-kubernetes-preserve-unknown-fields: true requests: x-kubernetes-preserve-unknown-fields: true type: object - restartPolicy: - type: string securityContext: properties: allowPrivilegeEscalation: @@ -2069,8 +1832,6 @@ spec: type: boolean hostPID: type: boolean - hostUsers: - type: boolean hostname: type: string imagePullSecrets: @@ -2079,7 +1840,6 @@ spec: name: type: string type: object - x-kubernetes-map-type: atomic type: array initContainers: items: @@ -2112,7 +1872,6 @@ spec: required: - key type: object - x-kubernetes-map-type: atomic fieldRef: properties: apiVersion: @@ -2122,7 +1881,6 @@ spec: required: - fieldPath type: object - x-kubernetes-map-type: atomic resourceFieldRef: properties: containerName: @@ -2138,7 +1896,6 @@ spec: required: - resource type: object - x-kubernetes-map-type: atomic secretKeyRef: properties: key: @@ -2150,7 +1907,6 @@ spec: required: - key type: object - x-kubernetes-map-type: atomic type: object required: - name @@ -2166,7 +1922,6 @@ spec: optional: type: boolean type: object - x-kubernetes-map-type: atomic prefix: type: string secretRef: @@ -2176,7 +1931,6 @@ spec: optional: type: boolean type: object - x-kubernetes-map-type: atomic type: object type: array image: @@ -2222,14 +1976,6 @@ spec: required: - port type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - type: object tcpSocket: properties: host: @@ -2280,14 +2026,6 @@ spec: required: - port type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - type: object tcpSocket: properties: host: @@ -2484,40 +2222,13 @@ spec: format: int32 type: integer type: object - resizePolicy: - items: - properties: - resourceName: - type: string - restartPolicy: - type: string - required: - - resourceName - - restartPolicy - type: object - type: array - x-kubernetes-list-type: atomic resources: properties: - claims: - items: - properties: - name: - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map limits: x-kubernetes-preserve-unknown-fields: true requests: x-kubernetes-preserve-unknown-fields: true type: object - restartPolicy: - type: string securityContext: properties: allowPrivilegeEscalation: @@ -2743,43 +2454,12 @@ spec: - conditionType type: object type: array - resourceClaims: - items: - properties: - name: - type: string - source: - properties: - resourceClaimName: - type: string - resourceClaimTemplateName: - type: string - type: object - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map restartPolicy: type: string runtimeClassName: type: string schedulerName: type: string - schedulingGates: - items: - properties: - name: - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map securityContext: properties: fsGroup: @@ -2899,22 +2579,12 @@ spec: type: string type: object type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic maxSkew: format: int32 type: integer minDomains: format: int32 type: integer - nodeAffinityPolicy: - type: string - nodeTaintsPolicy: - type: string topologyKey: type: string whenUnsatisfiable: @@ -3037,79 +2707,13 @@ spec: type: string query: type: string - timeout: - format: int64 - type: integer required: - query type: object - plugin: - type: object - x-kubernetes-preserve-unknown-fields: true prometheus: properties: address: type: string - authentication: - properties: - oauth2: - properties: - clientId: - type: string - clientSecret: - type: string - scopes: - items: - type: string - type: array - tokenUrl: - type: string - type: object - sigv4: - properties: - profile: - type: string - region: - type: string - roleArn: - type: string - type: object - type: object - headers: - items: - properties: - key: - type: string - value: - type: string - required: - - key - - value - type: object - type: array - insecure: - type: boolean - query: - type: string - rangeQuery: - properties: - end: - type: string - start: - type: string - step: - type: string - type: object - timeout: - format: int64 - type: integer - type: object - skywalking: - properties: - address: - type: string - interval: - type: string query: type: string type: object @@ -3122,31 +2726,6 @@ spec: type: object web: properties: - authentication: - properties: - oauth2: - properties: - clientId: - type: string - clientSecret: - type: string - scopes: - items: - type: string - type: array - tokenUrl: - type: string - type: object - sigv4: - properties: - profile: - type: string - region: - type: string - roleArn: - type: string - type: object - type: object body: type: string headers: @@ -3188,26 +2767,11 @@ spec: type: array terminate: type: boolean - ttlStrategy: - properties: - secondsAfterCompletion: - format: int32 - type: integer - secondsAfterFailure: - format: int32 - type: integer - secondsAfterSuccess: - format: int32 - type: integer - type: object required: - metrics type: object status: properties: - completedAt: - format: date-time - type: string dryRunSummary: properties: count: @@ -3234,9 +2798,6 @@ spec: consecutiveError: format: int32 type: integer - consecutiveSuccess: - format: int32 - type: integer count: format: int32 type: integer diff --git a/charts/argo-rollouts/templates/crds/analysis-template-crd.yaml b/charts/argo-rollouts/templates/crds/analysis-template-crd.yaml index b0f34229..c2846186 100644 --- a/charts/argo-rollouts/templates/crds/analysis-template-crd.yaml +++ b/charts/argo-rollouts/templates/crds/analysis-template-crd.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.7.0 {{- if .Values.keepCRDs }} "helm.sh/resource-policy": keep {{- end }} @@ -104,11 +104,6 @@ spec: - type: integer - type: string x-kubernetes-int-or-string: true - consecutiveSuccessLimit: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true count: anyOf: - type: integer @@ -189,42 +184,12 @@ spec: type: object datadog: properties: - aggregator: - enum: - - avg - - min - - max - - sum - - last - - percentile - - mean - - l2norm - - area - type: string - apiVersion: - default: v1 - enum: - - v1 - - v2 - type: string - formula: - type: string interval: - default: 5m type: string - queries: - additionalProperties: - type: string - type: object query: type: string - secretRef: - properties: - name: - type: string - namespaced: - type: boolean - type: object + required: + - query type: object graphite: properties: @@ -261,9 +226,6 @@ spec: backoffLimit: format: int32 type: integer - backoffLimitPerIndex: - format: int32 - type: integer completionMode: type: string completions: @@ -271,58 +233,9 @@ spec: type: integer manualSelector: type: boolean - maxFailedIndexes: - format: int32 - type: integer parallelism: format: int32 type: integer - podFailurePolicy: - properties: - rules: - items: - properties: - action: - type: string - onExitCodes: - properties: - containerName: - type: string - operator: - type: string - values: - items: - format: int32 - type: integer - type: array - x-kubernetes-list-type: set - required: - - operator - - values - type: object - onPodConditions: - items: - properties: - status: - type: string - type: - type: string - required: - - status - - type - type: object - type: array - x-kubernetes-list-type: atomic - required: - - action - type: object - type: array - x-kubernetes-list-type: atomic - required: - - rules - type: object - podReplacementPolicy: - type: string selector: properties: matchExpressions: @@ -346,7 +259,6 @@ spec: type: string type: object type: object - x-kubernetes-map-type: atomic suspend: type: boolean template: @@ -409,7 +321,6 @@ spec: type: object type: array type: object - x-kubernetes-map-type: atomic weight: format: int32 type: integer @@ -456,12 +367,10 @@ spec: type: object type: array type: object - x-kubernetes-map-type: atomic type: array required: - nodeSelectorTerms type: object - x-kubernetes-map-type: atomic type: object podAffinity: properties: @@ -493,17 +402,6 @@ spec: type: string type: object type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - mismatchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic namespaceSelector: properties: matchExpressions: @@ -527,7 +425,6 @@ spec: type: string type: object type: object - x-kubernetes-map-type: atomic namespaces: items: type: string @@ -571,17 +468,6 @@ spec: type: string type: object type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - mismatchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic namespaceSelector: properties: matchExpressions: @@ -605,7 +491,6 @@ spec: type: string type: object type: object - x-kubernetes-map-type: atomic namespaces: items: type: string @@ -647,17 +532,6 @@ spec: type: string type: object type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - mismatchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic namespaceSelector: properties: matchExpressions: @@ -681,7 +555,6 @@ spec: type: string type: object type: object - x-kubernetes-map-type: atomic namespaces: items: type: string @@ -725,17 +598,6 @@ spec: type: string type: object type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - mismatchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic namespaceSelector: properties: matchExpressions: @@ -759,7 +621,6 @@ spec: type: string type: object type: object - x-kubernetes-map-type: atomic namespaces: items: type: string @@ -805,7 +666,6 @@ spec: required: - key type: object - x-kubernetes-map-type: atomic fieldRef: properties: apiVersion: @@ -815,7 +675,6 @@ spec: required: - fieldPath type: object - x-kubernetes-map-type: atomic resourceFieldRef: properties: containerName: @@ -831,7 +690,6 @@ spec: required: - resource type: object - x-kubernetes-map-type: atomic secretKeyRef: properties: key: @@ -843,7 +701,6 @@ spec: required: - key type: object - x-kubernetes-map-type: atomic type: object required: - name @@ -859,7 +716,6 @@ spec: optional: type: boolean type: object - x-kubernetes-map-type: atomic prefix: type: string secretRef: @@ -869,7 +725,6 @@ spec: optional: type: boolean type: object - x-kubernetes-map-type: atomic type: object type: array image: @@ -915,14 +770,6 @@ spec: required: - port type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - type: object tcpSocket: properties: host: @@ -973,14 +820,6 @@ spec: required: - port type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - type: object tcpSocket: properties: host: @@ -1177,40 +1016,13 @@ spec: format: int32 type: integer type: object - resizePolicy: - items: - properties: - resourceName: - type: string - restartPolicy: - type: string - required: - - resourceName - - restartPolicy - type: object - type: array - x-kubernetes-list-type: atomic resources: properties: - claims: - items: - properties: - name: - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map limits: x-kubernetes-preserve-unknown-fields: true requests: x-kubernetes-preserve-unknown-fields: true type: object - restartPolicy: - type: string securityContext: properties: allowPrivilegeEscalation: @@ -1453,7 +1265,6 @@ spec: required: - key type: object - x-kubernetes-map-type: atomic fieldRef: properties: apiVersion: @@ -1463,7 +1274,6 @@ spec: required: - fieldPath type: object - x-kubernetes-map-type: atomic resourceFieldRef: properties: containerName: @@ -1479,7 +1289,6 @@ spec: required: - resource type: object - x-kubernetes-map-type: atomic secretKeyRef: properties: key: @@ -1491,7 +1300,6 @@ spec: required: - key type: object - x-kubernetes-map-type: atomic type: object required: - name @@ -1507,7 +1315,6 @@ spec: optional: type: boolean type: object - x-kubernetes-map-type: atomic prefix: type: string secretRef: @@ -1517,7 +1324,6 @@ spec: optional: type: boolean type: object - x-kubernetes-map-type: atomic type: object type: array image: @@ -1563,14 +1369,6 @@ spec: required: - port type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - type: object tcpSocket: properties: host: @@ -1621,14 +1419,6 @@ spec: required: - port type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - type: object tcpSocket: properties: host: @@ -1825,40 +1615,13 @@ spec: format: int32 type: integer type: object - resizePolicy: - items: - properties: - resourceName: - type: string - restartPolicy: - type: string - required: - - resourceName - - restartPolicy - type: object - type: array - x-kubernetes-list-type: atomic resources: properties: - claims: - items: - properties: - name: - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map limits: x-kubernetes-preserve-unknown-fields: true requests: x-kubernetes-preserve-unknown-fields: true type: object - restartPolicy: - type: string securityContext: properties: allowPrivilegeEscalation: @@ -2065,8 +1828,6 @@ spec: type: boolean hostPID: type: boolean - hostUsers: - type: boolean hostname: type: string imagePullSecrets: @@ -2075,7 +1836,6 @@ spec: name: type: string type: object - x-kubernetes-map-type: atomic type: array initContainers: items: @@ -2108,7 +1868,6 @@ spec: required: - key type: object - x-kubernetes-map-type: atomic fieldRef: properties: apiVersion: @@ -2118,7 +1877,6 @@ spec: required: - fieldPath type: object - x-kubernetes-map-type: atomic resourceFieldRef: properties: containerName: @@ -2134,7 +1892,6 @@ spec: required: - resource type: object - x-kubernetes-map-type: atomic secretKeyRef: properties: key: @@ -2146,7 +1903,6 @@ spec: required: - key type: object - x-kubernetes-map-type: atomic type: object required: - name @@ -2162,7 +1918,6 @@ spec: optional: type: boolean type: object - x-kubernetes-map-type: atomic prefix: type: string secretRef: @@ -2172,7 +1927,6 @@ spec: optional: type: boolean type: object - x-kubernetes-map-type: atomic type: object type: array image: @@ -2218,14 +1972,6 @@ spec: required: - port type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - type: object tcpSocket: properties: host: @@ -2276,14 +2022,6 @@ spec: required: - port type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - type: object tcpSocket: properties: host: @@ -2480,40 +2218,13 @@ spec: format: int32 type: integer type: object - resizePolicy: - items: - properties: - resourceName: - type: string - restartPolicy: - type: string - required: - - resourceName - - restartPolicy - type: object - type: array - x-kubernetes-list-type: atomic resources: properties: - claims: - items: - properties: - name: - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map limits: x-kubernetes-preserve-unknown-fields: true requests: x-kubernetes-preserve-unknown-fields: true type: object - restartPolicy: - type: string securityContext: properties: allowPrivilegeEscalation: @@ -2739,43 +2450,12 @@ spec: - conditionType type: object type: array - resourceClaims: - items: - properties: - name: - type: string - source: - properties: - resourceClaimName: - type: string - resourceClaimTemplateName: - type: string - type: object - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map restartPolicy: type: string runtimeClassName: type: string schedulerName: type: string - schedulingGates: - items: - properties: - name: - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map securityContext: properties: fsGroup: @@ -2895,22 +2575,12 @@ spec: type: string type: object type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic maxSkew: format: int32 type: integer minDomains: format: int32 type: integer - nodeAffinityPolicy: - type: string - nodeTaintsPolicy: - type: string topologyKey: type: string whenUnsatisfiable: @@ -3033,79 +2703,13 @@ spec: type: string query: type: string - timeout: - format: int64 - type: integer required: - query type: object - plugin: - type: object - x-kubernetes-preserve-unknown-fields: true prometheus: properties: address: type: string - authentication: - properties: - oauth2: - properties: - clientId: - type: string - clientSecret: - type: string - scopes: - items: - type: string - type: array - tokenUrl: - type: string - type: object - sigv4: - properties: - profile: - type: string - region: - type: string - roleArn: - type: string - type: object - type: object - headers: - items: - properties: - key: - type: string - value: - type: string - required: - - key - - value - type: object - type: array - insecure: - type: boolean - query: - type: string - rangeQuery: - properties: - end: - type: string - start: - type: string - step: - type: string - type: object - timeout: - format: int64 - type: integer - type: object - skywalking: - properties: - address: - type: string - interval: - type: string query: type: string type: object @@ -3118,31 +2722,6 @@ spec: type: object web: properties: - authentication: - properties: - oauth2: - properties: - clientId: - type: string - clientSecret: - type: string - scopes: - items: - type: string - type: array - tokenUrl: - type: string - type: object - sigv4: - properties: - profile: - type: string - region: - type: string - roleArn: - type: string - type: object - type: object body: type: string headers: @@ -3182,15 +2761,8 @@ spec: - provider type: object type: array - templates: - items: - properties: - clusterScope: - type: boolean - templateName: - type: string - type: object - type: array + required: + - metrics type: object required: - spec diff --git a/charts/argo-rollouts/templates/crds/cluster-analysis-template-crd.yaml b/charts/argo-rollouts/templates/crds/cluster-analysis-template-crd.yaml index e8a9a6d4..a00f68fe 100644 --- a/charts/argo-rollouts/templates/crds/cluster-analysis-template-crd.yaml +++ b/charts/argo-rollouts/templates/crds/cluster-analysis-template-crd.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.7.0 {{- if .Values.keepCRDs }} "helm.sh/resource-policy": keep {{- end }} @@ -104,11 +104,6 @@ spec: - type: integer - type: string x-kubernetes-int-or-string: true - consecutiveSuccessLimit: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true count: anyOf: - type: integer @@ -189,42 +184,12 @@ spec: type: object datadog: properties: - aggregator: - enum: - - avg - - min - - max - - sum - - last - - percentile - - mean - - l2norm - - area - type: string - apiVersion: - default: v1 - enum: - - v1 - - v2 - type: string - formula: - type: string interval: - default: 5m type: string - queries: - additionalProperties: - type: string - type: object query: type: string - secretRef: - properties: - name: - type: string - namespaced: - type: boolean - type: object + required: + - query type: object graphite: properties: @@ -261,9 +226,6 @@ spec: backoffLimit: format: int32 type: integer - backoffLimitPerIndex: - format: int32 - type: integer completionMode: type: string completions: @@ -271,58 +233,9 @@ spec: type: integer manualSelector: type: boolean - maxFailedIndexes: - format: int32 - type: integer parallelism: format: int32 type: integer - podFailurePolicy: - properties: - rules: - items: - properties: - action: - type: string - onExitCodes: - properties: - containerName: - type: string - operator: - type: string - values: - items: - format: int32 - type: integer - type: array - x-kubernetes-list-type: set - required: - - operator - - values - type: object - onPodConditions: - items: - properties: - status: - type: string - type: - type: string - required: - - status - - type - type: object - type: array - x-kubernetes-list-type: atomic - required: - - action - type: object - type: array - x-kubernetes-list-type: atomic - required: - - rules - type: object - podReplacementPolicy: - type: string selector: properties: matchExpressions: @@ -346,7 +259,6 @@ spec: type: string type: object type: object - x-kubernetes-map-type: atomic suspend: type: boolean template: @@ -409,7 +321,6 @@ spec: type: object type: array type: object - x-kubernetes-map-type: atomic weight: format: int32 type: integer @@ -456,12 +367,10 @@ spec: type: object type: array type: object - x-kubernetes-map-type: atomic type: array required: - nodeSelectorTerms type: object - x-kubernetes-map-type: atomic type: object podAffinity: properties: @@ -493,17 +402,6 @@ spec: type: string type: object type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - mismatchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic namespaceSelector: properties: matchExpressions: @@ -527,7 +425,6 @@ spec: type: string type: object type: object - x-kubernetes-map-type: atomic namespaces: items: type: string @@ -571,17 +468,6 @@ spec: type: string type: object type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - mismatchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic namespaceSelector: properties: matchExpressions: @@ -605,7 +491,6 @@ spec: type: string type: object type: object - x-kubernetes-map-type: atomic namespaces: items: type: string @@ -647,17 +532,6 @@ spec: type: string type: object type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - mismatchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic namespaceSelector: properties: matchExpressions: @@ -681,7 +555,6 @@ spec: type: string type: object type: object - x-kubernetes-map-type: atomic namespaces: items: type: string @@ -725,17 +598,6 @@ spec: type: string type: object type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - mismatchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic namespaceSelector: properties: matchExpressions: @@ -759,7 +621,6 @@ spec: type: string type: object type: object - x-kubernetes-map-type: atomic namespaces: items: type: string @@ -805,7 +666,6 @@ spec: required: - key type: object - x-kubernetes-map-type: atomic fieldRef: properties: apiVersion: @@ -815,7 +675,6 @@ spec: required: - fieldPath type: object - x-kubernetes-map-type: atomic resourceFieldRef: properties: containerName: @@ -831,7 +690,6 @@ spec: required: - resource type: object - x-kubernetes-map-type: atomic secretKeyRef: properties: key: @@ -843,7 +701,6 @@ spec: required: - key type: object - x-kubernetes-map-type: atomic type: object required: - name @@ -859,7 +716,6 @@ spec: optional: type: boolean type: object - x-kubernetes-map-type: atomic prefix: type: string secretRef: @@ -869,7 +725,6 @@ spec: optional: type: boolean type: object - x-kubernetes-map-type: atomic type: object type: array image: @@ -915,14 +770,6 @@ spec: required: - port type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - type: object tcpSocket: properties: host: @@ -973,14 +820,6 @@ spec: required: - port type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - type: object tcpSocket: properties: host: @@ -1177,40 +1016,13 @@ spec: format: int32 type: integer type: object - resizePolicy: - items: - properties: - resourceName: - type: string - restartPolicy: - type: string - required: - - resourceName - - restartPolicy - type: object - type: array - x-kubernetes-list-type: atomic resources: properties: - claims: - items: - properties: - name: - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map limits: x-kubernetes-preserve-unknown-fields: true requests: x-kubernetes-preserve-unknown-fields: true type: object - restartPolicy: - type: string securityContext: properties: allowPrivilegeEscalation: @@ -1453,7 +1265,6 @@ spec: required: - key type: object - x-kubernetes-map-type: atomic fieldRef: properties: apiVersion: @@ -1463,7 +1274,6 @@ spec: required: - fieldPath type: object - x-kubernetes-map-type: atomic resourceFieldRef: properties: containerName: @@ -1479,7 +1289,6 @@ spec: required: - resource type: object - x-kubernetes-map-type: atomic secretKeyRef: properties: key: @@ -1491,7 +1300,6 @@ spec: required: - key type: object - x-kubernetes-map-type: atomic type: object required: - name @@ -1507,7 +1315,6 @@ spec: optional: type: boolean type: object - x-kubernetes-map-type: atomic prefix: type: string secretRef: @@ -1517,7 +1324,6 @@ spec: optional: type: boolean type: object - x-kubernetes-map-type: atomic type: object type: array image: @@ -1563,14 +1369,6 @@ spec: required: - port type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - type: object tcpSocket: properties: host: @@ -1621,14 +1419,6 @@ spec: required: - port type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - type: object tcpSocket: properties: host: @@ -1825,40 +1615,13 @@ spec: format: int32 type: integer type: object - resizePolicy: - items: - properties: - resourceName: - type: string - restartPolicy: - type: string - required: - - resourceName - - restartPolicy - type: object - type: array - x-kubernetes-list-type: atomic resources: properties: - claims: - items: - properties: - name: - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map limits: x-kubernetes-preserve-unknown-fields: true requests: x-kubernetes-preserve-unknown-fields: true type: object - restartPolicy: - type: string securityContext: properties: allowPrivilegeEscalation: @@ -2065,8 +1828,6 @@ spec: type: boolean hostPID: type: boolean - hostUsers: - type: boolean hostname: type: string imagePullSecrets: @@ -2075,7 +1836,6 @@ spec: name: type: string type: object - x-kubernetes-map-type: atomic type: array initContainers: items: @@ -2108,7 +1868,6 @@ spec: required: - key type: object - x-kubernetes-map-type: atomic fieldRef: properties: apiVersion: @@ -2118,7 +1877,6 @@ spec: required: - fieldPath type: object - x-kubernetes-map-type: atomic resourceFieldRef: properties: containerName: @@ -2134,7 +1892,6 @@ spec: required: - resource type: object - x-kubernetes-map-type: atomic secretKeyRef: properties: key: @@ -2146,7 +1903,6 @@ spec: required: - key type: object - x-kubernetes-map-type: atomic type: object required: - name @@ -2162,7 +1918,6 @@ spec: optional: type: boolean type: object - x-kubernetes-map-type: atomic prefix: type: string secretRef: @@ -2172,7 +1927,6 @@ spec: optional: type: boolean type: object - x-kubernetes-map-type: atomic type: object type: array image: @@ -2218,14 +1972,6 @@ spec: required: - port type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - type: object tcpSocket: properties: host: @@ -2276,14 +2022,6 @@ spec: required: - port type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - type: object tcpSocket: properties: host: @@ -2480,40 +2218,13 @@ spec: format: int32 type: integer type: object - resizePolicy: - items: - properties: - resourceName: - type: string - restartPolicy: - type: string - required: - - resourceName - - restartPolicy - type: object - type: array - x-kubernetes-list-type: atomic resources: properties: - claims: - items: - properties: - name: - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map limits: x-kubernetes-preserve-unknown-fields: true requests: x-kubernetes-preserve-unknown-fields: true type: object - restartPolicy: - type: string securityContext: properties: allowPrivilegeEscalation: @@ -2739,43 +2450,12 @@ spec: - conditionType type: object type: array - resourceClaims: - items: - properties: - name: - type: string - source: - properties: - resourceClaimName: - type: string - resourceClaimTemplateName: - type: string - type: object - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map restartPolicy: type: string runtimeClassName: type: string schedulerName: type: string - schedulingGates: - items: - properties: - name: - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map securityContext: properties: fsGroup: @@ -2895,22 +2575,12 @@ spec: type: string type: object type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic maxSkew: format: int32 type: integer minDomains: format: int32 type: integer - nodeAffinityPolicy: - type: string - nodeTaintsPolicy: - type: string topologyKey: type: string whenUnsatisfiable: @@ -3033,79 +2703,13 @@ spec: type: string query: type: string - timeout: - format: int64 - type: integer required: - query type: object - plugin: - type: object - x-kubernetes-preserve-unknown-fields: true prometheus: properties: address: type: string - authentication: - properties: - oauth2: - properties: - clientId: - type: string - clientSecret: - type: string - scopes: - items: - type: string - type: array - tokenUrl: - type: string - type: object - sigv4: - properties: - profile: - type: string - region: - type: string - roleArn: - type: string - type: object - type: object - headers: - items: - properties: - key: - type: string - value: - type: string - required: - - key - - value - type: object - type: array - insecure: - type: boolean - query: - type: string - rangeQuery: - properties: - end: - type: string - start: - type: string - step: - type: string - type: object - timeout: - format: int64 - type: integer - type: object - skywalking: - properties: - address: - type: string - interval: - type: string query: type: string type: object @@ -3118,31 +2722,6 @@ spec: type: object web: properties: - authentication: - properties: - oauth2: - properties: - clientId: - type: string - clientSecret: - type: string - scopes: - items: - type: string - type: array - tokenUrl: - type: string - type: object - sigv4: - properties: - profile: - type: string - region: - type: string - roleArn: - type: string - type: object - type: object body: type: string headers: @@ -3182,15 +2761,8 @@ spec: - provider type: object type: array - templates: - items: - properties: - clusterScope: - type: boolean - templateName: - type: string - type: object - type: array + required: + - metrics type: object required: - spec diff --git a/charts/argo-rollouts/templates/crds/experiment-crd.yaml b/charts/argo-rollouts/templates/crds/experiment-crd.yaml index 58c0e72e..86af1932 100644 --- a/charts/argo-rollouts/templates/crds/experiment-crd.yaml +++ b/charts/argo-rollouts/templates/crds/experiment-crd.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.7.0 {{- if .Values.keepCRDs }} "helm.sh/resource-policy": keep {{- end }} @@ -94,17 +94,6 @@ spec: - templateName type: object type: array - analysisRunMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object dryRun: items: properties: @@ -169,11 +158,7 @@ spec: type: string type: object type: object - x-kubernetes-map-type: atomic service: - properties: - name: - type: string type: object template: properties: @@ -235,7 +220,6 @@ spec: type: object type: array type: object - x-kubernetes-map-type: atomic weight: format: int32 type: integer @@ -282,12 +266,10 @@ spec: type: object type: array type: object - x-kubernetes-map-type: atomic type: array required: - nodeSelectorTerms type: object - x-kubernetes-map-type: atomic type: object podAffinity: properties: @@ -319,17 +301,6 @@ spec: type: string type: object type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - mismatchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic namespaceSelector: properties: matchExpressions: @@ -353,7 +324,6 @@ spec: type: string type: object type: object - x-kubernetes-map-type: atomic namespaces: items: type: string @@ -397,17 +367,6 @@ spec: type: string type: object type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - mismatchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic namespaceSelector: properties: matchExpressions: @@ -431,7 +390,6 @@ spec: type: string type: object type: object - x-kubernetes-map-type: atomic namespaces: items: type: string @@ -473,17 +431,6 @@ spec: type: string type: object type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - mismatchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic namespaceSelector: properties: matchExpressions: @@ -507,7 +454,6 @@ spec: type: string type: object type: object - x-kubernetes-map-type: atomic namespaces: items: type: string @@ -551,17 +497,6 @@ spec: type: string type: object type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - mismatchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic namespaceSelector: properties: matchExpressions: @@ -585,7 +520,6 @@ spec: type: string type: object type: object - x-kubernetes-map-type: atomic namespaces: items: type: string @@ -631,7 +565,6 @@ spec: required: - key type: object - x-kubernetes-map-type: atomic fieldRef: properties: apiVersion: @@ -641,7 +574,6 @@ spec: required: - fieldPath type: object - x-kubernetes-map-type: atomic resourceFieldRef: properties: containerName: @@ -657,7 +589,6 @@ spec: required: - resource type: object - x-kubernetes-map-type: atomic secretKeyRef: properties: key: @@ -669,7 +600,6 @@ spec: required: - key type: object - x-kubernetes-map-type: atomic type: object required: - name @@ -685,7 +615,6 @@ spec: optional: type: boolean type: object - x-kubernetes-map-type: atomic prefix: type: string secretRef: @@ -695,7 +624,6 @@ spec: optional: type: boolean type: object - x-kubernetes-map-type: atomic type: object type: array image: @@ -741,14 +669,6 @@ spec: required: - port type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - type: object tcpSocket: properties: host: @@ -799,14 +719,6 @@ spec: required: - port type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - type: object tcpSocket: properties: host: @@ -1003,40 +915,13 @@ spec: format: int32 type: integer type: object - resizePolicy: - items: - properties: - resourceName: - type: string - restartPolicy: - type: string - required: - - resourceName - - restartPolicy - type: object - type: array - x-kubernetes-list-type: atomic resources: properties: - claims: - items: - properties: - name: - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map limits: x-kubernetes-preserve-unknown-fields: true requests: x-kubernetes-preserve-unknown-fields: true type: object - restartPolicy: - type: string securityContext: properties: allowPrivilegeEscalation: @@ -1279,7 +1164,6 @@ spec: required: - key type: object - x-kubernetes-map-type: atomic fieldRef: properties: apiVersion: @@ -1289,7 +1173,6 @@ spec: required: - fieldPath type: object - x-kubernetes-map-type: atomic resourceFieldRef: properties: containerName: @@ -1305,7 +1188,6 @@ spec: required: - resource type: object - x-kubernetes-map-type: atomic secretKeyRef: properties: key: @@ -1317,7 +1199,6 @@ spec: required: - key type: object - x-kubernetes-map-type: atomic type: object required: - name @@ -1333,7 +1214,6 @@ spec: optional: type: boolean type: object - x-kubernetes-map-type: atomic prefix: type: string secretRef: @@ -1343,7 +1223,6 @@ spec: optional: type: boolean type: object - x-kubernetes-map-type: atomic type: object type: array image: @@ -1389,14 +1268,6 @@ spec: required: - port type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - type: object tcpSocket: properties: host: @@ -1447,14 +1318,6 @@ spec: required: - port type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - type: object tcpSocket: properties: host: @@ -1651,40 +1514,13 @@ spec: format: int32 type: integer type: object - resizePolicy: - items: - properties: - resourceName: - type: string - restartPolicy: - type: string - required: - - resourceName - - restartPolicy - type: object - type: array - x-kubernetes-list-type: atomic resources: properties: - claims: - items: - properties: - name: - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map limits: x-kubernetes-preserve-unknown-fields: true requests: x-kubernetes-preserve-unknown-fields: true type: object - restartPolicy: - type: string securityContext: properties: allowPrivilegeEscalation: @@ -1891,8 +1727,6 @@ spec: type: boolean hostPID: type: boolean - hostUsers: - type: boolean hostname: type: string imagePullSecrets: @@ -1901,7 +1735,6 @@ spec: name: type: string type: object - x-kubernetes-map-type: atomic type: array initContainers: items: @@ -1934,7 +1767,6 @@ spec: required: - key type: object - x-kubernetes-map-type: atomic fieldRef: properties: apiVersion: @@ -1944,7 +1776,6 @@ spec: required: - fieldPath type: object - x-kubernetes-map-type: atomic resourceFieldRef: properties: containerName: @@ -1960,7 +1791,6 @@ spec: required: - resource type: object - x-kubernetes-map-type: atomic secretKeyRef: properties: key: @@ -1972,7 +1802,6 @@ spec: required: - key type: object - x-kubernetes-map-type: atomic type: object required: - name @@ -1988,7 +1817,6 @@ spec: optional: type: boolean type: object - x-kubernetes-map-type: atomic prefix: type: string secretRef: @@ -1998,7 +1826,6 @@ spec: optional: type: boolean type: object - x-kubernetes-map-type: atomic type: object type: array image: @@ -2044,14 +1871,6 @@ spec: required: - port type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - type: object tcpSocket: properties: host: @@ -2102,14 +1921,6 @@ spec: required: - port type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - type: object tcpSocket: properties: host: @@ -2306,40 +2117,13 @@ spec: format: int32 type: integer type: object - resizePolicy: - items: - properties: - resourceName: - type: string - restartPolicy: - type: string - required: - - resourceName - - restartPolicy - type: object - type: array - x-kubernetes-list-type: atomic resources: properties: - claims: - items: - properties: - name: - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map limits: x-kubernetes-preserve-unknown-fields: true requests: x-kubernetes-preserve-unknown-fields: true type: object - restartPolicy: - type: string securityContext: properties: allowPrivilegeEscalation: @@ -2565,43 +2349,12 @@ spec: - conditionType type: object type: array - resourceClaims: - items: - properties: - name: - type: string - source: - properties: - resourceClaimName: - type: string - resourceClaimTemplateName: - type: string - type: object - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map restartPolicy: type: string runtimeClassName: type: string schedulerName: type: string - schedulingGates: - items: - properties: - name: - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map securityContext: properties: fsGroup: @@ -2721,22 +2474,12 @@ spec: type: string type: object type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic maxSkew: format: int32 type: integer minDomains: format: int32 type: integer - nodeAffinityPolicy: - type: string - nodeTaintsPolicy: - type: string topologyKey: type: string whenUnsatisfiable: diff --git a/charts/argo-rollouts/templates/crds/rollout-crd.yaml b/charts/argo-rollouts/templates/crds/rollout-crd.yaml index a883137d..3f6ea749 100644 --- a/charts/argo-rollouts/templates/crds/rollout-crd.yaml +++ b/charts/argo-rollouts/templates/crds/rollout-crd.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.7.0 {{- if .Values.keepCRDs }} "helm.sh/resource-policy": keep {{- end }} @@ -118,7 +118,6 @@ spec: type: string type: object type: object - x-kubernetes-map-type: atomic strategy: properties: blueGreen: @@ -164,17 +163,6 @@ spec: x-kubernetes-int-or-string: true postPromotionAnalysis: properties: - analysisRunMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object args: items: properties: @@ -232,17 +220,6 @@ spec: type: object prePromotionAnalysis: properties: - analysisRunMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object args: items: properties: @@ -330,17 +307,6 @@ spec: type: integer analysis: properties: - analysisRunMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object args: items: properties: @@ -474,17 +440,6 @@ spec: properties: analysis: properties: - analysisRunMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object args: items: properties: @@ -581,26 +536,6 @@ spec: - templateName type: object type: array - analysisRunMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - dryRun: - items: - properties: - metricName: - type: string - required: - - metricName - type: object - type: array duration: type: string templates: @@ -645,12 +580,6 @@ spec: type: string type: object type: object - x-kubernetes-map-type: atomic - service: - properties: - name: - type: string - type: object specRef: type: string weight: @@ -672,16 +601,6 @@ spec: - type: string x-kubernetes-int-or-string: true type: object - plugin: - properties: - config: - type: object - x-kubernetes-preserve-unknown-fields: true - name: - type: string - required: - - name - type: object setCanaryScale: properties: matchTrafficWeight: @@ -774,10 +693,6 @@ spec: type: string ingress: type: string - ingresses: - items: - type: string - type: array rootService: type: string servicePort: @@ -795,6 +710,7 @@ spec: - enabled type: object required: + - ingress - servicePort type: object ambassador: @@ -943,9 +859,6 @@ spec: - name type: object type: array - maxTrafficWeight: - format: int32 - type: integer nginx: properties: additionalIngressAnnotations: @@ -954,20 +867,11 @@ spec: type: object annotationPrefix: type: string - canaryIngressAnnotations: - additionalProperties: - type: string - type: object stableIngress: type: string - stableIngresses: - items: - type: string - type: array + required: + - stableIngress type: object - plugins: - type: object - x-kubernetes-preserve-unknown-fields: true smi: properties: rootService: @@ -1045,7 +949,6 @@ spec: type: object type: array type: object - x-kubernetes-map-type: atomic weight: format: int32 type: integer @@ -1092,12 +995,10 @@ spec: type: object type: array type: object - x-kubernetes-map-type: atomic type: array required: - nodeSelectorTerms type: object - x-kubernetes-map-type: atomic type: object podAffinity: properties: @@ -1129,17 +1030,6 @@ spec: type: string type: object type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - mismatchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic namespaceSelector: properties: matchExpressions: @@ -1163,7 +1053,6 @@ spec: type: string type: object type: object - x-kubernetes-map-type: atomic namespaces: items: type: string @@ -1207,17 +1096,6 @@ spec: type: string type: object type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - mismatchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic namespaceSelector: properties: matchExpressions: @@ -1241,7 +1119,6 @@ spec: type: string type: object type: object - x-kubernetes-map-type: atomic namespaces: items: type: string @@ -1283,17 +1160,6 @@ spec: type: string type: object type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - mismatchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic namespaceSelector: properties: matchExpressions: @@ -1317,7 +1183,6 @@ spec: type: string type: object type: object - x-kubernetes-map-type: atomic namespaces: items: type: string @@ -1361,17 +1226,6 @@ spec: type: string type: object type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - mismatchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic namespaceSelector: properties: matchExpressions: @@ -1395,7 +1249,6 @@ spec: type: string type: object type: object - x-kubernetes-map-type: atomic namespaces: items: type: string @@ -1441,7 +1294,6 @@ spec: required: - key type: object - x-kubernetes-map-type: atomic fieldRef: properties: apiVersion: @@ -1451,7 +1303,6 @@ spec: required: - fieldPath type: object - x-kubernetes-map-type: atomic resourceFieldRef: properties: containerName: @@ -1467,7 +1318,6 @@ spec: required: - resource type: object - x-kubernetes-map-type: atomic secretKeyRef: properties: key: @@ -1479,7 +1329,6 @@ spec: required: - key type: object - x-kubernetes-map-type: atomic type: object required: - name @@ -1495,7 +1344,6 @@ spec: optional: type: boolean type: object - x-kubernetes-map-type: atomic prefix: type: string secretRef: @@ -1505,7 +1353,6 @@ spec: optional: type: boolean type: object - x-kubernetes-map-type: atomic type: object type: array image: @@ -1551,14 +1398,6 @@ spec: required: - port type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - type: object tcpSocket: properties: host: @@ -1609,14 +1448,6 @@ spec: required: - port type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - type: object tcpSocket: properties: host: @@ -1813,40 +1644,13 @@ spec: format: int32 type: integer type: object - resizePolicy: - items: - properties: - resourceName: - type: string - restartPolicy: - type: string - required: - - resourceName - - restartPolicy - type: object - type: array - x-kubernetes-list-type: atomic resources: properties: - claims: - items: - properties: - name: - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map limits: x-kubernetes-preserve-unknown-fields: true requests: x-kubernetes-preserve-unknown-fields: true type: object - restartPolicy: - type: string securityContext: properties: allowPrivilegeEscalation: @@ -2089,7 +1893,6 @@ spec: required: - key type: object - x-kubernetes-map-type: atomic fieldRef: properties: apiVersion: @@ -2099,7 +1902,6 @@ spec: required: - fieldPath type: object - x-kubernetes-map-type: atomic resourceFieldRef: properties: containerName: @@ -2115,7 +1917,6 @@ spec: required: - resource type: object - x-kubernetes-map-type: atomic secretKeyRef: properties: key: @@ -2127,7 +1928,6 @@ spec: required: - key type: object - x-kubernetes-map-type: atomic type: object required: - name @@ -2143,7 +1943,6 @@ spec: optional: type: boolean type: object - x-kubernetes-map-type: atomic prefix: type: string secretRef: @@ -2153,7 +1952,6 @@ spec: optional: type: boolean type: object - x-kubernetes-map-type: atomic type: object type: array image: @@ -2199,14 +1997,6 @@ spec: required: - port type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - type: object tcpSocket: properties: host: @@ -2257,14 +2047,6 @@ spec: required: - port type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - type: object tcpSocket: properties: host: @@ -2461,40 +2243,13 @@ spec: format: int32 type: integer type: object - resizePolicy: - items: - properties: - resourceName: - type: string - restartPolicy: - type: string - required: - - resourceName - - restartPolicy - type: object - type: array - x-kubernetes-list-type: atomic resources: properties: - claims: - items: - properties: - name: - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map limits: x-kubernetes-preserve-unknown-fields: true requests: x-kubernetes-preserve-unknown-fields: true type: object - restartPolicy: - type: string securityContext: properties: allowPrivilegeEscalation: @@ -2701,8 +2456,6 @@ spec: type: boolean hostPID: type: boolean - hostUsers: - type: boolean hostname: type: string imagePullSecrets: @@ -2711,7 +2464,6 @@ spec: name: type: string type: object - x-kubernetes-map-type: atomic type: array initContainers: items: @@ -2744,7 +2496,6 @@ spec: required: - key type: object - x-kubernetes-map-type: atomic fieldRef: properties: apiVersion: @@ -2754,7 +2505,6 @@ spec: required: - fieldPath type: object - x-kubernetes-map-type: atomic resourceFieldRef: properties: containerName: @@ -2770,7 +2520,6 @@ spec: required: - resource type: object - x-kubernetes-map-type: atomic secretKeyRef: properties: key: @@ -2782,7 +2531,6 @@ spec: required: - key type: object - x-kubernetes-map-type: atomic type: object required: - name @@ -2798,7 +2546,6 @@ spec: optional: type: boolean type: object - x-kubernetes-map-type: atomic prefix: type: string secretRef: @@ -2808,7 +2555,6 @@ spec: optional: type: boolean type: object - x-kubernetes-map-type: atomic type: object type: array image: @@ -2854,14 +2600,6 @@ spec: required: - port type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - type: object tcpSocket: properties: host: @@ -2912,14 +2650,6 @@ spec: required: - port type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - type: object tcpSocket: properties: host: @@ -3116,40 +2846,13 @@ spec: format: int32 type: integer type: object - resizePolicy: - items: - properties: - resourceName: - type: string - restartPolicy: - type: string - required: - - resourceName - - restartPolicy - type: object - type: array - x-kubernetes-list-type: atomic resources: properties: - claims: - items: - properties: - name: - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map limits: x-kubernetes-preserve-unknown-fields: true requests: x-kubernetes-preserve-unknown-fields: true type: object - restartPolicy: - type: string securityContext: properties: allowPrivilegeEscalation: @@ -3375,43 +3078,12 @@ spec: - conditionType type: object type: array - resourceClaims: - items: - properties: - name: - type: string - source: - properties: - resourceClaimName: - type: string - resourceClaimTemplateName: - type: string - type: object - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map restartPolicy: type: string runtimeClassName: type: string schedulerName: type: string - schedulingGates: - items: - properties: - name: - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map securityContext: properties: fsGroup: @@ -3531,22 +3203,12 @@ spec: type: string type: object type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic maxSkew: format: int32 type: integer minDomains: format: int32 type: integer - nodeAffinityPolicy: - type: string - nodeTaintsPolicy: - type: string topologyKey: type: string whenUnsatisfiable: @@ -3577,8 +3239,6 @@ spec: type: string name: type: string - scaleDown: - type: string type: object type: object status: @@ -3597,22 +3257,16 @@ spec: properties: arn: type: string - fullName: - type: string name: type: string required: - arn - name type: object - ingress: - type: string loadBalancer: properties: arn: type: string - fullName: - type: string name: type: string required: @@ -3623,8 +3277,6 @@ spec: properties: arn: type: string - fullName: - type: string name: type: string required: @@ -3632,49 +3284,6 @@ spec: - name type: object type: object - albs: - items: - properties: - canaryTargetGroup: - properties: - arn: - type: string - fullName: - type: string - name: - type: string - required: - - arn - - name - type: object - ingress: - type: string - loadBalancer: - properties: - arn: - type: string - fullName: - type: string - name: - type: string - required: - - arn - - name - type: object - stableTargetGroup: - properties: - arn: - type: string - fullName: - type: string - name: - type: string - required: - - arn - - name - type: object - type: object - type: array availableReplicas: format: int32 type: integer @@ -3741,45 +3350,6 @@ spec: type: object stablePingPong: type: string - stepPluginStatuses: - items: - properties: - backoff: - type: string - disabled: - type: boolean - executions: - format: int32 - type: integer - finishedAt: - format: date-time - type: string - index: - format: int32 - type: integer - message: - type: string - name: - type: string - operation: - type: string - phase: - type: string - startedAt: - format: date-time - type: string - status: - type: object - x-kubernetes-preserve-unknown-fields: true - updatedAt: - format: date-time - type: string - required: - - index - - name - - operation - type: object - type: array weights: properties: additional: diff --git a/charts/argo-rollouts/templates/dashboard/clusterrole.yaml b/charts/argo-rollouts/templates/dashboard/clusterrole.yaml index cb3e457a..0d69d67e 100644 --- a/charts/argo-rollouts/templates/dashboard/clusterrole.yaml +++ b/charts/argo-rollouts/templates/dashboard/clusterrole.yaml @@ -71,12 +71,6 @@ rules: verbs: - list - watch - - apiGroups: - - "" - resources: - - configmaps - verbs: - - get - apiGroups: - coordination.k8s.io resources: diff --git a/charts/argo-rollouts/templates/dashboard/deployment.yaml b/charts/argo-rollouts/templates/dashboard/deployment.yaml index ec0114ba..342e1996 100644 --- a/charts/argo-rollouts/templates/dashboard/deployment.yaml +++ b/charts/argo-rollouts/templates/dashboard/deployment.yaml @@ -2,18 +2,9 @@ apiVersion: apps/v1 kind: Deployment metadata: - {{- with (mergeOverwrite (deepCopy .Values.global.deploymentAnnotations) .Values.dashboard.deploymentAnnotations) }} - annotations: - {{- range $key, $value := . }} - {{ $key }}: {{ $value | quote }} - {{- end }} - {{- end }} name: {{ include "argo-rollouts.fullname" . }}-dashboard namespace: {{ .Release.Namespace | quote }} labels: - {{- range $key, $value := (mergeOverwrite (deepCopy .Values.global.deploymentLabels) .Values.dashboard.deploymentLabels) }} - {{ $key }}: {{ $value | quote }} - {{- end }} app.kubernetes.io/component: {{ .Values.dashboard.component }} {{- include "argo-rollouts.labels" . | nindent 4 }} spec: @@ -24,7 +15,6 @@ spec: strategy: type: Recreate replicas: {{ .Values.dashboard.replicas }} - revisionHistoryLimit: {{ .Values.global.revisionHistoryLimit }} template: metadata: {{- with (mergeOverwrite (deepCopy .Values.podAnnotations) .Values.dashboard.podAnnotations) }} @@ -36,7 +26,7 @@ spec: labels: {{- include "argo-rollouts.selectorLabels" . | nindent 8 }} app.kubernetes.io/component: {{ .Values.dashboard.component }} - {{- range $key, $value := (mergeOverwrite (deepCopy .Values.podLabels) .Values.dashboard.podLabels) }} + {{- range $key, $value := .Values.podLabels }} {{ $key }}: {{ $value | quote }} {{- end }} spec: @@ -49,9 +39,6 @@ spec: - image: "{{ .Values.dashboard.image.registry }}/{{ .Values.dashboard.image.repository }}:{{ default .Chart.AppVersion .Values.dashboard.image.tag }}" imagePullPolicy: {{ .Values.dashboard.image.pullPolicy }} args: - - dashboard - - "--loglevel={{ .Values.dashboard.logging.level }}" - - "--kloglevel={{ .Values.dashboard.logging.kloglevel }}" {{- with .Values.dashboard.extraArgs }} {{- toYaml . | nindent 8 }} {{- end }} diff --git a/charts/argo-rollouts/templates/dashboard/service.yaml b/charts/argo-rollouts/templates/dashboard/service.yaml index b7e553d7..6a304b82 100644 --- a/charts/argo-rollouts/templates/dashboard/service.yaml +++ b/charts/argo-rollouts/templates/dashboard/service.yaml @@ -22,9 +22,6 @@ spec: externalIPs: {{- toYaml . | nindent 4 }} {{- end }} {{- if eq .Values.dashboard.service.type "LoadBalancer" }} - {{- with .Values.dashboard.service.loadBalancerClass }} - loadBalancerClass: {{ . }} - {{- end }} {{- with .Values.dashboard.service.loadBalancerIP }} loadBalancerIP: {{ . | quote }} {{- end }} diff --git a/charts/argo-rollouts/templates/extra-manifests.yaml b/charts/argo-rollouts/templates/extra-manifests.yaml index fc9a76b8..f17b1a93 100644 --- a/charts/argo-rollouts/templates/extra-manifests.yaml +++ b/charts/argo-rollouts/templates/extra-manifests.yaml @@ -1,6 +1,6 @@ {{ range .Values.extraObjects }} --- -{{ if typeIs "string" . }} +{{- if typeIs "string" . }} {{- tpl . $ }} {{- else }} {{- tpl (toYaml .) $ }} diff --git a/charts/argo-rollouts/values.yaml b/charts/argo-rollouts/values.yaml index 26633455..28a6f1f8 100644 --- a/charts/argo-rollouts/values.yaml +++ b/charts/argo-rollouts/values.yaml @@ -38,38 +38,17 @@ extraObjects: [] # api-key: # app-key: -global: - # -- Annotations for all deployed Deployments - deploymentAnnotations: {} - # -- Labels for all deployed Deployments - deploymentLabels: {} - # -- Number of old deployment ReplicaSets to retain. The rest will be garbage collected. - revisionHistoryLimit: 10 - controller: # -- Value of label `app.kubernetes.io/component` component: rollouts-controller - # -- Annotations to be added to the controller deployment - deploymentAnnotations: {} - # -- Labels to be added to the controller deployment - deploymentLabels: {} # -- Annotations to be added to application controller pods podAnnotations: {} - # -- Labels to be added to the application controller pods - podLabels: {} # -- [Node selector] nodeSelector: {} # -- [Tolerations] for use with node taints tolerations: [] # -- Assign custom [affinity] rules to the deployment affinity: {} - logging: - # -- Set the logging level (one of: `debug`, `info`, `warn`, `error`) - level: info - # -- Set the klog logging level - kloglevel: "0" - # -- Set the logging format (one of: `text`, `json`) - format: "text" # -- Assign custom [TopologySpreadConstraints] rules to the controller ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/ @@ -79,10 +58,6 @@ controller: # topologyKey: topology.kubernetes.io/zone # whenUnsatisfiable: DoNotSchedule - # -- terminationGracePeriodSeconds for container lifecycle hook - terminationGracePeriodSeconds: 30 - # -- Specify lifecycle hooks for the controller - lifecycle: {} # -- [priorityClassName] for the controller priorityClassName: "" # -- The number of controller pods to run @@ -124,7 +99,6 @@ controller: # limits: # cpu: 100m # memory: 128Mi - # ephemeral-storage: 1Gi # requests: # cpu: 50m # memory: 64Mi @@ -132,28 +106,12 @@ controller: # -- flag to enable creation of cluster controller role (requires cluster RBAC) createClusterRole: true - # Controller container ports - containerPorts: - # -- Metrics container port - metrics: 8090 - # -- Healthz container port - healthz: 8080 - metrics: # -- Deploy metrics service enabled: false - service: - # -- Metrics service port name - portName: metrics - # -- Metrics service port - port: 8090 - # -- Service annotations - annotations: {} serviceMonitor: # -- Enable a prometheus ServiceMonitor enabled: false - # -- Namespace to be used for the ServiceMonitor - namespace: "" # -- Labels to be added to the ServiceMonitor additionalLabels: {} # -- Annotations to be added to the ServiceMonitor @@ -211,18 +169,6 @@ controller: # - mountPath: /etc/ssl/certs # name: my-certs - # -- Configures 3rd party metric providers for controller - ## Ref: https://argo-rollouts.readthedocs.io/en/stable/analysis/plugins/ - metricProviderPlugins: [] - # - name: "argoproj-labs/sample-prometheus" # name of the plugin, it must match the name required by the plugin so that it can find its configuration - # location: "file://./my-custom-plugin" # supports http(s):// urls and file:// - - # -- Configures 3rd party traffic router plugins for controller - ## Ref: https://argo-rollouts.readthedocs.io/en/stable/features/traffic-management/plugins/ - trafficRouterPlugins: [] - # - name: "argoproj-labs/sample-nginx" # name of the plugin, it must match the name required by the plugin so it can find it's configuration - # location: "file://./my-custom-plugin" # supports http(s):// urls and file:// - serviceAccount: # -- Specifies whether a service account should be created create: true @@ -243,14 +189,13 @@ podSecurityContext: runAsNonRoot: true # -- Security Context to set on container level -containerSecurityContext: - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - readOnlyRootFilesystem: true - seccompProfile: - type: RuntimeDefault +containerSecurityContext: {} + # capabilities: + # drop: + # - ALL + # readOnlyRootFilesystem: true + # runAsNonRoot: true + # runAsUser: 1000 # -- Annotations to be added to the Rollout service serviceAnnotations: {} @@ -281,14 +226,6 @@ providerRBAC: traefik: true # -- Adds RBAC rules for the Apisix provider apisix: true - # -- Adds RBAC rules for the Contour provider, see `https://github.com/argoproj-labs/rollouts-plugin-trafficrouter-contour/blob/main/README.md` - contour: true - # -- Adds RBAC rules for the Gloo Platform provider, see `https://github.com/argoproj-labs/rollouts-plugin-trafficrouter-glooplatform/blob/main/README.md` - glooPlatform: true - # -- Adds RBAC rules for the Gateway API provider - gatewayAPI: true - # -- Additional RBAC rules for others providers - additionalRules: [] dashboard: # -- Deploy dashboard server @@ -297,25 +234,14 @@ dashboard: readonly: false # -- Value of label `app.kubernetes.io/component` component: rollouts-dashboard - # -- Annotations to be added to the dashboard deployment - deploymentAnnotations: {} - # -- Labels to be added to the dashboard deployment - deploymentLabels: {} # -- Annotations to be added to application dashboard pods podAnnotations: {} - # -- Labels to be added to the application dashboard pods - podLabels: {} # -- [Node selector] nodeSelector: {} # -- [Tolerations] for use with node taints tolerations: [] # -- Assign custom [affinity] rules to the deployment affinity: {} - logging: - # -- Set the logging level (one of: `debug`, `info`, `warn`, `error`) - level: info - # -- Set the klog logging level - kloglevel: "0" # -- Assign custom [TopologySpreadConstraints] rules to the dashboard server ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/ @@ -358,8 +284,6 @@ dashboard: service: # -- Sets the type of the Service type: ClusterIP - # -- The class of the load balancer implementation - loadBalancerClass: "" # -- LoadBalancer will get created with the IP specified in this field loadBalancerIP: "" # -- Source IP ranges to allow access to service from @@ -401,7 +325,7 @@ dashboard: maxUnavailable: # 0 ## Ingress configuration. - ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/ + ## ref: https://kubernetes.io/docs/user-guide/ingress/ ## ingress: # -- Enable dashboard ingress support @@ -453,19 +377,12 @@ dashboard: volumeMounts: [] notifications: - configmap: - # -- Whether to create notifications configmap - create: true - secret: - # -- Whether to create notifications secret. - ## If you want to manually create secret, do not forget to add proper label to it: "app.kubernetes.io/component: {{ .Values.controller.component }}". + # -- Whether to create notifications secret create: false # -- Generic key:value pairs to be inserted into the notifications secret items: {} # slack-token: - # -- Annotations to be added to the notifications secret - annotations: {} # -- Configures notification services notifiers: {} @@ -489,11 +406,3 @@ notifications: # trigger.on-purple: | # - send: [my-purple-template] # when: rollout.spec.template.spec.containers[0].image == 'argoproj/rollouts-demo:purple' - - # -- The subscriptions define the subscriptions to the triggers in a general way for all rollouts - subscriptions: [] - # - recipients: - # - slack: - # triggers: - # - on-rollout-completed - # - on-rollout-aborted diff --git a/charts/argo-workflows/Chart.yaml b/charts/argo-workflows/Chart.yaml index c1f8df1a..11bdb8ed 100644 --- a/charts/argo-workflows/Chart.yaml +++ b/charts/argo-workflows/Chart.yaml @@ -1,10 +1,10 @@ apiVersion: v2 -appVersion: v3.6.4 +appVersion: v3.4.7 name: argo-workflows description: A Helm chart for Argo Workflows type: application -version: 0.45.7 -icon: https://argo-workflows.readthedocs.io/en/stable/assets/logo.png +version: 0.26.2 +icon: https://argoproj.github.io/argo-workflows/assets/logo.png home: https://github.com/argoproj/argo-helm sources: - https://github.com/argoproj/argo-workflows @@ -12,9 +12,6 @@ maintainers: - name: argoproj url: https://argoproj.github.io/ annotations: - artifacthub.io/signKey: | - fingerprint: 2B8F22F57260EFA67BE1C5824B11F800CD9D2252 - url: https://argoproj.github.io/argo-helm/pgp_keys.asc artifacthub.io/changes: | - kind: fixed - description: Update the SSO configuration instructions to reflect the correct field name + description: Use correct artifacthub kind and get latest chart version to artifacthub diff --git a/charts/argo-workflows/README.md b/charts/argo-workflows/README.md index 6e400596..dae6972b 100644 --- a/charts/argo-workflows/README.md +++ b/charts/argo-workflows/README.md @@ -75,21 +75,13 @@ For full list of changes, please check ArtifactHub [changelog]. ## Usage Notes -### High Availability - -This chart installs the non-HA version of Argo Workflows by default. If you want to run in HA mode, you can use [these example values](ci/ha-values.yaml) as a starting point. -Please see the upstream [Operator Manual's High Availability page](https://argo-workflows.readthedocs.io/en/stable/high-availability/) to understand how to scale Argo Workflows in depth. - ### Workflow controller This chart defaults to setting the `controller.instanceID.enabled` to `false` now, which means the deployed controller will act upon any workflow deployed to the cluster. If you would like to limit the behavior and deploy multiple workflow controllers, please use the `controller.instanceID.enabled` attribute along with one of its configuration options to set the `instanceID` of the workflow controller to be properly scoped for your needs. -### Argo Workflows server authentication +### Workflow server authentication -Argo Workflows server provides some choices for authentication mechanism and you can configure `.Values.server.authModes`. By default, authentication mode is `[server]`, for local development purposes or cases where your gateway authentication is covered by some other means. -Please refer to [Argo Server Auth Mode] for more details. - -Argo Workflows server also supports SSO and you can enable it to configure `.Values.server.sso` and `.Values.server.authModes`. In order to manage access levels, you can optionally add RBAC to SSO. Please refer to [SSO RBAC] for more details. +By default, the chart requires some kind of authentication mechanism. This adopts the [default behaviour from the Argo project](https://github.com/argoproj/argo-workflows/pull/5211) itself. However, for local development purposes, or cases where your gateway authentication is covered by some other means, you can set the authentication mode for the Argo server by setting the `server.extraArgs: [--auth-mode=server]`. There are a few additional comments in the values.yaml file itself, including commented-out settings to disable authentication on the server UI itself using the same `--auth-mode=server` setting. ## Values @@ -109,10 +101,6 @@ Fields to note: | Key | Type | Default | Description | |-----|------|---------|-------------| -| apiVersionOverrides.autoscaling | string | `""` | String to override apiVersion of autoscaling rendered by this helm chart | -| apiVersionOverrides.cloudgoogle | string | `""` | String to override apiVersion of GKE resources rendered by this helm chart | -| apiVersionOverrides.monitoring | string | `""` | String to override apiVersion of monitoring CRDs (ServiceMonitor) rendered by this helm chart | -| commonLabels | object | `{}` | Labels to set on all resources | | crds.annotations | object | `{}` | Annotations to be added to all CRDs | | crds.install | bool | `true` | Install and upgrade CRDs | | crds.keep | bool | `true` | Keep CRDs on chart uninstall | @@ -125,7 +113,6 @@ Fields to note: | images.tag | string | `""` | Common tag for Argo Workflows images. Defaults to `.Chart.AppVersion`. | | kubeVersionOverride | string | `""` | Override the Kubernetes version, which is used to evaluate certain manifests | | nameOverride | string | `nil` | String to partially override "argo-workflows.fullname" template | -| namespaceOverride | string | `.Release.Namespace` | Override the namespace | | singleNamespace | bool | `false` | Restrict Argo to operate only in a single namespace (the namespace of the Helm release) by apply Roles and RoleBindings instead of the Cluster equivalents, and start workflow-controller with the --namespaced flag. Use it in clusters with strict access policy. | ### Workflow @@ -133,15 +120,11 @@ Fields to note: | Key | Type | Default | Description | |-----|------|---------|-------------| | workflow.namespace | string | `nil` | Deprecated; use controller.workflowNamespaces instead. | -| workflow.rbac.agentPermissions | bool | `false` | Allows permissions for the Argo Agent. Only required if using http/plugin templates | -| workflow.rbac.artifactGC | bool | `false` | Allows permissions for the Argo Artifact GC pod. Only required if using artifact gc | | workflow.rbac.create | bool | `true` | Adds Role and RoleBinding for the above specified service account to be able to run workflows. A Role and Rolebinding pair is also created for each namespace in controller.workflowNamespaces (see below) | -| workflow.rbac.serviceAccounts | list | `[]` | Extra service accounts to be added to the RoleBinding | | workflow.serviceAccount.annotations | object | `{}` | Annotations applied to created service account | | workflow.serviceAccount.create | bool | `false` | Specifies whether a service account should be created | | workflow.serviceAccount.labels | object | `{}` | Labels applied to created service account | | workflow.serviceAccount.name | string | `"argo-workflow"` | Service account which is used to run workflows | -| workflow.serviceAccount.pullSecrets | list | `[]` | Secrets with credentials to pull images from a private registry. Same format as `.Values.images.pullSecrets` | ### Workflow Controller @@ -149,12 +132,6 @@ Fields to note: |-----|------|---------|-------------| | controller.affinity | object | `{}` | Assign custom [affinity] rules | | controller.clusterWorkflowTemplates.enabled | bool | `true` | Create a ClusterRole and CRB for the controller to access ClusterWorkflowTemplates. | -| controller.clusterWorkflowTemplates.serviceAccounts | list | `[]` | Extra service accounts to be added to the ClusterRoleBinding | -| controller.columns | list | `[]` | Configure Argo Server to show custom [columns] | -| controller.configMap.annotations | object | `{}` | ConfigMap annotations | -| controller.configMap.create | bool | `true` | Create a ConfigMap for the controller | -| controller.configMap.name | string | `""` | ConfigMap name | -| controller.cronWorkflowWorkers | string | `nil` | Number of cron workflow workers Only valid for 3.5+ | | controller.deploymentAnnotations | object | `{}` | deploymentAnnotations is an optional map of annotations to be applied to the controller Deployment | | controller.extraArgs | list | `[]` | Extra arguments to be added to the controller | | controller.extraContainers | list | `[]` | Extra containers to be added to the controller deployment | @@ -170,16 +147,12 @@ Fields to note: | controller.kubeConfig | object | `{}` (See [values.yaml]) | Configure when workflow controller runs in a different k8s cluster with the workflow workloads, or needs to communicate with the k8s apiserver using an out-of-cluster kubeconfig secret. | | controller.links | list | `[]` | Configure Argo Server to show custom [links] | | controller.livenessProbe | object | See [values.yaml] | Configure liveness [probe] for the controller | -| controller.loadBalancerClass | string | `""` | The class of the load balancer implementation | | controller.loadBalancerSourceRanges | list | `[]` | Source ranges to allow access to service from. Only applies to service type `LoadBalancer` | | controller.logging.format | string | `"text"` | Set the logging format (one of: `text`, `json`) | | controller.logging.globallevel | string | `"0"` | Set the glog logging level | | controller.logging.level | string | `"info"` | Set the logging level (one of: `debug`, `info`, `warn`, `error`) | | controller.metricsConfig.enabled | bool | `false` | Enables prometheus metrics server | -| controller.metricsConfig.headlessService | bool | `false` | Flag to enable headless service | -| controller.metricsConfig.honorLabels | bool | `false` | When true, honorLabels preserves the metric’s labels when they collide with the target’s labels. | | controller.metricsConfig.ignoreErrors | bool | `false` | Flag that instructs prometheus to ignore metric emission errors. | -| controller.metricsConfig.interval | string | `"30s"` | Frequency at which prometheus scrapes metrics | | controller.metricsConfig.metricRelabelings | list | `[]` | ServiceMonitor metric relabel configs to apply to samples before ingestion | | controller.metricsConfig.metricsTTL | string | `""` | How often custom metrics are cleared from memory | | controller.metricsConfig.path | string | `"/metrics"` | Path is the path where metrics are emitted. Must start with a "/". | @@ -197,9 +170,8 @@ Fields to note: | controller.nodeSelector | object | `{"kubernetes.io/os":"linux"}` | [Node selector] | | controller.parallelism | string | `nil` | parallelism dictates how many workflows can be running at the same time | | controller.pdb.enabled | bool | `false` | Configure [Pod Disruption Budget] for the controller pods | -| controller.persistence | object | `{}` | enable Workflow Archive to store the status of workflows. Postgres and MySQL (>= 5.7.8) are available. | +| controller.persistence | object | `{}` | enable persistence using postgres | | controller.podAnnotations | object | `{}` | podAnnotations is an optional map of annotations to be applied to the controller Pods | -| controller.podCleanupWorkers | string | `nil` | Number of pod cleanup workers | | controller.podGCDeleteDelayDuration | string | `5s` (Argo Workflows default) | The duration in seconds before the pods in the GC queue get deleted. A zero value indicates that the pods will be deleted immediately. | | controller.podGCGracePeriodSeconds | string | `30` seconds (Kubernetes default) | Specifies the duration in seconds before a terminating pod is forcefully killed. A zero value indicates that the pod will be forcefully terminated immediately. | | controller.podLabels | object | `{}` | Optional labels to add to the controller pods | @@ -213,7 +185,6 @@ Fields to note: | controller.resourceRateLimit | object | `{}` | Globally limits the rate at which pods are created. This is intended to mitigate flooding of the Kubernetes API server by workflows with a large amount of parallel nodes. | | controller.resources | object | `{}` | Resource limits and requests for the controller | | controller.retentionPolicy | object | `{}` | Workflow retention by number of workflows | -| controller.revisionHistoryLimit | int | `10` | The number of revisions to keep. | | controller.securityContext | object | `{"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"readOnlyRootFilesystem":true,"runAsNonRoot":true}` | the controller container's securityContext | | controller.serviceAccount.annotations | object | `{}` | Annotations applied to created service account | | controller.serviceAccount.create | bool | `true` | Create a service account for the controller | @@ -227,7 +198,6 @@ Fields to note: | controller.serviceType | string | `"ClusterIP"` | Service type of the controller Service | | controller.telemetryConfig.enabled | bool | `false` | Enables prometheus telemetry server | | controller.telemetryConfig.ignoreErrors | bool | `false` | Flag that instructs prometheus to ignore metric emission errors. | -| controller.telemetryConfig.interval | string | `"30s"` | Frequency at which prometheus scrapes telemetry data | | controller.telemetryConfig.metricsTTL | string | `""` | How often custom metrics are cleared from memory | | controller.telemetryConfig.path | string | `"/telemetry"` | telemetry path | | controller.telemetryConfig.port | int | `8081` | telemetry container port | @@ -239,10 +209,8 @@ Fields to note: | controller.volumeMounts | list | `[]` | Additional volume mounts to the controller main container | | 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.workflowEvents.enabled | bool | `true` | Enable to emit events on workflow status changes. | | 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.workflowTTLWorkers | string | `nil` | Number of workflow TTL workers | | controller.workflowWorkers | string | `nil` | Number of workflow workers | ### Workflow Main Container @@ -259,7 +227,6 @@ Fields to note: | Key | Type | Default | Description | |-----|------|---------|-------------| -| executor.args | list | `[]` | Passes arguments to the executor processes | | 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.registry | string | `"quay.io"` | Registry to use for the Workflow Executors | @@ -272,15 +239,7 @@ Fields to note: | Key | Type | Default | Description | |-----|------|---------|-------------| -| server.GKEbackendConfig.enabled | bool | `false` | Enable BackendConfig custom resource for Google Kubernetes Engine | -| server.GKEbackendConfig.spec | object | `{}` | [BackendConfigSpec] | -| server.GKEfrontendConfig.enabled | bool | `false` | Enable FrontConfig custom resource for Google Kubernetes Engine | -| server.GKEfrontendConfig.spec | object | `{}` | [FrontendConfigSpec] | -| server.GKEmanagedCertificate.domains | list | `["argoworkflows.example.com"]` | Domains for the Google Managed Certificate | -| server.GKEmanagedCertificate.enabled | bool | `false` | Enable ManagedCertificate custom resource for Google Kubernetes Engine. | | server.affinity | object | `{}` | Assign custom [affinity] rules | -| server.authMode | string | `""` | Deprecated; use server.authModes instead. | -| server.authModes | list | `[]` | A list of supported authentication modes. Available values are `server`, `client`, or `sso`. If you provide sso, please configure `.Values.server.sso` as well. | | server.autoscaling.behavior | object | `{}` | Configures the scaling behavior of the target in both Up and Down directions. This is only available on HPA apiVersion `autoscaling/v2beta2` and newer | | server.autoscaling.enabled | bool | `false` | Enable Horizontal Pod Autoscaler ([HPA]) for the Argo Server | | server.autoscaling.maxReplicas | int | `5` | Maximum number of replicas for the Argo Server [HPA] | @@ -292,11 +251,10 @@ Fields to note: | 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.enabled | bool | `true` | Deploy the Argo Server | -| server.extraArgs | list | `[]` | Extra arguments to provide to the Argo server binary. | +| server.extraArgs | list | `[]` | 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.extraEnv | list | `[]` | Extra environment variables to provide to the argo-server container | | server.extraInitContainers | list | `[]` | Enables init containers to be added to the server deployment | -| server.hostAliases | list | `[]` | Mapping between IP and hostnames that will be injected as entries in the pod's hosts files | | 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.tag | string | `""` | Image tag for the Argo Workflows server. Defaults to `.Values.images.tag`. | @@ -309,8 +267,6 @@ Fields to note: | server.ingress.pathType | string | `"Prefix"` | Ingress path type. One of `Exact`, `Prefix` or `ImplementationSpecific` | | server.ingress.paths | list | `["/"]` | List of ingress paths | | server.ingress.tls | list | `[]` | Ingress TLS configuration | -| server.lifecycle | object | `{}` | Specify postStart and preStop lifecycle hooks for server container | -| server.loadBalancerClass | string | `""` | The class of the load balancer implementation | | server.loadBalancerIP | string | `""` | Static IP address to assign to loadBalancer service type `LoadBalancer` | | server.loadBalancerSourceRanges | list | `[]` | Source ranges to allow access to service from. Only applies to service type `LoadBalancer` | | server.logging.format | string | `"text"` | Set the logging format (one of: `text`, `json`) | @@ -326,7 +282,6 @@ Fields to note: | server.rbac.create | bool | `true` | Adds Role and RoleBinding for the server. | | server.replicas | int | `1` | The number of server pods to run | | server.resources | object | `{}` | Resource limits and requests for the server | -| server.revisionHistoryLimit | int | `10` | The number of revisions to keep. | | server.secure | bool | `false` | Run the argo server in "secure" mode. Configure this value instead of `--secure` in extraArgs. | | server.securityContext | object | `{"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"readOnlyRootFilesystem":false,"runAsNonRoot":true}` | Servers container-level security context | | server.serviceAccount.annotations | object | `{}` | Annotations applied to created service account | @@ -339,24 +294,7 @@ Fields to note: | server.servicePort | int | `2746` | Service port for server | | server.servicePortName | string | `""` | Service port name | | server.serviceType | string | `"ClusterIP"` | Service type for server pods | -| server.sso.clientId.key | string | `"client-id"` | Key of secret to retrieve the app OIDC client ID | -| server.sso.clientId.name | string | `"argo-server-sso"` | Name of secret to retrieve the app OIDC client ID | -| server.sso.clientSecret.key | string | `"client-secret"` | Key of a secret to retrieve the app OIDC client secret | -| server.sso.clientSecret.name | string | `"argo-server-sso"` | Name of a secret to retrieve the app OIDC client secret | -| server.sso.customGroupClaimName | string | `""` | Override claim name for OIDC groups | -| server.sso.enabled | bool | `false` | Create SSO configuration. If you set `true` , please also set `.Values.server.authModes` as `sso`. | -| server.sso.filterGroupsRegex | list | `[]` | Filter the groups returned by the OIDC provider | -| server.sso.insecureSkipVerify | bool | `false` | Skip TLS verification for the HTTP client | -| server.sso.issuer | string | `"https://accounts.google.com"` | The root URL of the OIDC identity provider | -| server.sso.issuerAlias | string | `""` | Alternate root URLs that can be included for some OIDC providers | -| server.sso.rbac.enabled | bool | `true` | Adds ServiceAccount Policy to server (Cluster)Role. | -| server.sso.rbac.secretWhitelist | list | `[]` | Whitelist to allow server to fetch Secrets | -| server.sso.redirectUrl | string | `""` | The OIDC redirect URL. Should be in the form /oauth2/callback. | -| server.sso.scopes | list | `[]` | Scopes requested from the SSO ID provider | -| server.sso.sessionExpiry | string | `""` | Define how long your login is valid for (in hours) | -| server.sso.userInfoPath | string | `""` | Specify the user info endpoint that contains the groups claim | -| server.terminationGracePeriodSeconds | int | `30` | terminationGracePeriodSeconds for container lifecycle hook | -| server.tmpVolume | object | `{"emptyDir":{}}` | Volume to be mounted in Pods for temporary files. | +| server.sso | object | `{}` | SSO configuration when SSO is specified as a server auth mode. | | server.tolerations | list | `[]` | [Tolerations] for use with node taints | | server.topologySpreadConstraints | list | `[]` | Assign custom [TopologySpreadConstraints] rules to the argo server | | server.volumeMounts | list | `[]` | Additional volume mounts to the server main container. | @@ -370,7 +308,6 @@ Fields to note: | artifactRepository.azure | object | `{}` (See [values.yaml]) | Store artifact in Azure Blob Storage | | artifactRepository.gcs | object | `{}` (See [values.yaml]) | Store artifact in a GCS object store | | artifactRepository.s3 | object | See [values.yaml] | Store artifact in a S3-compliant object store | -| artifactRepositoryRef | object | `{}` (See [values.yaml]) | The section of [artifact repository ref](https://argo-workflows.readthedocs.io/en/stable/artifact-repository-ref/). Each map key is the name of configmap | | customArtifactRepository | object | `{}` | The section of custom artifact repository. Utilize a custom artifact repository that is not one of the current base ones (s3, gcs, azure) | | useStaticCredentials | bool | `true` | Use static credentials for S3 (eg. when not using AWS IRSA) | @@ -395,10 +332,7 @@ Fields to note: 1. moved the field previously known as `telemetryServicePort` inside the `telemetryConfig` as `telemetryConfig.servicePort` - same for `metricsConfig` [affinity]: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ -[BackendConfigSpec]: https://cloud.google.com/kubernetes-engine/docs/concepts/backendconfig#backendconfigspec_v1beta1_cloudgooglecom -[FrontendConfigSpec]: https://cloud.google.com/kubernetes-engine/docs/how-to/ingress-features#configuring_ingress_features_through_frontendconfig_parameters -[links]: https://argo-workflows.readthedocs.io/en/stable/links/ -[columns]: https://github.com/argoproj/argo-workflows/pull/10693 +[links]: https://argoproj.github.io/argo-workflows/links/ [Node selector]: https://kubernetes.io/docs/user-guide/node-selection/ [Pod Disruption Budget]: https://kubernetes.io/docs/tasks/run-application/configure-pdb/ [probe]: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes @@ -406,5 +340,3 @@ Fields to note: [TopologySpreadConstraints]: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/ [values.yaml]: values.yaml [changelog]: https://artifacthub.io/packages/helm/argo/argo-workflows?modal=changelog -[SSO RBAC]: https://argo-workflows.readthedocs.io/en/stable/argo-server-sso/ -[Argo Server Auth Mode]: https://argo-workflows.readthedocs.io/en/stable/argo-server-auth-mode/ diff --git a/charts/argo-workflows/README.md.gotmpl b/charts/argo-workflows/README.md.gotmpl index 69838b5a..398a8788 100644 --- a/charts/argo-workflows/README.md.gotmpl +++ b/charts/argo-workflows/README.md.gotmpl @@ -75,22 +75,13 @@ For full list of changes, please check ArtifactHub [changelog]. ## Usage Notes -### High Availability - -This chart installs the non-HA version of Argo Workflows by default. If you want to run in HA mode, you can use [these example values](ci/ha-values.yaml) as a starting point. -Please see the upstream [Operator Manual's High Availability page](https://argo-workflows.readthedocs.io/en/stable/high-availability/) to understand how to scale Argo Workflows in depth. - ### Workflow controller This chart defaults to setting the `controller.instanceID.enabled` to `false` now, which means the deployed controller will act upon any workflow deployed to the cluster. If you would like to limit the behavior and deploy multiple workflow controllers, please use the `controller.instanceID.enabled` attribute along with one of its configuration options to set the `instanceID` of the workflow controller to be properly scoped for your needs. -### Argo Workflows server authentication - -Argo Workflows server provides some choices for authentication mechanism and you can configure `.Values.server.authModes`. By default, authentication mode is `[server]`, for local development purposes or cases where your gateway authentication is covered by some other means. -Please refer to [Argo Server Auth Mode] for more details. - -Argo Workflows server also supports SSO and you can enable it to configure `.Values.server.sso` and `.Values.server.authModes`. In order to manage access levels, you can optionally add RBAC to SSO. Please refer to [SSO RBAC] for more details. +### Workflow server authentication +By default, the chart requires some kind of authentication mechanism. This adopts the [default behaviour from the Argo project](https://github.com/argoproj/argo-workflows/pull/5211) itself. However, for local development purposes, or cases where your gateway authentication is covered by some other means, you can set the authentication mode for the Argo server by setting the `server.extraArgs: [--auth-mode=server]`. There are a few additional comments in the values.yaml file itself, including commented-out settings to disable authentication on the server UI itself using the same `--auth-mode=server` setting. ## Values @@ -197,10 +188,7 @@ Fields to note: 1. moved the field previously known as `telemetryServicePort` inside the `telemetryConfig` as `telemetryConfig.servicePort` - same for `metricsConfig` [affinity]: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ -[BackendConfigSpec]: https://cloud.google.com/kubernetes-engine/docs/concepts/backendconfig#backendconfigspec_v1beta1_cloudgooglecom -[FrontendConfigSpec]: https://cloud.google.com/kubernetes-engine/docs/how-to/ingress-features#configuring_ingress_features_through_frontendconfig_parameters -[links]: https://argo-workflows.readthedocs.io/en/stable/links/ -[columns]: https://github.com/argoproj/argo-workflows/pull/10693 +[links]: https://argoproj.github.io/argo-workflows/links/ [Node selector]: https://kubernetes.io/docs/user-guide/node-selection/ [Pod Disruption Budget]: https://kubernetes.io/docs/tasks/run-application/configure-pdb/ [probe]: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes @@ -208,5 +196,3 @@ Fields to note: [TopologySpreadConstraints]: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/ [values.yaml]: values.yaml [changelog]: https://artifacthub.io/packages/helm/argo/argo-workflows?modal=changelog -[SSO RBAC]: https://argo-workflows.readthedocs.io/en/stable/argo-server-sso/ -[Argo Server Auth Mode]: https://argo-workflows.readthedocs.io/en/stable/argo-server-auth-mode/ diff --git a/charts/argo-workflows/ci/enable-artifact-repo-ref.yaml b/charts/argo-workflows/ci/enable-artifact-repo-ref.yaml deleted file mode 100644 index 54c6c523..00000000 --- a/charts/argo-workflows/ci/enable-artifact-repo-ref.yaml +++ /dev/null @@ -1,41 +0,0 @@ -artifactRepositoryRef: - # 1st ConfigMap - artifact-repositories: - annotations: - workflows.argoproj.io/default-artifact-repository: default-v1-s3-artifact-repository - # 1st data - default-v1-s3-artifact-repository: - archiveLogs: true - s3: - bucket: my-bucket - endpoint: minio:9000 - insecure: true - accessKeySecret: - name: my-minio-cred - key: accesskey - secretKeySecret: - name: my-minio-cred - key: secretkey - # 2nd data - oss-artifact-repository: - archiveLogs: false - oss: - endpoint: http://oss-cn-zhangjiakou-internal.aliyuncs.com - bucket: $mybucket - accessKeySecret: - name: $mybucket-credentials - key: accessKey - secretKeySecret: - name: $mybucket-credentials - key: secretKey - # 2nd ConfigMap - another-artifact-repositories: - annotations: - workflows.argoproj.io/default-artifact-repository: gcs - gcs: - archiveLogs: false - bucket: my-bucket - keyFormat: prefix/in/bucket/{{workflow.name}}/{{pod.name}} - serviceAccountKeySecret: - name: my-gcs-credentials - key: serviceAccountKey diff --git a/charts/argo-workflows/ci/enable-artifact-repo-values.yaml b/charts/argo-workflows/ci/enable-artifact-repo-values.yaml deleted file mode 100644 index c20a5775..00000000 --- a/charts/argo-workflows/ci/enable-artifact-repo-values.yaml +++ /dev/null @@ -1,46 +0,0 @@ -# Test with artifact repository -crds: - keep: false - -useStaticCredentials: true -artifactRepository: - archiveLogs: false - s3: - accessKeySecret: - name: "{{ .Release.Name }}-minio" - key: accesskey - secretKeySecret: - name: "{{ .Release.Name }}-minio" - key: secretkey - insecure: false - bucket: - endpoint: - region: - roleARN: - useSDKCreds: true - encryptionOptions: - enableEncryption: true - gcs: - bucket: project-argo - keyFormat: "{{ `{{workflow.namespace}}/{{workflow.name}}/{{pod.name}}` }}" - serviceAccountKeySecret: - name: my-gcs-credentials - key: serviceAccountKey - azure: - endpoint: https://mystorageaccountname.blob.core.windows.net - container: my-container-name - blobNameFormat: path/in/container - useSDKCreds: true - accountKeySecret: - name: my-azure-storage-credentials - key: account-access-key - -customArtifactRepository: - artifactory: - repoUrl: https://artifactory.example.com/raw - usernameSecret: - name: artifactory-creds - key: username - passwordSecret: - name: artifactory-creds - key: password diff --git a/charts/argo-workflows/ci/enable-ingress-values.yaml b/charts/argo-workflows/ci/enable-ingress-values.yaml index bfcc37c3..05dae886 100644 --- a/charts/argo-workflows/ci/enable-ingress-values.yaml +++ b/charts/argo-workflows/ci/enable-ingress-values.yaml @@ -5,4 +5,4 @@ server: ingress: enabled: true hosts: - - argo-workflows.example.com + - argo-workflows.127.0.0.1.xip.io diff --git a/charts/argo-workflows/ci/ha-values.yaml b/charts/argo-workflows/ci/ha-values.yaml deleted file mode 100644 index 2f495169..00000000 --- a/charts/argo-workflows/ci/ha-values.yaml +++ /dev/null @@ -1,23 +0,0 @@ -# Sample values for High Availability configuration, following https://argo-workflows.readthedocs.io/en/stable/high-availability/ - -controller: - # in v3.0+, a second controller can be ran as a hot-standby: https://argo-workflows.readthedocs.io/en/stable/high-availability/#workflow-controller - replicas: 2 # should be strictly greater than PDB minAvailable - # enable PDB with at least one Pod - pdb: - # -- Configure [Pod Disruption Budget] for the controller pods - enabled: true - minAvailable: 1 - -server: - # enable HPA with at least two Pods - autoscaling: - # -- Enable Horizontal Pod Autoscaler ([HPA]) for the Argo Server - enabled: true - # -- Minimum number of replicas for the Argo Server [HPA] - minReplicas: 2 # should be strictly greater than PDB minAvailable - # enable PDB with at least one Pod - pdb: - # -- Configure [Pod Disruption Budget] for the controller pods - enabled: true - minAvailable: 1 diff --git a/charts/argo-workflows/templates/NOTES.txt b/charts/argo-workflows/templates/NOTES.txt index 43c1c8f8..b4933a7d 100644 --- a/charts/argo-workflows/templates/NOTES.txt +++ b/charts/argo-workflows/templates/NOTES.txt @@ -1,7 +1,3 @@ -{{- if .Values.server.authMode }} -DEPRECATED option server.authMode - Use server.authModes -{{- end }} - 1. Get Argo Server external IP/domain by running: kubectl --namespace {{ .Release.Namespace }} get services -o wide | grep {{ template "argo-workflows.server.fullname" . }} diff --git a/charts/argo-workflows/templates/_helpers.tpl b/charts/argo-workflows/templates/_helpers.tpl index ebbba978..2fbcc708 100644 --- a/charts/argo-workflows/templates/_helpers.tpl +++ b/charts/argo-workflows/templates/_helpers.tpl @@ -79,9 +79,6 @@ helm.sh/chart: {{ include "argo-workflows.chart" .context }} {{ include "argo-workflows.selectorLabels" (dict "context" .context "component" .component "name" .name) }} app.kubernetes.io/managed-by: {{ .context.Release.Service }} app.kubernetes.io/part-of: argo-workflows -{{- with .context.Values.commonLabels }} -{{ toYaml .}} -{{- end }} {{- end }} {{/* @@ -94,17 +91,9 @@ app.kubernetes.io/name: {{ include "argo-workflows.name" .context }}-{{ .name }} app.kubernetes.io/instance: {{ .context.Release.Name }} {{- if .component }} app.kubernetes.io/component: {{ .component }} -app: {{ .component }} {{- end }} {{- end }} -{{/* -Create the name of the controller configMap -*/}} -{{- define "argo-workflows.controller.config-map.name" -}} -{{- .Values.controller.configMap.name | default (printf "%s-%s" (include "argo-workflows.controller.fullname" .) "configmap") | trunc 63 | trimSuffix "-" -}} -{{- end -}} - {{/* Create the name of the server service account to use */}} @@ -171,41 +160,9 @@ Return the appropriate apiVersion for autoscaling {{- define "argo-workflows.apiVersion.autoscaling" -}} {{- if .Values.apiVersionOverrides.autoscaling -}} {{- print .Values.apiVersionOverrides.autoscaling -}} -{{- else if semverCompare "<1.23-0" (include "argo-workflows.kubeVersion" .) -}} +{{- else if semverCompare "<1.23-0" (include "argo-cd.kubeVersion" .) -}} {{- print "autoscaling/v2beta1" -}} {{- else -}} {{- print "autoscaling/v2" -}} {{- end -}} {{- end -}} - -{{/* -Return the appropriate apiVersion for GKE resources -*/}} -{{- define "argo-workflows.apiVersions.cloudgoogle" -}} -{{- if .Values.apiVersionOverrides.cloudgoogle -}} -{{- print .Values.apiVersionOverrides.cloudgoogle -}} -{{- else if .Capabilities.APIVersions.Has "cloud.google.com/v1" -}} -{{- print "cloud.google.com/v1" -}} -{{- else -}} -{{- print "cloud.google.com/v1beta1" -}} -{{- end -}} -{{- end -}} - -{{/* -Return the appropriate apiVersion for monitoring CRDs -*/}} -{{- define "argo-workflows.apiVersions.monitoring" -}} -{{- if .Values.apiVersionOverrides.monitoring -}} -{{- print .Values.apiVersionOverrides.monitoring -}} -{{- else -}} -{{- print "monitoring.coreos.com/v1" -}} -{{- end -}} -{{- end -}} - -{{/* -Expand the namespace of the release. -Allows overriding it for multi-namespace deployments in combined charts. -*/}} -{{- define "argo-workflows.namespace" -}} -{{- default .Release.Namespace .Values.namespaceOverride | trunc 63 | trimSuffix "-" -}} -{{- end }} diff --git a/charts/argo-workflows/templates/controller/agent-rb.yaml b/charts/argo-workflows/templates/controller/agent-rb.yaml deleted file mode 100644 index 67e49955..00000000 --- a/charts/argo-workflows/templates/controller/agent-rb.yaml +++ /dev/null @@ -1,29 +0,0 @@ -{{- if .Values.workflow.rbac.agentPermissions -}} - {{- range $namespace := or .Values.singleNamespace false | ternary (list "") (append .Values.controller.workflowNamespaces (coalesce .Values.workflow.namespace (include "argo-workflows.namespace" .)) | uniq) }} ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: {{ template "argo-workflows.fullname" $ }}-workflow-agent - labels: - {{- include "argo-workflows.labels" (dict "context" $ "component" $.Values.controller.name "name" $.Values.controller.name) | nindent 4 }} - {{- with $namespace }} - namespace: {{ . }} - {{- end }} -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: {{ template "argo-workflows.fullname" $ }}-workflow-agent -subjects: - - kind: ServiceAccount - name: {{ $.Values.workflow.serviceAccount.name }} - {{- with $namespace }} - namespace: {{ . }} - {{- end }} - {{- range $.Values.workflow.rbac.serviceAccounts }} - - kind: ServiceAccount - name: {{ .name }} - namespace: {{ .namespace | quote }} - {{- end }} - {{- end }} -{{- end }} diff --git a/charts/argo-workflows/templates/controller/agent-role.yaml b/charts/argo-workflows/templates/controller/agent-role.yaml deleted file mode 100644 index 577567b2..00000000 --- a/charts/argo-workflows/templates/controller/agent-role.yaml +++ /dev/null @@ -1,29 +0,0 @@ -{{- if .Values.workflow.rbac.agentPermissions -}} - {{- range $namespace := or .Values.singleNamespace false | ternary (list "") (append .Values.controller.workflowNamespaces (coalesce .Values.workflow.namespace (include "argo-workflows.namespace" .)) | uniq) }} ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: {{ template "argo-workflows.fullname" $ }}-workflow-agent - labels: - {{- include "argo-workflows.labels" (dict "context" $ "component" $.Values.controller.name "name" $.Values.controller.name) | nindent 4 }} - {{- with $namespace }} - namespace: {{ . }} - {{- end }} -rules: - - apiGroups: - - argoproj.io - resources: - - workflowtasksets - verbs: - - list - - watch - - apiGroups: - - argoproj.io - resources: - - workflowtasksets/status - verbs: - - patch - {{- end }} - -{{- end }} diff --git a/charts/argo-workflows/templates/controller/artifact-gc-rb.yaml b/charts/argo-workflows/templates/controller/artifact-gc-rb.yaml deleted file mode 100644 index 279b2c50..00000000 --- a/charts/argo-workflows/templates/controller/artifact-gc-rb.yaml +++ /dev/null @@ -1,29 +0,0 @@ -{{- if .Values.workflow.rbac.artifactGC -}} - {{- range $namespace := or .Values.singleNamespace false | ternary (list "") (append .Values.controller.workflowNamespaces (coalesce .Values.workflow.namespace (include "argo-workflows.namespace" .)) | uniq) }} ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: {{ template "argo-workflows.fullname" $ }}-wf-artifactgc - labels: - {{- include "argo-workflows.labels" (dict "context" $ "component" $.Values.controller.name "name" $.Values.controller.name) | nindent 4 }} - {{- with $namespace }} - namespace: {{ . }} - {{- end }} -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: {{ template "argo-workflows.fullname" $ }}-wf-artifactgc -subjects: - - kind: ServiceAccount - name: {{ $.Values.workflow.serviceAccount.name }} - {{- with $namespace }} - namespace: {{ . }} - {{- end }} - {{- range $.Values.workflow.rbac.serviceAccounts }} - - kind: ServiceAccount - name: {{ .name }} - namespace: {{ .namespace | quote }} - {{- end }} - {{- end }} -{{- end }} diff --git a/charts/argo-workflows/templates/controller/artifact-gc-role.yaml b/charts/argo-workflows/templates/controller/artifact-gc-role.yaml deleted file mode 100644 index 48218b83..00000000 --- a/charts/argo-workflows/templates/controller/artifact-gc-role.yaml +++ /dev/null @@ -1,29 +0,0 @@ -{{- if .Values.workflow.rbac.artifactGC -}} - {{- range $namespace := or .Values.singleNamespace false | ternary (list "") (append .Values.controller.workflowNamespaces (coalesce .Values.workflow.namespace (include "argo-workflows.namespace" .)) | uniq) }} ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: {{ template "argo-workflows.fullname" $ }}-wf-artifactgc - labels: - {{- include "argo-workflows.labels" (dict "context" $ "component" $.Values.controller.name "name" $.Values.controller.name) | nindent 4 }} - {{- with $namespace }} - namespace: {{ . }} - {{- end }} -rules: - - apiGroups: - - argoproj.io - resources: - - workflowartifactgctasks - verbs: - - list - - watch - - apiGroups: - - argoproj.io - resources: - - workflowartifactgctasks/status - verbs: - - patch - {{- end }} - -{{- end }} diff --git a/charts/argo-workflows/templates/controller/artifact-repository-ref-cm.yaml b/charts/argo-workflows/templates/controller/artifact-repository-ref-cm.yaml deleted file mode 100644 index 81c1d0a7..00000000 --- a/charts/argo-workflows/templates/controller/artifact-repository-ref-cm.yaml +++ /dev/null @@ -1,19 +0,0 @@ -{{- range $cm_name, $cm_val := .Values.artifactRepositoryRef }} ---- -apiVersion: v1 -kind: ConfigMap -metadata: - name: {{ $cm_name }} - namespace: {{ include "argo-workflows.namespace" $ | quote }} - labels: - {{- include "argo-workflows.labels" (dict "context" $ "component" $.Values.controller.name "name" $cm_name) | nindent 4 }} - {{- with $cm_val.annotations }} - annotations: - {{- toYaml . | nindent 4 }} - {{- end }} -data: - {{- range $data_key, $data_val := (omit $cm_val "annotations") }} - {{- $data_key | nindent 2 }}: | - {{- toYaml $data_val | nindent 4 }} - {{- end }} -{{- end }} diff --git a/charts/argo-workflows/templates/controller/workflow-aggregate-roles.yaml b/charts/argo-workflows/templates/controller/workflow-aggregate-roles.yaml index 2a407b1b..977bb86b 100644 --- a/charts/argo-workflows/templates/controller/workflow-aggregate-roles.yaml +++ b/charts/argo-workflows/templates/controller/workflow-aggregate-roles.yaml @@ -20,12 +20,6 @@ rules: - cronworkflows/finalizers - clusterworkflowtemplates - clusterworkflowtemplates/finalizers - - workflowtasksets - - workflowtasksets/finalizers - - workflowtaskresults - - workflowtaskresults/finalizers - - workflowartifactgctasks - - workflowartifactgctasks/finalizers verbs: - get - list @@ -52,12 +46,6 @@ rules: - cronworkflows/finalizers - clusterworkflowtemplates - clusterworkflowtemplates/finalizers - - workflowtasksets - - workflowtasksets/finalizers - - workflowtaskresults - - workflowtaskresults/finalizers - - workflowartifactgctasks - - workflowartifactgctasks/finalizers verbs: - create - delete @@ -83,18 +71,14 @@ rules: - workflows/finalizers - workfloweventbindings - workfloweventbindings/finalizers + - workflowtasksets + - workflowtasksets/finalizers - workflowtemplates - workflowtemplates/finalizers - cronworkflows - cronworkflows/finalizers - clusterworkflowtemplates - clusterworkflowtemplates/finalizers - - workflowtasksets - - workflowtasksets/finalizers - - workflowtaskresults - - workflowtaskresults/finalizers - - workflowartifactgctasks - - workflowartifactgctasks/finalizers verbs: - create - delete diff --git a/charts/argo-workflows/templates/controller/workflow-controller-cluster-roles.yaml b/charts/argo-workflows/templates/controller/workflow-controller-cluster-roles.yaml index 1e8f764c..c2d2a771 100644 --- a/charts/argo-workflows/templates/controller/workflow-controller-cluster-roles.yaml +++ b/charts/argo-workflows/templates/controller/workflow-controller-cluster-roles.yaml @@ -8,7 +8,7 @@ kind: ClusterRole metadata: name: {{ template "argo-workflows.controller.fullname" . }} {{- if .Values.singleNamespace }} - namespace: {{ include "argo-workflows.namespace" . | quote }} + namespace: {{ .Release.Namespace | quote }} {{- end }} labels: {{- include "argo-workflows.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 4 }} @@ -198,7 +198,7 @@ rules: - watch {{- end }} -{{- if and .Values.controller.clusterWorkflowTemplates.enabled (not .Values.singleNamespace) }} +{{- if .Values.controller.clusterWorkflowTemplates.enabled }} --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole diff --git a/charts/argo-workflows/templates/controller/workflow-controller-config-map.yaml b/charts/argo-workflows/templates/controller/workflow-controller-config-map.yaml index 49616768..55720eb2 100644 --- a/charts/argo-workflows/templates/controller/workflow-controller-config-map.yaml +++ b/charts/argo-workflows/templates/controller/workflow-controller-config-map.yaml @@ -1,15 +1,10 @@ -{{- if .Values.controller.configMap.create }} apiVersion: v1 kind: ConfigMap metadata: - name: {{ template "argo-workflows.controller.config-map.name" . }} - namespace: {{ include "argo-workflows.namespace" . | quote }} + name: {{ template "argo-workflows.controller.fullname" . }}-configmap + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-workflows.labels" (dict "context" . "component" .Values.controller.name "name" "cm") | nindent 4 }} - {{- with .Values.controller.configMap.annotations }} - annotations: - {{- toYaml . | nindent 4 }} - {{- end }} data: config: | {{- if .Values.controller.instanceID.enabled }} @@ -23,7 +18,7 @@ data: parallelism: {{ .Values.controller.parallelism }} {{- end }} {{- if .Values.controller.resourceRateLimit }} - resourceRateLimit: {{- toYaml .Values.controller.resourceRateLimit | nindent 6 }} + resourceRateLimit: {{ toYaml .Values.controller.resourceRateLimit | nindent 6 }} {{- end }} {{- with .Values.controller.namespaceParallelism }} namespaceParallelism: {{ . }} @@ -47,15 +42,12 @@ data: securityContext: {{- toYaml . | nindent 8 }} {{- end }} {{- end }} - {{- if or .Values.executor.resources .Values.executor.env .Values.executor.args .Values.executor.securityContext}} + {{- if or .Values.executor.resources .Values.executor.env .Values.executor.securityContext}} executor: imagePullPolicy: {{ default (.Values.images.pullPolicy) .Values.executor.image.pullPolicy }} {{- with .Values.executor.resources }} resources: {{- toYaml . | nindent 8 }} {{- end }} - {{- with .Values.executor.args }} - args: {{- toYaml . | nindent 8 }} - {{- end }} {{- with .Values.executor.env }} env: {{- toYaml . | nindent 8 }} {{- end }} @@ -63,45 +55,34 @@ data: securityContext: {{- toYaml . | nindent 8 }} {{- end }} {{- end }} - {{- if or .Values.artifactRepository.s3 .Values.artifactRepository.gcs .Values.artifactRepository.azure .Values.customArtifactRepository }} artifactRepository: {{- if .Values.artifactRepository.archiveLogs }} archiveLogs: {{ .Values.artifactRepository.archiveLogs }} {{- end }} {{- with .Values.artifactRepository.gcs }} - gcs: {{- tpl (toYaml .) $ | nindent 8 }} + gcs: {{- toYaml . | nindent 8 }} {{- end }} {{- with .Values.artifactRepository.azure }} - azure: {{- tpl (toYaml .) $ | nindent 8 }} + azure: {{- toYaml . | nindent 8 }} {{- end }} - {{- if .Values.artifactRepository.s3 }} + {{- if and (not .Values.artifactRepository.gcs) (not .Values.artifactRepository.azure) }} s3: {{- if .Values.useStaticCredentials }} accessKeySecret: - key: {{ tpl .Values.artifactRepository.s3.accessKeySecret.key . }} - name: {{ tpl .Values.artifactRepository.s3.accessKeySecret.name . }} + key: {{ .Values.artifactRepository.s3.accessKeySecret.key }} + name: {{ .Values.artifactRepository.s3.accessKeySecret.name }} secretKeySecret: - key: {{ tpl .Values.artifactRepository.s3.secretKeySecret.key . }} - name: {{ tpl .Values.artifactRepository.s3.secretKeySecret.name . }} - {{- if .Values.artifactRepository.s3.sessionTokenSecret }} - sessionTokenSecret: - key: {{ tpl .Values.artifactRepository.s3.sessionTokenSecret.key . }} - name: {{ tpl .Values.artifactRepository.s3.sessionTokenSecret.name . }} + key: {{ .Values.artifactRepository.s3.secretKeySecret.key }} + name: {{ .Values.artifactRepository.s3.secretKeySecret.name }} {{- end }} - {{- end }} - bucket: {{ tpl (.Values.artifactRepository.s3.bucket | default "") . }} - endpoint: {{ tpl (.Values.artifactRepository.s3.endpoint | default "") . }} + bucket: {{ .Values.artifactRepository.s3.bucket }} + endpoint: {{ .Values.artifactRepository.s3.endpoint }} insecure: {{ .Values.artifactRepository.s3.insecure }} - {{- if .Values.artifactRepository.s3.caSecret }} - caSecret: - name: {{ tpl .Values.artifactRepository.s3.caSecret.name . }} - key: {{ tpl .Values.artifactRepository.s3.caSecret.key . }} - {{- end }} {{- if .Values.artifactRepository.s3.keyFormat }} keyFormat: {{ .Values.artifactRepository.s3.keyFormat | quote }} {{- end }} {{- if .Values.artifactRepository.s3.region }} - region: {{ tpl .Values.artifactRepository.s3.region $ }} + region: {{ .Values.artifactRepository.s3.region }} {{- end }} {{- if .Values.artifactRepository.s3.roleARN }} roleARN: {{ .Values.artifactRepository.s3.roleARN }} @@ -114,9 +95,8 @@ data: {{- toYaml . | nindent 10 }} {{- end }} {{- end }} - {{- if .Values.customArtifactRepository }} - {{- toYaml .Values.customArtifactRepository | nindent 6 }} - {{- end }} + {{- if .Values.customArtifactRepository }} + {{- toYaml .Values.customArtifactRepository | nindent 6 }} {{- end }} {{- if .Values.controller.metricsConfig.enabled }} metricsConfig: @@ -146,38 +126,37 @@ data: {{- if .Values.controller.workflowDefaults }} workflowDefaults: {{ toYaml .Values.controller.workflowDefaults | indent 6 }}{{- end }} - {{- if .Values.server.sso.enabled }} + {{- with .Values.server.sso }} sso: - issuer: {{ .Values.server.sso.issuer }} + issuer: {{ .issuer }} clientId: - name: {{ .Values.server.sso.clientId.name }} - key: {{ .Values.server.sso.clientId.key }} + name: {{ .clientId.name }} + key: {{ .clientId.key }} clientSecret: - name: {{ .Values.server.sso.clientSecret.name }} - key: {{ .Values.server.sso.clientSecret.key }} - redirectUrl: {{ .Values.server.sso.redirectUrl | quote }} + name: {{ .clientSecret.name }} + key: {{ .clientSecret.key }} + redirectUrl: {{ .redirectUrl }} + {{- with .rbac }} rbac: - enabled: {{ .Values.server.sso.rbac.enabled }} - {{- with .Values.server.sso.scopes }} - scopes: {{- toYaml . | nindent 8 }} + enabled: {{ .enabled }} {{- end }} - {{- with .Values.server.sso.issuerAlias }} - issuerAlias: {{ toYaml . }} + {{- if .scopes }} + scopes: {{ toYaml .scopes | nindent 8 }} {{- end }} - {{- with .Values.server.sso.sessionExpiry }} - sessionExpiry: {{ toYaml . }} + {{- if .issuerAlias }} + issuerAlias: {{ .issuerAlias }} {{- end }} - {{- with .Values.server.sso.customGroupClaimName }} - customGroupClaimName: {{ toYaml . }} + {{- if .sessionExpiry }} + sessionExpiry: {{ .sessionExpiry }} {{- end }} - {{- with .Values.server.sso.userInfoPath }} - userInfoPath: {{ toYaml . }} + {{- if .customGroupClaimName }} + customGroupClaimName: {{ .customGroupClaimName }} {{- end }} - {{- with .Values.server.sso.insecureSkipVerify }} - insecureSkipVerify: {{ toYaml . }} + {{- if .userInfoPath }} + userInfoPath: {{ .userInfoPath }} {{- end }} - {{- with .Values.server.sso.filterGroupsRegex }} - filterGroupsRegex: {{- toYaml . | nindent 8 }} + {{- if .insecureSkipVerify }} + insecureSkipVerify: {{ .insecureSkipVerify }} {{- end }} {{- end }} {{- with .Values.controller.workflowRestrictions }} @@ -186,9 +165,6 @@ data: {{- with .Values.controller.links }} links: {{- toYaml . | nindent 6 }} {{- end }} - {{- with .Values.controller.columns }} - columns: {{- toYaml . | nindent 6 }} - {{- end }} {{- with .Values.controller.navColor }} navColor: {{ . }} {{- end }} @@ -200,8 +176,6 @@ data: {{- end }} nodeEvents: enabled: {{ .Values.controller.nodeEvents.enabled }} - workflowEvents: - enabled: {{ .Values.controller.workflowEvents.enabled }} {{- with .Values.controller.kubeConfig }} kubeConfig: {{- toYaml . | nindent 6 }} {{- end }} @@ -211,4 +185,3 @@ data: {{- with .Values.controller.podGCDeleteDelayDuration }} podGCDeleteDelayDuration: {{ . }} {{- end }} -{{- end }} diff --git a/charts/argo-workflows/templates/controller/workflow-controller-crb.yaml b/charts/argo-workflows/templates/controller/workflow-controller-crb.yaml index 93e0557b..9fa7a7f6 100644 --- a/charts/argo-workflows/templates/controller/workflow-controller-crb.yaml +++ b/charts/argo-workflows/templates/controller/workflow-controller-crb.yaml @@ -8,7 +8,7 @@ kind: ClusterRoleBinding metadata: name: {{ template "argo-workflows.controller.fullname" . }} {{- if .Values.singleNamespace }} - namespace: {{ include "argo-workflows.namespace" . | quote }} + namespace: {{ .Release.Namespace | quote }} {{- end }} labels: {{- include "argo-workflows.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 4 }} @@ -23,7 +23,7 @@ roleRef: subjects: - kind: ServiceAccount name: {{ template "argo-workflows.controllerServiceAccountName" . }} - namespace: {{ include "argo-workflows.namespace" . | quote }} + namespace: {{ .Release.Namespace | quote }} {{- if .Values.controller.clusterWorkflowTemplates.enabled }} --- @@ -40,11 +40,6 @@ roleRef: subjects: - kind: ServiceAccount name: {{ template "argo-workflows.controllerServiceAccountName" . }} - namespace: {{ include "argo-workflows.namespace" . | quote }} -{{- range .Values.controller.clusterWorkflowTemplates.serviceAccounts }} - - kind: ServiceAccount - name: {{ .name }} - namespace: {{ .namespace | quote }} -{{- end }} + namespace: {{ .Release.Namespace | quote }} {{- end }} {{- end }} diff --git a/charts/argo-workflows/templates/controller/workflow-controller-deployment-pdb.yaml b/charts/argo-workflows/templates/controller/workflow-controller-deployment-pdb.yaml index bee7c199..ee38445f 100644 --- a/charts/argo-workflows/templates/controller/workflow-controller-deployment-pdb.yaml +++ b/charts/argo-workflows/templates/controller/workflow-controller-deployment-pdb.yaml @@ -3,7 +3,7 @@ apiVersion: policy/v1 kind: PodDisruptionBudget metadata: name: {{ template "argo-workflows.controller.fullname" . }} - namespace: {{ include "argo-workflows.namespace" . | quote }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-workflows.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 4 }} spec: diff --git a/charts/argo-workflows/templates/controller/workflow-controller-deployment.yaml b/charts/argo-workflows/templates/controller/workflow-controller-deployment.yaml index b3db5f4e..4ee117b8 100644 --- a/charts/argo-workflows/templates/controller/workflow-controller-deployment.yaml +++ b/charts/argo-workflows/templates/controller/workflow-controller-deployment.yaml @@ -2,7 +2,7 @@ apiVersion: apps/v1 kind: Deployment metadata: name: {{ template "argo-workflows.controller.fullname" . }} - namespace: {{ include "argo-workflows.namespace" . | quote }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-workflows.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 4 }} app.kubernetes.io/version: {{ include "argo-workflows.controller_chart_version_label" . }} @@ -12,7 +12,6 @@ metadata: {{- end }} spec: replicas: {{ .Values.controller.replicas }} - revisionHistoryLimit: {{ .Values.controller.revisionHistoryLimit }} selector: matchLabels: {{- include "argo-workflows.selectorLabels" (dict "context" . "name" .Values.controller.name) | nindent 6 }} @@ -36,7 +35,7 @@ spec: {{- end }} {{- with .Values.controller.extraInitContainers }} initContainers: - {{- tpl (toYaml .) $ | nindent 8 }} + {{- toYaml . | nindent 8 }} {{- end }} containers: - name: controller @@ -45,7 +44,7 @@ spec: command: [ "workflow-controller" ] args: - "--configmap" - - "{{ template "argo-workflows.controller.config-map.name" . }}" + - "{{ template "argo-workflows.controller.fullname" . }}-configmap" - "--executor-image" - "{{- include "argo-workflows.image" (dict "context" . "image" .Values.executor.image) }}:{{ default (include "argo-workflows.defaultTag" .) .Values.executor.image.tag }}" - "--loglevel" @@ -61,18 +60,6 @@ spec: - "--workflow-workers" - {{ . | quote }} {{- end }} - {{- with .Values.controller.workflowTTLWorkers }} - - "--workflow-ttl-workers" - - {{ . | quote }} - {{- end }} - {{- with .Values.controller.podCleanupWorkers }} - - "--pod-cleanup-workers" - - {{ . | quote }} - {{- end }} - {{- with .Values.controller.cronWorkflowWorkers }} - - "--cron-workflow-workers" - - {{ . | quote }} - {{- end }} {{- with .Values.controller.extraArgs }} {{- toYaml . | nindent 10 }} {{- end }} @@ -89,10 +76,6 @@ spec: fieldRef: apiVersion: v1 fieldPath: metadata.name - {{- if eq (int .Values.controller.replicas) 1 }} - - name: LEADER_ELECTION_DISABLE - value: "true" - {{- end }} {{- with .Values.controller.extraEnv }} {{- toYaml . | nindent 12 }} {{- end }} diff --git a/charts/argo-workflows/templates/controller/workflow-controller-sa.yaml b/charts/argo-workflows/templates/controller/workflow-controller-sa.yaml index fd1db89f..c6a8bf66 100644 --- a/charts/argo-workflows/templates/controller/workflow-controller-sa.yaml +++ b/charts/argo-workflows/templates/controller/workflow-controller-sa.yaml @@ -3,7 +3,7 @@ apiVersion: v1 kind: ServiceAccount metadata: name: {{ template "argo-workflows.controllerServiceAccountName" . }} - namespace: {{ include "argo-workflows.namespace" . | quote }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-workflows.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 4 }} {{- with .Values.controller.serviceAccount.labels }} diff --git a/charts/argo-workflows/templates/controller/workflow-controller-service.yaml b/charts/argo-workflows/templates/controller/workflow-controller-service.yaml index 4a1290ba..5ade3d40 100644 --- a/charts/argo-workflows/templates/controller/workflow-controller-service.yaml +++ b/charts/argo-workflows/templates/controller/workflow-controller-service.yaml @@ -3,10 +3,10 @@ apiVersion: v1 kind: Service metadata: name: {{ template "argo-workflows.controller.fullname" . }} - namespace: {{ include "argo-workflows.namespace" . | quote }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-workflows.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 4 }} - app.kubernetes.io/version: {{ include "argo-workflows.controller_chart_version_label" . }} + app.kubernetes.io/version: {{ default (include "argo-workflows.defaultTag" .) .Values.controller.image.tag | trunc 63 | quote }} {{- with .Values.controller.serviceLabels }} {{ toYaml . | nindent 4 }} {{- end }} @@ -32,16 +32,8 @@ spec: {{- include "argo-workflows.selectorLabels" (dict "context" . "name" .Values.controller.name) | nindent 4 }} sessionAffinity: None type: {{ .Values.controller.serviceType }} - {{- if and (eq .Values.controller.serviceType "ClusterIP") .Values.controller.metricsConfig.headlessService }} - clusterIP: None - {{- end }} - {{- if eq .Values.controller.serviceType "LoadBalancer" }} - {{- with .Values.controller.loadBalancerClass }} - loadBalancerClass: {{ . }} - {{- end }} - {{- if .Values.controller.loadBalancerSourceRanges }} + {{- if and (eq .Values.controller.serviceType "LoadBalancer") .Values.controller.loadBalancerSourceRanges }} loadBalancerSourceRanges: {{- toYaml .Values.controller.loadBalancerSourceRanges | nindent 4 }} {{- end }} - {{- end }} {{- end -}} diff --git a/charts/argo-workflows/templates/controller/workflow-controller-servicemonitor.yaml b/charts/argo-workflows/templates/controller/workflow-controller-servicemonitor.yaml index 46fd18dd..e5e8307f 100644 --- a/charts/argo-workflows/templates/controller/workflow-controller-servicemonitor.yaml +++ b/charts/argo-workflows/templates/controller/workflow-controller-servicemonitor.yaml @@ -1,10 +1,9 @@ -{{- $apiVersion := include "argo-workflows.apiVersions.monitoring" . }} -{{- if and (.Capabilities.APIVersions.Has $apiVersion) (or .Values.controller.metricsConfig.enabled .Values.controller.telemetryConfig.enabled) .Values.controller.serviceMonitor.enabled }} -apiVersion: {{ $apiVersion }} +{{- if and (or .Values.controller.metricsConfig.enabled .Values.controller.telemetryConfig.enabled) .Values.controller.serviceMonitor.enabled }} +apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: {{ template "argo-workflows.controller.fullname" . }} - namespace: {{ default (include "argo-workflows.namespace" .) .Values.controller.serviceMonitor.namespace | quote }} + namespace: {{ default .Release.Namespace .Values.controller.serviceMonitor.namespace | quote }} labels: {{- include "argo-workflows.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 4 }} {{- with .Values.controller.serviceMonitor.additionalLabels }} @@ -13,9 +12,9 @@ metadata: spec: endpoints: {{- if .Values.controller.metricsConfig.enabled }} - - port: {{ .Values.controller.metricsConfig.servicePortName }} + - port: metrics path: {{ .Values.controller.metricsConfig.path }} - interval: {{ .Values.controller.metricsConfig.interval }} + interval: 30s {{- with .Values.controller.metricsConfig.relabelings }} relabelings: {{- toYaml . | nindent 8 }} @@ -24,12 +23,11 @@ spec: metricRelabelings: {{- toYaml . | nindent 8 }} {{- end }} - honorLabels: {{ .Values.controller.metricsConfig.honorLabels }} {{- end }} {{- if .Values.controller.telemetryConfig.enabled }} - port: telemetry path: {{ .Values.controller.telemetryConfig.path }} - interval: {{ .Values.controller.telemetryConfig.interval }} + interval: 30s {{- with .Values.controller.metricsConfig.relabelings }} relabelings: {{- toYaml . | nindent 8 }} @@ -38,7 +36,6 @@ spec: metricRelabelings: {{- toYaml . | nindent 8 }} {{- end }} - honorLabels: {{ .Values.controller.metricsConfig.honorLabels }} {{- end }} {{- with .Values.controller.metricsConfig.targetLabels }} targetLabels: @@ -46,7 +43,7 @@ spec: {{- end }} namespaceSelector: matchNames: - - {{ include "argo-workflows.namespace" . | quote }} + - {{ .Release.Namespace | quote }} selector: matchLabels: {{- include "argo-workflows.selectorLabels" (dict "context" . "name" .Values.controller.name) | nindent 6 }} diff --git a/charts/argo-workflows/templates/controller/workflow-rb.yaml b/charts/argo-workflows/templates/controller/workflow-rb.yaml index d1d0e329..6f9ba23d 100644 --- a/charts/argo-workflows/templates/controller/workflow-rb.yaml +++ b/charts/argo-workflows/templates/controller/workflow-rb.yaml @@ -1,5 +1,5 @@ {{- if .Values.workflow.rbac.create -}} - {{- range $namespace := or .Values.singleNamespace false | ternary (list "") (append .Values.controller.workflowNamespaces (coalesce .Values.workflow.namespace (include "argo-workflows.namespace" .)) | uniq) }} + {{- range $namespace := or .Values.singleNamespace false | ternary (list "") (append .Values.controller.workflowNamespaces (coalesce .Values.workflow.namespace .Release.Namespace) | uniq) }} --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding @@ -20,10 +20,5 @@ subjects: {{- with $namespace }} namespace: {{ . }} {{- end }} - {{- range $.Values.workflow.rbac.serviceAccounts }} - - kind: ServiceAccount - name: {{ .name }} - namespace: {{ .namespace | quote }} - {{- end }} {{- end }} {{- end }} diff --git a/charts/argo-workflows/templates/controller/workflow-role.yaml b/charts/argo-workflows/templates/controller/workflow-role.yaml index 81c20048..51050d0f 100644 --- a/charts/argo-workflows/templates/controller/workflow-role.yaml +++ b/charts/argo-workflows/templates/controller/workflow-role.yaml @@ -1,5 +1,5 @@ {{- if .Values.workflow.rbac.create -}} - {{- range $namespace := or .Values.singleNamespace false | ternary (list "") (append .Values.controller.workflowNamespaces (coalesce .Values.workflow.namespace (include "argo-workflows.namespace" .)) | uniq) }} + {{- range $namespace := or .Values.singleNamespace false | ternary (list "") (append .Values.controller.workflowNamespaces (coalesce .Values.workflow.namespace .Release.Namespace) | uniq) }} --- apiVersion: rbac.authorization.k8s.io/v1 kind: Role @@ -11,12 +11,47 @@ metadata: namespace: {{ . }} {{- end }} rules: + - apiGroups: + - "" + resources: + - pods + verbs: + - get + - watch + - patch + - apiGroups: + - "" + resources: + - pods/log + verbs: + - get + - watch + - apiGroups: + - "" + resources: + - pods/exec + verbs: + - create - apiGroups: - argoproj.io resources: - workflowtaskresults verbs: - create + - apiGroups: + - argoproj.io + resources: + - workflowtasksets + - workflowartifactgctasks + verbs: + - list + - watch + - apiGroups: + - argoproj.io + resources: + - workflowtasksets/status + - workflowartifactgctasks/status + verbs: - patch {{- end }} diff --git a/charts/argo-workflows/templates/controller/workflow-sa.yaml b/charts/argo-workflows/templates/controller/workflow-sa.yaml index c6fff691..8928b32e 100644 --- a/charts/argo-workflows/templates/controller/workflow-sa.yaml +++ b/charts/argo-workflows/templates/controller/workflow-sa.yaml @@ -1,5 +1,5 @@ {{- if .Values.workflow.serviceAccount.create -}} - {{- range $namespace := or .Values.singleNamespace false | ternary (list "") (append .Values.controller.workflowNamespaces (coalesce .Values.workflow.namespace (include "argo-workflows.namespace" .)) | uniq) }} + {{- range $namespace := or .Values.singleNamespace false | ternary (list "") (append .Values.controller.workflowNamespaces (coalesce .Values.workflow.namespace .Release.Namespace) | uniq) }} --- apiVersion: v1 kind: ServiceAccount @@ -17,9 +17,5 @@ metadata: annotations: {{- toYaml . | nindent 4 }} {{- end }} - {{- with $.Values.workflow.serviceAccount.pullSecrets }} -imagePullSecrets: - {{- toYaml . | nindent 2 }} - {{- end }} {{- end }} {{- end }} diff --git a/charts/argo-workflows/templates/crds/argoproj.io_clusterworkflowtemplates.yaml b/charts/argo-workflows/templates/crds/argoproj.io_clusterworkflowtemplates.yaml index 9264eaba..7f767b24 100644 --- a/charts/argo-workflows/templates/crds/argoproj.io_clusterworkflowtemplates.yaml +++ b/charts/argo-workflows/templates/crds/argoproj.io_clusterworkflowtemplates.yaml @@ -1,5 +1,4 @@ {{- if .Values.crds.install }} -{{- if or (.Values.server.clusterWorkflowTemplates.enabled) (.Values.controller.clusterWorkflowTemplates.enabled) }} apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: @@ -44,4 +43,3 @@ spec: served: true storage: true {{- end }} -{{- end }} diff --git a/charts/argo-workflows/templates/crds/argoproj.io_workflowartifactgctasks.yaml b/charts/argo-workflows/templates/crds/argoproj.io_workflowartifactgctasks.yaml index 6a474715..dcebddb2 100644 --- a/charts/argo-workflows/templates/crds/argoproj.io_workflowartifactgctasks.yaml +++ b/charts/argo-workflows/templates/crds/argoproj.io_workflowartifactgctasks.yaml @@ -17,1130 +17,34 @@ spec: listKind: WorkflowArtifactGCTaskList plural: workflowartifactgctasks shortNames: - - wfat + - wfat singular: workflowartifactgctask scope: Namespaced versions: - - name: v1alpha1 - schema: - openAPIV3Schema: - properties: - apiVersion: - type: string - kind: - type: string - metadata: - type: object - spec: - properties: - artifactsByNode: - additionalProperties: - properties: - archiveLocation: - properties: - archiveLogs: - type: boolean - artifactory: - properties: - passwordSecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - url: - type: string - usernameSecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - required: - - url - type: object - azure: - properties: - accountKeySecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - blob: - type: string - container: - type: string - endpoint: - type: string - useSDKCreds: - type: boolean - required: - - blob - - container - - endpoint - type: object - gcs: - properties: - bucket: - type: string - key: - type: string - serviceAccountKeySecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - required: - - key - type: object - git: - properties: - branch: - type: string - depth: - format: int64 - type: integer - disableSubmodules: - type: boolean - fetch: - items: - type: string - type: array - insecureIgnoreHostKey: - type: boolean - insecureSkipTLS: - type: boolean - passwordSecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - repo: - type: string - revision: - type: string - singleBranch: - type: boolean - sshPrivateKeySecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - usernameSecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - required: - - repo - type: object - hdfs: - properties: - addresses: - items: - type: string - type: array - dataTransferProtection: - type: string - force: - type: boolean - hdfsUser: - type: string - krbCCacheSecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - krbConfigConfigMap: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - krbKeytabSecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - krbRealm: - type: string - krbServicePrincipalName: - type: string - krbUsername: - type: string - path: - type: string - required: - - path - type: object - http: - properties: - auth: - properties: - basicAuth: - properties: - passwordSecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - usernameSecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - clientCert: - properties: - clientCertSecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - clientKeySecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - oauth2: - properties: - clientIDSecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - clientSecretSecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - endpointParams: - items: - properties: - key: - type: string - value: - type: string - required: - - key - type: object - type: array - scopes: - items: - type: string - type: array - tokenURLSecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - type: object - headers: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - url: - type: string - required: - - url - type: object - oss: - properties: - accessKeySecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - bucket: - type: string - createBucketIfNotPresent: - type: boolean - endpoint: - type: string - key: - type: string - lifecycleRule: - properties: - markDeletionAfterDays: - format: int32 - type: integer - markInfrequentAccessAfterDays: - format: int32 - type: integer - type: object - secretKeySecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - securityToken: - type: string - useSDKCreds: - type: boolean - required: - - key - type: object - raw: - properties: - data: - type: string - required: - - data - type: object - s3: - properties: - accessKeySecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - bucket: - type: string - caSecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - createBucketIfNotPresent: - properties: - objectLocking: - type: boolean - type: object - encryptionOptions: - properties: - enableEncryption: - type: boolean - kmsEncryptionContext: - type: string - kmsKeyId: - type: string - serverSideCustomerKeySecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - endpoint: - type: string - insecure: - type: boolean - key: - type: string - region: - type: string - roleARN: - type: string - secretKeySecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - sessionTokenSecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - useSDKCreds: - type: boolean - type: object - type: object - artifacts: - additionalProperties: - properties: - archive: - properties: - none: - type: object - tar: - properties: - compressionLevel: - format: int32 - type: integer - type: object - zip: - type: object - type: object - archiveLogs: - type: boolean - artifactGC: - properties: - podMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - serviceAccountName: - type: string - strategy: - enum: - - "" - - OnWorkflowCompletion - - OnWorkflowDeletion - - Never - type: string - type: object - artifactory: - properties: - passwordSecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - url: - type: string - usernameSecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - required: - - url - type: object - azure: - properties: - accountKeySecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - blob: - type: string - container: - type: string - endpoint: - type: string - useSDKCreds: - type: boolean - required: - - blob - - container - - endpoint - type: object - deleted: - type: boolean - from: - type: string - fromExpression: - type: string - gcs: - properties: - bucket: - type: string - key: - type: string - serviceAccountKeySecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - required: - - key - type: object - git: - properties: - branch: - type: string - depth: - format: int64 - type: integer - disableSubmodules: - type: boolean - fetch: - items: - type: string - type: array - insecureIgnoreHostKey: - type: boolean - insecureSkipTLS: - type: boolean - passwordSecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - repo: - type: string - revision: - type: string - singleBranch: - type: boolean - sshPrivateKeySecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - usernameSecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - required: - - repo - type: object - globalName: - type: string - hdfs: - properties: - addresses: - items: - type: string - type: array - dataTransferProtection: - type: string - force: - type: boolean - hdfsUser: - type: string - krbCCacheSecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - krbConfigConfigMap: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - krbKeytabSecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - krbRealm: - type: string - krbServicePrincipalName: - type: string - krbUsername: - type: string - path: - type: string - required: - - path - type: object - http: - properties: - auth: - properties: - basicAuth: - properties: - passwordSecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - usernameSecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - clientCert: - properties: - clientCertSecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - clientKeySecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - oauth2: - properties: - clientIDSecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - clientSecretSecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - endpointParams: - items: - properties: - key: - type: string - value: - type: string - required: - - key - type: object - type: array - scopes: - items: - type: string - type: array - tokenURLSecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - type: object - headers: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - url: - type: string - required: - - url - type: object - mode: - format: int32 - type: integer - name: - type: string - optional: - type: boolean - oss: - properties: - accessKeySecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - bucket: - type: string - createBucketIfNotPresent: - type: boolean - endpoint: - type: string - key: - type: string - lifecycleRule: - properties: - markDeletionAfterDays: - format: int32 - type: integer - markInfrequentAccessAfterDays: - format: int32 - type: integer - type: object - secretKeySecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - securityToken: - type: string - useSDKCreds: - type: boolean - required: - - key - type: object - path: - type: string - raw: - properties: - data: - type: string - required: - - data - type: object - recurseMode: - type: boolean - s3: - properties: - accessKeySecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - bucket: - type: string - caSecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - createBucketIfNotPresent: - properties: - objectLocking: - type: boolean - type: object - encryptionOptions: - properties: - enableEncryption: - type: boolean - kmsEncryptionContext: - type: string - kmsKeyId: - type: string - serverSideCustomerKeySecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - endpoint: - type: string - insecure: - type: boolean - key: - type: string - region: - type: string - roleARN: - type: string - secretKeySecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - sessionTokenSecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - useSDKCreds: - type: boolean - type: object - subPath: - type: string - required: - - name - type: object - type: object - type: object - type: object - type: object - status: - properties: - artifactResultsByNode: - additionalProperties: - properties: - artifactResults: - additionalProperties: - properties: - error: - type: string - name: - type: string - success: - type: boolean - required: - - name - type: object - type: object - type: object - type: object - type: object - required: - - metadata - - spec - type: object - served: true - storage: true - subresources: - status: {} + - name: v1alpha1 + schema: + openAPIV3Schema: + properties: + apiVersion: + type: string + kind: + 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 + subresources: + status: {} {{- end }} diff --git a/charts/argo-workflows/templates/crds/argoproj.io_workfloweventbindings.yaml b/charts/argo-workflows/templates/crds/argoproj.io_workfloweventbindings.yaml index f11df956..097fa5cd 100644 --- a/charts/argo-workflows/templates/crds/argoproj.io_workfloweventbindings.yaml +++ b/charts/argo-workflows/templates/crds/argoproj.io_workfloweventbindings.yaml @@ -32,655 +32,9 @@ spec: metadata: type: object spec: - properties: - event: - properties: - selector: - type: string - required: - - selector - type: object - submit: - properties: - arguments: - properties: - artifacts: - items: - properties: - archive: - properties: - none: - type: object - tar: - properties: - compressionLevel: - format: int32 - type: integer - type: object - zip: - type: object - type: object - archiveLogs: - type: boolean - artifactGC: - properties: - podMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - serviceAccountName: - type: string - strategy: - enum: - - "" - - OnWorkflowCompletion - - OnWorkflowDeletion - - Never - type: string - type: object - artifactory: - properties: - passwordSecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - url: - type: string - usernameSecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - required: - - url - type: object - azure: - properties: - accountKeySecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - blob: - type: string - container: - type: string - endpoint: - type: string - useSDKCreds: - type: boolean - required: - - blob - - container - - endpoint - type: object - deleted: - type: boolean - from: - type: string - fromExpression: - type: string - gcs: - properties: - bucket: - type: string - key: - type: string - serviceAccountKeySecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - required: - - key - type: object - git: - properties: - branch: - type: string - depth: - format: int64 - type: integer - disableSubmodules: - type: boolean - fetch: - items: - type: string - type: array - insecureIgnoreHostKey: - type: boolean - insecureSkipTLS: - type: boolean - passwordSecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - repo: - type: string - revision: - type: string - singleBranch: - type: boolean - sshPrivateKeySecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - usernameSecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - required: - - repo - type: object - globalName: - type: string - hdfs: - properties: - addresses: - items: - type: string - type: array - dataTransferProtection: - type: string - force: - type: boolean - hdfsUser: - type: string - krbCCacheSecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - krbConfigConfigMap: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - krbKeytabSecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - krbRealm: - type: string - krbServicePrincipalName: - type: string - krbUsername: - type: string - path: - type: string - required: - - path - type: object - http: - properties: - auth: - properties: - basicAuth: - properties: - passwordSecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - usernameSecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - clientCert: - properties: - clientCertSecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - clientKeySecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - oauth2: - properties: - clientIDSecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - clientSecretSecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - endpointParams: - items: - properties: - key: - type: string - value: - type: string - required: - - key - type: object - type: array - scopes: - items: - type: string - type: array - tokenURLSecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - type: object - headers: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - url: - type: string - required: - - url - type: object - mode: - format: int32 - type: integer - name: - type: string - optional: - type: boolean - oss: - properties: - accessKeySecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - bucket: - type: string - createBucketIfNotPresent: - type: boolean - endpoint: - type: string - key: - type: string - lifecycleRule: - properties: - markDeletionAfterDays: - format: int32 - type: integer - markInfrequentAccessAfterDays: - format: int32 - type: integer - type: object - secretKeySecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - securityToken: - type: string - useSDKCreds: - type: boolean - required: - - key - type: object - path: - type: string - raw: - properties: - data: - type: string - required: - - data - type: object - recurseMode: - type: boolean - s3: - properties: - accessKeySecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - bucket: - type: string - caSecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - createBucketIfNotPresent: - properties: - objectLocking: - type: boolean - type: object - encryptionOptions: - properties: - enableEncryption: - type: boolean - kmsEncryptionContext: - type: string - kmsKeyId: - type: string - serverSideCustomerKeySecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - endpoint: - type: string - insecure: - type: boolean - key: - type: string - region: - type: string - roleARN: - type: string - secretKeySecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - sessionTokenSecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - useSDKCreds: - type: boolean - type: object - subPath: - type: string - required: - - name - type: object - type: array - parameters: - items: - properties: - default: - type: string - description: - type: string - enum: - items: - type: string - type: array - globalName: - type: string - name: - type: string - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - default: - type: string - event: - type: string - expression: - type: string - jqFilter: - type: string - jsonPath: - type: string - parameter: - type: string - path: - type: string - supplied: - type: object - type: object - required: - - name - type: object - type: array - type: object - metadata: - type: object - workflowTemplateRef: - properties: - clusterScope: - type: boolean - name: - type: string - type: object - required: - - workflowTemplateRef - type: object - required: - - event type: object + x-kubernetes-map-type: atomic + x-kubernetes-preserve-unknown-fields: true required: - metadata - spec diff --git a/charts/argo-workflows/templates/crds/argoproj.io_workflowtaskresults.yaml b/charts/argo-workflows/templates/crds/argoproj.io_workflowtaskresults.yaml index 02f3f08b..e9bb93f6 100644 --- a/charts/argo-workflows/templates/crds/argoproj.io_workflowtaskresults.yaml +++ b/charts/argo-workflows/templates/crds/argoproj.io_workflowtaskresults.yaml @@ -81,14 +81,12 @@ spec: key: type: string name: - default: "" type: string optional: type: boolean required: - key type: object - x-kubernetes-map-type: atomic url: type: string usernameSecret: @@ -96,14 +94,12 @@ spec: key: type: string name: - default: "" type: string optional: type: boolean required: - key type: object - x-kubernetes-map-type: atomic required: - url type: object @@ -114,14 +110,12 @@ spec: key: type: string name: - default: "" type: string optional: type: boolean required: - key type: object - x-kubernetes-map-type: atomic blob: type: string container: @@ -152,14 +146,12 @@ spec: key: type: string name: - default: "" type: string optional: type: boolean required: - key type: object - x-kubernetes-map-type: atomic required: - key type: object @@ -178,21 +170,17 @@ spec: type: array insecureIgnoreHostKey: type: boolean - insecureSkipTLS: - type: boolean passwordSecret: properties: key: type: string name: - default: "" type: string optional: type: boolean required: - key type: object - x-kubernetes-map-type: atomic repo: type: string revision: @@ -204,27 +192,23 @@ spec: key: type: string name: - default: "" type: string optional: type: boolean required: - key type: object - x-kubernetes-map-type: atomic usernameSecret: properties: key: type: string name: - default: "" type: string optional: type: boolean required: - key type: object - x-kubernetes-map-type: atomic required: - repo type: object @@ -236,8 +220,6 @@ spec: items: type: string type: array - dataTransferProtection: - type: string force: type: boolean hdfsUser: @@ -247,40 +229,34 @@ spec: key: type: string name: - default: "" type: string optional: type: boolean required: - key type: object - x-kubernetes-map-type: atomic krbConfigConfigMap: properties: key: type: string name: - default: "" type: string optional: type: boolean required: - key type: object - x-kubernetes-map-type: atomic krbKeytabSecret: properties: key: type: string name: - default: "" type: string optional: type: boolean required: - key type: object - x-kubernetes-map-type: atomic krbRealm: type: string krbServicePrincipalName: @@ -303,27 +279,23 @@ spec: key: type: string name: - default: "" type: string optional: type: boolean required: - key type: object - x-kubernetes-map-type: atomic usernameSecret: properties: key: type: string name: - default: "" type: string optional: type: boolean required: - key type: object - x-kubernetes-map-type: atomic type: object clientCert: properties: @@ -332,27 +304,23 @@ spec: key: type: string name: - default: "" type: string optional: type: boolean required: - key type: object - x-kubernetes-map-type: atomic clientKeySecret: properties: key: type: string name: - default: "" type: string optional: type: boolean required: - key type: object - x-kubernetes-map-type: atomic type: object oauth2: properties: @@ -361,27 +329,23 @@ spec: key: type: string name: - default: "" type: string optional: type: boolean required: - key type: object - x-kubernetes-map-type: atomic clientSecretSecret: properties: key: type: string name: - default: "" type: string optional: type: boolean required: - key type: object - x-kubernetes-map-type: atomic endpointParams: items: properties: @@ -402,14 +366,12 @@ spec: key: type: string name: - default: "" type: string optional: type: boolean required: - key type: object - x-kubernetes-map-type: atomic type: object type: object headers: @@ -443,14 +405,12 @@ spec: key: type: string name: - default: "" type: string optional: type: boolean required: - key type: object - x-kubernetes-map-type: atomic bucket: type: string createBucketIfNotPresent: @@ -473,18 +433,14 @@ spec: key: type: string name: - default: "" type: string optional: type: boolean required: - key type: object - x-kubernetes-map-type: atomic securityToken: type: string - useSDKCreds: - type: boolean required: - key type: object @@ -506,29 +462,14 @@ spec: key: type: string name: - default: "" type: string optional: type: boolean required: - key type: object - x-kubernetes-map-type: atomic bucket: type: string - caSecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic createBucketIfNotPresent: properties: objectLocking: @@ -547,14 +488,12 @@ spec: key: type: string name: - default: "" type: string optional: type: boolean required: - key type: object - x-kubernetes-map-type: atomic type: object endpoint: type: string @@ -571,27 +510,12 @@ spec: key: type: string name: - default: "" type: string optional: type: boolean required: - key type: object - x-kubernetes-map-type: atomic - sessionTokenSecret: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic useSDKCreds: type: boolean type: object @@ -627,14 +551,12 @@ spec: key: type: string name: - default: "" type: string optional: type: boolean required: - key type: object - x-kubernetes-map-type: atomic default: type: string event: diff --git a/charts/argo-workflows/templates/extra-manifests.yaml b/charts/argo-workflows/templates/extra-manifests.yaml index fc9a76b8..a9bb3b6b 100644 --- a/charts/argo-workflows/templates/extra-manifests.yaml +++ b/charts/argo-workflows/templates/extra-manifests.yaml @@ -1,8 +1,4 @@ {{ range .Values.extraObjects }} --- -{{ if typeIs "string" . }} - {{- tpl . $ }} -{{- else }} - {{- tpl (toYaml .) $ }} -{{- end }} +{{ tpl (toYaml .) $ }} {{ end }} diff --git a/charts/argo-workflows/templates/server/gke/backendconfig.yaml b/charts/argo-workflows/templates/server/gke/backendconfig.yaml deleted file mode 100644 index 0d439b62..00000000 --- a/charts/argo-workflows/templates/server/gke/backendconfig.yaml +++ /dev/null @@ -1,11 +0,0 @@ -{{- if .Values.server.GKEbackendConfig.enabled }} -apiVersion: {{ include "argo-workflows.apiVersions.cloudgoogle" . }} -kind: BackendConfig -metadata: - name: {{ template "argo-workflows.server.fullname" . }} - namespace: {{ include "argo-workflows.namespace" . | quote }} - labels: - {{- include "argo-workflows.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }} -spec: - {{- toYaml .Values.server.GKEbackendConfig.spec | nindent 2 }} -{{- end }} diff --git a/charts/argo-workflows/templates/server/gke/frontendconfig.yaml b/charts/argo-workflows/templates/server/gke/frontendconfig.yaml deleted file mode 100644 index 32cfc3a1..00000000 --- a/charts/argo-workflows/templates/server/gke/frontendconfig.yaml +++ /dev/null @@ -1,11 +0,0 @@ -{{- if .Values.server.GKEfrontendConfig.enabled }} -apiVersion: networking.gke.io/v1beta1 -kind: FrontendConfig -metadata: - name: {{ template "argo-workflows.server.fullname" . }} - namespace: {{ include "argo-workflows.namespace" . | quote }} - labels: - {{- include "argo-workflows.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }} -spec: - {{- toYaml .Values.server.GKEfrontendConfig.spec | nindent 2 }} -{{- end }} diff --git a/charts/argo-workflows/templates/server/gke/managedcertificate.yaml b/charts/argo-workflows/templates/server/gke/managedcertificate.yaml deleted file mode 100644 index 4d1f840e..00000000 --- a/charts/argo-workflows/templates/server/gke/managedcertificate.yaml +++ /dev/null @@ -1,12 +0,0 @@ -{{- if .Values.server.GKEmanagedCertificate.enabled }} -apiVersion: networking.gke.io/v1 -kind: ManagedCertificate -metadata: - name: {{ template "argo-workflows.server.fullname" . }} - namespace: {{ include "argo-workflows.namespace" . | quote }} -spec: - domains: - {{- with .Values.server.GKEmanagedCertificate.domains }} - {{- toYaml . | nindent 4 }} - {{- end }} -{{- end }} diff --git a/charts/argo-workflows/templates/server/server-cluster-roles.yaml b/charts/argo-workflows/templates/server/server-cluster-roles.yaml index f0953099..96f12bfa 100644 --- a/charts/argo-workflows/templates/server/server-cluster-roles.yaml +++ b/charts/argo-workflows/templates/server/server-cluster-roles.yaml @@ -8,7 +8,7 @@ kind: ClusterRole metadata: name: {{ template "argo-workflows.server.fullname" . }} {{- if .Values.singleNamespace }} - namespace: {{ include "argo-workflows.namespace" . | quote }} + namespace: {{ .Release.Namespace | quote }} {{- end }} labels: {{- include "argo-workflows.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }} @@ -38,7 +38,7 @@ rules: verbs: - get - list -{{- if .Values.server.sso.enabled }} +{{- if .Values.server.sso }} - apiGroups: - "" resources: @@ -47,13 +47,14 @@ rules: - sso verbs: - get + - update - apiGroups: - "" resources: - secrets verbs: - create - {{- if .Values.server.sso.rbac.enabled }} + {{- if .Values.server.sso.rbac }} - apiGroups: - "" resources: @@ -70,9 +71,13 @@ rules: - secrets verbs: - get -{{- if and .Values.server.sso.enabled .Values.server.sso.rbac.enabled }} - {{- with .Values.server.sso.rbac.secretWhitelist }} + - list + - watch +{{- if .Values.server.sso }} + {{- if .Values.server.sso.rbac }} + {{- with .Values.server.sso.rbac.secretWhitelist }} resourceNames: {{- toYaml . | nindent 4 }} + {{- end }} {{- end }} {{- end }} - apiGroups: @@ -118,7 +123,7 @@ rules: - patch - delete -{{- if and .Values.server.clusterWorkflowTemplates.enabled (not .Values.singleNamespace) }} +{{- if .Values.server.clusterWorkflowTemplates.enabled }} --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole diff --git a/charts/argo-workflows/templates/server/server-crb.yaml b/charts/argo-workflows/templates/server/server-crb.yaml index 4ffb9107..ec4f6435 100644 --- a/charts/argo-workflows/templates/server/server-crb.yaml +++ b/charts/argo-workflows/templates/server/server-crb.yaml @@ -1,4 +1,4 @@ -{{- if and .Values.server.enabled .Values.server.rbac.create -}} +{{- if and .Values.server.enabled .Values.server.serviceAccount.create .Values.server.rbac.create -}} apiVersion: rbac.authorization.k8s.io/v1 {{- if .Values.singleNamespace }} kind: RoleBinding @@ -8,7 +8,7 @@ kind: ClusterRoleBinding metadata: name: {{ template "argo-workflows.server.fullname" . }} {{- if .Values.singleNamespace }} - namespace: {{ include "argo-workflows.namespace" . | quote }} + namespace: {{ .Release.Namespace | quote }} {{- end }} labels: {{- include "argo-workflows.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }} @@ -23,7 +23,7 @@ roleRef: subjects: - kind: ServiceAccount name: {{ template "argo-workflows.serverServiceAccountName" . }} - namespace: {{ include "argo-workflows.namespace" . | quote }} + namespace: {{ .Release.Namespace | quote }} {{- if .Values.server.clusterWorkflowTemplates.enabled }} --- @@ -40,6 +40,6 @@ roleRef: subjects: - kind: ServiceAccount name: {{ template "argo-workflows.serverServiceAccountName" . }} - namespace: {{ include "argo-workflows.namespace" . | quote }} + namespace: {{ .Release.Namespace | quote }} {{- end -}} {{- end -}} diff --git a/charts/argo-workflows/templates/server/server-deployment-hpa.yaml b/charts/argo-workflows/templates/server/server-deployment-hpa.yaml index 142bc31b..ebc45925 100644 --- a/charts/argo-workflows/templates/server/server-deployment-hpa.yaml +++ b/charts/argo-workflows/templates/server/server-deployment-hpa.yaml @@ -1,9 +1,9 @@ {{- if and .Values.server.enabled .Values.server.autoscaling.enabled }} -apiVersion: {{ include "argo-workflows.apiVersion.autoscaling" . }} +apiVersion: autoscaling/v2beta1 kind: HorizontalPodAutoscaler metadata: name: {{ template "argo-workflows.server.fullname" . }} - namespace: {{ include "argo-workflows.namespace" . | quote }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-workflows.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }} spec: diff --git a/charts/argo-workflows/templates/server/server-deployment-pdb.yaml b/charts/argo-workflows/templates/server/server-deployment-pdb.yaml index 47f8394d..7ea6d465 100644 --- a/charts/argo-workflows/templates/server/server-deployment-pdb.yaml +++ b/charts/argo-workflows/templates/server/server-deployment-pdb.yaml @@ -3,7 +3,7 @@ apiVersion: policy/v1 kind: PodDisruptionBudget metadata: name: {{ template "argo-workflows.server.fullname" . }} - namespace: {{ include "argo-workflows.namespace" . | quote }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-workflows.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }} spec: diff --git a/charts/argo-workflows/templates/server/server-deployment.yaml b/charts/argo-workflows/templates/server/server-deployment.yaml index b9a2541b..d75933ac 100644 --- a/charts/argo-workflows/templates/server/server-deployment.yaml +++ b/charts/argo-workflows/templates/server/server-deployment.yaml @@ -3,7 +3,7 @@ apiVersion: apps/v1 kind: Deployment metadata: name: {{ template "argo-workflows.server.fullname" . }} - namespace: {{ include "argo-workflows.namespace" . | quote }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-workflows.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }} app.kubernetes.io/version: {{ include "argo-workflows.server_chart_version_label" . }} @@ -15,7 +15,6 @@ spec: {{- if not .Values.server.autoscaling.enabled }} replicas: {{ .Values.server.replicas }} {{- end }} - revisionHistoryLimit: {{ .Values.server.revisionHistoryLimit }} selector: matchLabels: {{- include "argo-workflows.selectorLabels" (dict "context" . "name" .Values.server.name) | nindent 6 }} @@ -37,13 +36,9 @@ spec: securityContext: {{- toYaml . | nindent 8 }} {{- end }} - {{- with .Values.server.hostAliases }} - hostAliases: - {{- toYaml . | nindent 8 }} - {{- end }} {{- with .Values.server.extraInitContainers }} initContainers: - {{- tpl (toYaml .) $ | nindent 8 }} + {{- toYaml . | nindent 8 }} {{- end }} containers: - name: argo-server @@ -53,16 +48,10 @@ spec: {{- toYaml .Values.server.securityContext | nindent 12 }} args: - server - - --configmap={{ template "argo-workflows.controller.config-map.name" . }} + - --configmap={{ template "argo-workflows.controller.fullname" . }}-configmap {{- with .Values.server.extraArgs }} {{- toYaml . | nindent 10 }} {{- end }} - {{- if .Values.server.authMode }} - - "--auth-mode={{ .Values.server.authMode }}" - {{- end }} - {{- range .Values.server.authModes }} - - "--auth-mode={{ . }}" - {{- end }} - "--secure={{ .Values.server.secure }}" {{- if .Values.singleNamespace }} - "--namespaced" @@ -95,7 +84,7 @@ spec: fieldRef: apiVersion: v1 fieldPath: metadata.namespace - - name: ARGO_BASE_HREF + - name: BASE_HREF value: {{ .Values.server.baseHref | quote }} {{- with .Values.server.extraEnv }} {{- toYaml . | nindent 12 }} @@ -108,23 +97,16 @@ spec: {{- with .Values.server.volumeMounts }} {{- toYaml . | nindent 10}} {{- end }} - {{- with .Values.server.lifecycle }} - lifecycle: - {{- toYaml . | nindent 12 }} - {{- end }} {{- with .Values.server.extraContainers }} {{- toYaml . | nindent 8 }} {{- end }} - {{- with .Values.server.terminationGracePeriodSeconds }} - terminationGracePeriodSeconds: {{ . }} - {{- end }} {{- with .Values.images.pullSecrets }} imagePullSecrets: {{- toYaml . | nindent 8 }} {{- end }} volumes: - name: tmp - {{- toYaml .Values.server.tmpVolume | nindent 8 }} + emptyDir: {} {{- with .Values.server.volumes }} {{- toYaml . | nindent 6}} {{- end }} diff --git a/charts/argo-workflows/templates/server/server-ingress.yaml b/charts/argo-workflows/templates/server/server-ingress.yaml index db69b012..36209f5b 100644 --- a/charts/argo-workflows/templates/server/server-ingress.yaml +++ b/charts/argo-workflows/templates/server/server-ingress.yaml @@ -14,7 +14,7 @@ metadata: {{- end }} {{- end }} name: {{ template "argo-workflows.server.fullname" . }} - namespace: {{ include "argo-workflows.namespace" . | quote }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-workflows.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }} {{- if .Values.server.ingress.labels }} diff --git a/charts/argo-workflows/templates/server/server-sa.yaml b/charts/argo-workflows/templates/server/server-sa.yaml index d2c9c535..382d565e 100644 --- a/charts/argo-workflows/templates/server/server-sa.yaml +++ b/charts/argo-workflows/templates/server/server-sa.yaml @@ -3,7 +3,7 @@ apiVersion: v1 kind: ServiceAccount metadata: name: {{ template "argo-workflows.serverServiceAccountName" . }} - namespace: {{ include "argo-workflows.namespace" . | quote }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-workflows.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }} {{- with .Values.server.serviceAccount.labels }} diff --git a/charts/argo-workflows/templates/server/server-service.yaml b/charts/argo-workflows/templates/server/server-service.yaml index 39c37792..f7096a8d 100644 --- a/charts/argo-workflows/templates/server/server-service.yaml +++ b/charts/argo-workflows/templates/server/server-service.yaml @@ -3,13 +3,10 @@ apiVersion: v1 kind: Service metadata: name: {{ template "argo-workflows.server.fullname" . }} - namespace: {{ include "argo-workflows.namespace" . | quote }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argo-workflows.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }} app.kubernetes.io/version: {{ include "argo-workflows.server_chart_version_label" . }} - {{- with .Values.server.serviceLabels }} - {{ toYaml . | nindent 4 }} - {{- end }} {{- with .Values.server.serviceAnnotations }} annotations: {{- toYaml . | nindent 4 }} @@ -28,16 +25,11 @@ spec: {{- include "argo-workflows.selectorLabels" (dict "context" . "name" .Values.server.name) | nindent 4 }} sessionAffinity: None type: {{ .Values.server.serviceType }} - {{- if eq .Values.server.serviceType "LoadBalancer" }} - {{- with .Values.controller.loadBalancerClass }} - loadBalancerClass: {{ . }} + {{- if and (eq .Values.server.serviceType "LoadBalancer") .Values.server.loadBalancerIP }} + loadBalancerIP: {{ .Values.server.loadBalancerIP | quote }} {{- end }} - {{- with .Values.server.loadBalancerIP }} - loadBalancerIP: {{ . | quote }} - {{- end }} - {{- if .Values.server.loadBalancerSourceRanges }} + {{- if and (eq .Values.server.serviceType "LoadBalancer") .Values.server.loadBalancerSourceRanges }} loadBalancerSourceRanges: {{- toYaml .Values.server.loadBalancerSourceRanges | nindent 4 }} {{- end }} - {{- end }} {{- end -}} diff --git a/charts/argo-workflows/values.yaml b/charts/argo-workflows/values.yaml index 0c044454..c1c0229e 100644 --- a/charts/argo-workflows/values.yaml +++ b/charts/argo-workflows/values.yaml @@ -26,25 +26,9 @@ nameOverride: # -- String to fully override "argo-workflows.fullname" template fullnameOverride: -# -- Override the namespace -# @default -- `.Release.Namespace` -namespaceOverride: "" - -# -- Labels to set on all resources -commonLabels: {} - # -- Override the Kubernetes version, which is used to evaluate certain manifests kubeVersionOverride: "" -# Override APIVersions -apiVersionOverrides: - # -- String to override apiVersion of autoscaling rendered by this helm chart - autoscaling: "" # autoscaling/v2 - # -- String to override apiVersion of GKE resources rendered by this helm chart - cloudgoogle: "" # cloud.google.com/v1 - # -- String to override apiVersion of monitoring CRDs (ServiceMonitor) rendered by this helm chart - monitoring: "" # monitoring.coreos.com/v1 - # -- Restrict Argo to operate only in a single namespace (the namespace of the # Helm release) by apply Roles and RoleBindings instead of the Cluster # equivalents, and start workflow-controller with the --namespaced flag. Use it @@ -63,20 +47,10 @@ workflow: annotations: {} # -- Service account which is used to run workflows name: "argo-workflow" - # -- Secrets with credentials to pull images from a private registry. Same format as `.Values.images.pullSecrets` - pullSecrets: [] rbac: # -- Adds Role and RoleBinding for the above specified service account to be able to run workflows. # A Role and Rolebinding pair is also created for each namespace in controller.workflowNamespaces (see below) create: true - # -- Allows permissions for the Argo Agent. Only required if using http/plugin templates - agentPermissions: false - # -- Allows permissions for the Argo Artifact GC pod. Only required if using artifact gc - artifactGC: false - # -- Extra service accounts to be added to the RoleBinding - serviceAccounts: [] - # - name: my-service-account - # namespace: my-namespace controller: image: @@ -105,14 +79,6 @@ controller: # -- Allows controller to create and update ConfigMaps. Enables memoization feature writeConfigMaps: false - configMap: - # -- Create a ConfigMap for the controller - create: true - # -- ConfigMap name - name: "" - # -- ConfigMap annotations - annotations: {} - # -- Limits the maximum number of incomplete workflows in a namespace namespaceParallelism: # -- Resolves ongoing, uncommon AWS EKS bug: https://github.com/argoproj/argo-workflows/pull/4224 @@ -131,8 +97,6 @@ controller: enabled: false # -- Path is the path where metrics are emitted. Must start with a "/". path: /metrics - # -- Frequency at which prometheus scrapes metrics - interval: 30s # -- Port is the port where metrics are emitted port: 9090 # -- How often custom metrics are cleared from memory @@ -147,13 +111,8 @@ controller: servicePort: 8080 # -- Service metrics port name servicePortName: metrics - # -- Flag to enable headless service - headlessService: false - # -- When true, honorLabels preserves the metric’s labels when they collide with the target’s labels. - ## Ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#honorlabels - honorLabels: false # -- ServiceMonitor relabel configs to apply to samples before scraping - ## Ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig + ## Ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#relabelconfig relabelings: [] # -- ServiceMonitor metric relabel configs to apply to samples before ingestion ## Ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#endpoint @@ -169,8 +128,7 @@ controller: capabilities: drop: - ALL - # -- enable Workflow Archive to store the status of workflows. Postgres and MySQL (>= 5.7.8) are available. - ## Ref: https://argo-workflows.readthedocs.io/en/stable/workflow-archive/ + # -- enable persistence using postgres persistence: {} # connectionPool: # maxIdleConns: 100 @@ -191,43 +149,17 @@ controller: # passwordSecret: # name: argo-postgres-config # key: password - # ssl: true - # # sslMode must be one of: disable, require, verify-ca, verify-full - # # you can find more information about those ssl options here: https://godoc.org/github.com/lib/pq - # sslMode: require - # mysql: - # host: localhost - # port: 3306 - # database: argo - # tableName: argo_workflows - # userNameSecret: - # name: argo-mysql-config - # key: username - # passwordSecret: - # name: argo-mysql-config - # key: password # -- Default values that will apply to all Workflows from this controller, unless overridden on the Workflow-level. # Only valid for 2.7+ - ## See more: https://argo-workflows.readthedocs.io/en/stable/default-workflow-specs/ + ## See more: https://argoproj.github.io/argo-workflows/default-workflow-specs/ workflowDefaults: {} - # spec: - # ttlStrategy: - # secondsAfterCompletion: 86400 - # # Ref: https://argo-workflows.readthedocs.io/en/stable/artifact-repository-ref/ - # artifactRepositoryRef: - # configMap: my-artifact-repository # default is "artifact-repositories" - # key: v2-s3-artifact-repository # default can be set by the `workflows.argoproj.io/default-artifact-repository` annotation in config map. + # spec: + # ttlStrategy: + # secondsAfterCompletion: 84600 # -- Number of workflow workers workflowWorkers: # 32 - # -- Number of workflow TTL workers - workflowTTLWorkers: # 4 - # -- Number of pod cleanup workers - podCleanupWorkers: # 4 - # -- Number of cron workflow workers - # Only valid for 3.5+ - cronWorkflowWorkers: # 8 # -- Restricts the Workflows that the controller will process. # Only valid for 2.9+ workflowRestrictions: {} @@ -240,8 +172,6 @@ controller: enabled: false # -- telemetry path path: /telemetry - # -- Frequency at which prometheus scrapes telemetry data - interval: 30s # -- telemetry container port port: 8081 # -- How often custom metrics are cleared from memory @@ -308,8 +238,6 @@ controller: serviceAnnotations: {} # -- Optional labels to add to the controller Service serviceLabels: {} - # -- The class of the load balancer implementation - loadBalancerClass: "" # -- Source ranges to allow access to service from. Only applies to service type `LoadBalancer` loadBalancerSourceRanges: [] @@ -340,8 +268,6 @@ controller: volumes: [] # -- The number of controller pods to run replicas: 1 - # -- The number of revisions to keep. - revisionHistoryLimit: 10 pdb: # -- Configure [Pod Disruption Budget] for the controller pods @@ -370,20 +296,13 @@ controller: priorityClassName: "" # -- Configure Argo Server to show custom [links] - ## Ref: https://argo-workflows.readthedocs.io/en/stable/links/ + ## Ref: https://argoproj.github.io/argo-workflows/links/ links: [] - # -- Configure Argo Server to show custom [columns] - ## Ref: https://github.com/argoproj/argo-workflows/pull/10693 - columns: [] # -- Set ui navigation bar background color navColor: "" clusterWorkflowTemplates: # -- Create a ClusterRole and CRB for the controller to access ClusterWorkflowTemplates. enabled: true - # -- Extra service accounts to be added to the ClusterRoleBinding - serviceAccounts: [] - # - name: my-service-account - # namespace: my-namespace # -- Extra containers to be added to the controller deployment extraContainers: [] @@ -402,12 +321,6 @@ controller: ## "Unable to create audit event: etcdserver: mvcc: database space exceeded" enabled: true - workflowEvents: - # -- Enable to emit events on workflow status changes. - ## This can take up a lot of space in k8s (typically etcd), resulting in errors when trying to create new events: - ## "Unable to create audit event: etcdserver: mvcc: database space exceeded" - enabled: true - # -- Configure when workflow controller runs in a different k8s cluster with the workflow workloads, # or needs to communicate with the k8s apiserver using an out-of-cluster kubeconfig secret. # @default -- `{}` (See [values.yaml]) @@ -455,8 +368,6 @@ executor: pullPolicy: "" # -- Resource limits and requests for the Workflow Executors resources: {} - # -- Passes arguments to the executor processes - args: [] # -- Adds environment variables for the executor. env: [] # -- sets security context for the executor container @@ -507,12 +418,6 @@ server: # -- Service port name servicePortName: "" # http - # -- Mapping between IP and hostnames that will be injected as entries in the pod's hosts files - hostAliases: [] - # - ip: 10.20.30.40 - # hostnames: - # - git.myhostname - serviceAccount: # -- Create a service account for the server create: true @@ -527,8 +432,6 @@ server: serviceAnnotations: {} # -- Optional labels to add to the UI Service serviceLabels: {} - # -- The class of the load balancer implementation - loadBalancerClass: "" # -- Static IP address to assign to loadBalancer service type `LoadBalancer` loadBalancerIP: "" # -- Source ranges to allow access to service from. Only applies to service type `LoadBalancer` @@ -537,8 +440,6 @@ server: resources: {} # -- The number of server pods to run replicas: 1 - # -- The number of revisions to keep. - revisionHistoryLimit: 10 ## Argo Server Horizontal Pod Autoscaler autoscaling: # -- Enable Horizontal Pod Autoscaler ([HPA]) for the Argo Server @@ -595,7 +496,7 @@ server: # -- Run the argo server in "secure" mode. Configure this value instead of `--secure` in extraArgs. ## See the following documentation for more details on secure mode: - ## https://argo-workflows.readthedocs.io/en/stable/tls/ + ## https://argoproj.github.io/argo-workflows/tls/ secure: false # -- Extra environment variables to provide to the argo-server container @@ -603,16 +504,14 @@ server: # - name: FOO # value: "bar" - # -- Deprecated; use server.authModes instead. - authMode: "" - - # -- A list of supported authentication modes. Available values are `server`, `client`, or `sso`. If you provide sso, please configure `.Values.server.sso` as well. - ## Ref: https://argo-workflows.readthedocs.io/en/stable/argo-server-auth-mode/ - authModes: [] - - # -- Extra arguments to provide to the Argo server binary. - ## Ref: https://argo-workflows.readthedocs.io/en/stable/argo-server/#options + # -- Extra arguments to provide to the Argo server binary, such as for disabling authentication. extraArgs: [] + # If you want to disable authentication for purposes such as: + # - local dev-mode without authentication + # - gateway authentication through some other service such as KeyCloak + # uncomment the lines below and comment out the default empty list `extraArgs: []` above: + # extraArgs: + # - --auth-mode=server logging: # -- Set the logging level (one of: `debug`, `info`, `warn`, `error`) @@ -622,16 +521,13 @@ server: # -- Set the logging format (one of: `text`, `json`) format: "text" - # -- Volume to be mounted in Pods for temporary files. - tmpVolume: - emptyDir: {} # -- Additional volume mounts to the server main container. volumeMounts: [] # -- Additional volumes to the server pod. volumes: [] ## Ingress configuration. - # ref: https://kubernetes.io/docs/concepts/services-networking/ingress/ + # ref: https://kubernetes.io/docs/user-guide/ingress/ ingress: # -- Enable an ingress resource enabled: false @@ -675,94 +571,41 @@ server: # hosts: # - argoworkflows.example.com - ## Create a Google Backendconfig for use with the GKE Ingress Controller - ## https://cloud.google.com/kubernetes-engine/docs/how-to/ingress-configuration#configuring_ingress_features_through_backendconfig_parameters - GKEbackendConfig: - # -- Enable BackendConfig custom resource for Google Kubernetes Engine - enabled: false - # -- [BackendConfigSpec] - spec: {} - # spec: - # iap: - # enabled: true - # oauthclientCredentials: - # secretName: argoworkflows-secret - - ## Create a Google Managed Certificate for use with the GKE Ingress Controller - ## https://cloud.google.com/kubernetes-engine/docs/how-to/managed-certs - GKEmanagedCertificate: - # -- Enable ManagedCertificate custom resource for Google Kubernetes Engine. - enabled: false - # -- Domains for the Google Managed Certificate - domains: - - argoworkflows.example.com - - ## Create a Google FrontendConfig Custom Resource, for use with the GKE Ingress Controller - ## https://cloud.google.com/kubernetes-engine/docs/how-to/ingress-features#configuring_ingress_features_through_frontendconfig_parameters - GKEfrontendConfig: - # -- Enable FrontConfig custom resource for Google Kubernetes Engine - enabled: false - # -- [FrontendConfigSpec] - spec: {} - # spec: - # redirectToHttps: - # enabled: true - # responseCodeName: RESPONSE_CODE - clusterWorkflowTemplates: # -- Create a ClusterRole and CRB for the server to access ClusterWorkflowTemplates. enabled: true # -- Give the server permissions to edit ClusterWorkflowTemplates. enableEditing: true - # SSO configuration when SSO is specified as a server auth mode. - sso: - # -- Create SSO configuration. If you set `true` , please also set `.Values.server.authModes` as `sso`. - enabled: false - # -- The root URL of the OIDC identity provider - issuer: https://accounts.google.com - clientId: - # -- Name of secret to retrieve the app OIDC client ID - name: argo-server-sso - # -- Key of secret to retrieve the app OIDC client ID - key: client-id - clientSecret: - # -- Name of a secret to retrieve the app OIDC client secret - name: argo-server-sso - # -- Key of a secret to retrieve the app OIDC client secret - key: client-secret - # -- The OIDC redirect URL. Should be in the form /oauth2/callback. - redirectUrl: "" - rbac: - # -- Adds ServiceAccount Policy to server (Cluster)Role. - enabled: true - # -- Whitelist to allow server to fetch Secrets + # -- SSO configuration when SSO is specified as a server auth mode. + sso: {} + ## All the values are required. SSO is activated by adding --auth-mode=sso + ## to the server command line. + # + ## The root URL of the OIDC identity provider. + # issuer: https://accounts.google.com + ## Name of a secret and a key in it to retrieve the app OIDC client ID from. + # clientId: + # name: argo-server-sso + # key: client-id + ## Name of a secret and a key in it to retrieve the app OIDC client secret from. + # clientSecret: + # name: argo-server-sso + # key: client-secret + ## The OIDC redirect URL. Should be in the form /oauth2/callback. + # redirectUrl: https://argo/oauth2/callback + # rbac: + # enabled: true ## When present, restricts secrets the server can read to a given list. ## You can use it to restrict the server to only be able to access the ## service account token secrets that are associated with service accounts ## used for authorization. - secretWhitelist: [] - # -- Scopes requested from the SSO ID provider - ## The 'groups' scope requests group membership information, which is usually used for authorization decisions. - scopes: [] - # - groups - # -- Define how long your login is valid for (in hours) - ## If omitted, defaults to 10h. - sessionExpiry: "" - # -- Alternate root URLs that can be included for some OIDC providers - issuerAlias: "" - # -- Override claim name for OIDC groups - customGroupClaimName: "" - # -- Specify the user info endpoint that contains the groups claim - ## Configure this if your OIDC provider provides groups information only using the user-info endpoint (e.g. Okta) - userInfoPath: "" - # -- Skip TLS verification for the HTTP client - insecureSkipVerify: false - # -- Filter the groups returned by the OIDC provider - ## A logical "OR" is used between each regex in the list - filterGroupsRegex: [] - # - ".*argo-wf.*" - # - ".*argo-workflow.*" + # secretWhitelist: [] + ## Scopes requested from the SSO ID provider. The 'groups' scope requests + ## group membership information, which is usually used for authorization + ## decisions. + # scopes: + # - groups # -- Extra containers to be added to the server deployment extraContainers: [] @@ -770,12 +613,6 @@ server: # -- Enables init containers to be added to the server deployment extraInitContainers: [] - # -- Specify postStart and preStop lifecycle hooks for server container - lifecycle: {} - - # -- terminationGracePeriodSeconds for container lifecycle hook - terminationGracePeriodSeconds: 30 - # -- Array of extra K8s manifests to deploy extraObjects: [] # - apiVersion: secrets-store.csi.x-k8s.io/v1 @@ -809,64 +646,58 @@ artifactRepository: archiveLogs: false # -- Store artifact in a S3-compliant object store # @default -- See [values.yaml] - s3: {} - # # Note the `key` attribute is not the actual secret, it's the PATH to - # # the contents in the associated secret, as defined by the `name` attribute. - # accessKeySecret: - # name: "{{ .Release.Name }}-minio" - # key: accesskey - # secretKeySecret: - # name: "{{ .Release.Name }}-minio" - # key: secretkey - # sessionTokenSecret: - # name: "{{ .Release.Name }}-minio" - # key: sessionToken - # # insecure will disable TLS. Primarily used for minio installs not configured with TLS - # insecure: false - # caSecret: - # name: ca-root - # key: cert.pem + s3: + # Note the `key` attribute is not the actual secret, it's the PATH to + # the contents in the associated secret, as defined by the `name` attribute. + accessKeySecret: + # name: -minio + key: accesskey + secretKeySecret: + # name: -minio + key: secretkey + # insecure will disable TLS. Primarily used for minio installs not configured with TLS + insecure: false # bucket: # endpoint: # region: # roleARN: # useSDKCreds: true # encryptionOptions: - # enableEncryption: true + # enableEncryption: true # -- Store artifact in a GCS object store # @default -- `{}` (See [values.yaml]) gcs: {} - # bucket: -argo - # keyFormat: "{{ \"{{workflow.namespace}}/{{workflow.name}}/{{pod.name}}\" }}" - # # serviceAccountKeySecret is a secret selector. - # # It references the k8s secret named 'my-gcs-credentials'. - # # This secret is expected to have have the key 'serviceAccountKey', - # # containing the base64 encoded credentials - # # to the bucket. - # # - # # If it's running on GKE and Workload Identity is used, - # # serviceAccountKeySecret is not needed. - # serviceAccountKeySecret: - # name: my-gcs-credentials - # key: serviceAccountKey + # bucket: -argo + # keyFormat: "{{workflow.namespace}}/{{workflow.name}}/{{pod.name}}" + # serviceAccountKeySecret is a secret selector. + # It references the k8s secret named 'my-gcs-credentials'. + # This secret is expected to have have the key 'serviceAccountKey', + # containing the base64 encoded credentials + # to the bucket. + # + # If it's running on GKE and Workload Identity is used, + # serviceAccountKeySecret is not needed. + # serviceAccountKeySecret: + # name: my-gcs-credentials + # key: serviceAccountKey # -- Store artifact in Azure Blob Storage # @default -- `{}` (See [values.yaml]) azure: {} - # endpoint: https://mystorageaccountname.blob.core.windows.net - # container: my-container-name - # blobNameFormat: path/in/container - # # accountKeySecret is a secret selector. - # # It references the k8s secret named 'my-azure-storage-credentials'. - # # This secret is expected to have have the key 'account-access-key', - # # containing the base64 encoded credentials to the storage account. - # # If a managed identity has been assigned to the machines running the - # # workflow (e.g., https://docs.microsoft.com/en-us/azure/aks/use-managed-identity) - # # then accountKeySecret is not needed, and useSDKCreds should be - # # set to true instead: - # useSDKCreds: true - # accountKeySecret: - # name: my-azure-storage-credentials - # key: account-access-key + # endpoint: https://mystorageaccountname.blob.core.windows.net + # container: my-container-name + # blob: path/in/container + ## accountKeySecret is a secret selector. + ## It references the k8s secret named 'my-azure-storage-credentials'. + ## This secret is expected to have have the key 'account-access-key', + ## containing the base64 encoded credentials to the storage account. + ## If a managed identity has been assigned to the machines running the + ## workflow (e.g., https://docs.microsoft.com/en-us/azure/aks/use-managed-identity) + ## then accountKeySecret is not needed, and useSDKCreds should be + ## set to true instead: + # useSDKCreds: true + # accountKeySecret: + # name: my-azure-storage-credentials + # key: account-access-key # -- The section of custom artifact repository. # Utilize a custom artifact repository that is not one of the current base ones (s3, gcs, azure) @@ -880,62 +711,9 @@ customArtifactRepository: {} # name: artifactory-creds # key: password -# -- The section of [artifact repository ref](https://argo-workflows.readthedocs.io/en/stable/artifact-repository-ref/). -# Each map key is the name of configmap -# @default -- `{}` (See [values.yaml]) -artifactRepositoryRef: {} - # # -- 1st ConfigMap - # # If you want to use this config map by default, name it "artifact-repositories". - # # Otherwise, you can provide a reference to a - # # different config map in `artifactRepositoryRef.configMap`. - # artifact-repositories: - # # -- v3.0 and after - if you want to use a specific key, put that key into this annotation. - # annotations: - # workflows.argoproj.io/default-artifact-repository: default-v1-s3-artifact-repository - # # 1st data of configmap. See above artifactRepository or customArtifactRepository. - # default-v1-s3-artifact-repository: - # archiveLogs: false - # s3: - # bucket: my-bucket - # endpoint: minio:9000 - # insecure: true - # accessKeySecret: - # name: my-minio-cred - # key: accesskey - # secretKeySecret: - # name: my-minio-cred - # key: secretkey - # # 2nd data - # oss-artifact-repository: - # archiveLogs: false - # oss: - # endpoint: http://oss-cn-zhangjiakou-internal.aliyuncs.com - # bucket: $mybucket - # # accessKeySecret and secretKeySecret are secret selectors. - # # It references the k8s secret named 'bucket-workflow-artifect-credentials'. - # # This secret is expected to have have the keys 'accessKey' - # # and 'secretKey', containing the base64 encoded credentials - # # to the bucket. - # accessKeySecret: - # name: $mybucket-credentials - # key: accessKey - # secretKeySecret: - # name: $mybucket-credentials - # key: secretKey - # # 2nd ConfigMap - # another-artifact-repositories: - # annotations: - # workflows.argoproj.io/default-artifact-repository: gcs - # gcs: - # bucket: my-bucket - # keyFormat: prefix/in/bucket/{{workflow.name}}/{{pod.name}} - # serviceAccountKeySecret: - # name: my-gcs-credentials - # key: serviceAccountKey - emissary: # -- The command/args for each image on workflow, needed when the command is not specified and the emissary executor is used. - ## See more: https://argo-workflows.readthedocs.io/en/stable/workflow-executors/#emissary-emissary + ## See more: https://argoproj.github.io/argo-workflows/workflow-executors/#emissary-emissary images: [] # argoproj/argosay:v2: # cmd: [/argosay] diff --git a/charts/argocd-apps/Chart.yaml b/charts/argocd-apps/Chart.yaml index c4433fa4..c8e37b3b 100644 --- a/charts/argocd-apps/Chart.yaml +++ b/charts/argocd-apps/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: argocd-apps description: A Helm chart for managing additional Argo CD Applications and Projects type: application -version: 2.0.2 +version: 1.0.0 home: https://github.com/argoproj/argo-helm icon: https://argo-cd.readthedocs.io/en/stable/assets/logo.png keywords: @@ -13,9 +13,6 @@ maintainers: - name: argoproj url: https://argoproj.github.io/ annotations: - artifacthub.io/signKey: | - fingerprint: 2B8F22F57260EFA67BE1C5824B11F800CD9D2252 - url: https://argoproj.github.io/argo-helm/pgp_keys.asc artifacthub.io/changes: | - - kind: added - description: allow setting applicationset finalizers + - kind: fixed + description: Changed the project field of the applicationset from a tpl function to a string. diff --git a/charts/argocd-apps/README.md b/charts/argocd-apps/README.md index 447df733..bc0d0685 100644 --- a/charts/argocd-apps/README.md +++ b/charts/argocd-apps/README.md @@ -28,11 +28,10 @@ $ helm install my-release argo/argocd-apps | Key | Type | Default | Description | |-----|------|---------|-------------| -| applications | object | `{}` (See [values.yaml]) | Deploy Argo CD Applications within this helm release | -| applicationsets | object | `{}` (See [values.yaml]) | Deploy Argo CD ApplicationSets within this helm release | -| extensions | object | `{}` (See [values.yaml]) | DEPRECATED - Please refer [Deprecation Notice](https://github.com/argoproj-labs/argocd-extensions?tab=readme-ov-file#deprecation-notice) for more info. | -| itemTemplates | list | `[]` (See [values.yaml]) | Deploy Argo CD Applications/ApplicationSets/Projects within this helm release | -| projects | object | `{}` (See [values.yaml]) | Deploy Argo CD Projects within this helm release | +| applications | list | `[]` (See [values.yaml]) | Deploy Argo CD Applications within this helm release | +| applicationsets | list | `[]` (See [values.yaml]) | Deploy Argo CD ApplicationSets within this helm release | +| extensions | list | `[]` (See [values.yaml]) | Deploy Argo UI Extensions within this helm release | +| projects | list | `[]` (See [values.yaml]) | Deploy Argo CD Projects within this helm release | ---------------------------------------------- Autogenerated from chart metadata using [helm-docs](https://github.com/norwoodj/helm-docs) diff --git a/charts/argocd-apps/ci/applications-multiple-sources-values.yaml b/charts/argocd-apps/ci/applications-multiple-sources-values.yaml index f1023424..4d21403b 100644 --- a/charts/argocd-apps/ci/applications-multiple-sources-values.yaml +++ b/charts/argocd-apps/ci/applications-multiple-sources-values.yaml @@ -1,28 +1,28 @@ # Test with multi-source applications applications: - argocd-application-multiple-sources: - additionalLabels: {} - additionalAnnotations: {} - finalizers: - - resources-finalizer.argocd.argoproj.io - project: default - sources: - - chart: elasticsearch - repoURL: https://helm.elastic.co - targetRevision: 8.5.1 - - repoURL: https://github.com/argoproj/argocd-example-apps.git - path: guestbook - targetRevision: HEAD - destination: - server: https://kubernetes.default.svc - namespace: default - syncPolicy: - automated: - prune: false - selfHeal: false - ignoreDifferences: - - group: apps - kind: Deployment - jsonPointers: - - /spec/replicas +- name: argocd-application-multiple-sources + additionalLabels: {} + additionalAnnotations: {} + finalizers: + - resources-finalizer.argocd.argoproj.io + project: default + sources: + - chart: elasticsearch + repoURL: https://helm.elastic.co + targetRevision: 8.5.1 + - repoURL: https://github.com/argoproj/argocd-example-apps.git + path: guestbook + targetRevision: HEAD + destination: + server: https://kubernetes.default.svc + namespace: default + syncPolicy: + automated: + prune: false + selfHeal: false + ignoreDifferences: + - group: apps + kind: Deployment + jsonPointers: + - /spec/replicas diff --git a/charts/argocd-apps/ci/applications-values.yaml b/charts/argocd-apps/ci/applications-values.yaml index 4f742748..9d8b21bf 100644 --- a/charts/argocd-apps/ci/applications-values.yaml +++ b/charts/argocd-apps/ci/applications-values.yaml @@ -1,33 +1,31 @@ # Test with applications applications: - argocd-application: - additionalLabels: {} - additionalAnnotations: {} - finalizers: - - resources-finalizer.argocd.argoproj.io - project: default - source: - repoURL: https://github.com/argoproj/argocd-example-apps.git - targetRevision: HEAD - path: guestbook - directory: - recurse: true - destination: - server: https://kubernetes.default.svc - namespace: default - syncPolicy: - automated: - prune: false - selfHeal: false - syncOptions: - - ApplyOutOfSyncOnly=true - revisionHistoryLimit: null - ignoreDifferences: - - group: apps - kind: Deployment - jsonPointers: - - /spec/replicas - info: - - name: url - value: https://argoproj.github.io/ +- name: argocd-application + additionalLabels: {} + additionalAnnotations: {} + finalizers: + - resources-finalizer.argocd.argoproj.io + project: default + source: + repoURL: https://github.com/argoproj/argocd-example-apps.git + targetRevision: HEAD + path: guestbook + directory: + recurse: true + destination: + server: https://kubernetes.default.svc + namespace: default + syncPolicy: + automated: + prune: false + selfHeal: false + revisionHistoryLimit: null + ignoreDifferences: + - group: apps + kind: Deployment + jsonPointers: + - /spec/replicas + info: + - name: url + value: https://argoproj.github.io/ diff --git a/charts/argocd-apps/ci/applicationsets-multiple-sources-values.yaml b/charts/argocd-apps/ci/applicationsets-multiple-sources-values.yaml index d8fe500c..f1dd7cda 100644 --- a/charts/argocd-apps/ci/applicationsets-multiple-sources-values.yaml +++ b/charts/argocd-apps/ci/applicationsets-multiple-sources-values.yaml @@ -1,24 +1,24 @@ # Test with multi-source applicationsets applicationsets: - applicationset-multiple-sources: - generators: - - list: - elements: - - cluster: default-cluster - url: https://kubernetes.default.svc - template: - metadata: - name: '{{cluster}}-guestbook' - spec: - project: default - sources: - - chart: elasticsearch - repoURL: https://helm.elastic.co - targetRevision: 8.5.1 - - repoURL: https://github.com/argoproj/argocd-example-apps.git - path: guestbook - targetRevision: HEAD - destination: - server: '{{url}}' - namespace: default +- name: applicationset-multiple-sources + generators: + - list: + elements: + - cluster: default-cluster + url: https://kubernetes.default.svc + template: + metadata: + name: '{{cluster}}-guestbook' + spec: + project: default + sources: + - chart: elasticsearch + repoURL: https://helm.elastic.co + targetRevision: 8.5.1 + - repoURL: https://github.com/argoproj/argocd-example-apps.git + path: guestbook + targetRevision: HEAD + destination: + server: '{{url}}' + namespace: default diff --git a/charts/argocd-apps/ci/applicationsets-progressive-syncs-values.yaml b/charts/argocd-apps/ci/applicationsets-progressive-syncs-values.yaml deleted file mode 100644 index a225e7c5..00000000 --- a/charts/argocd-apps/ci/applicationsets-progressive-syncs-values.yaml +++ /dev/null @@ -1,41 +0,0 @@ -# Test applicationsets with Progressive Syncs - -applicationsets: - applicationset-progressive-syncs: - generators: - - list: - elements: - - cluster: engineering-dev - url: https://1.2.3.4 - env: env-dev - - cluster: engineering-prod - url: https://9.8.7.6/ - env: env-prod - strategy: - type: RollingSync - rollingSync: - steps: - - matchExpressions: - - key: envLabel - operator: In - values: - - env-dev - - matchExpressions: - - key: envLabel - operator: In - values: - - env-prod - template: - metadata: - name: '{{.cluster}}-guestbook' - labels: - envLabel: '{{.env}}' - spec: - project: my-project - source: - repoURL: https://github.com/argoproj/argocd-example-apps.git - targetRevision: HEAD - path: guestbook/{{.cluster}} - destination: - server: '{{.url}}' - namespace: guestbook diff --git a/charts/argocd-apps/ci/applicationsets-values.yaml b/charts/argocd-apps/ci/applicationsets-values.yaml index 394e2c88..6142b1bb 100644 --- a/charts/argocd-apps/ci/applicationsets-values.yaml +++ b/charts/argocd-apps/ci/applicationsets-values.yaml @@ -1,92 +1,73 @@ # Test with applicationsets applicationsets: - applicationset: - additionalLabels: {} - additionalAnnotations: {} - finalizers: - - resources-finalizer.argocd.argoproj.io - # See PR #10026 (ArgoCD v2.5 or later) - # goTemplate: false - generators: - - git: +- name: applicationset + additionalLabels: {} + additionalAnnotations: {} + # See PR #10026 (ArgoCD v2.5 or later) + # goTemplate: false + generators: + - git: + repoURL: https://github.com/argoproj/argocd-example-apps.git + revision: HEAD + directories: + - path: guestbook + - path: kustomize-* + template: + metadata: + name: '{{path.basename}}' + labels: {} + annotations: {} + spec: + project: default + source: repoURL: https://github.com/argoproj/argocd-example-apps.git - revision: HEAD - directories: - - path: guestbook - - path: kustomize-* - # Ref https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Controlling-Resource-Modification/#allow-temporarily-toggling-auto-sync - ignoreApplicationDifferences: - - jsonPointers: - - /spec/syncPolicy - template: - metadata: - name: '{{path.basename}}' - labels: {} - annotations: {} - spec: - project: default - source: - repoURL: https://github.com/argoproj/argocd-example-apps.git - targetRevision: HEAD - path: '{{path}}' - destination: - server: https://kubernetes.default.svc - namespace: default - syncPolicy: - automated: - prune: false - selfHeal: false - ignoreDifferences: - - group: apps - kind: Deployment - jsonPointers: - - /spec/replicas - info: - - name: url - value: https://argoproj.github.io/ - syncPolicy: - # Set Application finalizer - preserveResourcesOnDeletion: false - templatePatch: | - spec: - source: - helm: - valueFiles: - {{- range $valueFile := .valueFiles }} - - {{ $valueFile }} - {{- end }} - {{- if .autoSync }} - syncPolicy: - automated: - prune: {{ .prune }} - {{- end }} - applicationset-list-generator: - generators: - - list: - elements: - - cluster: engineering-dev - url: https://kubernetes.default.svc - template: - metadata: {} - spec: - project: '{{cluster}}' - source: - targetRevision: HEAD - repoURL: https://github.com/argoproj/argo-cd.git - # New path value is generated here: - path: 'applicationset/examples/template-override/{{cluster}}-override' - destination: {} - template: - metadata: - name: '{{cluster}}-guestbook' - spec: - project: '{{cluster}}' - source: - repoURL: https://github.com/argoproj/argo-cd.git - targetRevision: HEAD - # This 'default' value is not used: it is is replaced by the generator's template path, above - path: applicationset/examples/template-override/default - destination: - server: '{{url}}' - namespace: guestbook + targetRevision: HEAD + path: '{{path}}' + destination: + server: https://kubernetes.default.svc + namespace: default + syncPolicy: + automated: + prune: false + selfHeal: false + ignoreDifferences: + - group: apps + kind: Deployment + jsonPointers: + - /spec/replicas + info: + - name: url + value: https://argoproj.github.io/ + syncPolicy: + # Set Application finalizer + preserveResourcesOnDeletion: false +- name: applicationset-list-generator + generators: + - list: + elements: + - cluster: engineering-dev + url: https://kubernetes.default.svc + template: + metadata: {} + spec: + project: '{{cluster}}' + source: + targetRevision: HEAD + repoURL: https://github.com/argoproj/argo-cd.git + # New path value is generated here: + path: 'applicationset/examples/template-override/{{cluster}}-override' + destination: {} + template: + metadata: + name: '{{cluster}}-guestbook' + spec: + project: '{{cluster}}' + source: + repoURL: https://github.com/argoproj/argo-cd.git + targetRevision: HEAD + # This 'default' value is not used: it is is replaced by the generator's template path, above + path: applicationset/examples/template-override/default + destination: + server: '{{url}}' + namespace: guestbook diff --git a/charts/argocd-apps/ci/extensions-values.yaml b/charts/argocd-apps/ci/extensions-values.yaml new file mode 100644 index 00000000..15a9fa73 --- /dev/null +++ b/charts/argocd-apps/ci/extensions-values.yaml @@ -0,0 +1,12 @@ +# Test with extensions + +extensions: + - name: example + namespace: default + additionalLabels: {} + additionalAnnotations: {} + sources: + - git: + url: https://github.com/argoproj-labs/argocd-example-extension.git + - web: + url: https://github.com/argoproj-labs/argocd-example-extension/releases/download/v0.1.0/extension.tar diff --git a/charts/argocd-apps/ci/item-templates.yaml b/charts/argocd-apps/ci/item-templates.yaml deleted file mode 100644 index 8a08c684..00000000 --- a/charts/argocd-apps/ci/item-templates.yaml +++ /dev/null @@ -1,61 +0,0 @@ -itemTemplates: - - items: - - name: my-appset - generators: &generators - - list: - elements: - - cluster: engineering-dev - url: https://1.2.3.4 - - cluster: engineering-prod - url: https://2.4.6.8 - - cluster: finance-preprod - url: https://9.8.7.6 - template: - apiVersion: argoproj.io/v1alpha1 - kind: ApplicationSet - metadata: - name: "{{ .name }}" - spec: - generators: *generators - template: - metadata: - name: "{{`{{cluster}}`}}-guestbook" - spec: - project: my-project - source: - repoURL: https://github.com/infra-team/cluster-deployments.git - targetRevision: HEAD - path: guestbook/{{`{{cluster}}`}} - destination: - server: "{{`{{cluster}}`}}" - namespace: guestbook - - items: - - name: my-appset - generators: - - list: - elements: - - cluster: engineering-dev - url: https://1.2.3.4 - - cluster: engineering-prod - url: https://2.4.6.8 - - cluster: finance-preprod - url: https://9.8.7.6 - template: |- - apiVersion: argoproj.io/v1alpha1 - kind: ApplicationSet - metadata: - name: {{ .name }} - spec: - generators: {{ toYaml .generators | nindent 4 }} - template: - metadata: - name: '{{`{{cluster}}`}}-guestbook' - spec: - project: my-project - source: - repoURL: https://github.com/infra-team/cluster-deployments.git - targetRevision: HEAD - path: guestbook/{{`{{cluster}}`}} - destination: - server: '{{`{{cluster}}`}}' - namespace: guestbook diff --git a/charts/argocd-apps/templates/applications.yaml b/charts/argocd-apps/templates/applications.yaml index b26b6684..df0ea5eb 100644 --- a/charts/argocd-apps/templates/applications.yaml +++ b/charts/argocd-apps/templates/applications.yaml @@ -1,50 +1,50 @@ -{{- range $appName, $appData:= .Values.applications }} +{{- range .Values.applications }} --- apiVersion: argoproj.io/v1alpha1 kind: Application metadata: - {{- with $appData.additionalAnnotations }} + {{- with .additionalAnnotations }} annotations: {{- range $key, $value := . }} {{ $key }}: {{ $value | quote }} {{- end }} {{- end }} - {{- with $appData.additionalLabels }} + {{- with .additionalLabels }} labels: {{- toYaml . | nindent 4 }} {{- end }} - name: {{ $appName }} - {{- with $appData.namespace }} + name: {{ .name }} + {{- with .namespace }} namespace: {{ . }} {{- end }} - {{- with $appData.finalizers }} + {{- with .finalizers }} finalizers: {{- toYaml . | nindent 4 }} {{- end }} spec: - project: {{ tpl $appData.project $ }} - {{- with $appData.source }} + project: {{ tpl .project $ }} + {{- with .source }} source: {{- toYaml . | nindent 4 }} {{- end }} - {{- with $appData.sources }} + {{- with .sources }} sources: {{- toYaml . | nindent 4 }} {{- end }} destination: - {{- toYaml $appData.destination | nindent 4 }} - {{- with $appData.syncPolicy }} + {{- toYaml .destination | nindent 4 }} + {{- with .syncPolicy }} syncPolicy: {{- toYaml . | nindent 4 }} {{- end }} - {{- with $appData.revisionHistoryLimit }} + {{- with .revisionHistoryLimit }} revisionHistoryLimit: {{ . }} {{- end }} - {{- with $appData.ignoreDifferences }} + {{- with .ignoreDifferences }} ignoreDifferences: {{- toYaml . | nindent 4 }} {{- end }} - {{- with $appData.info }} + {{- with .info }} info: {{- toYaml . | nindent 4 }} {{- end }} diff --git a/charts/argocd-apps/templates/applicationsets.yaml b/charts/argocd-apps/templates/applicationsets.yaml index 606d6078..bb8b09d1 100644 --- a/charts/argocd-apps/templates/applicationsets.yaml +++ b/charts/argocd-apps/templates/applicationsets.yaml @@ -1,47 +1,36 @@ -{{- range $appSetName, $appSetData:= .Values.applicationsets }} + +{{- range .Values.applicationsets }} --- apiVersion: argoproj.io/v1alpha1 kind: ApplicationSet metadata: - {{- with $appSetData.additionalAnnotations }} + {{- with .additionalAnnotations }} annotations: {{- range $key, $value := . }} {{ $key }}: {{ $value | quote }} {{- end }} {{- end }} - {{- with $appSetData.additionalLabels }} + {{- with .additionalLabels }} labels: {{- toYaml . | nindent 4 }} {{- end }} - name: {{ $appSetName }} - {{- with $appSetData.namespace }} + name: {{ .name }} + {{- with .namespace }} namespace: {{ . }} {{- end }} - {{- with $appSetData.finalizers }} - finalizers: - {{- toYaml . | nindent 4 }} - {{- end }} spec: - {{- if hasKey $appSetData "goTemplate" }} - goTemplate: {{ $appSetData.goTemplate }} + {{- if hasKey . "goTemplate" }} + goTemplate: {{ .goTemplate }} {{- end }} - {{- with $appSetData.generators }} + {{- with .generators }} generators: {{- toYaml . | nindent 4 }} {{- end }} - {{- with $appSetData.ignoreApplicationDifferences }} - ignoreApplicationDifferences: - {{- toYaml . | nindent 4 }} - {{- end }} - {{- with $appSetData.strategy }} - strategy: - {{- toYaml . | nindent 4 }} - {{- end }} - {{- with $appSetData.syncPolicy }} + {{- with .syncPolicy }} syncPolicy: {{- toYaml . | nindent 4 }} {{- end }} - {{- with $appSetData.template }} + {{- with .template }} template: {{- with .metadata }} metadata: @@ -87,8 +76,4 @@ spec: {{- end }} {{- end -}} {{- end }} - {{- with $appSetData.templatePatch }} - templatePatch: | - {{- . | nindent 4 }} - {{- end }} {{- end }} diff --git a/charts/argocd-apps/templates/extensions.yaml b/charts/argocd-apps/templates/extensions.yaml index 8a19e3a5..1893c2a7 100644 --- a/charts/argocd-apps/templates/extensions.yaml +++ b/charts/argocd-apps/templates/extensions.yaml @@ -1,25 +1,25 @@ -{{- range $extensionName, $extensionData:= .Values.extensions }} +{{- range .Values.extensions }} --- apiVersion: argoproj.io/v1alpha1 kind: ArgoCDExtension metadata: - name: {{ $extensionName }} - {{- with $extensionData.namespace }} + name: {{ .name }} + {{- with .namespace }} namespace: {{ . }} {{- end }} finalizers: - extensions-finalizer.argocd.argoproj.io - {{- with $extensionData.additionalLabels }} + {{- with .additionalLabels }} labels: {{- toYaml . | nindent 4 }} {{- end }} - {{- with $extensionData.additionalAnnotations }} + {{- with .additionalAnnotations }} annotations: {{- range $key, $value := . }} {{ $key }}: {{ $value | quote }} {{- end }} {{- end }} -{{- with $extensionData.sources }} +{{- with .sources }} spec: sources: {{- toYaml . | nindent 4 }} diff --git a/charts/argocd-apps/templates/item-templates.yaml b/charts/argocd-apps/templates/item-templates.yaml deleted file mode 100644 index a209cc2a..00000000 --- a/charts/argocd-apps/templates/item-templates.yaml +++ /dev/null @@ -1,15 +0,0 @@ -{{- range .Values.itemTemplates }} -{{- if kindIs "string" .template }} -{{- $template := .template -}} -{{- range .items }} ---- -{{ tpl $template (set . "Template" $.Template) }} -{{- end }} -{{- else }} -{{- $template := .template | toYaml -}} -{{- range .items }} ---- -{{ tpl $template (set . "Template" $.Template) }} -{{- end }} -{{- end }} -{{- end }} \ No newline at end of file diff --git a/charts/argocd-apps/templates/projects.yaml b/charts/argocd-apps/templates/projects.yaml index d6032636..f747d1b6 100644 --- a/charts/argocd-apps/templates/projects.yaml +++ b/charts/argocd-apps/templates/projects.yaml @@ -1,74 +1,69 @@ -{{- range $projectName, $projectData := .Values.projects }} +{{- range .Values.projects }} --- apiVersion: argoproj.io/v1alpha1 kind: AppProject metadata: - {{- with $projectData.additionalAnnotations }} + {{- with .additionalAnnotations }} annotations: {{- range $key, $value := . }} {{ $key }}: {{ $value | quote }} {{- end }} {{- end }} - {{- with $projectData.additionalLabels }} + {{- with .additionalLabels }} labels: {{- toYaml . | nindent 4 }} {{- end }} - name: {{ $projectName }} - {{- with $projectData.namespace }} + name: {{ .name }} + {{- with .namespace }} namespace: {{ . }} {{- end }} - {{- with $projectData.finalizers }} + {{- with .finalizers }} finalizers: {{- toYaml . | nindent 4 }} {{- end }} spec: - {{- with $projectData.permitOnlyProjectScopedClusters }} - permitOnlyProjectScopedClusters: {{ . }} - {{- end }} - {{- with $projectData.description }} - description: {{ . }} - {{- end }} - {{- with $projectData.sourceRepos }} + description: {{ .description }} + {{- with .sourceRepos }} sourceRepos: {{- toYaml . | nindent 4 }} {{- end }} - {{- with $projectData.destinations }} + {{- with .destinations }} destinations: {{- toYaml . | nindent 4 }} {{- end }} - {{- with $projectData.clusterResourceWhitelist }} + {{- with .clusterResourceWhitelist }} clusterResourceWhitelist: {{- toYaml . | nindent 4 }} {{- end }} - {{- with $projectData.clusterResourceBlacklist }} + {{- with .clusterResourceBlacklist }} clusterResourceBlacklist: {{- toYaml . | nindent 4 }} {{- end }} - {{- with $projectData.namespaceResourceBlacklist }} + {{- with .namespaceResourceBlacklist }} namespaceResourceBlacklist: {{- toYaml . | nindent 4 }} {{- end }} - {{- with $projectData.namespaceResourceWhitelist }} + {{- with .namespaceResourceWhitelist }} namespaceResourceWhitelist: {{- toYaml . | nindent 4 }} {{- end }} - {{- with $projectData.orphanedResources }} + {{- with .orphanedResources }} orphanedResources: {{- toYaml . | nindent 4 }} {{- end }} - {{- with $projectData.roles }} + {{- with .roles }} roles: {{- toYaml . | nindent 4 }} {{- end }} - {{- with $projectData.syncWindows }} + {{- with .syncWindows }} syncWindows: {{- toYaml . | nindent 4 }} {{- end }} - {{- with $projectData.signatureKeys }} + {{- with .signatureKeys }} signatureKeys: {{- toYaml . | nindent 4 }} {{- end }} - {{- with $projectData.sourceNamespaces }} + {{- with .sourceNamespaces }} sourceNamespaces: {{- toYaml . | nindent 4 }} {{- end }} diff --git a/charts/argocd-apps/values.yaml b/charts/argocd-apps/values.yaml index 127dc6a9..eb0767b9 100644 --- a/charts/argocd-apps/values.yaml +++ b/charts/argocd-apps/values.yaml @@ -1,255 +1,149 @@ # -- Deploy Argo CD Applications within this helm release -# @default -- `{}` (See [values.yaml]) +# @default -- `[]` (See [values.yaml]) ## Ref: https://github.com/argoproj/argo-cd/blob/master/docs/operator-manual/ -applications: {} -# guestbook: -# namespace: argocd -# additionalLabels: {} -# additionalAnnotations: {} -# finalizers: -# - resources-finalizer.argocd.argoproj.io -# project: guestbook -# source: -# repoURL: https://github.com/argoproj/argocd-example-apps.git -# targetRevision: HEAD -# path: guestbook -# directory: -# recurse: true -# # ArgoCD v2.6 or later -# sources: +applications: [] +# - name: guestbook +# namespace: argocd +# additionalLabels: {} +# additionalAnnotations: {} +# finalizers: +# - resources-finalizer.argocd.argoproj.io +# project: guestbook +# source: +# repoURL: https://github.com/argoproj/argocd-example-apps.git +# targetRevision: HEAD +# path: guestbook +# directory: +# recurse: true +# # ArgoCD v2.6 or later +# sources: # - chart: elasticsearch # repoURL: https://helm.elastic.co # targetRevision: 8.5.1 # - repoURL: https://github.com/argoproj/argocd-example-apps.git # path: guestbook # targetRevision: HEAD -# destination: -# server: https://kubernetes.default.svc -# namespace: guestbook -# syncPolicy: -# automated: -# prune: false -# selfHeal: false -# syncOptions: -# - CreateNamespace=true -# revisionHistoryLimit: null -# ignoreDifferences: -# - group: apps -# kind: Deployment -# jsonPointers: -# - /spec/replicas -# info: -# - name: url -# value: https://argoproj.github.io/ +# destination: +# server: https://kubernetes.default.svc +# namespace: guestbook +# syncPolicy: +# automated: +# prune: false +# selfHeal: false +# revisionHistoryLimit: null +# ignoreDifferences: +# - group: apps +# kind: Deployment +# jsonPointers: +# - /spec/replicas +# info: +# - name: url +# value: https://argoproj.github.io/ # -- Deploy Argo CD Projects within this helm release -# @default -- `{}` (See [values.yaml]) +# @default -- `[]` (See [values.yaml]) ## Ref: https://github.com/argoproj/argo-cd/blob/master/docs/operator-manual/ -projects: {} -# guestbook: -# namespace: argocd -# additionalLabels: {} -# additionalAnnotations: {} -# permitOnlyProjectScopedClusters: false -# finalizers: -# - resources-finalizer.argocd.argoproj.io -# description: Example Project -# sourceRepos: -# - '*' -# destinations: -# - namespace: guestbook -# server: https://kubernetes.default.svc -# clusterResourceWhitelist: [] -# clusterResourceBlacklist: [] -# namespaceResourceBlacklist: -# - group: '' -# kind: ResourceQuota -# - group: '' -# kind: LimitRange -# - group: '' -# kind: NetworkPolicy -# orphanedResources: {} -# roles: [] -# namespaceResourceWhitelist: -# - group: 'apps' -# kind: Deployment -# - group: 'apps' -# kind: StatefulSet -# orphanedResources: {} -# roles: [] -# syncWindows: -# - kind: allow -# schedule: '10 1 * * *' -# duration: 1h -# applications: -# - '*-prod' -# manualSync: true -# signatureKeys: -# - keyID: ABCDEF1234567890 -# sourceNamespaces: -# - argocd +projects: [] +# - name: guestbook +# namespace: argocd +# additionalLabels: {} +# additionalAnnotations: {} +# finalizers: +# - resources-finalizer.argocd.argoproj.io +# description: Example Project +# sourceRepos: +# - '*' +# destinations: +# - namespace: guestbook +# server: https://kubernetes.default.svc +# clusterResourceWhitelist: [] +# clusterResourceBlacklist: [] +# namespaceResourceBlacklist: +# - group: '' +# kind: ResourceQuota +# - group: '' +# kind: LimitRange +# - group: '' +# kind: NetworkPolicy +# orphanedResources: {} +# roles: [] +# namespaceResourceWhitelist: +# - group: 'apps' +# kind: Deployment +# - group: 'apps' +# kind: StatefulSet +# orphanedResources: {} +# roles: [] +# syncWindows: +# - kind: allow +# schedule: '10 1 * * *' +# duration: 1h +# applications: +# - '*-prod' +# manualSync: true +# signatureKeys: +# - keyID: ABCDEF1234567890 +# sourceNamespaces: +# - argocd # -- Deploy Argo CD ApplicationSets within this helm release -# @default -- `{}` (See [values.yaml]) -## Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/ -applicationsets: {} -# guestbook: -# namespace: argocd -# additionalLabels: {} -# additionalAnnotations: {} -# finalizers: -# - resources-finalizer.argocd.argoproj.io -# # See PR #10026 (ArgoCD v2.5 or later) -# # goTemplate: false -# generators: -# - git: -# repoURL: https://github.com/argoproj/argocd-example-apps.git -# revision: HEAD -# directories: -# - path: guestbook -# - path: kustomize-* -# # Ref https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Controlling-Resource-Modification/#allow-temporarily-toggling-auto-sync -# ignoreApplicationDifferences: -# - jsonPointers: -# - /spec/syncPolicy -# # Progressive Syncs is an experimental feature and it must be explicitly enabled -# # Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Progressive-Syncs/#enabling-progressive-syncs -# strategy: -# type: RollingSync -# rollingSync: -# steps: -# - matchExpressions: -# - key: project -# operator: In -# values: -# - guestbook -# - matchExpressions: -# - key: project -# operator: In -# values: -# - kustomize-foo -# - kustomize-bar -# template: -# metadata: -# name: '{{path.basename}}' -# labels: -# project: '{{path.basename}}' -# annotations: {} -# spec: -# project: default -# source: -# repoURL: https://github.com/argoproj/argocd-example-apps.git -# targetRevision: HEAD -# path: '{{path}}' -# destination: -# server: https://kubernetes.default.svc -# namespace: default -# syncPolicy: -# automated: -# prune: false -# selfHeal: false -# ignoreDifferences: -# - group: apps -# kind: Deployment -# jsonPointers: -# - /spec/replicas -# info: -# - name: url -# value: https://argoproj.github.io/ -# syncPolicy: -# # Set Application finalizer -# preserveResourcesOnDeletion: false -# # Templating is only available on string type -# templatePatch: | -# spec: -# source: -# helm: -# valueFiles: -# {{- range $valueFile := .valueFiles }} -# - {{ $valueFile }} -# {{- end }} -# {{- if .autoSync }} -# syncPolicy: -# automated: -# prune: {{ .prune }} -# {{- end }} - -# -- Deploy Argo CD Applications/ApplicationSets/Projects within this helm release # @default -- `[]` (See [values.yaml]) ## Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/ -itemTemplates: [] -# - items: -# - name: my-appset -# generators: &generators -# - list: -# elements: -# - cluster: engineering-dev -# url: https://1.2.3.4 -# - cluster: engineering-prod -# url: https://2.4.6.8 -# - cluster: finance-preprod -# url: https://9.8.7.6 +applicationsets: [] +# - name: guestbook +# namespace: argocd +# additionalLabels: {} +# additionalAnnotations: {} +# # See PR #10026 (ArgoCD v2.5 or later) +# # goTemplate: false +# generators: +# - git: +# repoURL: https://github.com/argoproj/argocd-example-apps.git +# revision: HEAD +# directories: +# - path: guestbook +# - path: kustomize-* # template: -# apiVersion: argoproj.io/v1alpha1 -# kind: ApplicationSet # metadata: -# name: "{{ .name }}" +# name: '{{path.basename}}' +# labels: {} +# annotations: {} # spec: -# generators: *generators -# template: -# metadata: -# name: "{{`{{cluster}}`}}-guestbook" -# spec: -# project: my-project -# source: -# repoURL: https://github.com/infra-team/cluster-deployments.git -# targetRevision: HEAD -# path: guestbook/{{`{{cluster}}`}} -# destination: -# server: "{{`{{cluster}}`}}" -# namespace: guestbook -# - items: -# - name: my-appset -# generators: -# - list: -# elements: -# - cluster: engineering-dev -# url: https://1.2.3.4 -# - cluster: engineering-prod -# url: https://2.4.6.8 -# - cluster: finance-preprod -# url: https://9.8.7.6 -# template: |- -# apiVersion: argoproj.io/v1alpha1 -# kind: ApplicationSet -# metadata: -# name: {{ .name }} -# spec: -# generators: {{ toYaml .generators | nindent 4 }} -# template: -# metadata: -# name: '{{`{{cluster}}`}}-guestbook' -# spec: -# project: my-project -# source: -# repoURL: https://github.com/infra-team/cluster-deployments.git -# targetRevision: HEAD -# path: guestbook/{{`{{cluster}}`}} -# destination: -# server: '{{`{{cluster}}`}}' -# namespace: guestbook +# project: default +# source: +# repoURL: https://github.com/argoproj/argocd-example-apps.git +# targetRevision: HEAD +# path: '{{path}}' +# destination: +# server: https://kubernetes.default.svc +# namespace: default +# syncPolicy: +# automated: +# prune: false +# selfHeal: false +# ignoreDifferences: +# - group: apps +# kind: Deployment +# jsonPointers: +# - /spec/replicas +# info: +# - name: url +# value: https://argoproj.github.io/ +# syncPolicy: +# # Set Application finalizer +# preserveResourcesOnDeletion: false -# -- DEPRECATED - Please refer [Deprecation Notice](https://github.com/argoproj-labs/argocd-extensions?tab=readme-ov-file#deprecation-notice) for more info. -# @default -- `{}` (See [values.yaml]) +# -- Deploy Argo UI Extensions within this helm release +# @default -- `[]` (See [values.yaml]) ## This function in tech preview stage, do expect unstability or breaking changes in newer versions. Bump image.tag if necessary. ## Ref: https://github.com/argoproj-labs/argocd-extensions -extensions: {} -# example: -# namespace: argocd -# additionalLabels: {} -# additionalAnnotations: {} -# sources: -# - git: -# url: https://github.com/argoproj-labs/argocd-example-extension.git -# - web: -# url: https://github.com/argoproj-labs/argocd-example-extension/releases/download/v0.1.0/extension.tar +extensions: [] + # - name: example + # namespace: argocd + # additionalLabels: {} + # additionalAnnotations: {} + # sources: + # - git: + # url: https://github.com/argoproj-labs/argocd-example-extension.git + # - web: + # url: https://github.com/argoproj-labs/argocd-example-extension/releases/download/v0.1.0/extension.tar diff --git a/charts/argocd-image-updater/Chart.yaml b/charts/argocd-image-updater/Chart.yaml index 02438363..d6ec30ef 100644 --- a/charts/argocd-image-updater/Chart.yaml +++ b/charts/argocd-image-updater/Chart.yaml @@ -2,8 +2,8 @@ apiVersion: v2 name: argocd-image-updater description: A Helm chart for Argo CD Image Updater, a tool to automatically update the container images of Kubernetes workloads which are managed by Argo CD type: application -version: 0.12.0 -appVersion: v0.15.2 +version: 0.9.0 +appVersion: v0.12.2 home: https://github.com/argoproj-labs/argocd-image-updater icon: https://argocd-image-updater.readthedocs.io/en/stable/assets/logo.png keywords: @@ -14,9 +14,6 @@ maintainers: - name: argoproj url: https://argoproj.github.io/ annotations: - artifacthub.io/signKey: | - fingerprint: 2B8F22F57260EFA67BE1C5824B11F800CD9D2252 - url: https://argoproj.github.io/argo-helm/pgp_keys.asc artifacthub.io/changes: | - - kind: changed - description: ConfigMap and Secret names are now configurable + - kind: fixed + description: add namespace field for namespace scoped resources diff --git a/charts/argocd-image-updater/README.md b/charts/argocd-image-updater/README.md index d77ee710..5d5c7253 100644 --- a/charts/argocd-image-updater/README.md +++ b/charts/argocd-image-updater/README.md @@ -14,7 +14,7 @@ helm repo add argo https://argoproj.github.io/argo-helm helm install argocd-image-updater argo/argocd-image-updater ``` -You will also need to run through the [secret setup documentation] so Argo CD Image Updater can talk to the Argo CD API (until its automated in this chart). +You will also need to run through the [secret setup documentation](https://argocd-image-updater.readthedocs.io/en/stable/install/start/#connect-using-argo-cd-api-server) so ArgoCD ImageUpdater can talk to the ArgoCD API (until its automated in this chart). ## Prerequisites @@ -22,9 +22,9 @@ You will also need to run through the [secret setup documentation] so Argo CD Im ## Configuration options -In order for your deployment of Argo CD Image Updater to be successful, you will need to make sure you set the correct configuration options described in detail on the [argocd-image-updater flags page]. +In order for your deployment of ArgoCD Image Updater to be successful, you will need to make sure you set the correct configuration options described in detail on the [argocd-image-updater flags page](https://argocd-image-updater.readthedocs.io/en/stable/install/running/#flags). -All of the `argocd-` prefixed flags, which tell `argocd-image-updater` how your Argo CD instance is setup, are set in the `config.argocd` values block. For instance: +All of the `argocd-` prefixed flags, which tell `argocd-image-updater` how your ArgoCD instance is setup, are set in the `config.argocd` values block. For instance: ```yaml config: @@ -35,12 +35,12 @@ config: plaintext: true ``` -Any additional arguments mentioned on the [argocd-image-updater flags page] can be configured using the `extraArgs` value, like so. +Any additional arguments mentioned on the [argocd-image-updater flags page](https://argocd-image-updater.readthedocs.io/en/stable/install/running/#flags) can be configured using the `extraArgs` value, like so. -### Argo CD API key +### ArgoCD API key If you are unable to install Argo CD Image Updater into the same Kubernetes cluster you might configure it to use API of your Argo CD installation. -Please also read [Configuration of Container Registries]. +Please also read [the documentation](https://argocd-image-updater.readthedocs.io/en/stable/configuration/registries/). ```yaml config: @@ -52,7 +52,7 @@ If you specify a token value the secret will be created. ### Registries -Argo CD Image Updater natively supports the following registries (as mentioned in [Configuration of Container Registries]): +ArgoCD Image Updater natively supports the following registries (as mentioned in [the documentation](https://argocd-image-updater.readthedocs.io/en/stable/configuration/registries/)): - Docker Hub - Google Container Registry @@ -60,7 +60,7 @@ Argo CD Image Updater natively supports the following registries (as mentioned i - GitHub Container Registry - GitHub Docker Packages -If you need support for ECR, you can reference this issue, [Support ECR authentication], for configuration. You can use the `authScripts` values to configure the scripts that are needed to authenticate with ECR. +If you need support for ECR, you can reference [this issue](https://github.com/argoproj-labs/argocd-image-updater/issues/112) for configuration. You can use the `authScripts` values to configure the scripts that are needed to authenticate with ECR. The `config.registries` value can be used exactly as it looks in the documentation as it gets dumped directly into a configmap in this chart. @@ -70,32 +70,22 @@ The `config.registries` value can be used exactly as it looks in the documentati |-----|------|---------|-------------| | affinity | object | `{}` | Kubernetes affinity settings for the deployment | | authScripts.enabled | bool | `false` | Whether to mount the defined scripts that can be used to authenticate with a registry, the scripts will be mounted at `/scripts` | -| authScripts.name | string | `"argocd-image-updater-authscripts"` | Name of the authentication scripts ConfigMap | | authScripts.scripts | object | `{}` | Map of key-value pairs where the key consists of the name of the script and the value the contents | | config.applicationsAPIKind | string | `""` | API kind that is used to manage Argo CD applications (`kubernetes` or `argocd`) | | config.argocd.grpcWeb | bool | `true` | Use the gRPC-web protocol to connect to the Argo CD API | | config.argocd.insecure | bool | `false` | If specified, the certificate of the Argo CD API server is not verified. | -| config.argocd.plaintext | bool | `false` | If specified, use an unencrypted HTTP connection to the Argo CD API instead of TLS. | +| config.argocd.plaintext | bool | `false` | If specified, use an unencrypted HTTP connection to the ArgoCD API instead of TLS. | | config.argocd.serverAddress | string | `""` | Connect to the Argo CD API server at server address | -| config.argocd.token | string | `""` | If specified, the secret with Argo CD API key will be created. | -| config.argocd.tokenSecretName | string | `"argocd-image-updater-secret"` | Name of the Secret containing the token | +| config.argocd.token | string | `""` | If specified, the secret with ArgoCD API key will be created. | | config.disableKubeEvents | bool | `false` | Disable kubernetes events | | config.gitCommitMail | string | `""` | E-Mail address to use for Git commits | -| config.gitCommitSignOff | bool | `false` | Enables sign off on commits | -| config.gitCommitSigningKey | string | `""` | Path to public SSH key mounted in container, or GPG key ID used to sign commits | -| config.gitCommitSigningMethod | string | `""` | Method used to sign Git commits. `openpgp` or `ssh` | | config.gitCommitTemplate | string | `""` | Changing the Git commit message | | config.gitCommitUser | string | `""` | Username to use for Git commits | -| config.logLevel | string | `"info"` | Argo CD Image Update log level | -| config.name | string | `"argocd-image-updater-config"` | Name of the ConfigMap | -| config.registries | list | `[]` | Argo CD Image Updater registries list configuration. More information [here](https://argocd-image-updater.readthedocs.io/en/stable/configuration/registries/) | -| config.sshConfig.config | string | `""` | Argo CD Image Updater ssh client parameter configuration. | -| config.sshConfig.name | string | `"argocd-image-updater-ssh-config"` | Name of the sshConfig ConfigMap | -| createClusterRoles | bool | `true` | Create cluster roles for cluster-wide installation. | +| config.logLevel | string | `"info"` | ArgoCD Image Update log level | +| config.registries | list | `[]` | ArgoCD Image Updater registries list configuration. More information [here](https://argocd-image-updater.readthedocs.io/en/stable/configuration/registries/) | +| config.sshConfig | object | `{}` | ArgoCD Image Updater ssh client parameter configuration. | | extraArgs | list | `[]` | Extra arguments for argocd-image-updater not defined in `config.argocd`. If a flag contains both key and value, they need to be split to a new entry | | extraEnv | list | `[]` | Extra environment variables for argocd-image-updater | -| extraEnvFrom | list | `[]` | Extra envFrom to pass to argocd-image-updater | -| extraObjects | list | `[]` | Extra K8s manifests to deploy for argocd-image-updater | | fullnameOverride | string | `""` | Global fullname (argocd-image-updater.fullname in _helpers.tpl) override | | image.pullPolicy | string | `"Always"` | Default image pull policy | | image.repository | string | `"quay.io/argoprojlabs/argocd-image-updater"` | Default image repository | @@ -114,7 +104,6 @@ The `config.registries` value can be used exactly as it looks in the documentati | metrics.serviceMonitor.relabelings | list | `[]` | Prometheus [RelabelConfigs] to apply to samples before scraping | | metrics.serviceMonitor.selector | object | `{}` | Prometheus ServiceMonitor selector | | nameOverride | string | `""` | Global name (argocd-image-updater.name in _helpers.tpl) override | -| namespaceOverride | string | `""` | Global namespace (argocd-image-updater.namespace in _helpers.tpl) override | | nodeSelector | object | `{}` | Kubernetes nodeSelector settings for the deployment | | podAnnotations | object | `{}` | Pod Annotations for the deployment | | podLabels | object | `{}` | Pod Labels for the deployment | @@ -122,10 +111,9 @@ The `config.registries` value can be used exactly as it looks in the documentati | rbac.enabled | bool | `true` | Enable RBAC creation | | replicaCount | int | `1` | Replica count for the deployment. It is not advised to run more than one replica. | | resources | object | `{}` | Pod memory and cpu resource settings for the deployment | -| securityContext | object | See [values.yaml] | Security context settings for the deployment | +| securityContext | object | `{}` | Security context settings for the deployment | | serviceAccount.annotations | object | `{}` | Annotations to add to the service account | | serviceAccount.create | bool | `true` | Specifies whether a service account should be created | -| serviceAccount.labels | object | `{}` | Labels to add to the service account | | serviceAccount.name | string | `""` | The name of the service account to use. If not set and create is true, a name is generated using the fullname template | | tolerations | list | `[]` | Kubernetes toleration settings for the deployment | | updateStrategy | object | `{"type":"Recreate"}` | The deployment strategy to use to replace existing pods with new ones | @@ -137,7 +125,3 @@ Autogenerated from chart metadata using [helm-docs](https://github.com/norwoodj/ [MetricRelabelConfigs]: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs [RelabelConfigs]: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config -[secret setup documentation]: https://argocd-image-updater.readthedocs.io/en/stable/install/installation/#method-2-connect-using-argo-cd-api-server -[argocd-image-updater flags page]: https://argocd-image-updater.readthedocs.io/en/stable/install/reference/#flags -[Configuration of Container Registries]: https://argocd-image-updater.readthedocs.io/en/stable/configuration/registries/ -[Support ECR authentication]: https://github.com/argoproj-labs/argocd-image-updater/issues/112 diff --git a/charts/argocd-image-updater/README.md.gotmpl b/charts/argocd-image-updater/README.md.gotmpl index 68ddd814..bbd2e1b5 100644 --- a/charts/argocd-image-updater/README.md.gotmpl +++ b/charts/argocd-image-updater/README.md.gotmpl @@ -14,7 +14,7 @@ helm repo add argo https://argoproj.github.io/argo-helm helm install argocd-image-updater argo/argocd-image-updater ``` -You will also need to run through the [secret setup documentation] so Argo CD Image Updater can talk to the Argo CD API (until its automated in this chart). +You will also need to run through the [secret setup documentation](https://argocd-image-updater.readthedocs.io/en/stable/install/start/#connect-using-argo-cd-api-server) so ArgoCD ImageUpdater can talk to the ArgoCD API (until its automated in this chart). ## Prerequisites @@ -22,9 +22,9 @@ You will also need to run through the [secret setup documentation] so Argo CD Im ## Configuration options -In order for your deployment of Argo CD Image Updater to be successful, you will need to make sure you set the correct configuration options described in detail on the [argocd-image-updater flags page]. +In order for your deployment of ArgoCD Image Updater to be successful, you will need to make sure you set the correct configuration options described in detail on the [argocd-image-updater flags page](https://argocd-image-updater.readthedocs.io/en/stable/install/running/#flags). -All of the `argocd-` prefixed flags, which tell `argocd-image-updater` how your Argo CD instance is setup, are set in the `config.argocd` values block. For instance: +All of the `argocd-` prefixed flags, which tell `argocd-image-updater` how your ArgoCD instance is setup, are set in the `config.argocd` values block. For instance: ```yaml config: @@ -35,12 +35,12 @@ config: plaintext: true ``` -Any additional arguments mentioned on the [argocd-image-updater flags page] can be configured using the `extraArgs` value, like so. +Any additional arguments mentioned on the [argocd-image-updater flags page](https://argocd-image-updater.readthedocs.io/en/stable/install/running/#flags) can be configured using the `extraArgs` value, like so. -### Argo CD API key +### ArgoCD API key If you are unable to install Argo CD Image Updater into the same Kubernetes cluster you might configure it to use API of your Argo CD installation. -Please also read [Configuration of Container Registries]. +Please also read [the documentation](https://argocd-image-updater.readthedocs.io/en/stable/configuration/registries/). ```yaml config: @@ -52,7 +52,7 @@ If you specify a token value the secret will be created. ### Registries -Argo CD Image Updater natively supports the following registries (as mentioned in [Configuration of Container Registries]): +ArgoCD Image Updater natively supports the following registries (as mentioned in [the documentation](https://argocd-image-updater.readthedocs.io/en/stable/configuration/registries/)): - Docker Hub - Google Container Registry @@ -60,7 +60,7 @@ Argo CD Image Updater natively supports the following registries (as mentioned i - GitHub Container Registry - GitHub Docker Packages -If you need support for ECR, you can reference this issue, [Support ECR authentication], for configuration. You can use the `authScripts` values to configure the scripts that are needed to authenticate with ECR. +If you need support for ECR, you can reference [this issue](https://github.com/argoproj-labs/argocd-image-updater/issues/112) for configuration. You can use the `authScripts` values to configure the scripts that are needed to authenticate with ECR. The `config.registries` value can be used exactly as it looks in the documentation as it gets dumped directly into a configmap in this chart. @@ -71,7 +71,3 @@ Autogenerated from chart metadata using [helm-docs](https://github.com/norwoodj/ [MetricRelabelConfigs]: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs [RelabelConfigs]: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config -[secret setup documentation]: https://argocd-image-updater.readthedocs.io/en/stable/install/installation/#method-2-connect-using-argo-cd-api-server -[argocd-image-updater flags page]: https://argocd-image-updater.readthedocs.io/en/stable/install/reference/#flags -[Configuration of Container Registries]: https://argocd-image-updater.readthedocs.io/en/stable/configuration/registries/ -[Support ECR authentication]: https://github.com/argoproj-labs/argocd-image-updater/issues/112 diff --git a/charts/argocd-image-updater/ci/enable-extra-objects-values.yaml b/charts/argocd-image-updater/ci/enable-extra-objects-values.yaml deleted file mode 100644 index 8d18ecd3..00000000 --- a/charts/argocd-image-updater/ci/enable-extra-objects-values.yaml +++ /dev/null @@ -1,14 +0,0 @@ -# Test with extraObjects enabled -# Do not deploy the CRDs as they are already present from the previous test -installCRDs: false - -extraObjects: - - apiVersion: v1 - kind: Secret - metadata: - name: datadog - type: Opaque - data: - address: aHR0cHM6Ly9hcGkuZGF0YWRvZ2hxLmNvbQo= # https://api.datadoghq.com - api-key: dGVzdC1hcGkta2V5Cg== # test-api-key - app-key: dGVzdC1hcHAta2V5Cg== # test-app-key diff --git a/charts/argocd-image-updater/templates/_helpers.tpl b/charts/argocd-image-updater/templates/_helpers.tpl index abfba11e..934d894c 100644 --- a/charts/argocd-image-updater/templates/_helpers.tpl +++ b/charts/argocd-image-updater/templates/_helpers.tpl @@ -24,13 +24,6 @@ If release name contains chart name it will be used as a full name. {{- end }} {{- end }} -{{/* -Override .Release.Namespace -*/}} -{{- define "argocd-image-updater.namespace" -}} -{{- default .Release.Namespace .Values.namespaceOverride }} -{{- end }} - {{/* Create chart name and version as used by the chart label. */}} diff --git a/charts/argocd-image-updater/templates/configmap-authscripts.yaml b/charts/argocd-image-updater/templates/configmap-authscripts.yaml index 259054f6..3659fbaf 100644 --- a/charts/argocd-image-updater/templates/configmap-authscripts.yaml +++ b/charts/argocd-image-updater/templates/configmap-authscripts.yaml @@ -4,8 +4,8 @@ kind: ConfigMap metadata: labels: {{- include "argocd-image-updater.labels" . | nindent 4 }} - name: {{ .Values.authScripts.name }} - namespace: {{ include "argocd-image-updater.namespace" . | quote }} + name: argocd-image-updater-authscripts + namespace: {{ .Release.Namespace | quote }} data: {{- toYaml .Values.authScripts.scripts | nindent 2}} {{- end }} diff --git a/charts/argocd-image-updater/templates/configmap-sshconfig.yaml b/charts/argocd-image-updater/templates/configmap-sshconfig.yaml index 9ff9ba61..45554c0e 100644 --- a/charts/argocd-image-updater/templates/configmap-sshconfig.yaml +++ b/charts/argocd-image-updater/templates/configmap-sshconfig.yaml @@ -1,17 +1,11 @@ -{{- $sshConfig := omit .Values.config.sshConfig "name" }} -{{- range $key, $val := $sshConfig }} - {{- if not $val }} - {{ $_ := unset $sshConfig $key }} - {{- end }} -{{- end }} apiVersion: v1 kind: ConfigMap metadata: labels: {{- include "argocd-image-updater.labels" . | nindent 4 }} - name: {{ .Values.config.sshConfig.name }} - namespace: {{ include "argocd-image-updater.namespace" . | quote }} -{{- with $sshConfig }} + name: argocd-image-updater-ssh-config + namespace: {{ .Release.Namespace | quote }} data: + {{- with .Values.config.sshConfig }} {{- toYaml . | nindent 2 }} -{{- end }} + {{- end }} diff --git a/charts/argocd-image-updater/templates/configmap.yaml b/charts/argocd-image-updater/templates/configmap.yaml index 8eb0e704..75f69b13 100644 --- a/charts/argocd-image-updater/templates/configmap.yaml +++ b/charts/argocd-image-updater/templates/configmap.yaml @@ -4,45 +4,34 @@ kind: ConfigMap metadata: labels: {{- include "argocd-image-updater.labels" . | nindent 4 }} - name: {{ .Values.config.name }} - namespace: {{ include "argocd-image-updater.namespace" . | quote }} + name: argocd-image-updater-config + namespace: {{ .Release.Namespace | quote }} data: {{- with .Values.config.applicationsAPIKind }} - applications_api: {{ . | quote }} - {{- if eq . "argocd" }} - argocd.grpc_web: {{ $.Values.config.argocd.grpcWeb | quote }} - {{- with $.Values.config.argocd.serverAddress }} - argocd.server_addr: {{ . | quote }} + applications_api: {{ . }} {{- end }} - argocd.insecure: {{ $.Values.config.argocd.insecure | quote }} - argocd.plaintext: {{ $.Values.config.argocd.plaintext | quote }} - {{- end -}} + argocd.grpc_web: {{ .Values.config.argocd.grpcWeb | quote }} + {{- with .Values.config.argocd.serverAddress }} + argocd.server_addr: {{ . }} {{- end }} + argocd.insecure: {{ .Values.config.argocd.insecure | quote }} + argocd.plaintext: {{ .Values.config.argocd.plaintext | quote }} {{- with .Values.config.logLevel }} - log.level: {{ . | quote }} + log.level: {{ . }} {{- end }} {{- with .Values.config.gitCommitUser }} - git.user: {{ . | quote }} + git.user: {{ . }} {{- end }} {{- with .Values.config.gitCommitMail }} - git.email: {{ . | quote }} + git.email: {{ . }} {{- end }} {{- with .Values.config.gitCommitTemplate }} git.commit-message-template: | {{- nindent 4 . }} {{- end }} - {{- with .Values.config.gitCommitSigningKey }} - git.commit-signing-key: {{ . | quote }} - {{- end }} - {{- with .Values.config.gitCommitSignOff }} - git.commit-sign-off: {{ . | quote }} - {{- end }} - {{- with .Values.config.gitCommitSigningMethod }} - git.commit-signing-method: {{ . | quote }} - {{- end }} kube.events: {{ .Values.config.disableKubeEvents | quote }} - {{- with .Values.config.registries }} registries.conf: | - registries: - {{- toYaml . | nindent 6 }} - {{- end }} + {{- with .Values.config.registries }} + registries: + {{- toYaml . | nindent 6 }} + {{- end }} diff --git a/charts/argocd-image-updater/templates/deployment.yaml b/charts/argocd-image-updater/templates/deployment.yaml index 87f1fbf4..9cc71fe3 100644 --- a/charts/argocd-image-updater/templates/deployment.yaml +++ b/charts/argocd-image-updater/templates/deployment.yaml @@ -2,7 +2,7 @@ apiVersion: apps/v1 kind: Deployment metadata: name: {{ include "argocd-image-updater.fullname" . }} - namespace: {{ include "argocd-image-updater.namespace" . | quote }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argocd-image-updater.labels" . | nindent 4 }} spec: @@ -34,7 +34,8 @@ spec: {{- toYaml .Values.podSecurityContext | nindent 8 }} containers: - name: {{ .Chart.Name }} - args: + command: + - /usr/local/bin/argocd-image-updater - run {{- with .Values.extraArgs }} {{- toYaml . | nindent 12 }} @@ -44,87 +45,65 @@ spec: valueFrom: configMapKeyRef: key: applications_api - name: {{ .Values.config.name }} + name: argocd-image-updater-config optional: true - name: ARGOCD_GRPC_WEB valueFrom: configMapKeyRef: key: argocd.grpc_web - name: {{ .Values.config.name }} + name: argocd-image-updater-config optional: true - name: ARGOCD_SERVER valueFrom: configMapKeyRef: key: argocd.server_addr - name: {{ .Values.config.name }} + name: argocd-image-updater-config optional: true - name: ARGOCD_INSECURE valueFrom: configMapKeyRef: key: argocd.insecure - name: {{ .Values.config.name }} + name: argocd-image-updater-config optional: true - name: ARGOCD_PLAINTEXT valueFrom: configMapKeyRef: key: argocd.plaintext - name: {{ .Values.config.name }} + name: argocd-image-updater-config optional: true - name: ARGOCD_TOKEN valueFrom: secretKeyRef: key: argocd.token - name: {{ .Values.config.argocd.tokenSecretName }} + name: argocd-image-updater-secret optional: true - name: IMAGE_UPDATER_LOGLEVEL valueFrom: configMapKeyRef: key: log.level - name: {{ .Values.config.name }} + name: argocd-image-updater-config optional: true - name: GIT_COMMIT_USER valueFrom: configMapKeyRef: key: git.user - name: {{ .Values.config.name }} + name: argocd-image-updater-config optional: true - name: GIT_COMMIT_EMAIL valueFrom: configMapKeyRef: key: git.email - name: {{ .Values.config.name }} + name: argocd-image-updater-config optional: true - name: IMAGE_UPDATER_KUBE_EVENTS valueFrom: configMapKeyRef: key: kube.events - name: {{ .Values.config.name }} - optional: true - - name: GIT_COMMIT_SIGNING_KEY - valueFrom: - configMapKeyRef: - key: git.commit-signing-key - name: {{ .Values.config.name }} - optional: true - - name: GIT_COMMIT_SIGNING_METHOD - valueFrom: - configMapKeyRef: - key: git.commit-signing-method - name: {{ .Values.config.name }} - optional: true - - name: GIT_COMMIT_SIGN_OFF - valueFrom: - configMapKeyRef: - key: git.commit-sign-off - name: {{ .Values.config.name }} + name: argocd-image-updater-config optional: true {{- with .Values.extraEnv }} {{- toYaml . | nindent 10 }} {{- end }} - {{- with .Values.extraEnvFrom }} - envFrom: - {{- toYaml . | nindent 12 }} - {{- end }} securityContext: {{- toYaml .Values.securityContext | nindent 12 }} image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" @@ -153,16 +132,12 @@ spec: volumeMounts: - mountPath: /app/config name: image-updater-conf + - mountPath: /tmp + name: tmp-dir - mountPath: /app/config/ssh name: ssh-known-hosts - mountPath: /app/.ssh name: ssh-config - - mountPath: /tmp - name: tmp - - name: ssh-signing-key - mountPath: /app/ssh-keys/id_rsa - readOnly: true - subPath: sshPrivateKey {{- if .Values.authScripts.enabled }} - mountPath: /scripts name: authscripts @@ -177,29 +152,25 @@ spec: path: registries.conf - key: git.commit-message-template path: commit.template - name: {{ .Values.config.name }} + name: argocd-image-updater-config optional: true name: image-updater-conf {{- if .Values.authScripts.enabled }} - configMap: defaultMode: 0777 - name: {{ .Values.authScripts.name }} + name: argocd-image-updater-authscripts name: authscripts {{- end }} + - emptyDir: {} + name: tmp-dir - configMap: name: argocd-ssh-known-hosts-cm optional: true name: ssh-known-hosts - configMap: - name: {{ .Values.config.sshConfig.name }} + name: argocd-image-updater-ssh-config optional: true name: ssh-config - - name: ssh-signing-key - secret: - secretName: ssh-git-creds - optional: true - - emptyDir: {} - name: tmp {{- with .Values.volumes }} {{- toYaml . | nindent 6}} {{- end }} diff --git a/charts/argocd-image-updater/templates/extra-manifests.yaml b/charts/argocd-image-updater/templates/extra-manifests.yaml deleted file mode 100644 index fc9a76b8..00000000 --- a/charts/argocd-image-updater/templates/extra-manifests.yaml +++ /dev/null @@ -1,8 +0,0 @@ -{{ range .Values.extraObjects }} ---- -{{ if typeIs "string" . }} - {{- tpl . $ }} -{{- else }} - {{- tpl (toYaml .) $ }} -{{- end }} -{{ end }} diff --git a/charts/argocd-image-updater/templates/metrics-service.yaml b/charts/argocd-image-updater/templates/metrics-service.yaml index 8ca83b53..186abb41 100644 --- a/charts/argocd-image-updater/templates/metrics-service.yaml +++ b/charts/argocd-image-updater/templates/metrics-service.yaml @@ -14,7 +14,7 @@ metadata: {{- toYaml . | nindent 4 }} {{- end }} name: {{ include "argocd-image-updater.fullname" . }}-metrics - namespace: {{ include "argocd-image-updater.namespace" . | quote }} + namespace: {{ .Release.Namespace | quote }} spec: ports: - name: metrics diff --git a/charts/argocd-image-updater/templates/rbac.yaml b/charts/argocd-image-updater/templates/rbac.yaml index 867d5b59..c6316f42 100644 --- a/charts/argocd-image-updater/templates/rbac.yaml +++ b/charts/argocd-image-updater/templates/rbac.yaml @@ -4,9 +4,9 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: labels: - {{- include "argocd-image-updater.labels" . | nindent 4 }} + {{ include "argocd-image-updater.labels" . | nindent 4 }} name: {{ include "argocd-image-updater.fullname" . }} - namespace: {{ include "argocd-image-updater.namespace" . | quote }} + namespace: {{ .Release.Namespace | quote }} rules: - apiGroups: - '' @@ -17,13 +17,6 @@ rules: - get - list - watch - {{- if not .Values.createClusterRoles }} - - apiGroups: - - "" - resources: - - events - verbs: - - create - apiGroups: - argoproj.io resources: @@ -33,15 +26,19 @@ rules: - list - update - patch - {{- end }} + - apiGroups: + - "" + resources: + - events + verbs: + - create --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: labels: - {{- include "argocd-image-updater.labels" . | nindent 4 }} + {{ include "argocd-image-updater.labels" . | nindent 4 }} name: {{ include "argocd-image-updater.fullname" . }} - namespace: {{ include "argocd-image-updater.namespace" . | quote }} roleRef: apiGroup: rbac.authorization.k8s.io kind: Role @@ -49,47 +46,5 @@ roleRef: subjects: - kind: ServiceAccount name: {{ include "argocd-image-updater.serviceAccountName" . }} - namespace: {{ include "argocd-image-updater.namespace" . | quote }} -{{- end }} ---- -{{- if and .Values.rbac.enabled .Values.createClusterRoles }} -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - labels: - {{- include "argocd-image-updater.labels" . | nindent 4 }} - name: {{ include "argocd-image-updater.fullname" . }} - namespace: {{ include "argocd-image-updater.namespace" . | quote }} -rules: - - apiGroups: - - "" - resources: - - events - verbs: - - create - - apiGroups: - - argoproj.io - resources: - - applications - verbs: - - get - - list - - update - - patch ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - labels: - {{- include "argocd-image-updater.labels" . | nindent 4 }} - name: {{ include "argocd-image-updater.fullname" . }} - namespace: {{ include "argocd-image-updater.namespace" . | quote }} -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: {{ include "argocd-image-updater.fullname" . }} -subjects: -- kind: ServiceAccount - name: {{ include "argocd-image-updater.serviceAccountName" . }} - namespace: {{ include "argocd-image-updater.namespace" . | quote }} + namespace: {{ .Release.Namespace | quote }} {{- end }} diff --git a/charts/argocd-image-updater/templates/secret.yaml b/charts/argocd-image-updater/templates/secret.yaml index 171add82..c4cb7781 100644 --- a/charts/argocd-image-updater/templates/secret.yaml +++ b/charts/argocd-image-updater/templates/secret.yaml @@ -2,8 +2,8 @@ apiVersion: v1 kind: Secret metadata: - name: {{ .Values.config.argocd.tokenSecretName }} - namespace: {{ include "argocd-image-updater.namespace" . | quote }} + name: argocd-image-updater-secret + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argocd-image-updater.labels" . | nindent 4 }} type: Opaque diff --git a/charts/argocd-image-updater/templates/serviceaccount.yaml b/charts/argocd-image-updater/templates/serviceaccount.yaml index a676f6fb..c755731d 100644 --- a/charts/argocd-image-updater/templates/serviceaccount.yaml +++ b/charts/argocd-image-updater/templates/serviceaccount.yaml @@ -3,12 +3,9 @@ apiVersion: v1 kind: ServiceAccount metadata: name: {{ include "argocd-image-updater.serviceAccountName" . }} - namespace: {{ include "argocd-image-updater.namespace" . | quote }} + namespace: {{ .Release.Namespace | quote }} labels: {{- include "argocd-image-updater.labels" . | nindent 4 }} - {{- with .Values.serviceAccount.labels }} - {{- toYaml . | nindent 4 }} - {{- end }} {{- with .Values.serviceAccount.annotations }} annotations: {{- toYaml . | nindent 4 }} diff --git a/charts/argocd-image-updater/templates/servicemonitor.yaml b/charts/argocd-image-updater/templates/servicemonitor.yaml index de9bcd52..969f1190 100644 --- a/charts/argocd-image-updater/templates/servicemonitor.yaml +++ b/charts/argocd-image-updater/templates/servicemonitor.yaml @@ -3,7 +3,7 @@ apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: {{ include "argocd-image-updater.fullname" . }}-metrics - namespace: {{ default (include "argocd-image-updater.namespace" .) .Values.metrics.serviceMonitor.namespace | quote }} + namespace: {{ default .Release.Namespace .Values.metrics.serviceMonitor.namespace | quote }} labels: {{- include "argocd-image-updater.labels" . | nindent 4 }} {{- with .Values.metrics.serviceMonitor.selector }} @@ -29,7 +29,7 @@ spec: {{- end }} namespaceSelector: matchNames: - - {{ include "argocd-image-updater.namespace" . | quote }} + - {{ .Release.Namespace }} selector: matchLabels: {{- include "argocd-image-updater.selectorLabels" . | nindent 6 }} diff --git a/charts/argocd-image-updater/values.yaml b/charts/argocd-image-updater/values.yaml index 15832520..90498e26 100644 --- a/charts/argocd-image-updater/values.yaml +++ b/charts/argocd-image-updater/values.yaml @@ -17,13 +17,6 @@ imagePullSecrets: [] nameOverride: "" # -- Global fullname (argocd-image-updater.fullname in _helpers.tpl) override fullnameOverride: "" -# -- Global namespace (argocd-image-updater.namespace in _helpers.tpl) override -namespaceOverride: "" - -# -- Create cluster roles for cluster-wide installation. -## Used when you manage applications in the same cluster where Argo CD Image Updater runs. -## If you want to use this, please set `.Values.rbac.enabled` true as well. -createClusterRoles: true # -- Extra arguments for argocd-image-updater not defined in `config.argocd`. # If a flag contains both key and value, they need to be split to a new entry @@ -49,42 +42,6 @@ extraEnv: [] # - name: AWS_REGION # value: "us-west-1" -# -- Extra envFrom to pass to argocd-image-updater -extraEnvFrom: [] - # - configMapRef: - # name: config-map-name - # - secretRef: - # name: secret-name - -# -- Extra K8s manifests to deploy for argocd-image-updater -## Note: Supports use of custom Helm templates -extraObjects: [] - # - apiVersion: secrets-store.csi.x-k8s.io/v1 - # kind: SecretProviderClass - # metadata: - # name: argocd-image-updater-secrets-store - # spec: - # provider: aws - # parameters: - # objects: | - # - objectName: "argocd-image-updater" - # objectType: "secretsmanager" - # jmesPath: - # - path: "client_id" - # objectAlias: "client_id" - # - path: "client_secret" - # objectAlias: "client_secret" - # secretObjects: - # - data: - # - key: client_id - # objectName: client_id - # - key: client_secret - # objectName: client_secret - # secretName: argocd-image-updater-secrets-store - # type: Opaque - # labels: - # app.kubernetes.io/part-of: argocd - # -- Init containers to add to the image updater pod initContainers: [] # - name: download-tools @@ -109,13 +66,10 @@ volumes: [] # emptyDir: {} config: - # -- Name of the ConfigMap - name: argocd-image-updater-config # -- API kind that is used to manage Argo CD applications (`kubernetes` or `argocd`) applicationsAPIKind: "" - # Described in detail here https://argocd-image-updater.readthedocs.io/en/stable/install/reference/#flags - # Note: this is only relevant if config.applicationsAPIKind == 'argocd' + # Described in detail here https://argocd-image-updater.readthedocs.io/en/stable/install/running/#flags argocd: # -- Use the gRPC-web protocol to connect to the Argo CD API grpcWeb: true @@ -123,12 +77,10 @@ config: serverAddress: "" # -- If specified, the certificate of the Argo CD API server is not verified. insecure: false - # -- If specified, use an unencrypted HTTP connection to the Argo CD API instead of TLS. + # -- If specified, use an unencrypted HTTP connection to the ArgoCD API instead of TLS. plaintext: false - # -- If specified, the secret with Argo CD API key will be created. + # -- If specified, the secret with ArgoCD API key will be created. token: "" - # -- Name of the Secret containing the token - tokenSecretName: "argocd-image-updater-secret" # -- Disable kubernetes events disableKubeEvents: false @@ -142,19 +94,10 @@ config: # -- Changing the Git commit message gitCommitTemplate: "" - # -- Path to public SSH key mounted in container, or GPG key ID used to sign commits - gitCommitSigningKey: "" - - # -- Enables sign off on commits - gitCommitSignOff: false - - # -- Method used to sign Git commits. `openpgp` or `ssh` - gitCommitSigningMethod: "" - - # -- Argo CD Image Update log level + # -- ArgoCD Image Update log level logLevel: "info" - # -- Argo CD Image Updater registries list configuration. More information [here](https://argocd-image-updater.readthedocs.io/en/stable/configuration/registries/) + # -- ArgoCD Image Updater registries list configuration. More information [here](https://argocd-image-updater.readthedocs.io/en/stable/configuration/registries/) registries: [] # - name: Docker Hub # api_url: https://registry-1.docker.io @@ -179,11 +122,9 @@ config: # credentials: ext:/scripts/auth1.sh # credsexpire: 10h + # -- ArgoCD Image Updater ssh client parameter configuration. sshConfig: - # -- Name of the sshConfig ConfigMap - name: argocd-image-updater-ssh-config - # -- Argo CD Image Updater ssh client parameter configuration. - config: "" + {} # config: | # Host * # PubkeyAcceptedAlgorithms +ssh-rsa @@ -194,8 +135,6 @@ config: authScripts: # -- Whether to mount the defined scripts that can be used to authenticate with a registry, the scripts will be mounted at `/scripts` enabled: false - # -- Name of the authentication scripts ConfigMap - name: argocd-image-updater-authscripts # -- Map of key-value pairs where the key consists of the name of the script and the value the contents scripts: {} # auth1.sh: | @@ -210,8 +149,6 @@ serviceAccount: create: true # -- Annotations to add to the service account annotations: {} - # -- Labels to add to the service account - labels: {} # -- The name of the service account to use. # If not set and create is true, a name is generated using the fullname template name: "" @@ -227,16 +164,13 @@ podSecurityContext: {} # fsGroup: 2000 # -- Security context settings for the deployment -# @default -- See [values.yaml] -securityContext: - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - readOnlyRootFilesystem: true - runAsNonRoot: true - seccompProfile: - type: RuntimeDefault +securityContext: {} + # capabilities: + # drop: + # - ALL + # readOnlyRootFilesystem: true + # runAsNonRoot: true + # runAsUser: 1000 rbac: # -- Enable RBAC creation diff --git a/renovate.json b/renovate.json deleted file mode 100644 index 1ee051f5..00000000 --- a/renovate.json +++ /dev/null @@ -1,109 +0,0 @@ -{ - "$schema": "https://docs.renovatebot.com/renovate-schema.json", - "kubernetes": { - "fileMatch": ["\\.yaml$", "\\.yml$"] - }, - "extends": [ - "config:recommended", - "docker:enableMajor", - ":gitSignOff" - ], - "labels": ["renovate"], - "includePaths": [ - "**/charts/argo-workflows/Chart.yaml", - "**/charts/argo-cd/Chart.yaml", - "**/charts/argo-cd/values.yaml", - "**/charts/argo-events/Chart.yaml", - "**/charts/argo-rollouts/Chart.yaml", - "**/charts/argocd-image-updater/Chart.yaml", - "**/.github/workflows/renovate.yaml" - ], - "customManagers": [ - { - "customType": "regex", - "fileMatch": ["charts/argo-workflows/Chart.yaml$"], - "matchStrings": [ - "\\sappVersion: (?.*)\\s" - ], - "versioningTemplate": "{{#if versioning}}{{{versioning}}}{{else}}semver{{/if}}", - "depNameTemplate": "argoproj/argo-workflows", - "datasourceTemplate": "github-releases" - }, - { - "customType": "regex", - "fileMatch": ["charts/argo-cd/Chart.yaml$"], - "matchStrings": [ - "\\sappVersion: (?.*)\\s" - ], - "versioningTemplate": "{{#if versioning}}{{{versioning}}}{{else}}semver{{/if}}", - "depNameTemplate": "argoproj/argo-cd", - "datasourceTemplate": "github-releases" - }, - { - "customType": "regex", - "fileMatch": ["charts/argo-events/Chart.yaml$"], - "matchStrings": [ - "\\sappVersion: (?.*)\\s" - ], - "versioningTemplate": "{{#if versioning}}{{{versioning}}}{{else}}semver{{/if}}", - "depNameTemplate": "argoproj/argo-events", - "datasourceTemplate": "github-releases" - }, - { - "customType": "regex", - "fileMatch": ["charts/argo-rollouts/Chart.yaml$"], - "matchStrings": [ - "\\sappVersion: (?.*)\\s" - ], - "versioningTemplate": "{{#if versioning}}{{{versioning}}}{{else}}semver{{/if}}", - "depNameTemplate": "argoproj/argo-rollouts", - "datasourceTemplate": "github-releases" - }, - { - "customType": "regex", - "fileMatch": ["charts/argocd-image-updater/Chart.yaml$"], - "matchStrings": [ - "\\sappVersion: (?.*)\\s" - ], - "versioningTemplate": "{{#if versioning}}{{{versioning}}}{{else}}semver{{/if}}", - "depNameTemplate": "argoproj-labs/argocd-image-updater", - "datasourceTemplate": "github-releases" - }, - { - "customType": "regex", - "fileMatch": ["^\\.github/workflows/[^/]+\\.ya?ml$"], - "matchStrings": [ - "# renovate: datasource=(?.*?) depName=(?.*?)\\s+.+version: (?.*)" - ] - } - ], - "packageRules": [ - { - "matchPackagePatterns": [ - "argoproj/argo-workflows", - "argoproj/argo-cd", - "argoproj/argo-events", - "argoproj/argo-rollouts", - "argoproj-labs/argocd-image-updater", - "argoprojlabs/argocd-extension-installer", - "public.ecr.aws/bitnami/redis-exporter", - "public.ecr.aws/docker/library/redis" - ], - "commitMessagePrefix": "chore({{parentDir}}):", - "postUpgradeTasks": { - "commands": [ - "./scripts/renovate-bump-version.sh -c {{parentDir}} -d {{depName}} -v {{newVersion}}", - "./scripts/helm-docs.sh" - ] - } - }, - { - "matchPackagePatterns": ["redis-ha"], - "enabled": false - }, - { - "matchPackageNames": ["ghcr.io/renovatebot/renovate"], - "extends": ["schedule:monthly"] - } - ] -} diff --git a/scripts/lint.sh b/scripts/lint.sh index 6061adb5..b44a6cee 100755 --- a/scripts/lint.sh +++ b/scripts/lint.sh @@ -9,7 +9,7 @@ echo -e "\n-- Linting all Helm Charts --\n" docker run \ -v "$SRCROOT:/workdir" \ --entrypoint /bin/sh \ - quay.io/helmpack/chart-testing:v3.10.0 \ + quay.io/helmpack/chart-testing:v3.7.1 \ -c cd /workdir \ ct lint \ --config .github/configs/ct-lint.yaml \ diff --git a/scripts/release-analysis/.mega-linter.yaml b/scripts/release-analysis/.mega-linter.yaml deleted file mode 100644 index 024abb2b..00000000 --- a/scripts/release-analysis/.mega-linter.yaml +++ /dev/null @@ -1,21 +0,0 @@ -# Configuration file for MegaLinter -# Run megalinter locally with: `docker run --rm -v /var/run/docker.sock:/var/run/docker.sock:rw -v $(pwd):/tmp/lint:rw oxsecurity/megalinter:v8` -ENABLE: - - DOCKERFILE - - PYTHON - -DISABLE_LINTERS: - - PYTHON_FLAKE8 - - PYTHON_PYRIGHT - - PYTHON_RUFF - - PYTHON_BANDIT - -CLEAR_REPORT_FOLDER: true -PYTHON_PYLINT_PRE_COMMANDS: - - command: pip install -r /tmp/lint/requirements.txt - venv: pylint -REPORT_OUTPUT_FOLDER: none - - -# You might want to enable this locally to fix some stuff without guessing what you need to change. Check before committing to git. -#APPLY_FIXES: all diff --git a/scripts/release-analysis/Dockerfile b/scripts/release-analysis/Dockerfile deleted file mode 100644 index 17674252..00000000 --- a/scripts/release-analysis/Dockerfile +++ /dev/null @@ -1,8 +0,0 @@ -FROM python:3.13-slim -WORKDIR /app -COPY requirements.txt ./ -RUN pip install --no-cache-dir -r requirements.txt - -COPY main.py fetch_releases.py fetch_helmet_releases.py merge_csvs.py plot_graph.py ./ -RUN chmod +x main.py fetch_releases.py fetch_helmet_releases.py merge_csvs.py plot_graph.py -CMD [ "python", "-u", "./main.py" ] diff --git a/scripts/release-analysis/README.md b/scripts/release-analysis/README.md deleted file mode 100644 index ab746cee..00000000 --- a/scripts/release-analysis/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# argo-helm release analysis - -Compare the time of the upstream release to the time of the equivalent Helm Chart release to determine the time it takes for a new release to be available in argo-helm. - - -## How to run -This is quite github-api-intensive, so you'll need a github PAT - -```bash -# Build the container -docker build . -t team-helm-analysis - -# Delete any existing data -rm -f argo_helm_releases.csv argo_releases.csv merged_releases.csv time_difference_plot_argo*.png - -# Run the container -GITHUB_TOKEN=your_token_here -docker run --rm -e GITHUB_TOKEN=$GITHUB_TOKEN -v ${PWD}:/app team-helm-analysis -``` - -You should get 3 csvs and 4 graphs once this completes. It takes around 5 mins to run. - - -## Linting -I ran megalinter against this just to give some confidence that it's not completely broken. It's not perfect, but it's something. - -Run megalinter locally against this directory with: `docker run --rm -v /var/run/docker.sock:/var/run/docker.sock:rw -v $(pwd):/tmp/lint:rw oxsecurity/megalinter:v8` diff --git a/scripts/release-analysis/argo_helm_releases.csv b/scripts/release-analysis/argo_helm_releases.csv deleted file mode 100644 index 58046fc1..00000000 --- a/scripts/release-analysis/argo_helm_releases.csv +++ /dev/null @@ -1,1019 +0,0 @@ -Release Name,Release Date,Release Time,App Version -argo-cd-7.7.16,2025-01-14,10:17:50,v2.13.3 -argo-events-2.4.13,2025-01-11,10:22:47,v1.9.5 -argo-workflows-0.45.4,2025-01-10,10:23:52,v3.6.2 -argo-cd-7.7.15,2025-01-10,07:18:13,v2.13.3 -argo-events-2.4.12,2025-01-08,08:37:01,v1.9.4 -argocd-image-updater-0.11.4,2025-01-07,07:04:30,v0.15.2 -argo-cd-7.7.14,2025-01-07,12:02:49,v2.13.3 -argo-events-2.4.11,2025-01-04,14:02:19,v1.9.3 -argo-cd-7.7.13,2025-01-04,00:07:55,v2.13.3 -argo-workflows-0.45.3,2025-01-03,15:16:16,v3.6.2 -argo-rollouts-2.38.2,2025-01-03,14:07:45,v1.7.2 -argo-cd-7.7.12,2025-01-02,06:18:17,v2.13.2 -argo-events-2.4.10,2024-12-31,12:18:02,v1.9.3 -argo-rollouts-2.38.1,2024-12-30,17:19:34,v1.7.2 -argo-cd-7.7.11,2024-12-21,12:06:50,v2.13.2 -argo-workflows-0.45.2,2024-12-16,21:31:29,v3.6.2 -argocd-image-updater-0.11.3,2024-12-13,11:27:43,v0.15.1 -argo-cd-7.7.10,2024-12-12,05:33:28,v2.13.2 -argo-cd-7.7.9,2024-12-11,15:36:30,v2.13.1 -argo-cd-7.7.8,2024-12-09,09:17:31,v2.13.1 -argo-workflows-0.45.1,2024-12-02,17:39:46,v3.6.2 -argo-cd-7.7.7,2024-12-02,14:20:02,v2.13.1 -argo-cd-7.7.6,2024-11-28,00:42:14,v2.13.1 -argo-events-2.4.9,2024-11-27,20:44:06,v1.9.3 -argo-workflows-0.45.0,2024-11-22,15:20:08,v3.6.0 -argo-workflows-0.44.1,2024-11-22,11:40:45,v3.6.0 -argo-workflows-0.44.0,2024-11-21,08:59:15,v3.6.0 -argo-workflows-0.43.0,2024-11-21,08:27:21,v3.6.0 -argo-rollouts-2.38.0,2024-11-21,13:03:08,v1.7.2 -argo-cd-7.7.5,2024-11-21,12:43:12,v2.13.1 -argo-cd-7.7.4,2024-11-20,20:48:11,v2.13.1 -argo-cd-7.7.3,2024-11-13,10:57:32,v2.13.0 -argo-cd-7.7.2,2024-11-12,16:28:52,v2.13.0 -argo-cd-7.7.1,2024-11-10,01:42:21,v2.13.0 -argocd-image-updater-0.11.2,2024-11-09,03:44:12,v0.15.1 -argo-rollouts-2.37.8,2024-11-07,23:17:48,v1.7.2 -argo-cd-7.7.0,2024-11-05,00:00:06,v2.13.0 -argo-workflows-0.42.7,2024-11-01,23:24:01,v3.5.12 -argocd-image-updater-0.11.1,2024-10-30,10:40:35,v0.15.0 -argo-workflows-0.42.6,2024-10-30,13:24:53,v3.5.12 -argo-cd-7.6.12,2024-10-18,19:27:20,v2.12.6 -argo-cd-7.6.11,2024-10-18,07:16:30,v2.12.5 -argo-cd-7.6.10,2024-10-16,12:00:46,v2.12.4 -argo-cd-7.6.9,2024-10-15,20:16:09,v2.12.4 -argo-cd-7.6.8,2024-10-03,13:53:23,v2.12.4 -argo-workflows-0.42.5,2024-10-02,00:47:02,v3.5.11 -argocd-apps-2.0.2,2024-10-01,06:03:45, -argo-cd-7.6.7,2024-09-30,18:24:52,v2.12.4 -argo-cd-7.6.6,2024-09-30,12:25:12,v2.12.4 -argo-workflows-0.42.4,2024-09-27,09:57:14,v3.5.11 -argo-cd-7.6.5,2024-09-26,07:42:42,v2.12.4 -argo-cd-7.6.4,2024-09-25,22:05:12,v2.12.3 -argo-cd-7.6.3,2024-09-25,15:18:12,v2.12.3 -argo-cd-7.6.2,2024-09-23,17:27:28,v2.12.3 -argo-workflows-0.42.3,2024-09-20,15:08:40,v3.5.11 -argo-events-2.4.8,2024-09-20,00:10:14,v1.9.2 -argo-cd-7.6.1,2024-09-20,11:24:11,v2.12.3 -argo-cd-7.6.0,2024-09-20,07:59:20,v2.12.3 -argo-rollouts-2.37.7,2024-09-16,13:38:21,v1.7.2 -argo-workflows-0.42.2,2024-09-13,14:02:16,v3.5.10 -argocd-apps-2.0.1,2024-09-10,21:55:59, -argo-cd-7.5.2,2024-09-02,15:33:28,v2.12.3 -argo-cd-7.5.1,2024-09-02,08:59:12,v2.12.3 -argo-workflows-0.42.1,2024-09-01,15:06:01,v3.5.10 -argo-rollouts-2.37.6,2024-08-31,10:13:12,v1.7.2 -argo-cd-7.5.0,2024-08-28,15:27:35,v2.12.3 -argo-cd-7.4.7,2024-08-27,13:30:34,v2.12.3 -argo-cd-7.4.6,2024-08-27,08:49:06,v2.12.2 -argo-cd-7.4.5,2024-08-23,08:51:19,v2.12.2 -argo-workflows-0.42.0,2024-08-20,19:07:24,v3.5.10 -argo-cd-7.4.4,2024-08-16,21:36:53,v2.12.1 -argo-rollouts-2.37.5,2024-08-14,08:31:31,v1.7.2 -argo-rollouts-2.37.4,2024-08-12,09:08:55,v1.7.1 -argo-cd-7.4.3,2024-08-12,15:29:49,v2.12.0 -argo-cd-7.4.2,2024-08-08,15:02:24,v2.12.0 -argo-cd-7.4.1,2024-08-06,10:14:35,v2.12.0 -argo-cd-7.4.0,2024-08-05,15:22:06,v2.12.0 -argo-workflows-0.41.14,2024-08-02,10:42:56,v3.5.10 -argo-workflows-0.41.13,2024-08-01,07:19:01,v3.5.10 -argo-workflows-0.41.12,2024-07-30,07:39:23,v3.5.9 -argo-rollouts-2.37.3,2024-07-29,07:25:40,v1.7.1 -argo-cd-7.3.11,2024-07-24,11:44:52,v2.11.7 -argo-cd-7.3.10,2024-07-22,17:14:41,v2.11.6 -argo-cd-7.3.9,2024-07-19,10:23:10,v2.11.5 -argo-cd-7.3.8,2024-07-17,23:52:54,v2.11.5 -argo-cd-7.3.7,2024-07-16,01:17:05,v2.11.5 -argo-cd-7.3.6,2024-07-11,23:05:06,v2.11.4 -argo-cd-7.3.5,2024-07-10,21:01:22,v2.11.4 -argocd-image-updater-0.11.0,2024-07-09,21:31:56,v0.14.0 -argo-cd-7.3.4,2024-07-02,20:43:46,v2.11.4 -argo-rollouts-2.37.2,2024-07-01,10:02:31,v1.7.1 -argo-cd-7.3.3,2024-06-28,21:52:33,v2.11.3 -argo-rollouts-2.37.1,2024-06-26,10:39:20,v1.7.1 -argo-rollouts-2.37.0,2024-06-26,09:10:19,v1.7.1 -argo-events-2.4.7,2024-06-26,05:28:07,v1.9.2 -argo-cd-7.3.2,2024-06-26,11:29:01,v2.11.3 -argo-rollouts-2.36.2,2024-06-25,13:04:55,v1.7.0 -argo-cd-7.3.1,2024-06-25,12:26:06,v2.11.3 -argo-cd-7.3.0,2024-06-25,03:48:21,v2.11.3 -argo-rollouts-2.36.1,2024-06-22,10:11:43,v1.7.0 -argo-cd-7.2.1,2024-06-21,21:01:50,v2.11.3 -argo-cd-7.2.0,2024-06-20,10:25:45,v2.11.3 -argo-workflows-0.41.11,2024-06-19,07:01:05,v3.5.8 -argo-cd-7.1.5,2024-06-19,14:04:21,v2.11.3 -argo-workflows-0.41.10,2024-06-18,07:47:04,v3.5.8 -argo-cd-7.1.4,2024-06-18,01:13:46,v2.11.3 -argo-workflows-0.41.9,2024-06-17,18:59:46,v3.5.7 -argocd-image-updater-0.10.2,2024-06-14,07:54:15,v0.13.1 -argo-rollouts-2.36.0,2024-06-14,09:00:46,v1.7.0 -argo-events-2.4.6,2024-06-14,05:09:08,v1.9.2 -argo-workflows-0.41.8,2024-06-09,22:18:37,v3.5.7 -argo-cd-7.1.3,2024-06-09,05:23:01,v2.11.3 -argo-cd-7.1.2,2024-06-06,10:51:51,v2.11.3 -argo-cd-7.1.1,2024-06-01,23:45:19,v2.11.2 -argo-cd-7.1.0,2024-05-31,12:05:08,v2.11.2 -argocd-image-updater-0.10.1,2024-05-28,05:32:50,v0.13.1 -argo-cd-7.0.0,2024-05-28,13:38:40,v2.11.2 -argo-workflows-0.41.7,2024-05-27,08:09:42,v3.5.7 -argo-events-2.4.5,2024-05-24,03:05:11,v1.9.1 -argo-rollouts-2.35.3,2024-05-23,07:30:12,v1.6.6 -argo-cd-6.11.1,2024-05-23,15:37:21,v2.11.2 -argo-cd-6.11.0,2024-05-23,12:37:05,v2.11.1 -argo-cd-6.10.2,2024-05-22,11:21:15,v2.11.1 -argo-cd-6.10.1,2024-05-22,07:17:23,v2.11.1 -argo-cd-6.10.0,2024-05-21,16:36:49,v2.11.1 -argo-workflows-0.41.6,2024-05-19,10:22:36,v3.5.6 -argo-workflows-0.41.5,2024-05-19,07:34:43,v3.5.6 -argo-cd-6.9.3,2024-05-17,15:18:31,v2.11.0 -argocd-image-updater-0.10.0,2024-05-16,11:07:10,v0.13.0 -argo-cd-6.9.2,2024-05-14,15:17:50,v2.11.0 -argo-cd-6.9.1,2024-05-13,22:59:29,v2.11.0 -argo-cd-6.9.0,2024-05-13,04:32:05,v2.11.0 -argo-cd-6.8.1,2024-05-10,08:32:52,v2.11.0 -argo-cd-6.8.0,2024-05-08,06:21:31,v2.11.0 -argo-rollouts-2.35.2,2024-05-06,00:24:30,v1.6.6 -argo-workflows-0.41.4,2024-05-01,13:37:43,v3.5.6 -argo-cd-6.7.18,2024-04-30,17:14:22,v2.10.9 -argo-workflows-0.41.3,2024-04-29,20:30:08,v3.5.6 -argo-cd-6.7.17,2024-04-26,19:36:10,v2.10.8 -argo-cd-6.7.16,2024-04-26,14:21:35,v2.10.8 -argo-cd-6.7.15,2024-04-24,07:08:13,v2.10.7 -argo-cd-6.7.14,2024-04-21,20:54:29,v2.10.7 -argo-workflows-0.41.2,2024-04-20,04:55:21,v3.5.6 -argo-cd-6.7.13,2024-04-19,14:07:44,v2.10.7 -argocd-image-updater-0.9.7,2024-04-18,21:41:42,v0.12.2 -argo-cd-6.7.12,2024-04-15,10:43:13,v2.10.7 -argo-cd-6.7.11,2024-04-10,20:06:04,v2.10.6 -argo-cd-6.7.10,2024-04-05,05:00:08,v2.10.6 -argo-cd-6.7.9,2024-04-04,18:47:39,v2.10.5 -argo-workflows-0.41.1,2024-04-02,17:26:26,v3.5.5 -argo-cd-6.7.8,2024-04-02,13:36:54,v2.10.5 -argo-cd-6.7.7,2024-04-02,05:03:54,v2.10.5 -argo-cd-6.7.6,2024-03-29,16:13:47,v2.10.5 -argo-cd-6.7.5,2024-03-29,08:13:55,v2.10.5 -argo-cd-6.7.4,2024-03-28,17:30:11,v2.10.5 -argo-rollouts-2.35.1,2024-03-26,08:36:07,v1.6.6 -argo-workflows-0.41.0,2024-03-24,20:27:11,v3.5.5 -argocd-apps-2.0.0,2024-03-23,15:39:16, -argo-rollouts-2.35.0,2024-03-23,20:47:25,v1.6.6 -argo-events-2.4.4,2024-03-23,11:07:16,v1.9.1 -argo-rollouts-2.34.4,2024-03-22,16:10:10,v1.6.6 -argocd-image-updater-0.9.6,2024-03-20,23:53:18,v0.12.2 -argo-cd-6.7.3,2024-03-18,09:36:58,v2.10.4 -argo-cd-6.7.2,2024-03-13,20:46:14,v2.10.3 -argo-cd-6.7.1,2024-03-11,23:08:40,v2.10.2 -argo-cd-6.7.0,2024-03-11,18:26:24,v2.10.2 -argo-workflows-0.40.14,2024-03-03,19:13:02,v3.5.5 -argo-cd-6.6.0,2024-03-02,11:20:32,v2.10.2 -argocd-image-updater-0.9.5,2024-03-01,08:41:39,v0.12.2 -argo-workflows-0.40.13,2024-03-01,17:17:28,v3.5.5 -argo-workflows-0.40.12,2024-03-01,00:03:01,v3.5.5 -argo-cd-6.5.1,2024-03-01,22:33:17,v2.10.2 -argo-cd-6.5.0,2024-02-29,19:46:25,v2.10.1 -argo-cd-6.4.1,2024-02-28,06:28:55,v2.10.1 -argocd-apps-1.6.2,2024-02-25,13:11:58, -argo-cd-6.4.0,2024-02-25,12:47:16,v2.10.1 -argo-cd-6.3.1,2024-02-23,18:05:37,v2.10.1 -argo-cd-6.3.0,2024-02-23,14:18:18,v2.10.1 -argo-cd-6.2.5,2024-02-23,13:58:38,v2.10.1 -argo-cd-6.2.4,2024-02-23,12:16:07,v2.10.1 -argo-cd-6.2.3,2024-02-20,12:05:21,v2.10.1 -argo-cd-6.2.2,2024-02-20,11:41:51,v2.10.1 -argo-cd-6.2.1,2024-02-19,08:37:59,v2.10.1 -argocd-image-updater-0.9.4,2024-02-18,18:44:43,v0.12.2 -argo-cd-6.2.0,2024-02-18,22:06:45,v2.10.1 -argo-workflows-0.40.11,2024-02-17,09:14:52,v3.5.4 -argo-cd-6.1.0,2024-02-16,14:45:12,v2.10.1 -argo-rollouts-2.34.3,2024-02-14,08:50:21,v1.6.6 -argo-events-2.4.3,2024-02-14,08:53:00,v1.9.1 -argo-cd-6.0.14,2024-02-14,21:04:43,v2.10.1 -argo-cd-6.0.13,2024-02-14,10:52:49,v2.10.0 -argo-cd-6.0.9,2024-02-13,11:14:02,v2.10.0 -argo-cd-6.0.8,2024-02-13,08:23:55,v2.10.0 -argo-cd-6.0.12,2024-02-13,15:26:57,v2.10.0 -argo-cd-6.0.11,2024-02-13,11:42:46,v2.10.0 -argo-cd-6.0.10,2024-02-13,11:27:29,v2.10.0 -argo-cd-6.0.7,2024-02-12,18:36:55,v2.10.0 -argo-cd-6.0.6,2024-02-11,14:52:39,v2.10.0 -argo-cd-6.0.5,2024-02-09,12:14:21,v2.10.0 -argo-cd-6.0.4,2024-02-09,11:46:10,v2.10.0 -argo-cd-6.0.3,2024-02-08,17:47:08,v2.10.0 -argo-cd-6.0.2,2024-02-08,14:26:38,v2.10.0 -argo-cd-6.0.1,2024-02-08,10:59:10,v2.10.0 -argo-cd-6.0.0,2024-02-07,21:40:22,v2.10.0 -argo-cd-5.55.0,2024-02-07,07:10:30,v2.10.0 -argo-cd-5.54.0,2024-02-06,13:11:44,v2.9.6 -argo-cd-5.53.14,2024-02-05,06:25:59,v2.9.6 -argo-workflows-0.40.10,2024-02-03,00:45:13,v3.5.4 -argocd-apps-1.6.1,2024-02-02,09:37:44, -argo-cd-5.53.13,2024-02-02,22:50:34,v2.9.6 -argocd-apps-1.6.0,2024-01-30,00:34:21, -argo-cd-5.53.12,2024-01-30,16:58:22,v2.9.5 -argo-cd-5.53.11,2024-01-30,10:46:50,v2.9.5 -argo-cd-5.53.10,2024-01-29,13:58:51,v2.9.5 -argo-workflows-0.40.9,2024-01-26,21:35:38,v3.5.4 -argo-rollouts-2.34.2,2024-01-26,06:31:27,v1.6.5 -argo-cd-5.53.9,2024-01-26,07:36:02,v2.9.5 -argocd-apps-1.5.0,2024-01-25,07:07:46, -argo-workflows-0.40.8,2024-01-24,23:58:13,v3.5.4 -argo-cd-5.53.8,2024-01-23,01:07:46,v2.9.5 -argo-cd-5.53.7,2024-01-22,23:55:07,v2.9.5 -argo-cd-5.53.6,2024-01-22,13:09:31,v2.9.5 -argo-cd-5.53.5,2024-01-22,10:14:54,v2.9.5 -argo-cd-5.53.4,2024-01-21,13:36:02,v2.9.5 -argo-cd-5.53.3,2024-01-20,12:21:38,v2.9.5 -argo-cd-5.53.2,2024-01-19,20:20:14,v2.9.5 -argo-cd-5.53.1,2024-01-19,05:48:47,v2.9.4 -argocd-image-updater-0.9.3,2024-01-18,06:21:59,v0.12.2 -argo-cd-5.53.0,2024-01-18,13:56:51,v2.9.3 -argo-workflows-0.40.7,2024-01-17,07:56:36,v3.5.4 -argo-cd-5.52.2,2024-01-15,09:13:02,v2.9.3 -argo-workflows-0.40.6,2024-01-14,08:11:19,v3.5.4 -argo-workflows-0.40.5,2024-01-11,07:20:47,v3.5.3 -argo-events-2.4.2,2024-01-09,10:14:30,v1.9.0 -argo-rollouts-2.34.1,2024-01-07,04:31:05,v1.6.4 -argo-workflows-0.40.4,2024-01-06,04:17:52,v3.5.2 -argocd-image-updater-0.9.2,2024-01-05,15:29:00,v0.12.2 -argo-cd-5.52.1,2024-01-05,12:57:15,v2.9.3 -argo-cd-5.52.0,2023-12-30,17:02:29,v2.9.3 -argo-workflows-0.40.3,2023-12-24,06:14:14,v3.5.2 -argo-workflows-0.40.2,2023-12-24,00:29:03,v3.5.2 -argo-rollouts-2.34.0,2023-12-22,12:07:26,v1.6.4 -argo-workflows-0.40.1,2023-12-15,07:45:38,v3.5.2 -argo-workflows-0.40.0,2023-12-14,07:56:49,v3.5.2 -argo-rollouts-2.33.0,2023-12-14,08:39:41,v1.6.4 -argo-rollouts-2.32.8,2023-12-13,06:59:39,v1.6.4 -argo-workflows-0.39.9,2023-12-12,06:27:57,v3.5.2 -argo-workflows-0.39.8,2023-12-08,22:45:23,v3.5.2 -argo-rollouts-2.32.7,2023-12-08,15:06:58,v1.6.3 -argo-workflows-0.39.7,2023-12-07,07:23:32,v3.5.2 -argo-rollouts-2.32.6,2023-12-07,17:50:17,v1.6.2 -argo-workflows-0.39.6,2023-12-05,05:55:41,v3.5.2 -argo-cd-5.51.6,2023-12-02,11:03:49,v2.9.3 -argo-rollouts-2.32.5,2023-11-29,13:34:59,v1.6.2 -argo-cd-5.51.5,2023-11-29,18:40:17,v2.9.2 -argo-workflows-0.39.5,2023-11-27,21:13:09,v3.5.2 -argo-workflows-0.39.4,2023-11-27,17:45:21,v3.5.1 -argo-cd-5.51.4,2023-11-20,18:50:04,v2.9.2 -argo-cd-5.51.3,2023-11-19,22:19:14,v2.9.1 -argo-workflows-0.39.3,2023-11-16,12:32:11,v3.5.1 -argo-workflows-0.39.2,2023-11-15,13:33:12,v3.5.1 -argo-workflows-0.39.1,2023-11-15,13:17:27,v3.5.1 -argo-rollouts-2.32.4,2023-11-15,13:09:53,v1.6.2 -argo-rollouts-2.32.3,2023-11-15,10:00:45,v1.6.1 -argo-cd-5.51.2,2023-11-15,05:59:33,v2.9.1 -argo-cd-5.51.1,2023-11-10,12:41:27,v2.9.0 -argo-workflows-0.39.0,2023-11-08,16:05:21,v3.5.1 -argo-cd-5.51.0,2023-11-06,12:54:52,v2.9.0 -argo-workflows-0.38.0,2023-11-04,05:58:06,v3.5.1 -argo-workflows-0.37.1,2023-11-03,20:39:25,v3.5.0 -argo-cd-5.50.1,2023-11-02,09:44:09,v2.8.6 -argo-cd-5.50.0,2023-10-31,18:12:30,v2.8.6 -argo-rollouts-2.32.2,2023-10-30,17:43:02,v1.6.0 -argo-cd-5.49.0,2023-10-30,14:42:51,v2.8.5 -argo-cd-5.48.1,2023-10-30,08:52:14,v2.8.5 -argo-cd-5.48.0,2023-10-28,07:29:05,v2.8.5 -argo-cd-5.47.0,2023-10-27,09:44:15,v2.8.4 -argo-workflows-0.37.0,2023-10-24,12:35:14,v3.5.0 -argo-workflows-0.36.2,2023-10-24,10:06:53,v3.5.0 -argo-rollouts-2.32.1,2023-10-24,12:40:04,v1.6.0 -argo-workflows-0.36.1,2023-10-17,23:53:35,v3.5.0 -argo-workflows-0.36.0,2023-10-17,15:41:00,v3.5.0 -argo-workflows-0.35.0,2023-10-13,22:07:38,v3.5.0 -argo-workflows-0.34.0,2023-10-12,14:15:08,v3.4.11 -argo-cd-5.46.8,2023-10-12,09:51:17,v2.8.4 -argo-cd-5.46.7,2023-09-22,15:50:57,v2.8.4 -argo-cd-5.46.6,2023-09-19,09:02:08,v2.8.4 -argo-cd-5.46.5,2023-09-18,13:26:16,v2.8.4 -argo-cd-5.46.4,2023-09-15,10:48:20,v2.8.4 -argo-cd-5.46.3,2023-09-14,04:56:22,v2.8.4 -argo-cd-5.46.2,2023-09-11,23:33:17,v2.8.3 -argo-cd-5.46.1,2023-09-11,13:24:46,v2.8.3 -argo-workflows-0.33.3,2023-09-10,01:57:47,v3.4.11 -argo-cd-5.46.0,2023-09-09,08:59:25,v2.8.3 -argo-workflows-0.33.2,2023-09-08,04:20:30,v3.4.11 -argo-cd-5.45.5,2023-09-08,14:58:30,v2.8.3 -argo-cd-5.45.4,2023-09-08,14:02:48,v2.8.3 -argo-cd-5.45.3,2023-09-08,00:13:52,v2.8.3 -argo-rollouts-2.32.0,2023-09-07,12:23:50,v1.6.0 -argo-cd-5.45.2,2023-09-07,14:01:34,v2.8.2 -argo-events-2.4.1,2023-09-04,01:15:35,v1.8.1 -argo-cd-5.45.1,2023-09-04,11:01:56,v2.8.2 -argo-cd-5.45.0,2023-08-28,08:12:52,v2.8.2 -argo-cd-5.44.0,2023-08-27,19:07:41,v2.8.2 -argo-cd-5.43.8,2023-08-27,02:21:03,v2.8.2 -argo-cd-5.43.7,2023-08-25,10:52:23,v2.8.2 -argo-cd-5.43.6,2023-08-25,08:46:11,v2.8.2 -argo-cd-5.43.5,2023-08-23,03:57:35,v2.8.1 -argo-workflows-0.33.1,2023-08-19,06:00:08,v3.4.10 -argo-workflows-0.33.0,2023-08-17,12:08:23,v3.4.10 -argo-workflows-0.32.3,2023-08-16,11:00:55,v3.4.10 -argo-rollouts-2.31.6,2023-08-16,07:02:05,v1.5.1 -argo-cd-5.43.4,2023-08-15,08:58:54,v2.8.0 -argo-workflows-0.32.2,2023-08-11,01:15:12,v3.4.9 -argo-rollouts-2.31.5,2023-08-09,00:04:20,v1.5.1 -argo-cd-5.43.3,2023-08-09,22:18:57,v2.8.0 -argo-cd-5.43.2,2023-08-09,08:36:10,v2.8.0 -argo-cd-5.43.1,2023-08-09,08:20:17,v2.8.0 -argo-cd-5.43.0,2023-08-08,14:36:04,v2.8.0 -argo-cd-5.42.3,2023-08-08,06:11:54,v2.7.11 -argo-rollouts-2.31.4,2023-08-05,10:27:42,v1.5.1 -argo-cd-5.42.2,2023-08-05,10:18:36,v2.7.10 -argo-rollouts-2.31.3,2023-08-01,09:07:36,v1.5.1 -argo-cd-5.42.1,2023-08-01,05:57:37,v2.7.10 -argo-workflows-0.32.1,2023-07-27,13:58:12,v3.4.9 -argo-cd-5.42.0,2023-07-27,22:05:30,v2.7.9 -argo-rollouts-2.31.2,2023-07-25,00:23:11,v1.5.1 -argo-cd-5.41.2,2023-07-25,02:10:03,v2.7.9 -argocd-apps-1.4.1,2023-07-23,04:26:08, -argocd-apps-1.4.0,2023-07-22,13:46:54, -argo-workflows-0.32.0,2023-07-20,23:20:17,v3.4.9 -argo-rollouts-2.31.1,2023-07-20,17:26:45,v1.5.1 -argo-cd-5.41.1,2023-07-19,22:26:30,v2.7.8 -argo-cd-5.41.0,2023-07-18,06:51:38,v2.7.7 -argo-cd-5.40.0,2023-07-17,12:21:05,v2.7.7 -argo-cd-5.39.1,2023-07-17,09:56:36,v2.7.7 -argo-cd-5.39.0,2023-07-13,14:07:28,v2.7.7 -argocd-apps-1.3.0,2023-07-11,16:16:56, -argo-workflows-0.31.0,2023-07-11,12:07:29,v3.4.8 -argo-cd-5.38.1,2023-07-11,13:01:22,v2.7.7 -argo-cd-5.38.0,2023-07-10,08:14:40,v2.7.7 -argo-cd-5.37.1,2023-07-06,08:26:09,v2.7.7 -argo-cd-5.37.0,2023-07-04,14:07:24,v2.7.6 -argo-cd-5.36.15,2023-07-04,09:22:40,v2.7.6 -argo-cd-5.36.14,2023-07-03,17:55:22,v2.7.6 -argo-cd-5.36.13,2023-07-02,08:07:38,v2.7.6 -argo-cd-5.36.12,2023-07-02,03:16:49,v2.7.6 -argo-cd-5.36.11,2023-06-29,16:02:41,v2.7.6 -argo-cd-5.36.9,2023-06-26,14:41:11,v2.7.6 -argo-cd-5.36.10,2023-06-26,14:55:27,v2.7.6 -argo-workflows-0.30.0,2023-06-24,22:29:03,v3.4.8 -argo-workflows-0.29.3,2023-06-23,16:35:23,v3.4.8 -argo-cd-5.36.7,2023-06-23,13:59:34,v2.7.6 -argo-events-2.4.0,2023-06-21,12:41:55,v1.8.0 -argo-cd-5.36.6,2023-06-21,14:54:37,v2.7.6 -argo-cd-5.36.5,2023-06-21,04:27:57,v2.7.6 -argo-cd-5.36.4,2023-06-20,13:07:45,v2.7.5 -argo-cd-5.36.3,2023-06-20,00:05:45,v2.7.5 -argo-cd-5.36.2,2023-06-17,04:55:38,v2.7.5 -argo-workflows-0.29.2,2023-06-08,03:48:28,v3.4.8 -argo-cd-5.36.1,2023-06-08,22:52:40,v2.7.4 -argo-cd-5.36.0,2023-06-07,08:52:24,v2.7.4 -argo-cd-5.35.1,2023-06-06,04:53:38,v2.7.4 -argo-workflows-0.29.1,2023-06-05,14:15:25,v3.4.8 -argo-cd-5.35.0,2023-06-05,14:31:31,v2.7.3 -argo-rollouts-2.31.0,2023-06-04,11:08:02,v1.5.0 -argo-workflows-0.29.0,2023-06-03,14:41:13,v3.4.8 -argo-cd-5.34.6,2023-05-29,04:32:37,v2.7.3 -argo-rollouts-2.30.1,2023-05-27,14:52:04,v1.5.0 -argo-workflows-0.28.2,2023-05-26,04:19:27,v3.4.8 -argo-workflows-0.28.1,2023-05-25,12:31:09,v3.4.7 -argo-cd-5.34.5,2023-05-24,23:23:36,v2.7.3 -argo-rollouts-2.30.0,2023-05-23,07:07:55,v1.5.0 -argo-cd-5.34.4,2023-05-23,20:29:47,v2.7.2 -argo-cd-5.34.3,2023-05-23,02:47:12,v2.7.2 -argo-cd-5.34.2,2023-05-22,17:07:33,v2.7.2 -argocd-apps-1.2.0,2023-05-21,07:19:50, -argo-rollouts-2.29.0,2023-05-20,15:39:35,v1.5.0 -argocd-apps-1.1.0,2023-05-19,09:35:18, -argo-workflows-0.28.0,2023-05-19,10:35:50,v3.4.7 -argo-cd-5.34.1,2023-05-17,14:25:05,v2.7.2 -argo-cd-5.34.0,2023-05-17,13:40:41,v2.7.2 -argo-cd-5.33.4,2023-05-16,09:24:22,v2.7.2 -argo-cd-5.33.3,2023-05-13,11:01:42,v2.7.2 -argo-cd-5.33.2,2023-05-12,15:19:23,v2.7.2 -argo-workflows-0.27.0,2023-05-11,06:39:40,v3.4.7 -argo-workflows-0.26.6,2023-05-11,00:09:56,v3.4.7 -argo-cd-5.33.1,2023-05-11,14:07:07,v2.7.1 -argo-cd-5.33.0,2023-05-11,00:40:17,v2.7.1 -argocd-image-updater-0.9.1,2023-05-10,16:46:54,v0.12.2 -argocd-apps-1.0.1,2023-05-10,16:59:38, -argo-workflows-0.26.5,2023-05-10,14:21:35,v3.4.7 -argo-workflows-0.26.4,2023-05-10,10:16:35,v3.4.7 -argo-rollouts-2.28.0,2023-05-10,15:37:42,v1.5.0 -argo-events-2.3.3,2023-05-10,15:49:04,v1.7.6 -argo-cd-5.32.2,2023-05-10,13:50:04,v2.7.1 -argo-workflows-0.26.3,2023-05-09,03:42:14,v3.4.7 -argo-events-2.3.2,2023-05-09,00:38:41,v1.7.6 -argo-workflows-0.26.2,2023-05-08,20:03:24,v3.4.7 -argo-cd-5.32.1,2023-05-08,11:23:13,v2.7.1 -argo-events-2.3.1,2023-05-07,14:18:59,v1.7.6 -argo-workflows-0.26.1,2023-05-06,16:20:35,v3.4.7 -argo-rollouts-2.27.0,2023-05-06,11:32:12,v1.4.1 -argo-events-2.3.0,2023-05-06,11:18:40,v1.7.6 -argo-workflows-0.26.0,2023-05-05,14:31:11,v3.4.7 -argo-workflows-0.25.2,2023-05-05,14:14:01,v3.4.7 -argo-cd-5.32.0,2023-05-05,20:19:39,v2.7.1 -argo-cd-5.31.1,2023-05-03,09:48:25,v2.7.1 -argo-cd-5.31.0,2023-05-02,12:29:53,v2.7.0 -argo-cd-5.30.1,2023-05-02,10:28:37,v2.7.0 -argo-cd-5.30.0,2023-05-02,07:29:11,v2.7.0 -argo-rollouts-2.26.1,2023-04-28,07:54:50,v1.4.1 -argocd-apps-1.0.0,2023-04-27,12:49:28, -argo-workflows-0.25.1,2023-04-24,16:57:53,v3.4.7 -argo-workflows-0.25.0,2023-04-24,05:47:37,v3.4.7 -argo-rollouts-2.26.0,2023-04-24,14:41:03,v1.4.1 -argocd-image-updater-0.9.0,2023-04-16,08:13:22,v0.12.2 -argo-workflows-0.24.1,2023-04-14,13:55:07,v3.4.7 -argo-workflows-0.24.0,2023-04-13,09:25:33,v3.4.7 -argo-rollouts-2.25.0,2023-04-13,23:59:09,v1.4.1 -argo-rollouts-2.24.0,2023-04-13,18:16:41,v1.4.1 -argo-events-2.2.0,2023-04-13,18:38:28,v1.7.6 -argo-cd-5.29.1,2023-04-13,23:44:42,v2.6.7 -argo-cd-5.29.0,2023-04-13,14:09:40,v2.6.7 -argo-workflows-0.23.2,2023-04-12,04:52:48,v3.4.7 -argo-workflows-0.23.1,2023-04-11,13:50:51,v3.4.6 -argo-cd-5.28.2,2023-04-11,13:34:12,v2.6.7 -argo-events-2.1.6,2023-04-07,12:46:03,v1.7.6 -argocd-image-updater-0.8.5,2023-04-06,13:52:44,v0.12.2 -argo-workflows-0.23.0,2023-04-06,23:43:19,v3.4.6 -argo-cd-5.28.1,2023-04-06,16:17:02,v2.6.7 -argo-workflows-0.22.16,2023-04-04,11:10:35,v3.4.6 -argo-cd-5.28.0,2023-04-03,09:59:17,v2.6.7 -argo-events-2.1.5,2023-04-01,20:40:27,v1.7.6 -argo-cd-5.27.5,2023-03-30,16:33:34,v2.6.7 -argo-rollouts-2.23.0,2023-03-29,09:16:56,v1.4.1 -argo-cd-5.27.4,2023-03-28,13:49:13,v2.6.7 -argo-cd-5.27.3,2023-03-24,09:57:20,v2.6.7 -argo-cd-5.27.2,2023-03-24,00:09:05,v2.6.7 -argo-workflows-0.22.15,2023-03-23,07:09:27,v3.4.5 -argo-cd-5.27.1,2023-03-17,08:25:05,v2.6.6 -argo-workflows-0.22.14,2023-03-16,11:05:16,v3.4.5 -argo-cd-5.27.0,2023-03-16,00:09:12,v2.6.5 -argo-events-2.1.4,2023-03-15,17:34:46,v1.7.6 -argo-cd-5.26.3,2023-03-15,19:28:01,v2.6.5 -argo-cd-5.26.2,2023-03-15,14:00:41,v2.6.5 -argo-cd-5.26.1,2023-03-14,18:42:39,v2.6.5 -argo-cd-5.26.0,2023-03-12,14:00:47,v2.6.4 -argo-cd-5.25.0,2023-03-09,12:05:22,v2.6.4 -argo-cd-5.24.4,2023-03-09,10:48:48,v2.6.4 -argo-cd-5.24.3,2023-03-08,07:46:54,v2.6.4 -argo-cd-5.24.2,2023-03-08,07:13:22,v2.6.4 -argo-cd-5.24.1,2023-03-03,17:53:36,v2.6.3 -argocd-apps-0.0.9,2023-03-02,14:59:22, -argo-rollouts-2.22.3,2023-03-02,15:08:16,v1.4.1 -argo-cd-5.24.0,2023-03-02,14:29:29,v2.6.3 -argo-cd-5.23.5,2023-02-28,23:30:25,v2.6.3 -argo-cd-5.23.4,2023-02-28,21:53:42,v2.6.3 -argo-cd-5.23.3,2023-02-28,08:32:15,v2.6.3 -argo-cd-5.23.2,2023-02-26,16:34:21,v2.6.2 -argo-workflows-0.22.13,2023-02-24,21:57:04,v3.4.5 -argo-workflows-0.22.12,2023-02-23,17:44:23,v3.4.5 -argo-cd-5.23.1,2023-02-23,18:12:14,v2.6.2 -argo-cd-5.23.0,2023-02-23,16:57:40,v2.6.2 -argo-events-2.1.3,2023-02-21,01:14:54,v1.7.6 -argo-cd-5.22.1,2023-02-19,12:38:23,v2.6.2 -argo-cd-5.22.0,2023-02-17,16:38:41,v2.6.2 -argo-cd-5.21.1,2023-02-17,08:23:54,v2.6.2 -argo-cd-5.21.0,2023-02-15,00:11:41,v2.6.1 -argo-cd-5.20.5,2023-02-14,12:21:52,v2.6.1 -argo-cd-5.20.4,2023-02-13,11:22:38,v2.6.1 -argo-workflows-0.22.11,2023-02-10,05:32:10,v3.4.5 -argocd-apps-0.0.8,2023-02-09,22:44:40, -argo-cd-5.20.3,2023-02-08,20:15:43,v2.6.1 -argo-cd-5.20.2,2023-02-08,16:42:35,v2.6.0 -argo-cd-5.20.1,2023-02-08,01:10:02,v2.6.0 -argo-workflows-0.22.10,2023-02-07,15:11:29,v3.4.5 -argo-cd-5.20.0,2023-02-07,15:02:47,v2.6.0 -argo-cd-5.19.15,2023-02-06,04:40:38,v2.5.10 -argo-cd-5.19.14,2023-02-02,21:56:38,v2.5.10 -argo-cd-5.19.13,2023-02-02,04:11:31,v2.5.9 -argocd-image-updater-0.8.4,2023-02-01,21:07:41,v0.12.2 -argocd-image-updater-0.8.3,2023-01-29,18:59:51,v0.12.0 -argocd-apps-0.0.7,2023-01-29,19:17:57, -argo-workflows-0.22.9,2023-01-29,18:48:45,v3.4.4 -argo-rollouts-2.22.2,2023-01-29,19:14:29,v1.4.0 -argo-events-2.1.2,2023-01-29,19:07:55,v1.7.5 -argo-events-2.1.1,2023-01-29,12:16:37,v1.7.5 -argo-cd-5.19.12,2023-01-29,15:23:26,v2.5.9 -argo-cd-5.19.11,2023-01-28,13:41:15,v2.5.9 -argo-cd-5.19.9,2023-01-27,14:47:36,v2.5.8 -argo-cd-5.19.10,2023-01-27,23:20:39,v2.5.8 -argo-cd-5.19.8,2023-01-26,12:06:45,v2.5.8 -argo-cd-5.19.7,2023-01-26,08:23:02,v2.5.8 -argo-events-2.1.0,2023-01-25,21:46:36,v1.7.4 -argo-cd-5.19.6,2023-01-24,00:18:44,v2.5.7 -argo-cd-5.19.5,2023-01-22,19:22:59,v2.5.7 -argo-cd-5.19.4,2023-01-22,17:20:54,v2.5.7 -argocd-image-updater-0.8.2,2023-01-21,11:38:12,v0.12.0 -argo-cd-5.19.3,2023-01-21,19:11:20,v2.5.7 -argo-cd-5.19.2,2023-01-21,12:19:10,v2.5.7 -argo-cd-5.19.1,2023-01-21,12:08:16,v2.5.7 -argo-cd-5.19.0,2023-01-21,09:25:14,v2.5.7 -argo-rollouts-2.22.1,2023-01-20,16:42:17,v1.4.0 -argo-cd-5.18.1,2023-01-20,14:34:15,v2.5.7 -argo-rollouts-2.22.0,2023-01-19,21:14:27,v1.4.0 -argo-rollouts-2.21.3,2023-01-19,10:37:43,v1.3.1 -argo-cd-5.18.0,2023-01-19,22:15:14,v2.5.7 -argo-rollouts-2.21.2,2023-01-18,02:39:11,v1.3.1 -argo-cd-5.17.4,2023-01-18,13:01:18,v2.5.7 -argo-cd-5.17.2,2023-01-18,06:44:45,v2.5.7 -argo-cd-5.17.1,2023-01-11,06:33:59,v2.5.6 -argo-workflows-0.22.8,2023-01-10,00:03:48,v3.4.4 -argo-cd-5.17.0,2023-01-10,12:32:17,v2.5.5 -argo-cd-5.16.15,2023-01-10,08:59:08,v2.5.5 -argo-cd-5.16.14,2023-01-04,09:49:57,v2.5.5 -argo-workflows-0.22.7,2023-01-03,01:46:24,v3.4.4 -argo-workflows-0.22.6,2022-12-30,05:21:07,v3.4.4 -argo-workflows-0.22.5,2022-12-29,16:31:57,v3.4.4 -argo-events-2.0.11,2022-12-29,17:55:54,v1.7.4 -argo-cd-5.16.13,2022-12-29,16:26:56,v2.5.5 -argo-cd-5.16.12,2022-12-29,15:47:53,v2.5.5 -argo-cd-5.16.11,2022-12-29,11:49:31,v2.5.5 -argo-cd-5.16.10,2022-12-27,12:12:26,v2.5.5 -argocd-apps-0.0.6,2022-12-25,13:56:50, -argo-events-2.0.10,2022-12-24,19:41:24,v1.7.4 -argo-workflows-0.22.4,2022-12-22,13:00:59,v3.4.4 -argo-cd-5.16.9,2022-12-20,13:18:36,v2.5.5 -argo-cd-5.16.8,2022-12-20,11:54:14,v2.5.5 -argo-workflows-0.22.3,2022-12-19,09:08:04,v3.4.4 -argo-workflows-0.22.2,2022-12-18,23:42:17,v3.4.4 -argo-events-2.0.9,2022-12-17,00:45:45,v1.7.3 -argo-cd-5.16.7,2022-12-17,11:36:17,v2.5.5 -argo-events-2.0.8,2022-12-15,08:33:57,v1.7.3 -argo-cd-5.16.6,2022-12-15,06:03:36,v2.5.4 -argo-cd-5.16.5,2022-12-14,21:13:18,v2.5.4 -argo-cd-5.16.4,2022-12-13,21:31:30,v2.5.4 -argo-cd-5.16.3,2022-12-13,06:19:38,v2.5.4 -argocd-apps-0.0.5,2022-12-10,14:50:54, -argo-workflows-0.22.1,2022-12-09,06:50:29,v3.4.4 -argo-events-2.0.7,2022-12-09,13:08:09,v1.7.3 -argo-cd-5.16.2,2022-12-07,07:41:56,v2.5.4 -argocd-apps-0.0.4,2022-12-02,13:26:38, -argo-workflows-0.22.0,2022-12-02,13:51:34,v3.4.4 -argo-workflows-0.21.0,2022-12-02,10:29:52,v3.4.4 -argo-cd-5.16.1,2022-12-02,14:48:40,v2.5.3 -argo-workflows-0.20.12,2022-11-30,15:26:09,v3.4.4 -argo-cd-5.16.0,2022-11-30,23:28:36,v2.5.3 -argo-cd-5.15.2,2022-11-30,21:58:12,v2.5.3 -argo-cd-5.15.1,2022-11-30,21:38:35,v2.5.3 -argo-cd-5.15.0,2022-11-29,21:15:00,v2.5.3 -argo-cd-5.14.3,2022-11-28,22:10:18,v2.5.3 -argo-workflows-0.20.11,2022-11-26,01:08:34,v3.4.3 -argo-workflows-0.20.10,2022-11-25,00:36:01,v3.4.3 -argo-cd-5.14.2,2022-11-25,17:40:10,v2.5.2 -argo-workflows-0.20.9,2022-11-23,07:18:21,v3.4.3 -argo-cd-5.14.1,2022-11-21,10:39:57,v2.5.2 -argo-cd-5.14.0,2022-11-20,13:30:05,v2.5.2 -argo-cd-5.13.9,2022-11-17,15:26:43,v2.5.2 -argo-workflows-0.20.8,2022-11-14,11:20:39,v3.4.3 -argo-cd-5.13.8,2022-11-11,02:11:52,v2.5.2 -argo-workflows-0.20.7,2022-11-10,00:36:36,v3.4.3 -argo-cd-5.13.7,2022-11-10,01:56:07,v2.5.2 -argo-cd-5.13.6,2022-11-08,16:04:52,v2.5.2 -argo-cd-5.13.5,2022-11-07,21:55:16,v2.5.1 -argo-cd-5.13.4,2022-11-06,21:13:41,v2.5.1 -argo-cd-5.13.3,2022-11-06,04:19:47,v2.5.1 -argo-cd-5.13.2,2022-11-03,08:37:01,v2.5.1 -argo-cd-5.13.1,2022-11-02,07:31:33,v2.5.1 -argo-workflows-0.20.6,2022-11-01,09:26:43,v3.4.3 -argo-cd-5.13.0,2022-11-01,19:27:19,v2.5.0 -argo-cd-5.12.3,2022-11-01,14:57:44,v2.5.0 -argo-cd-5.12.2,2022-10-31,17:38:56,v2.5.0 -argo-cd-5.9.1,2022-10-30,17:48:16,v2.5.0 -argo-cd-5.9.0,2022-10-30,15:38:31,v2.5.0 -argo-cd-5.12.1,2022-10-30,23:48:29,v2.5.0 -argo-cd-5.12.0,2022-10-30,22:03:51,v2.5.0 -argo-cd-5.11.0,2022-10-30,20:44:31,v2.5.0 -argo-cd-5.10.0,2022-10-30,19:13:05,v2.5.0 -argo-cd-5.8.7,2022-10-29,19:08:37,v2.5.0 -argo-cd-5.8.6,2022-10-29,09:24:01,v2.5.0 -argo-cd-5.8.5,2022-10-28,10:18:33,v2.5.0 -argo-cd-5.8.4,2022-10-28,08:50:11,v2.5.0 -argo-workflows-0.20.5,2022-10-27,01:05:01,v3.4.2 -argo-cd-5.8.3,2022-10-27,12:18:27,v2.5.0 -argo-cd-5.8.2,2022-10-26,13:19:29,v2.5.0 -argo-cd-5.8.1,2022-10-26,11:11:40,v2.5.0 -argo-workflows-0.20.4,2022-10-25,06:19:19,v3.4.2 -argo-cd-5.8.0,2022-10-25,21:22:42,v2.5.0 -argo-cd-5.7.0,2022-10-25,17:05:58,v2.4.15 -argo-cd-5.6.8,2022-10-25,14:09:11,v2.4.15 -argo-cd-5.6.7,2022-10-25,13:30:20,v2.4.15 -argo-cd-5.6.6,2022-10-25,06:42:17,v2.4.15 -argo-workflows-0.20.3,2022-10-24,05:53:54,v3.4.2 -argo-cd-5.6.5,2022-10-24,21:48:21,v2.4.15 -argo-cd-5.6.4,2022-10-24,17:06:09,v2.4.15 -argo-workflows-0.20.2,2022-10-22,07:37:48,v3.4.1 -argo-cd-5.6.3,2022-10-22,12:59:43,v2.4.15 -argo-cd-5.6.2,2022-10-21,08:11:20,v2.4.15 -argo-cd-5.6.1,2022-10-20,11:23:48,v2.4.15 -argocd-apps-0.0.3,2022-10-13,22:07:34, -argo-cd-5.6.0,2022-10-13,22:30:23,v2.4.14 -argo-cd-5.5.25,2022-10-13,16:17:41,v2.4.14 -argocd-apps-0.0.2,2022-10-12,08:34:02, -argo-cd-5.5.24,2022-10-12,12:55:54,v2.4.14 -argo-cd-5.5.23,2022-10-12,11:46:40,v2.4.14 -argo-cd-5.5.22,2022-10-12,08:04:42,v2.4.14 -argocd-image-updater-0.8.1,2022-10-11,22:21:29,v0.12.0 -argo-cd-5.5.21,2022-10-11,14:12:05,v2.4.14 -argo-cd-5.5.20,2022-10-11,14:00:11,v2.4.14 -argo-cd-5.5.19,2022-10-11,12:29:07,v2.4.14 -argo-cd-5.5.18,2022-10-10,20:46:29,v2.4.14 -argo-cd-5.5.17,2022-10-10,19:09:27,v2.4.14 -argo-cd-5.5.16,2022-10-09,13:23:27,v2.4.14 -argo-cd-5.5.15,2022-10-09,08:34:22,v2.4.14 -argo-cd-5.5.14,2022-10-08,22:23:13,v2.4.14 -argo-cd-5.5.13,2022-10-08,11:28:42,v2.4.14 -argo-cd-5.5.12,2022-10-07,10:52:38,v2.4.14 -argo-cd-5.5.9,2022-10-06,14:32:23,v2.4.13 -argo-cd-5.5.11,2022-10-06,22:23:50,v2.4.14 -argo-cd-5.5.10,2022-10-06,21:05:05,v2.4.14 -argo-cd-5.5.8,2022-10-04,00:58:31,v2.4.13 -argo-workflows-0.20.1,2022-10-02,09:28:15,v3.4.1 -argo-rollouts-2.21.1,2022-09-30,22:29:28,v1.3.1 -argo-cd-5.5.7,2022-09-30,13:26:36,v2.4.12 -argo-rollouts-2.21.0,2022-09-29,06:43:50,v1.3.0 -argo-events-2.0.6,2022-09-29,15:55:01,v1.7.3 -argo-workflows-0.20.0,2022-09-28,13:51:07,v3.4.0 -argo-cd-5.5.6,2022-09-28,11:06:18,v2.4.12 -argo-workflows-0.19.6,2022-09-27,12:44:09,v3.4.0 -argo-workflows-0.19.5,2022-09-27,09:53:23,v3.4.0 -argo-workflows-0.19.4,2022-09-26,04:11:17,v3.4.0 -argo-workflows-0.19.3,2022-09-26,01:49:55,v3.4.0 -argo-cd-5.5.5,2022-09-25,17:03:01,v2.4.12 -argo-workflows-0.19.2,2022-09-24,00:03:59,v3.4.0 -argo-cd-5.5.4,2022-09-22,17:20:47,v2.4.12 -argo-cd-5.5.3,2022-09-22,08:53:07,v2.4.12 -argo-workflows-0.19.1,2022-09-21,12:51:22,v3.4.0 -argo-workflows-0.19.0,2022-09-21,10:35:00,v3.4.0 -argo-cd-5.5.2,2022-09-21,19:06:26,v2.4.12 -argo-cd-5.5.1,2022-09-21,18:21:31,v2.4.12 -argo-cd-5.5.0,2022-09-21,11:48:56,v2.4.12 -argo-cd-5.4.8,2022-09-21,07:32:29,v2.4.12 -argo-events-2.0.5,2022-09-20,11:55:01,v1.7.2 -argo-workflows-0.18.0,2022-09-19,16:10:42,v3.4.0 -argo-cd-5.4.7,2022-09-19,21:37:54,v2.4.12 -argo-cd-5.4.6,2022-09-19,12:57:09,v2.4.12 -argo-cd-5.4.5,2022-09-19,11:44:57,v2.4.12 -argo-cd-5.4.4,2022-09-16,08:58:43,v2.4.12 -argo-cd-5.4.3,2022-09-08,17:00:01,v2.4.11 -argo-cd-5.4.2,2022-09-06,10:13:54,v2.4.11 -argo-cd-5.4.1,2022-09-04,08:48:29,v2.4.11 -argo-cd-5.4.0,2022-08-30,15:30:53,v2.4.11 -argo-workflows-0.17.1,2022-08-26,09:03:18,v3.3.9 -argo-rollouts-2.20.0,2022-08-26,16:40:20,v1.2.2 -argo-rollouts-2.19.2,2022-08-26,09:03:17,v1.2.2 -argo-events-2.0.4,2022-08-26,09:03:16,v1.7.1 -argo-cd-5.3.6,2022-08-26,16:15:52,v2.4.11 -argo-cd-5.3.5,2022-08-26,13:38:01,v2.4.11 -argo-cd-5.3.4,2022-08-26,09:03:15,v2.4.11 -argo-cd-5.3.3,2022-08-25,22:09:36,v2.4.11 -argo-cd-5.3.2,2022-08-25,21:39:21,v2.4.11 -argo-cd-5.3.1,2022-08-25,11:35:35,v2.4.11 -argo-cd-5.3.0,2022-08-25,10:42:01,v2.4.11 -argo-cd-5.2.2,2022-08-25,10:13:10,v2.4.11 -argo-cd-5.2.1,2022-08-25,09:08:04,v2.4.11 -argo-cd-5.2.0,2022-08-25,08:43:06,v2.4.11 -argo-cd-5.1.0,2022-08-25,06:41:11,v2.4.11 -argo-cd-5.0.0,2022-08-24,15:12:21,v2.4.11 -argo-rollouts-2.19.0,2022-08-23,02:43:29,v1.2.0 -argocd-apps-0.0.1,2022-08-22,12:32:28, -argo-cd-4.10.9,2022-08-22,14:04:30,v2.4.11 -argo-cd-4.10.8,2022-08-19,19:37:44,v2.4.10 -argo-cd-4.10.7,2022-08-18,00:28:21,v2.4.10 -argo-workflows-0.17.0,2022-08-17,00:07:26,v3.3.9 -argo-cd-4.10.6,2022-08-11,20:43:51,v2.4.9 -argo-workflows-0.16.9,2022-08-10,11:43:41,v3.3.9 -argo-cd-4.10.5,2022-08-02,10:02:11,v2.4.8 -argo-cd-4.10.4,2022-08-01,13:49:17,v2.4.8 -argo-cd-4.10.3,2022-07-31,12:20:12,v2.4.7 -argo-cd-4.10.2,2022-07-29,18:15:36,v2.4.7 -argo-cd-4.10.1,2022-07-29,14:40:58,v2.4.7 -argo-workflows-0.16.8,2022-07-27,00:51:07,v3.3.8 -argo-cd-4.10.0,2022-07-21,09:53:44,v2.4.7 -argo-cd-4.9.16,2022-07-19,12:48:08,v2.4.7 -argo-cd-4.9.15,2022-07-19,06:25:53,v2.4.7 -argo-rollouts-2.18.0,2022-07-15,11:43:33,v1.2.0 -argo-cd-4.9.14,2022-07-14,13:03:20,v2.4.6 -argo-workflows-0.16.7,2022-07-13,00:10:56,v3.3.8 -argo-cd-4.9.13,2022-07-13,20:43:07,v2.4.6 -argo-cd-4.9.12,2022-07-07,16:46:25,v2.4.4 -argo-events-2.0.3,2022-07-06,12:39:16,v1.7.1 -argo-events-2.0.2,2022-07-04,09:50:24,v1.7.1 -argo-cd-4.9.11,2022-06-29,13:10:22,v2.4.3 -argo-cd-4.9.9,2022-06-28,13:20:49,v2.4.3 -argo-cd-4.9.10,2022-06-28,15:14:22,v2.4.3 -argo-events-2.0.1,2022-06-27,21:35:46,v1.7.0 -argo-cd-4.9.8,2022-06-27,17:45:36,v2.4.2 -argo-workflows-0.16.6,2022-06-24,05:47:50,v3.3.8 -argo-workflows-0.16.5,2022-06-23,16:01:09,v3.3.7 -argo-workflows-0.16.4,2022-06-23,09:30:17,v3.3.6 -argo-cd-4.9.7,2022-06-23,14:43:59,v2.4.2 -argo-cd-4.9.6,2022-06-23,06:34:16,v2.4.2 -argo-cd-4.9.5,2022-06-23,05:50:20,v2.4.2 -argo-rollouts-2.17.0,2022-06-17,08:13:21,v1.2.0 -argo-cd-4.9.4,2022-06-17,07:01:22,v2.4.0 -argo-cd-4.9.3,2022-06-16,11:24:09,v2.4.0 -argo-cd-4.9.2,2022-06-15,13:16:32,v2.4.0 -argo-events-2.0.0,2022-06-14,15:38:27,v1.7.0 -argo-cd-4.9.1,2022-06-14,12:32:16,v2.4.0 -argo-cd-4.9.0,2022-06-14,10:10:37,v2.4.0 -argo-workflows-0.16.3,2022-06-10,16:50:21,v3.3.6 -argo-cd-4.8.3,2022-06-08,06:04:29,v2.3.4 -argo-cd-4.8.2,2022-06-02,12:26:38,v2.3.4 -argo-cd-4.8.1,2022-06-02,12:06:47,v2.3.4 -argo-workflows-0.16.2,2022-06-01,17:56:41,v3.3.6 -argo-rollouts-2.16.0,2022-06-01,17:10:16,v1.2.0 -argo-cd-4.8.0,2022-05-30,16:20:13,v2.3.4 -argo-workflows-0.16.1,2022-05-26,11:20:50,v3.3.6 -argo-rollouts-2.15.0,2022-05-26,12:00:18,v1.2.0 -argo-workflows-0.16.0,2022-05-25,09:30:37,v3.3.5 -argo-workflows-0.15.4,2022-05-25,08:52:21,v3.3.5 -argo-cd-4.7.0,2022-05-25,11:07:09,v2.3.4 -argo-rollouts-2.14.1,2022-05-23,05:05:29,v1.2.0 -argo-cd-4.6.5,2022-05-23,04:47:27,v2.3.4 -argo-workflows-0.15.3,2022-05-22,07:43:33,v3.3.5 -argo-cd-4.6.4,2022-05-22,11:52:08,v2.3.4 -argo-workflows-0.15.2,2022-05-20,21:14:27,v3.3.5 -argo-workflows-0.15.1,2022-05-20,19:19:26,v3.3.2 -argo-cd-4.6.3,2022-05-20,18:11:16,v2.3.4 -argo-cd-4.6.2,2022-05-19,17:54:21,v2.3.4 -argo-cd-4.6.1,2022-05-19,11:51:31,v2.3.3 -argo-cd-4.6.0,2022-05-10,07:41:16,v2.3.3 -argo-workflows-0.15.0,2022-05-09,20:45:52,v3.3.2 -argo-workflows-0.14.5,2022-05-09,20:36:39,v3.3.2 -argo-workflows-0.14.4,2022-05-09,20:24:35,v3.3.2 -argo-workflows-0.14.3,2022-05-09,19:51:22,v3.3.2 -argo-workflows-0.14.2,2022-05-09,19:37:38,v3.3.2 -argo-cd-4.5.12,2022-05-09,19:18:36,v2.3.3 -argo-cd-4.5.11,2022-05-07,20:58:56,v2.3.3 -argo-cd-4.5.10,2022-05-05,21:59:44,v2.3.3 -argo-cd-4.5.9,2022-05-04,16:40:52,v2.3.3 -argo-workflows-0.14.1,2022-05-01,11:44:50,v3.3.2 -argo-cd-4.5.8,2022-04-30,12:31:18,v2.3.3 -argo-events-1.13.0,2022-04-23,07:25:52,v1.6.0 -argocd-notifications-1.8.1,2022-04-22,09:42:54,v1.2.1 -argocd-applicationset-1.12.1,2022-04-22,09:42:52,v0.4.1 -argocd-applicationset-1.12.0,2022-04-22,07:23:43,v0.4.1 -argo-workflows-0.14.0,2022-04-22,07:09:42,v3.3.2 -argo-cd-4.5.7,2022-04-22,09:55:26,v2.3.3 -argo-cd-4.5.6,2022-04-22,08:34:16,v2.3.3 -argo-cd-4.5.5,2022-04-21,22:02:41,v2.3.3 -argo-cd-4.5.4,2022-04-19,11:02:10,v2.3.3 -argo-cd-4.5.3,2022-04-12,14:28:36,v2.3.3 -argo-cd-4.5.2,2022-04-12,12:32:08,v2.3.3 -argo-cd-4.5.1,2022-04-11,14:33:48,v2.3.3 -argo-rollouts-2.14.0,2022-04-05,11:38:27,v1.2.0 -argo-cd-4.5.0,2022-04-03,09:14:25,v2.3.3 -argo-cd-4.4.1,2022-04-02,18:45:18,v2.3.3 -argo-rollouts-2.13.0,2022-03-31,17:32:03,v1.2.0 -argo-cd-4.4.0,2022-03-31,12:20:18,v2.3.3 -argo-cd-4.3.2,2022-03-31,11:59:31,v2.3.3 -argo-cd-4.3.1,2022-03-30,13:40:17,v2.3.3 -argo-cd-4.3.0,2022-03-29,11:24:34,v2.3.2 -argo-cd-4.2.4,2022-03-28,21:02:42,v2.3.2 -argo-cd-4.2.3,2022-03-28,13:18:14,v2.3.2 -argo-workflows-0.13.1,2022-03-23,13:18:49,v3.2.9 -argo-rollouts-2.12.0,2022-03-23,21:12:12,v1.2.0 -argo-cd-4.2.2,2022-03-23,09:53:45,v2.3.2 -argo-cd-4.2.1,2022-03-18,21:25:50,v2.3.1 -argo-cd-4.2.0,2022-03-18,16:42:44,v2.3.1 -argocd-image-updater-0.8.0,2022-03-17,19:34:59,v0.12.0 -argo-cd-4.1.0,2022-03-17,17:16:25,v2.3.1 -argo-cd-4.0.1,2022-03-17,12:54:21,v2.3.1 -argo-cd-4.0.0,2022-03-16,21:02:33,v2.3.1 -argo-rollouts-2.11.0,2022-03-14,21:13:07,v1.1.1 -argo-workflows-0.13.0,2022-03-12,17:55:49,v3.2.9 -argo-workflows-0.12.0,2022-03-12,17:14:00,v3.2.9 -argo-cd-3.35.4,2022-03-12,18:59:29,v2.2.5 -argo-cd-3.35.3,2022-03-10,10:45:45,v2.2.5 -argo-cd-3.35.2,2022-03-06,15:54:11,v2.2.5 -argo-cd-3.35.1,2022-03-06,12:08:36,v2.2.5 -argo-workflows-0.11.2,2022-03-05,08:51:50,v3.2.9 -argo-workflows-0.11.1,2022-03-03,14:02:23,v3.2.7 -argocd-image-updater-0.7.0,2022-03-01,10:26:52,v0.11.3 -argo-workflows-0.11.0,2022-03-01,09:53:15,v3.2.7 -argo-cd-3.35.0,2022-03-01,21:58:21,v2.2.5 -argo-cd-3.34.0,2022-03-01,17:37:13,v2.2.5 -argo-cd-3.33.8,2022-02-26,20:07:35,v2.2.5 -argo-cd-3.33.7,2022-02-23,11:02:53,v2.2.5 -argocd-image-updater-0.6.3,2022-02-20,17:56:33,v0.11.3 -argo-rollouts-2.10.0,2022-02-20,23:01:55,v1.1.1 -argo-events-1.12.0,2022-02-20,20:57:50,v1.6.0 -argo-events-1.11.0,2022-02-20,18:31:57,v1.6.0 -argocd-applicationset-1.11.0,2022-02-17,08:19:49,v0.3.0 -argo-cd-3.33.6,2022-02-17,11:37:47,v2.2.5 -argocd-applicationset-1.10.0,2022-02-16,18:44:07,v0.3.0 -argo-workflows-0.10.1,2022-02-09,23:06:55,v3.2.7 -argo-cd-3.33.5,2022-02-05,16:32:53,v2.2.5 -argo-cd-3.33.4,2022-02-05,12:55:15,v2.2.5 -argo-cd-3.33.3,2022-02-04,09:19:44,v2.2.4 -argo-cd-3.33.2,2022-02-03,09:36:59,v2.2.3 -argocd-notifications-1.8.0,2022-02-01,21:49:11,v1.2.1 -argo-cd-3.33.1,2022-01-31,19:26:33,v2.2.3 -argo-cd-3.33.0,2022-01-31,15:37:35,v2.2.3 -argo-workflows-0.10.0,2022-01-28,13:45:09,v3.2.6 -argo-cd-3.32.1,2022-01-27,10:15:36,v2.2.3 -argo-cd-3.32.0,2022-01-26,15:14:35,v2.2.3 -argo-rollouts-2.9.3,2022-01-25,12:43:34,v1.1.1 -argocd-notifications-1.7.1,2022-01-24,19:19:34,v1.2.1 -argocd-image-updater-0.6.2,2022-01-24,19:19:33,v0.11.2 -argocd-applicationset-1.9.1,2022-01-24,19:19:32,v0.3.0 -argo-workflows-0.9.5,2022-01-24,19:19:30,v3.2.6 -argo-rollouts-2.9.2,2022-01-24,19:19:29,v1.1.1 -argo-events-1.10.2,2022-01-24,19:19:28,v1.5.6 -argo-cd-3.31.1,2022-01-24,19:19:26,v2.2.2 -argo-cd-3.31.0,2022-01-20,10:52:27,v2.2.2 -argo-cd-3.30.1,2022-01-19,19:26:25,v2.2.2 -argo-events-1.10.1,2022-01-18,22:20:08,v1.5.6 -argo-events-1.10.0,2022-01-17,14:02:09,v1.5.0 -argo-cd-3.30.0,2022-01-16,05:24:18,v2.2.2 -argocd-image-updater-0.6.1,2022-01-11,22:07:52,v0.11.2 -argo-rollouts-2.9.1,2022-01-11,22:35:51,v1.1.1 -argo-rollouts-2.9.0,2022-01-10,20:46:21,v1.1.1 -argo-rollouts-2.8.1,2022-01-10,18:21:14,v1.1.1 -argo-events-1.9.0,2022-01-10,19:56:43,v1.5.0 -argocd-applicationset-1.9.0,2022-01-09,18:08:02,v0.3.0 -argocd-applicationset-1.8.0,2022-01-06,18:36:05,v0.3.0 -argo-rollouts-2.8.0,2022-01-05,12:32:16,v1.1.0 -argo-cd-3.29.5,2022-01-04,10:16:28,v2.2.2 -argocd-notifications-1.7.0,2021-12-20,18:18:19,v1.2.1 -argo-workflows-0.9.4,2021-12-20,11:00:00,v3.2.6 -argo-rollouts-2.7.0,2021-12-20,19:13:47,v1.1.0 -argo-cd-3.29.4,2021-12-20,17:27:35,v2.2.1 -argo-cd-3.29.3,2021-12-18,22:09:23,v2.2.1 -argo-cd-3.29.2,2021-12-17,18:39:32,v2.2.1 -argo-cd-3.29.1,2021-12-17,10:06:18,v2.2.1 -argocd-notifications-1.6.1,2021-12-16,09:58:40,v1.2.1 -argo-cd-3.29.0,2021-12-15,10:15:30,v2.2.0 -argo-cd-3.28.1,2021-12-11,19:32:10,v2.1.7 -argo-cd-3.28.0,2021-12-10,15:23:06,v2.1.7 -argocd-applicationset-1.7.0,2021-12-09,14:56:54,v0.2.0 -argo-rollouts-2.6.0,2021-12-09,15:13:24,v1.1.0 -argocd-image-updater-0.6.0,2021-12-07,06:40:34,v0.11.0 -argo-workflows-0.9.3,2021-12-06,10:02:15,v3.2.4 -argo-cd-3.27.1,2021-12-03,22:41:42,v2.1.7 -argo-cd-3.27.0,2021-12-03,22:19:58,v2.1.7 -argo-cd-3.26.12,2021-11-29,10:51:49,v2.1.7 -argocd-notifications-1.6.0,2021-11-25,17:39:42,v1.2.0 -argocd-image-updater-0.5.0,2021-11-24,20:47:21,v0.11.0 -argo-cd-3.26.11,2021-11-24,16:30:38,v2.1.7 -argo-workflows-0.9.2,2021-11-23,10:12:37,v3.2.4 -argocd-image-updater-0.4.2,2021-11-22,07:18:47,v0.10.3 -argo-workflows-0.9.1,2021-11-22,09:41:06,v3.2.4 -argo-workflows-0.9.0,2021-11-22,09:33:03,v3.2.4 -argo-workflows-0.8.3,2021-11-21,18:59:21,v3.2.4 -argo-cd-3.26.10,2021-11-21,12:48:45,v2.1.7 -argo-workflows-0.8.2,2021-11-19,21:36:02,v3.2.0 -argocd-image-updater-0.4.1,2021-11-17,09:50:53,v0.10.3 -argo-cd-3.26.9,2021-11-17,07:43:03,v2.1.6 -argocd-image-updater-0.4.0,2021-11-15,23:19:27,v0.10.1 -argo-rollouts-2.5.0,2021-11-15,07:02:31,v1.1.0 -argocd-notifications-1.5.2,2021-11-12,09:25:30,v1.1.1 -argo-cd-3.26.8,2021-11-11,15:00:04,v2.1.6 -argo-cd-3.26.7,2021-11-10,17:18:47,v2.1.6 -argocd-image-updater-0.3.0,2021-11-09,21:14:43,v0.10.1 -argo-rollouts-2.4.0,2021-11-09,20:50:12,v1.1.0 -argo-cd-3.26.6,2021-11-06,08:23:57,v2.1.6 -argo-workflows-0.8.1,2021-11-01,18:13:26,v3.2.0 -argo-cd-3.26.5,2021-10-31,19:32:18,v2.1.6 -argo-cd-3.26.4,2021-10-31,11:57:25,v2.1.6 -argo-events-1.8.0,2021-10-27,15:13:58,v1.5.0 -argo-cd-3.26.3,2021-10-21,20:56:35,v2.1.5 -argo-cd-3.26.2,2021-10-21,11:34:14,2.1.4 -argo-cd-3.26.1,2021-10-20,06:32:59,2.1.4 -argo-workflows-0.8.0,2021-10-19,15:37:06,v3.2.0 -argo-cd-3.26.0,2021-10-19,17:02:52,2.1.3 -argo-cd-3.25.3,2021-10-19,15:51:33,2.1.3 -argo-rollouts-2.3.0,2021-10-18,12:29:40,v1.1.0 -argocd-applicationset-1.6.0,2021-10-17,18:30:56,v0.2.0 -argo-rollouts-2.2.1,2021-10-17,12:08:48,v1.1.0 -argo-cd-3.25.2,2021-10-17,10:33:22,2.1.3 -argo-workflows-0.7.3,2021-10-15,10:22:13,v3.2.0 -argo-workflows-0.7.2,2021-10-15,09:42:17,v3.1.8 -argo-rollouts-2.2.0,2021-10-14,14:58:28,v1.1.0 -argo-cd-3.25.1,2021-10-14,12:40:36,2.1.3 -argo-cd-3.25.0,2021-10-12,18:49:49,2.1.3 -argo-cd-3.24.0,2021-10-06,22:13:09,2.1.3 -argo-cd-3.23.1,2021-10-06,15:28:20,2.1.3 -argo-cd-3.23.0,2021-10-04,22:20:00,2.1.2 -argocd-notifications-1.5.1,2021-09-29,15:15:42,1.1.1 -argo-cd-3.22.1,2021-09-29,09:07:29,2.1.2 -argocd-applicationset-1.5.1,2021-09-27,13:58:05,v0.2.0 -argocd-applicationset-1.5.0,2021-09-27,12:06:48,v0.2.0 -argo-workflows-0.7.1,2021-09-27,15:18:14,v3.1.8 -argo-workflows-0.7.0,2021-09-27,07:14:58,v3.1.8 -argo-rollouts-2.1.1,2021-09-27,15:10:06,v1.0.2 -argo-cd-3.22.0,2021-09-27,19:32:54,2.1.2 -argo-cd-3.21.1,2021-09-27,10:04:46,2.1.2 -argocd-image-updater-0.2.1,2021-09-20,14:43:20,v0.10.1 -argo-workflows-0.6.0,2021-09-17,19:51:33,v3.1.8 -argo-rollouts-2.1.0,2021-09-17,16:39:27,v1.0.2 -argo-cd-3.21.0,2021-09-17,20:14:56,2.1.2 -argo-cd-3.20.0,2021-09-17,17:47:39,2.1.2 -argo-cd-3.19.0,2021-09-17,13:57:58,2.1.2 -argocd-image-updater-0.2.0,2021-09-16,18:59:58,v0.10.1 -argocd-image-updater-0.1.1,2021-09-16,17:30:59,v0.10.1 -argo-rollouts-2.0.2,2021-09-16,19:06:11,v1.0.2 -argo-cd-3.18.0,2021-09-16,17:59:45,2.1.2 -argo-workflows-0.5.2,2021-09-15,22:27:25,v3.1.8 -argo-cd-3.17.7,2021-09-15,10:31:26,2.1.2 -argo-workflows-0.5.1,2021-09-13,16:21:35,v3.1.8 -argo-cd-3.17.6,2021-09-02,21:59:12,2.1.2 -argo-rollouts-2.0.1,2021-08-30,06:46:48,v1.0.2 -argocd-notifications-1.5.0,2021-08-27,13:12:54,1.1.1 -argocd-applicationset-1.4.0,2021-08-27,12:33:43,v0.2.0 -argo-workflows-0.5.0,2021-08-27,12:59:50,v3.1.8 -argo-cd-3.17.5,2021-08-27,13:47:25,2.1.1 -argo-cd-3.17.4,2021-08-27,10:06:21,2.1.1 -argo-cd-3.17.3,2021-08-26,15:11:19,2.1.1 -argo-cd-3.17.2,2021-08-26,14:22:27,2.1.1 -argo-cd-3.17.1,2021-08-26,13:55:36,2.1.0 -argo-cd-3.17.0,2021-08-26,13:43:13,2.1.0 -argocd-notifications-1.4.4,2021-08-25,12:14:37,1.1.1 -argocd-applicationset-1.3.1,2021-08-25,07:05:41,v0.2.0 -argo-cd-3.16.0,2021-08-25,15:05:03,2.1.0 -argo-cd-3.15.0,2021-08-24,12:48:33,2.1.0 -argo-cd-3.14.0,2021-08-24,12:38:02,2.1.0 -argocd-applicationset-1.3.0,2021-08-23,13:05:32,v0.2.0 -argocd-applicationset-1.2.0,2021-08-23,12:23:43,v0.2.0 -argo-workflows-0.4.2,2021-08-23,11:13:42,v3.1.8 -argo-cd-3.13.2,2021-08-23,17:23:36,2.1.0 -argo-cd-3.13.1,2021-08-23,13:01:57,2.1.0 -argo-cd-3.13.0,2021-08-23,12:14:11,2.1.0 -argo-workflows-0.4.1,2021-08-20,16:24:43,v3.1.5 -argocd-notifications-1.4.3,2021-08-18,10:02:11,1.1.1 -argocd-notifications-1.4.2,2021-08-17,09:13:14,1.1.1 -argo-workflows-0.4.0,2021-08-17,07:31:04,v3.1.5 -argocd-image-updater-0.1.0,2021-08-16,15:23:23,v0.10.1 -argo-rollouts-2.0.0,2021-08-16,15:27:43,v1.0.2 -argo-cd-3.12.1,2021-08-14,11:03:56,2.0.5 -argocd-applicationset-1.1.0,2021-08-13,16:37:25,v0.1.0 -argo-cd-3.12.0,2021-08-13,20:15:28,2.0.5 -argo-workflows-0.3.0,2021-08-11,07:32:31,v3.0.7 -argo-cd-3.11.5,2021-08-11,15:44:45,2.0.5 -argo-cd-3.11.4,2021-08-11,07:14:57,2.0.5 -argo-workflows-0.2.13,2021-08-10,13:45:31,v3.0.7 -argo-rollouts-1.0.4,2021-08-10,06:39:57,v1.0.2 -argo-cd-3.11.3,2021-08-09,08:58:30,2.0.5 -argo-events-1.7.0,2021-08-07,22:43:47,1.3.1 -argo-cd-3.11.2,2021-08-07,13:08:09,2.0.5 -argo-cd-3.11.1,2021-07-28,15:42:38,2.0.5 -argo-cd-3.11.0,2021-07-28,14:37:27,2.0.5 -argo-cd-3.10.2,2021-07-27,11:07:30,2.0.5 -argo-cd-3.10.1,2021-07-27,01:33:24,2.0.5 -argo-workflows-0.2.12,2021-07-21,16:02:29,v3.0.7 -argo-workflows-0.2.9,2021-07-20,18:18:54,v3.0.7 -argo-workflows-0.2.8,2021-07-20,18:10:55,v3.0.7 -argo-workflows-0.2.11,2021-07-20,21:51:21,v3.0.7 -argo-workflows-0.2.10,2021-07-20,18:25:05,v3.0.7 -argo-cd-3.10.0,2021-07-20,11:41:23,2.0.4 -argo-cd-3.9.0,2021-07-13,06:35:52,2.0.4 -argo-cd-3.8.2,2021-07-13,06:26:07,2.0.4 -argocd-applicationset-1.0.0,2021-07-12,10:54:40,v0.1.0 -argo-cd-3.8.1,2021-07-12,11:07:21,2.0.4 -argocd-notifications-1.4.1,2021-07-09,11:09:14,1.1.1 -argocd-applicationset-0.1.7,2021-07-09,11:09:13,v0.1.0 -argo-workflows-0.2.7,2021-07-09,11:09:12,v3.0.7 -argo-rollouts-1.0.3,2021-07-09,11:09:12,v1.0.2 -argo-events-1.6.4,2021-07-09,11:09:11,1.3.1 -argo-cd-3.8.0,2021-07-09,12:34:38,2.0.4 -argo-cd-3.7.2,2021-07-09,11:09:10,2.0.4 -argo-rollouts-1.0.2,2021-07-07,15:18:22,v1.0.2 -argo-cd-3.7.1,2021-07-05,09:53:30,2.0.4 -argo-cd-3.7.0,2021-07-05,09:42:21,2.0.4 -argo-cd-3.6.11,2021-06-29,08:49:22,2.0.4 -argo-cd-3.6.10,2021-06-26,15:05:26,2.0.3 -argo-workflows-0.2.6,2021-06-25,06:16:05,v3.0.7 -argo-cd-3.6.9,2021-06-25,06:07:25,2.0.3 -argo-workflows-0.2.5,2021-06-08,13:15:23,v3.0.2 -argo-events-1.6.2,2021-06-07,08:36:00,1.3.1 -argo-cd-3.6.8,2021-06-07,09:40:13,2.0.3 -argo-cd-3.6.7,2021-06-07,08:52:24,2.0.3 -argocd-notifications-1.4.0,2021-06-03,10:08:10,1.1.1 -argocd-applicationset-0.1.6,2021-06-03,17:50:44,v0.1.0 -argo-workflows-0.2.4,2021-06-03,17:11:17,v3.0.2 -argo-workflows-0.2.3,2021-06-03,11:08:38,v3.0.2 -argo-cd-3.6.6,2021-06-02,17:55:17,2.0.3 -argo-workflows-0.2.2,2021-05-31,20:15:38,v3.0.2 -argo-workflows-0.2.1,2021-05-31,16:32:09,v3.0.2 -argo-workflows-0.2.0,2021-05-31,16:18:32,v3.0.2 -argo-rollouts-1.0.1,2021-05-31,21:23:24,v1.0.1 -argo-rollouts-1.0.0,2021-05-31,16:06:49,v1.0.1 -argo-events-1.6.1,2021-05-31,16:09:51,1.3.1 -argo-cd-3.6.5,2021-05-31,20:15:37,2.0.3 -argo-events-1.6.0,2021-05-29,10:30:24,1.3.1 -argo-cd-3.6.4,2021-05-29,14:37:41,2.0.3 -argo-cd-3.6.3,2021-05-29,08:42:00,2.0.3 -argo-workflows-0.1.5,2021-05-27,16:33:49,v3.0.2 -argocd-notifications-1.3.2,2021-05-26,21:41:54,1.1.1 -argo-workflows-0.1.4,2021-05-26,10:00:42,v3.0.2 -argo-rollouts-0.5.5,2021-05-26,09:44:42,0.10.2 -argo-events-1.5.0,2021-05-26,21:27:33,1.3.1 -argo-events-1.4.3,2021-05-26,21:13:44,1.3.1 -argo-cd-3.6.2,2021-05-26,10:35:46,2.0.1 -argo-workflows-0.1.3,2021-05-25,06:06:50,v3.0.2 -argo-rollouts-0.5.4,2021-05-24,21:34:19,0.10.2 -argo-cd-3.6.1,2021-05-24,19:21:16,2.0.1 -argo-cd-3.6.0,2021-05-23,12:25:54,2.0.1 -argocd-notifications-1.3.1,2021-05-21,16:00:09,1.1.1 -argocd-applicationset-0.1.5,2021-05-21,16:00:08,v0.1.0 -argo-workflows-0.1.2,2021-05-21,16:50:29,v3.0.2 -argo-workflows-0.1.1,2021-05-21,16:00:07,v3.0.2 -argo-rollouts-0.5.3,2021-05-21,16:00:06,0.10.2 -argo-events-1.4.2,2021-05-21,16:00:05,1.3.1 -argo-cd-3.5.0,2021-05-21,16:43:57,2.0.1 -argo-cd-3.4.1,2021-05-21,16:00:04,2.0.1 -argo-1.0.0,2021-05-21,16:00:03,v2.12.5 diff --git a/scripts/release-analysis/argo_releases.csv b/scripts/release-analysis/argo_releases.csv deleted file mode 100644 index f630abe7..00000000 --- a/scripts/release-analysis/argo_releases.csv +++ /dev/null @@ -1,877 +0,0 @@ -Repository,Release Tag,Release Date,Release Time -argo-cd,v2.14.0-rc6,2025-01-21,21:40:31 -argo-cd,v2.14.0-rc5,2025-01-08,20:16:38 -argo-cd,v2.13.3,2025-01-03,19:23:42 -argo-cd,v2.12.9,2025-01-03,19:21:15 -argo-cd,v2.14.0-rc4,2025-01-02,22:36:35 -argo-cd,v2.14.0-rc3,2024-12-18,19:22:51 -argo-cd,v2.14.0-rc2,2024-12-17,18:43:53 -argo-cd,v2.13.2,2024-12-11,19:18:46 -argo-cd,v2.12.8,2024-12-11,19:17:57 -argo-cd,v2.13.1,2024-11-20,17:11:22 -argo-cd,v2.12.7,2024-11-05,16:08:15 -argo-cd,v2.11.12,2024-11-05,16:09:52 -argo-cd,v2.13.0,2024-11-04,12:46:49 -argo-cd,v2.13.0-rc5,2024-10-18,21:56:52 -argo-cd,v2.12.6,2024-10-18,19:07:18 -argo-cd,v2.11.11,2024-10-18,19:10:03 -argo-cd,v2.13.0-rc4,2024-10-17,22:20:25 -argo-cd,v2.12.5,2024-10-17,22:03:45 -argo-cd,v2.11.10,2024-10-17,22:04:22 -argo-cd,v2.10.18,2024-10-17,22:02:48 -argo-cd,v2.13.0-rc3,2024-10-07,14:11:10 -argo-cd,v2.12.4,2024-09-26,07:14:39 -argo-cd,v2.11.9,2024-09-26,07:39:46 -argo-cd,v2.10.17,2024-09-26,07:39:53 -argo-cd,v2.13.0-rc2,2024-09-20,12:16:17 -argo-cd,v2.13.0-rc1,2024-09-16,09:07:32 -argo-cd,v2.11.8,2024-09-11,07:18:22 -argo-cd,v2.12.3,2024-08-27,12:33:34 -argo-cd,v2.12.2,2024-08-23,04:05:09 -argo-cd,v2.9.22,2024-08-22,18:09:07 -argo-cd,v2.8.21,2024-08-22,00:15:46 -argo-cd,v2.12.1,2024-08-16,17:16:36 -argo-cd,v2.12.0,2024-08-05,14:02:15 -argo-cd,v2.12.0-rc5,2024-08-02,00:02:42 -argo-cd,v2.11.7,2024-07-24,10:27:18 -argo-cd,v2.10.16,2024-07-24,10:27:30 -argo-cd,v2.9.21,2024-07-24,10:27:35 -argo-cd,v2.11.6,2024-07-22,15:19:04 -argo-cd,v2.10.15,2024-07-22,15:28:11 -argo-cd,v2.9.20,2024-07-22,15:26:01 -argo-cd,v2.12.0-rc4,2024-07-15,18:31:03 -argo-cd,v2.11.5,2024-07-15,18:32:15 -argo-cd,v2.10.14,2024-07-15,18:43:13 -argo-cd,v2.9.19,2024-07-15,19:10:33 -argo-cd,v2.12.0-rc3,2024-07-02,19:11:39 -argo-cd,v2.11.4,2024-07-02,19:52:42 -argo-cd,v2.10.13,2024-07-02,19:16:33 -argo-cd,v2.9.18,2024-07-02,20:06:18 -argo-cd,v2.12.0-rc2,2024-06-24,21:07:03 -argo-cd,v2.12.0-rc1,2024-06-18,13:46:04 -argo-cd,v2.11.3,2024-06-06,09:43:29 -argo-cd,v2.10.12,2024-06-06,09:44:03 -argo-cd,v2.9.17,2024-06-06,09:47:39 -argo-cd,v2.11.2,2024-05-23,14:14:51 -argo-cd,v2.10.11,2024-05-23,14:20:08 -argo-cd,v2.9.16,2024-05-23,14:28:35 -argo-cd,v2.8.20,2024-05-23,14:22:46 -argo-cd,v2.11.1,2024-05-21,15:03:58 -argo-cd,v2.10.10,2024-05-21,15:04:04 -argo-cd,v2.9.15,2024-05-21,15:03:15 -argo-cd,v2.8.19,2024-05-21,15:02:42 -argo-cd,v2.11.0,2024-05-07,16:37:25 -argo-cd,v2.10.9,2024-04-30,16:55:10 -argo-cd,v2.9.14,2024-04-30,17:52:42 -argo-cd,v2.8.18,2024-04-30,18:11:05 -argo-cd,v2.11.0-rc3,2024-04-29,20:34:30 -argo-cd,v2.10.8,2024-04-26,14:04:02 -argo-cd,v2.9.13,2024-04-26,13:54:31 -argo-cd,v2.8.17,2024-04-26,13:32:45 -argo-cd,v2.11.0-rc2,2024-04-15,20:21:25 -argo-cd,v2.10.7,2024-04-15,09:21:23 -argo-cd,v2.9.12,2024-04-15,09:23:39 -argo-cd,v2.8.16,2024-04-15,09:24:55 -argo-cd,v2.11.0-rc1,2024-04-05,12:48:47 -argo-cd,v2.10.6,2024-04-05,01:04:01 -argo-cd,v2.9.11,2024-04-05,00:33:21 -argo-cd,v2.8.15,2024-04-05,00:08:33 -argo-cd,v2.7.18,2024-04-04,23:10:16 -argo-cd,v2.10.5,2024-03-28,16:29:02 -argo-cd,v2.9.10,2024-03-28,17:14:04 -argo-cd,v2.8.14,2024-03-28,17:14:13 -argo-cd,v2.10.4,2024-03-18,08:44:51 -argo-cd,v2.9.9,2024-03-18,08:44:29 -argo-cd,v2.8.13,2024-03-18,08:43:03 -argo-cd,v2.10.3,2024-03-13,19:53:05 -argo-cd,v2.9.8,2024-03-13,19:50:14 -argo-cd,v2.8.12,2024-03-13,19:49:30 -argo-cd,v2.8.11,2024-03-08,15:35:57 -argo-cd,v2.10.2,2024-03-01,22:03:43 -argo-cd,v2.9.7,2024-03-01,23:28:36 -argo-cd,v2.10.1,2024-02-14,18:12:43 -argo-cd,v2.10.0,2024-02-06,15:03:51 -argo-cd,v2.9.6,2024-02-02,19:51:46 -argo-cd,v2.8.10,2024-02-02,19:01:36 -argo-cd,v2.7.17,2024-02-02,19:00:32 -argo-cd,v2.10.0-rc4,2024-01-25,21:50:37 -argo-cd,v2.10.0-rc3,2024-01-19,18:33:17 -argo-cd,v2.9.5,2024-01-19,18:32:02 -argo-cd,v2.8.9,2024-01-19,18:47:44 -argo-cd,v2.8.8,2024-01-19,15:17:36 -argo-cd,v2.7.16,2024-01-19,19:38:49 -argo-cd,v2.10.0-rc2,2024-01-18,21:14:40 -argo-cd,v2.9.4,2024-01-18,21:24:02 -argo-cd,v2.10.0-rc1,2023-12-18,21:20:13 -argo-cd,v2.7.15,2023-12-06,15:59:27 -argo-cd,v2.9.3,2023-12-01,23:39:19 -argo-cd,v2.9.2,2023-11-20,17:52:41 -argo-cd,v2.8.7,2023-11-20,17:52:04 -argo-cd,v2.9.1,2023-11-14,15:55:51 -argo-cd,v2.9.0,2023-11-06,05:27:12 -argo-cd,v2.8.6,2023-11-01,17:29:59 -argo-cd,v2.9.0-rc4,2023-10-31,22:28:01 -argo-cd,v2.8.5,2023-10-31,19:30:03 -argo-cd,v2.9.0-rc3,2023-10-25,19:54:22 -argo-cd,v2.9.0-rc2,2023-10-03,16:24:24 -argo-cd,v2.9.0-rc1,2023-09-27,01:06:19 -argo-cd,v2.8.4,2023-09-13,20:08:07 -argo-cd,v2.8.3,2023-09-07,18:06:07 -argo-cd,v2.7.14,2023-09-07,18:05:20 -argo-cd,v2.6.15,2023-09-07,18:32:42 -argo-cd,v2.5.22,2023-08-25,15:21:48 -argo-cd,v2.8.2,2023-08-24,21:05:33 -argo-cd,v2.7.13,2023-08-24,20:58:11 -argo-cd,v2.6.14,2023-08-24,22:01:58 -argo-cd,v2.8.1,2023-08-22,21:19:28 -argo-cd,v2.7.12,2023-08-23,15:02:27 -argo-cd,v2.8.0,2023-08-07,20:03:46 -argo-cd,v2.7.11,2023-08-07,20:07:16 -argo-cd,v2.8.0-rc7,2023-08-03,16:20:46 -argo-cd,v2.7.10,2023-07-31,22:51:19 -argo-cd,v2.8.0-rc6,2023-07-28,14:47:33 -argo-cd,v2.7.9,2023-07-24,18:50:30 -argo-cd,v2.8.0-rc5,2023-07-19,18:28:18 -argo-cd,v2.7.8,2023-07-19,15:58:13 -argo-cd,v2.6.13,2023-07-19,18:32:25 -argo-cd,v2.5.21,2023-07-19,16:18:16 -argo-cd,v2.8.0-rc4,2023-07-19,01:04:24 -argo-cd,v2.8.0-rc3,2023-07-12,21:02:10 -argo-cd,v2.8.0-rc2,2023-07-05,20:16:20 -argo-cd,v2.7.7,2023-07-05,20:25:54 -argo-cd,v2.6.12,2023-07-05,20:26:58 -argo-cd,v2.5.20,2023-07-05,20:21:44 -argo-cd,v2.8.0-rc1,2023-06-27,14:35:51 -argo-cd,v2.7.6,2023-06-20,21:46:46 -argo-cd,v2.6.11,2023-06-20,21:40:36 -argo-cd,v2.7.5,2023-06-16,15:24:00 -argo-cd,v2.6.10,2023-06-16,15:30:18 -argo-cd,v2.5.19,2023-06-16,15:14:25 -argo-cd,v2.7.4,2023-06-05,19:40:08 -argo-cd,v2.6.9,2023-06-05,20:00:21 -argo-cd,v2.5.18,2023-06-05,19:37:35 -argo-cd,v2.6.8,2023-05-25,16:35:40 -argo-cd,v2.5.17,2023-05-25,16:37:48 -argo-cd,v2.7.3,2023-05-24,16:14:02 -argo-cd,v2.7.2,2023-05-12,14:41:07 -argo-cd,v2.7.1,2023-05-02,17:24:44 -argo-cd,v2.7.0,2023-05-02,00:51:25 -argo-cd,v2.7.0-rc2,2023-04-11,16:29:33 -argo-cd,v2.7.0-rc1,2023-03-27,14:42:25 -argo-cd,v2.6.7,2023-03-23,15:45:09 -argo-cd,v2.5.16,2023-03-23,15:34:49 -argo-cd,v2.4.28,2023-03-23,15:35:38 -argo-cd,v2.6.6,2023-03-16,23:07:31 -argo-cd,v2.5.15,2023-03-16,23:35:35 -argo-cd,v2.4.27,2023-03-16,23:05:14 -argo-cd,v2.6.5,2023-03-14,14:59:49 -argo-cd,v2.5.14,2023-03-14,15:03:12 -argo-cd,v2.4.26,2023-03-14,15:01:43 -argo-cd,v2.6.4,2023-03-07,23:29:08 -argo-cd,v2.5.13,2023-03-07,23:28:04 -argo-cd,v2.4.25,2023-03-07,22:29:10 -argo-cd,v2.6.3,2023-02-27,15:20:04 -argo-cd,v2.5.12,2023-02-27,15:21:29 -argo-cd,v2.4.24,2023-02-27,15:22:21 -argo-cd,v2.6.2,2023-02-16,15:43:42 -argo-cd,v2.5.11,2023-02-16,15:46:31 -argo-cd,v2.4.23,2023-02-16,15:41:44 -argo-cd,v2.3.17,2023-02-16,16:01:23 -argo-cd,v2.6.1,2023-02-08,19:39:04 -argo-cd,v2.6.0,2023-02-06,22:04:33 -argo-cd,v2.6.0-rc7,2023-02-02,16:04:58 -argo-cd,v2.5.10,2023-02-02,15:48:00 -argo-cd,v2.4.22,2023-02-02,16:06:04 -argo-cd,v2.3.16,2023-02-02,16:20:13 -argo-cd,v2.6.0-rc6,2023-01-28,00:07:50 -argo-cd,v2.5.9,2023-01-28,00:04:28 -argo-cd,v2.4.21,2023-01-28,00:07:25 -argo-cd,v2.3.15,2023-01-28,01:20:18 -argo-cd,v2.6.0-rc5,2023-01-25,18:35:37 -argo-cd,v2.5.8,2023-01-25,17:05:03 -argo-cd,v2.4.20,2023-01-25,16:19:24 -argo-cd,v2.3.14,2023-01-25,17:07:36 -argo-cd,v2.6.0-rc4,2023-01-18,03:00:03 -argo-cd,v2.5.7,2023-01-18,03:00:02 -argo-cd,v2.4.19,2023-01-18,02:59:01 -argo-cd,v2.3.13,2023-01-18,04:02:17 -argo-cd,v2.6.0-rc3,2023-01-13,20:36:52 -argo-cd,v2.5.6,2023-01-10,20:14:18 -argo-cd,v2.6.0-rc2,2023-01-05,16:02:06 -argo-cd,v2.6.0-rc1,2022-12-19,17:27:17 -argo-cd,v2.5.5,2022-12-16,16:53:08 -argo-cd,v2.4.18,2022-12-16,16:47:09 -argo-cd,v2.3.12,2022-12-16,17:40:00 -argo-cd,v2.5.4,2022-12-06,20:26:51 -argo-cd,v2.5.3,2022-11-28,17:28:00 -argo-cd,v2.5.2,2022-11-07,17:23:44 -argo-cd,v2.4.17,2022-11-07,17:05:27 -argo-cd,v2.5.1,2022-11-01,21:53:59 -argo-cd,v2.4.16,2022-11-01,22:03:02 -argo-cd,v2.3.11,2022-11-01,22:39:18 -argo-cd,v2.2.16,2022-11-01,20:44:20 -argo-cd,v2.5.0,2022-10-25,15:32:28 -argo-cd,v2.2.15,2022-10-18,22:08:59 -argo-cd,v2.5.0-rc3,2022-10-17,18:39:09 -argo-cd,v2.4.15,2022-10-17,21:17:43 -argo-cd,v2.3.10,2022-10-18,01:09:30 -argo-cd,v2.5.0-rc2,2022-10-11,19:55:49 -argo-cd,v2.5.0-rc1,2022-10-05,18:00:34 -argo-cd,v2.4.14,2022-10-05,17:53:31 -argo-cd,v2.3.9,2022-10-05,18:24:18 -argo-cd,v2.2.14,2022-10-05,17:17:02 -argo-cd,v2.4.13,2022-10-03,21:38:39 -argo-cd,v2.3.8,2022-10-03,22:36:32 -argo-cd,v2.2.13,2022-10-03,21:05:16 -argo-cd,v2.4.12,2022-09-16,01:33:23 -argo-cd,v2.4.11,2022-08-22,09:52:10 -argo-cd,v2.4.10,2022-08-17,21:44:09 -argo-cd,v2.4.9,2022-08-11,15:59:47 -argo-cd,v2.4.8,2022-07-29,17:38:38 -argo-cd,v2.3.7,2022-07-29,16:11:01 -argo-cd,v2.2.12,2022-07-29,14:58:00 -argo-cd,v2.4.7,2022-07-18,21:54:21 -argo-cd,v2.4.6,2022-07-12,23:14:34 -argo-cd,v2.4.5,2022-07-12,17:05:35 -argo-cd,v2.3.6,2022-07-12,17:56:53 -argo-cd,v2.2.11,2022-07-12,16:23:51 -argo-cd,v2.4.4,2022-07-07,07:59:34 -argo-cd,v2.4.3,2022-06-27,21:39:15 -argo-cd,v2.4.2,2022-06-21,21:19:40 -argo-cd,v2.4.1,2022-06-21,17:18:01 -argo-cd,v2.3.5,2022-06-21,18:28:28 -argo-cd,v2.2.10,2022-06-21,16:42:53 -argo-cd,v2.1.16,2022-06-21,16:34:29 -argo-cd,v2.4.0,2022-06-10,17:59:33 -argo-cd,v2.4.0-rc5,2022-06-06,19:57:45 -argo-cd,v2.4.0-rc4,2022-06-01,23:51:49 -argo-cd,v2.4.0-rc3,2022-05-31,20:14:43 -argo-cd,v2.4.0-rc2,2022-05-18,13:20:52 -argo-cd,v2.3.4,2022-05-18,13:14:17 -argo-cd,v2.2.9,2022-05-18,12:11:30 -argo-cd,v2.1.15,2022-05-18,12:48:12 -argo-cd,v2.4.0-rc1,2022-05-06,23:59:23 -argo-cd,v2.3.3,2022-03-30,01:55:37 -argo-cd,v2.3.2,2022-03-23,02:12:12 -argo-cd,v2.2.8,2022-03-23,00:38:55 -argo-cd,v2.1.14,2022-03-23,00:25:37 -argo-cd,v2.3.1,2022-03-11,00:07:41 -argo-cd,v2.2.7,2022-03-09,01:16:04 -argo-cd,v2.1.12,2022-03-09,01:06:39 -argo-cd,v2.3.0,2022-03-06,07:59:28 -argo-cd,v2.2.6,2022-03-06,06:08:26 -argo-cd,v2.1.11,2022-03-06,05:44:19 -argo-cd,v2.2.5,2022-02-05,01:42:13 -argo-cd,v2.1.10,2022-02-05,01:27:00 -argo-cd,v2.3.0-rc5,2022-02-05,00:52:33 -argo-cd,v2.3.0-rc4,2022-02-03,23:22:13 -argo-cd,v2.2.4,2022-02-03,20:50:43 -argo-cd,v2.1.9,2022-02-03,20:38:47 -argo-cd,v2.3.0-rc2,2022-02-02,23:59:42 -argo-cd,v2.3.0-rc1,2022-01-30,23:19:12 -argo-cd,v2.2.3,2022-01-18,18:03:37 -argo-cd,v2.2.2,2022-01-01,06:38:42 -argo-cd,v2.2.1,2021-12-17,01:41:25 -argo-cd,v2.2.0,2021-12-14,18:19:23 -argo-cd,v2.1.8,2021-12-13,23:26:15 -argo-cd,v2.1.7,2021-11-17,22:18:58 -argo-cd,v2.2.0-rc1,2021-11-12,16:44:39 -argo-cd,v2.1.6,2021-10-28,20:08:23 -argo-cd,v2.1.5,2021-10-20,15:25:12 -argo-cd,v2.1.4,2021-10-20,00:47:38 -argo-cd,v2.1.3,2021-09-29,21:59:28 -argo-cd,v2.1.2,2021-09-02,18:13:57 -argo-cd,v2.1.1,2021-08-25,15:20:05 -argo-cd,v2.1.0,2021-08-20,05:40:42 -argo-cd,v2.1.0-rc3,2021-08-11,19:54:48 -argo-cd,v2.1.0-rc2,2021-08-03,17:17:22 -argo-cd,v2.1.0-rc1,2021-07-28,22:39:33 -argo-cd,v2.0.5,2021-07-22,21:00:58 -argo-cd,v2.0.4,2021-06-23,01:36:22 -argo-cd,v2.0.3,2021-05-27,17:47:33 -argo-cd,v2.0.2,2021-05-20,19:38:10 -argo-cd,v2.0.1,2021-04-15,22:40:37 -argo-cd,v2.0.0,2021-04-07,06:07:51 -argo-cd,v2.0.0-rc4,2021-04-05,23:22:38 -argo-cd,v2.0.0-rc3,2021-04-02,17:59:51 -argo-cd,v2.0.0-rc2,2021-03-29,21:39:06 -argo-cd,v2.0.0-rc1,2021-03-19,21:37:41 -argo-cd,v1.8.7,2021-03-03,07:20:14 -argo-cd,v1.7.14,2021-03-03,18:45:51 -argo-cd,v1.8.6,2021-02-26,21:29:08 -argo-cd,v1.7.13,2021-02-26,17:29:32 -argo-cd,v1.8.5,2021-02-20,05:47:09 -argo-cd,v1.8.4,2021-02-05,18:02:18 -argo-cd,v1.7.12,2021-02-05,20:29:49 -argo-cd,v1.8.3,2021-01-21,22:26:34 -argo-cd,v1.8.2,2021-01-10,05:47:08 -argo-cd,v1.8.1,2020-12-10,03:05:37 -argo-cd,v1.7.11,2020-12-10,02:47:15 -argo-cd,v1.8.0,2020-12-09,18:35:24 -argo-cd,v1.8.0-rc2,2020-12-03,05:15:48 -argo-cd,v1.8.0-rc1,2020-11-25,18:21:18 -argo-cd,v1.7.10,2020-11-20,19:57:30 -argo-cd,v1.7.9,2020-11-17,23:26:31 -argo-cd,v1.7.8,2020-10-15,22:39:54 -argo-cd,v1.7.7,2020-09-29,05:02:51 -argo-cd,v1.7.6,2020-09-19,00:58:10 -argo-cd,v1.7.5,2020-09-15,23:10:12 -argo-cd,v1.7.4,2020-09-05,02:51:36 -argo-cd,v1.7.3,2020-09-01,23:25:39 -argo-cd,v1.7.2,2020-08-27,23:40:37 -argo-cd,v1.7.1,2020-08-26,21:17:44 -argo-cd,v1.7.0,2020-08-25,19:05:00 -argo-cd,v1.7.0-rc1,2020-08-15,19:37:04 -argo-cd,v1.6.2,2020-07-31,23:51:10 -argo-cd,v1.6.1,2020-06-19,00:47:03 -argo-cd,v1.6.0,2020-06-16,22:46:48 -argo-cd,v1.5.8,2020-06-16,20:05:59 -argo-cd,v1.6.0-rc2,2020-06-09,22:29:03 -argo-cd,v1.5.7,2020-06-09,18:46:23 -argo-cd,v1.6.0-rc1,2020-06-03,04:11:50 -argo-cd,v1.5.6,2020-06-02,19:13:17 -argo-cd,v1.5.5,2020-05-16,15:22:14 -argo-cd,v1.5.4,2020-05-05,19:25:30 -argo-cd,v1.5.3,2020-05-02,04:58:47 -argo-cd,v1.5.2,2020-04-15,19:05:41 -argo-cd,v1.4.3,2020-04-15,19:09:30 -argo-cd,v1.5.1,2020-04-06,16:35:44 -argo-cd,v1.5.0,2020-04-02,18:49:53 -argo-cd,v1.5.0-rc3,2020-03-30,22:42:52 -argo-cd,v1.5.0-rc2,2020-03-26,06:12:25 -argo-cd,v1.5.0-rc1,2020-03-20,23:02:28 -argo-cd,v1.4.2,2020-01-24,01:18:02 -argo-cd,v1.4.1,2020-01-22,23:10:57 -argo-cd,v1.4.0,2020-01-18,06:12:51 -argo-cd,v1.4.0-rc1,2020-01-13,20:48:09 -argo-cd,v1.3.6,2019-12-10,22:54:07 -argo-cd,v1.3.5,2019-12-09,21:25:22 -argo-cd,v1.3.4,2019-12-05,23:31:46 -argo-cd,v1.3.3,2019-12-05,22:55:32 -argo-cd,v1.3.2,2019-12-03,21:40:15 -argo-cd,v1.3.1,2019-12-02,22:35:57 -argo-cd,v1.3.0,2019-11-13,02:17:35 -argo-cd,v1.3.0-rc5,2019-11-11,21:34:47 -argo-cd,v1.3.0-rc4,2019-11-04,06:53:16 -argo-cd,v1.3.0-rc3,2019-10-29,20:19:18 -argo-cd,v1.2.5,2019-10-29,00:14:59 -argo-cd,v1.3.0-rc2,2019-10-23,01:36:08 -argo-cd,v1.2.4,2019-10-23,20:11:59 -argo-cd,v1.3.0-rc1,2019-10-16,21:46:33 -argo-cd,v1.2.3,2019-10-01,21:10:16 -argo-cd,v1.2.2,2019-09-24,19:34:55 -argo-cd,v1.2.1,2019-09-12,17:31:17 -argo-cd,v1.2.0,2019-09-04,21:39:00 -argo-cd,v1.2.0-rc2,2019-08-21,16:04:14 -argo-cd,v1.2.0-rc1,2019-08-06,20:26:20 -argo-cd,v1.1.2,2019-07-30,18:02:46 -argo-cd,v1.1.1,2019-07-24,17:44:23 -argo-cd,v1.1.0,2019-07-24,17:22:37 -argo-cd,v1.1.0-rc8,2019-07-19,22:33:59 -argo-cd,v1.1.0-rc7,2019-07-17,23:30:42 -argo-cd,v1.1.0-rc6,2019-07-16,16:43:32 -argo-cd,v1.1.0-rc5,2019-07-09,21:43:03 -argo-cd,v1.1.0-rc4,2019-07-03,21:23:36 -argo-cd,v1.1.0-rc3,2019-06-28,21:09:41 -argo-cd,v1.1.0-rc2,2019-06-21,23:41:40 -argo-cd,v1.1.0-rc1,2019-06-14,18:42:47 -argo-cd,v1.0.2,2019-06-14,17:23:08 -argo-cd,v1.0.1,2019-05-28,17:32:09 -argo-cd,v1.0.0,2019-05-16,22:13:10 -argo-cd,v1.0.0-rc3,2019-05-09,17:28:45 -argo-cd,v1.0.0-rc2,2019-04-30,21:30:50 -argo-cd,v0.12.3,2019-04-30,06:17:03 -argo-cd,v1.0.0-rc1,2019-04-24,18:21:02 -argo-cd,v0.12.2,2019-04-22,21:50:44 -argo-cd,v0.12.1,2019-04-09,21:28:28 -argo-cd,v0.12.0,2019-03-23,01:35:42 -argo-cd,v0.12.0-rc6,2019-03-20,22:50:14 -argo-cd,v0.12.0-rc5,2019-03-19,08:07:36 -argo-cd,v0.12.0-rc4,2019-03-12,21:55:07 -argo-cd,v0.12.0-rc3,2019-03-07,02:51:44 -argo-cd,v0.12.0-rc2,2019-03-06,11:20:06 -argo-cd,v0.12.0-rc1,2019-03-06,03:04:20 -argo-cd,v0.11.2,2019-02-19,18:00:25 -argo-cd,v0.11.1,2019-01-18,21:14:24 -argo-cd,v0.11.0,2019-01-11,02:13:53 -argo-cd,v0.11.0-rc6,2019-01-10,00:42:34 -argo-cd,v0.11.0-rc5,2019-01-09,00:13:56 -argo-cd,v0.11.0-rc4,2019-01-04,21:48:23 -argo-cd,v0.11.0-rc3,2019-01-03,23:58:08 -argo-cd,v0.11.0-rc2,2018-12-28,01:33:08 -argo-cd,v0.11.0-rc1,2018-12-10,17:50:56 -argo-cd,v0.10.6,2018-11-15,03:01:53 -argo-cd,v0.10.5,2018-11-14,02:40:13 -argo-cd,v0.10.4,2018-11-08,02:06:57 -argo-cd,v0.10.3,2018-10-29,07:03:10 -argo-cd,v0.10.2,2018-10-25,20:12:36 -argo-cd,v0.10.1,2018-10-24,20:28:59 -argo-cd,v0.10.0,2018-10-19,22:01:34 -argo-cd,v0.9.2,2018-09-28,16:59:16 -argo-cd,v0.9.1,2018-09-24,21:46:35 -argo-cd,v0.9.0,2018-09-24,20:41:50 -argo-cd,v0.8.2,2018-09-12,08:55:44 -argo-cd,v0.8.1,2018-09-11,01:34:30 -argo-cd,v0.8.0,2018-09-05,01:10:25 -argo-cd,v0.7.2,2018-08-21,08:22:07 -argo-cd,v0.7.1,2018-08-03,20:45:14 -argo-cd,v0.7.0,2018-07-28,01:30:19 -argo-cd,v0.6.2,2018-07-24,10:04:03 -argo-cd,v0.6.1,2018-07-18,07:44:11 -argo-cd,v0.6.0,2018-07-17,09:42:25 -argo-cd,v0.5.4,2018-06-27,23:25:33 -argo-cd,v0.5.3,2018-06-21,00:09:10 -argo-cd,v0.5.2,2018-06-14,20:19:39 -argo-cd,v0.5.1,2018-06-13,21:46:40 -argo-cd,v0.5.0,2018-06-12,20:39:05 -argo-cd,v0.4.7,2018-06-07,18:37:20 -argo-cd,v0.4.6,2018-06-06,18:12:48 -argo-cd,v0.4.5,2018-05-31,10:29:26 -argo-cd,v0.4.4,2018-05-30,23:40:52 -argo-cd,v0.4.3,2018-05-21,22:38:11 -argo-cd,v0.4.2,2018-05-21,08:25:50 -argo-cd,v0.4.1,2018-05-18,20:40:11 -argo-cd,v0.4.0,2018-05-17,09:55:08 -argo-cd,v0.4.0-alpha1,2018-05-11,23:59:31 -argo-cd,v0.3.2,2018-05-03,18:25:30 -argo-cd,v0.3.1,2018-04-24,23:32:12 -argo-cd,v0.3.0,2018-04-23,08:29:14 -argo-cd,v0.2.0,2018-04-03,18:19:24 -argo-cd,v0.1.0,2018-03-13,00:38:20 -argo-workflows,v3.6.2,2024-12-02,14:12:44 -argo-workflows,v3.5.13,2024-12-02,13:09:39 -argo-workflows,v3.6.0,2024-11-14,19:02:01 -argo-workflows,v3.6.0-rc4,2024-10-31,11:56:16 -argo-workflows,v3.5.12,2024-10-30,11:49:27 -argo-workflows,v3.6.0-rc3,2024-10-24,10:51:47 -argo-workflows,v3.4.18,2024-12-16,09:03:37 -argo-workflows,v3.6.0-rc2,2024-10-03,07:48:59 -argo-workflows,v3.5.11,2024-09-20,14:08:00 -argo-workflows,v3.6.0-rc1,2024-09-18,10:03:03 -argo-workflows,v3.5.10,2024-08-01,06:03:16 -argo-workflows,v3.5.9,2024-07-30,06:58:49 -argo-workflows,v3.5.8,2024-06-18,04:52:31 -argo-workflows,v3.5.7,2024-05-27,07:13:30 -argo-workflows,v3.4.17,2024-05-13,02:47:39 -argo-workflows,v3.5.6,2024-04-19,21:43:07 -argo-workflows,v3.5.5,2024-02-29,21:47:50 -argo-workflows,v3.5.4,2024-01-14,06:19:09 -argo-workflows,v3.4.16,2024-01-14,06:17:57 -argo-workflows,v3.4.15,2024-01-13,23:29:40 -argo-workflows,v3.5.3,2024-01-11,03:12:46 -argo-workflows,v3.5.2,2023-11-27,19:16:42 -argo-workflows,v3.4.14,2023-11-27,18:56:22 -argo-workflows,v3.5.1,2023-11-03,19:57:45 -argo-workflows,v3.4.13,2023-11-03,21:07:31 -argo-workflows,v3.4.12,2023-10-20,13:00:24 -argo-workflows,v3.5.0,2023-10-13,15:00:44 -argo-workflows,v3.5.0-rc2,2023-09-20,19:20:10 -argo-workflows,v3.4.11,2023-09-08,01:14:16 -argo-workflows,v3.5.0-rc1,2023-08-15,20:01:35 -argo-workflows,v3.4.10,2023-08-15,18:59:38 -argo-workflows,v3.4.9,2023-07-20,15:28:41 -argo-workflows,v3.4.8,2023-05-25,23:37:40 -argo-workflows,v3.4.7,2023-04-11,17:26:32 -argo-workflows,v3.4.6,2023-03-31,20:16:18 -argo-workflows,v3.4.5,2023-02-07,13:26:29 -argo-workflows,v3.4.4,2022-11-29,21:15:21 -argo-workflows,v3.3.10,2022-11-29,21:24:54 -argo-workflows,v3.4.3,2022-10-31,09:17:41 -argo-workflows,v3.4.2,2022-10-23,07:36:55 -argo-workflows,v3.4.1,2022-10-01,16:09:34 -argo-workflows,v3.4.0,2022-09-19,05:23:46 -argo-workflows,v3.4.0-rc4,2022-09-10,19:34:15 -argo-workflows,v3.4.0-rc3,2022-09-01,01:28:29 -argo-workflows,v3.4.0-rc2,2022-08-19,14:51:26 -argo-workflows,v3.4.0-rc1,2022-08-10,07:13:17 -argo-workflows,v3.3.9,2022-08-10,01:08:09 -argo-workflows,v3.3.8,2022-06-24,01:18:03 -argo-workflows,v3.3.7,2022-06-21,00:41:49 -argo-workflows,v3.3.6,2022-05-26,01:22:39 -argo-workflows,v3.3.5,2022-05-04,01:13:34 -argo-workflows,v3.2.11,2022-05-03,22:59:55 -argo-workflows,v3.3.4,2022-04-29,19:54:39 -argo-workflows,v3.3.3,2022-04-25,23:19:39 -argo-workflows,v3.3.2,2022-04-20,23:16:10 -argo-workflows,v3.3.1,2022-03-18,19:45:27 -argo-workflows,v3.3.0,2022-03-14,23:06:47 -argo-workflows,v3.3.0-rc10,2022-03-07,23:50:34 -argo-workflows,v3.3.0-rc9,2022-03-05,19:01:28 -argo-workflows,v3.2.9,2022-03-02,23:04:35 -argo-workflows,v3.3.0-rc8,2022-03-01,02:52:15 -argo-workflows,v3.3.0-rc7,2022-02-25,21:14:31 -argo-workflows,v3.3.0-rc6,2022-02-21,20:27:19 -argo-workflows,v3.3.0-rc5,2022-02-21,20:07:56 -argo-workflows,v3.3.0-rc4,2022-02-08,20:05:39 -argo-workflows,v3.2.8,2022-02-04,20:19:52 -argo-workflows,v3.3.0-rc3,2022-02-03,20:31:05 -argo-workflows,v0.0.0-dev-bom-1,2022-02-02,21:21:47 -argo-workflows,v3.3.0-rc2,2022-01-30,01:45:04 -argo-workflows,v3.3.0-rc1,2022-01-29,01:08:13 -argo-workflows,v3.2.7,2022-01-28,02:28:31 -argo-workflows,v3.2.6,2021-12-17,21:12:28 -argo-workflows,v3.2.5,2021-12-16,00:34:48 -argo-workflows,v0.0.0-dev-kc-7,2021-11-19,01:36:27 -argo-workflows,v3.2.4,2021-11-18,00:41:27 -argo-workflows,v3.1.15,2021-11-17,18:46:01 -argo-workflows,v0.0.0-dev-kc-6,2021-11-18,00:10:06 -argo-workflows,v0.0.0-dev-kc-5,2021-11-16,20:03:24 -argo-workflows,v0.0.0-dev-kc-4,2021-11-16,18:38:30 -argo-workflows,v0.0.0-dev-kc-3,2021-11-15,21:54:04 -argo-workflows,v0.0.0-dev-kc-2,2021-11-15,21:36:23 -argo-workflows,v0.0.0-dev-kc-1,2021-11-09,21:24:30 -argo-workflows,v0.0.0-dev-kc-0,2021-11-09,17:10:14 -argo-workflows,v3.2.3,2021-10-27,02:22:57 -argo-workflows,v3.2.2,2021-10-21,18:24:56 -argo-workflows,v3.1.14,2021-10-20,02:52:43 -argo-workflows,v3.2.1,2021-10-19,22:11:39 -argo-workflows,v3.2.0,2021-10-12,16:28:36 -argo-workflows,v3.2.0-rc6,2021-10-06,02:26:30 -argo-workflows,v3.2.0-rc5,2021-09-29,18:09:20 -argo-workflows,v3.1.13,2021-09-28,20:07:21 -argo-workflows,v3.2.0-rc4,2021-09-21,21:03:56 -argo-workflows,v3.1.12,2021-09-16,14:12:07 -argo-workflows,v3.2.0-rc3,2021-09-14,19:40:01 -argo-workflows,v3.1.11,2021-09-14,07:41:28 -argo-workflows,v3.1.10,2021-09-10,18:58:55 -argo-workflows,v3.1.9,2021-09-03,22:39:13 -argo-workflows,v3.2.0-rc2,2021-09-01,23:45:48 -argo-workflows,v0.0.0-dev-mc-4,2021-08-31,18:10:35 -argo-workflows,v0.0.0-dev-mc-3,2021-08-30,17:45:10 -argo-workflows,v0.0.0-dev-mc-2,2021-08-30,17:40:57 -argo-workflows,v0.0.0-dev-mc-1,2021-08-30,00:26:16 -argo-workflows,v0.0.0-dev-mc-0,2021-08-28,02:06:29 -argo-workflows,v3.2.0-rc1,2021-08-20,02:49:34 -argo-workflows,v3.1.8,2021-08-19,00:19:56 -argo-workflows,v3.1.7,2021-08-18,18:21:43 -argo-workflows,v3.0.10,2021-08-18,23:53:38 -argo-workflows,v3.0.9,2021-08-18,17:03:34 -argo-workflows,v2.12.13,2021-08-18,23:42:45 -argo-workflows,v2.12.12,2021-08-18,17:57:06 -argo-workflows,v3.1.6,2021-08-13,00:39:51 -argo-workflows,v0.0.0-dev-dataflow-41,2021-08-11,04:28:21 -argo-workflows,v3.1.5,2021-08-04,07:14:30 -argo-workflows,v0.0.0-dev-dataflow-40,2021-08-04,02:06:40 -argo-workflows,v3.1.4,2021-08-04,01:06:06 -argo-workflows,v0.0.0-dev-dataflow-39,2021-07-30,20:53:39 -argo-workflows,v3.1.3,2021-07-28,05:38:36 -argo-workflows,v0.0.0-dev-dataflow-37,2021-07-23,23:23:18 -argo-workflows,v0.0.0-dev-dataflow-36,2021-07-22,01:29:29 -argo-workflows,v0.0.0-dev-dataflow-34,2021-07-20,18:17:04 -argo-workflows,v0.0.0-dev-dataflow-33,2021-07-16,23:18:16 -argo-workflows,v3.1.2,2021-07-15,22:04:54 -argo-workflows,v0.0.0-dev-dataflow-31,2021-07-14,16:55:52 -argo-workflows,v0.0.0-dev-dataflow-30,2021-07-12,18:40:24 -argo-workflows,v3.1.1,2021-06-28,21:31:33 -argo-workflows,v0.0.0-dev-dataflow-29,2021-06-28,18:51:44 -argo-workflows,v0.0.0-dev-dataflow-28,2021-06-25,03:44:24 -argo-workflows,v3.1.0,2021-06-21,23:35:00 -argo-workflows,v3.0.8,2021-06-21,23:52:48 -argo-workflows,v0.0.0-dev-dataflow-27,2021-06-21,23:00:03 -argo-workflows,v0.0.0-dev-dataflow-26,2021-06-16,00:01:26 -argo-workflows,v0.0.0-dev-dataflow-25,2021-06-16,00:01:43 -argo-workflows,v3.1.0-rc14,2021-06-10,19:18:50 -argo-workflows,v0.0.0-dev-dataflow-24,2021-06-10,17:34:10 -argo-workflows,v0.0.0-dev-dataflow-23,2021-06-10,02:31:42 -argo-workflows,v3.1.0-rc13,2021-06-08,16:45:35 -argo-workflows,v0.0.0-dev-dataflow-22,2021-06-09,20:38:24 -argo-workflows,v0.0.0-dev-dataflow-20,2021-06-08,02:42:49 -argo-workflows,v0.0.0-dev-dataflow-19,2021-06-06,20:41:36 -argo-workflows,v0.0.0-dev-docker-0,2021-06-06,19:00:54 -argo-workflows,v0.0.0-dev-dataflow-18,2021-06-05,00:59:50 -argo-workflows,v0.0.0-dev-dataflow-17,2021-06-04,01:23:11 -argo-workflows,v0.0.0-dev-dataflow-16,2021-06-04,01:03:00 -argo-workflows,v3.1.0-rc12,2021-06-03,01:40:44 -argo-workflows,v3.1.0-rc11,2021-06-01,19:02:58 -argo-workflows,v0.0.0-dev-dataflow-15,2021-06-01,22:31:59 -argo-workflows,v0.0.0-dev-dataflow-14,2021-06-01,20:34:22 -argo-workflows,v0.0.0-dev-dataflow-13,2021-06-01,19:06:07 -argo-workflows,v3.1.0-rc10,2021-05-28,00:00:15 -argo-workflows,v0.0.0-dev-dataflow-11,2021-05-27,02:01:59 -argo-workflows,v3.1.0-rc8,2021-05-25,18:06:14 -argo-workflows,v3.0.7,2021-05-25,19:08:55 -argo-workflows,v0.0.0-dev-dataflow-10,2021-05-25,18:22:42 -argo-workflows,v3.1.0-rc7,2021-05-24,20:15:18 -argo-workflows,v3.0.6,2021-05-24,22:03:27 -argo-workflows,v3.0.5,2021-05-24,20:16:47 -argo-workflows,v3.1.0-rc6,2021-05-21,16:46:01 -argo-workflows,v0.0.0-dev-dataflow-9,2021-05-21,20:56:00 -argo-workflows,v0.0.0-dev-dataflow-8,2021-05-21,06:32:47 -argo-workflows,v0.0.0-dev-dataflow-7,2021-05-21,03:02:41 -argo-workflows,v0.0.0-dev-dataflow-6,2021-05-20,23:34:42 -argo-workflows,v0.0.0-dev-dataflow-5,2021-05-19,23:23:04 -argo-workflows,v0.0.0-dev-dataflow-4,2021-05-19,00:02:40 -argo-workflows,v3.1.0-rc5,2021-05-17,22:42:30 -argo-workflows,v3.1.0-rc4,2021-05-14,21:20:57 -argo-workflows,v3.0.4,2021-05-14,06:52:02 -argo-workflows,v3.1.0-rc3,2021-05-13,21:46:01 -argo-workflows,v3.1.0-rc2,2021-05-13,00:17:44 -argo-workflows,v3.1.0-rc1,2021-05-12,21:19:04 -argo-workflows,v3.0.3,2021-05-11,22:31:06 -argo-workflows,v3.0.2,2021-04-20,15:37:15 -argo-workflows,v2.12.11,2021-04-06,18:10:38 -argo-workflows,v3.0.1,2021-04-01,19:52:20 -argo-workflows,v3.0.0,2021-03-30,20:25:33 -argo-workflows,v3.0.0-rc9,2021-03-23,19:04:46 -argo-workflows,v3.0.0-rc8,2021-03-17,19:30:33 -argo-workflows,v3.0.0-rc7,2021-03-16,23:25:22 -argo-workflows,v3.0.0-rc6,2021-03-10,01:08:31 -argo-workflows,v3.0.0-rc5,2021-03-09,19:50:05 -argo-workflows,v2.12.10,2021-03-08,22:57:52 -argo-workflows,v3.0.0-rc4,2021-03-02,22:26:56 -argo-workflows,v3.0.0-rc3,2021-02-23,21:38:38 -argo-workflows,v3.0.0-rc2,2021-02-16,18:09:12 -argo-workflows,v2.12.9,2021-02-17,01:28:49 -argo-workflows,v3.0.0-rc1,2021-02-09,00:36:27 -argo-workflows,v2.12.8,2021-02-09,00:36:17 -argo-workflows,v2.12.7,2021-02-01,22:21:36 -argo-workflows,v2.12.6,2021-01-25,20:24:13 -argo-workflows,v2.12.5,2021-01-19,22:49:21 -argo-workflows,v2.12.4,2021-01-12,20:53:35 -argo-workflows,v2.12.3,2021-01-05,02:00:00 -argo-workflows,v2.12.2,2020-12-18,18:17:19 -argo-workflows,v2.12.1,2020-12-18,01:11:16 -argo-workflows,v2.12.0,2020-12-17,19:35:41 -argo-workflows,v2.12.0-rc6,2020-12-15,19:00:45 -argo-workflows,v2.12.0-rc5,2020-12-10,13:50:01 -argo-workflows,v2.12.0-rc4,2020-12-03,00:55:16 -argo-workflows,v2.12.0-rc3,2020-11-23,13:35:50 -argo-workflows,v2.11.8,2020-11-21,16:36:24 -argo-workflows,v2.12.0-rc2,2020-11-12,16:23:14 -argo-workflows,v2.12.0-rc1,2020-11-06,19:14:19 -argo-workflows,v2.11.7,2020-11-02,21:50:13 -argo-workflows,v2.11.6,2020-10-19,20:51:22 -argo-workflows,v2.11.5,2020-10-15,23:14:34 -argo-workflows,v2.11.4,2020-10-14,22:30:23 -argo-workflows,v2.11.3,2020-10-07,23:20:10 -argo-workflows,v2.11.2,2020-10-06,00:19:46 -argo-workflows,v2.11.1,2020-09-29,17:55:55 -argo-workflows,v2.11.0,2020-09-17,23:09:05 -argo-workflows,v2.11.0-rc3,2020-09-15,16:50:33 -argo-workflows,v2.10.2,2020-09-14,17:45:20 -argo-workflows,v2.11.0-rc2,2020-09-09,17:43:25 -argo-workflows,v2.10.1,2020-09-03,00:02:01 -argo-workflows,v2.11.0-rc1,2020-09-01,20:17:41 -argo-workflows,v2.10.0,2020-08-18,23:15:58 -argo-workflows,v2.10.0-rc7,2020-08-14,15:48:45 -argo-workflows,v2.10.0-rc6,2020-08-06,23:31:38 -argo-workflows,v2.9.5,2020-08-06,22:45:49 -argo-workflows,v2.10.0-rc5,2020-08-03,23:21:27 -argo-workflows,v2.10.0-rc4,2020-07-29,00:15:54 -argo-workflows,v2.9.4,2020-07-24,21:59:33 -argo-workflows,v2.10.0-rc3,2020-07-23,23:04:45 -argo-workflows,v2.10.0-rc1,2020-07-17,20:10:06 -argo-workflows,v2.9.3,2020-07-15,01:33:15 -argo-workflows,v2.9.2,2020-07-09,00:21:41 -argo-workflows,v2.9.1,2020-07-03,15:28:51 -argo-workflows,v2.9.0,2020-07-02,01:43:01 -argo-workflows,v2.9.0-rc4,2020-06-26,23:05:54 -argo-workflows,v2.9.0-rc3,2020-06-23,19:15:20 -argo-workflows,v2.8.2,2020-06-22,22:28:02 -argo-workflows,v2.9.0-rc2,2020-06-17,04:36:44 -argo-workflows,v2.9.0-rc1,2020-06-11,00:19:33 -argo-workflows,v2.8.1,2020-05-29,00:31:04 -argo-workflows,v2.8.0,2020-05-11,23:50:27 -argo-workflows,v2.8.0-rc4,2020-05-06,23:58:00 -argo-workflows,v2.7.7,2020-05-06,23:32:46 -argo-workflows,v2.8.0-rc3,2020-04-28,16:46:57 -argo-workflows,v2.7.6,2020-04-28,17:31:48 -argo-workflows,v2.8.0-rc2,2020-04-23,23:29:50 -argo-workflows,v2.8.0-rc1,2020-04-21,15:36:43 -argo-workflows,v2.7.5,2020-04-21,01:35:36 -argo-workflows,v2.7.4,2020-04-16,18:20:58 -argo-workflows,v2.6.4,2020-04-16,03:02:24 -argo-workflows,v2.7.3,2020-04-16,02:03:38 -argo-workflows,v2.7.2,2020-04-10,20:29:17 -argo-workflows,v2.7.1,2020-04-07,17:16:19 -argo-workflows,v2.7.0,2020-04-01,03:13:14 -argo-workflows,v2.7.0-rc4,2020-03-30,22:13:50 -argo-workflows,v2.7.0-rc3,2020-03-25,20:18:44 -argo-workflows,v2.7.0-rc2,2020-03-23,18:38:05 -argo-workflows,v2.7.0-rc1,2020-03-19,02:11:45 -argo-workflows,v2.6.3,2020-03-16,18:24:24 -argo-workflows,v2.6.2,2020-03-12,16:23:45 -argo-workflows,v2.6.1,2020-03-04,21:33:38 -argo-workflows,v2.6.0,2020-02-28,23:39:10 -argo-workflows,v2.6.0-rc3,2020-02-25,17:32:04 -argo-workflows,v2.5.2,2020-02-24,23:10:36 -argo-workflows,v2.6.0-rc2,2020-02-22,00:36:29 -argo-workflows,v2.5.1,2020-02-20,18:30:07 -argo-workflows,v2.6.0-rc1,2020-02-19,18:48:23 -argo-workflows,v2.5.0,2020-02-19,02:54:07 -argo-workflows,v2.5.0-rc12,2020-02-14,00:08:36 -argo-workflows,v2.5.0-rc11,2020-02-11,22:25:57 -argo-workflows,v2.5.0-rc10,2020-02-08,00:23:39 -argo-workflows,v2.5.0-rc9,2020-02-07,00:40:24 -argo-workflows,v2.5.0-rc8,2020-02-04,01:25:11 -argo-workflows,v2.5.0-rc7,2020-01-31,22:43:09 -argo-workflows,v2.5.0-rc6,2020-01-30,22:14:51 -argo-workflows,v2.5.0-rc5,2020-01-30,03:13:49 -argo-workflows,v2.5.0-rc4,2020-01-27,21:08:05 -argo-workflows,v2.5.0-rc3,2020-01-27,19:37:31 -argo-workflows,v2.5.0-rc2,2020-01-24,21:43:45 -argo-workflows,v2.5.0-rc1,2020-01-24,20:59:49 -argo-workflows,v2.4.3,2019-12-06,05:53:42 -argo-workflows,v2.4.2,2019-10-21,19:06:52 -argo-workflows,v2.4.1,2019-10-09,00:01:23 -argo-workflows,v2.4.0,2019-10-07,20:35:32 -argo-workflows,v2.4.0-rc1,2019-08-08,22:12:22 -argo-workflows,v2.3.0,2019-05-20,22:34:35 -argo-workflows,v2.3.0-rc3,2019-05-08,00:11:00 -argo-workflows,v2.3.0-rc2,2019-04-21,08:32:04 -argo-workflows,v2.3.0-rc1,2019-04-10,16:08:39 -argo-workflows,v2.2.1,2018-10-11,16:44:01 -argo-workflows,v2.2.0,2018-08-30,09:00:24 -argo-workflows,v2.1.1,2018-05-29,20:52:07 -argo-workflows,v2.1.0,2018-05-01,20:33:03 -argo-workflows,v2.1.0-beta2,2018-03-29,20:55:26 -argo-workflows,v2.1.0-beta1,2018-03-29,15:35:56 -argo-workflows,v2.1.0-alpha1,2018-02-21,22:54:53 -argo-workflows,v2.0.0,2018-02-06,21:55:25 -argo-workflows,v2.0.0-beta1,2018-01-18,22:58:14 -argo-workflows,v2.0.0-alpha3,2018-01-02,21:32:11 -argo-workflows,v2.0.0-alpha2,2017-12-05,05:13:12 -argo-workflows,v2.0.0-alpha1,2017-11-16,22:10:07 -argo-events,v1.9.5,2025-01-10,18:11:20 -argo-events,v1.9.4,2025-01-08,07:48:18 -argo-events,v1.9.3,2024-11-27,06:51:10 -argo-events,v1.9.2,2024-06-14,00:38:39 -argo-events,v1.9.1,2024-02-13,21:21:44 -argo-events,v1.9.0,2024-01-09,08:31:10 -argo-events,v1.8.1,2023-08-31,23:49:47 -argo-events,v1.8.0,2023-05-08,05:54:59 -argo-events,v1.7.6,2023-02-10,07:30:54 -argo-events,v1.7.5,2023-01-23,08:23:36 -argo-events,v1.7.4,2022-12-12,07:45:11 -argo-events,v1.7.3,2022-09-28,22:10:34 -argo-events,v1.7.2,2022-09-12,23:46:11 -argo-events,v1.7.1,2022-06-09,06:27:31 -argo-events,v1.7.0,2022-05-04,22:47:01 -argo-events,v1.7.0-rc1,2022-04-23,07:22:52 -argo-events,v1.6.3,2022-03-03,20:56:12 -argo-events,v1.6.2,2022-03-02,05:39:57 -argo-events,v1.6.1,2022-02-27,08:51:59 -argo-events,v1.6.0,2022-02-13,06:42:27 -argo-events,v1.5.6,2022-01-12,05:18:08 -argo-events,v1.5.5,2021-12-19,03:32:55 -argo-events,v1.5.4,2021-12-10,08:49:46 -argo-events,v1.5.3,2021-11-22,18:36:36 -argo-events,v1.5.2,2021-11-09,20:01:58 -argo-events,v1.5.1,2021-11-08,07:35:38 -argo-events,v1.5.0,2021-10-12,18:48:33 -argo-events,v1.4.3,2021-09-30,15:49:41 -argo-events,v1.4.2,2021-09-21,18:29:51 -argo-events,v1.4.1,2021-09-01,00:37:05 -argo-events,v1.4.0,2021-07-12,16:33:29 -argo-events,v1.3.1,2021-05-04,17:40:52 -argo-events,v1.3.0,2021-04-12,18:14:51 -argo-events,v1.3.0-rc4,2021-04-08,06:37:06 -argo-events,v1.3.0-rc3,2021-04-05,20:42:52 -argo-events,v1.3.0-rc2,2021-03-31,21:34:56 -argo-events,v1.3.0-rc1,2021-03-23,18:05:01 -argo-events,v1.2.3,2021-02-18,17:52:54 -argo-events,v1.2.2,2021-01-27,17:40:28 -argo-events,v1.2.1,2021-01-26,08:22:50 -argo-events,v1.2.0,2021-01-08,08:30:04 -argo-events,v1.1.0,2020-11-16,20:07:55 -argo-events,v1.1.0-rc1,2020-11-05,06:36:21 -argo-events,v1.0.0,2020-09-04,20:57:04 -argo-events,v1.0.0-rc3,2020-08-26,04:36:48 -argo-events,v1.0.0-rc2,2020-08-16,21:20:09 -argo-events,v1.0.0-rc1,2020-08-10,18:25:28 -argo-events,v0.17.0,2020-07-24,12:40:33 -argo-events,v0.16.0,2020-06-14,23:52:44 -argo-events,v0.15.0,2020-05-08,13:42:18 -argo-events,v0.14.0,2020-04-12,23:34:58 -argo-events,v0.13.0,2020-03-21,01:21:15 -argo-events,v0.13.0-rc,2020-02-26,01:33:31 -argo-events,v0.12,2020-01-17,04:51:55 -argo-events,v0.12-rc,2019-12-12,04:52:49 -argo-events,v0.11,2019-11-11,17:11:35 -argo-events,v0.10,2019-10-07,12:51:38 -argo-events,v0.9.3,2019-07-15,12:16:22 -argo-events,v0.9.2,2019-04-26,01:11:53 -argo-events,v0.9.1,2019-04-26,00:33:03 -argo-events,v.0.9,2019-03-30,13:07:25 -argo-events,v0.8.3,2019-03-18,21:09:05 -argo-events,v0.8.2,2019-03-14,10:32:46 -argo-events,v0.8.1,2019-03-11,13:42:08 -argo-events,v0.8,2019-02-27,18:08:21 -argo-events,v0.7,2019-01-30,04:12:58 -argo-events,v0.6,2018-11-27,11:46:02 -argo-events,v0.5,2018-10-18,19:51:19 -argo-events,v0.5-beta1,2018-07-27,15:00:03 -argo-events,v0.5-alpha1,2018-06-20,19:23:36 -argo-rollouts,v1.8.0-rc2,2025-01-16,19:43:44 -argo-rollouts,v1.8.0-rc1,2024-12-09,14:28:35 -argo-rollouts,v1.7.2,2024-08-13,18:42:47 -argo-rollouts,v1.7.1,2024-06-25,01:38:31 -argo-rollouts,v1.7.0,2024-06-13,20:23:14 -argo-rollouts,v1.7.0-rc1,2024-04-05,18:24:00 -argo-rollouts,v1.6.6,2024-02-13,15:56:59 -argo-rollouts,v1.6.5,2024-01-25,20:19:53 -argo-rollouts,v1.6.4,2023-12-11,21:54:30 -argo-rollouts,v1.6.3,2023-12-05,14:36:31 -argo-rollouts,v1.6.2,2023-11-02,19:58:08 -argo-rollouts,v1.6.1,2023-11-01,21:19:43 -argo-rollouts,v1.6.0,2023-09-06,19:00:06 -argo-rollouts,v1.6.0-rc1,2023-08-11,14:22:24 -argo-rollouts,v1.5.1,2023-05-24,19:26:51 -argo-rollouts,v1.5.0,2023-05-08,15:34:06 -argo-rollouts,v1.5.0-rc1,2023-03-27,20:09:25 -argo-rollouts,v1.4.1,2023-02-25,15:23:34 -argo-rollouts,v1.3.3,2023-02-25,04:38:57 -argo-rollouts,v1.4.0,2023-01-09,21:43:34 -argo-rollouts,v1.4.0-rc1,2022-12-20,02:07:55 -argo-rollouts,v1.3.2,2022-12-15,17:05:26 -argo-rollouts,v1.3.1,2022-09-29,17:43:19 -argo-rollouts,v1.3.0,2022-09-19,03:29:00 -argo-rollouts,v1.3.0-rc3,2022-09-15,16:00:07 -argo-rollouts,v1.3.0-rc2,2022-08-25,20:49:49 -argo-rollouts,v1.3.0-rc1,2022-07-29,19:54:34 -argo-rollouts,v1.2.2,2022-07-26,17:49:31 -argo-rollouts,v1.2.1,2022-05-13,20:57:34 -argo-rollouts,v1.2.0,2022-03-22,17:16:13 -argo-rollouts,v1.2.0-rc2,2022-02-25,16:54:46 -argo-rollouts,v1.2.0-rc1,2022-02-07,20:00:22 -argo-rollouts,v1.1.1,2021-11-29,21:44:13 -argo-rollouts,v1.1.0,2021-10-12,17:02:30 -argo-rollouts,v1.1.0-rc2,2021-10-05,23:41:25 -argo-rollouts,v1.0.7,2021-09-29,18:02:01 -argo-rollouts,v1.1.0-rc1,2021-09-21,23:23:21 -argo-rollouts,v1.0.6,2021-08-26,18:13:19 -argo-rollouts,v1.0.4,2021-08-03,04:38:07 -argo-rollouts,v1.0.3,2021-08-03,04:36:59 -argo-rollouts,v1.0.2,2021-06-15,22:33:04 -argo-rollouts,v1.0.1,2021-05-26,08:43:12 -argo-rollouts,v1.0.0,2021-05-20,04:11:28 -argo-rollouts,v1.0.0-rc1,2021-04-29,20:29:41 -argo-rollouts,v0.10.2,2020-12-17,21:20:44 -argo-rollouts,v0.10.1,2020-12-05,01:23:44 -argo-rollouts,v0.10.0,2020-11-14,00:21:31 -argo-rollouts,v0.9.3,2020-11-05,23:24:15 -argo-rollouts,v0.9.2,2020-10-17,04:41:56 -argo-rollouts,v0.9.1,2020-09-28,22:52:01 -argo-rollouts,v0.9.0,2020-08-17,22:17:04 -argo-rollouts,v0.8.3,2020-06-04,00:49:11 -argo-rollouts,v0.8.2,2020-05-06,20:40:16 -argo-rollouts,v0.8.1,2020-04-20,23:55:07 -argo-rollouts,v0.8.0,2020-04-13,16:40:32 -argo-rollouts,v0.7.2,2020-02-25,19:46:06 -argo-rollouts,v0.7.1,2020-02-10,18:01:08 -argo-rollouts,v0.7.0,2020-01-22,05:09:28 -argo-rollouts,v0.6.3,2020-01-22,04:40:30 -argo-rollouts,v0.6.2,2019-12-16,17:14:42 -argo-rollouts,v0.6.1,2019-12-06,00:25:57 -argo-rollouts,v0.6.0,2019-11-17,21:16:29 -argo-rollouts,v0.5.0,2019-09-23,17:59:31 -argo-rollouts,v0.4.2,2019-08-19,20:21:15 -argo-rollouts,v0.4.1,2019-06-26,16:07:32 -argo-rollouts,v0.4.0,2019-06-21,17:48:41 -argo-rollouts,v0.3.2,2019-06-13,17:58:53 -argo-rollouts,v0.3.1,2019-05-18,21:27:51 -argo-rollouts,v0.3.0,2019-05-01,06:36:28 -argo-rollouts,v0.2.2,2019-04-16,23:10:01 -argo-rollouts,v0.2.1,2019-04-04,21:43:44 -argo-rollouts,v0.2.0,2019-03-04,22:30:55 -argo-rollouts,v0.1.0,2019-02-01,19:03:49 diff --git a/scripts/release-analysis/fetch_helmet_releases.py b/scripts/release-analysis/fetch_helmet_releases.py deleted file mode 100644 index 77e2fcb3..00000000 --- a/scripts/release-analysis/fetch_helmet_releases.py +++ /dev/null @@ -1,90 +0,0 @@ -import csv -import os -from datetime import datetime - -import requests - -# GitHub repository URL -repo_url = "https://api.github.com/repos/argoproj/argo-helm/releases" - -# Get the GitHub token from environment variables -github_token = os.getenv("GITHUB_TOKEN") -if not github_token: - raise ValueError("GITHUB_TOKEN environment variable is not set") - - -# Function to fetch all releases with pagination -def fetch_all_releases(url): - releases = [] - headers = {"Authorization": f"token {github_token}"} - while url: - response = requests.get(url, headers=headers) - response.raise_for_status() - releases.extend(response.json()) - url = response.links.get("next", {}).get("url") - return releases - - -# Function to get the content of Chart.yaml in a release -def get_chart_yaml(repo, tag, chart_path): - url = f"https://raw.githubusercontent.com/{repo}/refs/tags/{tag}/charts/{chart_path}/Chart.yaml" - headers = {"Authorization": f"token {github_token}"} - response = requests.get(url, headers=headers) - if response.status_code == 200: - return response.text - return None - - -# Function to extract appVersion from Chart.yaml content -def extract_app_version(chart_yaml): - for line in chart_yaml.splitlines(): - if line.startswith("appVersion:"): - return line.split(":")[1].strip() - return None - - -# Function to fetch releases and write to a CSV file -def fetch_and_write_helmet_releases(csv_file): - # Fetch all releases - releases = fetch_all_releases(repo_url) - - # Write the release data to the CSV file - with open(csv_file, mode="w", newline="") as file: - writer = csv.writer(file, quoting=csv.QUOTE_NONE, escapechar="\\") - writer.writerow(["Release Name", "Release Date", "Release Time", "App Version"]) - - for release in releases: - tag_name = release["tag_name"] - published_at = release["published_at"] - release_date = datetime.strptime(published_at, "%Y-%m-%dT%H:%M:%SZ").date() - release_time = datetime.strptime(published_at, "%Y-%m-%dT%H:%M:%SZ").time() - - # Extract chart path from the release name - chart_path = "-".join(tag_name.split("-")[:-1]) - current_chart_yaml = get_chart_yaml( - "argoproj/argo-helm", tag_name, chart_path - ) - - if current_chart_yaml: - current_app_version = extract_app_version(current_chart_yaml) - writer.writerow( - [tag_name, release_date, release_time, current_app_version] - ) - - # Read the CSV file, remove any instances of `\"`, and write back the cleaned content - with open(csv_file, mode="r") as file: - content = file.read() - - cleaned_content = content.replace('\\"', "") - - with open(csv_file, mode="w", newline="") as file: - file.write(cleaned_content) - - print( - f'Release data has been written to {csv_file} and cleaned of any instances of \\"' - ) - - -# Example usage -if __name__ == "__main__": - fetch_and_write_helmet_releases("argo_helm_releases.csv") diff --git a/scripts/release-analysis/fetch_releases.py b/scripts/release-analysis/fetch_releases.py deleted file mode 100644 index 6d27faee..00000000 --- a/scripts/release-analysis/fetch_releases.py +++ /dev/null @@ -1,57 +0,0 @@ -import csv -import os -from datetime import datetime - -import requests - -# List of GitHub repository URLs we care about -repos = [ - ("argo-cd", "https://api.github.com/repos/argoproj/argo-cd/releases"), - ("argo-workflows", "https://api.github.com/repos/argoproj/argo-workflows/releases"), - ("argo-events", "https://api.github.com/repos/argoproj/argo-events/releases"), - ("argo-rollouts", "https://api.github.com/repos/argoproj/argo-rollouts/releases"), -] - -# Get the GitHub token from environment variables -github_token = os.getenv("GITHUB_TOKEN") -if not github_token: - raise ValueError("GITHUB_TOKEN environment variable is not set") - - -# Fetch all releases with pagination -def fetch_all_releases(url): - releases = [] - headers = {"Authorization": f"token {github_token}"} - while url: - response = requests.get(url, headers=headers) - response.raise_for_status() - releases.extend(response.json()) - url = response.links.get("next", {}).get("url") - return releases - - -# Fetch releases and write to a CSV file -def fetch_and_write_releases(csv_file): - with open(csv_file, mode="w", newline="") as file: - writer = csv.writer(file) - writer.writerow(["Repository", "Release Tag", "Release Date", "Release Time"]) - - for repo_name, repo_url in repos: - releases = fetch_all_releases(repo_url) - for release in releases: - tag_name = release["tag_name"] - published_at = release["published_at"] - release_date = datetime.strptime( - published_at, "%Y-%m-%dT%H:%M:%SZ" - ).date() - release_time = datetime.strptime( - published_at, "%Y-%m-%dT%H:%M:%SZ" - ).time() - writer.writerow([repo_name, tag_name, release_date, release_time]) - - print(f"Release data has been written to {csv_file}") - - -# Example usage -if __name__ == "__main__": - fetch_and_write_releases("argo_releases.csv") diff --git a/scripts/release-analysis/main.py b/scripts/release-analysis/main.py deleted file mode 100644 index 3fcf21ed..00000000 --- a/scripts/release-analysis/main.py +++ /dev/null @@ -1,31 +0,0 @@ -import os - -from fetch_helmet_releases import fetch_and_write_helmet_releases -from fetch_releases import fetch_and_write_releases -from merge_csvs import merge_csv_files -from plot_graph import plot_time_difference - -# Check there is a github token -github_token = os.getenv("GITHUB_TOKEN") -if not github_token: - raise ValueError("GITHUB_TOKEN environment variable is not set") - -# Do the thing -print("Fetching releases...") -fetch_and_write_releases("argo_releases.csv") -print("Done") - -print("Fetching Team Helmet releases...") -fetch_and_write_helmet_releases("argo_helm_releases.csv") -print("Done") - -print("Merging release info...") -merge_csv_files("argo_releases.csv", "argo_helm_releases.csv", "merged_releases.csv") -print("Done") - -print("Plotting time difference graphs...") -plot_time_difference("merged_releases.csv") -print("Done") - -# Delete __pycache__ directories -os.system("rm -rf __pycache__") diff --git a/scripts/release-analysis/merge_csvs.py b/scripts/release-analysis/merge_csvs.py deleted file mode 100644 index 72b6917b..00000000 --- a/scripts/release-analysis/merge_csvs.py +++ /dev/null @@ -1,108 +0,0 @@ -import csv -from datetime import datetime - - -def merge_csv_files(csv_file_1, csv_file_2, output_csv_file): - # Read the first CSV file into a dictionary - releases_1 = {} - with open(csv_file_1, mode="r") as file: - reader = csv.DictReader(file) - for row in reader: - key = (row["Repository"], row["Release Tag"]) - releases_1[key] = row - - # Read the second CSV file and find the oldest release for each appVersion - oldest_releases = {} - valid_repos = {"argo-cd", "argo-events", "argo-workflows", "argo-rollouts"} - with open(csv_file_2, mode="r") as file: - reader = csv.DictReader(file) - for row in reader: - release_name = row["Release Name"] - repo_name = "-".join(release_name.split("-")[:-1]) - if repo_name in valid_repos: - app_version = row["App Version"] - release_datetime = datetime.strptime( - f"{row['Release Date']} {row['Release Time']}", "%Y-%m-%d %H:%M:%S" - ) - if ( - repo_name, - app_version, - ) not in oldest_releases or release_datetime < oldest_releases[ - (repo_name, app_version) - ][ - "datetime" - ]: - oldest_releases[(repo_name, app_version)] = { - "row": row, - "datetime": release_datetime, - } - - # Merge the oldest releases with the first CSV file - merged_releases = [] - for (repo_name, app_version), data in oldest_releases.items(): - row = data["row"] - for key, release in releases_1.items(): - if ( - repo_name == release["Repository"] - and app_version == release["Release Tag"] - ): - time_difference = data["datetime"] - datetime.strptime( - f"{release['Release Date']} {release['Release Time']}", - "%Y-%m-%d %H:%M:%S", - ) - time_difference_hours = ( - time_difference.total_seconds() / 3600 - ) # Convert to hours - merged_row = { - "Repository": release["Repository"], - "Release Tag": release["Release Tag"], - "Release Date": release["Release Date"], - "Release Time": release["Release Time"], - "App Version": app_version, - "Release Name": row["Release Name"], - "Release Date 2": row["Release Date"], - "Release Time 2": row["Release Time"], - "Time Difference": time_difference_hours, - } - merged_releases.append(merged_row) - break - else: - merged_row = { - "Repository": repo_name, - "Release Tag": "", - "Release Date": "", - "Release Time": "", - "App Version": app_version, - "Release Name": row["Release Name"], - "Release Date 2": row["Release Date"], - "Release Time 2": row["Release Time"], - "Time Difference": "", - } - merged_releases.append(merged_row) - - # Write the merged data to a new CSV file - with open(output_csv_file, mode="w", newline="") as file: - fieldnames = [ - "Repository", - "Release Tag", - "Release Date", - "Release Time", - "App Version", - "Release Name", - "Release Date 2", - "Release Time 2", - "Time Difference", - ] - writer = csv.DictWriter(file, fieldnames=fieldnames) - writer.writeheader() - for row in merged_releases: - writer.writerow(row) - - print(f"Merged data has been written to {output_csv_file}") - - -# Example usage -if __name__ == "__main__": - merge_csv_files( - "argo_releases.csv", "argo_helm_releases.csv", "merged_releases.csv" - ) diff --git a/scripts/release-analysis/merged_releases.csv b/scripts/release-analysis/merged_releases.csv deleted file mode 100644 index a4c13445..00000000 --- a/scripts/release-analysis/merged_releases.csv +++ /dev/null @@ -1,195 +0,0 @@ -Repository,Release Tag,Release Date,Release Time,App Version,Release Name,Release Date 2,Release Time 2,Time Difference -argo-cd,v2.13.3,2025-01-03,19:23:42,v2.13.3,argo-cd-7.7.13,2025-01-04,00:07:55,4.736944444444444 -argo-events,v1.9.5,2025-01-10,18:11:20,v1.9.5,argo-events-2.4.13,2025-01-11,10:22:47,16.190833333333334 -argo-workflows,v3.6.2,2024-12-02,14:12:44,v3.6.2,argo-workflows-0.45.1,2024-12-02,17:39:46,3.4505555555555554 -argo-events,v1.9.4,2025-01-08,07:48:18,v1.9.4,argo-events-2.4.12,2025-01-08,08:37:01,0.8119444444444445 -argo-events,v1.9.3,2024-11-27,06:51:10,v1.9.3,argo-events-2.4.9,2024-11-27,20:44:06,13.882222222222222 -argo-rollouts,v1.7.2,2024-08-13,18:42:47,v1.7.2,argo-rollouts-2.37.5,2024-08-14,08:31:31,13.812222222222223 -argo-cd,v2.13.2,2024-12-11,19:18:46,v2.13.2,argo-cd-7.7.10,2024-12-12,05:33:28,10.245 -argo-cd,v2.13.1,2024-11-20,17:11:22,v2.13.1,argo-cd-7.7.4,2024-11-20,20:48:11,3.613611111111111 -argo-workflows,v3.6.0,2024-11-14,19:02:01,v3.6.0,argo-workflows-0.43.0,2024-11-21,08:27:21,157.42222222222222 -argo-cd,v2.13.0,2024-11-04,12:46:49,v2.13.0,argo-cd-7.7.0,2024-11-05,00:00:06,11.221388888888889 -argo-workflows,v3.5.12,2024-10-30,11:49:27,v3.5.12,argo-workflows-0.42.6,2024-10-30,13:24:53,1.5905555555555555 -argo-cd,v2.12.6,2024-10-18,19:07:18,v2.12.6,argo-cd-7.6.12,2024-10-18,19:27:20,0.3338888888888889 -argo-cd,v2.12.5,2024-10-17,22:03:45,v2.12.5,argo-cd-7.6.11,2024-10-18,07:16:30,9.2125 -argo-cd,v2.12.4,2024-09-26,07:14:39,v2.12.4,argo-cd-7.6.5,2024-09-26,07:42:42,0.4675 -argo-workflows,v3.5.11,2024-09-20,14:08:00,v3.5.11,argo-workflows-0.42.3,2024-09-20,15:08:40,1.011111111111111 -argo-cd,v2.12.3,2024-08-27,12:33:34,v2.12.3,argo-cd-7.4.7,2024-08-27,13:30:34,0.95 -argo-events,v1.9.2,2024-06-14,00:38:39,v1.9.2,argo-events-2.4.6,2024-06-14,05:09:08,4.508055555555556 -argo-workflows,v3.5.10,2024-08-01,06:03:16,v3.5.10,argo-workflows-0.41.13,2024-08-01,07:19:01,1.2625 -argo-cd,v2.12.2,2024-08-23,04:05:09,v2.12.2,argo-cd-7.4.5,2024-08-23,08:51:19,4.769444444444445 -argo-cd,v2.12.1,2024-08-16,17:16:36,v2.12.1,argo-cd-7.4.4,2024-08-16,21:36:53,4.338055555555556 -argo-rollouts,v1.7.1,2024-06-25,01:38:31,v1.7.1,argo-rollouts-2.37.0,2024-06-26,09:10:19,31.53 -argo-cd,v2.12.0,2024-08-05,14:02:15,v2.12.0,argo-cd-7.4.0,2024-08-05,15:22:06,1.3308333333333333 -argo-workflows,v3.5.9,2024-07-30,06:58:49,v3.5.9,argo-workflows-0.41.12,2024-07-30,07:39:23,0.6761111111111111 -argo-cd,v2.11.7,2024-07-24,10:27:18,v2.11.7,argo-cd-7.3.11,2024-07-24,11:44:52,1.2927777777777778 -argo-cd,v2.11.6,2024-07-22,15:19:04,v2.11.6,argo-cd-7.3.10,2024-07-22,17:14:41,1.9269444444444443 -argo-cd,v2.11.5,2024-07-15,18:32:15,v2.11.5,argo-cd-7.3.7,2024-07-16,01:17:05,6.747222222222222 -argo-cd,v2.11.4,2024-07-02,19:52:42,v2.11.4,argo-cd-7.3.4,2024-07-02,20:43:46,0.8511111111111112 -argo-cd,v2.11.3,2024-06-06,09:43:29,v2.11.3,argo-cd-7.1.2,2024-06-06,10:51:51,1.1394444444444445 -argo-rollouts,v1.7.0,2024-06-13,20:23:14,v1.7.0,argo-rollouts-2.36.0,2024-06-14,09:00:46,12.625555555555556 -argo-workflows,v3.5.8,2024-06-18,04:52:31,v3.5.8,argo-workflows-0.41.10,2024-06-18,07:47:04,2.9091666666666667 -argo-workflows,v3.5.7,2024-05-27,07:13:30,v3.5.7,argo-workflows-0.41.7,2024-05-27,08:09:42,0.9366666666666666 -argo-cd,v2.11.2,2024-05-23,14:14:51,v2.11.2,argo-cd-6.11.1,2024-05-23,15:37:21,1.375 -argo-events,v1.9.1,2024-02-13,21:21:44,v1.9.1,argo-events-2.4.3,2024-02-14,08:53:00,11.52111111111111 -argo-rollouts,v1.6.6,2024-02-13,15:56:59,v1.6.6,argo-rollouts-2.34.3,2024-02-14,08:50:21,16.889444444444443 -argo-cd,v2.11.1,2024-05-21,15:03:58,v2.11.1,argo-cd-6.10.0,2024-05-21,16:36:49,1.5475 -argo-workflows,v3.5.6,2024-04-19,21:43:07,v3.5.6,argo-workflows-0.41.2,2024-04-20,04:55:21,7.203888888888889 -argo-cd,v2.11.0,2024-05-07,16:37:25,v2.11.0,argo-cd-6.8.0,2024-05-08,06:21:31,13.735 -argo-cd,v2.10.9,2024-04-30,16:55:10,v2.10.9,argo-cd-6.7.18,2024-04-30,17:14:22,0.32 -argo-cd,v2.10.8,2024-04-26,14:04:02,v2.10.8,argo-cd-6.7.16,2024-04-26,14:21:35,0.2925 -argo-cd,v2.10.7,2024-04-15,09:21:23,v2.10.7,argo-cd-6.7.12,2024-04-15,10:43:13,1.363888888888889 -argo-cd,v2.10.6,2024-04-05,01:04:01,v2.10.6,argo-cd-6.7.10,2024-04-05,05:00:08,3.935277777777778 -argo-cd,v2.10.5,2024-03-28,16:29:02,v2.10.5,argo-cd-6.7.4,2024-03-28,17:30:11,1.0191666666666668 -argo-workflows,v3.5.5,2024-02-29,21:47:50,v3.5.5,argo-workflows-0.40.12,2024-03-01,00:03:01,2.2530555555555556 -argo-cd,v2.10.4,2024-03-18,08:44:51,v2.10.4,argo-cd-6.7.3,2024-03-18,09:36:58,0.8686111111111111 -argo-cd,v2.10.3,2024-03-13,19:53:05,v2.10.3,argo-cd-6.7.2,2024-03-13,20:46:14,0.8858333333333334 -argo-cd,v2.10.2,2024-03-01,22:03:43,v2.10.2,argo-cd-6.5.1,2024-03-01,22:33:17,0.49277777777777776 -argo-cd,v2.10.1,2024-02-14,18:12:43,v2.10.1,argo-cd-6.0.14,2024-02-14,21:04:43,2.8666666666666667 -argo-workflows,v3.5.4,2024-01-14,06:19:09,v3.5.4,argo-workflows-0.40.6,2024-01-14,08:11:19,1.8694444444444445 -argo-cd,v2.10.0,2024-02-06,15:03:51,v2.10.0,argo-cd-5.55.0,2024-02-07,07:10:30,16.110833333333332 -argo-cd,v2.9.6,2024-02-02,19:51:46,v2.9.6,argo-cd-5.53.13,2024-02-02,22:50:34,2.98 -argo-cd,v2.9.5,2024-01-19,18:32:02,v2.9.5,argo-cd-5.53.2,2024-01-19,20:20:14,1.8033333333333332 -argo-rollouts,v1.6.5,2024-01-25,20:19:53,v1.6.5,argo-rollouts-2.34.2,2024-01-26,06:31:27,10.192777777777778 -argo-cd,v2.9.4,2024-01-18,21:24:02,v2.9.4,argo-cd-5.53.1,2024-01-19,05:48:47,8.4125 -argo-cd,v2.9.3,2023-12-01,23:39:19,v2.9.3,argo-cd-5.51.6,2023-12-02,11:03:49,11.408333333333333 -argo-workflows,v3.5.3,2024-01-11,03:12:46,v3.5.3,argo-workflows-0.40.5,2024-01-11,07:20:47,4.133611111111111 -argo-events,v1.9.0,2024-01-09,08:31:10,v1.9.0,argo-events-2.4.2,2024-01-09,10:14:30,1.7222222222222223 -argo-rollouts,v1.6.4,2023-12-11,21:54:30,v1.6.4,argo-rollouts-2.32.8,2023-12-13,06:59:39,33.08583333333333 -argo-workflows,v3.5.2,2023-11-27,19:16:42,v3.5.2,argo-workflows-0.39.5,2023-11-27,21:13:09,1.9408333333333334 -argo-rollouts,v1.6.3,2023-12-05,14:36:31,v1.6.3,argo-rollouts-2.32.7,2023-12-08,15:06:58,72.5075 -argo-rollouts,v1.6.2,2023-11-02,19:58:08,v1.6.2,argo-rollouts-2.32.4,2023-11-15,13:09:53,305.1958333333333 -argo-cd,v2.9.2,2023-11-20,17:52:41,v2.9.2,argo-cd-5.51.4,2023-11-20,18:50:04,0.9563888888888888 -argo-workflows,v3.5.1,2023-11-03,19:57:45,v3.5.1,argo-workflows-0.38.0,2023-11-04,05:58:06,10.005833333333333 -argo-cd,v2.9.1,2023-11-14,15:55:51,v2.9.1,argo-cd-5.51.2,2023-11-15,05:59:33,14.061666666666667 -argo-rollouts,v1.6.1,2023-11-01,21:19:43,v1.6.1,argo-rollouts-2.32.3,2023-11-15,10:00:45,324.6838888888889 -argo-cd,v2.9.0,2023-11-06,05:27:12,v2.9.0,argo-cd-5.51.0,2023-11-06,12:54:52,7.461111111111111 -argo-workflows,v3.5.0,2023-10-13,15:00:44,v3.5.0,argo-workflows-0.35.0,2023-10-13,22:07:38,7.115 -argo-cd,v2.8.6,2023-11-01,17:29:59,v2.8.6,argo-cd-5.50.0,2023-10-31,18:12:30,-23.29138888888889 -argo-rollouts,v1.6.0,2023-09-06,19:00:06,v1.6.0,argo-rollouts-2.32.0,2023-09-07,12:23:50,17.395555555555557 -argo-cd,v2.8.5,2023-10-31,19:30:03,v2.8.5,argo-cd-5.48.0,2023-10-28,07:29:05,-84.01611111111112 -argo-cd,v2.8.4,2023-09-13,20:08:07,v2.8.4,argo-cd-5.46.3,2023-09-14,04:56:22,8.804166666666667 -argo-workflows,v3.4.11,2023-09-08,01:14:16,v3.4.11,argo-workflows-0.33.2,2023-09-08,04:20:30,3.1038888888888887 -argo-cd,v2.8.3,2023-09-07,18:06:07,v2.8.3,argo-cd-5.45.3,2023-09-08,00:13:52,6.129166666666666 -argo-cd,v2.8.2,2023-08-24,21:05:33,v2.8.2,argo-cd-5.43.6,2023-08-25,08:46:11,11.677222222222222 -argo-events,v1.8.1,2023-08-31,23:49:47,v1.8.1,argo-events-2.4.1,2023-09-04,01:15:35,73.43 -argo-cd,v2.8.1,2023-08-22,21:19:28,v2.8.1,argo-cd-5.43.5,2023-08-23,03:57:35,6.635277777777778 -argo-workflows,v3.4.10,2023-08-15,18:59:38,v3.4.10,argo-workflows-0.32.3,2023-08-16,11:00:55,16.02138888888889 -argo-rollouts,v1.5.1,2023-05-24,19:26:51,v1.5.1,argo-rollouts-2.31.1,2023-07-20,17:26:45,1365.9983333333332 -argo-cd,v2.8.0,2023-08-07,20:03:46,v2.8.0,argo-cd-5.43.0,2023-08-08,14:36:04,18.538333333333334 -argo-workflows,v3.4.9,2023-07-20,15:28:41,v3.4.9,argo-workflows-0.32.0,2023-07-20,23:20:17,7.86 -argo-cd,v2.7.11,2023-08-07,20:07:16,v2.7.11,argo-cd-5.42.3,2023-08-08,06:11:54,10.077222222222222 -argo-cd,v2.7.10,2023-07-31,22:51:19,v2.7.10,argo-cd-5.42.1,2023-08-01,05:57:37,7.105 -argo-cd,v2.7.9,2023-07-24,18:50:30,v2.7.9,argo-cd-5.41.2,2023-07-25,02:10:03,7.325833333333334 -argo-cd,v2.7.8,2023-07-19,15:58:13,v2.7.8,argo-cd-5.41.1,2023-07-19,22:26:30,6.471388888888889 -argo-cd,v2.7.7,2023-07-05,20:25:54,v2.7.7,argo-cd-5.37.1,2023-07-06,08:26:09,12.004166666666666 -argo-workflows,v3.4.8,2023-05-25,23:37:40,v3.4.8,argo-workflows-0.28.2,2023-05-26,04:19:27,4.6963888888888885 -argo-cd,v2.7.6,2023-06-20,21:46:46,v2.7.6,argo-cd-5.36.5,2023-06-21,04:27:57,6.686388888888889 -argo-events,v1.8.0,2023-05-08,05:54:59,v1.8.0,argo-events-2.4.0,2023-06-21,12:41:55,1062.7822222222221 -argo-cd,v2.7.5,2023-06-16,15:24:00,v2.7.5,argo-cd-5.36.2,2023-06-17,04:55:38,13.527222222222223 -argo-cd,v2.7.4,2023-06-05,19:40:08,v2.7.4,argo-cd-5.35.1,2023-06-06,04:53:38,9.225 -argo-cd,v2.7.3,2023-05-24,16:14:02,v2.7.3,argo-cd-5.34.5,2023-05-24,23:23:36,7.1594444444444445 -argo-rollouts,v1.5.0,2023-05-08,15:34:06,v1.5.0,argo-rollouts-2.28.0,2023-05-10,15:37:42,48.06 -argo-workflows,v3.4.7,2023-04-11,17:26:32,v3.4.7,argo-workflows-0.23.2,2023-04-12,04:52:48,11.437777777777777 -argo-cd,v2.7.2,2023-05-12,14:41:07,v2.7.2,argo-cd-5.33.2,2023-05-12,15:19:23,0.6377777777777778 -argo-cd,v2.7.1,2023-05-02,17:24:44,v2.7.1,argo-cd-5.31.1,2023-05-03,09:48:25,16.39472222222222 -argo-events,v1.7.6,2023-02-10,07:30:54,v1.7.6,argo-events-2.1.3,2023-02-21,01:14:54,257.73333333333335 -argo-rollouts,v1.4.1,2023-02-25,15:23:34,v1.4.1,argo-rollouts-2.22.3,2023-03-02,15:08:16,119.745 -argo-cd,v2.7.0,2023-05-02,00:51:25,v2.7.0,argo-cd-5.30.0,2023-05-02,07:29:11,6.629444444444444 -argo-cd,v2.6.7,2023-03-23,15:45:09,v2.6.7,argo-cd-5.27.2,2023-03-24,00:09:05,8.398888888888889 -argo-workflows,v3.4.6,2023-03-31,20:16:18,v3.4.6,argo-workflows-0.22.16,2023-04-04,11:10:35,86.90472222222222 -argo-workflows,v3.4.5,2023-02-07,13:26:29,v3.4.5,argo-workflows-0.22.10,2023-02-07,15:11:29,1.75 -argo-cd,v2.6.6,2023-03-16,23:07:31,v2.6.6,argo-cd-5.27.1,2023-03-17,08:25:05,9.292777777777777 -argo-cd,v2.6.5,2023-03-14,14:59:49,v2.6.5,argo-cd-5.26.1,2023-03-14,18:42:39,3.713888888888889 -argo-cd,v2.6.4,2023-03-07,23:29:08,v2.6.4,argo-cd-5.24.2,2023-03-08,07:13:22,7.737222222222222 -argo-cd,v2.6.3,2023-02-27,15:20:04,v2.6.3,argo-cd-5.23.3,2023-02-28,08:32:15,17.203055555555554 -argo-cd,v2.6.2,2023-02-16,15:43:42,v2.6.2,argo-cd-5.21.1,2023-02-17,08:23:54,16.67 -argo-cd,v2.6.1,2023-02-08,19:39:04,v2.6.1,argo-cd-5.20.3,2023-02-08,20:15:43,0.6108333333333333 -argo-cd,v2.6.0,2023-02-06,22:04:33,v2.6.0,argo-cd-5.20.0,2023-02-07,15:02:47,16.970555555555556 -argo-cd,v2.5.10,2023-02-02,15:48:00,v2.5.10,argo-cd-5.19.14,2023-02-02,21:56:38,6.143888888888889 -argo-cd,v2.5.9,2023-01-28,00:04:28,v2.5.9,argo-cd-5.19.11,2023-01-28,13:41:15,13.613055555555556 -argo-workflows,v3.4.4,2022-11-29,21:15:21,v3.4.4,argo-workflows-0.20.12,2022-11-30,15:26:09,18.18 -argo-rollouts,v1.4.0,2023-01-09,21:43:34,v1.4.0,argo-rollouts-2.22.0,2023-01-19,21:14:27,239.51472222222222 -argo-events,v1.7.5,2023-01-23,08:23:36,v1.7.5,argo-events-2.1.1,2023-01-29,12:16:37,147.88361111111112 -argo-cd,v2.5.8,2023-01-25,17:05:03,v2.5.8,argo-cd-5.19.7,2023-01-26,08:23:02,15.299722222222222 -argo-events,v1.7.4,2022-12-12,07:45:11,v1.7.4,argo-events-2.0.10,2022-12-24,19:41:24,299.93694444444446 -argo-cd,v2.5.7,2023-01-18,03:00:02,v2.5.7,argo-cd-5.17.2,2023-01-18,06:44:45,3.745277777777778 -argo-rollouts,v1.3.1,2022-09-29,17:43:19,v1.3.1,argo-rollouts-2.21.1,2022-09-30,22:29:28,28.769166666666667 -argo-cd,v2.5.6,2023-01-10,20:14:18,v2.5.6,argo-cd-5.17.1,2023-01-11,06:33:59,10.328055555555556 -argo-cd,v2.5.5,2022-12-16,16:53:08,v2.5.5,argo-cd-5.16.7,2022-12-17,11:36:17,18.719166666666666 -argo-events,v1.7.3,2022-09-28,22:10:34,v1.7.3,argo-events-2.0.6,2022-09-29,15:55:01,17.740833333333335 -argo-cd,v2.5.4,2022-12-06,20:26:51,v2.5.4,argo-cd-5.16.2,2022-12-07,07:41:56,11.251388888888888 -argo-cd,v2.5.3,2022-11-28,17:28:00,v2.5.3,argo-cd-5.14.3,2022-11-28,22:10:18,4.705 -argo-workflows,v3.4.3,2022-10-31,09:17:41,v3.4.3,argo-workflows-0.20.6,2022-11-01,09:26:43,24.150555555555556 -argo-cd,v2.5.2,2022-11-07,17:23:44,v2.5.2,argo-cd-5.13.6,2022-11-08,16:04:52,22.685555555555556 -argo-cd,v2.5.1,2022-11-01,21:53:59,v2.5.1,argo-cd-5.13.1,2022-11-02,07:31:33,9.626111111111111 -argo-cd,v2.5.0,2022-10-25,15:32:28,v2.5.0,argo-cd-5.8.0,2022-10-25,21:22:42,5.8372222222222225 -argo-workflows,v3.4.2,2022-10-23,07:36:55,v3.4.2,argo-workflows-0.20.3,2022-10-24,05:53:54,22.283055555555556 -argo-cd,v2.4.15,2022-10-17,21:17:43,v2.4.15,argo-cd-5.6.1,2022-10-20,11:23:48,62.10138888888889 -argo-workflows,v3.4.1,2022-10-01,16:09:34,v3.4.1,argo-workflows-0.20.1,2022-10-02,09:28:15,17.31138888888889 -argo-cd,v2.4.14,2022-10-05,17:53:31,v2.4.14,argo-cd-5.5.10,2022-10-06,21:05:05,27.192777777777778 -argo-cd,v2.4.13,2022-10-03,21:38:39,v2.4.13,argo-cd-5.5.8,2022-10-04,00:58:31,3.331111111111111 -argo-cd,v2.4.12,2022-09-16,01:33:23,v2.4.12,argo-cd-5.4.4,2022-09-16,08:58:43,7.4222222222222225 -argo-rollouts,v1.3.0,2022-09-19,03:29:00,v1.3.0,argo-rollouts-2.21.0,2022-09-29,06:43:50,243.24722222222223 -argo-workflows,v3.4.0,2022-09-19,05:23:46,v3.4.0,argo-workflows-0.18.0,2022-09-19,16:10:42,10.782222222222222 -argo-events,v1.7.2,2022-09-12,23:46:11,v1.7.2,argo-events-2.0.5,2022-09-20,11:55:01,180.1472222222222 -argo-cd,v2.4.11,2022-08-22,09:52:10,v2.4.11,argo-cd-4.10.9,2022-08-22,14:04:30,4.205555555555556 -argo-workflows,v3.3.9,2022-08-10,01:08:09,v3.3.9,argo-workflows-0.16.9,2022-08-10,11:43:41,10.592222222222222 -argo-rollouts,v1.2.2,2022-07-26,17:49:31,v1.2.2,argo-rollouts-2.19.2,2022-08-26,09:03:17,735.2294444444444 -argo-events,v1.7.1,2022-06-09,06:27:31,v1.7.1,argo-events-2.0.2,2022-07-04,09:50:24,603.3813888888889 -argo-rollouts,v1.2.0,2022-03-22,17:16:13,v1.2.0,argo-rollouts-2.12.0,2022-03-23,21:12:12,27.933055555555555 -argo-cd,v2.4.10,2022-08-17,21:44:09,v2.4.10,argo-cd-4.10.7,2022-08-18,00:28:21,2.736666666666667 -argo-cd,v2.4.9,2022-08-11,15:59:47,v2.4.9,argo-cd-4.10.6,2022-08-11,20:43:51,4.734444444444445 -argo-cd,v2.4.8,2022-07-29,17:38:38,v2.4.8,argo-cd-4.10.4,2022-08-01,13:49:17,68.1775 -argo-cd,v2.4.7,2022-07-18,21:54:21,v2.4.7,argo-cd-4.9.15,2022-07-19,06:25:53,8.525555555555556 -argo-workflows,v3.3.8,2022-06-24,01:18:03,v3.3.8,argo-workflows-0.16.6,2022-06-24,05:47:50,4.496388888888889 -argo-cd,v2.4.6,2022-07-12,23:14:34,v2.4.6,argo-cd-4.9.13,2022-07-13,20:43:07,21.475833333333334 -argo-cd,v2.4.4,2022-07-07,07:59:34,v2.4.4,argo-cd-4.9.12,2022-07-07,16:46:25,8.780833333333334 -argo-cd,v2.4.3,2022-06-27,21:39:15,v2.4.3,argo-cd-4.9.9,2022-06-28,13:20:49,15.692777777777778 -argo-events,v1.7.0,2022-05-04,22:47:01,v1.7.0,argo-events-2.0.0,2022-06-14,15:38:27,976.8572222222223 -argo-cd,v2.4.2,2022-06-21,21:19:40,v2.4.2,argo-cd-4.9.5,2022-06-23,05:50:20,32.51111111111111 -argo-workflows,v3.3.7,2022-06-21,00:41:49,v3.3.7,argo-workflows-0.16.5,2022-06-23,16:01:09,63.32222222222222 -argo-workflows,v3.3.6,2022-05-26,01:22:39,v3.3.6,argo-workflows-0.16.1,2022-05-26,11:20:50,9.969722222222222 -argo-cd,v2.4.0,2022-06-10,17:59:33,v2.4.0,argo-cd-4.9.0,2022-06-14,10:10:37,88.18444444444444 -argo-cd,v2.3.4,2022-05-18,13:14:17,v2.3.4,argo-cd-4.6.2,2022-05-19,17:54:21,28.66777777777778 -argo-workflows,v3.3.5,2022-05-04,01:13:34,v3.3.5,argo-workflows-0.15.2,2022-05-20,21:14:27,404.01472222222225 -argo-workflows,v3.3.2,2022-04-20,23:16:10,v3.3.2,argo-workflows-0.14.0,2022-04-22,07:09:42,31.892222222222223 -argo-cd,v2.3.3,2022-03-30,01:55:37,v2.3.3,argo-cd-4.3.1,2022-03-30,13:40:17,11.744444444444444 -argo-events,v1.6.0,2022-02-13,06:42:27,v1.6.0,argo-events-1.11.0,2022-02-20,18:31:57,179.825 -argo-cd,v2.3.2,2022-03-23,02:12:12,v2.3.2,argo-cd-4.2.2,2022-03-23,09:53:45,7.6925 -argo-workflows,v3.2.9,2022-03-02,23:04:35,v3.2.9,argo-workflows-0.11.2,2022-03-05,08:51:50,57.7875 -argo-cd,v2.3.1,2022-03-11,00:07:41,v2.3.1,argo-cd-4.0.0,2022-03-16,21:02:33,140.91444444444446 -argo-rollouts,v1.1.1,2021-11-29,21:44:13,v1.1.1,argo-rollouts-2.8.1,2022-01-10,18:21:14,1004.6169444444445 -argo-cd,v2.2.5,2022-02-05,01:42:13,v2.2.5,argo-cd-3.33.4,2022-02-05,12:55:15,11.217222222222222 -argo-workflows,v3.2.7,2022-01-28,02:28:31,v3.2.7,argo-workflows-0.10.1,2022-02-09,23:06:55,308.64 -argo-cd,v2.2.4,2022-02-03,20:50:43,v2.2.4,argo-cd-3.33.3,2022-02-04,09:19:44,12.483611111111111 -argo-cd,v2.2.3,2022-01-18,18:03:37,v2.2.3,argo-cd-3.32.0,2022-01-26,15:14:35,189.18277777777777 -argo-workflows,v3.2.6,2021-12-17,21:12:28,v3.2.6,argo-workflows-0.9.4,2021-12-20,11:00:00,61.79222222222222 -argo-events,v1.5.6,2022-01-12,05:18:08,v1.5.6,argo-events-1.10.1,2022-01-18,22:20:08,161.03333333333333 -argo-cd,v2.2.2,2022-01-01,06:38:42,v2.2.2,argo-cd-3.29.5,2022-01-04,10:16:28,75.62944444444445 -argo-events,v1.5.0,2021-10-12,18:48:33,v1.5.0,argo-events-1.8.0,2021-10-27,15:13:58,356.4236111111111 -argo-rollouts,v1.1.0,2021-10-12,17:02:30,v1.1.0,argo-rollouts-2.2.0,2021-10-14,14:58:28,45.93277777777778 -argo-cd,v2.2.1,2021-12-17,01:41:25,v2.2.1,argo-cd-3.29.1,2021-12-17,10:06:18,8.414722222222222 -argo-cd,v2.2.0,2021-12-14,18:19:23,v2.2.0,argo-cd-3.29.0,2021-12-15,10:15:30,15.935277777777777 -argo-cd,v2.1.7,2021-11-17,22:18:58,v2.1.7,argo-cd-3.26.10,2021-11-21,12:48:45,86.49638888888889 -argo-workflows,v3.2.4,2021-11-18,00:41:27,v3.2.4,argo-workflows-0.8.3,2021-11-21,18:59:21,90.29833333333333 -argo-workflows,v3.2.0,2021-10-12,16:28:36,v3.2.0,argo-workflows-0.7.3,2021-10-15,10:22:13,65.89361111111111 -argo-cd,v2.1.6,2021-10-28,20:08:23,v2.1.6,argo-cd-3.26.4,2021-10-31,11:57:25,63.81722222222222 -argo-cd,v2.1.5,2021-10-20,15:25:12,v2.1.5,argo-cd-3.26.3,2021-10-21,20:56:35,29.523055555555555 -argo-cd,,,,2.1.4,argo-cd-3.26.1,2021-10-20,06:32:59, -argo-cd,,,,2.1.3,argo-cd-3.23.1,2021-10-06,15:28:20, -argo-workflows,v3.1.8,2021-08-19,00:19:56,v3.1.8,argo-workflows-0.4.2,2021-08-23,11:13:42,106.89611111111111 -argo-cd,,,,2.1.2,argo-cd-3.17.6,2021-09-02,21:59:12, -argo-rollouts,v1.0.2,2021-06-15,22:33:04,v1.0.2,argo-rollouts-1.0.2,2021-07-07,15:18:22,520.755 -argo-cd,,,,2.1.1,argo-cd-3.17.2,2021-08-26,14:22:27, -argo-cd,,,,2.1.0,argo-cd-3.13.0,2021-08-23,12:14:11, -argo-workflows,v3.1.5,2021-08-04,07:14:30,v3.1.5,argo-workflows-0.4.0,2021-08-17,07:31:04,312.2761111111111 -argo-cd,,,,2.0.5,argo-cd-3.10.1,2021-07-27,01:33:24, -argo-workflows,v3.0.7,2021-05-25,19:08:55,v3.0.7,argo-workflows-0.2.6,2021-06-25,06:16:05,731.1194444444444 -argo-events,,,,1.3.1,argo-events-1.4.2,2021-05-21,16:00:05, -argo-cd,,,,2.0.4,argo-cd-3.6.11,2021-06-29,08:49:22, -argo-cd,,,,2.0.3,argo-cd-3.6.3,2021-05-29,08:42:00, -argo-workflows,v3.0.2,2021-04-20,15:37:15,v3.0.2,argo-workflows-0.1.1,2021-05-21,16:00:07,744.3811111111111 -argo-rollouts,v1.0.1,2021-05-26,08:43:12,v1.0.1,argo-rollouts-1.0.0,2021-05-31,16:06:49,127.39361111111111 -argo-rollouts,,,,0.10.2,argo-rollouts-0.5.3,2021-05-21,16:00:06, -argo-cd,,,,2.0.1,argo-cd-3.4.1,2021-05-21,16:00:04, diff --git a/scripts/release-analysis/plot_graph.py b/scripts/release-analysis/plot_graph.py deleted file mode 100644 index 8657fe20..00000000 --- a/scripts/release-analysis/plot_graph.py +++ /dev/null @@ -1,58 +0,0 @@ -import csv - -import matplotlib.pyplot as plt -from packaging import version - - -def plot_time_difference(csv_file): - # Read the CSV file and process the data - data = {"argo-cd": [], "argo-events": [], "argo-workflows": [], "argo-rollouts": []} - release_tags = { - "argo-cd": [], - "argo-events": [], - "argo-workflows": [], - "argo-rollouts": [], - } - with open(csv_file, mode="r") as file: - reader = csv.DictReader(file) - for row in reader: - repo = row["Repository"] - time_diff_str = row["Time Difference"] - release_tag = row["Release Tag"] - if repo in data and time_diff_str: - time_diff = float(time_diff_str) - data[repo].append(time_diff) - release_tags[repo].append(release_tag) - - # Sort the release tags based on semantic versioning - for repo in release_tags: - sorted_indices = sorted( - range(len(release_tags[repo])), - key=lambda i: version.parse(release_tags[repo][i]), - ) - release_tags[repo] = [release_tags[repo][i] for i in sorted_indices] - data[repo] = [data[repo][i] for i in sorted_indices] - - # Plot the data - for repo, time_diffs in data.items(): - plt.figure(figsize=(10, 6)) - plt.plot(release_tags[repo], time_diffs, marker="o", label=repo) - plt.axhline(y=72, color="r", linestyle="--", label="SLA (72 hours)") - plt.xlabel("Upstream Release Tag") - plt.ylabel( - "Time difference between upstream release and Helm Chart release (hours)" - ) - plt.title(f"Time to Release Helm Chart for {repo}") - plt.legend() - plt.grid(True) - plt.xticks(rotation=45) - plt.tight_layout() - plt.savefig(f"time_difference_plot_{repo}.png") - plt.close() - - print("The plots have been saved as 'time_difference_plot_.png'") - - -# Example usage -if __name__ == "__main__": - plot_time_difference("merged_releases.csv") diff --git a/scripts/release-analysis/requirements.txt b/scripts/release-analysis/requirements.txt deleted file mode 100644 index 1c1b383e..00000000 --- a/scripts/release-analysis/requirements.txt +++ /dev/null @@ -1,2 +0,0 @@ -requests -matplotlib diff --git a/scripts/release-analysis/time_difference_plot_argo-cd.png b/scripts/release-analysis/time_difference_plot_argo-cd.png deleted file mode 100644 index 738c0b98..00000000 Binary files a/scripts/release-analysis/time_difference_plot_argo-cd.png and /dev/null differ diff --git a/scripts/release-analysis/time_difference_plot_argo-events.png b/scripts/release-analysis/time_difference_plot_argo-events.png deleted file mode 100644 index 7e6c6431..00000000 Binary files a/scripts/release-analysis/time_difference_plot_argo-events.png and /dev/null differ diff --git a/scripts/release-analysis/time_difference_plot_argo-rollouts.png b/scripts/release-analysis/time_difference_plot_argo-rollouts.png deleted file mode 100644 index 4a24f491..00000000 Binary files a/scripts/release-analysis/time_difference_plot_argo-rollouts.png and /dev/null differ diff --git a/scripts/release-analysis/time_difference_plot_argo-workflows.png b/scripts/release-analysis/time_difference_plot_argo-workflows.png deleted file mode 100644 index eb0dcf25..00000000 Binary files a/scripts/release-analysis/time_difference_plot_argo-workflows.png and /dev/null differ diff --git a/scripts/renovate-bump-version.sh b/scripts/renovate-bump-version.sh deleted file mode 100755 index 80f1ae11..00000000 --- a/scripts/renovate-bump-version.sh +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/bash -while getopts c:d:v: opt; do - case ${opt} in - c) chart=${OPTARG} ;; - d) dependency_name=${OPTARG} ;; - v) dependency_version=${OPTARG} ;; - *) - echo 'Usage:' >&2 - echo '-c: chart Related Helm chart name' >&2 - echo '-d dependency Name of the updated dependency' >&2 - echo '-v version New version of the updated dependency' >&2 - exit 1 - esac -done - -if [ -z "${dependency_name}" ] || [ -z "${dependency_version}" ] || [ -z "${chart}" ] ; then - echo 'Missing relevant CLI flag(s).' >&2 - exit 1 -fi - -chart_yaml_path="charts/${chart}/Chart.yaml" -# Split dependency by '/' and only use last element -# This way we can drop prefixes like "argoproj/..." , "argoproj-labs/..." , "quay.io/foo/..." -dependency_name="${dependency_name##*/}" - -# Bump the chart version by one patch version -version=$(grep '^version:' "${chart_yaml_path}" | awk '{print $2}') -major=$(echo "${version}" | cut -d. -f1) -minor=$(echo "${version}" | cut -d. -f2) -patch=$(echo "${version}" | cut -d. -f3) -patch=$((patch + 1)) -sed -i "s/^version:.*/version: ${major}.${minor}.${patch}/g" "${chart_yaml_path}" - -# Add a changelog entry -sed -i -e '/^ artifacthub.io\/changes: |/,$ d' "${chart_yaml_path}" -{ - echo " artifacthub.io/changes: |" - echo " - kind: changed" - echo " description: Bump ${dependency_name} to ${dependency_version}" -} >> "${chart_yaml_path}" -cat "${chart_yaml_path}"