Pulls the demo's images on the host and loads them into the kind node, since the node may not trust the TLS chain to git.ryuvia.com. Tags come from the chart's appVersion, 01-server.yaml and 00-postgres.yaml, so a bumped pin is picked up. A full run does the same first unless PRELOAD_IMAGES=false; PULL_ALWAYS=true re-pulls tags the host has. Images are saved for the host platform and loaded as an archive: `kind load docker-image` imports with --all-platforms, which fails for a multi-arch image under docker's containerd image store. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Terdut operator
Exposes terdut-server's configuration as Kubernetes objects, so teams can self-service it over gitops. See DESIGN.md for the design (read its revision section first: it is the current shape of credentials and the CRD catalog), and examples/demo for a working install.
CRDs
TerdutServer
A terdut-server install: Deployment, Service, database wiring (a DSN, or a Zalando
postgresClusterRef), and an operator key Secret it hands to the server so the operator can
authenticate. allowedTeams consents to TerdutTeams in other namespaces.
TerdutTeam
One team on a server, possibly in another namespace (serverRef, gated by that server's
allowedTeams). It carries the team's whole configuration:
displayNameand OIDC group bindingsescalation— the escalation ladderdeadmanSwitches— dead man's switches, by name (switches not listed are removed)
TerdutAlertSource
An alert-ingest integration on a team (teamRef). The server shows the webhook key once; it is
surfaced only through a generated Secret next to the object, never set explicitly.
Demo
examples/demo wires one of each together — two teams, each with an
escalation ladder, a dead man's switch and an alert source — plus a script that fires synthetic
Alertmanager webhooks at it, so you can watch incidents open, escalate and resolve without a real
Alertmanager.