Commit Graph
992 Commits
Author SHA1 Message Date
synthe102 25a7a910b5 helm(rook-ceph-cluster): add HTTPRoute for dashboard and objectstore
Signed-off-by: synthe102 <leonard@suslian.engineer>
2025-07-15 19:00:00 +00:00
Blaine Gardner a156f27f34 Merge pull request #16115 from sp98/clusterCephxStatus-uninitialized
core: init cephxStatus on cephCluster
2025-07-11 13:52:31 -06:00
Travis Nielsen 009e8eb254 Merge pull request #15666 from puskunalis/cleanup-fix-disk-shredding
osd: fix cleanup job disk shredding
2025-07-10 10:28:46 -06:00
Santosh Pillai a07f2478f3 core: init cephxStatus on cephCluster
Set cephXStatus on the CephCluster status to Uninitialized when the
cluster is first created.

Signed-off-by: Santosh Pillai <sapillai@redhat.com>
2025-07-10 20:43:58 +05:30
Travis Nielsen a00c6fba64 Merge pull request #15846 from patrostkowski/fix/mon-run-as-root-15564
mon: allow running mon pods as root
2025-07-07 16:08:48 -06:00
Madhu Rajanna 5094b1f5e6 csi: provide a flag to manage csi users
Added a flag in cephcluster CR CSI section
whether the user wants the Rook to manage
the csi users and secrets or create them on own.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2025-06-27 20:03:04 +00:00
Blaine Gardner 936aa05584 Merge pull request #16059 from Madhu-1/skip-csi-user-creation
ceph: Provide an option to specify the secretName in the cephClient CR
2025-06-27 13:49:30 -06:00
Madhu Rajanna d6d2e604fc core: provide option to specify secret name
When cephClient CR is created by User, the Rook
is creating an User and creating an secret with
its own predefined name + CR name, With this we
are allowing user to specify the secretName

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2025-06-27 16:44:23 +02:00
Travis Nielsen d6ebc96be9 Merge pull request #16025 from Nordix/add-host-network-cephexporter/adil
exporter: Add Hostnetwork bool to ceph-exporter
2025-06-24 14:49:36 -06:00
Muhammad Adil Ghaffar 5ea7a177b7 exporter: add hostnetwork bool to cephexporter
Signed-off-by: Muhammad Adil Ghaffar <muhammad.adil.ghaffar@est.tech>
2025-06-24 23:17:51 +03:00
Madhu Rajanna aa8fd61986 csi: update csi version to 3.14.1
Updating the cephcsi version to v3.14.1
release.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2025-06-24 11:46:14 +02:00
Vilius Puškunalis 27010f96f3 osd: fix cleanup job disk shredding
Fixes quick disk shredding by using dd to shred data at additional offsets where ceph metadata is duplicated. For full shred, the shred utility remains in use.

Signed-off-by: Vilius Puškunalis <47086537+puskunalis@users.noreply.github.com>
2025-06-23 21:46:41 +03:00
Patryk Rostkowski 7f3e6bd7fa mon: allow running mon pods as root
This change addresses a permission issue where mon pods crashloop
on some Kubernetes setups with SELinux enabled, even when
ROOK_HOSTPATH_REQUIRES_PRIVILEGED is set.

To resolve this, a new function makeMonSecurityContext() was introduced
to explicitly set runAsUser: 0 at the pod level for mon pods
when the environment variable ROOK_CEPH_MON_RUN_AS_ROOT is set to true.

Additionally, the function previously named PodSecurityContext() was renamed
to DefaultContainerSecurityContext() to avoid confusion between
container-level and pod-level security context configuration. All container
SecurityContext usages across Ceph daemons were updated to reflect this change.

This ensures the root user configuration is applied
automatically and consistently in environments where it is required
for mon pod startup, while preserving clear separation of container
and pod-level security logic.

Signed-off-by: Patryk Rostkowski <patrostkowski@gmail.com>
2025-06-16 18:29:31 +02:00
Travis Nielsen 433a16c090 Merge pull request #15951 from OdedViner/target_size_ratio_negative
pool: support targetSizeRatio=0 and default compressionMode=""
2025-06-11 07:35:24 -06:00
Oded Viner dd65dc15d8 pool: support targetSizeRatio=0 and default compressionMode=""
allow targetSizeRatio == 0
enforce targetSizeRatio >= 0 via +kubebuilder:validation
set targetSizeRatio and compressionMode="" if unset
remove IsTargetRatioEnabled() and IsCompressionEnabled()

Signed-off-by: Oded Viner <oviner@redhat.com>
2025-06-11 12:36:19 +03:00
Blaine Gardner 029c345372 Merge pull request #15813 from BlaineEXE/auth-rotate
object: automate RGW cephx key rotation
2025-06-10 12:51:50 -06:00
Blaine Gardner 5f50e85a25 object: implement cephx key rotation for rgw keys
This is the first implementation of CephX key rotation in Rook.
Adds key rotation API from design PR 15915.

Also add helper methods for rotating keys, determining when keys
need to be rotated, and for generating CephX key statuses. These will be
reusable for other Rook reconciles beyond object/RGW.

Signed-off-by: Blaine Gardner <blaine.gardner@ibm.com>
2025-06-10 09:06:58 -06:00
Artyom Babiy 1f183bd675 helm(rook-ceph-cluster): use nested if clauses in prometheusrule template
This change returns the use of nested if clauses
instead of `and` function shortcut to avoid errors
in older helm versions.

Signed-off-by: Artyom Babiy <artyom.babiy@gmail.com>
2025-06-09 23:22:10 +03:00
Travis Nielsen 884e6c905f Merge pull request #15928 from hedgieinsocks/allow_prom_rule_edit
helm(rook-ceph-cluster): allow prometheusrule edits
2025-06-09 11:57:17 -06:00
Santosh Pillai 2c1bb7443a Merge pull request #15796 from sp98/clean-osd-disks-from-old-clusters
osd: clean osd disks before reinstalling cluster
2025-06-09 14:03:49 +05:30
Artyom Babiy 6468255191 helm(rook-ceph-cluster): allow prometheusrule edits
This change allows the chart consumer to optionally
edit PrometheusRule CR by either disabling individual
alerts or tweaking their configuration.

Signed-off-by: Artyom Babiy <artyom.babiy@gmail.com>
2025-06-07 16:04:49 +03:00
Santosh Pillai 2bcf196b15 osd: clean osd disks before reinstalling cluster
Allow force creation of OSD on a device previously configured in a different ceph cluster.
The OSD prepare pod job will zap the OSD disk using ceph-volume lvm zap
if that disk has metadata from a different ceph cluster.

Signed-off-by: Santosh Pillai <sapillai@redhat.com>
2025-06-06 16:32:18 +05:30
Travis Nielsen 6e6071bf79 Merge pull request #15914 from jurim76/jurim76
helm: Add custom labels for toolbox deployment in rook-ceph-cluster chart
2025-06-02 16:01:35 -06:00
parth-gr 9a0490982e nfs: fix nfs short name
nfs short name and crd name was same
which was conflicting,
remove the short name cephnfs as it can
be already called by the crd name

Signed-off-by: parth-gr <partharora1010@gmail.com>
2025-06-02 13:27:24 +05:30
Juri Malinovski cc7e6b328b helm: add custom labels for toolbox deployment
Allow to assign custom labels for toolbox deployment. Some audit policies require specific labels for all kubernetes objects.

Signed-off-by: Juri Malinovski <juri.malinovski@coolbet.com>
2025-05-31 23:11:52 +03:00
synthe102 81d27753f2 helm: quote object store ingress host
This change allows to use wildcard for object ingress configuration.
Allows to use virtual-host style bucket URLs with ingress.

Signed-off-by: synthe102 <leonard@suslian.engineer>
2025-05-29 08:30:28 +00:00
Patryk Rostkowski ae6e1e0863 core: add short names to rook CRDs
This commit Assigns short names to all Rook CRDs
to improve kubectl usability.

Signed-off-by: Patryk Rostkowski <patrostkowski@gmail.com>
2025-05-22 18:29:06 +02:00
Niels de Vos a168c40008 csi: update Kubernetes CSI sidecar images to current versions
The Kubernetes CSI sidecars have had several releases that were not
included in deployments by Rook yet, update them to the versions that
are available today:

- csi-attacher:v4.8.1
- csi-provisioner:v5.2.0
- csi-resizer:v1.13.2
- csi-snapshotter:v8.2.1

This change is important, because Ceph-CSI will implement the new
Controller.GetSnapshot CSI procedure. A bug in csi-lib-utils causes a
panic when a ControllerCapability is provided, but not (yet) known to
the CSI sidecars. The updated sidecars consume a version of
csi-lib-utils with a fix for that panic.

See-also: kubernetes-csi/csi-lib-utils#188
Signed-off-by: Niels de Vos <ndevos@ibm.com>
2025-05-20 14:24:02 +02:00
parth-gr aa326a9419 rbdmirror: fix mirroring status on pool and rn
there is a change  from ceph on how the status
of the mirroring will look like,
Adopting with new fields so the status is correctly synced,
And other components might rely on the status too

Signed-off-by: parth-gr <partharora1010@gmail.com>
2025-05-14 13:07:24 +05:30
Yifeng Zhang 93ccf4c9c2 network: fix validation rule on provider field update
Provider validation is failing on updating from empty string to non-empty ones
which is expected to be supported. Fix the validation rule by adding one missing
condition.

Signed-off-by: Yifeng Zhang <Yifeng.Zhang@cerebras.net>
2025-05-09 13:34:22 -04:00
Travis Nielsen 530223c5b4 namespace: add conditions blocking deletion for rados namespace
When a rados namespace is deleted, it cannot be purged
until its images and snapshots are deleted. Now a condition
is being added to the rados namespace CR status so the user
does not need to read the operator log to discover the cause.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2025-05-07 15:42:17 -06:00
Joshua Hoblitt 300a22398e object: fix uppercase serialization of fields in KafkaEndpointSpec
Signed-off-by: Joshua Hoblitt <josh@hoblitt.com>
2025-05-02 10:29:29 -07:00
Patryk Rostkowski 45b0ef2104 operator: specify ceph config via secret
Adds .spec.cephConfigFromSecret to CephCluster for loading
Ceph config parameters from a Kubernetes Secret.

Signed-off-by: Patryk Rostkowski <patrostkowski@gmail.com>
2025-04-23 07:51:22 +02:00
Joshua Hoblitt 7887f03c5c object: add CephBucketTopic .spec.endpoint.kafka.{user,password}SecretRef
userSecretRef and passwordSecretRef fields are added to allow the Kafka
endpoint username and password to be supplied from a Kubernetes Secret,
rather than exposed as plaintext as part of the endpoint URI. If the
endpoint URI has HTTP basic auth user-id and user-pass components, they
are overridden by userSecretRef and passwordSecretRef.

Squid added bucket topic attributes for configuring the user-name and
password for pushing notifications to Kafka as an alternative to
encoding credentials into the URI. However, these attributes are not
supported under Reef. Thus, this initial implementation relies on URI
mangling for compatible with both Reef and Squid. Future work could
using Ceph version detection and switch to the new attributes to be used
with Squid and/or the implementation could be converted exclusively to
use the new attributes once Rook has dropped support for Reef.

Signed-off-by: Joshua Hoblitt <josh@hoblitt.com>
2025-04-16 10:53:11 -07:00
Bryan Jones 04cc4ee3e4 helm: add info comments to the chart values
Signed-off-by: Bryan Jones <unix.chkpwd@gmail.com>
2025-04-15 13:21:18 -04:00
Bryan Jones 41884a19bf helm: add labels to ingress resource
Signed-off-by: Bryan Jones <unix.chkpwd@gmail.com>
2025-04-15 13:21:14 -04:00
Travis Nielsen f62e6d9cc2 core: set default ceph version to v19.2.2
Update the examples and docs and operator base image to
the latest ceph release v19.2.2.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2025-04-14 12:59:39 -06:00
Rakshith R a555885a5f csi: update cephcsi to latest release
This commit updates cephcsi version to 3.14.0
in rook.

Signed-off-by: Rakshith R <rar@redhat.com>
2025-04-11 18:05:44 +05:30
Travis Nielsen 5ad38cb579 helm: allow specifying an ingress object store port to override default
The default object store ingress port will be set to the
securePort (if set), or the gateway port field. To override
that default, a new port field can be set on the ingress.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2025-04-07 17:27:34 -06:00
Travis Nielsen c40477ccc2 helm: remove obsolete check for network v1 api
The networking.k8s.io/v1beta1 has been obsolete since
K8s 1.22, long out of the supported versions, so we
can remove those legacy checks and require the v1
networking api.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2025-04-07 17:27:34 -06:00
Santosh Pillai 2dab3d3832 Merge pull request #15645 from parth-gr/fix-mon
mon: fix mon rbac for endpoint slice
2025-04-04 12:37:32 +05:30
parth-gr e7dbab3513 mon: fix mon rbac for endpoint slice
a newly dynamic dns resolution code
was added by https://github.com/rook/rook/pull/15522
Fixing rbac of it, as current rbac needs
a sub resource `restricted`

Signed-off-by: parth-gr <partharora1010@gmail.com>
2025-04-04 11:59:08 +05:30
Joshua Hoblitt 6b2c357871 object: add CephObjectStoreUser.spec.keys
Signed-off-by: Joshua Hoblitt <josh@hoblitt.com>
2025-04-03 09:09:01 -07:00
Blaine Gardner e349a81a17 Merge pull request #15624 from parth-gr/rgw-ex
object: updated cephobjectstore zone spec
2025-04-02 09:47:31 -06:00
parth-gr c47c6c5072 object: updated cephobjectstore zone api
if no multisite is used, rook creates the zone,
in the same name as cephobjectstore cr,

But cephobjectstore zone spec
shows name as empty string("")

Which is confusing for the end user, so
to remove the confusion by updating the
api defination

Signed-off-by: parth-gr <partharora1010@gmail.com>
2025-04-02 16:50:57 +05:30
Blaine Gardner 2348ff689c Merge pull request #15459 from subhamkrai/implicit-ns
rbdmirror: mirroring b/w implicit and defined ns
2025-04-01 12:56:06 -06:00
Blaine Gardner 85440169dd Merge pull request #15554 from ragnard/kafka-topic-params
rgw: Support Kafka auth mechanism parameter
2025-04-01 10:44:36 -06:00
subhamkrai 420178fe3e rbdmirror: mirroring b/w implicit and defined ns
this commit add support for mirroring b/w implicit rados namespace and
defined rados namespace. To support this, rook will treat `<implicit>`
name on cephblockpool as `""` empty string. This will allow mirroring
b/w implicit and defined radosnamespace.

Signed-off-by: subhamkrai <srai@redhat.com>
2025-04-01 10:46:06 +05:30
Travis Nielsen 9e1c78dfd5 Merge pull request #15522 from patrostkowski/feature/mon-active-ep-14986
mon: manage endpoints containing set of mon ip addresses
2025-03-31 10:42:29 -06:00
Patryk Rostkowski 08199b27c9 mon: manage endpoints containing set of mon ip addresses
The change creates and manages an Endpoints resource
with the current Ceph monitor (mon) IPs, allowing
clients to resolve mon IPs via DNS without relying
on the rook-ceph-mon-endpoints ConfigMap.

Signed-off-by: Patryk Rostkowski <patrostkowski@gmail.com>
2025-03-31 18:05:37 +02:00