From aa1516b9ed6d169896a364ec001daa6d0c0d37e7 Mon Sep 17 00:00:00 2001 From: "Antoine R. Dumont (@ardumont)" <ardumont@softwareheritage.org> Date: Tue, 23 May 2023 17:05:22 +0200 Subject: [PATCH] Add basic tests on checker-deposit chart Refs. swh/infra/sysadm-environment#4886 --- .../checker-deposit/configmap-utils.yaml | 30 +++++++++++++++++++ swh/templates/checker-deposit/configmap.yaml | 29 ------------------ swh/tests/checker_deposit_configmap_test.yaml | 24 +++++++++++++++ .../checker_deposit_configmap_utils_test.yaml | 24 +++++++++++++++ swh/tests/checker_deposit_global_test.yaml | 13 ++++++++ swh/tests/values/checker-deposit.yaml | 11 +++++++ 6 files changed, 102 insertions(+), 29 deletions(-) create mode 100644 swh/templates/checker-deposit/configmap-utils.yaml create mode 100644 swh/tests/checker_deposit_configmap_test.yaml create mode 100644 swh/tests/checker_deposit_configmap_utils_test.yaml create mode 100644 swh/tests/checker_deposit_global_test.yaml create mode 100644 swh/tests/values/checker-deposit.yaml diff --git a/swh/templates/checker-deposit/configmap-utils.yaml b/swh/templates/checker-deposit/configmap-utils.yaml new file mode 100644 index 000000000..13f81b867 --- /dev/null +++ b/swh/templates/checker-deposit/configmap-utils.yaml @@ -0,0 +1,30 @@ +{{ if .Values.checker_deposit.enabled -}} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: checker-deposit-utils + namespace: {{ $.Values.namespace }} +data: + pre-stop-idempotent.sh: | + #!/bin/bash + + # pre-stop hook can be triggered multiple times but we want it to be applied only + # once so container can warm-shutdown properly. + + # When celery receives multiple times the sigterm signal, this ends up doing an + # immediate shutdown which prevents long-standing tasks to finish properly. + + set -ex + + WITNESS_FILE=/tmp/already-stopped + + # Seed awk with the number of nanoseconds since epoch + # and have it generate a number between 0 and 1 + sleep $(date +%s%N | awk '{srand($1); print rand()}') + + if [ ! -e $WITNESS_FILE ]; then + touch $WITNESS_FILE + kill 1 + fi +{{ end }} diff --git a/swh/templates/checker-deposit/configmap.yaml b/swh/templates/checker-deposit/configmap.yaml index eed4b347d..119617891 100644 --- a/swh/templates/checker-deposit/configmap.yaml +++ b/swh/templates/checker-deposit/configmap.yaml @@ -1,33 +1,4 @@ {{ if .Values.checker_deposit.enabled -}} ---- -apiVersion: v1 -kind: ConfigMap -metadata: - name: checker-deposit-utils - namespace: {{ $.Values.namespace }} -data: - pre-stop-idempotent.sh: | - #!/bin/bash - - # pre-stop hook can be triggered multiple times but we want it to be applied only - # once so container can warm-shutdown properly. - - # When celery receives multiple times the sigterm signal, this ends up doing an - # immediate shutdown which prevents long-standing tasks to finish properly. - - set -ex - - WITNESS_FILE=/tmp/already-stopped - - # Seed awk with the number of nanoseconds since epoch - # and have it generate a number between 0 and 1 - sleep $(date +%s%N | awk '{srand($1); print rand()}') - - if [ ! -e $WITNESS_FILE ]; then - touch $WITNESS_FILE - kill 1 - fi - --- apiVersion: v1 kind: ConfigMap diff --git a/swh/tests/checker_deposit_configmap_test.yaml b/swh/tests/checker_deposit_configmap_test.yaml new file mode 100644 index 000000000..6daf4dddf --- /dev/null +++ b/swh/tests/checker_deposit_configmap_test.yaml @@ -0,0 +1,24 @@ +suite: test checker_deposit configmap deployment +templates: + - checker-deposit/configmap.yaml +tests: + - it: checker-deposit configmap should be deployed when activated + values: + - values/checker-deposit.yaml + asserts: + - containsDocument: + kind: ConfigMap + apiVersion: v1 + name: checker-deposit-template + namespace: swh + - it: checker-deposit configmap namespace should be overridable + values: + - values/checker-deposit.yaml + set: + namespace: mynamespace + asserts: + - equal: + path: metadata.namespace + value: mynamespace + - hasDocuments: + count: 1 diff --git a/swh/tests/checker_deposit_configmap_utils_test.yaml b/swh/tests/checker_deposit_configmap_utils_test.yaml new file mode 100644 index 000000000..96d927ea9 --- /dev/null +++ b/swh/tests/checker_deposit_configmap_utils_test.yaml @@ -0,0 +1,24 @@ +suite: test checker_deposit configmap utils deployment +templates: + - checker-deposit/configmap-utils.yaml +tests: + - it: checker-deposit configmap utils should be deployed when activated + values: + - values/checker-deposit.yaml + asserts: + - containsDocument: + kind: ConfigMap + apiVersion: v1 + name: checker-deposit-utils + namespace: swh + - it: checker deposit configmap utils namespace should be overridable + values: + - values/checker-deposit.yaml + set: + namespace: mynamespace + asserts: + - equal: + path: metadata.namespace + value: mynamespace + - hasDocuments: + count: 1 diff --git a/swh/tests/checker_deposit_global_test.yaml b/swh/tests/checker_deposit_global_test.yaml new file mode 100644 index 000000000..2e3b3f835 --- /dev/null +++ b/swh/tests/checker_deposit_global_test.yaml @@ -0,0 +1,13 @@ +suite: test global checker deposit deployment +templates: + - checker-deposit/deployment.yaml + - checker-deposit/configmap.yaml + - checker-deposit/configmap-utils.yaml + - checker-deposit/keda-autoscaling.yaml +tests: + - it: Checker deposit is not deployed by default + values: + - ../values.yaml + asserts: + - hasDocuments: + count: 0 diff --git a/swh/tests/values/checker-deposit.yaml b/swh/tests/values/checker-deposit.yaml new file mode 100644 index 000000000..a184cad2f --- /dev/null +++ b/swh/tests/values/checker-deposit.yaml @@ -0,0 +1,11 @@ +checker_deposit: + enabled: true + storage: + host: storage.example.org + port: 5002 + deposit: + host: deposit.example.org + amqp: + host: scheduler.example.org + autoScaling: + maxReplicaCount: 2 -- GitLab