# Build stage 1 -- build rook

FROM openshift/golang-builder:1.13 AS builder

ENV GOPATH=/go
ENV IMPORT_PATH=github.com/rook/rook
ENV VERSION=4.5-52.adb385e7.release_4.5

RUN rm -rf /go && mkdir -p /go/
COPY rook-release_4.5-adb385e7.tar.gz /rook.tar.gz
RUN \
    mkdir -p "/go/src/$IMPORT_PATH" && \
    tar -C "/go/src/$IMPORT_PATH/" -xzmf /rook.tar.gz && \
    rm -rf "/go/src/$IMPORT_PATH/vendor/$IMPORT_PATH" && \
    cp -r "/go/src/$IMPORT_PATH/vendor/"* /go/src/ && \
    rm -rf "/go/src/$IMPORT_PATH/vendor"

WORKDIR /go
RUN CGO_ENABLED=0 GOOS=linux go build -compiler gc -ldflags "-v -n -X github.com/rook/rook/pkg/version.Version=${VERSION} -extldflags '-static'" -a -v -x -o bin/rook ${IMPORT_PATH}/cmd/rook
RUN CGO_ENABLED=0 GOOS=linux go build -compiler gc -ldflags "-v -n -X github.com/rook/rook/pkg/version.Version=${VERSION} -extldflags '-static'" -a -v -x -o bin/rookflex ${IMPORT_PATH}/cmd/rookflex

# Build stage 2 -- create rook container
FROM rhceph:4-32

ENV ROOK_PATH=/go/src/github.com/rook/rook

COPY --from=builder /go/bin/rook /go/bin/rookflex $ROOK_PATH/images/ceph/toolbox.sh /usr/local/bin/
COPY --from=builder $ROOK_PATH/cluster/examples/kubernetes/ceph/csi/template /etc/ceph-csi
COPY --from=builder $ROOK_PATH/cluster/examples/kubernetes/ceph/monitoring /etc/ceph-monitoring
COPY --from=builder $ROOK_PATH/cluster/olm/ceph/templates /etc/ceph-csv-templates

RUN \
    dnf update -y && \
    dnf install -y tini

RUN ln -s /usr/bin/tini /tini

LABEL maintainer="Boris Ranto <branto@redhat.com>"
LABEL com.redhat.component="rook-ceph-operator-container"
LABEL name="rook-ceph"
LABEL version="4.5"
LABEL release="52.adb385e7.release_4.5"
LABEL description="OpenShift Container Storage Rook container"
LABEL summary="Provides the latest Rook package for OpenShift Container Storage."
LABEL io.k8s.display-name="Rook Ceph Orchestrator"
LABEL io.openshift.tags="rhceph ceph rook"
LABEL upstream-vcs-ref="adb385e7b621f03c441d4367206fc51e410a3d44"
LABEL ocs.tags="v4.5"

ENTRYPOINT ["/tini", "--", "/usr/local/bin/rook"]
CMD [""]
