Skip to content

OCPBUGS-27496#Update provisioner from in-tree to CSI #71398

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 10 additions & 6 deletions modules/dynamic-provisioning-available-plugins.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ configured provider's API to create new storage resources:

ifndef::openshift-dedicated,openshift-rosa[]
|{rh-openstack-first} Cinder
|`kubernetes.io/cinder`
|`cinder.csi.openstack.org`
|

|{rh-openstack} Manila Container Storage Interface (CSI)
Expand All @@ -29,32 +29,36 @@ ifndef::openshift-dedicated,openshift-rosa[]
endif::openshift-dedicated,openshift-rosa[]

|Amazon Elastic Block Store (Amazon EBS)
|`kubernetes.io/aws-ebs`
|`ebs.csi.aws.com`
|For dynamic provisioning when using multiple clusters in different zones,
tag each node with `Key=kubernetes.io/cluster/<cluster_name>,Value=<cluster_id>`
where `<cluster_name>` and `<cluster_id>` are unique per cluster.

ifndef::openshift-dedicated,openshift-rosa[]
|Azure Disk
|`kubernetes.io/azure-disk`
|`disk.csi.azure.com`
|

|Azure File
|`kubernetes.io/azure-file`
|`file.csi.azure.com`
|The `persistent-volume-binder` service account requires permissions to create
and get secrets to store the Azure storage account and keys.
endif::openshift-dedicated,openshift-rosa[]

ifndef::openshift-rosa[]
|GCE Persistent Disk (gcePD)
|`kubernetes.io/gce-pd`
|`pd.csi.storage.gke.io`
|In multi-zone configurations, it is advisable to run one {product-title}
cluster per GCE project to avoid PVs from being created in zones where
no node in the current cluster exists.

|{ibm-power-server-name} Block
|`powervs.csi.ibm.com`
|After installation, the {ibm-power-server-name} Block CSI Driver Operator and {ibm-power-server-name} Block CSI Driver automatically create the required storage classes for dynamic provisioning.

|IBM VPC Block
|`vpc.block.csi.ibm.io`
|
endif::openshift-rosa[]

//|GlusterFS
Expand All @@ -71,7 +75,7 @@ endif::openshift-rosa[]

ifndef::openshift-dedicated,openshift-rosa[]
|link:https://www.vmware.com/support/vsphere.html[VMware vSphere]
|`kubernetes.io/vsphere-volume`
|`csi.vsphere.vmware.com`
|
endif::openshift-dedicated,openshift-rosa[]

Expand Down
2 changes: 1 addition & 1 deletion modules/dynamic-provisioning-aws-definition.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: <storage-class-name> <1>
provisioner: kubernetes.io/aws-ebs
provisioner: ebs.csi.aws.com
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CSI drivers can have different parameters than corresponding in-tree volume plugins.
For AWS EBS, 4.14 understands these options: https://github.com/openshift/aws-ebs-csi-driver/blob/release-4.14/docs/parameters.md (replace 4.14 in the URL with a different versions, 4.15 got a few new ones)

It seems that our documentation is still valid for AWS EBS. The CSI driver has more options that we don't document yet. And the question is if we should, because it's a huge effort - we would need to test the options first.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jsafrane
How about just listing the OCP pre-defined storageclass content (like https://github.com/openshift/aws-ebs-csi-driver-operator/blob/master/assets/storageclass_gp3.yaml) in this "dynamic-provisioning" section and documenting more parameters when introducing the CSI Driver section?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That would work for me

parameters:
type: io1 <2>
iopsPerGB: "10" <3>
Expand Down
2 changes: 1 addition & 1 deletion modules/dynamic-provisioning-azure-disk-definition.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: <storage-class-name> <1>
provisioner: kubernetes.io/azure-disk
provisioner: disk.csi.azure.com
volumeBindingMode: WaitForFirstConsumer <2>
allowVolumeExpansion: true
parameters:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Azure Disk CSI driver has their parameters documented here: https://github.com/openshift/azure-disk-csi-driver/blob/release-4.14/docs/driver-parameters.md

storageaccounttype is deprecated, skuName should be used instead. And there is a plenty of new options. Again, not tested by us, so question is, if they should be documented.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ mountOptions:
- uid=1500 <1>
- gid=1500 <2>
- mfsymlinks <3>
provisioner: kubernetes.io/azure-file
provisioner: file.csi.azure.com
parameters:
location: eastus
skuName: Standard_LRS
Expand Down
2 changes: 1 addition & 1 deletion modules/dynamic-provisioning-azure-file-definition.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: <azure-file> <1>
provisioner: kubernetes.io/azure-file
provisioner: file.csi.azure.com
parameters:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Upstream docs: https://github.com/openshift/azure-file-csi-driver/blob/release-4.14/docs/driver-parameters.md

Our doc looks OK, upstream only documents much more options.

location: eastus <2>
skuName: Standard_LRS <3>
Expand Down
8 changes: 4 additions & 4 deletions modules/dynamic-provisioning-change-default-class.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@ $ oc get storageclass
[source,terminal]
----
NAME TYPE
gp3 (default) kubernetes.io/aws-ebs <1>
standard kubernetes.io/aws-ebs
gp3 (default) ebs.csi.aws.com <1>
standard ebs.csi.aws.com
----
<1> `(default)` indicates the default storage class.

Expand Down Expand Up @@ -74,6 +74,6 @@ $ oc get storageclass
[source,terminal]
----
NAME TYPE
gp3 kubernetes.io/aws-ebs
standard (default) kubernetes.io/aws-ebs
gp3 ebs.csi.aws.com
standard (default) ebs.csi.aws.com
----
2 changes: 1 addition & 1 deletion modules/dynamic-provisioning-cinder-definition.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: <storage-class-name> <1>
provisioner: kubernetes.io/cinder
provisioner: cinder.csi.openstack.org
parameters:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

type: fast <2>
availability: nova <3>
Expand Down
2 changes: 1 addition & 1 deletion modules/dynamic-provisioning-gce-definition.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: <storage-class-name> <1>
provisioner: kubernetes.io/gce-pd
provisioner: pd.csi.storage.gke.io
parameters:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Upstream doc: https://github.com/openshift/gcp-pd-csi-driver/blob/release-4.14/README.md#createvolume-parameters

Our doc looks OK, upstream only documents has few more options

type: pd-standard <2>
replication-type: none
Expand Down
5 changes: 2 additions & 3 deletions modules/dynamic-provisioning-storage-class-definition.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ metadata:
annotations: <4>
storageclass.kubernetes.io/is-default-class: 'true'
...
provisioner: kubernetes.io/aws-ebs <5>
provisioner: ebs.csi.aws.com <5>
parameters: <6>
type: gp3
...
Expand All @@ -32,5 +32,4 @@ parameters: <6>
<3> (required) The name of the storage class.
<4> (optional) Annotations for the storage class.
<5> (required) The type of provisioner associated with this storage class.
<6> (optional) The parameters required for the specific provisioner, this
will change from plugin to plug-iin.
<6> (optional) The parameters required for the specific provisioner. This is different for each plugin.