apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: custom-csi-storageclass
provisioner: cinder.csi.openstack.org
volumeBindingMode: WaitForFirstConsumer
allowVolumeExpansion: true
parameters:
availability: <availability_zone_name>
You configure the image registry to use custom storage on clusters that run on OpenStack. You must configure custom storage to use a Cinder volume in a specific availability zone.
After you install a cluster on OpenStack, you can use a Cinder volume that is in a specific availability zone for registry storage.
Create a YAML file that specifies the storage class and availability zone to use. For example:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: custom-csi-storageclass
provisioner: cinder.csi.openstack.org
volumeBindingMode: WaitForFirstConsumer
allowVolumeExpansion: true
parameters:
availability: <availability_zone_name>
|
OKD does not verify the existence of the availability zone you choose. Verify the name of the availability zone before you apply the configuration. |
From a command line, apply the configuration:
$ oc apply -f <storage_class_file_name>
storageclass.storage.k8s.io/custom-csi-storageclass created
Create a YAML file that specifies a persistent volume claim (PVC) that uses your storage class and the openshift-image-registry namespace. For example:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: csi-pvc-imageregistry
namespace: openshift-image-registry
annotations:
imageregistry.openshift.io: "true"
spec:
accessModes:
- ReadWriteOnce
volumeMode: Filesystem
resources:
requests:
storage: 100Gi
storageClassName: <your_custom_storage_class>
where:
openshift-image-registrySpecifying this namespace allows the Cluster Image Registry Operator to consume the PVC.
storageThis optional field adjusts the volume size.
storageClassNameSpecifies the name of the storage class that you created.
From a command line, apply the configuration:
$ oc apply -f <pvc_file_name>
persistentvolumeclaim/csi-pvc-imageregistry created
Replace the original persistent volume claim in the image registry configuration with the new claim:
$ oc patch configs.imageregistry.operator.openshift.io/cluster --type 'json' -p='[{"op": "replace", "path": "/spec/storage/pvc/claim", "value": "csi-pvc-imageregistry"}]'
config.imageregistry.operator.openshift.io/cluster patched
Over the next several minutes, the configuration is updated.
To confirm that the registry is using the resources that you defined:
Verify that the PVC claim value is identical to the name that you provided in your PVC definition:
$ oc get configs.imageregistry.operator.openshift.io/cluster -o yaml
...
status:
...
managementState: Managed
pvc:
claim: csi-pvc-imageregistry
...
Verify that the status of the PVC is Bound:
$ oc get pvc -n openshift-image-registry csi-pvc-imageregistry
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
csi-pvc-imageregistry Bound pvc-72a8f9c9-f462-11e8-b6b6-fa163e18b7b5 100Gi RWO custom-csi-storageclass 11m