#@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 gzip go-compilers-golang-compiler make findutils
COPY cluster-network-addons-operator-*.tar.gz /go/src/github.com/kubevirt/
RUN \
    cd /go/src/github.com/kubevirt && \
    tar -xzf cluster-network-addons-operator-*.tar.gz && \
    rm cluster-network-addons-operator-*.tar.gz && \
    mv cluster-network-addons-operator-* cluster-network-addons-operator
WORKDIR /go/src/github.com/kubevirt/cluster-network-addons-operator/
RUN \
    CGO_ENABLED=0 \
    GOOS=linux \
    GOARCH=amd64 \
    GOFLAGS=-mod=vendor \
    go build -i -o /cluster-network-addons-operator ./cmd/manager
RUN \
    CGO_ENABLED=0 \
    GOOS=linux \
    GOARCH=amd64 \
    GOFLAGS=-mod=vendor \
    go build -i -o /manifest-templator ./tools/manifest-templator

#@follow_tag(registry.redhat.io/rhel8-2-els/rhel)
FROM registry.redhat.io/rhel8-2-els/rhel:8.2-7
ENV ENTRYPOINT=/entrypoint \
    OPERATOR=/cluster-network-addons-operator \
    MANIFEST_TEMPLATOR=/manifest-templator \
    CSV_TEMPLATE=/cluster-network-addons-operator.VERSION.clusterserviceversion.yaml.in \
    USER_UID=1001 \
    USER_NAME=cluster-network-addons-operator
COPY --from=builder /go/src/github.com/kubevirt/cluster-network-addons-operator/build/operator/bin/user_setup /user_setup
RUN /user_setup
COPY --from=builder /go/src/github.com/kubevirt/cluster-network-addons-operator/build/operator/bin/csv-generator /usr/bin/csv-generator
COPY --from=builder /go/src/github.com/kubevirt/cluster-network-addons-operator/templates/cluster-network-addons/VERSION/cluster-network-addons-operator.VERSION.clusterserviceversion.yaml.in cluster-network-addons-operator.VERSION.clusterserviceversion.yaml.in
COPY --from=builder /go/src/github.com/kubevirt/cluster-network-addons-operator/data /data
COPY --from=builder /cluster-network-addons-operator $OPERATOR
COPY --from=builder /manifest-templator $MANIFEST_TEMPLATOR
COPY --from=builder /go/src/github.com/kubevirt/cluster-network-addons-operator/build/operator/bin/entrypoint $ENTRYPOINT
ENTRYPOINT $ENTRYPOINT
USER $USER_UID
LABEL com.redhat.component="cluster-network-addons-operator-container" \
      name="container-native-virtualization/cluster-network-addons-operator" \
      version="v2.4.6" \
      summary="Cluster Network Addons Operator" \
      io.openshift.expose-services="" \
      io.openshift.tags="cnv,operator,network" \
      io.k8s.display-name="cluster-network-addons-operator" \
      maintainer="phoracek@redhat.com" \
      description="Cluster Network Addons Operator"
