Commit Graph
816 Commits
Author SHA1 Message Date
Joshua Hoblitt fa89038264 helm: add helm-unittest harness for the charts
The charts have no unit tests. CI runs ct lint plus a helm template and
kustomize build, which prove the charts render but never assert what
they render, so conditional template logic goes unverified.

Add helm-unittest, pinned and installed as a standalone binary, a
test.helm make target, and a Helm Unittests workflow that runs it. The
first suite covers the toolbox deployment: the image composed from the
toolbox and cephImage settings, the precedence of both over the older
toolbox.image setting, the hostNetwork branch driven by the cluster
network provider, and the revisionHistoryLimit guard.

The new job is a required check in .mergify.yml, alongside the existing
chart linting.

Suites live under tests/ in a chart and are excluded from the packaged
chart via .helmignore. The runner is invoked with --strict so that a
misspelled key fails the suite instead of silently rendering defaults.

Signed-off-by: Joshua Hoblitt <josh@hoblitt.com>
2026-07-29 10:40:43 -07:00
Travis Nielsen 6ed8f3efcd Merge pull request #18028 from taraasrita10/support_EC_with_MSR
pool: support CRUSH MSR rules for EC pools
2026-07-28 13:45:02 -06:00
Travis Nielsen c40d428ffb Merge pull request #18042 from jhoblitt/helm-toolbox-repository-tag
helm: add toolbox repository and tag settings
2026-07-28 11:12:48 -06:00
Prabhala Tara Aasrita 715f38de91 pool: support CRUSH MSR rules for EC pools
Added failureDomains and osdsPerDomain fields to the
ErasureCodedSpec, which maps to the crush-num-failure-domains and
crush-osds-per-failure-domain Ceph EC profile parameters. This enables
creating EC pools that distribute chunks across fewer, larger hosts
without needing one host per data chunk.

Signed-off-by: Prabhala Tara Aasrita <taraprabhala@Prabhalas-MacBook-Pro.local>
2026-07-28 20:23:51 +05:30
raaizik 5e36fa4bc3 nfs: support custom NFS server port
When NFS runs with host networking, port 2049 may already be in use.
Add CephNFS spec.server.port (default 2049), wire it through Ganesha
config, the operator Service, and probes, and regenerate CRDs.

Signed-off-by: raaizik <raaizik@yahoo.com>
2026-07-27 13:54:57 +03:00
Joshua Hoblitt faf2bffe5a helm: add toolbox repository and tag settings
The operator image in the rook-ceph chart and the Ceph image in the
rook-ceph-cluster chart are both configured as a repository and tag
pair. The toolbox was the exception, taking a single toolbox.image
string.

Add toolbox.repository and toolbox.tag, so the toolbox image can be
configured the same way as the others. Either setting may be applied on
its own; whichever is left unset falls back to cephImage.repository or
cephImage.tag.

The new settings take precedence over toolbox.image, which continues to
apply when neither is set, so existing values files are unaffected.

Signed-off-by: Joshua Hoblitt <josh@hoblitt.com>
2026-07-24 15:16:35 -07:00
Oded Viner ec502c3f80 nvmeof: use .nvmeof pool for gateway and remove pool field from CRD
Changes:
- Use a dedicated .nvmeof pool (via CephBlockPool CR named
  builtin-nvmeof) for the NVMe-oF gateway internal state.
- Use a separate nvmeof pool for the StorageClass data.
- Remove the pool field from the CephNVMeOFGateway CRD.
  The gateway now always uses the .nvmeof pool, hardcoded
  in the operator.
- Add .nvmeof to the allowed CephBlockPool name overrides.
- Create a production example nvmeof.yaml (instances: 2,
  replicas: 3) and a CI-only nvmeof-test.yaml (instances: 1,
  replicas: 1).
- Update documentation and CI test script accordingly.

Signed-off-by: Oded Viner <oviner@redhat.com>
2026-07-21 20:19:44 +03:00
Blaine Gardner 75e64b00be Merge pull request #17940 from subhamkrai/add-caps-rgw-admin-user
object: option to update rgw caps with account
2026-07-15 14:12:24 -06:00
subhamkrai 392204c1f8 object: option to update rgw caps with account
this commit add support for updating rgw caps with
`user-info-without-key` and `accounts` to cephobjectstoreuser crd
Adding the check for min ceph version from which these caps
are available.

Co-Authoured-by:  Jiffin Tony Thottan <thottanjiffin@gmail.com>
Signed-off-by: subhamkrai <srai@redhat.com>
2026-07-15 16:45:49 +05:30
Joshua Hoblitt 452fb31d95 Merge pull request #17917 from jhoblitt/chart-object-multisite
helm: add multisite CR support to rook-ceph-cluster chart
2026-07-13 13:10:05 -07:00
Travis Nielsen 46a1b0d19b Merge pull request #17887 from Madhu-1/add-node-publish-volume
csi: Add supported files for krbd QoS
2026-07-13 11:55:16 -06:00
Jeff Wallace 5119f3aeb4 monitoring: align pool growth alert with ceph mixin
Aggregate pool usage by pool before predict_linear to avoid duplicate series after mgr pod replacement, and add a one-hour hold time to match the source rule update in ceph/ceph#68621.

Signed-off-by: Jeff Wallace <jeff@tjwallace.ca>
2026-07-10 15:49:48 -07:00
Madhu Rajanna fb71b7406e doc: update the documentation for QoS
Updated the required documentation and yamls
where we are adding support for the QoS for
the rbd pvc that uses the krbd mounter.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2026-07-10 12:27:12 +05:30
Joshua Hoblitt 8989bff653 helm: add multisite CR support to rook-ceph-cluster chart
Add optional CephObjectRealm, CephObjectZoneGroup, and CephObjectZone
resources to the rook-ceph-cluster chart so an RGW multisite topology can
be deployed from the chart alongside CephObjectStore.

Each resource type follows the existing per-list template idiom: a new
template ranges over a values list and renders name, namespace, and spec.
The realm template renders spec only when set, supporting both a new realm
(no spec) and a pulled realm (spec.pull.endpoint).

The three lists ship commented out in values.yaml with a multisite
example, matching the opt-in cephECBlockPools precedent, so a default
install creates no multisite resources.

Signed-off-by: Joshua Hoblitt <josh@hoblitt.com>
2026-07-08 14:18:25 -07:00
subhamkrai a3e02e607d csi: update csi-operator version to v1.0.4
Updating csi-operator to latest v1.0.4 and
updating the required doc changes as well.

Signed-off-by: subhamkrai <srai@redhat.com>
2026-07-07 07:56:55 -06:00
Joshua Hoblitt c0eb360041 docs: fix typos and grammar in code comments
Fix duplicate words, incorrect articles (a/an), it's/its, and other small
grammar mistakes in Go comments and user-facing messages across pkg/, cmd/,
and tests/.

Signed-off-by: Joshua Hoblitt <josh@hoblitt.com>
2026-07-01 08:34:11 -07:00
Joshua Hoblitt 993be34a24 Merge pull request #17834 from jhoblitt/docs/fix-stale-doc-comment-names
docs: fix function comments to match their declaration names
2026-06-29 12:04:25 -07:00
Blaine Gardner 485529056d Merge pull request #17764 from subhamkrai/mute-ceph-errors
core: add api changes to mute ceph warnings
2026-06-29 09:50:13 -06:00
Joshua Hoblitt 49612461a4 docs: fix function comments to match their declaration names
Several godoc comments led with a stale or incorrect identifier, left
over from renames, exported/unexported changes, copy-paste between
sibling declarations, or plain typos. As a result the documented name no
longer matched the function, method, type, or var it describes. Correct
each leading word to the name of the declaration it documents.

Signed-off-by: Joshua Hoblitt <josh@hoblitt.com>
2026-06-26 12:52:39 -07:00
subhamkrai 9a6c5842bc core: implement ceph health warning mute
this commit implement api to configure
ceph health warning mute/unmute.

Signed-off-by: subhamkrai <srai@redhat.com>
2026-06-24 21:10:54 +05:30
subhamkrai ad26ebdab0 build: update ceph version to latest v20.2.2
updating the ceph version from v20.2.1 to v20.2.2

Signed-off-by: subhamkrai <srai@redhat.com>
2026-06-17 22:00:11 +05:30
subhamkrai ff5f3baa58 core: add api changes to mute ceph warnings
adding api changes to mute/unmute ceph warnings
based on user configuration. The field is map[string]string
key is ceph warning and value is duration how longs
the warnings will be muted.

Signed-off-by: subhamkrai <srai@redhat.com>
2026-06-16 17:16:04 +05:30
Oded Viner 8b4fd67e17 nvmeof: fetch gateway image from ceph config when not in CR
Make the NVMe-oF gateway image optional in the CR spec.
When not specified, the operator fetches the image from
the Ceph mon config store using the key
mgr/cephadm/container_image_nvmeof. Falls back to the
hardcoded default if the config is unavailable.

Signed-off-by: Oded Viner <oviner@redhat.com>
2026-06-11 19:55:16 +03:00
Travis Nielsen c5c6ef385d docs: helm instructions to install drivers in another namespace
The helm values need to be updated if installing the drivers
chart in a namespace other than rook-ceph.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2026-06-08 11:11:01 -06:00
subhamkraiandTravis Nielsen 774054c45e docs: add rook compatible ceph csi driver values
adding rook compatible Ceph-Csi driver values.yaml
file making sure, upgrading to 1.20 doesn't break
when csi-driver is moved to admin.

Co-authored-by: Travis Nielsen <tnielsen@redhat.com>
Signed-off-by: subhamkrai <srai@redhat.com>
2026-06-05 14:48:21 -06:00
Travis Nielsen 9774d2de75 Merge pull request #17570 from subhamkrai/add-tls1.3-ciphers
object: add TLS 1.3 cipher suite support for RGW beast frontend
2026-05-27 09:51:33 -06:00
subhamkrai 34c5ad7049 build: update csi-operator to v1.0.1
Updating csi-operator to latest v1.0.1 and
updating the required doc changes as well.

Signed-off-by: subhamkrai <srai@redhat.com>
2026-05-27 18:05:56 +05:30
Praveen M 449d1baeb7 csi: update ceph-csi image and sidecars
Update ceph-csi to v3.17.0 and CSI sidecars:
- csi-provisioner v6.1.1 -> v6.2.0
- csi-attacher v4.11.0 -> v4.12.0
- csi-node-driver-registrar v2.16.0 -> v2.17.0

Signed-off-by: Praveen M <m.praveen@ibm.com>
2026-05-27 13:25:22 +05:30
Joshua Hoblitt 959c223fa8 Merge pull request #17544 from jhoblitt/maint/sync-prometheusrules
helm: update prometheus rules from upstream ceph/ceph; add `cluster` label to all scraped metrics
2026-05-26 12:08:42 -07:00
subhamkrai b70a0c9257 object: add TLS 1.3 cipher suite support for RGW beast frontend
adding new tls ssl_ciphersuites supporting tls 1.3 and the existing,
ssl_cipher supports tls 1.2 and below. Adding, the docs and unit-test
changs as well.

Signed-off-by: subhamkrai <srai@redhat.com>
2026-05-26 20:50:21 +05:30
subhamkraiandTravis Nielsen 06452991bf csi: update csi-operator to v1.0.0
this commit update the csi-operator to latest v1.0.0.
we need to manually patch the csi drivers with the new serviceAccount
name that are being creating based on the latest ceph-csi-operator
release v1.0.0 where serviceAccount are being separate from csi-operator
chart.

co-authored-by: Travis Nielsen <tnielsen@redhat.com>
Signed-off-by: subhamkrai <srai@redhat.com>
2026-05-21 21:52:32 +05:30
Joshua Hoblitt ec75182dad helm: add cluster label to prom persistent-volume-alert.rules
Signed-off-by: Joshua Hoblitt <josh@hoblitt.com>
2026-05-15 14:55:07 -07:00
Joshua Hoblitt 22913f5b2f helm: drop ceph version constraint from PrometheusJobExporterMissing
The purpose of this constraint is unknown.

Signed-off-by: Joshua Hoblitt <josh@hoblitt.com>
2026-05-14 16:12:46 -07:00
Joshua Hoblitt 47c97cf4a2 helm: update prometheus rules from upstream ceph/ceph
Synced with:

https://github.com/ceph/ceph/blob/4b5096cc0de40a1b80bf801b4261bb58b0702e82/monitoring/ceph-mixin/prometheus_alerts.yml

Signed-off-by: Joshua Hoblitt <josh@hoblitt.com>
2026-05-14 16:12:30 -07:00
Travis Nielsen 2ef74f3189 Merge pull request #17447 from subhamkrai/add-stipe-unit-support
pool: add stripe_unit with erasure-code-profile set
2026-05-14 10:38:06 -06:00
subhamkrai 9fb0582dd6 pool: add stripe_unit with erasure-code-profile set
this commit adds flag stripe_unit for the command
ceph osd erasure-code-profile set [flags]. This key
increase perfomance for ec pool. The default value
is 4kib/4096 bytes.

Signed-off-by: subhamkrai <srai@redhat.com>
2026-05-14 21:39:15 +05:30
Oded Viner f8c1c99cb4 nvmeof: add sys_admin to scc allowedcapabilities for gateway pods
the nvmeof gateway requires privileged containers with
sys_admin capability. the rook-ceph scc only allowed mknod,
causing pod creation to fail on openshift with:
"unable to validate against any security context constraint"

add sys_admin to allowedcapabilities in the helm chart sccs
and the go scc helper. this does not affect other daemons
(osd, rgw, mgr, mon) since they do not request sys_admin.

the operator-openshift.yaml example already includes
sys_admin, so this aligns the helm charts to match.

Signed-off-by: Oded Viner <oviner@redhat.com>
2026-05-11 13:47:12 +03:00
Prabhala Tara Aasrita e6ad74087e helm: add ROOK_CEPH_MON_RUN_AS_ROOT to chart values
Added monRunAsRoot chart value to support the ROOK_CEPH_MON_RUN_AS_ROOT environment variable in the operator ConfigMap.

Fixes #17452

Signed-off-by: Prabhala Tara Aasrita <taraasrita@ibm.com>
2026-05-07 11:54:08 +05:30
subhamkrai 01ef98c1e3 rgw: add option for tls and cipher in objectstore
this commit add option in the ceph objecstore CR
to configure TLS profile and TLS ciphersuite for
rgw beast.

Signed-off-by: subhamkrai <srai@redhat.com>
2026-05-06 21:02:30 +05:30
Joshua Hoblitt 64cf1df920 core: add default ResourceRequirements for cmd-reporter
The cmd-reporter ResourceRequirements are used by the
`rook-ceph-detect-version` pod.  Setting a default ResourceRequirement
is useful in and of itself while always allowing the `values.yaml` serve
double duty as a configuration example.

Signed-off-by: Joshua Hoblitt <josh@hoblitt.com>
2026-04-30 08:52:54 -07:00
subhamkrai 4eefad42e8 csi: move csi management to admin
Going forward, admin will manage the csi operator
CR's and rook will only manage Ceph Connection cr
and client Profile cr.

The old csi driver is completely removed from Rook
and can no longer be used starting in Rook v1.20.

The upgrade guide will contain the needed transition steps
for managing the csi operator settings.

Signed-off-by: subhamkrai <srai@redhat.com>
2026-04-29 14:24:26 -06:00
Travis Nielsen 62a9debceb core: update all docs and examples to v20.2.1
With the default version now being v20.2.1, also update
all of the examples, documentation, and default CI to run
with that version

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2026-04-28 14:09:17 -06:00
Oded Viner 7f3e2ace27 security: grant scc to rook-ceph-nvmeof service account
the rook-ceph-nvmeof service account is not listed in the
securitycontextconstraints users, causing cephnvmeofgateway
pods to fail on openshift. add the service account to the
scc in the helm charts, go scc builder, and test namespace
substitution.

Signed-off-by: Oded Viner <oviner@redhat.com>
2026-04-27 16:28:15 +03:00
Asish Kumar 24a35e4e74 pool: clean up unused crush rules
Clean up stale CRUSH rules after the Ceph mgr starts so rules left behind by pool failure-domain or device-class changes do not accumulate indefinitely.

The cleanup is guarded by a package-level RWMutex. Pool create and update paths hold the read lock while creating and assigning CRUSH rules, while cluster-wide cleanup holds the write lock before listing pools and deleting unused rules. This keeps pool reconciles parallel with each other while preventing cleanup from deleting a rule that another reconcile has just created but not yet attached to a pool.

Keep direct pool-delete cleanup for the pool's current CRUSH rule, make the cluster-wide cleanup best-effort across all unused rules, and add an operator-level ROOK_DELETE_UNUSED_CRUSH_RULES setting for clusters that need to leave unused custom rules in place.

Document the operator and Helm settings, regenerate the Helm chart docs, and add a pending release note for the default cleanup behavior.

Signed-off-by: Asish Kumar <officialasishkumar@gmail.com>
2026-04-24 23:57:40 +05:30
Elias Carter 5a065948e2 doc: fix out of date references to default PgHealthyRegex
Signed-off-by: Elias Carter <elias@dropbox.com>
2026-04-20 09:39:25 -07:00
Travis Nielsen d3dd9f77dc Merge pull request #17352 from taraasrita10/setenv_rook_unreachablenode
helm: set ROOK_UNREACHABLE_NODE_TOLERATION_SECONDS from chart values
2026-04-17 08:22:32 -06:00
Alexander Degenhart 17b98da89e csi: add 'CSIMetadataRadosNamespace' parameter to CephFilesystemSubVolumeGroup
This parameter is written to .spec.cephFS.radosNamespace of the generated
ClientProfile.

The parameter is called 'CSIMetadataRadosNamespace' to clarify that it is used
for CSI metadata and unrelated to the actual CephFS (meta)data.

Context:

The ceph-csi CephFS plugin stores additional metadata related to PV(C)s
in RADOS objects in the metadata pool of the CephFS.
By default those objects are stored in the 'csi' RADOS namespace.

For a multi-tenant CephFS setup (that is used by multiple K8s Clusters/
ceph-csi drivers) segregating those additional objects into separate RADOS
namespaces is desireable so the clusters can not modify the metadata of other
clusters (enforced by appropriate ceph client capabilities).

'ceph-csi' implemented this via the `cephFS.radosNamespace` config option for
cluster entries in the `ceph-csi-config` ConfigMap with https://github.com/ceph/ceph-csi/pull/4661.

The `ceph-csi-operator` added support for that config entry by adding
'radosNamespace' to the 'CephFsConfigSpec' of the 'ClientProfile' with
https://github.com/ceph/ceph-csi-operator/pull/165.

Signed-off-by: Alexander Degenhart <degenhart@fim.uni-passau.de>
2026-04-16 00:31:29 +02:00
Prabhala Tara Aasrita dcb501de56 helm: set ROOK_UNREACHABLE_NODE_TOLERATION_SECONDS from chart values
Previously the unreachable node toleration on the operator pod was hardcoded to 5 seconds in the Helm chart and the ROOK_UNREACHABLE_NODE_TOLERATION_SECONDS env var was notset up at all. This change reads both from .Values.unreachableNodeTolerationSeconds (defaulting to 5).

Fixes #17303

Signed-off-by: Prabhala Tara Aasrita <taraasrita@ibm.com>
2026-04-14 21:25:04 +05:30
subhamkrai 6285afc0a4 build: use ceph tentacle v20 as default version
let's use ceph tentacle as default version in deployment

Signed-off-by: subhamkrai <srai@redhat.com>
2026-04-08 15:39:17 +05:30
Travis Nielsen cc626020ba Merge pull request #17250 from sp98/implement-cosuser-accounts
rgw: add accountRef to CephObjectStoreUser CR
2026-04-02 15:56:30 -06:00