From d0366ee027e68c3e1344fa37f8335214d82e8ade Mon Sep 17 00:00:00 2001 From: Roger Luethi Date: Wed, 13 May 2026 06:54:57 +0200 Subject: [PATCH] ceph: add ceph_require_min_compat_client default variable MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- all/099-ceph.yml | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/all/099-ceph.yml b/all/099-ceph.yml index 9bb2a19..fd457f3 100644 --- a/all/099-ceph.yml +++ b/all/099-ceph.yml @@ -10,6 +10,34 @@ fetch_directory: /share generate_fsid: false ntp_service_enabled: false +########################## +# cluster policy + +# Sets the Ceph OSD map require-min-compat-client parameter. +# With mimic or newer, RBD clone v2 is used: parent snapshots no longer need +# to be protected, enabling Glance image deletion via trash_move() when Nova +# ephemeral RBD clones exist. Clients older than the specified release are +# rejected cluster-wide (hard gate, not a warning). Set to '' to skip. +# NOTE: This is effectively one-way on a live cluster once clone v2 objects +# exist. Do not lower this value on production clusters. +ceph_require_min_compat_client: mimic + +# Release ordering used to compare Ceph release names for the idempotency +# check. Only releases from luminous onward are relevant. If ceph_require_min_compat_client +# names a release absent from this map, the assertion task fails with a clear +# message. If the cluster's current value is absent, the task skips. +# Extend this map when new Ceph releases are supported. +ceph_min_compat_client_order: + luminous: 12 + mimic: 13 + nautilus: 14 + octopus: 15 + pacific: 16 + quincy: 17 + reef: 18 + squid: 19 + tentacle: 20 + # NOTE(berendt): We use an adapted Ceph image in which always the UID 64045 is used ceph_uid: 64045 bootstrap_dirs_owner: "64045"