From c10fd657d0453f9bdf14531ae9a3883d6ea2feec Mon Sep 17 00:00:00 2001 From: Marco Kilchhofer Date: Wed, 25 May 2022 13:06:37 +0200 Subject: [PATCH] chore(argo-cd): Update redis-ha to 4.16.0 (#1296) * chore(argo-cd): Update redis-ha to 4.16.0 Signed-off-by: Marco Kilchhofer * docs: Add some more imported redis-ha options to README Signed-off-by: Marco Kilchhofer --- charts/argo-cd/Chart.lock | 6 +++--- charts/argo-cd/Chart.yaml | 6 +++--- charts/argo-cd/README.md | 29 ++++++++++++++++++++++++++++- charts/argo-cd/README.md.gotmpl | 18 ++++++++++++++++++ charts/argo-cd/values.yaml | 31 +++++++++++++++++++++++++++++++ 5 files changed, 83 insertions(+), 7 deletions(-) diff --git a/charts/argo-cd/Chart.lock b/charts/argo-cd/Chart.lock index d39adc27..932ea555 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.15.0 -digest: sha256:dbe1d621ce62ce8cf42eb1b60b8d35667beb8920bc3dbf7417f77081c8ed5f2d -generated: "2022-05-21T12:28:08.0813269-04:00" + version: 4.16.0 +digest: sha256:fa6a784ee32cc11fbc1bbbbaafcb179e447bc984e898ae35a1cd4408dbed7ccb +generated: "2022-05-25T11:44:28.53802+02:00" diff --git a/charts/argo-cd/Chart.yaml b/charts/argo-cd/Chart.yaml index b917c6b2..45908bad 100644 --- a/charts/argo-cd/Chart.yaml +++ b/charts/argo-cd/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 appVersion: v2.3.4 description: A Helm chart for Argo CD, a declarative, GitOps continuous delivery tool for Kubernetes. name: argo-cd -version: 4.6.5 +version: 4.7.0 home: https://github.com/argoproj/argo-helm icon: https://argo-cd.readthedocs.io/en/stable/assets/logo.png keywords: @@ -16,9 +16,9 @@ maintainers: - name: seanson dependencies: - name: redis-ha - version: 4.15.0 + version: 4.16.0 repository: https://dandydeveloper.github.io/charts/ condition: redis-ha.enabled annotations: artifacthub.io/changes: | - - "[Changed]: Updated redis-ha dependency chart" + - "[Changed]: Updated redis-ha dependency chart to 4.16.0" diff --git a/charts/argo-cd/README.md b/charts/argo-cd/README.md index 00ac29b6..7abb37c9 100644 --- a/charts/argo-cd/README.md +++ b/charts/argo-cd/README.md @@ -615,6 +615,8 @@ NAME: my-release ## Redis +### Option 1 - Single Redis instance (default option) + | Key | Type | Default | Description | |-----|------|---------|-------------| | redis.affinity | object | `{}` | Assign custom [affinity] rules to the deployment | @@ -671,15 +673,40 @@ NAME: my-release | redis.topologySpreadConstraints | list | `[]` | Assign custom [TopologySpreadConstraints] rules to redis | | redis.volumeMounts | list | `[]` | Additional volumeMounts to the redis container | | redis.volumes | list | `[]` | Additional volumes to the redis pod | + +### Option 2 - Redis HA + +This option uses the following third-party chart to bootstrap a clustered Redis: https://github.com/DandyDeveloper/charts/tree/master/charts/redis-ha. +For all available configuration options, please read upstream README and/or chart source. +The main options are listed here: + +| Key | Type | Default | Description | +|-----|------|---------|-------------| | redis-ha.enabled | bool | `false` | Enables the Redis HA subchart and disables the custom Redis single node deployment | | redis-ha.exporter.enabled | bool | `true` | If `true`, the prometheus exporter sidecar is enabled | +| redis-ha.exporter.image | string | `nil` (follows subchart default) | Exporter image | +| redis-ha.exporter.tag | string | `nil` (follows subchart default) | Exporter tag | | redis-ha.haproxy.enabled | bool | `true` | Enabled HAProxy LoadBalancing/Proxy | +| redis-ha.haproxy.image.repository | string | `nil` (follows subchart default) | HAProxy Image Repository | +| redis-ha.haproxy.image.tag | string | `nil` (follows subchart default) | HAProxy Image Tag | | redis-ha.haproxy.metrics.enabled | bool | `true` | HAProxy enable prometheus metric scraping | +| redis-ha.image.repository | string | `nil` (follows subchart default) | Redis image repository | | redis-ha.image.tag | string | `"6.2.6-alpine"` | Redis tag | | redis-ha.persistentVolume.enabled | bool | `false` | Configures persistency 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.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.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 | +| redis-ha.topologySpreadConstraints.whenUnsatisfiable | string | `""` (defaults to `ScheduleAnyway`) | Enforcement policy, hard or soft | + +### Option 3 - External Redis + +If you want to use an existing Redis (eg. a managed service from a cloud provider), you can use these parameters: + +| Key | Type | Default | Description | +|-----|------|---------|-------------| | 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 | diff --git a/charts/argo-cd/README.md.gotmpl b/charts/argo-cd/README.md.gotmpl index 7ab487cc..d59f100f 100644 --- a/charts/argo-cd/README.md.gotmpl +++ b/charts/argo-cd/README.md.gotmpl @@ -261,6 +261,8 @@ NAME: my-release ## Redis +### Option 1 - Single Redis instance (default option) + | Key | Type | Default | Description | |-----|------|---------|-------------| {{- range .Values }} @@ -268,11 +270,27 @@ NAME: my-release | {{ .Key }} | {{ .Type }} | {{ if .Default }}{{ .Default }}{{ else }}{{ .AutoDefault }}{{ end }} | {{ if .Description }}{{ .Description }}{{ else }}{{ .AutoDescription }}{{ end }} | {{- end }} {{- end }} + +### Option 2 - Redis HA + +This option uses the following third-party chart to bootstrap a clustered Redis: https://github.com/DandyDeveloper/charts/tree/master/charts/redis-ha. +For all available configuration options, please read upstream README and/or chart source. +The main options are listed here: + +| Key | Type | Default | Description | +|-----|------|---------|-------------| {{- range .Values }} {{- if hasPrefix "redis-ha" .Key }} | {{ .Key }} | {{ .Type }} | {{ if .Default }}{{ .Default }}{{ else }}{{ .AutoDefault }}{{ end }} | {{ if .Description }}{{ .Description }}{{ else }}{{ .AutoDescription }}{{ end }} | {{- end }} {{- end }} + +### Option 3 - External Redis + +If you want to use an existing Redis (eg. a managed service from a cloud provider), you can use these parameters: + +| Key | Type | Default | Description | +|-----|------|---------|-------------| {{- range .Values }} {{- if hasPrefix "externalRedis" .Key }} | {{ .Key }} | {{ .Type }} | {{ if .Default }}{{ .Default }}{{ else }}{{ .AutoDefault }}{{ end }} | {{ if .Description }}{{ .Description }}{{ else }}{{ .AutoDescription }}{{ end }} | diff --git a/charts/argo-cd/values.yaml b/charts/argo-cd/values.yaml index 3e3fb234..19bde24a 100755 --- a/charts/argo-cd/values.yaml +++ b/charts/argo-cd/values.yaml @@ -773,6 +773,12 @@ redis-ha: exporter: # -- If `true`, the prometheus exporter sidecar is enabled enabled: true + # -- Exporter image + # @default -- `nil` (follows subchart default) + image: ~ + # -- Exporter tag + # @default -- `nil` (follows subchart default) + tag: ~ persistentVolume: # -- Configures persistency on Redis nodes enabled: false @@ -783,17 +789,42 @@ redis-ha: # @default -- See [values.yaml] config: # -- 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: '""' haproxy: # -- Enabled HAProxy LoadBalancing/Proxy enabled: true + image: + # -- HAProxy Image Repository + # @default -- `nil` (follows subchart default) + repository: ~ + # -- HAProxy Image Tag + # @default -- `nil` (follows subchart default) + tag: ~ metrics: # -- HAProxy enable prometheus metric scraping enabled: true image: + # -- Redis image repository + # @default -- `nil` (follows subchart default) + repository: ~ # -- Redis tag tag: 6.2.6-alpine + ## https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/ + topologySpreadConstraints: + # -- Enable Redis HA topology spread constraints + enabled: false + # -- Max skew of pods tolerated + # @default -- `""` (defaults to `1`) + maxSkew: "" + # -- Topology key for spread + # @default -- `""` (defaults to `topology.kubernetes.io/zone`) + topologyKey: "" + # -- Enforcement policy, hard or soft + # @default -- `""` (defaults to `ScheduleAnyway`) + whenUnsatisfiable: "" + # External Redis parameters externalRedis: # -- External Redis server host