[alert] CephHealthWarn (rook-ceph) #528

Closed
opened 2026-08-20 01:04:24 +00:00 by alert-monitor-bot · 3 comments
Member

What is firing

CephHealthWarn, severity warning, namespace rook-ceph. Alertmanager shows it active since 2026-08-20T00:51:50Z (the 6h for: window it needs to fire), but the underlying condition is older: CephCluster status shows lastChanged: 2026-08-19T18:51:23Z — i.e. HEALTH_WARN has held continuously for over 6 hours as of this check.

Evidence

From ./.ci-diag/kubectl -n rook-ceph get cephcluster rook-ceph -o jsonpath='{.status.ceph}':

health: HEALTH_WARN
previousHealth: HEALTH_ERR
lastChanged: 2026-08-19T18:51:23Z
lastChecked: 2026-08-20T01:01:37Z

status.ceph.details lists six active checks, all cephx/auth related:

AUTH_INSECURE_CLIENT_KEY_TYPE            (WARN)  "9 auth client entities with insecure key types"
AUTH_INSECURE_KEYS_ALLOWED               (WARN)  "Monitors are configured to allow auth using insecure key types"
AUTH_INSECURE_KEYS_CREATABLE             (WARN)  "Monitors are configured to allow creation of insecure key types"
AUTH_INSECURE_ROTATING_SERVICE_KEY_TYPE  (WARN)  "4 rotating auth service keys using insecure key types"
AUTH_INSECURE_SERVICE_KEY_TYPE           (ERR)   "7 auth service entities with insecure key types"
AUTH_INSECURE_SERVICE_TICKETS            (ERR)   "Monitors are configured to issue insecure service tickets"

Note two of these carry per-check severity HEALTH_ERR even though the cluster's overall status is HEALTH_WARN — worth a human double-checking with ceph health detail (see below), since that mismatch itself isn't explained by anything in this snapshot.

The cluster daemons are otherwise healthy and on a consistent version (ceph version 19.2.6 squid across mon/mgr/osd/mds — from the same CephCluster status). The rook-ceph-operator pod restart and the rook-ceph-mgr-a pod briefly showing 1/2 Ready in context.txt/kubectl get pods were a normal, concurrent reconcile (operator logs show routine per-daemon mgr dashboard config cleanup and OSD orchestration, no errors) — unrelated to the auth warning and already resolved (rook-ceph-mgr-a is 2/2 Running now).

Root cause

Verified: the cluster genuinely holds HEALTH_WARN due to cephx key-security checks — real auth entities (client and service) using "insecure key types", and mon config that currently allows/creates insecure keys and issues insecure service tickets. This is a cephx configuration/key-rotation posture issue, not a resource or availability problem.

Not verified / hypothesis: the read-only CI ServiceAccount cannot exec into rook-ceph-tools (pods/exec is forbidden for system:serviceaccount:monitoring:ci-diagnostics in rook-ceph), so I could not run ceph health detail or ceph auth ls to enumerate exactly which 9 client / 7 service / 4 rotating entities are flagged, nor confirm why per-check severity (HEALTH_ERR on two checks) differs from overall cluster health (HEALTH_WARN). A human with cluster access should run:

kubectl -n rook-ceph exec deploy/rook-ceph-tools -- ceph health detail
kubectl -n rook-ceph exec deploy/rook-ceph-tools -- ceph auth ls

to see the flagged entities and decide on remediation (likely rotating/reissuing the flagged keys, and tightening the mon-side auth_allow_insecure_global_id_reclaim-style settings that currently permit insecure key creation — exact config keys should be confirmed against ceph auth output before changing anything).

Where to fix it

kubernetes/infrastructure/rook-ceph-cluster/cephcluster.yaml has a spec.cephConfig block already used for other mon/osd tuning (see the extensive comments in that file), so once the specific insecure-key config keys are identified via ceph health detail/ceph auth ls, they can likely be pinned there for GitOps-managed remediation. However, rotating existing insecure keys is a live, stateful cluster operation (ceph auth key management), not something a manifest change alone accomplishes — that part needs a human running ceph auth commands against the live cluster, not just a repo change.


Filed automatically by the alert-monitor pipeline (2026-08-20). The issue-fix pipeline may pick this up and open a PR.

## What is firing `CephHealthWarn`, severity `warning`, namespace `rook-ceph`. Alertmanager shows it active since `2026-08-20T00:51:50Z` (the 6h `for:` window it needs to fire), but the underlying condition is older: `CephCluster` status shows `lastChanged: 2026-08-19T18:51:23Z` — i.e. HEALTH_WARN has held continuously for over 6 hours as of this check. ## Evidence From `./.ci-diag/kubectl -n rook-ceph get cephcluster rook-ceph -o jsonpath='{.status.ceph}'`: ``` health: HEALTH_WARN previousHealth: HEALTH_ERR lastChanged: 2026-08-19T18:51:23Z lastChecked: 2026-08-20T01:01:37Z ``` `status.ceph.details` lists six active checks, all cephx/auth related: ``` AUTH_INSECURE_CLIENT_KEY_TYPE (WARN) "9 auth client entities with insecure key types" AUTH_INSECURE_KEYS_ALLOWED (WARN) "Monitors are configured to allow auth using insecure key types" AUTH_INSECURE_KEYS_CREATABLE (WARN) "Monitors are configured to allow creation of insecure key types" AUTH_INSECURE_ROTATING_SERVICE_KEY_TYPE (WARN) "4 rotating auth service keys using insecure key types" AUTH_INSECURE_SERVICE_KEY_TYPE (ERR) "7 auth service entities with insecure key types" AUTH_INSECURE_SERVICE_TICKETS (ERR) "Monitors are configured to issue insecure service tickets" ``` Note two of these carry per-check severity `HEALTH_ERR` even though the cluster's overall status is `HEALTH_WARN` — worth a human double-checking with `ceph health detail` (see below), since that mismatch itself isn't explained by anything in this snapshot. The cluster daemons are otherwise healthy and on a consistent version (`ceph version 19.2.6 squid` across mon/mgr/osd/mds — from the same CephCluster status). The `rook-ceph-operator` pod restart and the `rook-ceph-mgr-a` pod briefly showing `1/2 Ready` in `context.txt`/`kubectl get pods` were a normal, concurrent reconcile (operator logs show routine per-daemon mgr dashboard config cleanup and OSD orchestration, no errors) — unrelated to the auth warning and already resolved (`rook-ceph-mgr-a` is `2/2 Running` now). ## Root cause **Verified**: the cluster genuinely holds HEALTH_WARN due to cephx key-security checks — real auth entities (client and service) using "insecure key types", and mon config that currently *allows*/creates insecure keys and issues insecure service tickets. This is a cephx configuration/key-rotation posture issue, not a resource or availability problem. **Not verified / hypothesis**: the read-only CI ServiceAccount cannot `exec` into `rook-ceph-tools` (`pods/exec` is forbidden for `system:serviceaccount:monitoring:ci-diagnostics` in `rook-ceph`), so I could not run `ceph health detail` or `ceph auth ls` to enumerate exactly which 9 client / 7 service / 4 rotating entities are flagged, nor confirm why per-check severity (`HEALTH_ERR` on two checks) differs from overall cluster health (`HEALTH_WARN`). A human with cluster access should run: ``` kubectl -n rook-ceph exec deploy/rook-ceph-tools -- ceph health detail kubectl -n rook-ceph exec deploy/rook-ceph-tools -- ceph auth ls ``` to see the flagged entities and decide on remediation (likely rotating/reissuing the flagged keys, and tightening the mon-side `auth_allow_insecure_global_id_reclaim`-style settings that currently permit insecure key creation — exact config keys should be confirmed against `ceph auth` output before changing anything). ## Where to fix it `kubernetes/infrastructure/rook-ceph-cluster/cephcluster.yaml` has a `spec.cephConfig` block already used for other mon/osd tuning (see the extensive comments in that file), so once the specific insecure-key config keys are identified via `ceph health detail`/`ceph auth ls`, they can likely be pinned there for GitOps-managed remediation. However, **rotating existing insecure keys is a live, stateful cluster operation** (`ceph auth` key management), not something a manifest change alone accomplishes — that part needs a human running `ceph auth` commands against the live cluster, not just a repo change. --- <!-- alert-monitor:fingerprint=bbc6cf0daf24078a --> _Filed automatically by the alert-monitor pipeline (2026-08-20). The issue-fix pipeline may pick this up and open a PR._
Member

Assessment — no repo change made (issue #528, CephHealthWarn)

The alert is real and I reproduced the condition live, but the remediation is a
live, stateful cephx key-rotation operation whose safe form cannot be
expressed as a manifest change today, and the manifest half of it would not
clear the alert on its own. Per the "don't force a cosmetic change" and "don't
break things you can't verify" rules, I made no edits.

What I verified this run

./.ci-diag/kubectl -n rook-ceph get cephcluster rook-ceph -o jsonpath='{.status.ceph}'
→ "health":"HEALTH_WARN", "lastChanged":"2026-08-19T18:51:23Z",
"lastChecked":"2026-08-20T01:41:03Z", "previousHealth":"HEALTH_ERR".
Confirmed independently from the mgr metrics the alert itself reads —
Prometheus ceph_health_status → 1 (HEALTH_WARN).

ceph_health_detail{name=~"AUTH_.*"} == 1 via the Prometheus proxy returns
five active checks, all cephx key-security:

check severity
AUTH_INSECURE_CLIENT_KEY_TYPE HEALTH_WARN
AUTH_INSECURE_KEYS_ALLOWED HEALTH_WARN
AUTH_INSECURE_KEYS_CREATABLE HEALTH_WARN
AUTH_INSECURE_ROTATING_SERVICE_KEY_TYPE HEALTH_WARN
AUTH_INSECURE_SERVICE_KEY_TYPE HEALTH_ERR

The most useful new evidence, from
./.ci-diag/kubectl -n rook-ceph get cephcluster rook-ceph -o jsonpath='{.status.cephx}':

mgr: {keyCephVersion: 19.2.3-0, keyGeneration: 1, keyType: aes}
osd: {keyCephVersion: 19.2.3-0, keyGeneration: 1, keyType: aes}
mon/csi/cephExporter/crashCollector/rbdMirrorPeer: keyGeneration 1, keyCephVersion 19.2.3-0

and CephFilesystem/cephfs → daemon: {keyGeneration: 1, keyType: aes}.
So every keyring in the cluster is still generation 1, minted by Ceph 19.2.3,
and of key type aes
— that is precisely what the *_KEY_TYPE checks are
flagging. Daemons are all Running and on a uniform 19.2.6 squid
(kubectl -n rook-ceph get pods); this is not an availability problem.

./.ci-diag/kubectl -n rook-ceph get cephcluster rook-ceph -o jsonpath='{.spec.security}'
→ {"cephx":{"csi":{},"daemon":{},"rbdMirrorPeer":{}},"keyRotation":{"enabled":false},"kms":{}}
— CRD defaults; cephcluster.yaml has no spec.security block. The operator is
docker.io/rook/ceph:v1.20.5 and its log shows
cluster-controller: for cluster in namespace "rook-ceph", enabling cephx key rotation because the cluster is not upgrading,
i.e. the operator-side gate for rotation is open and only waiting on the spec.

Why no edit

Rook 1.20's spec.security.cephx.daemon / .csi rotation knobs are the obvious
GitOps lever, but committing them now fails on three counts:

  1. It would not clear the alert. AUTH_INSECURE_KEYS_ALLOWED and
    AUTH_INSECURE_KEYS_CREATABLE are mon configuration checks, not key-age
    checks. Rotating keyrings leaves them firing, so ceph_health_status stays
    at 1 and CephHealthWarn keeps firing after a full storage-layer restart.
  2. The complementary half is the dangerous half. Tightening the mon side to
    disallow insecure key types while 9 client and 7 service entities still hold
    aes keys locks those entities — including the CSI provisioners every PVC in
    the cluster depends on — out of the mons. That ordering has to be
    rotate-everything-first, verify, then tighten, which is a supervised live
    sequence, not a Flux reconcile.
  3. I could not verify the premise. Whether rotation under Ceph 19.2.6
    actually mints a non-aes key type, and the exact mon option names, need
    ceph health detail / ceph auth ls output. pods/exec is denied to the CI
    ServiceAccount — I tested it rather than assuming:
    pods "rook-ceph-tools-5cc65fd76b-lt9cb" is forbidden: User "system:serviceaccount:monitoring:ci-diagnostics" cannot create resource "pods/exec".
    Guessing config keys into spec.cephConfig is exactly how you brick auth.

Recommended manual procedure

From a workstation with full cluster access:

  1. Get the ground truth the CI SA cannot:
    kubectl -n rook-ceph exec deploy/rook-ceph-tools -- ceph health detail
    kubectl -n rook-ceph exec deploy/rook-ceph-tools -- ceph auth ls
    kubectl -n rook-ceph exec deploy/rook-ceph-tools -- ceph config dump
    
    Identify the 9 client / 7 service / 4 rotating entities and the actual
    option names behind AUTH_INSECURE_KEYS_ALLOWED / _CREATABLE.
  2. Confirm the target key type is even available on 19.2.6 before rotating. If
    the secure key type requires Ceph 20 (Tentacle), stop — the correct action is
    then to defer to the update-audit process, not to rotate now. (Image tags are
    Flux-image-automation-owned here; out of scope for this pipeline either way.)
  3. If rotation is viable, do it via GitOps rather than by hand so Rook keeps the
    keyring Secrets in sync — bump spec.security.cephx.daemon.keyGeneration (and
    .csi.keyGeneration) in kubernetes/infrastructure/rook-ceph-cluster/cephcluster.yaml
    with keyRotationPolicy: KeyGeneration. Expect a rolling restart of
    mon/mgr/osd/mds/rgw. Watch status.cephx.*.keyType flip off aes.
  4. Only once all entities show the secure type, tighten the mon-side options
    in the existing spec.cephConfig.mon block. Doing step 4 before step 3
    completes will take RBD and CephFS provisioning down.
  5. If this is expected to take a while, prefer a time-boxed
    ceph health mute AUTH_INSECURE_... <ttl> over touching the PrometheusRule —
    the 6h for: on CephHealthWarn is doing its job correctly here.

What the issue got wrong

  • It lists six checks including AUTH_INSECURE_SERVICE_TICKETS. That check
    is not active now — neither status.ceph.details (01:41Z) nor
    ceph_health_detail{name=~"AUTH_.*"} == 1 in Prometheus reports it. It has
    cleared since the issue was filed, or was mis-transcribed.
  • Its "where to fix it" pointer at spec.cephConfig is half right: that block is
    the right home for the mon-side settings, but it is the last step, and the
    issue does not flag that applying it early is an outage. The rotation half
    belongs under spec.security.cephx, which the issue does not mention at all.
  • The WARN-vs-ERR mismatch the issue asks about is still unexplained:
    AUTH_INSECURE_SERVICE_KEY_TYPE carries severity: HEALTH_ERR in both the
    CephCluster status and the mgr metric, yet overall health is HEALTH_WARN and
    previousHealth is HEALTH_ERR. A pre-existing ceph health mute is the
    leading hypothesis — ceph health detail in step 1 will show mutes. I did not
    confirm it and am not asserting it.

Assessed by the issue-fix pipeline: no repo change proposed. Remove this comment to make the pipeline retry.

## Assessment — no repo change made (issue #528, `CephHealthWarn`) The alert is real and I reproduced the condition live, but the remediation is a live, stateful cephx key-rotation operation whose *safe* form cannot be expressed as a manifest change today, and the manifest half of it would not clear the alert on its own. Per the "don't force a cosmetic change" and "don't break things you can't verify" rules, I made no edits. ### What I verified this run `./.ci-diag/kubectl -n rook-ceph get cephcluster rook-ceph -o jsonpath='{.status.ceph}'` → `"health":"HEALTH_WARN"`, `"lastChanged":"2026-08-19T18:51:23Z"`, `"lastChecked":"2026-08-20T01:41:03Z"`, `"previousHealth":"HEALTH_ERR"`. Confirmed independently from the mgr metrics the alert itself reads — Prometheus `ceph_health_status` → `1` (HEALTH_WARN). `ceph_health_detail{name=~"AUTH_.*"} == 1` via the Prometheus proxy returns **five** active checks, all cephx key-security: | check | severity | |---|---| | `AUTH_INSECURE_CLIENT_KEY_TYPE` | HEALTH_WARN | | `AUTH_INSECURE_KEYS_ALLOWED` | HEALTH_WARN | | `AUTH_INSECURE_KEYS_CREATABLE` | HEALTH_WARN | | `AUTH_INSECURE_ROTATING_SERVICE_KEY_TYPE` | HEALTH_WARN | | `AUTH_INSECURE_SERVICE_KEY_TYPE` | HEALTH_ERR | The most useful new evidence, from `./.ci-diag/kubectl -n rook-ceph get cephcluster rook-ceph -o jsonpath='{.status.cephx}'`: ``` mgr: {keyCephVersion: 19.2.3-0, keyGeneration: 1, keyType: aes} osd: {keyCephVersion: 19.2.3-0, keyGeneration: 1, keyType: aes} mon/csi/cephExporter/crashCollector/rbdMirrorPeer: keyGeneration 1, keyCephVersion 19.2.3-0 ``` and `CephFilesystem/cephfs` → `daemon: {keyGeneration: 1, keyType: aes}`. So **every keyring in the cluster is still generation 1, minted by Ceph 19.2.3, and of key type `aes`** — that is precisely what the `*_KEY_TYPE` checks are flagging. Daemons are all Running and on a uniform `19.2.6 squid` (`kubectl -n rook-ceph get pods`); this is not an availability problem. `./.ci-diag/kubectl -n rook-ceph get cephcluster rook-ceph -o jsonpath='{.spec.security}'` → `{"cephx":{"csi":{},"daemon":{},"rbdMirrorPeer":{}},"keyRotation":{"enabled":false},"kms":{}}` — CRD defaults; `cephcluster.yaml` has no `spec.security` block. The operator is `docker.io/rook/ceph:v1.20.5` and its log shows `cluster-controller: for cluster in namespace "rook-ceph", enabling cephx key rotation because the cluster is not upgrading`, i.e. the operator-side gate for rotation is open and only waiting on the spec. ### Why no edit Rook 1.20's `spec.security.cephx.daemon` / `.csi` rotation knobs are the obvious GitOps lever, but committing them now fails on three counts: 1. **It would not clear the alert.** `AUTH_INSECURE_KEYS_ALLOWED` and `AUTH_INSECURE_KEYS_CREATABLE` are mon *configuration* checks, not key-age checks. Rotating keyrings leaves them firing, so `ceph_health_status` stays at `1` and `CephHealthWarn` keeps firing after a full storage-layer restart. 2. **The complementary half is the dangerous half.** Tightening the mon side to disallow insecure key types while 9 client and 7 service entities still hold `aes` keys locks those entities — including the CSI provisioners every PVC in the cluster depends on — out of the mons. That ordering has to be rotate-everything-first, verify, *then* tighten, which is a supervised live sequence, not a Flux reconcile. 3. **I could not verify the premise.** Whether rotation under Ceph 19.2.6 actually mints a non-`aes` key type, and the exact mon option names, need `ceph health detail` / `ceph auth ls` output. `pods/exec` is denied to the CI ServiceAccount — I tested it rather than assuming: `pods "rook-ceph-tools-5cc65fd76b-lt9cb" is forbidden: User "system:serviceaccount:monitoring:ci-diagnostics" cannot create resource "pods/exec"`. Guessing config keys into `spec.cephConfig` is exactly how you brick auth. ### Recommended manual procedure From a workstation with full cluster access: 1. Get the ground truth the CI SA cannot: ``` kubectl -n rook-ceph exec deploy/rook-ceph-tools -- ceph health detail kubectl -n rook-ceph exec deploy/rook-ceph-tools -- ceph auth ls kubectl -n rook-ceph exec deploy/rook-ceph-tools -- ceph config dump ``` Identify the 9 client / 7 service / 4 rotating entities and the *actual* option names behind `AUTH_INSECURE_KEYS_ALLOWED` / `_CREATABLE`. 2. Confirm the target key type is even available on 19.2.6 before rotating. If the secure key type requires Ceph 20 (Tentacle), stop — the correct action is then to defer to the update-audit process, not to rotate now. (Image tags are Flux-image-automation-owned here; out of scope for this pipeline either way.) 3. If rotation is viable, do it via GitOps rather than by hand so Rook keeps the keyring Secrets in sync — bump `spec.security.cephx.daemon.keyGeneration` (and `.csi.keyGeneration`) in `kubernetes/infrastructure/rook-ceph-cluster/cephcluster.yaml` with `keyRotationPolicy: KeyGeneration`. Expect a rolling restart of mon/mgr/osd/mds/rgw. Watch `status.cephx.*.keyType` flip off `aes`. 4. Only once **all** entities show the secure type, tighten the mon-side options in the existing `spec.cephConfig.mon` block. Doing step 4 before step 3 completes will take RBD and CephFS provisioning down. 5. If this is expected to take a while, prefer a time-boxed `ceph health mute AUTH_INSECURE_... <ttl>` over touching the PrometheusRule — the 6h `for:` on `CephHealthWarn` is doing its job correctly here. ### What the issue got wrong - It lists **six** checks including `AUTH_INSECURE_SERVICE_TICKETS`. That check is **not active now** — neither `status.ceph.details` (01:41Z) nor `ceph_health_detail{name=~"AUTH_.*"} == 1` in Prometheus reports it. It has cleared since the issue was filed, or was mis-transcribed. - Its "where to fix it" pointer at `spec.cephConfig` is half right: that block is the right home for the mon-side settings, but it is the *last* step, and the issue does not flag that applying it early is an outage. The rotation half belongs under `spec.security.cephx`, which the issue does not mention at all. - The WARN-vs-ERR mismatch the issue asks about is still unexplained: `AUTH_INSECURE_SERVICE_KEY_TYPE` carries `severity: HEALTH_ERR` in both the CephCluster status and the mgr metric, yet overall health is `HEALTH_WARN` and `previousHealth` is `HEALTH_ERR`. A pre-existing `ceph health mute` is the leading hypothesis — `ceph health detail` in step 1 will show mutes. I did not confirm it and am not asserting it. <!-- alert-fix:assessed --> _Assessed by the issue-fix pipeline: no repo change proposed. Remove this comment to make the pipeline retry._
Member

Expected state, tracked in #527 — not a new fault.

HEALTH_WARN here is the deliberate result of resolving #525. Ceph v19.2.6 ships the fix for CVE-2025-30156 and adds six AUTH_INSECURE_* checks. Two are [ERR] and were muted to break a Rook upgrade deadlock; the four [WARN] ones were deliberately left visible so the unremediated CVE stays reported rather than hidden:

HEALTH_WARN 9 auth client entities with insecure key types;
            Monitors are configured to allow auth using insecure key types;
            Monitors are configured to allow creation of insecure key types;
            4 rotating auth service keys using insecure key types
            (muted: AUTH_INSECURE_SERVICE_KEY_TYPE(13d) AUTH_INSECURE_SERVICE_TICKETS(13d))

Upstream documents this as expected after the upgrade: "six new health warnings and errors will be generated. This is normal."

Data health is fine — 11/11 daemons on v19.2.6, 169/169 PGs active+clean, mon quorum 3/3.

This will not clear until the CVE is actually remediated, which needs daemon key rotation to aes256k via Rook spec.security.cephx.daemon.keyRotationPolicy. That requires Rook >= v1.20.5, which is not released yet (latest is v1.20.4, which we run). Tracked in #527 along with the 2026-09-02 mute expiry.

Suggest closing this as a duplicate of #527, or adding its fingerprint to the noise log (#326) so it does not re-file daily while the CVE work is blocked upstream. Leaving that call to you rather than silencing a security warning unilaterally.

🤖 Generated with Claude Code

Expected state, tracked in #527 — not a new fault. HEALTH_WARN here is the **deliberate** result of resolving #525. Ceph v19.2.6 ships the fix for [CVE-2025-30156](https://docs.ceph.com/en/latest/security/CVE-2025-30156/) and adds six `AUTH_INSECURE_*` checks. Two are `[ERR]` and were muted to break a Rook upgrade deadlock; **the four `[WARN]` ones were deliberately left visible** so the unremediated CVE stays reported rather than hidden: ``` HEALTH_WARN 9 auth client entities with insecure key types; Monitors are configured to allow auth using insecure key types; Monitors are configured to allow creation of insecure key types; 4 rotating auth service keys using insecure key types (muted: AUTH_INSECURE_SERVICE_KEY_TYPE(13d) AUTH_INSECURE_SERVICE_TICKETS(13d)) ``` Upstream documents this as expected after the upgrade: *"six new health warnings and errors will be generated. This is normal."* Data health is fine — 11/11 daemons on v19.2.6, 169/169 PGs active+clean, mon quorum 3/3. **This will not clear until the CVE is actually remediated**, which needs daemon key rotation to `aes256k` via Rook `spec.security.cephx.daemon.keyRotationPolicy`. That requires Rook >= v1.20.5, which is not released yet (latest is v1.20.4, which we run). Tracked in #527 along with the 2026-09-02 mute expiry. Suggest closing this as a duplicate of #527, or adding its fingerprint to the noise log (#326) so it does not re-file daily while the CVE work is blocked upstream. Leaving that call to you rather than silencing a security warning unilaterally. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Member

Resolved. The alert is not firing and its underlying condition is gone.

At the time this was filed the cluster held HEALTH_WARN on six cephx checks plus POOL_NO_REDUNDANCY. Current state:

AUTH_INSECURE_SERVICE_KEY_TYPE     cleared (daemon keys rotated, #545)
AUTH_INSECURE_SERVICE_TICKETS      cleared
AUTH_INSECURE_ROTATING_SERVICE_KEY_TYPE  cleared
POOL_NO_REDUNDANCY                 cleared (cephfs-ci raised to size 2, #547)
AUTH_INSECURE_CLIENT_KEY_TYPE      raised — kernel-blocked, tracked in #527
AUTH_INSECURE_KEYS_ALLOWED         raised — kernel-blocked, tracked in #527
AUTH_INSECURE_KEYS_CREATABLE       raised — kernel-blocked, tracked in #527

The three that remain are excluded from CephHealthWarn and cannot clear until the nodes run a kernel supporting aes256k over the CSI mount path. Everything else is genuinely fixed rather than filtered.

One note for the record, since this issue asked a human to run ceph health detail that the CI ServiceAccount could not: the answer was that the cephx warnings were real, not cosmetic — they signalled that CVE-2025-30156 was unremediated. That is now handled in #527.

Also worth correcting a decision made while triaging this: POOL_NO_REDUNDANCY was excluded from CephHealthWarn on the grounds that cephfs-ci was unreplicated on purpose. That exclusion suppressed the only warning that the cluster had become unmaintainable — an unreplicated pool makes ceph osd ok-to-stop refuse for every OSD. It is back in scope, and #548 records why it must stay there.

Closing.

Resolved. The alert is not firing and its underlying condition is gone. At the time this was filed the cluster held HEALTH_WARN on six cephx checks plus POOL_NO_REDUNDANCY. Current state: ``` AUTH_INSECURE_SERVICE_KEY_TYPE cleared (daemon keys rotated, #545) AUTH_INSECURE_SERVICE_TICKETS cleared AUTH_INSECURE_ROTATING_SERVICE_KEY_TYPE cleared POOL_NO_REDUNDANCY cleared (cephfs-ci raised to size 2, #547) AUTH_INSECURE_CLIENT_KEY_TYPE raised — kernel-blocked, tracked in #527 AUTH_INSECURE_KEYS_ALLOWED raised — kernel-blocked, tracked in #527 AUTH_INSECURE_KEYS_CREATABLE raised — kernel-blocked, tracked in #527 ``` The three that remain are excluded from `CephHealthWarn` and cannot clear until the nodes run a kernel supporting aes256k over the CSI mount path. Everything else is genuinely fixed rather than filtered. One note for the record, since this issue asked a human to run `ceph health detail` that the CI ServiceAccount could not: the answer was that the cephx warnings were real, not cosmetic — they signalled that CVE-2025-30156 was unremediated. That is now handled in #527. Also worth correcting a decision made while triaging this: POOL_NO_REDUNDANCY was excluded from CephHealthWarn on the grounds that cephfs-ci was unreplicated on purpose. That exclusion suppressed the only warning that the cluster had become unmaintainable — an unreplicated pool makes `ceph osd ok-to-stop` refuse for every OSD. It is back in scope, and #548 records why it must stay there. Closing.
Sign in to join this conversation.
3 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: konairius/homelab#528