Add immutable placement-target selection to Bucket #7
Reference in New Issue
Block a user
Delete Branch "benvin/placement-targets"
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?
Why
Buckets could not choose which RGW placement target backs them, so all data landed on the cluster default (3x replicated). The estate's radosgw exposes two targets -
default-placement(3x replicated) andec(4+1 erasure-coded) - verified live: a single zonegroup, and one bucket already sits onec. Archival workloads wantec.Changes
spec.placementTarget: a DNS-ish pattern, 63-char cap, and a CELself == oldSelfimmutability rule, since RGW fixes placement at bucket creation and cannot move a bucket between targets; makespec.zonegroupimmutable too.CreateBucketLocationConstraintvia the existing helper; an emptyzonegroupyields:<target>, selecting the local/master zonegroup so callers need not know the zonegroup api-name.placement_ruleand zonegroup back from the Admin Ops bucket stats and surface them:status.placementTargetplus aPlacementprint column, so placement drift is visible.Errorphase with aPlacementImmutablereason instead of ever deleting/recreating the bucket.locationConstraintconstruction, placement readback (httptest), and theplacementConflictguard with tests; document the targets and immutability in the README and addconfig/samples/06-bucket-ec.yaml.Release
New Bucket field + status: cut a minor release with
make minor(v0.3.1 -> v0.4.0) once merged; thev*tag builds+pushesgit.unkin.net/unkin/cephrgw-operator:<tag>and:latest.https://claude.ai/code/session_015ur3i7D2azsMAWTSVABApv