36 lines
1.7 KiB
Python
36 lines
1.7 KiB
Python
#!/usr/bin/env python3
|
|||
|
|
import sys
|
||
|
|
from pathlib import Path
|
||
|
|
|
||
|
|
import yaml
|
||
|
|
|
||
|
|
chart_dir = Path(sys.argv[1])
|
||
|
|
rendered_path = Path(sys.argv[2])
|
||
|
|
chart = yaml.safe_load((chart_dir / "Chart.yaml").read_text())
|
||
|
|
values = yaml.safe_load((chart_dir / "values.yaml").read_text())
|
||
|
|
documents = [doc for doc in yaml.safe_load_all(rendered_path.read_text()) if doc]
|
||
|
|
by_kind = {(doc["kind"], doc["metadata"]["name"]): doc for doc in documents}
|
||
|
|
|
||
|
|
name = "matrix-alertmanager-receiver"
|
||
|
|
deployment = by_kind[("Deployment", name)]
|
||
|
|
service = by_kind[("Service", name)]
|
||
|
|
service_monitor = by_kind[("ServiceMonitor", name)]
|
||
|
|
config = by_kind[("ConfigMap", name)]["data"]["config.yaml"]
|
||
|
|
container = deployment["spec"]["template"]["spec"]["containers"][0]
|
||
|
|
service_port = service["spec"]["ports"][0]
|
||
|
|
app_config = yaml.safe_load(config)
|
||
|
|
|
||
|
|
assert container["image"] == f'{values["image"]["repository"]}:{chart["appVersion"]}'
|
||
|
|
assert deployment["spec"]["replicas"] == 1
|
||
|
|
assert deployment["spec"]["selector"]["matchLabels"] == service["spec"]["selector"]
|
||
|
|
assert deployment["spec"]["selector"]["matchLabels"]["app.kubernetes.io/name"] == chart["name"]
|
||
|
|
assert container["ports"][0]["containerPort"] == service_port["port"]
|
||
|
|
assert service_port["targetPort"] == container["ports"][0]["name"]
|
||
|
|
assert container["readinessProbe"]["httpGet"]["path"] == "/metrics"
|
||
|
|
assert container["livenessProbe"]["httpGet"]["path"] == "/metrics"
|
||
|
|
assert container["env"][0]["valueFrom"]["secretKeyRef"]["key"] == values["matrix"]["accessTokenSecret"]["key"]
|
||
|
|
assert "access-token: ${MATRIX_ACCESS_TOKEN}" in config
|
||
|
|
assert app_config["matrix"]["access-token"] == "${MATRIX_ACCESS_TOKEN}"
|
||
|
|
assert service_monitor["spec"]["endpoints"][0]["port"] == service_port["name"]
|
||
|
|
assert service_monitor["spec"]["endpoints"][0]["path"] == "/metrics"
|