#@follow_tag(ubi8-minimal:8-released)
FROM ubi8-minimal:8.1-279 AS builder
ENV GOPATH=/go
RUN microdnf 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 GOOS=linux GOARCH=amd64 go build -i -o /kubernetes-nmstate ./cmd/manager

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

RUN \
    microdnf -y update && \
    microdnf -y install \
        nmstate \
        iputils \
        iproute && \
    microdnf -y remove \
        NetworkManager && \
    microdnf clean all

# Looks like 35 is not enough we need 60 to propertly recover after reboot
# TODO: Remove this when we merge https://github.com/nmstate/nmstate/pull/555
RUN sed -i "s/MAINLOOP_TIMEOUT = 35/MAINLOOP_TIMEOUT = 60/g" /usr/lib/python3.6/site-packages/libnmstate/netapplier.py

ENV OPERATOR=/usr/local/bin/kubernetes-nmstate \
    USER_UID=0 \
    USER_NAME=root

# install operator binary
COPY --from=builder /kubernetes-nmstate ${OPERATOR}

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

ENTRYPOINT ["/usr/local/bin/entrypoint"]

USER $USER_UID
LABEL com.redhat.component="kubernetes-nmstate-handler-container" \
      name="container-native-virtualization/kubernetes-nmstate-handler-rhel8" \
      version="v2.2.0" \
      summary="Kubernetes Nmstate Handler" \
      io.openshift.expose-services="" \
      io.openshift.tags="kubernetes,cnv,networking" \
      io.k8s.display-name="kubernetes-nmstate-handler" \
      maintainer="The KubeVirt Project <kubevirt-dev@googlegroups.com>" \
      description="Kubernetes Nmstate Handler"


