oncall-engine/helm/oncall/tests/postgres_env_test.yaml
Alexander Cherepanov d3247447ef
Fix usage of extra envs as map in Helm chart (#2146)
# What this PR does


1. Fixes setting extra envs using:
```yaml
env:
  proxy: http://example.com
  SOME_VAR: some-value
```
It had failed if postgresql setting enabled and in `job-migrate`

2. Fixes an issue if custom database and username set for internal
mariadb, `MYSQL_` envs did not use them
```yaml
mariadb:
  auth:
     database: grafana_oncall
     username: grafana_oncall
```

3. Added `imagePullSecrets: []` to values.yaml. It used in helm chart,
but does not present in the values.yaml
4. More unit tests

## Which issue(s) this PR fixes

## Checklist

- [x] Unit, integration, and e2e (if applicable) tests updated
- [ ] Documentation added (or `pr:no public docs` PR label added if not
required)
- [x] `CHANGELOG.md` updated (or `pr:no changelog` PR label added if not
required)

Co-authored-by: Ildar Iskhakov <Ildar.iskhakov@grafana.com>
2023-06-12 03:34:36 +00:00

140 lines
4 KiB
YAML

suite: test PostgreSQL envs for deployments
templates:
- engine/deployment.yaml
- engine/job-migrate.yaml
- celery/deployment-celery.yaml
release:
name: oncall
tests:
- it: postgresql.enabled=false -> external PostgreSQL default settings
set:
database.type: postgresql
postgresql.enabled: false
asserts:
- contains:
path: spec.template.spec.containers[0].env
content:
name: DATABASE_TYPE
value: postgresql
- contains:
path: spec.template.spec.containers[0].env
content:
name: DATABASE_NAME
value: oncall
- contains:
path: spec.template.spec.containers[0].env
content:
name: DATABASE_PORT
value: "5432"
- contains:
path: spec.template.spec.containers[0].env
content:
name: DATABASE_USER
value: postgres
- contains:
path: spec.template.spec.containers[0].env
content:
name: DATABASE_HOST
value: oncall-postgresql
- it: externalPostgresql -> should use external PostgreSQL custom settings
set:
database.type: postgresql
postgresql.enabled: false
externalPostgresql:
host: test-host
port: 5555
db_name: grafana_oncall
user: test_user
asserts:
- contains:
path: spec.template.spec.containers[0].env
content:
name: DATABASE_TYPE
value: postgresql
- contains:
path: spec.template.spec.containers[0].env
content:
name: DATABASE_NAME
value: grafana_oncall
- contains:
path: spec.template.spec.containers[0].env
content:
name: DATABASE_PORT
value: "5555"
- contains:
path: spec.template.spec.containers[0].env
content:
name: DATABASE_USER
value: test_user
- contains:
path: spec.template.spec.containers[0].env
content:
name: DATABASE_HOST
value: test-host
- it: postgresql.enabled=true -> internal PostgreSQL default settings
set:
database.type: postgresql
postgresql.enabled: true
asserts:
- contains:
path: spec.template.spec.containers[0].env
content:
name: DATABASE_TYPE
value: postgresql
- contains:
path: spec.template.spec.containers[0].env
content:
name: DATABASE_NAME
value: oncall
- contains:
path: spec.template.spec.containers[0].env
content:
name: DATABASE_PORT
value: "5432"
- contains:
path: spec.template.spec.containers[0].env
content:
name: DATABASE_USER
value: postgres
- contains:
path: spec.template.spec.containers[0].env
content:
name: DATABASE_HOST
value: oncall-postgresql
- it: postgresql.auth -> should use internal PostgreSQL custom settings
set:
database.type: postgresql
postgresql:
enabled: true
auth:
database: grafana_oncall
username: grafana_oncall
asserts:
- contains:
path: spec.template.spec.containers[0].env
content:
name: DATABASE_TYPE
value: postgresql
- contains:
path: spec.template.spec.containers[0].env
content:
name: DATABASE_NAME
value: grafana_oncall
- contains:
path: spec.template.spec.containers[0].env
content:
name: DATABASE_PORT
value: "5432"
- contains:
path: spec.template.spec.containers[0].env
content:
name: DATABASE_USER
value: grafana_oncall
- contains:
path: spec.template.spec.containers[0].env
content:
name: DATABASE_HOST
value: oncall-postgresql