#@follow_tag(registry.redhat.io/ubi8/ubi-minimal:8.2)
FROM registry.redhat.io/ubi8/ubi-minimal:8.2-349 AS builder

ARG operator_tar=vm-import-operator-a3807e83c094df2cf9de2adb2ebc2517891877ca.tar.gz
ARG operator_commit=a3807e83c094df2cf9de2adb2ebc2517891877ca

ENV GOPATH=/go

RUN microdnf install -y tar gzip go-compilers-golang-compiler unzip

COPY ${operator_tar} /
RUN tar -xvzf ${operator_tar} && \
    mkdir -p ${GOPATH}/src/github.com/kubevirt/vm-import-operator/ && \
    mv vm-import-operator-${operator_commit}/* ${GOPATH}/src/github.com/kubevirt/vm-import-operator

RUN mkdir /usr/share/zoneinfo
RUN unzip /usr/lib/golang/lib/time/zoneinfo.zip -d /usr/share/zoneinfo

WORKDIR ${GOPATH}/src/github.com/kubevirt/vm-import-operator
RUN \
    GOFLAGS=-mod=vendor \
    go build -o build/_output/bin/vm-import-controller cmd/manager/main.go

#@follow_tag(registry.redhat.io/ubi8/ubi-minimal:8.2)
FROM registry.redhat.io/ubi8/ubi-minimal:8.2-349

ENV CONTROLLER=/usr/bin/vm-import-controller \
    USER_UID=1001 \
    USER_NAME=vm-import-controller

COPY --from=builder build/_output/bin/vm-import-controller ${CONTROLLER}
# Controller needs timezone data for VM validation
COPY --from=builder /usr/share/zoneinfo /usr/share/zoneinfo
COPY --from=builder build/controller/bin /usr/bin
RUN  /usr/bin/user_setup

USER ${USER_UID}

ENTRYPOINT [ "/usr/bin/entrypoint" ]

LABEL com.redhat.component="vm-import-controller-container" \
      name="container-native-virtualization/vm-import-controller-rhel8" \
      version="v2.4.3" \
      release="2" \
      upstream-version="0.1.0-4-ga3807e8" \
      upstream-vcs-ref="a3807e83c094df2cf9de2adb2ebc2517891877ca" \
      upstream-vcs-type="git" \
      summary="VM Import Operator" \
      io.openshift.expose-services="" \
      io.openshift.tags="cnv,kubevirt,operator,rhv,import" \
      io.k8s.display-name="vm-import-controller" \
      maintainer="jdzon@redhat.com,masayag@redhat.com,omachace@redhat.com,pkliczew@redhat.com" \
      description="CNV VM Import Operator"
