37 lines
1.5 KiB
Bash
Executable File
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
|