# Sayli kcs ### Title ### Issue - Isuue 1 - Issue 2 ~~~ Error snippet goes here ~~~ - Issue 3 ### Environment - Red Hat OpenShift Container Platform - 3.11 ### Resolution #### There are 2 parts to `resizing` a volume containing a xfs file system: ------------------------------------ PART I : Expand the filesystem ------------------------------------ Choose either one of the below Option A or B as per the requirement: * **Option A:** If space is free in VG, then extend the LV and resize XFS filesystem. ~~~ $ lvextend -L +125G /dev/vgdata/lvdata // Here I am extending the LV device /dev/vgdata/lvdata by 125 G. $ xfs_growfs <mount-point> -D <size> // Then I can extend the filesystem. ~~~ **NOTE:** The `-D size` option extend the file system to the specified size (expressed in file system blocks). Without the -D size option, xfs_growfs will extend the file system to the maximum size supported by the device. * **Option B:** If there is no free space in VG, then add space in VG. ~~~ $ pvcreate /dev/sdN1 - Created a PV $ vgextend vgdata /dev/sdN1 - Added PV to VG $ lvextend -L +125G /dev/vgdata/lvdata $ xfs_growfs <mount-point> -D <size> ~~~ ------------------------------------ PART II: Expanding in-use PVCs ------------------------------------ Expanding in-use PVCs is available as `alpha since 1.11` and as `beta since Kubernetes 1.15.` The `ExpandInUsePersistentVolumes` feature must be enabled as follows: This feature can be enabled `clusterwide` or used for `nodes`. Choose either one of the below Option A or B to enable them respectively: - **Option A:** Cluster-wide Settings. - To enable the feature gates for entire cluster, add feature-gates to `apiServerArguments` and `controllerArguments` in file`/etc/origin/master/master-config.yaml` as follows : ~~~ $ vim /etc/origin/master/master-config.yaml -----------------8<------------------ kubernetesMasterConfig: apiServerArguments: feature-gates: - ExpandInUsePersistentVolumes ... controllerArguments: feature-gates: - ExpandInUsePersistentVolumes -----------------8<------------------ - Restart the OpenShift Container Platform master service to apply the changes. $ master-restart api api $ master-restart controllers controllers ~~~ - **Option B:** Node Specific. - - **Step 1:** To enable the feature gates for node hosts, edit the appropriate node configuration map: ~~~ $ oc get cm -n openshift-node -n openshift-node $ oc edit cm node-config-infra -n openshift-node // for example: This will set the feature gates only for the specific node type. -----------------8<------------------ kubeletArguments feature-gates: - ExpandInUsePersistentVolumes -----------------8<------------------ ~~~ - - **Step 2:** Restart the OpenShift Container Platform service for the changes to take effect: ~~~ $ systemctl restart atomic-openshift-node.service ~~~ - - **Step 3:** Once set up, run the following command on masters to check if it has been correctly set. ~~~ $ ps aux | grep apiserver $ ps aux | grep feature-gates ~~~ - The command `systemctl restart atomic-openshift-node.service` will basically restart the kubelet on the node. This will cause any running pods/containers on that node to `restart`. In case the `node is not drained` and the `application pods aren't rescheduled` on another node before executing the command, it may lead to `application downtime`. If this is a concern, consider [draining the node](https://docs.openshift.com/container-platform/3.11/admin_guide/manage_nodes.html#evacuating-pods-on-nodes) before making changes ### Root Cause - RCA goes here ### Diagnostic Steps - Investigations goes here