FROM openshift/ose-base:v4.6.0-202104221811.p0
ENV __doozer=update BUILD_RELEASE=202105060851.p0 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-202105060851.p0 SOURCE_GIT_TREE_STATE=clean 
ENV __doozer=merge OS_GIT_COMMIT=ec70eb4 OS_GIT_VERSION=4.6.0-202105060851.p0-ec70eb4 SOURCE_DATE_EPOCH=1618488037 SOURCE_GIT_COMMIT=ec70eb42f64e26dfc944b8e0bb69ba5f07dd8696 SOURCE_GIT_TAG=ec70eb4 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" \
        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="202105060851.p0" \
        io.openshift.build.commit.id="ec70eb42f64e26dfc944b8e0bb69ba5f07dd8696" \
        io.openshift.build.source-location="https://github.com/openshift/driver-toolkit" \
        io.openshift.build.commit.url="https://github.com/openshift/driver-toolkit/commit/ec70eb42f64e26dfc944b8e0bb69ba5f07dd8696"

