From 0ee7ede648ca83a6b45829d042e2839d065f7d1c Mon Sep 17 00:00:00 2001 From: Niklas Ye Date: Sat, 3 Oct 2026 18:13:09 +0200 Subject: [PATCH] examples/demo: match v0.4.0's new spec.replicas default and bump terdut-server replicas: 1 and tag: v0.34.0 were both correct when written, but the CRD's own default moved to 2 in v0.4.0 (same release this demo is meant to show off), and v0.34.0 predates v0.36.0's advisory locks that make a second replica safe instead of racing the first. Left as-is, the demo would have been the one place in this repo demonstrating the exact unsafe combination the CRD's own doc comment warns against: more than one replica against an image that doesn't guard the sweeper/notifier/migration-runner singletons. replicas is now stated explicitly as 2 rather than dropped to pick up the default silently, matching every other field in this file's own habit of spelling out what it depends on. tag moves to v0.36.0 specifically -- the first version where the lock landed -- with the comment keeping v0.34.0's original reasoning (the service-account race fix) alongside the new one, since v0.36.0 still carries that fix forward. Co-authored-by: Claude --- examples/demo/01-server.yaml | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/examples/demo/01-server.yaml b/examples/demo/01-server.yaml index 901784d..e877a31 100644 --- a/examples/demo/01-server.yaml +++ b/examples/demo/01-server.yaml @@ -14,13 +14,21 @@ metadata: spec: image: repository: git.ryuvia.com/niklas/terdut-server - # v0.34.0: fixes callerMayManageServiceAccount so an instance-scoped - # service account can adopt/rotate a key on a team-scoped account it - # didn't just create in the same call -- without this, terdutteam-* - # can wedge permanently on exactly the crash-window race this demo - # hit live (niklas/terdut-operator#3). - tag: v0.34.0 - replicas: 1 + # v0.36.0 or newer is required now that replicas below is 2: that + # release put the sweeper, the notifier and the migration runner each + # behind a Postgres advisory lock, and gave incident creation its own + # conflict resolution, which is what makes a second replica safe + # instead of racing the first. (Still carries v0.34.0's fix too -- + # callerMayManageServiceAccount, so an instance-scoped service account + # can adopt/rotate a key on a team-scoped account it didn't just create + # in the same call -- without which terdutteam-* can wedge permanently + # on the crash-window race this demo hit live, niklas/terdut-operator#3.) + tag: v0.36.0 + # Matches this CRD's own spec.replicas default (v0.4.0) -- stated + # explicitly, like every other field in this file, rather than left to + # the default. RollingUpdate follows automatically; this operator does + # not expose Strategy as a spec field. + replicas: 2 networking: hostname: terdut-operator-demo.example servicePort: 8080