Chapter 13. Updating a cluster that includes the Special Resource Operator When updating a cluster that includes the Special Resource Operator (SRO), it is important to consider whether the new kernel module version is compatible with the kernel modules currently loaded by the SRO. You can run a preflight check to confirm if the SRO will be able to upgrade the kernel modules. 13.1. Custom resource and verification status information The preflight check provides information on the status of the custom resource (CR) and the status of the verification. Possible CR statuses The possible CR statuses are as follows: True The Special Resource Operator (SRO) CR will upgrade without kernel compatibility issues. False There is an issue with kernel compatibility for the CR. The Status Reason field provides additional information on this. Error The status check was not completed due to an internal error. The Status Reason field provides additional information on debugging this. Unknown The check has not yet verified the status of the CR. This might be because the process has not yet reached the specific CR or not enough time has elapsed for the check to complete. Possible verification statuses The possible verification statuses are as follows: True The image exists and is compatible, or the image does not exist but there is a BuildConfig resource in place. False The image does not exist and there is no BuildConfig resource in place, or an image exists but it is not compatible with the new kernel version. If the verification status is False , you can take one of the following steps: Create a prebuilt image with the correct name and check the status field again. Change the CR to include a BuildConfig reosurce. 13.2. Running a preflight check for the Special Resource Operator You can use the following example procedure to check the compatibility of a kernel module version before updating a cluster that includes the Special Resource Operator (SRO). Prerequisites You have a running OpenShift Container Platform cluster. You installed the OpenShift CLI ( oc ). You are logged in to the OpenShift CLI as a user with cluster-admin privileges. You installed the SRO. Procedure Create the following preflight validation custom resource definition (CRD) and save the YAML as prevalidation.yaml . apiVersion: sro.openshift.io/v1beta1 kind: PreflightValidation metadata: name: preflight namespace: preflight spec: updateImage: quay.io/openshift-release-dev/ocp-release@sha256:f7f252c39b64601c8ac3de737a584ba4f6016b1f4b17801d726ca2fd15492878 1 1 Specify the name of the update image here. Start the validation check by running the following command: USD oc apply -f prevalidation.yaml Verification Check the status of the custom resource (CR) by running the following command: USD oc describe preflightvalidations.sro.openshift.io/v1beta1 preflight Example output The following is an example output in which simple-oot is a SpecialResource CR that is deployed on the cluster. Status: Cr Statuses: Last Transition Time: 2022-08-02T08:48:45Z Name: simple-oot Status Reason: Verification successful, all driver-containers for the kernel version are present Verification Stage: Image Verification Status: True Events: <none> The preflight check continues to run until all CRs are verified. You can repeat the preceding command to check the status. After all CRs are verified, you should delete the preflight CR. 13.3. Additional resources Special Resource Operator

Commands:
apiVersion: sro.openshift.io/v1beta1 kind: PreflightValidation metadata: name: preflight namespace: preflight spec: updateImage: quay.io/openshift-release-dev/ocp-release@sha256:f7f252c39b64601c8ac3de737a584ba4f6016b1f4b17801d726ca2fd15492878 1
oc apply -f prevalidation.yaml
oc describe preflightvalidations.sro.openshift.io/v1beta1 preflight
Status: Cr Statuses: Last Transition Time: 2022-08-02T08:48:45Z Name: simple-oot Status Reason: Verification successful, all driver-containers for the next kernel version are present Verification Stage: Image Verification Status: True Events: <none>