Skip to content

Commit

Permalink
Merge pull request #704 from red-hat-storage/sync_us--master
Browse files Browse the repository at this point in the history
Syncing latest changes from upstream master for rook
  • Loading branch information
subhamkrai authored Aug 21, 2024
2 parents 79a87bb + ca849ef commit 8ac7f6e
Show file tree
Hide file tree
Showing 64 changed files with 1,127 additions and 713 deletions.
5 changes: 4 additions & 1 deletion Documentation/CRDs/Cluster/ceph-cluster-crd.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,9 @@ For more details on the mons and when to choose a number other than `3`, see the
* `config`: Config settings applied to all OSDs on the node unless overridden by `devices`. See the [config settings](#osd-configuration-settings) below.
* `allowDeviceClassUpdate`: Whether to allow changing the device class of an OSD after it is created. The default is false
to prevent unintentional data movement or CRUSH changes if the device class is changed accidentally.
* `allowOsdCrushWeightUpdate`: Whether Rook will resize the OSD CRUSH weight when the OSD PVC size is increased.
This allows cluster data to be rebalanced to make most effective use of new OSD space.
The default is false since data rebalancing can cause temporary cluster slowdown.
* [storage selection settings](#storage-selection-settings)
* [Storage Class Device Sets](#storage-class-device-sets)
* `onlyApplyOSDPlacement`: Whether the placement specific for OSDs is merged with the `all` placement. If `false`, the OSD placement will be merged with the `all` placement. If true, the `OSD placement will be applied` and the `all` placement will be ignored. The placement for OSDs is computed from several different places depending on the type of OSD:
Expand Down Expand Up @@ -322,7 +325,7 @@ The following are the settings for Storage Class Device Sets which can be config
* `preparePlacement`: The placement criteria for the preparation of the OSD devices. Creating OSDs is a two-step process and the prepare job may require different placement than the OSD daemons. If the `preparePlacement` is not specified, the `placement` will instead be applied for consistent placement for the OSD prepare jobs and OSD deployments. The `preparePlacement` is only useful for `portable` OSDs in the device sets. OSDs that are not portable will be tied to the host where the OSD prepare job initially runs.
* For example, provisioning may require topology spread constraints across zones, but the OSD daemons may require constraints across hosts within the zones.
* `portable`: If `true`, the OSDs will be allowed to move between nodes during failover. This requires a storage class that supports portability (e.g. `aws-ebs`, but not the local storage provisioner). If `false`, the OSDs will be assigned to a node permanently. Rook will configure Ceph's CRUSH map to support the portability.
* `tuneDeviceClass`: For example, Ceph cannot detect AWS volumes as HDDs from the storage class "gp2", so you can improve Ceph performance by setting this to true.
* `tuneDeviceClass`: For example, Ceph cannot detect AWS volumes as HDDs from the storage class "gp2-csi", so you can improve Ceph performance by setting this to true.
* `tuneFastDeviceClass`: For example, Ceph cannot detect Azure disks as SSDs from the storage class "managed-premium", so you can improve Ceph performance by setting this to true..
* `volumeClaimTemplates`: A list of PVC templates to use for provisioning the underlying storage devices.
* `metadata.name`: "data", "metadata", or "wal". If a single template is provided, the name must be "data". If the name is "metadata" or "wal", the devices are used to store the Ceph metadata or WAL respectively. In both cases, the devices must be raw devices or LVM logical volumes.
Expand Down
8 changes: 4 additions & 4 deletions Documentation/CRDs/Cluster/pvc-cluster.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ in clusters where a local PV provisioner is available.

## AWS Storage Example

In this example, the mon and OSD volumes are provisioned from the AWS `gp2` storage class. This storage class can be replaced by any storage class that provides `file` mode (for mons) and `block` mode (for OSDs).
In this example, the mon and OSD volumes are provisioned from the AWS `gp2-csi` storage class. This storage class can be replaced by any storage class that provides `file` mode (for mons) and `block` mode (for OSDs).

```yaml
apiVersion: ceph.rook.io/v1
Expand All @@ -25,7 +25,7 @@ spec:
allowMultiplePerNode: false
volumeClaimTemplate:
spec:
storageClassName: gp2
storageClassName: gp2-csi
resources:
requests:
storage: 10Gi
Expand All @@ -42,8 +42,8 @@ spec:
resources:
requests:
storage: 10Gi
# IMPORTANT: Change the storage class depending on your environment (e.g. local-storage, gp2)
storageClassName: gp2
# IMPORTANT: Change the storage class depending on your environment (e.g. local-storage, gp2-csi)
storageClassName: gp2-csi
volumeMode: Block
accessModes:
- ReadWriteOnce
Expand Down
16 changes: 15 additions & 1 deletion Documentation/CRDs/specification.md
Original file line number Diff line number Diff line change
Expand Up @@ -12603,6 +12603,20 @@ bool
<p>Whether to allow updating the device class after the OSD is initially provisioned</p>
</td>
</tr>
<tr>
<td>
<code>allowOsdCrushWeightUpdate</code><br/>
<em>
bool
</em>
</td>
<td>
<em>(Optional)</em>
<p>Whether Rook will resize the OSD CRUSH weight when the OSD PVC size is increased.
This allows cluster data to be rebalanced to make most effective use of new OSD space.
The default is false since data rebalancing can cause temporary cluster slowdown.</p>
</td>
</tr>
</tbody>
</table>
<h3 id="ceph.rook.io/v1.StoreType">StoreType
Expand Down Expand Up @@ -13007,7 +13021,7 @@ If the resource referred to by volumeAttributesClass does not exist, this Persis
set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource
exists.
More info: <a href="https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/">https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/</a>
(Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.</p>
(Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).</p>
</td>
</tr>
</table>
Expand Down
2 changes: 1 addition & 1 deletion Documentation/Contributing/development-flow.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ title: Development Flow
---

Thank you for your time and effort to help us improve Rook! Here are a few steps to get started. If you have any questions,
don't hesitate to reach out to us on our [Slack](https://Rook-io.slack.com) dev channel.
don't hesitate to reach out to us on our [Slack](https://Rook-io.slack.com) dev channel. Sign up for the Rook Slack [here](https://slack.rook.io).

## Prerequisites

Expand Down
2 changes: 1 addition & 1 deletion Documentation/Contributing/rook-test-framework.md
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ go test -v -timeout 1800s -run CephSmokeSuite github.com/rook/rook/tests/integra

```console
export TEST_ENV_NAME=openshift
export TEST_STORAGE_CLASS=gp2
export TEST_STORAGE_CLASS=gp2-csi
export TEST_BASE_DIR=/tmp
```

Expand Down
12 changes: 6 additions & 6 deletions Documentation/Helm-Charts/operator-chart.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ The following table lists the configurable parameters of the rook-operator chart
| `crds.enabled` | Whether the helm chart should create and update the CRDs. If false, the CRDs must be managed independently with deploy/examples/crds.yaml. **WARNING** Only set during first deployment. If later disabled the cluster may be DESTROYED. If the CRDs are deleted in this case, see [the disaster recovery guide](https://rook.io/docs/rook/latest/Troubleshooting/disaster-recovery/#restoring-crds-after-deletion) to restore them. | `true` |
| `csi.allowUnsupportedVersion` | Allow starting an unsupported ceph-csi image | `false` |
| `csi.attacher.repository` | Kubernetes CSI Attacher image repository | `"registry.k8s.io/sig-storage/csi-attacher"` |
| `csi.attacher.tag` | Attacher image tag | `"v4.5.1"` |
| `csi.attacher.tag` | Attacher image tag | `"v4.6.1"` |
| `csi.cephFSAttachRequired` | Whether to skip any attach operation altogether for CephFS PVCs. See more details [here](https://kubernetes-csi.github.io/docs/skip-attach.html#skip-attach-with-csi-driver-object). If cephFSAttachRequired is set to false it skips the volume attachments and makes the creation of pods using the CephFS PVC fast. **WARNING** It's highly discouraged to use this for CephFS RWO volumes. Refer to this [issue](https://github.com/kubernetes/kubernetes/issues/103305) for more details. | `true` |
| `csi.cephFSFSGroupPolicy` | Policy for modifying a volume's ownership or permissions when the CephFS PVC is being mounted. supported values are documented at https://kubernetes-csi.github.io/docs/support-fsgroup.html | `"File"` |
| `csi.cephFSKernelMountOptions` | Set CephFS Kernel mount options to use https://docs.ceph.com/en/latest/man/8/mount.ceph/#options. Set to "ms_mode=secure" when connections.encrypted is enabled in CephCluster CR | `nil` |
Expand Down Expand Up @@ -113,7 +113,7 @@ The following table lists the configurable parameters of the rook-operator chart
| `csi.pluginPriorityClassName` | PriorityClassName to be set on csi driver plugin pods | `"system-node-critical"` |
| `csi.pluginTolerations` | Array of tolerations in YAML format which will be added to CephCSI plugin DaemonSet | `nil` |
| `csi.provisioner.repository` | Kubernetes CSI provisioner image repository | `"registry.k8s.io/sig-storage/csi-provisioner"` |
| `csi.provisioner.tag` | Provisioner image tag | `"v4.0.1"` |
| `csi.provisioner.tag` | Provisioner image tag | `"v5.0.1"` |
| `csi.provisionerNodeAffinity` | The node labels for affinity of the CSI provisioner deployment [^1] | `nil` |
| `csi.provisionerPriorityClassName` | PriorityClassName to be set on csi driver provisioner pods | `"system-cluster-critical"` |
| `csi.provisionerReplicas` | Set replicas for csi provisioner deployment | `2` |
Expand All @@ -125,16 +125,16 @@ The following table lists the configurable parameters of the rook-operator chart
| `csi.rbdPluginUpdateStrategyMaxUnavailable` | A maxUnavailable parameter of CSI RBD plugin daemonset update strategy. | `1` |
| `csi.rbdPodLabels` | Labels to add to the CSI RBD Deployments and DaemonSets Pods | `nil` |
| `csi.registrar.repository` | Kubernetes CSI registrar image repository | `"registry.k8s.io/sig-storage/csi-node-driver-registrar"` |
| `csi.registrar.tag` | Registrar image tag | `"v2.10.1"` |
| `csi.registrar.tag` | Registrar image tag | `"v2.11.1"` |
| `csi.resizer.repository` | Kubernetes CSI resizer image repository | `"registry.k8s.io/sig-storage/csi-resizer"` |
| `csi.resizer.tag` | Resizer image tag | `"v1.10.1"` |
| `csi.resizer.tag` | Resizer image tag | `"v1.11.1"` |
| `csi.serviceMonitor.enabled` | Enable ServiceMonitor for Ceph CSI drivers | `false` |
| `csi.serviceMonitor.interval` | Service monitor scrape interval | `"10s"` |
| `csi.serviceMonitor.labels` | ServiceMonitor additional labels | `{}` |
| `csi.serviceMonitor.namespace` | Use a different namespace for the ServiceMonitor | `nil` |
| `csi.sidecarLogLevel` | Set logging level for Kubernetes-csi sidecar containers. Supported values from 0 to 5. 0 for general useful logs (the default), 5 for trace level verbosity. | `0` |
| `csi.snapshotter.repository` | Kubernetes CSI snapshotter image repository | `"registry.k8s.io/sig-storage/csi-snapshotter"` |
| `csi.snapshotter.tag` | Snapshotter image tag | `"v7.0.2"` |
| `csi.snapshotter.tag` | Snapshotter image tag | `"v8.0.1"` |
| `csi.topology.domainLabels` | domainLabels define which node labels to use as domains for CSI nodeplugins to advertise their domains | `nil` |
| `csi.topology.enabled` | Enable topology based provisioning | `false` |
| `currentNamespaceOnly` | Whether the operator should watch cluster CRD in its own namespace or not | `false` |
Expand All @@ -151,7 +151,7 @@ The following table lists the configurable parameters of the rook-operator chart
| `enableOBCWatchOperatorNamespace` | Whether the OBC provisioner should watch on the operator namespace or not, if not the namespace of the cluster will be used | `true` |
| `hostpathRequiresPrivileged` | Runs Ceph Pods as privileged to be able to write to `hostPaths` in OpenShift with SELinux restrictions. | `false` |
| `image.pullPolicy` | Image pull policy | `"IfNotPresent"` |
| `image.repository` | Image | `"rook/ceph"` |
| `image.repository` | Image | `"docker.io/rook/ceph"` |
| `image.tag` | Image tag | `master` |
| `imagePullSecrets` | imagePullSecrets option allow to pull docker images from private docker registry. Option will be passed to all service accounts. | `nil` |
| `logLevel` | Global log level for the operator. Options: `ERROR`, `WARNING`, `INFO`, `DEBUG` | `"INFO"` |
Expand Down
10 changes: 5 additions & 5 deletions Documentation/Storage-Configuration/Ceph-CSI/custom-images.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,11 @@ The default upstream images are included below, which you can change to your des

```yaml
ROOK_CSI_CEPH_IMAGE: "quay.io/cephcsi/cephcsi:v3.12.0"
ROOK_CSI_REGISTRAR_IMAGE: "registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.10.1"
ROOK_CSI_PROVISIONER_IMAGE: "registry.k8s.io/sig-storage/csi-provisioner:v4.0.1"
ROOK_CSI_ATTACHER_IMAGE: "registry.k8s.io/sig-storage/csi-attacher:v4.5.1"
ROOK_CSI_RESIZER_IMAGE: "registry.k8s.io/sig-storage/csi-resizer:v1.10.1"
ROOK_CSI_SNAPSHOTTER_IMAGE: "registry.k8s.io/sig-storage/csi-snapshotter:v7.0.2"
ROOK_CSI_REGISTRAR_IMAGE: "registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.11.1"
ROOK_CSI_PROVISIONER_IMAGE: "registry.k8s.io/sig-storage/csi-provisioner:v5.0.1"
ROOK_CSI_ATTACHER_IMAGE: "registry.k8s.io/sig-storage/csi-attacher:v4.6.1"
ROOK_CSI_RESIZER_IMAGE: "registry.k8s.io/sig-storage/csi-resizer:v1.11.1"
ROOK_CSI_SNAPSHOTTER_IMAGE: "registry.k8s.io/sig-storage/csi-snapshotter:v8.0.1"
ROOK_CSIADDONS_IMAGE: "quay.io/csiaddons/k8s-sidecar:v0.9.0"
```
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ all: build

# Controller-gen version
# f284e2e8... is master ahead of v0.5.0 which has ability to generate embedded objectmeta in CRDs
CONTROLLER_GEN_VERSION=v0.14.0
CONTROLLER_GEN_VERSION=v0.16.1

# Set GOBIN
ifeq (,$(shell go env GOBIN))
Expand Down
1 change: 1 addition & 0 deletions PendingReleaseNotes.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,4 @@
- CephObjectStore support for keystone authentication for S3 and Swift
(see [#9088](https://github.com/rook/rook/issues/9088)).
- Support K8s versions v1.26 through v1.31.
- Use fully-qualified image names (`docker.io/rook/ceph`) in operator manifests and helm charts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.14.0
controller-gen.kubebuilder.io/version: v0.16.1
creationTimestamp: null
name: cephblockpoolradosnamespaces.ceph.rook.io
spec:
Expand Down
2 changes: 1 addition & 1 deletion build/csv/ceph/ceph.rook.io_cephblockpools.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.14.0
controller-gen.kubebuilder.io/version: v0.16.1
creationTimestamp: null
name: cephblockpools.ceph.rook.io
spec:
Expand Down
2 changes: 1 addition & 1 deletion build/csv/ceph/ceph.rook.io_cephbucketnotifications.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.14.0
controller-gen.kubebuilder.io/version: v0.16.1
creationTimestamp: null
name: cephbucketnotifications.ceph.rook.io
spec:
Expand Down
2 changes: 1 addition & 1 deletion build/csv/ceph/ceph.rook.io_cephbuckettopics.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.14.0
controller-gen.kubebuilder.io/version: v0.16.1
creationTimestamp: null
name: cephbuckettopics.ceph.rook.io
spec:
Expand Down
2 changes: 1 addition & 1 deletion build/csv/ceph/ceph.rook.io_cephclients.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.14.0
controller-gen.kubebuilder.io/version: v0.16.1
creationTimestamp: null
name: cephclients.ceph.rook.io
spec:
Expand Down
12 changes: 11 additions & 1 deletion build/csv/ceph/ceph.rook.io_cephclusters.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.14.0
controller-gen.kubebuilder.io/version: v0.16.1
creationTimestamp: null
name: cephclusters.ceph.rook.io
spec:
Expand Down Expand Up @@ -252,6 +252,7 @@ spec:
format: int32
type: integer
service:
default: ""
type: string
required:
- port
Expand Down Expand Up @@ -339,6 +340,7 @@ spec:
format: int32
type: integer
service:
default: ""
type: string
required:
- port
Expand Down Expand Up @@ -1495,6 +1497,8 @@ spec:
properties:
name:
type: string
request:
type: string
required:
- name
type: object
Expand Down Expand Up @@ -1554,6 +1558,8 @@ spec:
properties:
allowDeviceClassUpdate:
type: boolean
allowOsdCrushWeightUpdate:
type: boolean
backfillFullRatio:
maximum: 1
minimum: 0
Expand Down Expand Up @@ -1638,6 +1644,8 @@ spec:
properties:
name:
type: string
request:
type: string
required:
- name
type: object
Expand Down Expand Up @@ -2830,6 +2838,8 @@ spec:
properties:
name:
type: string
request:
type: string
required:
- name
type: object
Expand Down
4 changes: 3 additions & 1 deletion build/csv/ceph/ceph.rook.io_cephcosidrivers.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.14.0
controller-gen.kubebuilder.io/version: v0.16.1
creationTimestamp: null
name: cephcosidrivers.ceph.rook.io
spec:
Expand Down Expand Up @@ -554,6 +554,8 @@ spec:
properties:
name:
type: string
request:
type: string
required:
- name
type: object
Expand Down
4 changes: 3 additions & 1 deletion build/csv/ceph/ceph.rook.io_cephfilesystemmirrors.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.14.0
controller-gen.kubebuilder.io/version: v0.16.1
creationTimestamp: null
name: cephfilesystemmirrors.ceph.rook.io
spec:
Expand Down Expand Up @@ -563,6 +563,8 @@ spec:
properties:
name:
type: string
request:
type: string
required:
- name
type: object
Expand Down
6 changes: 5 additions & 1 deletion build/csv/ceph/ceph.rook.io_cephfilesystems.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.14.0
controller-gen.kubebuilder.io/version: v0.16.1
creationTimestamp: null
name: cephfilesystems.ceph.rook.io
spec:
Expand Down Expand Up @@ -345,6 +345,7 @@ spec:
format: int32
type: integer
service:
default: ""
type: string
required:
- port
Expand Down Expand Up @@ -928,6 +929,8 @@ spec:
properties:
name:
type: string
request:
type: string
required:
- name
type: object
Expand Down Expand Up @@ -976,6 +979,7 @@ spec:
format: int32
type: integer
service:
default: ""
type: string
required:
- port
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.14.0
controller-gen.kubebuilder.io/version: v0.16.1
creationTimestamp: null
name: cephfilesystemsubvolumegroups.ceph.rook.io
spec:
Expand Down
Loading

0 comments on commit 8ac7f6e

Please sign in to comment.