oncall-engine/helm/oncall/tests/postgres_password_env_test.yaml
Joey Orlando b26706e7e4
configure yamllint pre-commit step (#2728)
# What this PR does

Add [`yamllint`](https://github.com/adrienverge/yamllint) to
`pre-commit` configuration + fix pre-existing errors

## Checklist

- [x] Unit, integration, and e2e (if applicable) tests updated
- [x] 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)
2023-08-03 02:35:08 -04:00

117 lines
3.4 KiB
YAML

suite: test PostgreSQL password envs for deployments
release:
name: oncall
templates:
- engine/deployment.yaml
- engine/job-migrate.yaml
- celery/deployment-celery.yaml
- secrets.yaml
tests:
- it: secrets -> should fail if externalPostgresql.password not set
set:
database.type: postgresql
postgresql.enabled: false
externalPostgresql.host: some-postgres-host
asserts:
- failedTemplate:
errorMessage: >-
externalPostgresql.password is required if not postgresql.enabled and not externalPostgresql.existingSecret
template: secrets.yaml
- it: externalPostgresql.password -> should create a Secret -postgresql-external
templates:
- engine/deployment.yaml
- engine/job-migrate.yaml
- celery/deployment-celery.yaml
set:
database.type: postgresql
postgresql.enabled: false
externalPostgresql:
password: abcd123
host: some-postgres-host
asserts:
- contains:
path: spec.template.spec.containers[0].env
content:
name: DATABASE_PASSWORD
valueFrom:
secretKeyRef:
name: oncall-postgresql-external
key: postgres-password
- containsDocument:
kind: Secret
apiVersion: v1
name: oncall-postgresql-external
template: secrets.yaml
- equal:
path: data.postgres-password
value: abcd123
decodeBase64: true
documentIndex: 1
template: secrets.yaml
- it: externalPostgresql.existingSecret -> should use existing secret
templates:
- engine/deployment.yaml
- engine/job-migrate.yaml
- celery/deployment-celery.yaml
set:
database.type: postgresql
postgresql.enabled: false
externalPostgresql:
existingSecret: some-postgres-secret
host: some-postgres-host
passwordKey: postgres-password-key
asserts:
- contains:
path: spec.template.spec.containers[0].env
content:
name: DATABASE_PASSWORD
valueFrom:
secretKeyRef:
name: some-postgres-secret
key: postgres-password-key
- it: externalPostgresql.passwordKey -> should be used for existing secret
templates:
- engine/deployment.yaml
- engine/job-migrate.yaml
- celery/deployment-celery.yaml
set:
database.type: postgresql
postgresql.enabled: false
externalPostgresql:
host: some-postgres-host
existingSecret: some-postgres-secret
passwordKey: postgres.key
asserts:
- contains:
path: spec.template.spec.containers[0].env
content:
name: DATABASE_PASSWORD
valueFrom:
secretKeyRef:
name: some-postgres-secret
key: postgres.key
- it: postgresql.auth -> should use internal Postgresql custom settings
templates:
- engine/deployment.yaml
- engine/job-migrate.yaml
- celery/deployment-celery.yaml
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_PASSWORD
valueFrom:
secretKeyRef:
name: oncall-postgresql
key: password