Files
quay-kubernetes/chart/test.sh
T
feedc0de 3335a6956f
Validate, publish and promote Quay chart / chart (push) Failing after 21s
Validate and deploy Quay / Downtime deployment (push) Successful in 19s
Validate and deploy Quay / Validate manifest (push) Successful in 11s
Publish reusable Quay chart with optional PostgreSQL and Valkey
2026-10-20 08:54:24 +02:00

37 lines
1.5 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
chart_dir=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/quay" && pwd)
helm lint "$chart_dir" --strict
python3 - "$chart_dir" <<'PY'
import subprocess
import sys
import yaml
chart = sys.argv[1]
def render(*args):
output = subprocess.check_output(
['helm', 'template', 'quay', chart, '--namespace', 'default', *args], text=True
)
return {(doc['kind'], doc['metadata']['name']): doc for doc in yaml.safe_load_all(output) if doc}
active = render()
assert {('Deployment', 'quay'), ('Deployment', 'quay-repomirror'),
('Service', 'quay')} <= active.keys()
registry = active['Deployment', 'quay']
mirror = active['Deployment', 'quay-repomirror']
assert registry['spec']['selector']['matchLabels'] == {'app': 'quay'}
assert mirror['spec']['selector']['matchLabels'] == {'app': 'quay-repomirror'}
assert registry['spec']['strategy']['type'] == mirror['spec']['strategy']['type'] == 'Recreate'
assert registry['spec']['template']['spec']['containers'][0]['image'] == mirror['spec']['template']['spec']['containers'][0]['image']
assert registry['spec']['template']['spec']['volumes'][0]['secret']['secretName'] == 'quay-config'
assert active['Service', 'quay']['spec']['selector'] == {'app': 'quay'}
staged = render('--set', 'quay.enabled=false', '--set', 'postgresql.enabled=true')
assert ('StatefulSet', 'quay-postgresql') in staged
assert not any(name == 'quay' or name == 'quay-repomirror' for kind, name in staged)
assert ('Service', 'quay-postgresql') in staged
PY