diff --git a/Documentation/CRDs/Cluster/ceph-cluster-crd.md b/Documentation/CRDs/Cluster/ceph-cluster-crd.md
index 206696dafdd0..72b0fbc70115 100755
--- a/Documentation/CRDs/Cluster/ceph-cluster-crd.md
+++ b/Documentation/CRDs/Cluster/ceph-cluster-crd.md
@@ -369,6 +369,7 @@ You can set annotations / labels for Rook components for the list of key value p
* `mgr`: Set annotations / labels for MGRs
* `mon`: Set annotations / labels for mons
* `osd`: Set annotations / labels for OSDs
+* `dashboard`: Set annotations / labels for the dashboard service
* `prepareosd`: Set annotations / labels for OSD Prepare Jobs
* `monitoring`: Set annotations / labels for service monitor
* `crashcollector`: Set annotations / labels for crash collectors
diff --git a/Documentation/CRDs/Object-Storage/ceph-object-store-crd.md b/Documentation/CRDs/Object-Storage/ceph-object-store-crd.md
index 1575ad3020b5..dd4b8ad37b6d 100644
--- a/Documentation/CRDs/Object-Storage/ceph-object-store-crd.md
+++ b/Documentation/CRDs/Object-Storage/ceph-object-store-crd.md
@@ -65,7 +65,7 @@ spec:
#zone:
#name: zone-a
#hosting:
- # dnsName:
+ # dnsNames:
# - "mystore.example.com"
# - "mystore.example.org"
```
diff --git a/Documentation/CRDs/specification.md b/Documentation/CRDs/specification.md
index 141fcabfac78..9c7b6735785d 100644
--- a/Documentation/CRDs/specification.md
+++ b/Documentation/CRDs/specification.md
@@ -7386,6 +7386,8 @@ string
|
"crashcollector" |
|
+
"dashboard" |
+ |
"mds" |
|
"mgr" |
diff --git a/Documentation/Storage-Configuration/Ceph-CSI/ceph-csi-drivers.md b/Documentation/Storage-Configuration/Ceph-CSI/ceph-csi-drivers.md
index 89b24a4bd14f..11d041d26cf6 100644
--- a/Documentation/Storage-Configuration/Ceph-CSI/ceph-csi-drivers.md
+++ b/Documentation/Storage-Configuration/Ceph-CSI/ceph-csi-drivers.md
@@ -18,7 +18,7 @@ namespace as the operator when the first CephCluster CR is created.
## Supported Versions
-The supported Ceph CSI version is 3.3.0 or greater with Rook. Refer to ceph csi [releases](https://github.com/ceph/ceph-csi/releases)
+The two most recent Ceph CSI version are supported with Rook. Refer to ceph csi [releases](https://github.com/ceph/ceph-csi/releases)
for more information.
## Static Provisioning
@@ -92,19 +92,6 @@ volumesnapshotclass, search for: `# csi-provisioner-name`
All CSI pods are deployed with a sidecar container that provides a Prometheus
metric for tracking whether the CSI plugin is alive and running.
-These metrics are meant to be scraped (collected) by Prometheus but can also be
-accessed through a GET request to a specific node as follows:
-
-`curl -X get http://[pod ip]:[liveness-port][liveness-path] 2>/dev/null | grep csi`
-
-For example:
-
-```console
-$ curl -X GET http://10.109.65.142:9080/metrics 2>/dev/null | grep csi
-# HELP csi_liveness Liveness Probe
-# TYPE csi_liveness gauge
-csi_liveness 1
-```
Check the [monitoring documentation](../Monitoring/ceph-monitoring.md) to see how to integrate CSI
liveness and GRPC metrics into Ceph monitoring.
diff --git a/Documentation/Storage-Configuration/Ceph-CSI/ceph-csi-snapshot.md b/Documentation/Storage-Configuration/Ceph-CSI/ceph-csi-snapshot.md
index cf3c21be6946..900e36a6186c 100644
--- a/Documentation/Storage-Configuration/Ceph-CSI/ceph-csi-snapshot.md
+++ b/Documentation/Storage-Configuration/Ceph-CSI/ceph-csi-snapshot.md
@@ -4,14 +4,7 @@ title: Snapshots
## Prerequisites
-- Rook officially supports v1 snapshots for Kubernetes v1.20+.
-
-- Install the snapshot controller and snapshot v1 CRD as required. More info can be found [here](https://github.com/kubernetes-csi/external-snapshotter/tree/v6.0.1#usage).
-
-!!! note
- If only Alpha snapshots are available, enable snapshotter in `rook-ceph-operator-config` or helm chart `values.yaml`, change the external-snapshotter image to `registry.k8s.io/sig-storage/csi-snapshotter:v1.2.2` and refer to the [alpha snapshots documentation](https://github.com/rook/rook/blob/release-1.3/Documentation/ceph-csi-drivers.md#rbd-snapshots)
-
- VolumeSnapshot betav1 is deprecated in Kubernetes 1.20+ and removed in 1.24.0. If you still require betav1 snapshots, change the external-snapshotter image to `registry.k8s.io/sig-storage/csi-snapshotter:v5.0.1` and refer to the [betav1 snapshots documentation](https://rook.github.io/docs/rook/v1.8/ceph-csi-snapshot.html#rbd-snapshots)
+- Install the [snapshot controller and snapshot v1 CRD](https://github.com/kubernetes-csi/external-snapshotter/tree/master#usage).
- We also need a `VolumeSnapshotClass` for volume snapshot to work. The purpose of a `VolumeSnapshotClass` is
defined in [the kubernetes
@@ -24,10 +17,6 @@ In short, as the documentation describes it:
VolumeSnapshotClass provides a way to describe the "classes" of storage when
provisioning a volume snapshot.
-## Upgrade Snapshot API
-
-If your Kubernetes version is updated to a newer version of the snapshot API, follow the upgrade guide [here](https://github.com/kubernetes-csi/external-snapshotter/tree/v4.0.0#upgrade) to upgrade from v1alpha1 to v1beta1, or v1beta1 to v1.
-
## RBD Snapshots
### VolumeSnapshotClass
diff --git a/Documentation/Storage-Configuration/Ceph-CSI/ceph-csi-volume-clone.md b/Documentation/Storage-Configuration/Ceph-CSI/ceph-csi-volume-clone.md
index 9e2d4f325e80..23841070fe96 100644
--- a/Documentation/Storage-Configuration/Ceph-CSI/ceph-csi-volume-clone.md
+++ b/Documentation/Storage-Configuration/Ceph-CSI/ceph-csi-volume-clone.md
@@ -15,11 +15,6 @@ for more info.
## RBD Volume Cloning
-### Volume Clone Prerequisites
-
- 1. Requires Kubernetes v1.16+ which supports volume clone.
- 2. Ceph-csi diver v3.0.0+ which supports volume clone.
-
### Volume Cloning
In
diff --git a/Documentation/Storage-Configuration/Monitoring/ceph-monitoring.md b/Documentation/Storage-Configuration/Monitoring/ceph-monitoring.md
index 46e809673735..7e93592d9599 100644
--- a/Documentation/Storage-Configuration/Monitoring/ceph-monitoring.md
+++ b/Documentation/Storage-Configuration/Monitoring/ceph-monitoring.md
@@ -273,6 +273,10 @@ kubectl create -f csi-metrics-service-monitor.yaml
This will create the service monitor to have prometheus monitor CSI
+!!! note
+ Please note that the liveness sidecar is disabled by default.
+ To enable it set `CSI_ENABLE_LIVENESS` to `true` in the Rook operator settings (operator.yaml).
+
### Collecting RBD per-image IO statistics
RBD per-image IO statistics collection is disabled by default. This can be enabled by setting `enableRBDStats: true` in the CephBlockPool spec.
diff --git a/deploy/charts/rook-ceph-cluster/values.yaml b/deploy/charts/rook-ceph-cluster/values.yaml
index 6d04631afcec..58a680f01a9f 100644
--- a/deploy/charts/rook-ceph-cluster/values.yaml
+++ b/deploy/charts/rook-ceph-cluster/values.yaml
@@ -270,6 +270,7 @@ cephClusterSpec:
# prepareosd:
# # If no mgr annotations are set, prometheus scrape annotations will be set by default.
# mgr:
+ # dashboard:
# labels:
# all:
@@ -281,6 +282,7 @@ cephClusterSpec:
# # monitoring is a list of key-value pairs. It is injected into all the monitoring resources created by operator.
# # These labels can be passed as LabelSelector to Prometheus
# monitoring:
+ # dashboard:
resources:
mgr:
diff --git a/pkg/apis/ceph.rook.io/v1/annotations.go b/pkg/apis/ceph.rook.io/v1/annotations.go
index 10b8f407ce6d..b2d77dc2d06a 100644
--- a/pkg/apis/ceph.rook.io/v1/annotations.go
+++ b/pkg/apis/ceph.rook.io/v1/annotations.go
@@ -37,6 +37,11 @@ func GetMgrAnnotations(a AnnotationsSpec) Annotations {
return mergeAllAnnotationsWithKey(a, KeyMgr)
}
+// GetDashboardAnnotations returns the Annotations for the Dashboard service
+func GetDashboardAnnotations(a AnnotationsSpec) Annotations {
+ return mergeAllAnnotationsWithKey(a, KeyDashboard)
+}
+
// GetMonAnnotations returns the Annotations for the MON service
func GetMonAnnotations(a AnnotationsSpec) Annotations {
return mergeAllAnnotationsWithKey(a, KeyMon)
diff --git a/pkg/apis/ceph.rook.io/v1/keys.go b/pkg/apis/ceph.rook.io/v1/keys.go
index 72e18b30fa6a..05395f1e3423 100644
--- a/pkg/apis/ceph.rook.io/v1/keys.go
+++ b/pkg/apis/ceph.rook.io/v1/keys.go
@@ -23,6 +23,7 @@ const (
KeyMon KeyType = "mon"
KeyMonArbiter KeyType = "arbiter"
KeyMgr KeyType = "mgr"
+ KeyDashboard KeyType = "dashboard"
KeyOSDPrepare KeyType = "prepareosd"
KeyRotation KeyType = "keyrotation"
KeyOSD KeyType = "osd"
diff --git a/pkg/apis/ceph.rook.io/v1/labels.go b/pkg/apis/ceph.rook.io/v1/labels.go
index 43a3018b2f5b..ad4bb14660d4 100644
--- a/pkg/apis/ceph.rook.io/v1/labels.go
+++ b/pkg/apis/ceph.rook.io/v1/labels.go
@@ -43,6 +43,11 @@ func GetMgrLabels(a LabelsSpec) Labels {
return mergeAllLabelsWithKey(a, KeyMgr)
}
+// GetDashboardLabels returns the Labels for the Dashboard service
+func GetDashboardLabels(a LabelsSpec) Labels {
+ return mergeAllLabelsWithKey(a, KeyDashboard)
+}
+
// GetMonLabels returns the Labels for the MON service
func GetMonLabels(a LabelsSpec) Labels {
return mergeAllLabelsWithKey(a, KeyMon)
diff --git a/pkg/operator/ceph/cluster/mgr/spec.go b/pkg/operator/ceph/cluster/mgr/spec.go
index 4a452a70acd4..01cfb5f2b617 100644
--- a/pkg/operator/ceph/cluster/mgr/spec.go
+++ b/pkg/operator/ceph/cluster/mgr/spec.go
@@ -344,6 +344,8 @@ func (c *Cluster) makeDashboardService(name string) (*v1.Service, error) {
},
},
}
+ cephv1.GetDashboardAnnotations(c.spec.Annotations).ApplyToObjectMeta(&svc.ObjectMeta)
+ cephv1.GetDashboardLabels(c.spec.Labels).ApplyToObjectMeta(&svc.ObjectMeta)
err := c.clusterInfo.OwnerInfo.SetControllerReference(svc)
if err != nil {
return nil, errors.Wrapf(err, "failed to set owner reference to dashboard service %q", svc.Name)