Add helm tests for rabbitmq and redis (#2165)
# What this PR does ## Which issue(s) this PR fixes ## Checklist - [ ] Unit, integration, and e2e (if applicable) tests updated - [ ] Documentation added (or `pr:no public docs` PR label added if not required) - [ ] `CHANGELOG.md` updated (or `pr:no changelog` PR label added if not required)
This commit is contained in:
parent
fd9904cd2e
commit
30b8401f03
3 changed files with 393 additions and 0 deletions
|
|
@ -23,6 +23,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||
- Fix receive channel filter in alert groups API [#2140](https://github.com/grafana/oncall/pull/2140)
|
||||
- Helm chart: Fix usage of `env` settings as map;
|
||||
Fix usage of `mariadb.auth.database` and `mariadb.auth.username` for MYSQL env variables by @alexintech [#2146](https://github.com/grafana/oncall/pull/2146)
|
||||
|
||||
### Added
|
||||
|
||||
- Helm chart: Add unittests for rabbitmq and redis [2165](https://github.com/grafana/oncall/pull/2165)
|
||||
|
||||
## v1.2.41 (2023-06-08)
|
||||
|
||||
|
|
|
|||
254
helm/oncall/tests/rabbitmq_env_test.yaml
Normal file
254
helm/oncall/tests/rabbitmq_env_test.yaml
Normal file
|
|
@ -0,0 +1,254 @@
|
|||
suite: test Rabbitmq configs for deployments
|
||||
templates:
|
||||
- engine/deployment.yaml
|
||||
- engine/job-migrate.yaml
|
||||
- celery/deployment-celery.yaml
|
||||
- secrets.yaml
|
||||
release:
|
||||
name: oncall
|
||||
tests:
|
||||
- it: rabbitmq.enabled=true -> should use default values from rabbitmq subchart
|
||||
templates:
|
||||
- engine/deployment.yaml
|
||||
- engine/job-migrate.yaml
|
||||
- celery/deployment-celery.yaml
|
||||
set:
|
||||
broker.type: rabbitmq
|
||||
rabbitmq.enabled: true
|
||||
asserts:
|
||||
- contains:
|
||||
path: spec.template.spec.containers[0].env
|
||||
content:
|
||||
name: BROKER_TYPE
|
||||
value: rabbitmq
|
||||
- contains:
|
||||
path: spec.template.spec.containers[0].env
|
||||
content:
|
||||
name: RABBITMQ_USERNAME
|
||||
value: user
|
||||
- contains:
|
||||
path: spec.template.spec.containers[0].env
|
||||
content:
|
||||
name: BROKER_TYPE
|
||||
value: rabbitmq
|
||||
- contains:
|
||||
path: spec.template.spec.containers[0].env
|
||||
content:
|
||||
name: RABBITMQ_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: rabbitmq-password
|
||||
name: oncall-rabbitmq
|
||||
- contains:
|
||||
path: spec.template.spec.containers[0].env
|
||||
content:
|
||||
name: RABBITMQ_HOST
|
||||
value: oncall-rabbitmq
|
||||
- contains:
|
||||
path: spec.template.spec.containers[0].env
|
||||
content:
|
||||
name: RABBITMQ_PORT
|
||||
value: "5672"
|
||||
- contains:
|
||||
path: spec.template.spec.containers[0].env
|
||||
content:
|
||||
name: RABBITMQ_PROTOCOL
|
||||
value: amqp
|
||||
- contains:
|
||||
path: spec.template.spec.containers[0].env
|
||||
content:
|
||||
name: RABBITMQ_VHOST
|
||||
value: ""
|
||||
|
||||
- it: rabbitmq.enabled=true -> should use custom auth values from rabbitmq subchart
|
||||
templates:
|
||||
- engine/deployment.yaml
|
||||
- engine/job-migrate.yaml
|
||||
- celery/deployment-celery.yaml
|
||||
set:
|
||||
broker.type: rabbitmq
|
||||
rabbitmq.enabled: true
|
||||
rabbitmq:
|
||||
auth:
|
||||
username: test_user
|
||||
password: test_password
|
||||
asserts:
|
||||
- contains:
|
||||
path: spec.template.spec.containers[0].env
|
||||
content:
|
||||
name: BROKER_TYPE
|
||||
value: rabbitmq
|
||||
- contains:
|
||||
path: spec.template.spec.containers[0].env
|
||||
content:
|
||||
name: RABBITMQ_USERNAME
|
||||
value: user
|
||||
- contains:
|
||||
path: spec.template.spec.containers[0].env
|
||||
content:
|
||||
name: RABBITMQ_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: rabbitmq-password
|
||||
name: oncall-rabbitmq
|
||||
- contains:
|
||||
path: spec.template.spec.containers[0].env
|
||||
content:
|
||||
name: RABBITMQ_HOST
|
||||
value: oncall-rabbitmq
|
||||
- contains:
|
||||
path: spec.template.spec.containers[0].env
|
||||
content:
|
||||
name: RABBITMQ_PORT
|
||||
value: "5672"
|
||||
- contains:
|
||||
path: spec.template.spec.containers[0].env
|
||||
content:
|
||||
name: RABBITMQ_PROTOCOL
|
||||
value: amqp
|
||||
- contains:
|
||||
path: spec.template.spec.containers[0].env
|
||||
content:
|
||||
name: RABBITMQ_VHOST
|
||||
value: ""
|
||||
|
||||
- it: rabbitmq.enabled=false -> should fail if not externalRabbitmq.existingSecret or not externalRabbitmq.password
|
||||
templates:
|
||||
- engine/deployment.yaml
|
||||
- engine/job-migrate.yaml
|
||||
- celery/deployment-celery.yaml
|
||||
set:
|
||||
broker.type: rabbitmq
|
||||
rabbitmq.enabled: false
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: externalRabbitmq.password is required if not rabbitmq.enabled and not externalRabbitmq.existingSecret
|
||||
template: secrets.yaml
|
||||
|
||||
- it: rabbitmq.enabled=false -> should use internal custom values
|
||||
templates:
|
||||
- engine/deployment.yaml
|
||||
- engine/job-migrate.yaml
|
||||
- celery/deployment-celery.yaml
|
||||
set:
|
||||
broker.type: rabbitmq
|
||||
rabbitmq.enabled: false
|
||||
externalRabbitmq:
|
||||
host: custom-host
|
||||
port: custom-port
|
||||
user: custom-user
|
||||
password: custom-password
|
||||
protocol: custom-protocol
|
||||
vhost: custom-vhost
|
||||
asserts:
|
||||
- contains:
|
||||
path: spec.template.spec.containers[0].env
|
||||
content:
|
||||
name: BROKER_TYPE
|
||||
value: rabbitmq
|
||||
- contains:
|
||||
path: spec.template.spec.containers[0].env
|
||||
content:
|
||||
name: RABBITMQ_USERNAME
|
||||
value: custom-user
|
||||
- contains:
|
||||
path: spec.template.spec.containers[0].env
|
||||
content:
|
||||
name: RABBITMQ_HOST
|
||||
value: custom-host
|
||||
- contains:
|
||||
path: spec.template.spec.containers[0].env
|
||||
content:
|
||||
name: RABBITMQ_PORT
|
||||
value: custom-port
|
||||
- contains:
|
||||
path: spec.template.spec.containers[0].env
|
||||
content:
|
||||
name: RABBITMQ_PROTOCOL
|
||||
value: custom-protocol
|
||||
- contains:
|
||||
path: spec.template.spec.containers[0].env
|
||||
content:
|
||||
name: RABBITMQ_VHOST
|
||||
value: custom-vhost
|
||||
- contains:
|
||||
path: spec.template.spec.containers[0].env
|
||||
content:
|
||||
name: RABBITMQ_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: password
|
||||
name: oncall-rabbitmq-external
|
||||
- containsDocument:
|
||||
kind: Secret
|
||||
apiVersion: v1
|
||||
name: oncall-rabbitmq-external
|
||||
template: secrets.yaml
|
||||
- equal:
|
||||
path: data.rabbitmq-password
|
||||
value: custom-password
|
||||
decodeBase64: true
|
||||
documentIndex: 1
|
||||
template: secrets.yaml
|
||||
|
||||
- it: rabbitmq.enabled=false -> should use default internal values and auth from existing secret
|
||||
templates:
|
||||
- engine/deployment.yaml
|
||||
- engine/job-migrate.yaml
|
||||
- celery/deployment-celery.yaml
|
||||
set:
|
||||
broker.type: rabbitmq
|
||||
rabbitmq.enabled: false
|
||||
externalRabbitmq:
|
||||
existingSecret: existing-secret
|
||||
passwordKey: password-key
|
||||
asserts:
|
||||
- contains:
|
||||
path: spec.template.spec.containers[0].env
|
||||
content:
|
||||
name: RABBITMQ_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: existing-secret
|
||||
key: password-key
|
||||
- contains:
|
||||
path: spec.template.spec.containers[0].env
|
||||
content:
|
||||
name: BROKER_TYPE
|
||||
value: rabbitmq
|
||||
- contains:
|
||||
path: spec.template.spec.containers[0].env
|
||||
content:
|
||||
name: RABBITMQ_USERNAME
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: username
|
||||
name: existing-secret
|
||||
- contains:
|
||||
path: spec.template.spec.containers[0].env
|
||||
content:
|
||||
name: RABBITMQ_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: password-key
|
||||
name: existing-secret
|
||||
- contains:
|
||||
path: spec.template.spec.containers[0].env
|
||||
content:
|
||||
name: RABBITMQ_HOST
|
||||
value: oncall-rabbitmq
|
||||
- contains:
|
||||
path: spec.template.spec.containers[0].env
|
||||
content:
|
||||
name: RABBITMQ_PORT
|
||||
value: "5672"
|
||||
- contains:
|
||||
path: spec.template.spec.containers[0].env
|
||||
content:
|
||||
name: RABBITMQ_PROTOCOL
|
||||
value: amqp
|
||||
- contains:
|
||||
path: spec.template.spec.containers[0].env
|
||||
content:
|
||||
name: RABBITMQ_VHOST
|
||||
value: ""
|
||||
135
helm/oncall/tests/redis_env_test.yaml
Normal file
135
helm/oncall/tests/redis_env_test.yaml
Normal file
|
|
@ -0,0 +1,135 @@
|
|||
suite: test Redis configs for deployments
|
||||
templates:
|
||||
- engine/deployment.yaml
|
||||
- engine/job-migrate.yaml
|
||||
- celery/deployment-celery.yaml
|
||||
- secrets.yaml
|
||||
release:
|
||||
name: oncall
|
||||
tests:
|
||||
- it: redis.enabled=true -> should use default values from redis subchart
|
||||
templates:
|
||||
- engine/deployment.yaml
|
||||
- engine/job-migrate.yaml
|
||||
- celery/deployment-celery.yaml
|
||||
set:
|
||||
broker.type: redis
|
||||
redis.enabled: true
|
||||
asserts:
|
||||
- contains:
|
||||
path: spec.template.spec.containers[0].env
|
||||
content:
|
||||
name: BROKER_TYPE
|
||||
value: redis
|
||||
- contains:
|
||||
path: spec.template.spec.containers[0].env
|
||||
content:
|
||||
name: REDIS_HOST
|
||||
value: oncall-redis-master
|
||||
- contains:
|
||||
path: spec.template.spec.containers[0].env
|
||||
content:
|
||||
name: REDIS_PORT
|
||||
value: "6379"
|
||||
- contains:
|
||||
path: spec.template.spec.containers[0].env
|
||||
content:
|
||||
name: REDIS_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: redis-password
|
||||
name: oncall-redis
|
||||
|
||||
- it: redis.enabled=true -> should use custom auth values from redis subchart
|
||||
templates:
|
||||
- engine/deployment.yaml
|
||||
- engine/job-migrate.yaml
|
||||
- celery/deployment-celery.yaml
|
||||
set:
|
||||
broker.type: redis
|
||||
redis.enabled: true
|
||||
rabbitmq:
|
||||
auth:
|
||||
username: test_user
|
||||
password: test_password
|
||||
asserts:
|
||||
- contains:
|
||||
path: spec.template.spec.containers[0].env
|
||||
content:
|
||||
name: BROKER_TYPE
|
||||
value: redis
|
||||
- contains:
|
||||
path: spec.template.spec.containers[0].env
|
||||
content:
|
||||
name: REDIS_HOST
|
||||
value: oncall-redis-master
|
||||
- contains:
|
||||
path: spec.template.spec.containers[0].env
|
||||
content:
|
||||
name: REDIS_PORT
|
||||
value: "6379"
|
||||
- contains:
|
||||
path: spec.template.spec.containers[0].env
|
||||
content:
|
||||
name: REDIS_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: redis-password
|
||||
name: oncall-redis
|
||||
|
||||
- it: redis.enabled=false -> should fail if not externalRabbitmq.existingSecret or not externalRabbitmq.password
|
||||
templates:
|
||||
- engine/deployment.yaml
|
||||
- engine/job-migrate.yaml
|
||||
- celery/deployment-celery.yaml
|
||||
set:
|
||||
broker.type: redis
|
||||
rabbitmq.enabled: false
|
||||
redis.enabled: false
|
||||
asserts:
|
||||
- failedTemplate:
|
||||
errorMessage: externalRedis.password is required if not redis.enabled
|
||||
template: secrets.yaml
|
||||
|
||||
- it: redis.enabled=false -> should use internal custom values
|
||||
templates:
|
||||
- engine/deployment.yaml
|
||||
- engine/job-migrate.yaml
|
||||
- celery/deployment-celery.yaml
|
||||
set:
|
||||
broker.type: redis
|
||||
rabbitmq.enabled: false
|
||||
redis.enabled: false
|
||||
externalRedis:
|
||||
host: custom-host
|
||||
password: custom-password
|
||||
asserts:
|
||||
- contains:
|
||||
path: spec.template.spec.containers[0].env
|
||||
content:
|
||||
name: BROKER_TYPE
|
||||
value: redis
|
||||
- contains:
|
||||
path: spec.template.spec.containers[0].env
|
||||
content:
|
||||
name: REDIS_HOST
|
||||
value: custom-host
|
||||
- contains:
|
||||
path: spec.template.spec.containers[0].env
|
||||
content:
|
||||
name: REDIS_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: redis-password
|
||||
name: oncall-redis-external
|
||||
- containsDocument:
|
||||
kind: Secret
|
||||
apiVersion: v1
|
||||
name: oncall-redis-external
|
||||
template: secrets.yaml
|
||||
- equal:
|
||||
path: data.redis-password
|
||||
value: custom-password
|
||||
decodeBase64: true
|
||||
documentIndex: 1
|
||||
template: secrets.yaml
|
||||
Loading…
Add table
Reference in a new issue