fix(valkey)!: migrate to valkey/valkey (#1097)

Migrate from bitnamicharts/valkey (and bitnamicharts/valkey-cluster) to the official Valkey Helm chart (https://valkey.io/valkey-helm, v0.10.0).

Changes:
- Remove valkey-cluster dependency and all related values, templates, and unit tests
- Update valkey dependency to use https://valkey.io/valkey-helm
- Adapt _helpers.tpl (valkey.dns, valkey.port, valkey.servicename) to the new chart's service naming and value structure
- Update values.yaml to match the new chart's configuration schema (auth.aclUsers instead of global.valkey.password, service.port instead of primary.service.ports.valkey, dataStorage instead of
  primary.persistence)
- Update all affected unit tests
- Update README documentation

BREAKING CHANGE: valkey-cluster support has been removed. Users previously relying on valkey-cluster must migrate to standalone valkey or an external Redis-compatible service. The valkey values structure
has changed: `valkey.global.valkey.password` is now `valkey.auth.aclUsers.default.password`, and `valkey.primary.service.ports.valkey` is now `valkey.service.port`.

---------

Co-authored-by: rishub <183523+rishub@noreply.gitea.com>
Co-authored-by: rishub <itsrishub@gmail.com>
Reviewed-on: https://gitea.com/gitea/helm-gitea/pulls/1097
Co-authored-by: Markus Pesch <markus.pesch@cryptic.systems>
This commit is contained in:
2026-07-20 19:46:18 +00:00
committed by Markus Pesch
co-authored by rishub rishub
parent fbf1f4a62d
commit 407a7027bc
13 changed files with 113 additions and 419 deletions
+5
View File
@@ -22,6 +22,11 @@ jobs:
apk update apk update
apk add --update bash make nodejs npm yamllint ncurses apk add --update bash make nodejs npm yamllint ncurses
- uses: actions/checkout@v7.0.0 - 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 - name: install chart dependencies
run: helm dependency build run: helm dependency build
- name: lint - name: lint
+4 -7
View File
@@ -5,11 +5,8 @@ dependencies:
- name: postgresql-ha - name: postgresql-ha
repository: oci://registry-1.docker.io/bitnamicharts repository: oci://registry-1.docker.io/bitnamicharts
version: 16.3.2 version: 16.3.2
- name: valkey-cluster
repository: oci://registry-1.docker.io/bitnamicharts
version: 3.0.24
- name: valkey - name: valkey
repository: oci://registry-1.docker.io/bitnamicharts repository: https://valkey.io/valkey-helm
version: 3.0.31 version: 0.10.0
digest: sha256:ceb6a1890cfdc2627abb85d3e2a4baa64d30afd21dcfabce978a824a67f0a2bb digest: sha256:1afecbf0d4fc9f48e31417573d4bed7e0ac7848040b9e0c5f3989ada9d1f944f
generated: "2025-08-30T00:03:04.59764502Z" generated: "2026-07-20T19:52:11.548874634+02:00"
+2 -7
View File
@@ -46,13 +46,8 @@ dependencies:
repository: oci://registry-1.docker.io/bitnamicharts repository: oci://registry-1.docker.io/bitnamicharts
version: 16.3.2 version: 16.3.2
condition: postgresql-ha.enabled 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 # https://github.com/bitnami/charts/blob/main/bitnami/valkey/Chart.yaml
- name: valkey - name: valkey
repository: oci://registry-1.docker.io/bitnamicharts repository: https://valkey.io/valkey-helm
version: 3.0.31 version: 0.10.0
condition: valkey.enabled condition: valkey.enabled
+24 -56
View File
@@ -54,7 +54,6 @@
- [LivenessProbe](#livenessprobe) - [LivenessProbe](#livenessprobe)
- [ReadinessProbe](#readinessprobe) - [ReadinessProbe](#readinessprobe)
- [StartupProbe](#startupprobe) - [StartupProbe](#startupprobe)
- [valkey-cluster](#valkey-cluster)
- [valkey](#valkey) - [valkey](#valkey)
- [PostgreSQL HA](#postgresql-ha) - [PostgreSQL HA](#postgresql-ha)
- [PostgreSQL](#postgresql) - [PostgreSQL](#postgresql)
@@ -98,14 +97,13 @@ Users can also configure their own external providers via the configuration.
These dependencies are enabled by default: These dependencies are enabled by default:
- PostgreSQL HA ([Bitnami PostgreSQL-HA](https://github.com/bitnami/charts/blob/main/bitnami/postgresql-ha/Chart.yaml)) - 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 ### Non-HA Dependencies
Alternatively, the following non-HA replacements are available: Alternatively, the following non-HA replacements are available:
- PostgreSQL ([Bitnami PostgreSQL](https://github.com/bitnami/charts/blob/main/bitnami/postgresql/Chart.yaml)) - 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 ### 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-HA](https://hub.docker.com/r/bitnami/postgresql-repmgr/tags)
- [PostgreSQL](https://hub.docker.com/r/bitnami/postgresql/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/valkey/valkey/tags)
- [Valkey](https://hub.docker.com/r/bitnami/valkey/tags)
and look up the image tag which fits your needs on Dockerhub. 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**. 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. 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. 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 ### Single-Pod Configurations
@@ -339,8 +336,6 @@ If HA is not needed/desired, the following configurations can be used to deploy
<summary>values.yml</summary> <summary>values.yml</summary>
```yaml ```yaml
valkey-cluster:
enabled: false
valkey: valkey:
enabled: true enabled: true
postgresql: postgresql:
@@ -372,8 +367,6 @@ If HA is not needed/desired, the following configurations can be used to deploy
<summary>values.yml</summary> <summary>values.yml</summary>
```yaml ```yaml
valkey-cluster:
enabled: false
valkey: valkey:
enabled: false enabled: false
postgresql: postgresql:
@@ -576,19 +569,13 @@ More about this issue [under this link](https://gitea.com/gitea/helm-gitea/issue
### Cache ### Cache
The cache handling is done via `valkey-cluster` (via the `bitnami` chart) by default. The cache handling is done via `valkey` (via the [official Valkey Helm chart](https://github.com/valkey-io/valkey-helm)) 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`.
```yaml ```yaml
valkey-cluster: valkey:
enabled: true 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 ### Persistence
Gitea will be deployed as a deployment. 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.successThreshold` | Success threshold for startup probe | `1` |
| `gitea.startupProbe.failureThreshold` | Failure threshold for startup probe | `10` | | `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
Valkey and [Valkey cluster](#valkey-cluster) cannot be enabled at the same time.
| Name | Description | Value | | Name | Description | Value |
| ------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------- | | ------------------------------------------ | -------------------------------------------------- | -------------------------- |
| `valkey.enabled` | Enable valkey standalone or replicated | `false` | | `valkey.enabled` | Enable valkey standalone or replicated | `false` |
| `valkey.architecture` | Whether to use standalone or replication | `standalone` | | `valkey.image.registry` | Image registry | `docker.io` |
| `valkey.kubectl.image.repository` | Image repository, eg. `bitnamilegacy/kubectl`. | `bitnamilegacy/kubectl` | | `valkey.image.repository` | Image repository | `valkey/valkey` |
| `valkey.image.repository` | Image repository, eg. `bitnamilegacy/valkey`. | `bitnamilegacy/valkey` | | `valkey.image.tag` | Image tag | `""` |
| `valkey.global.valkey.password` | Required password | `changeme` | | `valkey.auth.enabled` | Enable ACL-based authentication | `true` |
| `valkey.master.count` | Number of Valkey master instances to deploy | `1` | | `valkey.auth.aclUsers.default.permissions` | ACL permissions for the default user | `~* &* +@all` |
| `valkey.master.service.ports.valkey` | Port of Valkey service | `6379` | | `valkey.auth.aclUsers.default.password` | Password for the default user | `changeme` |
| `valkey.metrics.image.repository` | Image repository, eg. `bitnamilegacy/redis-exporter`. | `bitnamilegacy/redis-exporter` | | `valkey.service.port` | Port of Valkey service | `6379` |
| `valkey.primary.persistence.enabled` | Enable persistence on Valkey replicas nodes using Persistent Volume Claims. | `true` | | `valkey.dataStorage.enabled` | Enable persistence using Persistent Volume Claims. | `false` |
| `valkey.primary.persistence.storageClass` | Persistent Volume storage class. | `""` | | `valkey.dataStorage.className` | Persistent Volume storage class. | `""` |
| `valkey.primary.persistence.size` | Persistent Volume size. | `8Gi` | | `valkey.dataStorage.requestedSize` | Persistent Volume size. | `8Gi` |
| `valkey.replica.persistence.enabled` | Enable persistence on Valkey replicas nodes using Persistent Volume Claims. | `true` | | `valkey.replica.enabled` | Enable replication | `false` |
| `valkey.replica.persistence.storageClass` | Persistent Volume storage class. | `""` | | `valkey.replica.replicas` | Number of Valkey replica instances to deploy | `3` |
| `valkey.replica.persistence.size` | Persistent Volume size. | `8Gi` | | `valkey.replica.persistence.size` | Persistent Volume size for replicas. | `8Gi` |
| `valkey.sentinel.image.repository` | Image repository, eg. `bitnamilegacy/sentinel`. | `bitnamilegacy/valkey-sentinel` | | `valkey.replica.persistence.storageClass` | Persistent Volume storage class for replicas. | `""` |
| `valkey.volumePermissions.image.repository` | Image repository, eg. `bitnamilegacy/os-shell`. | `bitnamilegacy/os-shell` | | `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 ### PostgreSQL HA
+7 -15
View File
@@ -215,28 +215,20 @@ app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}} {{- end -}}
{{- define "valkey.dns" -}} {{- define "valkey.dns" -}}
{{- if and ((index .Values "valkey-cluster").enabled) ((index .Values "valkey").enabled) -}} {{- if (index .Values "valkey").enabled -}}
{{- fail "valkey and valkey-cluster cannot be enabled at the same time. Please only choose one." -}} {{- 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 -}}
{{- 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 -}}
{{- end -}} {{- end -}}
{{- end -}} {{- end -}}
{{- define "valkey.port" -}} {{- define "valkey.port" -}}
{{- if (index .Values "valkey-cluster").enabled -}} {{- if (index .Values "valkey").enabled -}}
{{ (index .Values "valkey-cluster").service.ports.valkey }} {{ (index .Values "valkey").service.port }}
{{- else if (index .Values "valkey").enabled -}}
{{ (index .Values "valkey").master.service.ports.valkey }}
{{- end -}} {{- end -}}
{{- end -}} {{- end -}}
{{- define "valkey.servicename" -}} {{- define "valkey.servicename" -}}
{{- if (index .Values "valkey-cluster").enabled -}} {{- if (index .Values "valkey").enabled -}}
{{- printf "%s-valkey-cluster-headless.%s.svc.%s" .Release.Name .Release.Namespace .Values.clusterDomain -}} {{- printf "%s-valkey.%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 -}}
{{- end -}} {{- end -}}
{{- end -}} {{- end -}}
@@ -403,7 +395,7 @@ https
{{- $_ := set .Values.gitea.config.metrics "TOKEN" .Values.gitea.metrics.token -}} {{- $_ := set .Values.gitea.config.metrics "TOKEN" .Values.gitea.metrics.token -}}
{{- end -}} {{- end -}}
{{- /* valkey queue */ -}} {{- /* 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 "TYPE" "redis" -}}
{{- $_ := set .Values.gitea.config.queue "CONN_STR" (include "valkey.dns" .) -}} {{- $_ := set .Values.gitea.config.queue "CONN_STR" (include "valkey.dns" .) -}}
{{- $_ := set .Values.gitea.config.session "PROVIDER" "redis" -}} {{- $_ := set .Values.gitea.config.session "PROVIDER" "redis" -}}
+3 -24
View File
@@ -3,26 +3,9 @@ release:
name: gitea-unittests name: gitea-unittests
namespace: testing namespace: testing
tests: 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" - it: "cache is configured correctly for valkey"
template: templates/gitea/config.yaml template: templates/gitea/config.yaml
set: set:
valkey-cluster:
enabled: false
valkey: valkey:
enabled: true enabled: true
asserts: asserts:
@@ -31,13 +14,11 @@ tests:
path: stringData.cache path: stringData.cache
value: |- value: |-
ADAPTER=redis 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 template: templates/gitea/config.yaml
set: set:
valkey-cluster:
enabled: false
valkey: valkey:
enabled: false enabled: false
asserts: asserts:
@@ -48,11 +29,9 @@ tests:
ADAPTER=memory ADAPTER=memory
HOST= 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 template: templates/gitea/config.yaml
set: set:
valkey-cluster:
enabled: false
valkey: valkey:
enabled: false enabled: false
gitea.config.cache.ADAPTER: custom-adapter gitea.config.cache.ADAPTER: custom-adapter
+3 -24
View File
@@ -3,26 +3,9 @@ release:
name: gitea-unittests name: gitea-unittests
namespace: testing namespace: testing
tests: 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" - it: "queue is configured correctly for valkey"
template: templates/gitea/config.yaml template: templates/gitea/config.yaml
set: set:
valkey-cluster:
enabled: false
valkey: valkey:
enabled: true enabled: true
asserts: asserts:
@@ -30,14 +13,12 @@ tests:
equal: equal:
path: stringData.queue path: stringData.queue
value: |- 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 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 template: templates/gitea/config.yaml
set: set:
valkey-cluster:
enabled: false
valkey: valkey:
enabled: false enabled: false
asserts: asserts:
@@ -48,11 +29,9 @@ tests:
CONN_STR= CONN_STR=
TYPE=level 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 template: templates/gitea/config.yaml
set: set:
valkey-cluster:
enabled: false
valkey: valkey:
enabled: false enabled: false
gitea.config.queue.TYPE: custom-type gitea.config.queue.TYPE: custom-type
+3 -24
View File
@@ -3,26 +3,9 @@ release:
name: gitea-unittests name: gitea-unittests
namespace: testing namespace: testing
tests: 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" - it: "session is configured correctly for valkey"
template: templates/gitea/config.yaml template: templates/gitea/config.yaml
set: set:
valkey-cluster:
enabled: false
valkey: valkey:
enabled: true enabled: true
asserts: asserts:
@@ -31,13 +14,11 @@ tests:
path: stringData.session path: stringData.session
value: |- value: |-
PROVIDER=redis 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 template: templates/gitea/config.yaml
set: set:
valkey-cluster:
enabled: false
valkey: valkey:
enabled: false enabled: false
asserts: asserts:
@@ -48,11 +29,9 @@ tests:
PROVIDER=memory PROVIDER=memory
PROVIDER_CONFIG= 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 template: templates/gitea/config.yaml
set: set:
valkey-cluster:
enabled: false
valkey: valkey:
enabled: false enabled: false
gitea.config.session.PROVIDER: custom-provider gitea.config.session.PROVIDER: custom-provider
@@ -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
@@ -3,54 +3,44 @@ release:
name: gitea-unittests name: gitea-unittests
namespace: testing namespace: testing
set: set:
valkey-cluster:
enabled: false
valkey: valkey:
enabled: true enabled: true
architecture: standalone auth:
global: enabled: true
valkey: aclUsers:
default:
permissions: "~* &* +@all"
password: gitea-password password: gitea-password
master:
count: 2
tests: tests:
- it: "[valkey] configures correct 'master' nodes" - it: "[valkey] valkey.auth.aclUsers.default.password is applied as expected"
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"
template: charts/valkey/templates/secret.yaml template: charts/valkey/templates/secret.yaml
asserts: asserts:
- documentIndex: 0 - documentIndex: 0
equal: equal:
path: data["valkey-password"] path: data.default-password
value: "Z2l0ZWEtcGFzc3dvcmQ=" value: "Z2l0ZWEtcGFzc3dvcmQ="
- it: "[valkey] renders the referenced service" - it: "[valkey] renders the referenced service"
template: charts/valkey/templates/primary/service.yaml template: charts/valkey/templates/service.yaml
asserts: asserts:
- containsDocument: - containsDocument:
kind: Service kind: Service
apiVersion: v1 apiVersion: v1
name: gitea-unittests-valkey-primary name: gitea-unittests-valkey
namespace: testing
- documentIndex: 0 - documentIndex: 0
contains: contains:
path: spec.ports path: spec.ports
content: content:
name: tcp-redis name: tcp
nodePort: null
port: 6379 port: 6379
targetPort: redis targetPort: tcp
protocol: TCP
- it: "[gitea] waits for valkey to be up and running" - it: "[gitea] waits for valkey to be up and running"
template: templates/gitea/init.yaml template: templates/gitea/init.yaml
asserts: asserts:
- documentIndex: 0 - documentIndex: 0
matchRegex: matchRegex:
path: stringData["configure_gitea.sh"] 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" - it: "[gitea] waits for valkey to be up and running with custom cluster domain"
set: set:
clusterDomain: my-special-cluster.local clusterDomain: my-special-cluster.local
@@ -59,4 +49,4 @@ tests:
- documentIndex: 0 - documentIndex: 0
matchRegex: matchRegex:
path: stringData["configure_gitea.sh"] 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
@@ -29,24 +29,9 @@ tests:
path: spec.template.spec.containers[0].image path: spec.template.spec.containers[0].image
# IN CASE OF AN INTENTIONAL MAJOR BUMP, ADJUST THIS TEST # IN CASE OF AN INTENTIONAL MAJOR BUMP, ADJUST THIS TEST
pattern: bitnamilegacy/postgresql:17.+$ 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" - it: "[valkey] ensures we detect major image version upgrades"
template: charts/valkey/templates/primary/application.yaml template: charts/valkey/templates/deploy_valkey.yaml
set: set:
valkey-cluster:
enabled: false
valkey: valkey:
enabled: true enabled: true
asserts: asserts:
@@ -54,4 +39,4 @@ tests:
matchRegex: matchRegex:
path: spec.template.spec.containers[0].image path: spec.template.spec.containers[0].image
# IN CASE OF AN INTENTIONAL MAJOR BUMP, ADJUST THIS TEST # IN CASE OF AN INTENTIONAL MAJOR BUMP, ADJUST THIS TEST
pattern: bitnamilegacy/valkey:8.+$ pattern: valkey/valkey:9.+$
@@ -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.
+40 -102
View File
@@ -646,125 +646,63 @@ gitea:
successThreshold: 1 successThreshold: 1
failureThreshold: 10 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 (<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.
## @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 ## @section valkey
## @descriptionStart
## Valkey and [Valkey cluster](#valkey-cluster) cannot be enabled at the same time.
## @descriptionEnd
valkey: valkey:
## @param valkey.enabled Enable valkey standalone or replicated ## @param valkey.enabled Enable valkey standalone or replicated
## @param valkey.architecture Whether to use standalone or replication
enabled: false enabled: false
architecture: standalone
## @param valkey.kubectl.image.repository Image repository, eg. `bitnamilegacy/kubectl`. ## @param valkey.image.registry Image registry
kubectl: ## @param valkey.image.repository Image repository
## @param valkey.image.tag Image tag
image: image:
repository: bitnamilegacy/kubectl registry: docker.io
repository: valkey/valkey
tag: ""
## @param valkey.image.repository Image repository, eg. `bitnamilegacy/valkey`. ## @param valkey.auth.enabled Enable ACL-based authentication
image: ## @param valkey.auth.aclUsers.default.permissions ACL permissions for the default user
repository: bitnamilegacy/valkey ## @param valkey.auth.aclUsers.default.password Password for the default user
auth:
# ⚠️ The valkey charts do not work well with special characters in the password (<https://gitea.com/gitea/helm-chart/issues/690>). enabled: true
# Consider omitting such or open an issue in the Bitnami repo and let us know once this got fixed. aclUsers:
## @param valkey.global.valkey.password Required password default:
global: permissions: "~* &* +@all"
valkey:
password: changeme password: changeme
## @param valkey.master.count Number of Valkey master instances to deploy ## @param valkey.service.port Port of Valkey service
## @param valkey.master.service.ports.valkey Port of Valkey service
master:
count: 1
service: service:
ports: port: 6379
valkey: 6379
## @param valkey.metrics.image.repository Image repository, eg. `bitnamilegacy/redis-exporter`. ## @param valkey.dataStorage.enabled Enable persistence using Persistent Volume Claims.
metrics: ## @param valkey.dataStorage.className Persistent Volume storage class.
image: ## @param valkey.dataStorage.requestedSize Persistent Volume size.
repository: bitnamilegacy/redis-exporter dataStorage:
enabled: false
primary: className: ""
## @param valkey.primary.persistence.enabled Enable persistence on Valkey replicas nodes using Persistent Volume Claims. requestedSize: 8Gi
## @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.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: replica:
## @param valkey.replica.persistence.enabled Enable persistence on Valkey replicas nodes using Persistent Volume Claims. enabled: false
## @param valkey.replica.persistence.storageClass Persistent Volume storage class. replicas: 3
## @param valkey.replica.persistence.size Persistent Volume size.
persistence: persistence:
enabled: true
storageClass: ""
size: 8Gi size: 8Gi
storageClass: ""
## @param valkey.sentinel.image.repository Image repository, eg. `bitnamilegacy/sentinel`. ## @param valkey.metrics.enabled Enable Prometheus exporter sidecar
sentinel: ## @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: image:
repository: bitnamilegacy/valkey-sentinel registry: ghcr.io
repository: oliver006/redis_exporter
## @param valkey.volumePermissions.image.repository Image repository, eg. `bitnamilegacy/os-shell`. tag: ""
volumePermissions:
image:
repository: bitnamilegacy/os-shell
## @section PostgreSQL HA ## @section PostgreSQL HA
postgresql-ha: postgresql-ha: