FROM openshift/golang-builder:rhel_8_golang_1.16 AS builder
ENV __doozer=update BUILD_RELEASE=202110262219.p0.git.b35596f.assembly.stream BUILD_VERSION=v4.8.0 OS_GIT_MAJOR=4 OS_GIT_MINOR=8 OS_GIT_PATCH=0 OS_GIT_TREE_STATE=clean OS_GIT_VERSION=4.8.0-202110262219.p0.git.b35596f.assembly.stream SOURCE_GIT_TREE_STATE=clean 
ENV __doozer=merge KUBE_GIT_COMMIT=b35596fa3f0bb432063443ece7d12d71fb43ebdf KUBE_GIT_MAJOR=1 KUBE_GIT_MINOR=13+ KUBE_GIT_TREE_STATE=clean KUBE_GIT_VERSION=v1.13.0+b35596f OS_GIT_COMMIT=b35596f OS_GIT_VERSION=4.8.0-202110262219.p0.git.b35596f.assembly.stream-b35596f SOURCE_DATE_EPOCH=1632428678 SOURCE_GIT_COMMIT=b35596fa3f0bb432063443ece7d12d71fb43ebdf SOURCE_GIT_TAG=b35596fa SOURCE_GIT_URL=https://github.com/openshift/ocp-release-operator-sdk 

ENV GO111MODULE=on \
    GOFLAGS=-mod=vendor

# we need to patch the Makefile prior to building
COPY . /go/src/github.com/operator-framework/operator-sdk
RUN cd /go/src/github.com/operator-framework/operator-sdk \
 && make -f ci/prow.Makefile patch build

FROM openshift/ose-base:v4.8.0.20211026.222920
ENV __doozer=update BUILD_RELEASE=202110262219.p0.git.b35596f.assembly.stream BUILD_VERSION=v4.8.0 OS_GIT_MAJOR=4 OS_GIT_MINOR=8 OS_GIT_PATCH=0 OS_GIT_TREE_STATE=clean OS_GIT_VERSION=4.8.0-202110262219.p0.git.b35596f.assembly.stream SOURCE_GIT_TREE_STATE=clean 
ENV __doozer=merge KUBE_GIT_COMMIT=b35596fa3f0bb432063443ece7d12d71fb43ebdf KUBE_GIT_MAJOR=1 KUBE_GIT_MINOR=13+ KUBE_GIT_TREE_STATE=clean KUBE_GIT_VERSION=v1.13.0+b35596f OS_GIT_COMMIT=b35596f OS_GIT_VERSION=4.8.0-202110262219.p0.git.b35596f.assembly.stream-b35596f SOURCE_DATE_EPOCH=1632428678 SOURCE_GIT_COMMIT=b35596fa3f0bb432063443ece7d12d71fb43ebdf SOURCE_GIT_TAG=b35596fa SOURCE_GIT_URL=https://github.com/openshift/ocp-release-operator-sdk 

RUN mkdir -p /etc/ansible \
    && echo "localhost ansible_connection=local" > /etc/ansible/hosts \
    && echo '[defaults]' > /etc/ansible/ansible.cfg \
    && echo 'roles_path = /opt/ansible/roles' >> /etc/ansible/ansible.cfg \
    && echo 'library = /usr/share/ansible/openshift' >> /etc/ansible/ansible.cfg

ENV HOME=/opt/ansible \
    USER_NAME=ansible \
    USER_UID=1001

RUN yum install -y \
      ansible \
      ansible-runner \
      ansible-runner-http \
      python3-kubernetes \
      python3-openshift \
      python3-oauthlib \
      python3-requests-oauthlib \
      python3-jmespath \
      tini \
 && yum clean all \
 && rm -rf /var/cache/yum

COPY --from=builder /go/src/github.com/operator-framework/operator-sdk/build/ansible-operator /usr/local/bin/ansible-operator
COPY release/ansible/ansible_collections ${HOME}/.ansible/collections/ansible_collections

COPY release/ansible/bin /usr/local/bin

RUN /usr/local/bin/user_setup

# Ensure directory permissions are properly set
RUN mkdir -p ${HOME}/.ansible/tmp \
 && chown -R ${USER_UID}:0 ${HOME} \
 && chmod -R ug+rwx ${HOME}


WORKDIR ${HOME}
USER ${USER_UID}
ENTRYPOINT ["/usr/bin/tini", "--", "/usr/local/bin/ansible-operator", "run", "--watches-file=./watches.yaml"]

LABEL \
        name="openshift/ose-ansible-operator" \
        com.redhat.component="openshift-enterprise-ansible-operator-container" \
        io.openshift.maintainer.product="OpenShift Container Platform" \
        io.openshift.maintainer.component="Operator SDK" \
        release="202110262219.p0.git.b35596f.assembly.stream" \
        io.openshift.build.commit.id="b35596fa3f0bb432063443ece7d12d71fb43ebdf" \
        io.openshift.build.source-location="https://github.com/openshift/ocp-release-operator-sdk" \
        io.openshift.build.commit.url="https://github.com/openshift/ocp-release-operator-sdk/commit/b35596fa3f0bb432063443ece7d12d71fb43ebdf" \
        version="v4.8.0"

