The inline-config Secret used `stringData`. The API server stores it as `data`, so a section removed from `gitea.config` was never pruned from the live Secret, and the init container kept writing it into `app.ini` on every start. With Gitea 28, a leftover `[webhook] ALLOWED_HOST_LIST` overrides `[security]`'s, which breaks webhooks to private hosts. This renders the Secret as base64 `data` instead. - `templates/secret_inlineConfig.yaml`: `stringData` → `data` (`b64enc`). - Unit tests read `data.*` with `decodeBase64: true`; adds a regression test asserting there is no `stringData`. Note: keys that are already stale from the `stringData` era survive the first upgrade to this version, because Helm's three-way merge never recorded them under `data`. Every removal after that is pruned. `make unittests-helm`: 261 passed. `helm lint` and `yamllint` are clean. Co-authored-by: perfectra1n <jonfuller2012@gmail.com> Reviewed-on: https://gitea.com/gitea/helm-gitea/pulls/1110 Co-authored-by: perfectra1n <49838+perfectra1n@noreply.gitea.com>
103 lines
3.2 KiB
YAML
103 lines
3.2 KiB
YAML
suite: Dependency checks | Customization integrity | postgresql
|
|
release:
|
|
name: gitea-unittests
|
|
namespace: testing
|
|
set:
|
|
postgresql-ha:
|
|
enabled: false
|
|
postgresql:
|
|
enabled: true
|
|
global:
|
|
postgresql:
|
|
auth:
|
|
password: gitea-password
|
|
database: gitea-database
|
|
username: gitea-username
|
|
service:
|
|
ports:
|
|
postgresql: 1234
|
|
primary:
|
|
persistence:
|
|
size: 1337Mi
|
|
tests:
|
|
- it: "[postgresql] DB settings are applied as expected"
|
|
template: charts/postgresql/templates/primary/statefulset.yaml
|
|
asserts:
|
|
- documentIndex: 0
|
|
contains:
|
|
path: spec.template.spec.containers[0].env
|
|
content:
|
|
name: POSTGRES_DATABASE
|
|
value: "gitea-database"
|
|
- documentIndex: 0
|
|
contains:
|
|
path: spec.template.spec.containers[0].env
|
|
content:
|
|
name: POSTGRES_USER
|
|
value: "gitea-username"
|
|
- it: "[postgresql] DB password is applied as expected"
|
|
template: charts/postgresql/templates/secrets.yaml
|
|
asserts:
|
|
- documentIndex: 0
|
|
equal:
|
|
path: data["password"]
|
|
value: "Z2l0ZWEtcGFzc3dvcmQ="
|
|
- it: "[postgresql] primary.persistence.size is applied as expected"
|
|
template: charts/postgresql/templates/primary/statefulset.yaml
|
|
asserts:
|
|
- documentIndex: 0
|
|
equal:
|
|
path: spec.volumeClaimTemplates[0].spec.resources.requests.storage
|
|
value: "1337Mi"
|
|
- it: "[postgresql] global.postgresql.service.ports.postgresql is applied as expected"
|
|
template: charts/postgresql/templates/primary/svc.yaml
|
|
asserts:
|
|
- documentIndex: 0
|
|
equal:
|
|
path: spec.ports[0].port
|
|
value: 1234
|
|
- it: "[postgresql] renders the referenced service"
|
|
template: charts/postgresql/templates/primary/svc.yaml
|
|
asserts:
|
|
- containsDocument:
|
|
kind: Service
|
|
apiVersion: v1
|
|
name: gitea-unittests-postgresql
|
|
namespace: testing
|
|
- it: "[gitea] connects to postgresql service"
|
|
template: templates/secret_inlineConfig.yaml
|
|
asserts:
|
|
- documentIndex: 0
|
|
matchRegex:
|
|
path: data.database
|
|
decodeBase64: true
|
|
pattern: HOST=gitea-unittests-postgresql.testing.svc.cluster.local:1234
|
|
- it: "[gitea] connects to postgresql service with custom cluster domain"
|
|
set:
|
|
clusterDomain: my-special-cluster.local
|
|
template: templates/secret_inlineConfig.yaml
|
|
asserts:
|
|
- documentIndex: 0
|
|
matchRegex:
|
|
path: data.database
|
|
decodeBase64: true
|
|
pattern: HOST=gitea-unittests-postgresql.testing.svc.my-special-cluster.local:1234
|
|
- it: "[gitea] connects to configured database"
|
|
template: templates/secret_inlineConfig.yaml
|
|
asserts:
|
|
- documentIndex: 0
|
|
matchRegex:
|
|
path: data.database
|
|
decodeBase64: true
|
|
pattern: NAME=gitea-database
|
|
- documentIndex: 0
|
|
matchRegex:
|
|
path: data.database
|
|
decodeBase64: true
|
|
pattern: USER=gitea-username
|
|
- documentIndex: 0
|
|
matchRegex:
|
|
path: data.database
|
|
decodeBase64: true
|
|
pattern: PASSWD=gitea-password
|