#@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 kubernetes-nmstate-*.tar.gz /go/src/github.com/nmstate/
RUN \
    cd /go/src/github.com/nmstate && \
    tar -xzf kubernetes-nmstate-*.tar.gz && \
    rm kubernetes-nmstate-*.tar.gz && \
    mv kubernetes-nmstate-* kubernetes-nmstate

WORKDIR /go/src/github.com/nmstate/kubernetes-nmstate/
RUN \
    CGO_ENABLED=0 \
    GOOS=linux \
    GOARCH=amd64 \
    GOFLAGS=-mod=vendor \
    go build -i -o /kubernetes-nmstate ./cmd/manager

#@follow_tag(registry.redhat.io/rhel8-2-els/rhel)
FROM registry.redhat.io/rhel8-2-els/rhel:8.2-7

# We need to do clean all twice there is a bug a dnf [1]
# [1] https://github.com/rpm-software-management/dnf/issues/7
RUN \
    dnf -y update && \
    dnf -y install \
        nmstate-0.2.6-14.el8_2 \
        iputils \
        iproute && \
    dnf clean all

COPY --from=builder /kubernetes-nmstate /usr/local/bin/kubernetes-nmstate
COPY --from=builder /go/src/github.com/nmstate/kubernetes-nmstate/build/bin /usr/local/bin

ENTRYPOINT ["kubernetes-nmstate"]

LABEL com.redhat.component="kubernetes-nmstate-handler-container" \
      name="container-native-virtualization/kubernetes-nmstate-handler-rhel8" \
      version="v2.4.6" \
      summary="Kubernetes Nmstate Handler" \
      io.openshift.expose-services="" \
      io.openshift.tags="kubernetes,cnv,networking" \
      io.k8s.display-name="kubernetes-nmstate-handler" \
      maintainer="phoracek@redhat.com" \
      description="Kubernetes Nmstate Handler"


