Authenticate with a seeded operator key; fold escalation and switches into TerdutTeam #12
Reference in New Issue
Block a user
Delete Branch "operator-key-and-team-config"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What
Redesigns how the operator authenticates to terdut-server and how its CRDs are shaped. Depends on terdut-server#43 (the server's
TERDUT_OPERATOR_KEYandexternal_idsupport): merge that first.Credentials. The
TerdutServercontroller generates<name>-operator-keyin the server's own namespace (owned by it) and hands it to the pods asTERDUT_OPERATOR_KEY; the server creates its instance-scoped account from it at every start. A replaced Secret rolls the pods. Gone: the bootstrap handshake, the checkpoint Secret, per-team service accounts and credentials Secrets,BootstrapStateLost,credentials.deletionPolicy.CRDs.
TerdutServer,TerdutTeam,TerdutAlertSource.TerdutEscalationRuleandTerdutDeadmanSwitchbecomespec.escalationandspec.deadmanSwitches[]on the team (switches matched by name, extras removed). Team invites are removed.Team identity. A team is created under
<namespace>/<name>(external_id), so a retry, a lost status or a deleted team heal by repeating the same call, and a display name owned by another team isTeamNameTakeninstead of an adoption. The server resolves escalation usernames (UnknownUsercondition). OIDC claim names andtrustEmailare spec fields.Fixes. Query values are URL-escaped; every delete treats 404 as success; deleting a team no longer depends on
allowedTeamsconsent; a switch or integration deleted on the server is recreated; unnamed switches take the CR's name.Cleanup. Scaffold e2e test,
AGENTS.md, devcontainer, unusedconfig/pieces andClient.Version()removed. DESIGN.md, README, ROADMAP and the demo are rewritten for the new design. CI image bumped to Go 1.26.9 andgolang.org/x/netto v0.60.0 (govulncheck).Breaking
CRD changes (two kinds removed,
TerdutTeamandTerdutServerspecs changed) and a server requirement (TERDUT_OPERATOR_KEY), so existing installs must be recreated. Secret RBAC stays cluster-wide (DESIGN.md §9, #8).Checked
make fmt lint test helm-lintpasses (47 envtest specs against a fake server).make security-go security-secretsclean on Go 1.26.9.examples/demo/run-demo.sh(#7). Please run the demo before releasing.Closes #1 and #3 (already closed as obsolete). Related: #7, #8, #9, #10, #11.
https://claude.ai/code/session_016mBLURvJoMuUEr9cB2RpUN