Bug Fixes
- keep survivor pods during member removal (#471) (#479) in #479 by @rajsinghtech
- update module sigs.k8s.io/gateway-api to v1.6.3 (#487) in #487 by @renovate[bot]
- requeue right after a factor migration fails (#488) in #488 by @rajsinghtech
- surface dynamic Admin token blocker as a GarageCluster condition (#476) in #476 by @florissmit10
- ignore GarageCluster status-only updates in the primary watch (#482) in #482 by @rajsinghtech
- populate resync queue and block error status from Garage (#477) in #477 by @florissmit10
- re-claim own staged import for down remote nodes (#468) (#478) in #478 by @rajsinghtech
- keep claiming own staged stale-node removal when a layout Apply is retried (#467) in #467 by @rajsinghtech
- finish Auto→Manual ejection after a partial hand-off (#466) in #466 by @rajsinghtech
Documentation
- note real Garage reports alias conflicts as 400, not 409 (#492) in #492 by @rajsinghtech
- full redundancy status and FullyReplicated condition (#474) (#485) in #485 by @rajsinghtech (design doc only; not implemented in this release)
- document --enable-ingress/--enable-gateway-api for raw-manifest installs (#464) in #464 by @rajsinghtech
Miscellaneous
- update azure/setup-kubectl digest to bda439f (#489) in #489 by @renovate[bot]
- update docker.io/library/golang:1.27 docker digest to 162be52 (#480) in #480 by @renovate[bot]
- update docker.io/library/golang:1.27 docker digest to 1e93e00 (#473) in #473 by @renovate[bot]
Release
- v0.8.2 by @rajsinghtech
Testing
- upgrade lane from the released v0.8.1 chart to the PR build (#484) in #484 by @rajsinghtech
- fault sweeps for remote connect and role import (#483) in #483 by @rajsinghtech
- run the Garage admin client against real Garage v2.0.0, v2.4.1 and main-v2 (#481) in #481 by @rajsinghtech
- fault-injection harness for partial-failure idempotency (#469) in #469 by @rajsinghtech
- capture Garage pod logs and both sites' layouts when multi-cluster layout convergence fails (#465) in #465 by @rajsinghtech
Upgrade notes
- No CRD-breaking changes since v0.8.1. The only CRD change is description text on
status.blockErrorsandstatus.resyncQueueLength. Re-applying CRDs is optional. The built-in Garage image is still v2.4.1. status.blockErrorsandstatus.resyncQueueLengthnow read0when Garage was observed with no errors or an empty queue, and are left out when Garage could not be observed (#477). Go API consumers: both fields are now pointers in v1beta1 and v1beta2.- GarageClusters gain an
OperatorAdminTokenReadycondition (#476). When it is False, its message names the Pod or GarageNode that is blocking GarageKey/GarageBucket reconciliation. - While a node-local pool member is being removed, the pool DaemonSet briefly carries a
garage.rajsingh.info/node-local-pool-membership-stagingannotation and a node affinity that admits both the old and new activation tokens (#479). This is internal: don't strip it with GitOps or drift tooling. It is removed when the hand-off finishes.
Contributors
Thanks to @florissmit10 for #476 and #477, and for reporting #471 and #474, and to @rajsinghtech and @renovate[bot] for everything else in this release.
Full Changelog: v0.8.1...v0.8.2