Skip to content

Commit f48da0d

Browse files
Merge pull request #80 from codefresh-io/CR-23980-argo-cd-chart-update-6.11
feat: update helm chart to 6.11.1
2 parents 856d6ef + b1ff2a3 commit f48da0d

File tree

127 files changed

+522
-220
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

127 files changed

+522
-220
lines changed

.github/workflows/lint-and-test.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
options: --user 1001
1414
steps:
1515
- name: Checkout
16-
uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
16+
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
1717
- name: Run ah lint
1818
working-directory: ./charts
1919
run: ah lint
@@ -22,7 +22,7 @@ jobs:
2222
runs-on: ubuntu-latest
2323
steps:
2424
- name: Checkout
25-
uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
25+
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
2626
with:
2727
fetch-depth: 0
2828

.github/workflows/publish.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
runs-on: ubuntu-latest
1919
steps:
2020
- name: Checkout
21-
uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
21+
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
2222
with:
2323
fetch-depth: 0
2424

.github/workflows/renovate.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,21 +16,21 @@ jobs:
1616
runs-on: ubuntu-latest
1717
steps:
1818
- name: Get token
19-
uses: actions/create-github-app-token@7bfa3a4717ef143a604ee0a99d859b8886a96d00 # v1.9.3
19+
uses: actions/create-github-app-token@a0de6af83968303c8c955486bf9739a57d23c7f1 # v1.10.0
2020
id: get_token
2121
with:
2222
app-id: ${{ vars.RENOVATE_APP_ID }}
2323
private-key: ${{ secrets.RENOVATE_APP_PRIVATE_KEY }}
2424

2525
- name: Checkout
26-
uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
26+
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
2727

2828
- name: Self-hosted Renovate
2929
uses: renovatebot/github-action@063e0c946b9c1af35ef3450efc44114925d6e8e6 # v40.1.11
3030
with:
3131
configurationFile: .github/configs/renovate-config.js
3232
# renovate: datasource=docker depName=ghcr.io/renovatebot/renovate
33-
renovate-version: 37.278.0
33+
renovate-version: 37.332.0
3434
token: '${{ steps.get_token.outputs.token }}'
3535
env:
3636
LOG_LEVEL: 'debug'

.github/workflows/scorecard.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,12 @@ jobs:
3333

3434
steps:
3535
- name: "Checkout code"
36-
uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
36+
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
3737
with:
3838
persist-credentials: false
3939

4040
- name: "Run analysis"
41-
uses: ossf/scorecard-action@0864cf19026789058feabb7e87baa5f140aac736 # v2.3.1
41+
uses: ossf/scorecard-action@dc50aa9510b46c811795eb24b2f1ba02a914e534 # v2.3.3
4242
with:
4343
results_file: results.sarif
4444
results_format: sarif
@@ -68,6 +68,6 @@ jobs:
6868

6969
# Upload the results to GitHub's code scanning dashboard.
7070
- name: "Upload to code-scanning"
71-
uses: github/codeql-action/upload-sarif@cdcdbb579706841c47f7063dda365e292e5cad7a # v2.13.4
71+
uses: github/codeql-action/upload-sarif@b7cec7526559c32f1616476ff32d17ba4c59b2d6 # v3.25.5
7272
with:
7373
sarif_file: results.sarif

charts/argo-cd/Chart.yaml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
apiVersion: v2
2-
appVersion: v2.10-2024.6.17-77e06d0f6
2+
appVersion: v2.11-2024.6.18-a171b066e
33
kubeVersion: ">=1.23.0-0"
44
description: A Helm chart for Argo CD, a declarative, GitOps continuous delivery tool for Kubernetes.
55
name: argo-cd
6-
version: 6.7.18-4-cap-2.10-2024.6.17-77e06d0f6
6+
version: 6.11.1-0-cap-2.11-2024.6.18-a171b066e
77
home: https://github.com/argoproj/argo-helm
88
icon: https://argo-cd.readthedocs.io/en/stable/assets/logo.png
99
sources:
@@ -27,4 +27,6 @@ annotations:
2727
url: https://argoproj.github.io/argo-helm/pgp_keys.asc
2828
artifacthub.io/changes: |
2929
- kind: changed
30-
description: Upgrade argo-cd to v2.10-2024.6.17-77e06d0f6
30+
description: Upgrade argo-cd to v2.11-2024.6.18-a171b066e
31+
- kind: changed
32+
description: Upgrade argo-cd chart to upstream 6.11.1

charts/argo-cd/README.md

Lines changed: 46 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -278,6 +278,42 @@ For full list of changes please check ArtifactHub [changelog].
278278

279279
Highlighted versions provide information about additional steps that should be performed by user when upgrading to newer version.
280280

281+
### 6.10.0
282+
283+
This version introduces authentication for Redis to mitigate GHSA-9766-5277-j5hr.
284+
285+
#### How to rotate Redis secret?
286+
287+
Upstream steps in the [FAQ] are not enough, since we chose a different approach.
288+
(We use a Kubernetes Job with [Chart Hooks] to create the auth secret `argocd-redis`.)
289+
290+
Steps to roteate the secret when using the helm chart (bold step is additional to upstream):
291+
* Delete `argocd-redis` secret in the namespace where Argo CD is installed.
292+
```bash
293+
kubectl delete secret argocd-redis -n <argocd namesapce>
294+
```
295+
* **Perform a helm upgrade**
296+
```bash
297+
helm upgrade argocd argo/argo-cd --reuse-values --wait
298+
```
299+
* If you are running Redis in HA mode, restart Redis in HA.
300+
```bash
301+
kubectl rollout restart deployment argocd-redis-ha-haproxy
302+
kubectl rollout restart statefulset argocd-redis-ha-server
303+
```
304+
* If you are running Redis in non-HA mode, restart Redis.
305+
```bash
306+
kubectl rollout restart deployment argocd-redis
307+
```
308+
* Restart other components.
309+
```bash
310+
kubectl rollout restart deployment argocd-server argocd-repo-server
311+
kubectl rollout restart statefulset argocd-application-controller
312+
```
313+
314+
### 6.9.0
315+
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).
316+
281317
### 6.4.0
282318

283319
Added support for application controller dynamic cluster distribution.
@@ -694,6 +730,7 @@ NAME: my-release
694730
| fullnameOverride | string | `""` | String to fully override `"argo-cd.fullname"` |
695731
| kubeVersionOverride | string | `""` | Override the Kubernetes version, which is used to evaluate certain manifests |
696732
| nameOverride | string | `"argocd"` | Provide a name in place of `argocd` |
733+
| namespaceOverride | string | `.Release.Namespace` | Override the namespace |
697734
| openshift.enabled | bool | `false` | enables using arbitrary uid for argo repo server |
698735

699736
## Global Configs
@@ -1117,7 +1154,7 @@ NAME: my-release
11171154
| server.route.termination_type | string | `"passthrough"` | Termination type of Openshift Route |
11181155
| server.service.annotations | object | `{}` | Server service annotations |
11191156
| server.service.externalIPs | list | `[]` | Server service external IPs |
1120-
| server.service.externalTrafficPolicy | string | `""` | Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints |
1157+
| server.service.externalTrafficPolicy | string | `"Cluster"` | Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints |
11211158
| server.service.labels | object | `{}` | Server service labels |
11221159
| server.service.loadBalancerIP | string | `""` | LoadBalancer will get created with the IP specified in this field |
11231160
| server.service.loadBalancerSourceRanges | list | `[]` | Source IP ranges to allow access to service from |
@@ -1126,8 +1163,9 @@ NAME: my-release
11261163
| server.service.servicePortHttp | int | `80` | Server service http port |
11271164
| server.service.servicePortHttpName | string | `"http"` | Server service http port name, can be used to route traffic via istio |
11281165
| server.service.servicePortHttps | int | `443` | Server service https port |
1166+
| server.service.servicePortHttpsAppProtocol | string | `""` | Server service https port appProtocol |
11291167
| server.service.servicePortHttpsName | string | `"https"` | Server service https port name, can be used to route traffic via istio |
1130-
| server.service.sessionAffinity | string | `""` | Used to maintain session affinity. Supports `ClientIP` and `None` |
1168+
| server.service.sessionAffinity | string | `"None"` | Used to maintain session affinity. Supports `ClientIP` and `None` |
11311169
| server.service.type | string | `"ClusterIP"` | Server service type |
11321170
| server.serviceAccount.annotations | object | `{}` | Annotations applied to created service account |
11331171
| server.serviceAccount.automountServiceAccountToken | bool | `true` | Automount API credentials for the Service Account |
@@ -1397,20 +1435,24 @@ If you use an External Redis (See Option 3 above), this Job is not deployed.
13971435
| Key | Type | Default | Description |
13981436
|-----|------|---------|-------------|
13991437
| redisSecretInit.containerSecurityContext | object | See [values.yaml] | Application controller container-level security context |
1438+
| redisSecretInit.enabled | bool | `true` | Enable Redis secret initialization. If disabled, secret must be provisioned by alternative methods |
14001439
| redisSecretInit.image.imagePullPolicy | string | `""` (defaults to global.image.imagePullPolicy) | Image pull policy for the Redis secret-init Job |
14011440
| redisSecretInit.image.repository | string | `""` (defaults to global.image.repository) | Repository to use for the Redis secret-init Job |
14021441
| redisSecretInit.image.tag | string | `""` (defaults to global.image.tag) | Tag to use for the Redis secret-init Job |
14031442
| redisSecretInit.imagePullSecrets | list | `[]` (defaults to global.imagePullSecrets) | Secrets with credentials to pull images from a private registry |
14041443
| redisSecretInit.jobAnnotations | object | `{}` | Annotations to be added to the Redis secret-init Job |
14051444
| redisSecretInit.name | string | `"redis-secret-init"` | Redis secret-init name |
1445+
| redisSecretInit.nodeSelector | object | `{}` (defaults to global.nodeSelector) | Node selector to be added to the Redis secret-init Job |
14061446
| redisSecretInit.podAnnotations | object | `{}` | Annotations to be added to the Redis secret-init Job |
14071447
| redisSecretInit.podLabels | object | `{}` | Labels to be added to the Redis secret-init Job |
1448+
| redisSecretInit.priorityClassName | string | `""` (defaults to global.priorityClassName) | Priority class for Redis secret-init Job |
14081449
| redisSecretInit.resources | object | `{}` | Resource limits and requests for Redis secret-init Job |
14091450
| redisSecretInit.securityContext | object | `{}` | Redis secret-init Job pod-level security context |
14101451
| redisSecretInit.serviceAccount.annotations | object | `{}` | Annotations applied to created service account |
14111452
| redisSecretInit.serviceAccount.automountServiceAccountToken | bool | `true` | Automount API credentials for the Service Account |
14121453
| redisSecretInit.serviceAccount.create | bool | `true` | Create a service account for the redis pod |
14131454
| redisSecretInit.serviceAccount.name | string | `""` | Service account name for redis pod |
1455+
| redisSecretInit.tolerations | list | `[]` (defaults to global.tolerations) | Tolerations to be added to the Redis secret-init Job |
14141456

14151457
## ApplicationSet
14161458

@@ -1442,7 +1484,6 @@ If you use an External Redis (See Option 3 above), this Job is not deployed.
14421484
| applicationSet.dnsConfig | object | `{}` | [DNS configuration] |
14431485
| applicationSet.dnsPolicy | string | `"ClusterFirst"` | Alternative DNS policy for ApplicationSet controller pods |
14441486
| applicationSet.emptyDir.sizeLimit | string | `""` (defaults not set if not specified i.e. no size limit) | EmptyDir size limit for applicationSet controller |
1445-
| applicationSet.enabled | bool | `true` | Enable ApplicationSet controller |
14461487
| applicationSet.extraArgs | list | `[]` | ApplicationSet controller command line flags |
14471488
| applicationSet.extraContainers | list | `[]` | Additional containers to be added to the ApplicationSet controller pod |
14481489
| applicationSet.extraEnv | list | `[]` | Environment variables to pass to the ApplicationSet controller |
@@ -1604,8 +1645,10 @@ Autogenerated from chart metadata using [helm-docs](https://github.com/norwoodj/
16041645
[BackendConfigSpec]: https://cloud.google.com/kubernetes-engine/docs/concepts/backendconfig#backendconfigspec_v1beta1_cloudgooglecom
16051646
[CSS styles]: https://argo-cd.readthedocs.io/en/stable/operator-manual/custom-styles/
16061647
[changelog]: https://artifacthub.io/packages/helm/argo/argo-cd?modal=changelog
1648+
[Chart Hooks]: https://helm.sh/docs/topics/charts_hooks/
16071649
[DNS configuration]: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/
16081650
[external cluster credentials]: https://argo-cd.readthedocs.io/en/stable/operator-manual/declarative-setup/#clusters
1651+
[FAQ]: https://argo-cd.readthedocs.io/en/stable/faq/
16091652
[FrontendConfigSpec]: https://cloud.google.com/kubernetes-engine/docs/how-to/ingress-features#configuring_ingress_features_through_frontendconfig_parameters
16101653
[declarative setup]: https://argo-cd.readthedocs.io/en/stable/operator-manual/declarative-setup
16111654
[gRPC-ingress]: https://argo-cd.readthedocs.io/en/stable/operator-manual/ingress/

charts/argo-cd/README.md.gotmpl

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -278,6 +278,42 @@ For full list of changes please check ArtifactHub [changelog].
278278

279279
Highlighted versions provide information about additional steps that should be performed by user when upgrading to newer version.
280280

281+
### 6.10.0
282+
283+
This version introduces authentication for Redis to mitigate GHSA-9766-5277-j5hr.
284+
285+
#### How to rotate Redis secret?
286+
287+
Upstream steps in the [FAQ] are not enough, since we chose a different approach.
288+
(We use a Kubernetes Job with [Chart Hooks] to create the auth secret `argocd-redis`.)
289+
290+
Steps to roteate the secret when using the helm chart (bold step is additional to upstream):
291+
* Delete `argocd-redis` secret in the namespace where Argo CD is installed.
292+
```bash
293+
kubectl delete secret argocd-redis -n <argocd namesapce>
294+
```
295+
* **Perform a helm upgrade**
296+
```bash
297+
helm upgrade argocd argo/argo-cd --reuse-values --wait
298+
```
299+
* If you are running Redis in HA mode, restart Redis in HA.
300+
```bash
301+
kubectl rollout restart deployment argocd-redis-ha-haproxy
302+
kubectl rollout restart statefulset argocd-redis-ha-server
303+
```
304+
* If you are running Redis in non-HA mode, restart Redis.
305+
```bash
306+
kubectl rollout restart deployment argocd-redis
307+
```
308+
* Restart other components.
309+
```bash
310+
kubectl rollout restart deployment argocd-server argocd-repo-server
311+
kubectl rollout restart statefulset argocd-application-controller
312+
```
313+
314+
### 6.9.0
315+
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).
316+
281317
### 6.4.0
282318

283319
Added support for application controller dynamic cluster distribution.
@@ -760,8 +796,10 @@ Autogenerated from chart metadata using [helm-docs](https://github.com/norwoodj/
760796
[BackendConfigSpec]: https://cloud.google.com/kubernetes-engine/docs/concepts/backendconfig#backendconfigspec_v1beta1_cloudgooglecom
761797
[CSS styles]: https://argo-cd.readthedocs.io/en/stable/operator-manual/custom-styles/
762798
[changelog]: https://artifacthub.io/packages/helm/argo/argo-cd?modal=changelog
799+
[Chart Hooks]: https://helm.sh/docs/topics/charts_hooks/
763800
[DNS configuration]: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/
764801
[external cluster credentials]: https://argo-cd.readthedocs.io/en/stable/operator-manual/declarative-setup/#clusters
802+
[FAQ]: https://argo-cd.readthedocs.io/en/stable/faq/
765803
[FrontendConfigSpec]: https://cloud.google.com/kubernetes-engine/docs/how-to/ingress-features#configuring_ingress_features_through_frontendconfig_parameters
766804
[declarative setup]: https://argo-cd.readthedocs.io/en/stable/operator-manual/declarative-setup
767805
[gRPC-ingress]: https://argo-cd.readthedocs.io/en/stable/operator-manual/ingress/

charts/argo-cd/templates/_helpers.tpl

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,7 @@ NOTE: Configuration keys must be stored as dict because YAML treats dot as separ
215215
{{- $_ := set $presets "repo.server" (printf "%s:%s" (include "argo-cd.repoServer.fullname" .) (.Values.repoServer.service.port | toString)) -}}
216216
{{- $_ := set $presets "server.repo.server.strict.tls" (.Values.repoServer.certificateSecret.enabled | toString ) -}}
217217
{{- $_ := set $presets "redis.server" (include "argo-cd.redis.server" .) -}}
218+
{{- $_ := set $presets "applicationsetcontroller.enable.leader.election" (gt ((.Values.applicationSet.replicas | default .Values.applicationSet.replicaCount) | int64) 1) -}}
218219
{{- if .Values.dex.enabled -}}
219220
{{- $_ := set $presets "server.dex.server" (include "argo-cd.dex.server" .) -}}
220221
{{- $_ := set $presets "server.dex.server.strict.tls" .Values.dex.certificateSecret.enabled -}}
@@ -223,9 +224,6 @@ NOTE: Configuration keys must be stored as dict because YAML treats dot as separ
223224
{{- $_ := set $presets (printf "%s.log.format" $component) $.Values.global.logging.format -}}
224225
{{- $_ := set $presets (printf "%s.log.level" $component) $.Values.global.logging.level -}}
225226
{{- end -}}
226-
{{- if .Values.applicationSet.enabled -}}
227-
{{- $_ := set $presets "applicationsetcontroller.enable.leader.election" (gt ((.Values.applicationSet.replicas | default .Values.applicationSet.replicaCount) | int64) 1) -}}
228-
{{- end -}}
229227
{{- toYaml $presets }}
230228
{{- end -}}
231229

@@ -240,6 +238,14 @@ Merge Argo Params Configuration with Preset Configuration
240238
{{- end }}
241239
{{- end -}}
242240

241+
{{/*
242+
Expand the namespace of the release.
243+
Allows overriding it for multi-namespace deployments in combined charts.
244+
*/}}
245+
{{- define "argo-cd.namespace" -}}
246+
{{- default .Release.Namespace .Values.namespaceOverride | trunc 63 | trimSuffix "-" -}}
247+
{{- end }}
248+
243249
{{/*
244250
Create event reporter name and version as used by the chart label.
245251
*/}}

charts/argo-cd/templates/aggregate-roles.yaml

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,7 @@ rules:
1111
- argoproj.io
1212
resources:
1313
- applications
14-
{{- if .Values.applicationSet.enabled }}
1514
- applicationsets
16-
{{- end }}
1715
- appprojects
1816
verbs:
1917
- get
@@ -33,9 +31,7 @@ rules:
3331
- argoproj.io
3432
resources:
3533
- applications
36-
{{- if .Values.applicationSet.enabled }}
3734
- applicationsets
38-
{{- end }}
3935
- appprojects
4036
verbs:
4137
- create
@@ -60,9 +56,7 @@ rules:
6056
- argoproj.io
6157
resources:
6258
- applications
63-
{{- if .Values.applicationSet.enabled }}
6459
- applicationsets
65-
{{- end }}
6660
- appprojects
6761
verbs:
6862
- create

charts/argo-cd/templates/argocd-application-controller/clusterrolebinding.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,5 @@ roleRef:
1212
subjects:
1313
- kind: ServiceAccount
1414
name: {{ include "argo-cd.controller.serviceAccountName" . }}
15-
namespace: {{ .Release.Namespace }}
15+
namespace: {{ include "argo-cd.namespace" . }}
1616
{{- end }}

0 commit comments

Comments
 (0)