Repository to leverage Kmods via Containers (KVC) pattern to effectively utilize Intel's Out of Tree ice Network Interface driver for E810 series cards in an OpenShift 4 environment. This specific repository targets the Realtime version of Red Hat Enterprise Linux CoreOS (commonly abbreviated as RHCOS). More details on provisioning a node with real-time capabilities are avaiable in the OpenShift documentation here.
Currently tested with OpenShift version 4.8.2
with version 1.6.4
of the Intel ice driver.
โ Red Hat support cannot assist with problems with this Repo!
โ Intel supports the ice driver on sourceforge.net!
Credit to Aaron Smith (https://github.com/atyronesmith/) for the original work that this implementation is based on!
This project is used to build a MachineConfig object, ice-mc.yaml, that installs a newer version of the Intel ice driver in OpenShift 4.7 nodes of your choosing.
This project uses the kmods-via-containers projects to load kernel modules using containers. The kvc-ice-kmod repository is a companion to this repo and implements some of the kmods-via-containers project requirements.
The build.sh script enables the Cluster-Wide Entitled Builds on OpenShift method as outlined in this blog
Prerequisites include copying the reader's entitlement PEM files into the directory called certdir. This is easily accomplished by using a RHEL8 host as a builder machine, subscribe it to Red Hat Subscription Management, and copy files from the directory /etc/pki/entitlement
to certdir.
As an alternative (and if you are not a Red Hat Partner using a Not-for-Resale subscription, also known as an NFR), one can attach a Red Hat Developer Subscription for Individuals subscription to a virtual system, and download the certificates from your Red Hat Customer Portal. Place the .pem
files in certdir.
To build the ice-mc.yaml file:
./build.sh build certdir
The build directory in this repository will be populated, and the file ice-mc.yaml should be created if the build was successful. This YAML needs to be fed to the cluster in order to use the updated ice driver.
oc create -f ice-mc.yaml
At this point, the worker nodes will go into a NotReady,SchedulingDisabled state for a while as the MachineConfig object is installed and the nodes are rebooted.
After the real-time workers return to normal, you can check that the new driver is installed:
[root@dcain-oc-client ~] oc debug nodes/worker1
Starting pod/worker1-debug ...
To use host binaries, run `chroot /host`
sh-4.4# chroot /host
sh-4.4# cat /sys/bus/pci/drivers/ice/module/version
1.6.4
Simply delete the MachineConfig file that was created earlier. This will restore the inbox driver on the nodes in question.
oc delete -f ice-mc.yaml