Chapter 2. Deploying OpenShift Container Storage on Red Hat OpenStack Platform in internal mode Deploying OpenShift Container Storage on OpenShift Container Platform in internal mode using dynamic storage devices provided by Red Hat OpenStack Platform installer-provisioned infrastructure (IPI) enables you to create internal cluster resources. This results in internal provisioning of the base services, which helps to make additional storage classes available to applications. Ensure that you have addressed the requirements in Preparing to deploy OpenShift Container Storage chapter before proceeding with the below steps for deploying using dynamic storage devices: Install the Red Hat OpenShift Container Storage Operator . Create the OpenShift Container Storage Cluster Service 2.1. Installing Red Hat OpenShift Container Storage Operator You can install Red Hat OpenShift Container Storage Operator using the Red Hat OpenShift Container Platform Operator Hub. Prerequisites Access to an OpenShift Container Platform cluster using an account with cluster-admin and operator installation permissions. You have at least three worker nodes in the Red Hat OpenShift Container Platform cluster. You have satisfied any additional requirements required. For more information, see Planning your deployment . Note When you need to override the cluster-wide default node selector for OpenShift Container Storage, you can use the following command to specify a blank node selector for the openshift-storage namespace (create openshift-storage namespace in this case): Taint a node as infra to ensure only Red Hat OpenShift Container Storage resources are scheduled on that node. This helps you save on subscription costs. For more information, see How to use dedicated worker nodes for Red Hat OpenShift Container Storage chapter in Managing and Allocating Storage Resources guide. Procedure Log in to OpenShift Web Console. Click Operators OperatorHub . Search for OpenShift Container Storage from the list of operators and click on it. Click Install . Set the following options on the Install Operator page: Channel as stable-4.8 . Installation Mode as A specific namespace on the cluster . Installed Namespace as Operator recommended namespace openshift-storage . If Namespace openshift-storage does not exist, it will be created during the operator installation. Approval Strategy as Automatic or Manual . Click Install . If you select Automatic updates, the Operator Lifecycle Manager (OLM) automatically upgrades the running instance of your operator without any intervention. If you select Manual updates, the OLM creates an update request. As a cluster administrator, you must then manually approve that update request to have the operator updated to the new version. Verification step Verify that the OpenShift Container Storage Operator shows a green tick indicating successful installation. 2.2. Creating an OpenShift Container Storage Cluster Service in internal mode Use this procedure to create an OpenShift Container Storage Cluster Service after you install the OpenShift Container Storage operator. Prerequisites The OpenShift Container Storage operator must be installed from the Operator Hub. For more information, see Installing OpenShift Container Storage Operator using the Operator Hub . Procedure Log into the OpenShift Web Console. Click Operators Installed Operators to view all the installed operators. Ensure that the Project selected is openshift-storage . Click OpenShift Container Storage > Create Instance link of Storage Cluster. Select Mode is set to Internal by default. Select Capacity and nodes Select Storage Class . By default, it is set to standard . Select Requested Capacity from the drop down list. It is set to 2 TiB by default. You can use the drop down to modify the capacity value. Note Once you select the initial storage capacity, cluster expansion is performed only using the selected usable capacity (3 times of raw storage). In the Select Nodes section, select at least three available nodes. For cloud platforms with multiple availability zones, ensure that the Nodes are spread across different Locations/availability zones. If the nodes selected do not match the OpenShift Container Storage cluster requirement of an aggregated 30 CPUs and 72 GiB of RAM, a minimal cluster will be deployed. For minimum starting node requirements, see Resource requirements section in Planning guide. Click . (Optional) Set Security and network configuration Select the Enable encryption checkbox to encrypt block and file storage. Choose any one or both Encryption level : Cluster-wide encryption to encrypt the entire cluster (block and file). Storage class encryption to create encrypted persistent volume (block only) using encryption enabled storage class. Select the Connect to an external key management service checkbox. This is optional for cluster-wide encryption. Key Management Service Provider is set to Vault by default. Enter Vault Service Name , host Address of Vault server ('https://<hostname or ip>'), Port number and Token . Expand Advanced Settings to enter additional settings and certificate details based on your Vault configuration: Enter the Key Value secret path in Backend Path that is dedicated and unique to OpenShift Container Storage. (Optional) Enter TLS Server Name and Vault Enterprise Namespace . Provide CA Certificate , Client Certificate and Client Private Key by uploading the respective PEM encoded certificate file. Click Save . Select Default (SDN) if you are using a single network or Custom (Multus) Network if you plan on using multiple network interfaces. Select a Public Network Interface from drop down. Select a Cluster Network Interface from drop down. Note If only using one additional network interface select the single NetworkAttachementDefinition (i.e. ocs-public-cluster) for the Public Network Interface and leave the Cluster Network Interface blank. Click . Review the configuration details. To modify any configuration settings, click Back to go back to the configuration page. Click Create . Edit the configmap if Vault Key/Value (KV) secret engine API, version 2 is used for cluster-wide encryption with Key Management System (KMS). On the OpenShift Web Console, navigate to Workloads ConfigMaps . To view the KMS connection details, click ocs-kms-connection-details . Edit the configmap. Click Action menu (...) Edit ConfigMap . Set the VAULT_BACKEND parameter to v2 . Click Save . Verification steps On the storage cluster details page, the storage cluster name displays a green tick to it to indicate that the cluster was created successfully. Verify that the final Status of the installed storage cluster shows as Phase: Ready with a green tick mark. Click Operators Installed Operators Storage Cluster link to view the storage cluster installation status. Alternatively, when you are on the Operator Details tab, you can click on the Storage Cluster tab to view the status. To verify that OpenShift Container Storage is successfully installed, see Verifying OpenShift Container Storage deployment . 2.3. Verifying OpenShift Container Storage deployment Use this section to verify that OpenShift Container Storage is deployed correctly. 2.3.1. Verifying the state of the pods To verify that the pods of OpenShift Containers Storage are in running state, follow the below procedure: Procedure Log in to OpenShift Web Console. Click Workloads Pods from the left pane of the OpenShift Web Console. Select openshift-storage from the Project drop down list. For more information on the expected number of pods for each component and how it varies depending on the number of nodes, see Table 2.1, "Pods corresponding to OpenShift Container storage cluster" . Click on the Running and Completed tabs to verify that the pods are running and in a completed state: Table 2.1. Pods corresponding to OpenShift Container storage cluster Component Corresponding pods OpenShift Container Storage Operator ocs-operator-* (1 pod on any worker node) ocs-metrics-exporter-* Rook-ceph Operator rook-ceph-operator-* (1 pod on any worker node) Multicloud Object Gateway noobaa-operator-* (1 pod on any worker node) noobaa-core-* (1 pod on any storage node) noobaa-db-pg-* (1 pod on any storage node) noobaa-endpoint-* (1 pod on any storage node) MON rook-ceph-mon-* (3 pods distributed across storage nodes) MGR rook-ceph-mgr-* (1 pod on any storage node) MDS rook-ceph-mds-ocs-storagecluster-cephfilesystem-* (2 pods distributed across storage nodes) CSI cephfs csi-cephfsplugin-* (1 pod on each worker node) csi-cephfsplugin-provisioner-* (2 pods distributed across worker nodes) rbd csi-rbdplugin-* (1 pod on each worker node) csi-rbdplugin-provisioner-* (2 pods distributed across worker nodes) rook-ceph-crashcollector rook-ceph-crashcollector-* (1 pod on each storage node) OSD rook-ceph-osd-* (1 pod for each device) rook-ceph-osd-prepare-ocs-deviceset-* (1 pod for each device) 2.3.2. Verifying the OpenShift Container Storage cluster is healthy To verify that the cluster of OpenShift Container Storage is healthy, follow the steps in the procedure. Procedure Click Storage Overview and click the Block and File tab. In the Status card , verify that Storage Cluster and Data Resiliency has a green tick mark. In the Details card , verify that the cluster information is displayed. For more information on the health of the OpenShift Container Storage clusters using the Block and File dashboard, see Monitoring OpenShift Container Storage . 2.3.3. Verifying the Multicloud Object Gateway is healthy To verify that the OpenShift Container Storage Multicloud Object Gateway is healthy, follow the steps in the procedure. Procedure Click Storage Overview from the OpenShift Web Console and click the Object tab. In the Status card , verify that both Object Service and Data Resiliency are in Ready state (green tick). In the Details card , verify that the Multicloud Object Gateway information is displayed. For more information on the health of the OpenShift Container Storage cluster using the object service dashboard, see Monitoring OpenShift Container Storage . 2.3.4. Verifying that the OpenShift Container Storage specific storage classes exist To verify the storage classes exists in the cluster, follow the steps in the procedure. Procedure Click Storage Storage Classes from the OpenShift Web Console. Verify that the following storage classes are created with the OpenShift Container Storage cluster creation: ocs-storagecluster-ceph-rbd ocs-storagecluster-cephfs openshift-storage.noobaa.io 2.4. Uninstalling OpenShift Container Storage in internal mode 2.4.1. Uninstalling OpenShift Container Storage in Internal mode Use the steps in this section to uninstall OpenShift Container Storage. Uninstall Annotations Annotations on the Storage Cluster are used to change the behavior of the uninstall process. To define the uninstall behavior, the following two annotations have been introduced in the storage cluster: uninstall.ocs.openshift.io/cleanup-policy: delete uninstall.ocs.openshift.io/mode: graceful The below table provides information on the different values that can used with these annotations: Table 2.2. uninstall.ocs.openshift.io uninstall annotations descriptions Annotation Value Default Behavior cleanup-policy delete Yes Rook cleans up the physical drives and the DataDirHostPath cleanup-policy retain No Rook does not clean up the physical drives and the DataDirHostPath mode graceful Yes Rook and NooBaa pauses the uninstall process until the PVCs and the OBCs are removed by the administrator/user mode forced No Rook and NooBaa proceeds with uninstall even if PVCs/OBCs provisioned using Rook and NooBaa exist respectively. You can change the cleanup policy or the uninstall mode by editing the value of the annotation by using the following commands: Prerequisites Ensure that the OpenShift Container Storage cluster is in a healthy state. The uninstall process can fail when some of the pods are not terminated successfully due to insufficient resources or nodes. In case the cluster is in an unhealthy state, contact Red Hat Customer Support before uninstalling OpenShift Container Storage. Ensure that applications are not consuming persistent volume claims (PVCs) or object bucket claims (OBCs) using the storage classes provided by OpenShift Container Storage. If any custom resources (such as custom storage classes, cephblockpools) were created by the admin, they must be deleted by the admin after removing the resources which consumed them. Procedure Delete the volume snapshots that are using OpenShift Container Storage. List the volume snapshots from all the namespaces. From the output of the command, identify and delete the volume snapshots that are using OpenShift Container Storage. Delete PVCs and OBCs that are using OpenShift Container Storage. In the default uninstall mode (graceful), the uninstaller waits till all the PVCs and OBCs that use OpenShift Container Storage are deleted. If you wish to delete the Storage Cluster without deleting the PVCs beforehand, you may set the uninstall mode annotation to forced and skip this step. Doing this results in orphan PVCs and OBCs in the system. Delete OpenShift Container Platform monitoring stack PVCs using OpenShift Container Storage. For more information, see Section 2.4.1.1, "Removing monitoring stack from OpenShift Container Storage" . Delete OpenShift Container Platform Registry PVCs using OpenShift Container Storage. For more information, see Section 2.4.1.2, "Removing OpenShift Container Platform registry from OpenShift Container Storage" . Delete OpenShift Container Platform logging PVCs using OpenShift Container Storage. For more information, see Section 2.4.1.3, "Removing the cluster logging operator from OpenShift Container Storage" . Delete other PVCs and OBCs provisioned using OpenShift Container Storage. Following script is sample script to identify the PVCs and OBCs provisioned using OpenShift Container Storage. The script ignores the PVCs that are used internally by Openshift Container Storage. Note Omit RGW_PROVISIONER for cloud platforms. Delete the OBCs. Delete the PVCs. Note Ensure that you have removed any custom backing stores, bucket classes, etc., created in the cluster. Delete the Storage Cluster object and wait for the removal of the associated resources. Check for cleanup pods if the uninstall.ocs.openshift.io/cleanup-policy was set to delete (default) and ensure that their status is Completed . Confirm that the directory /var/lib/rook is now empty. This directory will be empty only if the uninstall.ocs.openshift.io/cleanup-policy annotation was set to delete (default). If encryption was enabled at the time of install, remove dm-crypt managed device-mapper mapping from OSD devices on all the OpenShift Container Storage nodes. Create a debug pod and chroot to the host on the storage node. Get Device names and make note of the OpenShift Container Storage devices. Remove the mapped device. Note If the above command gets stuck due to insufficient privileges, run the following commands: Press CTRL+Z to exit the above command. Find PID of the process which was stuck. Terminate the process using kill command. Verify that the device name is removed. Delete the namespace and wait till the deletion is complete. You need to switch to another project if openshift-storage is the active project. For example: The project is deleted if the following command returns a NotFound error. Note While uninstalling OpenShift Container Storage, if namespace is not deleted completely and remains in Terminating state, perform the steps in Troubleshooting and deleting remaining resources during Uninstall to identify objects that are blocking the namespace from being terminated. Unlabel the storage nodes. Remove the OpenShift Container Storage taint if the nodes were tainted. Confirm all PVs provisioned using OpenShift Container Storage are deleted. If there is any PV left in the Released state, delete it. Delete the Multicloud Object Gateway storageclass. Remove CustomResourceDefinitions . Optional: To ensure that the vault keys are deleted permanently you need to manually delete the metadata associated with the vault key. Note Execute this step only if Vault Key/Value (KV) secret engine API, version 2 is used for cluster-wide encryption with Key Management System (KMS) since the vault keys are marked as deleted and not permanently deleted during the uninstallation of OpenShift Container Storage. You can always restore it later if required. List the keys in the vault. <backend_path> Is the path in the vault where the encryption keys are stored. For example: Example output: List the metadata associated with the vault key. For the Multicloud Object Gateway (MCG) key: <key> Is the encryption key. For Example: Example output: Delete the metadata. For the MCG key: <key> Is the encryption key. For Example: Example output: Repeat these steps to delete the metadata associated with all the vault keys. To ensure that OpenShift Container Storage is uninstalled completely, on the OpenShift Container Platform Web Console, Click Storage . Verify that Overview no longer appears under Storage. 2.4.1.1. Removing monitoring stack from OpenShift Container Storage Use this section to clean up the monitoring stack from OpenShift Container Storage. The PVCs that are created as a part of configuring the monitoring stack are in the openshift-monitoring namespace. Prerequisites PVCs are configured to use OpenShift Container Platform monitoring stack. For information, see configuring monitoring stack . Procedure List the pods and PVCs that are currently running in the openshift-monitoring namespace. Edit the monitoring configmap . Remove any config sections that reference the OpenShift Container Storage storage classes as shown in the following example and save it. Before editing After editing In this example, alertmanagerMain and prometheusK8s monitoring components are using the OpenShift Container Storage PVCs. Delete relevant PVCs. Make sure you delete all the PVCs that are consuming the storage classes. 2.4.1.2. Removing OpenShift Container Platform registry from OpenShift Container Storage To clean the OpenShift Container Platform registry from OpenShift Container Storage, follow the steps in the procedure. If you want to configure an alternative storage, see image registry The PVCs created as a part of configuring OpenShift Container Platform registry are in the openshift-image-registry namespace. Prerequisites The image registry must be configured to use an OpenShift Container Storage PVC. Procedure Edit the configs.imageregistry.operator.openshift.io object and remove the content in the storage section. Before editing After editing In this example, the PVC is called registry-cephfs-rwx-pvc , which is now safe to delete. Delete the PVC. 2.4.1.3. Removing the cluster logging operator from OpenShift Container Storage To clean the cluster logging operator from the OpenShift Container Storage, follow the steps in the procedure. The PVCs created as a part of configuring cluster logging operator are in the openshift-logging namespace. Prerequisites The cluster logging instance must be configured to use OpenShift Container Storage PVCs. Procedure Remove the ClusterLogging instance in the namespace. The PVCs in the openshift-logging namespace are now safe to delete. Delete PVCs.

Commands:
oc annotate namespace openshift-storage openshift.io/node-selector=
kind: ConfigMap apiVersion: v1 metadata: name: ocs-kms-connection-details [...] data: KMS_PROVIDER: vault KMS_SERVICE_NAME: vault [...] VAULT_BACKEND: v2 [...]
oc annotate storagecluster -n openshift-storage ocs-storagecluster uninstall.ocs.openshift.io/cleanup-policy="retain" --overwrite storagecluster.ocs.openshift.io/ocs-storagecluster annotated
oc annotate storagecluster -n openshift-storage ocs-storagecluster uninstall.ocs.openshift.io/mode="forced" --overwrite storagecluster.ocs.openshift.io/ocs-storagecluster annotated
oc get volumesnapshot --all-namespaces
oc delete volumesnapshot <VOLUME-SNAPSHOT-NAME> -n <NAMESPACE>
#!/bin/bash RBD_PROVISIONER="openshift-storage.rbd.csi.ceph.com" CEPHFS_PROVISIONER="openshift-storage.cephfs.csi.ceph.com" NOOBAA_PROVISIONER="openshift-storage.noobaa.io/obc" RGW_PROVISIONER="openshift-storage.ceph.rook.io/bucket" NOOBAA_DB_PVC="noobaa-db" NOOBAA_BACKINGSTORE_PVC="noobaa-default-backing-store-noobaa-pvc" Find all the OCS StorageClasses OCS_STORAGECLASSES=USD(oc get storageclasses | grep -e "USDRBD_PROVISIONER" -e "USDCEPHFS_PROVISIONER" -e "USDNOOBAA_PROVISIONER" -e "USDRGW_PROVISIONER" | awk '{print USD1}') List PVCs in each of the StorageClasses for SC in USDOCS_STORAGECLASSES do echo "======================================================================" echo "USDSC StorageClass PVCs and OBCs" echo "======================================================================" oc get pvc --all-namespaces --no-headers 2>/dev/null | grep USDSC | grep -v -e "USDNOOBAA_DB_PVC" -e "USDNOOBAA_BACKINGSTORE_PVC" oc get obc --all-namespaces --no-headers 2>/dev/null | grep USDSC echo done
oc delete obc <obc name> -n <project name>
oc delete pvc <pvc name> -n <project-name>
oc delete -n openshift-storage storagecluster --all --wait=true
oc get pods -n openshift-storage | grep -i cleanup NAME READY STATUS RESTARTS AGE cluster-cleanup-job-<xx> 0/1 Completed 0 8m35s cluster-cleanup-job-<yy> 0/1 Completed 0 8m35s cluster-cleanup-job-<zz> 0/1 Completed 0 8m35s
for i in USD(oc get node -l cluster.ocs.openshift.io/openshift-storage= -o jsonpath='{ .items[*].metadata.name }'); do oc debug node/USD{i} -- chroot /host ls -l /var/lib/rook; done
oc debug node/<node name> chroot /host
dmsetup ls ocs-deviceset-0-data-0-57snx-block-dmcrypt (253:1)
cryptsetup luksClose --debug --verbose ocs-deviceset-0-data-0-57snx-block-dmcrypt
ps -ef | grep crypt
kill -9 <PID>
dmsetup ls
oc project default oc delete project openshift-storage --wait=true --timeout=5m
oc get project openshift-storage
oc label nodes --all cluster.ocs.openshift.io/openshift-storage- oc label nodes --all topology.rook.io/rack-
oc adm taint nodes --all node.ocs.openshift.io/storage-
oc get pv oc delete pv <pv name>
oc delete storageclass openshift-storage.noobaa.io --wait=true --timeout=5m
oc delete crd backingstores.noobaa.io bucketclasses.noobaa.io cephblockpools.ceph.rook.io cephclusters.ceph.rook.io cephfilesystems.ceph.rook.io cephnfses.ceph.rook.io cephobjectstores.ceph.rook.io cephobjectstoreusers.ceph.rook.io noobaas.noobaa.io ocsinitializations.ocs.openshift.io storageclusters.ocs.openshift.io cephclients.ceph.rook.io cephobjectrealms.ceph.rook.io cephobjectzonegroups.ceph.rook.io cephobjectzones.ceph.rook.io cephrbdmirrors.ceph.rook.io --wait=true --timeout=5m
vault kv list <backend_path>
vault kv list kv-v2
Keys ----- NOOBAA_ROOT_SECRET_PATH/ rook-ceph-osd-encryption-key-ocs-deviceset-thin-0-data-0m27q8 rook-ceph-osd-encryption-key-ocs-deviceset-thin-1-data-0sq227 rook-ceph-osd-encryption-key-ocs-deviceset-thin-2-data-0xzszb
vault kv get kv-v2/ <key>
vault kv get kv-v2/NOOBAA_ROOT_SECRET_PATH/ <key>
vault kv get kv-v2/rook-ceph-osd-encryption-key-ocs-deviceset-thin-0-data-0m27q8
====== Metadata ====== Key Value --- ----- created_time 2021-06-23T10:06:30.650103555Z deletion_time 2021-06-23T11:46:35.045328495Z destroyed false version 1
vault kv metadata delete kv-v2/ <key>
vault kv metadata delete kv-v2/NOOBAA_ROOT_SECRET_PATH/ <key>
vault kv metadata delete kv-v2/rook-ceph-osd-encryption-key-ocs-deviceset-thin-0-data-0m27q8
Success! Data deleted (if it existed) at: kv-v2/metadata/rook-ceph-osd-encryption-key-ocs-deviceset-thin-0-data-0m27q8
oc get pod,pvc -n openshift-monitoring NAME READY STATUS RESTARTS AGE pod/alertmanager-main-0 3/3 Running 0 8d pod/alertmanager-main-1 3/3 Running 0 8d pod/alertmanager-main-2 3/3 Running 0 8d pod/cluster-monitoring- operator-84457656d-pkrxm 1/1 Running 0 8d pod/grafana-79ccf6689f-2ll28 2/2 Running 0 8d pod/kube-state-metrics- 7d86fb966-rvd9w 3/3 Running 0 8d pod/node-exporter-25894 2/2 Running 0 8d pod/node-exporter-4dsd7 2/2 Running 0 8d pod/node-exporter-6p4zc 2/2 Running 0 8d pod/node-exporter-jbjvg 2/2 Running 0 8d pod/node-exporter-jj4t5 2/2 Running 0 6d18h pod/node-exporter-k856s 2/2 Running 0 6d18h pod/node-exporter-rf8gn 2/2 Running 0 8d pod/node-exporter-rmb5m 2/2 Running 0 6d18h pod/node-exporter-zj7kx 2/2 Running 0 8d pod/openshift-state-metrics- 59dbd4f654-4clng 3/3 Running 0 8d pod/prometheus-adapter- 5df5865596-k8dzn 1/1 Running 0 7d23h pod/prometheus-adapter- 5df5865596-n2gj9 1/1 Running 0 7d23h pod/prometheus-k8s-0 6/6 Running 1 8d pod/prometheus-k8s-1 6/6 Running 1 8d pod/prometheus-operator- 55cfb858c9-c4zd9 1/1 Running 0 6d21h pod/telemeter-client- 78fc8fc97d-2rgfp 3/3 Running 0 8d NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE persistentvolumeclaim/my-alertmanager-claim-alertmanager-main-0 Bound pvc-0d519c4f-15a5-11ea-baa0-026d231574aa 40Gi RWO ocs-storagecluster-ceph-rbd 8d persistentvolumeclaim/my-alertmanager-claim-alertmanager-main-1 Bound pvc-0d5a9825-15a5-11ea-baa0-026d231574aa 40Gi RWO ocs-storagecluster-ceph-rbd 8d persistentvolumeclaim/my-alertmanager-claim-alertmanager-main-2 Bound pvc-0d6413dc-15a5-11ea-baa0-026d231574aa 40Gi RWO ocs-storagecluster-ceph-rbd 8d persistentvolumeclaim/my-prometheus-claim-prometheus-k8s-0 Bound pvc-0b7c19b0-15a5-11ea-baa0-026d231574aa 40Gi RWO ocs-storagecluster-ceph-rbd 8d persistentvolumeclaim/my-prometheus-claim-prometheus-k8s-1 Bound pvc-0b8aed3f-15a5-11ea-baa0-026d231574aa 40Gi RWO ocs-storagecluster-ceph-rbd 8d
oc -n openshift-monitoring edit configmap cluster-monitoring-config
. . . apiVersion: v1 data: config.yaml: | alertmanagerMain: volumeClaimTemplate: metadata: name: my-alertmanager-claim spec: resources: requests: storage: 40Gi storageClassName: ocs-storagecluster-ceph-rbd prometheusK8s: volumeClaimTemplate: metadata: name: my-prometheus-claim spec: resources: requests: storage: 40Gi storageClassName: ocs-storagecluster-ceph-rbd kind: ConfigMap metadata: creationTimestamp: "2019-12-02T07:47:29Z" name: cluster-monitoring-config namespace: openshift-monitoring resourceVersion: "22110" selfLink: /api/v1/namespaces/openshift-monitoring/configmaps/cluster-monitoring-config uid: fd6d988b-14d7-11ea-84ff-066035b9efa8 . . .
. . . apiVersion: v1 data: config.yaml: | kind: ConfigMap metadata: creationTimestamp: "2019-11-21T13:07:05Z" name: cluster-monitoring-config namespace: openshift-monitoring resourceVersion: "404352" selfLink: /api/v1/namespaces/openshift-monitoring/configmaps/cluster-monitoring-config uid: d12c796a-0c5f-11ea-9832-063cd735b81c . . .
oc delete -n openshift-monitoring pvc <pvc-name> --wait=true --timeout=5m
oc edit configs.imageregistry.operator.openshift.io
. . . storage: pvc: claim: registry-cephfs-rwx-pvc . . .
. . . storage: . . .
oc delete pvc <pvc-name> -n openshift-image-registry --wait=true --timeout=5m
oc delete clusterlogging instance -n openshift-logging --wait=true --timeout=5m
oc delete pvc <pvc-name> -n openshift-logging --wait=true --timeout=5m