#@follow_tag(registry.redhat.io/rhel8-2-els/rhel)
FROM registry.redhat.io/rhel8-2-els/rhel:8.2-7 AS builder
ENV GOPATH=/go

RUN echo -e "[go-toolset]\nname=go-toolset\nprofiles=\nstate=enabled\nstream=rhel8" > /etc/dnf/modules.d/go-toolset.module \
    && dnf install -y tar sed gzip go-compilers-golang-compiler

COPY node-maintenance-operator-3945e4c33a968ca36699352581894bad42b58164.tar.gz /
RUN mkdir -p /go/src/kubevirt.io/node-maintenance-operator && \
    tar -xzf node-maintenance-operator-3945e4c33a968ca36699352581894bad42b58164.tar.gz --strip-components 1 \
        -C /go/src/kubevirt.io/node-maintenance-operator && \
    rm node-maintenance-operator-3945e4c33a968ca36699352581894bad42b58164.tar.gz

WORKDIR /go/src/kubevirt.io/node-maintenance-operator/
RUN GOOS=linux GOARCH=amd64 go build -i -o /node-maintenance-operator ./cmd/manager

#@follow_tag(registry.redhat.io/rhel8-2-els/rhel)
FROM registry.redhat.io/rhel8-2-els/rhel:8.2-7
ENV ENTRYPOINT=/entrypoint \
    OPERATOR=/node-maintenance-operator \
    USER_UID=1001 \
    USER_NAME=node-maintenance-operator

LABEL org.kubevirt.hco.csv-generator.v1="/usr/bin/csv-generator"

COPY --from=builder /go/src/kubevirt.io/node-maintenance-operator/build/bin/user_setup /user_setup
RUN /user_setup

COPY --from=builder /go/src/kubevirt.io/node-maintenance-operator/deploy/crds /deploy/crds
COPY --from=builder /go/src/kubevirt.io/node-maintenance-operator/manifests/generated /manifests/generated
COPY --from=builder /go/src/kubevirt.io/node-maintenance-operator/build/csv-generator.sh /usr/bin/csv-generator

COPY --from=builder /node-maintenance-operator ${OPERATOR}
COPY --from=builder /go/src/kubevirt.io/node-maintenance-operator/build/bin/entrypoint ${ENTRYPOINT}
ENTRYPOINT ${ENTRYPOINT}
USER ${USER_UID}
LABEL com.redhat.component="node-maintenance-operator-container" \
      name="container-native-virtualization/node-maintenance-operator" \
      version="v2.4.6" \
      summary="Node Maintenance Operator" \
      io.openshift.expose-services="" \
      io.openshift.tags="cnv,operator,maintenance" \
      io.k8s.display-name="node-maintenance-operator" \
      maintainer="The KubeVirt Project <kubevirt-dev@googlegroups.com>" \
      description="Node Maintenance Operator"
