#@follow_tag(ubi8-minimal:8-released)
FROM ubi8-minimal:8.1-409 AS builder

ARG kubevirt_version=0.26.5
ARG kubevirt_commit=bab9a21bb6817f6c1f107c2b505121f63c92cc4b
ARG kubevirt_tar=kubevirt-bab9a21bb6817f6c1f107c2b505121f63c92cc4b.tar.gz

ENV GOPATH=/go

RUN microdnf install -y tar gzip rsync sed go-compilers-golang-compiler glibc-static gcc
COPY ${kubevirt_tar} /
RUN tar xf ${kubevirt_tar} && \
    mkdir -p /go/src/kubevirt.io/ /kubevirt-tests/ && \
    mv kubevirt-${kubevirt_commit} /go/src/kubevirt.io/kubevirt
WORKDIR ${GOPATH}/src/kubevirt.io/kubevirt

RUN KUBEVIRT_VERSION=${kubevirt_version} \
    KUBEVIRT_SOURCE_DATE_EPOCH="$(date +%s)" \
    KUBEVIRT_GIT_COMMIT=${kubevirt_commit} \
    KUBEVIRT_GIT_VERSION=v${kubevirt_version} \
    KUBEVIRT_GIT_TREE_STATE=clean \
    ./hack/build-go.sh install cmd/virt-operator tools/csv-generator
RUN cd tests && GOPROXY=off GOFLAGS=-mod=vendor go test -c -o /kubevirt-tests/kubevirt.test

#@follow_tag(ubi8-minimal:8-released)
FROM ubi8-minimal:8.1-409

RUN microdnf install -y shadow-utils
COPY --from=builder /go/src/kubevirt.io/kubevirt/_out/cmd/virt-operator/virt-operator-${kubevirt_version}-linux-amd64 /usr/bin/virt-operator
COPY --from=builder /go/src/kubevirt.io/kubevirt/_out/cmd/csv-generator/csv-generator-${kubevirt_version}-linux-amd64 /usr/bin/csv-generator
COPY --from=builder /kubevirt-tests/kubevirt.test /usr/bin/kubevirt.test
ENTRYPOINT [ "/usr/bin/virt-operator" ]
# Create non-root user
RUN  adduser --system --no-create-home -u 1001 virt-operator
USER 1001

LABEL com.redhat.component="virt-operator-container" \
      name="container-native-virtualization/virt-operator" \
      version="v2.3.0" \
      release="39" \
      upstream-version="0.26.5" \
      upstream-vcs-ref="bab9a21bb6817f6c1f107c2b505121f63c92cc4b" \
      upstream-vcs-type="git" \
      summary="KubeVirt Operator" \
      io.openshift.expose-services="" \
      io.openshift.tags="cnv,kubevirt,operator" \
      io.k8s.display-name="virt-operator" \
      maintainer="sgott@redhat.com,pkotas@redhat.com,ibezukh@redhat.com" \
      description="CNV Virtualization Operator"
