FROM openshift/golang-builder:1.11 AS builder
ENV SOURCE_GIT_COMMIT=0cb23916fb10a51c478b9e3823bbaebbe584a94b SOURCE_DATE_EPOCH=1564315891 BUILD_VERSION=v4.1.9 SOURCE_GIT_URL=https://github.com/openshift/ose SOURCE_GIT_TAG=v4.1.9-201907280809 BUILD_RELEASE=201907311355
WORKDIR /go/src/github.com/openshift/origin
COPY . .
RUN make build WHAT=" \
    cmd/openshift-sdn \
    cmd/sdn-cni-plugin \
    vendor/github.com/containernetworking/plugins/plugins/ipam/host-local \
    vendor/github.com/containernetworking/plugins/plugins/main/loopback \
    "
RUN mkdir -p /tmp/build; \
    cp /go/src/github.com/openshift/origin/_output/local/bin/linux/$(go env GOARCH)/openshift-sdn /tmp/build/openshift-sdn; \
    cp /go/src/github.com/openshift/origin/_output/local/bin/linux/$(go env GOARCH)/sdn-cni-plugin /tmp/build/sdn-cni-plugin; \
    cp /go/src/github.com/openshift/origin/_output/local/bin/linux/$(go env GOARCH)/loopback /tmp/build/loopback; \
    cp /go/src/github.com/openshift/origin/_output/local/bin/linux/$(go env GOARCH)/host-local /tmp/build/host-local

FROM openshift/ose-base:v4.1.9.20190731.135530
ENV SOURCE_GIT_COMMIT=0cb23916fb10a51c478b9e3823bbaebbe584a94b SOURCE_DATE_EPOCH=1564315891 BUILD_VERSION=v4.1.9 SOURCE_GIT_URL=https://github.com/openshift/ose SOURCE_GIT_TAG=v4.1.9-201907280809 BUILD_RELEASE=201907311355
COPY --from=builder /tmp/build/openshift-sdn /usr/bin/
COPY --from=builder /tmp/build/sdn-cni-plugin /opt/cni/bin/openshift-sdn
COPY --from=builder /tmp/build/loopback /opt/cni/bin/
COPY --from=builder /tmp/build/host-local /opt/cni/bin/

RUN INSTALL_PKGS=" \
      openvswitch2.11 container-selinux socat ethtool nmap-ncat \
      libmnl libnetfilter_conntrack conntrack-tools \
      libnfnetlink iproute bridge-utils procps-ng openssl \
      iputils binutils xz sysvinit-tools dbus nftables \
      " && \
    yum install -y --setopt=tsflags=nodocs $INSTALL_PKGS && \
    mkdir -p /etc/sysconfig/cni/net.d && \
    yum clean all && rm -rf /var/cache/*

COPY ./images/sdn/scripts/iptables /usr/sbin/
COPY ./images/sdn/scripts/iptables-save /usr/sbin/
COPY ./images/sdn/scripts/iptables-restore /usr/sbin/
COPY ./images/sdn/scripts/ip6tables /usr/sbin/
COPY ./images/sdn/scripts/ip6tables-save /usr/sbin/
COPY ./images/sdn/scripts/ip6tables-restore /usr/sbin/
COPY ./images/sdn/scripts/iptables /usr/sbin/

ENTRYPOINT [ "/usr/bin/openshift-sdn" ]

LABEL \
        io.k8s.description="This is a component of OpenShift Container Platform and contains the software for individual nodes when using SDN." \
        com.redhat.component="openshift-enterprise-node-container" \
        vendor="Red Hat" \
        name="openshift/ose-node" \
        License="GPLv2+" \
        io.k8s.display-name="OpenShift Container Platform Node" \
        io.openshift.build.source-location="https://github.com/openshift/ose" \
        io.openshift.build.commit.url="https://github.com/openshift/ose/commit/0cb23916fb10a51c478b9e3823bbaebbe584a94b" \
        version="v4.1.9" \
        io.openshift.build.commit.id="0cb23916fb10a51c478b9e3823bbaebbe584a94b" \
        release="201907311355" \
        io.openshift.tags="openshift,node"

