<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://infocepo.com/wiki/index.php?action=history&amp;feed=atom&amp;title=K8s-odf-rook-ceph</id>
	<title>K8s-odf-rook-ceph - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://infocepo.com/wiki/index.php?action=history&amp;feed=atom&amp;title=K8s-odf-rook-ceph"/>
	<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=K8s-odf-rook-ceph&amp;action=history"/>
	<updated>2026-05-16T03:14:54Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.13</generator>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=K8s-odf-rook-ceph&amp;diff=1358&amp;oldid=prev</id>
		<title>Tcepo: Created page with &quot;&lt;syntaxhighlight lang=&quot;bash&quot;&gt; #!/bin/bash  #==OPENSHIFT STORAGE/ODF== #https://red-hat-storage.github.io/ocs-training/training/ocs4/ocs4-install-no-ui.html#_installing_openshi...&quot;</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=K8s-odf-rook-ceph&amp;diff=1358&amp;oldid=prev"/>
		<updated>2023-02-24T10:13:04Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt; #!/bin/bash  #==OPENSHIFT STORAGE/ODF== #https://red-hat-storage.github.io/ocs-training/training/ocs4/ocs4-install-no-ui.html#_installing_openshi...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
#==OPENSHIFT STORAGE/ODF==&lt;br /&gt;
#https://red-hat-storage.github.io/ocs-training/training/ocs4/ocs4-install-no-ui.html#_installing_openshift_container_storage&lt;br /&gt;
#https://access.redhat.com/articles/5692201&lt;br /&gt;
&lt;br /&gt;
#&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#odf.sh &amp;lt;size&amp;gt;&lt;br /&gt;
#size(GB)=supérieur à 100 et inférieur à taille disque d'un storage node&lt;br /&gt;
&lt;br /&gt;
#export size=$1&lt;br /&gt;
export size=600&lt;br /&gt;
&lt;br /&gt;
. ~/OPENSHIFT_INSTALL_VARS.sh&lt;br /&gt;
set -a&lt;br /&gt;
majorVersion=$(echo ${versionOPENSHIFT} |sed -rn 's#^([0-9]+\.[0-9]+)(|.[0-9\.]+)$#\1#p' )&lt;br /&gt;
set +a&lt;br /&gt;
&lt;br /&gt;
oc get nodes |sed -rn 's#^(.*storage[^[:space:]]+).*$#\1#p' |while read i ;do&lt;br /&gt;
  oc adm taint node $i node.ocs.openshift.io/storage=&amp;quot;true&amp;quot;:NoSchedule&lt;br /&gt;
  oc label node $i node-role.kubernetes.io/worker=''&lt;br /&gt;
  oc label node $i node-role.kubernetes.io/infra=''&lt;br /&gt;
  oc label node $i cluster.ocs.openshift.io/openshift-storage=''&lt;br /&gt;
done&lt;br /&gt;
cat &amp;lt;&amp;lt;EOF | oc apply -f -&lt;br /&gt;
apiVersion: v1&lt;br /&gt;
kind: Namespace&lt;br /&gt;
metadata:&lt;br /&gt;
 name: openshift-local-storage&lt;br /&gt;
spec: {}&lt;br /&gt;
EOF&lt;br /&gt;
cat &amp;lt;&amp;lt;EOF | oc apply -f -&lt;br /&gt;
apiVersion: operators.coreos.com/v1&lt;br /&gt;
kind: OperatorGroup&lt;br /&gt;
metadata:&lt;br /&gt;
 name: local-operator-group&lt;br /&gt;
 namespace: openshift-local-storage&lt;br /&gt;
spec:&lt;br /&gt;
 targetNamespaces:&lt;br /&gt;
 - openshift-local-storage&lt;br /&gt;
EOF&lt;br /&gt;
cat &amp;lt;&amp;lt;EOF | oc apply -f -&lt;br /&gt;
apiVersion: operators.coreos.com/v1alpha1&lt;br /&gt;
kind: Subscription&lt;br /&gt;
metadata:&lt;br /&gt;
 name: local-storage-operator&lt;br /&gt;
 namespace: openshift-local-storage&lt;br /&gt;
spec:&lt;br /&gt;
 channel: &amp;quot;${majorVersion}&amp;quot;  # &amp;lt;-- Channel should be used corresponding to the OCP version being used.&lt;br /&gt;
 installPlanApproval: Automatic&lt;br /&gt;
 name: local-storage-operator&lt;br /&gt;
 source: redhat-operators  # &amp;lt;-- Modify the name of the redhat-operators catalogsource if not default&lt;br /&gt;
 sourceNamespace: openshift-marketplace&lt;br /&gt;
EOF&lt;br /&gt;
sleep 80&lt;br /&gt;
cat &amp;lt;&amp;lt;EOF | oc apply -f -&lt;br /&gt;
apiVersion: local.storage.openshift.io/v1alpha1&lt;br /&gt;
kind: LocalVolumeDiscovery&lt;br /&gt;
metadata:&lt;br /&gt;
 name: auto-discover-devices&lt;br /&gt;
 namespace: openshift-local-storage&lt;br /&gt;
spec:&lt;br /&gt;
 nodeSelector:&lt;br /&gt;
   nodeSelectorTerms:&lt;br /&gt;
     - matchExpressions:&lt;br /&gt;
       - key: cluster.ocs.openshift.io/openshift-storage&lt;br /&gt;
         operator: In&lt;br /&gt;
         values:&lt;br /&gt;
           - &amp;quot;&amp;quot;&lt;br /&gt;
EOF&lt;br /&gt;
sleep 40&lt;br /&gt;
#oc get localvolumediscoveries -n openshift-local-storage&lt;br /&gt;
#oc get localvolumediscoveryresults -n openshift-local-storage&lt;br /&gt;
cat &amp;lt;&amp;lt; EOT &amp;gt;localvolumeset.yaml&lt;br /&gt;
apiVersion: local.storage.openshift.io/v1alpha1&lt;br /&gt;
kind: LocalVolumeSet&lt;br /&gt;
metadata:&lt;br /&gt;
 name: local-block&lt;br /&gt;
 namespace: openshift-local-storage&lt;br /&gt;
spec:&lt;br /&gt;
 nodeSelector:&lt;br /&gt;
   nodeSelectorTerms:&lt;br /&gt;
     - matchExpressions:&lt;br /&gt;
         - key: cluster.ocs.openshift.io/openshift-storage&lt;br /&gt;
           operator: In&lt;br /&gt;
           values:&lt;br /&gt;
             - &amp;quot;&amp;quot;&lt;br /&gt;
 storageClassName: localblock&lt;br /&gt;
 volumeMode: Block&lt;br /&gt;
 fstype: ext4&lt;br /&gt;
 maxDeviceCount: 1  # &amp;lt;-- Maximum number of devices per node to be used&lt;br /&gt;
 deviceInclusionSpec:&lt;br /&gt;
   deviceTypes:&lt;br /&gt;
   - disk&lt;br /&gt;
#   - part   # &amp;lt;-- Remove this if not using partitions&lt;br /&gt;
   deviceMechanicalProperties:&lt;br /&gt;
   #- NonRotational #not working with VMWARE, need SSD or NVME&lt;br /&gt;
   - Rotational #working with VMWARE&lt;br /&gt;
   #minSize: 0Ti   # &amp;lt;-- Uncomment and modify to limit the minimum size of disk used&lt;br /&gt;
   #maxSize: 0Ti   # &amp;lt;-- Uncomment and modify to limit the maximum size of disk used&lt;br /&gt;
EOT&lt;br /&gt;
oc create -f localvolumeset.yaml&lt;br /&gt;
sleep 80&lt;br /&gt;
#oc get pv -n openshift-local-storage&lt;br /&gt;
#Add data disk&lt;br /&gt;
#Resize other disks&lt;br /&gt;
cat &amp;lt;&amp;lt;EOF | oc apply -f -&lt;br /&gt;
apiVersion: v1&lt;br /&gt;
kind: Namespace&lt;br /&gt;
metadata:&lt;br /&gt;
 labels:&lt;br /&gt;
   openshift.io/cluster-monitoring: &amp;quot;true&amp;quot;&lt;br /&gt;
 name: openshift-storage&lt;br /&gt;
spec: {}&lt;br /&gt;
EOF&lt;br /&gt;
cat &amp;lt;&amp;lt;EOF | oc apply -f -&lt;br /&gt;
apiVersion: operators.coreos.com/v1&lt;br /&gt;
kind: OperatorGroup&lt;br /&gt;
metadata:&lt;br /&gt;
 name: openshift-storage-operatorgroup&lt;br /&gt;
 namespace: openshift-storage&lt;br /&gt;
spec:&lt;br /&gt;
 targetNamespaces:&lt;br /&gt;
 - openshift-storage&lt;br /&gt;
EOF&lt;br /&gt;
cat &amp;lt;&amp;lt;EOF | oc apply -f -&lt;br /&gt;
apiVersion: operators.coreos.com/v1alpha1&lt;br /&gt;
kind: Subscription&lt;br /&gt;
metadata:&lt;br /&gt;
 name: ocs-operator&lt;br /&gt;
 namespace: openshift-storage&lt;br /&gt;
spec:&lt;br /&gt;
 channel: &amp;quot;stable-${majorVersion}&amp;quot;  # &amp;lt;-- Channel should be modified depending on the OCS version to be installed. Please ensure to maintain compatibility with OCP version&lt;br /&gt;
 installPlanApproval: Automatic&lt;br /&gt;
 name: ocs-operator&lt;br /&gt;
 source: redhat-operators  # &amp;lt;-- Modify the name of the redhat-operators catalogsource if not default&lt;br /&gt;
 sourceNamespace: openshift-marketplace&lt;br /&gt;
EOF&lt;br /&gt;
cat &amp;lt;&amp;lt;EOF | oc apply -f -&lt;br /&gt;
apiVersion: operators.coreos.com/v1alpha1&lt;br /&gt;
kind: Subscription&lt;br /&gt;
metadata:&lt;br /&gt;
 name: odf-operator&lt;br /&gt;
 namespace: openshift-storage&lt;br /&gt;
spec:&lt;br /&gt;
 channel: &amp;quot;stable-${majorVersion}&amp;quot; # &amp;lt;-- Channel should be modified depending on the OCS version to be installed. Please ensure to maintain compatibility with OCP version&lt;br /&gt;
 installPlanApproval: Automatic&lt;br /&gt;
 name: odf-operator&lt;br /&gt;
 source: redhat-operators  # &amp;lt;-- Modify the name of the redhat-operators catalogsource if not default&lt;br /&gt;
 sourceNamespace: openshift-marketplace&lt;br /&gt;
EOF&lt;br /&gt;
sleep 160&lt;br /&gt;
cat &amp;lt;&amp;lt; EOT &amp;gt;storagecluster.yaml&lt;br /&gt;
apiVersion: ocs.openshift.io/v1&lt;br /&gt;
kind: StorageCluster&lt;br /&gt;
metadata:&lt;br /&gt;
 name: ocs-storagecluster&lt;br /&gt;
 namespace: openshift-storage&lt;br /&gt;
spec:&lt;br /&gt;
 manageNodes: false&lt;br /&gt;
 resources:&lt;br /&gt;
   mds:&lt;br /&gt;
     limits:&lt;br /&gt;
       cpu: &amp;quot;1&amp;quot; #default 3&lt;br /&gt;
       memory: &amp;quot;4Gi&amp;quot; #default 8&lt;br /&gt;
     requests:&lt;br /&gt;
       cpu: &amp;quot;1&amp;quot; #default 3&lt;br /&gt;
       memory: &amp;quot;4Gi&amp;quot; #default 8&lt;br /&gt;
 monDataDirHostPath: /var/lib/rook&lt;br /&gt;
 storageDeviceSets:&lt;br /&gt;
 - count: 1  # &amp;lt;-- Modify count to desired value. For each set of 3 disks increment the count by 1.&lt;br /&gt;
   dataPVCTemplate:&lt;br /&gt;
     spec:&lt;br /&gt;
       accessModes:&lt;br /&gt;
       - ReadWriteOnce&lt;br /&gt;
       resources:&lt;br /&gt;
         requests:&lt;br /&gt;
           storage: &amp;quot;${size}Gi&amp;quot;  # &amp;lt;-- This should be changed as per storage size. Minimum 100 GiB and Maximum 4 TiB&lt;br /&gt;
       storageClassName: localblock&lt;br /&gt;
       volumeMode: Block&lt;br /&gt;
   name: ocs-deviceset&lt;br /&gt;
   placement: {}&lt;br /&gt;
   portable: false&lt;br /&gt;
   replica: 2 #default 3, minimum 2&lt;br /&gt;
   resources:&lt;br /&gt;
     limits:&lt;br /&gt;
       cpu: &amp;quot;1&amp;quot; #default 2&lt;br /&gt;
       memory: &amp;quot;2Gi&amp;quot;  #default 5&lt;br /&gt;
     requests:&lt;br /&gt;
       cpu: &amp;quot;1&amp;quot; #default 2&lt;br /&gt;
       memory: &amp;quot;2Gi&amp;quot;  #default 5&lt;br /&gt;
EOT&lt;br /&gt;
oc create -f storagecluster.yaml&lt;br /&gt;
while (! kubectl get storageclass |grep ocs-storagecluster-ceph-rbd &amp;gt;/dev/null ) ;do&lt;br /&gt;
  sleep 20&lt;br /&gt;
done&lt;br /&gt;
#oc get pods -n openshift-storage&lt;br /&gt;
#oc get csv -n openshift-storage&lt;br /&gt;
#debug&lt;br /&gt;
#kubectl get events -n openshift-storage&lt;br /&gt;
#rollback last action&lt;br /&gt;
#oc delete -n openshift-storage storagecluster --all --wait=true&lt;br /&gt;
#change default class&lt;br /&gt;
#https://kubernetes.io/docs/tasks/administer-cluster/change-default-storage-class/&lt;br /&gt;
#kubectl get storageclass&lt;br /&gt;
kubectl patch storageclass thin -p '{&amp;quot;metadata&amp;quot;: {&amp;quot;annotations&amp;quot;:{&amp;quot;storageclass.kubernetes.io/is-default-class&amp;quot;:&amp;quot;false&amp;quot;}}}'&lt;br /&gt;
kubectl patch storageclass ocs-storagecluster-ceph-rbd -p '{&amp;quot;metadata&amp;quot;: {&amp;quot;annotations&amp;quot;:{&amp;quot;storageclass.kubernetes.io/is-default-class&amp;quot;:&amp;quot;true&amp;quot;}}}'&lt;br /&gt;
#ENABLE SNAPSHOT DEFAULT&amp;amp;NAME&lt;br /&gt;
#https://github.com/rook/rook/blob/91beb549be3720a1278c3b5c67934f46555e1db5/deploy/examples/csi/rbd/snapshotclass.yaml&lt;br /&gt;
cat &amp;lt;&amp;lt;EOF |kubectl apply -f -&lt;br /&gt;
apiVersion: snapshot.storage.k8s.io/v1&lt;br /&gt;
deletionPolicy: Delete&lt;br /&gt;
driver: openshift-storage.rbd.csi.ceph.com&lt;br /&gt;
kind: VolumeSnapshotClass&lt;br /&gt;
metadata:&lt;br /&gt;
  name: csi-hostpath-snapclass&lt;br /&gt;
  annotations:&lt;br /&gt;
    snapshot.storage.kubernetes.io/is-default-class: &amp;quot;true&amp;quot;&lt;br /&gt;
parameters:&lt;br /&gt;
  clusterID: openshift-storage&lt;br /&gt;
  csi.storage.k8s.io/snapshotter-secret-name: rook-csi-rbd-provisioner&lt;br /&gt;
  csi.storage.k8s.io/snapshotter-secret-namespace: openshift-storage&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
#&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
</feed>