FROM openshift/ose-base:v4.6.0.20210602.153339
ENV __doozer=update BUILD_RELEASE=202106021513.p0.git.f744e6a BUILD_VERSION=v4.6.0 OS_GIT_MAJOR=4 OS_GIT_MINOR=6 OS_GIT_PATCH=0 OS_GIT_TREE_STATE=clean OS_GIT_VERSION=4.6.0-202106021513.p0.git.f744e6a SOURCE_GIT_TREE_STATE=clean 
ENV __doozer=merge OS_GIT_COMMIT=f744e6a OS_GIT_VERSION=4.6.0-202106021513.p0.git.f744e6a-f744e6a SOURCE_DATE_EPOCH=1621563317 SOURCE_GIT_COMMIT=f744e6a48ee6d7e4f450b37920e3258c579bb48b SOURCE_GIT_TAG=f744e6a SOURCE_GIT_URL=https://github.com/openshift/driver-toolkit 

ARG KERNEL_VERSION=''
ARG RT_KERNEL_VERSION=''
ARG RHEL_VERSION='8.2'

RUN echo ${RHEL_VERSION} > /etc/yum/vars/releasever \
    && yum config-manager --best --setopt=install_weak_deps=False --save

# kernel packages needed to build drivers / kmods 
RUN yum -y install \
    kernel-core${KERNEL_VERSION:+-}${KERNEL_VERSION} \
    kernel-devel${KERNEL_VERSION:+-}${KERNEL_VERSION} \
    kernel-headers${KERNEL_VERSION:+-}${KERNEL_VERSION} \
    kernel-modules${KERNEL_VERSION:+-}${KERNEL_VERSION} \
    kernel-modules-extra${KERNEL_VERSION:+-}${KERNEL_VERSION} \
    && yum clean all

# real-time kernel packages
RUN if [ $(arch) = x86_64 ]; then \
    yum -y install \
    kernel-rt-core${RT_KERNEL_VERSION:+-}${RT_KERNEL_VERSION} \
    kernel-rt-devel${RT_KERNEL_VERSION:+-}${RT_KERNEL_VERSION} \
    kernel-rt-modules${RT_KERNEL_VERSION:+-}${RT_KERNEL_VERSION} \
    kernel-rt-modules-extra${RT_KERNEL_VERSION:+-}${RT_KERNEL_VERSION} \
    && yum clean all ; fi

# Additional packages that are mandatory for driver-containers
RUN yum -y install elfutils-libelf-devel kmod binutils kabi-dw kernel-abi-whitelists \
    && yum clean all

# Packages needed to build kmods-via-containers and likely needed for driver-containers
RUN yum -y install git make \
    && yum clean all

# Add and build kmods-via-containers
COPY kmods-via-containers /tmp/kmods-via-containers

WORKDIR /tmp/kmods-via-containers

RUN make install DESTDIR=/usr/local CONFDIR=/etc/

LABEL \
        io.k8s.description="driver-toolkit is a container with the kernel packages necessary for building driver containers for deploying kernel modules/drivers on OpenShift" \
        name="openshift/ose-driver-toolkit" \
        io.openshift.release.operator="true" \
        version="v4.6.0" \
        com.redhat.component="driver-toolkit-container" \
        io.openshift.maintainer.product="OpenShift Container Platform" \
        io.openshift.maintainer.component="Special Resource Operator" \
        release="202106021513.p0.git.f744e6a" \
        io.openshift.build.commit.id="f744e6a48ee6d7e4f450b37920e3258c579bb48b" \
        io.openshift.build.source-location="https://github.com/openshift/driver-toolkit" \
        io.openshift.build.commit.url="https://github.com/openshift/driver-toolkit/commit/f744e6a48ee6d7e4f450b37920e3258c579bb48b"

