FROM openshift/golang-builder@sha256:4820580c3368f320581eb9e32cf97aeec179a86c5749753a14ed76410a293d83 AS builder
ENV __doozer=update BUILD_RELEASE=202203081809.p0.gf66529e.assembly.stream BUILD_VERSION=v4.10.0 OS_GIT_MAJOR=4 OS_GIT_MINOR=10 OS_GIT_PATCH=0 OS_GIT_TREE_STATE=clean OS_GIT_VERSION=4.10.0-202203081809.p0.gf66529e.assembly.stream SOURCE_GIT_TREE_STATE=clean 
ENV __doozer=merge OS_GIT_COMMIT=f66529e OS_GIT_VERSION=4.10.0-202203081809.p0.gf66529e.assembly.stream-f66529e SOURCE_DATE_EPOCH=1643372041 SOURCE_GIT_COMMIT=f66529e50fa86e491cd4aabb27a206f51ce5a27b SOURCE_GIT_TAG=v0.1.0-1152-gf66529e5 SOURCE_GIT_URL=https://github.com/openshift/metallb 
WORKDIR /metallb

ADD . /metallb

WORKDIR /metallb/frr-metrics
RUN CGO_ENABLED=0 GO111MODULE=on go build -mod=vendor -o ./frr-metrics


WORKDIR /metallb/controller
RUN CGO_ENABLED=0 GO111MODULE=on go build -mod=vendor -o ./controller


WORKDIR /metallb/speaker
RUN CGO_ENABLED=0 GO111MODULE=on go build -mod=vendor -o ./speaker

FROM openshift/base-rhel8:v4.10.0.20220308.182903
ENV __doozer=update BUILD_RELEASE=202203081809.p0.gf66529e.assembly.stream BUILD_VERSION=v4.10.0 OS_GIT_MAJOR=4 OS_GIT_MINOR=10 OS_GIT_PATCH=0 OS_GIT_TREE_STATE=clean OS_GIT_VERSION=4.10.0-202203081809.p0.gf66529e.assembly.stream SOURCE_GIT_TREE_STATE=clean 
ENV __doozer=merge OS_GIT_COMMIT=f66529e OS_GIT_VERSION=4.10.0-202203081809.p0.gf66529e.assembly.stream-f66529e SOURCE_DATE_EPOCH=1643372041 SOURCE_GIT_COMMIT=f66529e50fa86e491cd4aabb27a206f51ce5a27b SOURCE_GIT_TAG=v0.1.0-1152-gf66529e5 SOURCE_GIT_URL=https://github.com/openshift/metallb 
COPY --from=builder /metallb/controller/controller /metallb/speaker/speaker \
      /metallb/frr-reloader/frr-reloader.sh /metallb/frr-metrics/frr-metrics /

# When running as non root and building in an environment that `umask` masks out
# '+x' for others, it won't be possible to execute. Make sure all can execute,
# just in case
RUN chmod a+x /frr-reloader.sh

LABEL \
        io.k8s.display-name="Metallb" \
        io.k8s.description="This is a component of OpenShift Container Platform and provides a metallb plugin." \
        io.openshift.tags="openshift" \
        maintainer="Mohamed S. Mahmoud <mmahmoud@redhat.com>" \
        name="openshift/metallb-rhel8" \
        com.redhat.component="ose-metallb-container" \
        io.openshift.maintainer.product="OpenShift Container Platform" \
        io.openshift.maintainer.component="Networking" \
        io.openshift.maintainer.subcomponent="metallb" \
        release="202203081809.p0.gf66529e.assembly.stream" \
        io.openshift.build.commit.id="f66529e50fa86e491cd4aabb27a206f51ce5a27b" \
        io.openshift.build.source-location="https://github.com/openshift/metallb" \
        io.openshift.build.commit.url="https://github.com/openshift/metallb/commit/f66529e50fa86e491cd4aabb27a206f51ce5a27b" \
        version="v4.10.0"

