Skip to content

ceph: add ceph_require_min_compat_client default variable#284

Merged
berendt merged 1 commit into
mainfrom
rl-ceph-require-min-compat-client
May 26, 2026
Merged

ceph: add ceph_require_min_compat_client default variable#284
berendt merged 1 commit into
mainfrom
rl-ceph-require-min-compat-client

Conversation

@ideaship

Copy link
Copy Markdown
Contributor

Summary

  • Adds ceph_require_min_compat_client (default: mimic) to all/099-ceph.yml under a new # cluster policy section
  • Adds ceph_min_compat_client_order — an integer ordering map of Ceph release names used by container-image-ceph-ansible for the idempotency check (only raise, never lower)

The variable is consumed by container-image-ceph-ansible during the ceph-pools lifecycle step to run ceph osd set-require-min-compat-client. With mimic or newer, RBD clone v2 is enabled cluster-wide: parent snapshots no longer need to be protected, so Glance can delete images that have active Nova ephemeral disk clones (fixes HTTP 409).

See osism/container-image-ceph-ansible for the companion PR that reads this variable and applies it.

Side effects of raising require-min-compat-client to mimic (documented in the variable's comment):

  • Ceph clients older than mimic (Ubuntu 18.04 era) are rejected cluster-wide — hard gate, not a warning
  • Deleted Glance images with active RBD clones move to Ceph trash rather than being freed immediately
  • The change is effectively one-way on a live cluster once clone v2 objects exist

Set to '' to skip if the cluster must remain at luminous compat level.

Test plan

  • Companion PR in container-image-ceph-ansible tested end-to-end in bedbox: both ImageDependencyTests pass
  • Workaround exclude.lst entries (testbed PR #2885) reverted once the full fix is confirmed in CI

🤖 Generated with Claude Code

Comment thread all/099-ceph.yml
@github-project-automation github-project-automation Bot moved this from Ready to In review in Human Board May 26, 2026
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>
@ideaship ideaship force-pushed the rl-ceph-require-min-compat-client branch from 311b9ce to d0366ee Compare May 26, 2026 14:13
@ideaship ideaship marked this pull request as ready for review May 26, 2026 17:18
@berendt berendt merged commit 245d760 into main May 26, 2026
2 checks passed
@berendt berendt deleted the rl-ceph-require-min-compat-client branch May 26, 2026 17:48
@github-project-automation github-project-automation Bot moved this from In review to Done in Human Board May 26, 2026
ideaship added a commit to osism/testbed that referenced this pull request May 26, 2026
Reverts commit 621a279 (PR #2885), which excluded both
ImageDependencyTests as a workaround for the HTTP 409 failure caused by
the Glance/Ceph RBD clone v1 incompatibility.

The root cause is fixed by:
- osism/defaults#284 — adds ceph_require_min_compat_client default
- osism/container-image-ceph-ansible#690 — applies it via ceph-pools

Merge this commit after both of the above are in.

Related: #2884

AI-assisted: Claude Code
Signed-off-by: Roger Luethi <luethi@osism.tech>
berendt pushed a commit to osism/testbed that referenced this pull request May 29, 2026
Reverts commit 621a279 (PR #2885), which excluded both
ImageDependencyTests as a workaround for the HTTP 409 failure caused by
the Glance/Ceph RBD clone v1 incompatibility.

The root cause is fixed by:
- osism/defaults#284 — adds ceph_require_min_compat_client default
- osism/container-image-ceph-ansible#690 — applies it via ceph-pools

Merge this commit after both of the above are in.

Related: #2884

AI-assisted: Claude Code

Signed-off-by: Roger Luethi <luethi@osism.tech>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

3 participants