github rajsinghtech/garage-operator v0.6.7

latest releases: v0.6.28, v0.6.27, v0.6.26...
one month ago

Bug fixes

  • Cross-region gateway tombstone churn (#220). The gateway tombstone reaper is now scoped to the local zone, so one region no longer deletes another region's live gateway layout roles. Previously each region's reaper classified the other region's gateway roles as stale and removed them while the per-node controller kept re-adding them — endless layout churn that left the gateway key_table unsynced and S3 auth failing with 403.
  • Gateway identity lost on upgrade (#221). Gateway nodes now keep a persistent metadata PVC and the operator adopts the existing claim instead of recreating it, so a gateway's Garage node identity survives operator/chart upgrades — no more orphaned layout roles.
  • Cross-region per-ordinal dial parser (#218). The remote-gateway ordinal parser no longer hardcodes the garage-gateway- prefix and Atois the pod suffix, so per-ordinal dialing works for arbitrarily named gateway nodes.

Hardening (v0.6.7 backlog, #219)

  • A status-update conflict (HTTP 409) no longer clobbers the reconcile's computed Phase / Health / conditions — status is now assembled inside the retry closure.
  • Buckets revoke key grants that were dropped from spec.keyPermissions instead of leaving them dangling.
  • Storage bootstrap admin calls get per-call 5s timeouts (parity with the gateway path), so one unreachable node can't stall the reconcile.
  • An auto scale-down that would drop live nodes below replication.factor is now refused with a StorageScaleDownBlocked condition rather than orphaning the layout role.
  • Factor migration tracks per-phase deadlines, so a slow phase can't silently consume the next phase's timeout budget.
  • 503 responses are classified and fast-requeued instead of treated as terminal errors.
  • Single-replica gateway tiers get a drainable PodDisruptionBudget (maxUnavailable=1).
  • New GatewayLayoutDegraded condition surfaces operator-owned gateway nodes that are missing from the layout.
  • Bucket-side key-permission reconcile skips re-issuing unchanged grants (less CRDT churn).

Docs

  • README validated against the shipped code — gateway topology, factor migration, and health conditions (#217).

Upgrade notes

  • If you set layoutManagement.autoApply: false to work around the cross-region churn (#220), you can re-enable it once all regions are on v0.6.7 — the reaper no longer fights across regions.
  • The operator upgrade is non-disruptive: Garage pods and node identities are unaffected.

Don't miss a new garage-operator release

NewReleases is sending notifications on new releases.