06b4062e4b
This change updates the dhall code to the latest version. * Support for record pun where `{ x = x }` can now be written as `{ x }` * Indentation and function definitions are more compact This change has been generated after installing dhall v1.33 using this command: find . -name "*.dhall" -exec dhall --ascii format --inplace {} \; Change-Id: I3b6560f26e28622aa51150dc8083d127d89a8a7b
58 lines
2.7 KiB
Docker
58 lines
2.7 KiB
Docker
FROM quay.io/operator-framework/ansible-operator:v0.13.0
|
|
|
|
# dhall versions and digests
|
|
ARG DHALL_VERSION=1.33.1
|
|
ARG DHALL_JSON_VERSION=1.7.0
|
|
ARG DHALL_JSON_DIGEST=cc9fc70e492d35a3986183b589a435653e782f67cda51d33a935dff1ddd15aec
|
|
ARG DHALL_LANG_REF=v17.0.0
|
|
ARG DHALL_KUBE_REF=v4.0.0
|
|
|
|
# kubectl versions and digests
|
|
ARG KUBECTL_VERSION=v1.17.0
|
|
ARG KUBECTL_DIGEST=a5eb7e2e44d858d96410937a4e4c82f9087c9d120cb2b9e92462878eda59d578
|
|
|
|
# Install extra requirements
|
|
USER root
|
|
|
|
# See: https://github.com/operator-framework/operator-sdk/issues/2384
|
|
# Install gear to connect to the scheduler gearman
|
|
RUN pip3 install --upgrade openshift gear
|
|
|
|
# unarchive: bzip2 and tar
|
|
# generate zuul ssh-keys or certificate: openssh and openssl
|
|
# manage configuration: git
|
|
RUN dnf install -y bzip2 tar openssh openssl git
|
|
|
|
# Install kubectl to mitigate https://github.com/operator-framework/operator-sdk/issues/2204
|
|
RUN curl -OL https://dl.k8s.io/$KUBECTL_VERSION/kubernetes-client-linux-amd64.tar.gz \
|
|
&& echo "$KUBECTL_DIGEST kubernetes-client-linux-amd64.tar.gz" | sha256sum -c \
|
|
&& tar -xf kubernetes-client-linux-amd64.tar.gz --strip-components=3 -z --mode='a+x' -C /usr/bin \
|
|
&& rm kubernetes-client-linux-amd64.tar.gz
|
|
|
|
# Install dhall-to-json
|
|
RUN curl -OL https://github.com/dhall-lang/dhall-haskell/releases/download/$DHALL_VERSION/dhall-json-$DHALL_JSON_VERSION-x86_64-linux.tar.bz2 \
|
|
&& echo "$DHALL_JSON_DIGEST dhall-json-$DHALL_JSON_VERSION-x86_64-linux.tar.bz2" | sha256sum -c \
|
|
&& tar -xf dhall-json-$DHALL_JSON_VERSION-x86_64-linux.tar.bz2 --strip-components=2 -j --mode='a+x' -C /usr/bin \
|
|
&& rm dhall-json-$DHALL_JSON_VERSION-x86_64-linux.tar.bz2
|
|
|
|
# Back to the default operator user
|
|
USER 1001
|
|
|
|
# Install dhall libraries
|
|
RUN git clone --branch $DHALL_LANG_REF --depth 1 https://github.com/dhall-lang/dhall-lang /opt/ansible/dhall-lang \
|
|
&& git clone --branch $DHALL_KUBE_REF --depth 1 https://github.com/dhall-lang/dhall-kubernetes /opt/ansible/dhall-kubernetes
|
|
ENV DHALL_PRELUDE=/opt/ansible/dhall-lang/Prelude/package.dhall
|
|
ENV DHALL_KUBERNETES=/opt/ansible/dhall-kubernetes/package.dhall
|
|
|
|
# Copy configuration
|
|
COPY conf/ /opt/ansible/conf/
|
|
|
|
# Cache dhall objects
|
|
RUN echo 'let Prelude = ~/conf/Prelude.dhall let Kubernetes = ~/conf/Kubernetes.dhall in "OK"' | \
|
|
env DHALL_PRELUDE=/opt/ansible/dhall-lang/Prelude/package.dhall \
|
|
DHALL_KUBERNETES=/opt/ansible/dhall-kubernetes/package.dhall dhall-to-json
|
|
|
|
# Copy ansible operator requirements
|
|
COPY watches.yaml ${HOME}/watches.yaml
|
|
COPY roles ${HOME}/roles
|