diff --git a/.gitea/workflows/test-pr.yml b/.gitea/workflows/test-pr.yml index 987a54f..21a75bb 100644 --- a/.gitea/workflows/test-pr.yml +++ b/.gitea/workflows/test-pr.yml @@ -22,6 +22,11 @@ jobs: apk update apk add --update bash make nodejs npm yamllint ncurses - uses: actions/checkout@v7.0.0 + - name: define helm repositories + run: | + helm repo add bitnami https://charts.bitnami.com/bitnami + helm repo add valkey https://valkey.io/valkey-helm + helm repo update - name: install chart dependencies run: helm dependency build - name: lint diff --git a/Chart.lock b/Chart.lock index 6b2ab8c..783590c 100644 --- a/Chart.lock +++ b/Chart.lock @@ -5,11 +5,8 @@ dependencies: - name: postgresql-ha repository: oci://registry-1.docker.io/bitnamicharts version: 16.3.2 -- name: valkey-cluster - repository: oci://registry-1.docker.io/bitnamicharts - version: 3.0.24 - name: valkey - repository: oci://registry-1.docker.io/bitnamicharts - version: 3.0.31 -digest: sha256:ceb6a1890cfdc2627abb85d3e2a4baa64d30afd21dcfabce978a824a67f0a2bb -generated: "2025-08-30T00:03:04.59764502Z" + repository: https://valkey.io/valkey-helm + version: 0.10.0 +digest: sha256:1afecbf0d4fc9f48e31417573d4bed7e0ac7848040b9e0c5f3989ada9d1f944f +generated: "2026-07-20T19:52:11.548874634+02:00" diff --git a/Chart.yaml b/Chart.yaml index cc15d9e..3bd276a 100644 --- a/Chart.yaml +++ b/Chart.yaml @@ -46,13 +46,8 @@ dependencies: repository: oci://registry-1.docker.io/bitnamicharts version: 16.3.2 condition: postgresql-ha.enabled - # https://github.com/bitnami/charts/blob/main/bitnami/valkey-cluster/Chart.yaml - - name: valkey-cluster - repository: oci://registry-1.docker.io/bitnamicharts - version: 3.0.24 - condition: valkey-cluster.enabled # https://github.com/bitnami/charts/blob/main/bitnami/valkey/Chart.yaml - name: valkey - repository: oci://registry-1.docker.io/bitnamicharts - version: 3.0.31 + repository: https://valkey.io/valkey-helm + version: 0.10.0 condition: valkey.enabled diff --git a/README.md b/README.md index afa4adf..78a3fe4 100644 --- a/README.md +++ b/README.md @@ -54,7 +54,6 @@ - [LivenessProbe](#livenessprobe) - [ReadinessProbe](#readinessprobe) - [StartupProbe](#startupprobe) - - [valkey-cluster](#valkey-cluster) - [valkey](#valkey) - [PostgreSQL HA](#postgresql-ha) - [PostgreSQL](#postgresql) @@ -98,14 +97,13 @@ Users can also configure their own external providers via the configuration. These dependencies are enabled by default: - PostgreSQL HA ([Bitnami PostgreSQL-HA](https://github.com/bitnami/charts/blob/main/bitnami/postgresql-ha/Chart.yaml)) -- Valkey-Cluster ([Bitnami Valkey-Cluster](https://github.com/bitnami/charts/blob/main/bitnami/valkey-cluster/Chart.yaml)) +- Valkey ([Official Valkey Helm Chart](https://github.com/valkey-io/valkey-helm)) ### Non-HA Dependencies Alternatively, the following non-HA replacements are available: - PostgreSQL ([Bitnami PostgreSQL](https://github.com/bitnami/charts/blob/main/bitnami/postgresql/Chart.yaml)) -- Valkey ([Bitnami Valkey](https://github.com/bitnami/charts/blob/main/bitnami/valkey/Chart.yaml)) ### Dependency Versioning @@ -123,8 +121,7 @@ Please double-check the image repository and available tags in the sub-chart: - [PostgreSQL-HA](https://hub.docker.com/r/bitnami/postgresql-repmgr/tags) - [PostgreSQL](https://hub.docker.com/r/bitnami/postgresql/tags) -- [Valkey Cluster](https://hub.docker.com/r/bitnami/valkey-cluster/tags) -- [Valkey](https://hub.docker.com/r/bitnami/valkey/tags) +- [Valkey](https://hub.docker.com/r/valkey/valkey/tags) and look up the image tag which fits your needs on Dockerhub. @@ -326,7 +323,7 @@ If Valkey Cluster is disabled, the chart will fall back to the Gitea defaults wh While these will work and even not cause immediate issues after startup, **they are not recommended for production use**. Reasons being that a single pod will take on all the work for `session` and `cache` tasks in its available memory. It is likely that the pod will run out of memory or will face substantial memory spikes, depending on the workload. -External tools such as `valkey-cluster` or `memcached` handle these workloads much better. +External tools such as `valkey` or `memcached` handle these workloads much better. ### Single-Pod Configurations @@ -339,8 +336,6 @@ If HA is not needed/desired, the following configurations can be used to deploy values.yml ```yaml - valkey-cluster: - enabled: false valkey: enabled: true postgresql: @@ -372,8 +367,6 @@ If HA is not needed/desired, the following configurations can be used to deploy values.yml ```yaml - valkey-cluster: - enabled: false valkey: enabled: false postgresql: @@ -576,19 +569,13 @@ More about this issue [under this link](https://gitea.com/gitea/helm-gitea/issue ### Cache -The cache handling is done via `valkey-cluster` (via the `bitnami` chart) by default. -This deployment is HA-ready but can also be used for single-pod deployments. -By default, 6 replicas are deployed for a working `valkey-cluster` deployment. -Many cloud providers offer a managed valkey service, which can be used instead of the built-in `valkey-cluster`. +The cache handling is done via `valkey` (via the [official Valkey Helm chart](https://github.com/valkey-io/valkey-helm)) by default. ```yaml -valkey-cluster: +valkey: enabled: true ``` -⚠️ The valkey charts [do not work well with special characters in the password](https://gitea.com/gitea/helm-chart/issues/690). -Consider omitting such or open an issue in the Bitnami repo and let us know once this got fixed. - ### Persistence Gitea will be deployed as a deployment. @@ -1245,48 +1232,29 @@ To comply with the Gitea helm chart definition of the digest parameter, a "custo | `gitea.startupProbe.successThreshold` | Success threshold for startup probe | `1` | | `gitea.startupProbe.failureThreshold` | Failure threshold for startup probe | `10` | -### valkey-cluster - -Valkey cluster and [Valkey](#valkey) cannot be enabled at the same time. - -| Name | Description | Value | -| --------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------ | -| `valkey-cluster.enabled` | Enable valkey cluster | `true` | -| `valkey-cluster.usePassword` | Whether to use password authentication. | `false` | -| `valkey-cluster.usePasswordFiles` | Whether to mount passwords as files instead of environment variables. | `false` | -| `valkey-cluster.image.repository` | Image repository, eg. `bitnamilegacy/valkey-cluster`. | `bitnamilegacy/valkey-cluster` | -| `valkey-cluster.cluster.nodes` | Number of valkey cluster master nodes | `3` | -| `valkey-cluster.cluster.replicas` | Number of valkey cluster master node replicas | `0` | -| `valkey-cluster.metrics.image.repository` | Image repository, eg. `bitnamilegacy/redis-exporter`. | `bitnamilegacy/redis-exporter` | -| `valkey-cluster.persistence.enabled` | Enable persistence on Valkey replicas nodes using Persistent Volume Claims. | `true` | -| `valkey-cluster.persistence.storageClass` | Persistent Volume storage class. | `""` | -| `valkey-cluster.persistence.size` | Persistent Volume size. | `8Gi` | -| `valkey-cluster.service.ports.valkey` | Port of Valkey service | `6379` | -| `valkey-cluster.sysctlImage.repository` | Image repository, eg. `bitnamilegacy/os-shell`. | `bitnamilegacy/os-shell` | -| `valkey-cluster.volumePermissions.image.repository` | Image repository, eg. `bitnamilegacy/os-shell`. | `bitnamilegacy/os-shell` | - ### valkey -Valkey and [Valkey cluster](#valkey-cluster) cannot be enabled at the same time. - -| Name | Description | Value | -| ------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------- | -| `valkey.enabled` | Enable valkey standalone or replicated | `false` | -| `valkey.architecture` | Whether to use standalone or replication | `standalone` | -| `valkey.kubectl.image.repository` | Image repository, eg. `bitnamilegacy/kubectl`. | `bitnamilegacy/kubectl` | -| `valkey.image.repository` | Image repository, eg. `bitnamilegacy/valkey`. | `bitnamilegacy/valkey` | -| `valkey.global.valkey.password` | Required password | `changeme` | -| `valkey.master.count` | Number of Valkey master instances to deploy | `1` | -| `valkey.master.service.ports.valkey` | Port of Valkey service | `6379` | -| `valkey.metrics.image.repository` | Image repository, eg. `bitnamilegacy/redis-exporter`. | `bitnamilegacy/redis-exporter` | -| `valkey.primary.persistence.enabled` | Enable persistence on Valkey replicas nodes using Persistent Volume Claims. | `true` | -| `valkey.primary.persistence.storageClass` | Persistent Volume storage class. | `""` | -| `valkey.primary.persistence.size` | Persistent Volume size. | `8Gi` | -| `valkey.replica.persistence.enabled` | Enable persistence on Valkey replicas nodes using Persistent Volume Claims. | `true` | -| `valkey.replica.persistence.storageClass` | Persistent Volume storage class. | `""` | -| `valkey.replica.persistence.size` | Persistent Volume size. | `8Gi` | -| `valkey.sentinel.image.repository` | Image repository, eg. `bitnamilegacy/sentinel`. | `bitnamilegacy/valkey-sentinel` | -| `valkey.volumePermissions.image.repository` | Image repository, eg. `bitnamilegacy/os-shell`. | `bitnamilegacy/os-shell` | +| Name | Description | Value | +| ------------------------------------------ | -------------------------------------------------- | -------------------------- | +| `valkey.enabled` | Enable valkey standalone or replicated | `false` | +| `valkey.image.registry` | Image registry | `docker.io` | +| `valkey.image.repository` | Image repository | `valkey/valkey` | +| `valkey.image.tag` | Image tag | `""` | +| `valkey.auth.enabled` | Enable ACL-based authentication | `true` | +| `valkey.auth.aclUsers.default.permissions` | ACL permissions for the default user | `~* &* +@all` | +| `valkey.auth.aclUsers.default.password` | Password for the default user | `changeme` | +| `valkey.service.port` | Port of Valkey service | `6379` | +| `valkey.dataStorage.enabled` | Enable persistence using Persistent Volume Claims. | `false` | +| `valkey.dataStorage.className` | Persistent Volume storage class. | `""` | +| `valkey.dataStorage.requestedSize` | Persistent Volume size. | `8Gi` | +| `valkey.replica.enabled` | Enable replication | `false` | +| `valkey.replica.replicas` | Number of Valkey replica instances to deploy | `3` | +| `valkey.replica.persistence.size` | Persistent Volume size for replicas. | `8Gi` | +| `valkey.replica.persistence.storageClass` | Persistent Volume storage class for replicas. | `""` | +| `valkey.metrics.enabled` | Enable Prometheus exporter sidecar | `false` | +| `valkey.metrics.exporter.image.registry` | Image registry | `ghcr.io` | +| `valkey.metrics.exporter.image.repository` | Image repository | `oliver006/redis_exporter` | +| `valkey.metrics.exporter.image.tag` | Image tag | `""` | ### PostgreSQL HA diff --git a/templates/_helpers.tpl b/templates/_helpers.tpl index 4e49ccb..9d0b91a 100644 --- a/templates/_helpers.tpl +++ b/templates/_helpers.tpl @@ -215,28 +215,20 @@ app.kubernetes.io/instance: {{ .Release.Name }} {{- end -}} {{- define "valkey.dns" -}} -{{- if and ((index .Values "valkey-cluster").enabled) ((index .Values "valkey").enabled) -}} -{{- fail "valkey and valkey-cluster cannot be enabled at the same time. Please only choose one." -}} -{{- else if (index .Values "valkey-cluster").enabled -}} -{{- printf "redis+cluster://:%s@%s-valkey-cluster-headless.%s.svc.%s:%g/0?pool_size=100&idle_timeout=180s&" (index .Values "valkey-cluster").global.valkey.password .Release.Name .Release.Namespace .Values.clusterDomain (index .Values "valkey-cluster").service.ports.valkey -}} -{{- else if (index .Values "valkey").enabled -}} -{{- printf "redis://:%s@%s-valkey-primary.%s.svc.%s:%g/0?pool_size=100&idle_timeout=180s&" (index .Values "valkey").global.valkey.password .Release.Name .Release.Namespace .Values.clusterDomain (index .Values "valkey").master.service.ports.valkey -}} +{{- if (index .Values "valkey").enabled -}} +{{- printf "redis://:%s@%s-valkey.%s.svc.%s:%g/0?pool_size=100&idle_timeout=180s&" (index (index .Values "valkey").auth.aclUsers "default").password .Release.Name .Release.Namespace .Values.clusterDomain (index .Values "valkey").service.port -}} {{- end -}} {{- end -}} {{- define "valkey.port" -}} -{{- if (index .Values "valkey-cluster").enabled -}} -{{ (index .Values "valkey-cluster").service.ports.valkey }} -{{- else if (index .Values "valkey").enabled -}} -{{ (index .Values "valkey").master.service.ports.valkey }} +{{- if (index .Values "valkey").enabled -}} +{{ (index .Values "valkey").service.port }} {{- end -}} {{- end -}} {{- define "valkey.servicename" -}} -{{- if (index .Values "valkey-cluster").enabled -}} -{{- printf "%s-valkey-cluster-headless.%s.svc.%s" .Release.Name .Release.Namespace .Values.clusterDomain -}} -{{- else if (index .Values "valkey").enabled -}} -{{- printf "%s-valkey-primary.%s.svc.%s" .Release.Name .Release.Namespace .Values.clusterDomain -}} +{{- if (index .Values "valkey").enabled -}} +{{- printf "%s-valkey.%s.svc.%s" .Release.Name .Release.Namespace .Values.clusterDomain -}} {{- end -}} {{- end -}} @@ -403,7 +395,7 @@ https {{- $_ := set .Values.gitea.config.metrics "TOKEN" .Values.gitea.metrics.token -}} {{- end -}} {{- /* valkey queue */ -}} - {{- if or ((index .Values "valkey-cluster").enabled) ((index .Values "valkey").enabled) -}} + {{- if (index .Values "valkey").enabled -}} {{- $_ := set .Values.gitea.config.queue "TYPE" "redis" -}} {{- $_ := set .Values.gitea.config.queue "CONN_STR" (include "valkey.dns" .) -}} {{- $_ := set .Values.gitea.config.session "PROVIDER" "redis" -}} diff --git a/unittests/helm/config/cache-config.yaml b/unittests/helm/config/cache-config.yaml index c0d4f22..2bb0bae 100644 --- a/unittests/helm/config/cache-config.yaml +++ b/unittests/helm/config/cache-config.yaml @@ -3,26 +3,9 @@ release: name: gitea-unittests namespace: testing tests: - - it: "cache is configured correctly for valkey-cluster" - template: templates/gitea/config.yaml - set: - valkey-cluster: - enabled: true - valkey: - enabled: false - asserts: - - documentIndex: 0 - equal: - path: stringData.cache - value: |- - ADAPTER=redis - HOST=redis+cluster://:@gitea-unittests-valkey-cluster-headless.testing.svc.cluster.local:6379/0?pool_size=100&idle_timeout=180s& - - it: "cache is configured correctly for valkey" template: templates/gitea/config.yaml set: - valkey-cluster: - enabled: false valkey: enabled: true asserts: @@ -31,13 +14,11 @@ tests: path: stringData.cache value: |- ADAPTER=redis - HOST=redis://:changeme@gitea-unittests-valkey-primary.testing.svc.cluster.local:6379/0?pool_size=100&idle_timeout=180s& + HOST=redis://:changeme@gitea-unittests-valkey.testing.svc.cluster.local:6379/0?pool_size=100&idle_timeout=180s& - - it: "cache is configured correctly for 'memory' when valkey (or valkey-cluster) is disabled" + - it: "cache is configured correctly for 'memory' when valkey is disabled" template: templates/gitea/config.yaml set: - valkey-cluster: - enabled: false valkey: enabled: false asserts: @@ -48,11 +29,9 @@ tests: ADAPTER=memory HOST= - - it: "cache can be customized when valkey (or valkey-cluster) is disabled" + - it: "cache can be customized when valkey is disabled" template: templates/gitea/config.yaml set: - valkey-cluster: - enabled: false valkey: enabled: false gitea.config.cache.ADAPTER: custom-adapter diff --git a/unittests/helm/config/queue-config.yaml b/unittests/helm/config/queue-config.yaml index 9113568..698716a 100644 --- a/unittests/helm/config/queue-config.yaml +++ b/unittests/helm/config/queue-config.yaml @@ -3,26 +3,9 @@ release: name: gitea-unittests namespace: testing tests: - - it: "queue is configured correctly for valkey-cluster" - template: templates/gitea/config.yaml - set: - valkey-cluster: - enabled: true - valkey: - enabled: false - asserts: - - documentIndex: 0 - equal: - path: stringData.queue - value: |- - CONN_STR=redis+cluster://:@gitea-unittests-valkey-cluster-headless.testing.svc.cluster.local:6379/0?pool_size=100&idle_timeout=180s& - TYPE=redis - - it: "queue is configured correctly for valkey" template: templates/gitea/config.yaml set: - valkey-cluster: - enabled: false valkey: enabled: true asserts: @@ -30,14 +13,12 @@ tests: equal: path: stringData.queue value: |- - CONN_STR=redis://:changeme@gitea-unittests-valkey-primary.testing.svc.cluster.local:6379/0?pool_size=100&idle_timeout=180s& + CONN_STR=redis://:changeme@gitea-unittests-valkey.testing.svc.cluster.local:6379/0?pool_size=100&idle_timeout=180s& TYPE=redis - - it: "queue is configured correctly for 'levelDB' when valkey (and valkey-cluster) is disabled" + - it: "queue is configured correctly for 'levelDB' when valkey is disabled" template: templates/gitea/config.yaml set: - valkey-cluster: - enabled: false valkey: enabled: false asserts: @@ -48,11 +29,9 @@ tests: CONN_STR= TYPE=level - - it: "queue can be customized when valkey (and valkey-cluster) are disabled" + - it: "queue can be customized when valkey is disabled" template: templates/gitea/config.yaml set: - valkey-cluster: - enabled: false valkey: enabled: false gitea.config.queue.TYPE: custom-type diff --git a/unittests/helm/config/session-config.yaml b/unittests/helm/config/session-config.yaml index e518fb5..9028483 100644 --- a/unittests/helm/config/session-config.yaml +++ b/unittests/helm/config/session-config.yaml @@ -3,26 +3,9 @@ release: name: gitea-unittests namespace: testing tests: - - it: "session is configured correctly for valkey-cluster" - template: templates/gitea/config.yaml - set: - valkey-cluster: - enabled: true - valkey: - enabled: false - asserts: - - documentIndex: 0 - equal: - path: stringData.session - value: |- - PROVIDER=redis - PROVIDER_CONFIG=redis+cluster://:@gitea-unittests-valkey-cluster-headless.testing.svc.cluster.local:6379/0?pool_size=100&idle_timeout=180s& - - it: "session is configured correctly for valkey" template: templates/gitea/config.yaml set: - valkey-cluster: - enabled: false valkey: enabled: true asserts: @@ -31,13 +14,11 @@ tests: path: stringData.session value: |- PROVIDER=redis - PROVIDER_CONFIG=redis://:changeme@gitea-unittests-valkey-primary.testing.svc.cluster.local:6379/0?pool_size=100&idle_timeout=180s& + PROVIDER_CONFIG=redis://:changeme@gitea-unittests-valkey.testing.svc.cluster.local:6379/0?pool_size=100&idle_timeout=180s& - - it: "session is configured correctly for 'memory' when valkey (and valkey-cluster) is disabled" + - it: "session is configured correctly for 'memory' when valkey is disabled" template: templates/gitea/config.yaml set: - valkey-cluster: - enabled: false valkey: enabled: false asserts: @@ -48,11 +29,9 @@ tests: PROVIDER=memory PROVIDER_CONFIG= - - it: "session can be customized when valkey (and valkey-cluster) is disabled" + - it: "session can be customized when valkey is disabled" template: templates/gitea/config.yaml set: - valkey-cluster: - enabled: false valkey: enabled: false gitea.config.session.PROVIDER: custom-provider diff --git a/unittests/helm/dependency-checks/customization-integrity-valkey-cluster.yaml b/unittests/helm/dependency-checks/customization-integrity-valkey-cluster.yaml deleted file mode 100644 index ca02b89..0000000 --- a/unittests/helm/dependency-checks/customization-integrity-valkey-cluster.yaml +++ /dev/null @@ -1,99 +0,0 @@ -suite: Dependency checks | Customization integrity | valkey-cluster -release: - name: gitea-unittests - namespace: testing -set: - valkey: - enabled: false - valkey-cluster: - enabled: true - usePassword: false - cluster: - nodes: 5 - replicas: 2 -tests: - - it: "[valkey-cluster] configures correct nodes/replicas" - template: charts/valkey-cluster/templates/valkey-statefulset.yaml - asserts: - - documentIndex: 0 - equal: - path: spec.replicas - value: 5 - - documentIndex: 0 - matchRegex: - path: spec.template.spec.containers[0].args[0] - pattern: VALKEY_CLUSTER_REPLICAS="2" - - it: "[valkey-cluster] support auth-less connections" - asserts: - - template: charts/valkey-cluster/templates/secret.yaml - hasDocuments: - count: 0 - - template: charts/valkey-cluster/templates/valkey-statefulset.yaml - documentIndex: 0 - contains: - path: spec.template.spec.containers[0].env - content: - name: ALLOW_EMPTY_PASSWORD - value: "yes" - - it: "[valkey-cluster] support auth-full connections" - set: - valkey-cluster: - usePassword: true - asserts: - - template: charts/valkey-cluster/templates/secret.yaml - containsDocument: - kind: Secret - apiVersion: v1 - name: gitea-unittests-valkey-cluster - namespace: testing - - template: charts/valkey-cluster/templates/valkey-statefulset.yaml - documentIndex: 0 - contains: - path: spec.template.spec.containers[0].env - content: - name: REDISCLI_AUTH - valueFrom: - secretKeyRef: - name: gitea-unittests-valkey-cluster - key: valkey-password - - template: charts/valkey-cluster/templates/valkey-statefulset.yaml - documentIndex: 0 - contains: - path: spec.template.spec.containers[0].env - content: - name: REDISCLI_AUTH - valueFrom: - secretKeyRef: - name: gitea-unittests-valkey-cluster - key: valkey-password - - it: "[valkey-cluster] renders the referenced service" - template: charts/valkey-cluster/templates/headless-svc.yaml - asserts: - - containsDocument: - kind: Service - apiVersion: v1 - name: gitea-unittests-valkey-cluster-headless - namespace: testing - - documentIndex: 0 - contains: - path: spec.ports - content: - name: tcp-redis - port: 6379 - targetPort: tcp-redis - - it: "[gitea] waits for valkey-cluster to be up and running" - template: templates/gitea/init.yaml - asserts: - - documentIndex: 0 - matchRegex: - path: stringData["configure_gitea.sh"] - pattern: nc -vz -w2 gitea-unittests-valkey-cluster-headless.testing.svc.cluster.local 6379 - - it: "[gitea] waits for valkey-cluster to be up and running with custom cluster domain" - set: - clusterDomain: my-special-cluster.local - template: templates/gitea/init.yaml - asserts: - - documentIndex: 0 - matchRegex: - path: stringData["configure_gitea.sh"] - pattern: nc -vz -w2 gitea-unittests-valkey-cluster-headless.testing.svc.my-special-cluster.local 6379 diff --git a/unittests/helm/dependency-checks/customization-integrity-valkey.yaml b/unittests/helm/dependency-checks/customization-integrity-valkey.yaml index eb7446b..2e32e55 100644 --- a/unittests/helm/dependency-checks/customization-integrity-valkey.yaml +++ b/unittests/helm/dependency-checks/customization-integrity-valkey.yaml @@ -3,54 +3,44 @@ release: name: gitea-unittests namespace: testing set: - valkey-cluster: - enabled: false valkey: enabled: true - architecture: standalone - global: - valkey: - password: gitea-password - master: - count: 2 + auth: + enabled: true + aclUsers: + default: + permissions: "~* &* +@all" + password: gitea-password tests: - - it: "[valkey] configures correct 'master' nodes" - template: charts/valkey/templates/primary/application.yaml - asserts: - - documentIndex: 0 - equal: - path: spec.replicas - value: 1 - - it: "[valkey] valkey.global.valkey.password is applied as expected" + - it: "[valkey] valkey.auth.aclUsers.default.password is applied as expected" template: charts/valkey/templates/secret.yaml asserts: - documentIndex: 0 equal: - path: data["valkey-password"] + path: data.default-password value: "Z2l0ZWEtcGFzc3dvcmQ=" - it: "[valkey] renders the referenced service" - template: charts/valkey/templates/primary/service.yaml + template: charts/valkey/templates/service.yaml asserts: - containsDocument: kind: Service apiVersion: v1 - name: gitea-unittests-valkey-primary - namespace: testing + name: gitea-unittests-valkey - documentIndex: 0 contains: path: spec.ports content: - name: tcp-redis - nodePort: null + name: tcp port: 6379 - targetPort: redis + targetPort: tcp + protocol: TCP - it: "[gitea] waits for valkey to be up and running" template: templates/gitea/init.yaml asserts: - documentIndex: 0 matchRegex: path: stringData["configure_gitea.sh"] - pattern: nc -vz -w2 gitea-unittests-valkey-primary.testing.svc.cluster.local 6379 + pattern: nc -vz -w2 gitea-unittests-valkey.testing.svc.cluster.local 6379 - it: "[gitea] waits for valkey to be up and running with custom cluster domain" set: clusterDomain: my-special-cluster.local @@ -59,4 +49,4 @@ tests: - documentIndex: 0 matchRegex: path: stringData["configure_gitea.sh"] - pattern: nc -vz -w2 gitea-unittests-valkey-primary.testing.svc.my-special-cluster.local 6379 + pattern: nc -vz -w2 gitea-unittests-valkey.testing.svc.my-special-cluster.local 6379 diff --git a/unittests/helm/dependency-checks/major-image-bump.yaml b/unittests/helm/dependency-checks/major-image-bump.yaml index ce2a531..f5d35af 100644 --- a/unittests/helm/dependency-checks/major-image-bump.yaml +++ b/unittests/helm/dependency-checks/major-image-bump.yaml @@ -29,24 +29,9 @@ tests: path: spec.template.spec.containers[0].image # IN CASE OF AN INTENTIONAL MAJOR BUMP, ADJUST THIS TEST pattern: bitnamilegacy/postgresql:17.+$ - - it: "[valkey-cluster] ensures we detect major image version upgrades" - template: charts/valkey-cluster/templates/valkey-statefulset.yaml - set: - valkey-cluster: - enabled: true - valkey: - enabled: false - asserts: - - documentIndex: 0 - matchRegex: - path: spec.template.spec.containers[0].image - # IN CASE OF AN INTENTIONAL MAJOR BUMP, ADJUST THIS TEST - pattern: bitnamilegacy/valkey-cluster:8.+$ - it: "[valkey] ensures we detect major image version upgrades" - template: charts/valkey/templates/primary/application.yaml + template: charts/valkey/templates/deploy_valkey.yaml set: - valkey-cluster: - enabled: false valkey: enabled: true asserts: @@ -54,4 +39,4 @@ tests: matchRegex: path: spec.template.spec.containers[0].image # IN CASE OF AN INTENTIONAL MAJOR BUMP, ADJUST THIS TEST - pattern: bitnamilegacy/valkey:8.+$ + pattern: valkey/valkey:9.+$ diff --git a/unittests/helm/values-conflicting-checks.yaml b/unittests/helm/values-conflicting-checks.yaml deleted file mode 100644 index a1ba969..0000000 --- a/unittests/helm/values-conflicting-checks.yaml +++ /dev/null @@ -1,14 +0,0 @@ -suite: Values conflicting checks -release: - name: gitea-unittests - namespace: testing -tests: - - it: fails when trying to configure valkey and valkey-cluster the same time - set: - valkey-cluster: - enabled: true - valkey: - enabled: true - asserts: - - failedTemplate: - errorMessage: valkey and valkey-cluster cannot be enabled at the same time. Please only choose one. diff --git a/values.yaml b/values.yaml index 8ab15bf..37be20f 100644 --- a/values.yaml +++ b/values.yaml @@ -646,125 +646,63 @@ gitea: successThreshold: 1 failureThreshold: 10 -## @section valkey-cluster -## @descriptionStart -## Valkey cluster and [Valkey](#valkey) cannot be enabled at the same time. -## @descriptionEnd -valkey-cluster: - ## @param valkey-cluster.enabled Enable valkey cluster - # ⚠️ The valkey charts do not work well with special characters in the password (). - # Consider omitting such or open an issue in the Bitnami repo and let us know once this got fixed. - ## @param valkey-cluster.usePassword Whether to use password authentication. - ## @param valkey-cluster.usePasswordFiles Whether to mount passwords as files instead of environment variables. - enabled: true - usePassword: false - usePasswordFiles: false - - ## @param valkey-cluster.image.repository Image repository, eg. `bitnamilegacy/valkey-cluster`. - image: - repository: bitnamilegacy/valkey-cluster - - ## @param valkey-cluster.cluster.nodes Number of valkey cluster master nodes - ## @param valkey-cluster.cluster.replicas Number of valkey cluster master node replicas - cluster: - nodes: 3 # default: 6 - replicas: 0 # default: 1 - - ## @param valkey-cluster.metrics.image.repository Image repository, eg. `bitnamilegacy/redis-exporter`. - metrics: - image: - repository: bitnamilegacy/redis-exporter - - ## @param valkey-cluster.persistence.enabled Enable persistence on Valkey replicas nodes using Persistent Volume Claims. - ## @param valkey-cluster.persistence.storageClass Persistent Volume storage class. - ## @param valkey-cluster.persistence.size Persistent Volume size. - persistence: - enabled: true - storageClass: "" - size: 8Gi - - ## @param valkey-cluster.service.ports.valkey Port of Valkey service - service: - ports: - valkey: 6379 - - ## @param valkey-cluster.sysctlImage.repository Image repository, eg. `bitnamilegacy/os-shell`. - sysctlImage: - repository: bitnamilegacy/os-shell - - ## @param valkey-cluster.volumePermissions.image.repository Image repository, eg. `bitnamilegacy/os-shell`. - volumePermissions: - image: - repository: bitnamilegacy/os-shell - - ## @section valkey - -## @descriptionStart -## Valkey and [Valkey cluster](#valkey-cluster) cannot be enabled at the same time. -## @descriptionEnd valkey: ## @param valkey.enabled Enable valkey standalone or replicated - ## @param valkey.architecture Whether to use standalone or replication enabled: false - architecture: standalone - ## @param valkey.kubectl.image.repository Image repository, eg. `bitnamilegacy/kubectl`. - kubectl: - image: - repository: bitnamilegacy/kubectl - - ## @param valkey.image.repository Image repository, eg. `bitnamilegacy/valkey`. + ## @param valkey.image.registry Image registry + ## @param valkey.image.repository Image repository + ## @param valkey.image.tag Image tag image: - repository: bitnamilegacy/valkey + registry: docker.io + repository: valkey/valkey + tag: "" - # ⚠️ The valkey charts do not work well with special characters in the password (). - # Consider omitting such or open an issue in the Bitnami repo and let us know once this got fixed. - ## @param valkey.global.valkey.password Required password - global: - valkey: - password: changeme + ## @param valkey.auth.enabled Enable ACL-based authentication + ## @param valkey.auth.aclUsers.default.permissions ACL permissions for the default user + ## @param valkey.auth.aclUsers.default.password Password for the default user + auth: + enabled: true + aclUsers: + default: + permissions: "~* &* +@all" + password: changeme - ## @param valkey.master.count Number of Valkey master instances to deploy - ## @param valkey.master.service.ports.valkey Port of Valkey service - master: - count: 1 - service: - ports: - valkey: 6379 + ## @param valkey.service.port Port of Valkey service + service: + port: 6379 - ## @param valkey.metrics.image.repository Image repository, eg. `bitnamilegacy/redis-exporter`. - metrics: - image: - repository: bitnamilegacy/redis-exporter - - primary: - ## @param valkey.primary.persistence.enabled Enable persistence on Valkey replicas nodes using Persistent Volume Claims. - ## @param valkey.primary.persistence.storageClass Persistent Volume storage class. - ## @param valkey.primary.persistence.size Persistent Volume size. - persistence: - enabled: true - storageClass: "" - size: 8Gi + ## @param valkey.dataStorage.enabled Enable persistence using Persistent Volume Claims. + ## @param valkey.dataStorage.className Persistent Volume storage class. + ## @param valkey.dataStorage.requestedSize Persistent Volume size. + dataStorage: + enabled: false + className: "" + requestedSize: 8Gi + ## @param valkey.replica.enabled Enable replication + ## @param valkey.replica.replicas Number of Valkey replica instances to deploy + ## @param valkey.replica.persistence.size Persistent Volume size for replicas. + ## @param valkey.replica.persistence.storageClass Persistent Volume storage class for replicas. replica: - ## @param valkey.replica.persistence.enabled Enable persistence on Valkey replicas nodes using Persistent Volume Claims. - ## @param valkey.replica.persistence.storageClass Persistent Volume storage class. - ## @param valkey.replica.persistence.size Persistent Volume size. + enabled: false + replicas: 3 persistence: - enabled: true - storageClass: "" size: 8Gi + storageClass: "" - ## @param valkey.sentinel.image.repository Image repository, eg. `bitnamilegacy/sentinel`. - sentinel: - image: - repository: bitnamilegacy/valkey-sentinel - - ## @param valkey.volumePermissions.image.repository Image repository, eg. `bitnamilegacy/os-shell`. - volumePermissions: - image: - repository: bitnamilegacy/os-shell + ## @param valkey.metrics.enabled Enable Prometheus exporter sidecar + ## @param valkey.metrics.exporter.image.registry Image registry + ## @param valkey.metrics.exporter.image.repository Image repository + ## @param valkey.metrics.exporter.image.tag Image tag + metrics: + enabled: false + exporter: + image: + registry: ghcr.io + repository: oliver006/redis_exporter + tag: "" ## @section PostgreSQL HA postgresql-ha: