Skip to content

Commit 245d760

Browse files
authored
ceph: add ceph_require_min_compat_client default variable (#284)
Add two variables to the new cluster policy section of all/099-ceph.yml: ceph_require_min_compat_client (default: mimic) — passed to `ceph osd set-require-min-compat-client` by container-image-ceph-ansible during the ceph-pools lifecycle step. With mimic or newer, RBD clone v2 is enabled cluster-wide: parent snapshots no longer need to be protected for clones to reference them, which allows Glance to delete images that have active Nova ephemeral disk clones (HTTP 409 fix). Set to '' to skip; see operator documentation for side effects on production clusters (client lockout, Ceph trash semantics, one-way change). ceph_min_compat_client_order — integer ordering map for release names, used by container-image-ceph-ansible for the idempotency check: the minimum is only raised, never lowered. Extend when new Ceph releases are supported. AI-assisted: Claude Code Signed-off-by: Roger Luethi <luethi@osism.tech>
1 parent 423ae77 commit 245d760

1 file changed

Lines changed: 28 additions & 0 deletions

File tree

all/099-ceph.yml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,34 @@ fetch_directory: /share
1010
generate_fsid: false
1111
ntp_service_enabled: false
1212

13+
##########################
14+
# cluster policy
15+
16+
# Sets the Ceph OSD map require-min-compat-client parameter.
17+
# With mimic or newer, RBD clone v2 is used: parent snapshots no longer need
18+
# to be protected, enabling Glance image deletion via trash_move() when Nova
19+
# ephemeral RBD clones exist. Clients older than the specified release are
20+
# rejected cluster-wide (hard gate, not a warning). Set to '' to skip.
21+
# NOTE: This is effectively one-way on a live cluster once clone v2 objects
22+
# exist. Do not lower this value on production clusters.
23+
ceph_require_min_compat_client: mimic
24+
25+
# Release ordering used to compare Ceph release names for the idempotency
26+
# check. Only releases from luminous onward are relevant. If ceph_require_min_compat_client
27+
# names a release absent from this map, the assertion task fails with a clear
28+
# message. If the cluster's current value is absent, the task skips.
29+
# Extend this map when new Ceph releases are supported.
30+
ceph_min_compat_client_order:
31+
luminous: 12
32+
mimic: 13
33+
nautilus: 14
34+
octopus: 15
35+
pacific: 16
36+
quincy: 17
37+
reef: 18
38+
squid: 19
39+
tentacle: 20
40+
1341
# NOTE(berendt): We use an adapted Ceph image in which always the UID 64045 is used
1442
ceph_uid: 64045
1543
bootstrap_dirs_owner: "64045"

0 commit comments

Comments
 (0)