Bump bind-operator to v0.2.3 (deterministic render) #255

Merged
benvin merged 1 commits from benvin/bind-operator-0.2.3 into main 2026-07-12 23:22:04 +10:00
Owner

Why

v0.2.2's config-hash rolling restart exposed a latent non-determinism: client.List returns cache-ordered results, so the resolver's forward zones reshuffled every reconcile, flipping the config hash and rolling bind-resolvers-2 endlessly. v0.2.3 (bind-operator #11) sorts every rendered list so named.conf is byte-identical across reconciles and the hash is stable.

Changes

  • Bump the operator image (bind-system/deployment.yaml) and the pulled CRD bundle URL (bind-system/kustomization.yaml) to v0.2.3.
  • Bump the bind-tsig-api image (bind-internal/tsig-api/tsig-api.yaml) to v0.2.3.

CRDs are unchanged from v0.2.2 (controller-only change), so the generated kubeconform schemas need no update.

Validation

  • bind-system renders with the v0.2.3 CRD bundle; bind-internal passes kubeconform (56/56); pre-commit clean.

Deploy note

On deploy the deterministic operator stops churning the ConfigMap; the config hash stabilizes and the stuck resolver rolling update completes, leaving all three pods Ready on one revision.

## Why v0.2.2's config-hash rolling restart exposed a latent non-determinism: `client.List` returns cache-ordered results, so the resolver's forward zones reshuffled every reconcile, flipping the config hash and rolling `bind-resolvers-2` endlessly. v0.2.3 (bind-operator #11) sorts every rendered list so `named.conf` is byte-identical across reconciles and the hash is stable. ## Changes - Bump the operator image (`bind-system/deployment.yaml`) and the pulled CRD bundle URL (`bind-system/kustomization.yaml`) to `v0.2.3`. - Bump the `bind-tsig-api` image (`bind-internal/tsig-api/tsig-api.yaml`) to `v0.2.3`. CRDs are unchanged from v0.2.2 (controller-only change), so the generated kubeconform schemas need no update. ## Validation - `bind-system` renders with the v0.2.3 CRD bundle; `bind-internal` passes `kubeconform` (56/56); pre-commit clean. ## Deploy note On deploy the deterministic operator stops churning the ConfigMap; the config hash stabilizes and the stuck resolver rolling update completes, leaving all three pods Ready on one revision.
unkinben added 1 commit 2026-07-12 23:10:34 +10:00
Bump bind-operator to v0.2.3 (deterministic render)
ci/woodpecker/pr/pre-commit Pipeline was successful
ci/woodpecker/pr/kubeconform Pipeline was successful
71eb2b5df1
v0.2.3 sorts all render inputs so named.conf is byte-identical across
reconciles. Without it the config-hash (v0.2.2) flips every reconcile as
cache-ordered forward zones reshuffle, rolling the resolver StatefulSet
forever.

- Bump the operator image and the pulled CRD bundle to v0.2.3.
- Bump the bind-tsig-api image to v0.2.3.

CRDs are unchanged from v0.2.2, so the generated schemas need no update.
benvin merged commit 8a9cdf35fd into main 2026-07-12 23:22:04 +10:00
benvin deleted branch benvin/bind-operator-0.2.3 2026-07-12 23:22:04 +10:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: unkin/argocd-apps#255