Niklas Ye b9ee5a8722
CI / chart (push) Successful in 1s
CI / security (push) Successful in 1m2s
CI / test (push) Successful in 2m8s
Add --load-images to the kind demo
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>
2026-10-26 12:25:46 +01:00
2026-10-09 22:05:15 +02:00
2026-10-09 22:05:15 +02:00

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:

  • displayName and OIDC group bindings
  • escalation — the escalation ladder
  • deadmanSwitches — 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.

S
Description
No description provided
Readme 1.7 MiB
Languages
Go 89.6%
Makefile 8.5%
Go Template 1.1%
Dockerfile 0.8%