FROM python:3.11 ARG KUBECTL_VERSION=v1.27.10 ENV WORKSPACE /src/rancher-validation WORKDIR $WORKSPACE ENV PYTHONPATH /src/rancher-validation ARG RKE_VERSION=v1.0.2 ARG CLI_VERSION=v2.3.2 ARG RANCHER_HELM_VERSION=v3.9.0 ARG SONOBUOY_VERSION=0.18.2 ARG TERRAFORM_VERSION=0.12.10 ARG EXTERNAL_ENCODED_VPN ARG VPN_ENCODED_LOGIN COPY [".", "$WORKSPACE"] RUN wget https://storage.googleapis.com/kubernetes-release/release/$KUBECTL_VERSION/bin/linux/amd64/kubectl && \ mv kubectl /bin/kubectl && \ chmod +x /bin/kubectl && \ wget https://github.com/rancher/rke/releases/download/$RKE_VERSION/rke_linux-amd64 && \ mv rke_linux-amd64 /bin/rke && \ chmod +x /bin/rke && \ wget https://github.com/rancher/cli/releases/download/$CLI_VERSION/rancher-linux-amd64-$CLI_VERSION.tar.gz && \ tar -x -f rancher-linux-amd64-$CLI_VERSION.tar.gz && \ mv rancher-$CLI_VERSION/rancher /bin/rancherctl && \ chmod +x /bin/rancherctl && \ wget https://get.helm.sh/helm-$RANCHER_HELM_VERSION-linux-amd64.tar.gz && \ tar -x -f helm-$RANCHER_HELM_VERSION-linux-amd64.tar.gz && \ mv linux-amd64/helm /bin/helm_v3 && \ chmod +x /bin/helm_v3 && \ wget https://releases.hashicorp.com/terraform/$TERRAFORM_VERSION/terraform_"$TERRAFORM_VERSION"_linux_amd64.zip && \ apt-get update && \ apt-get install unzip && \ unzip terraform_"$TERRAFORM_VERSION"_linux_amd64.zip && \ chmod u+x terraform && \ mv terraform /usr/local/bin && \ wget "https://github.com/vmware-tanzu/sonobuoy/releases/download/v$SONOBUOY_VERSION/sonobuoy_$SONOBUOY_VERSION"_linux_amd64.tar.gz && \ tar -xzf "sonobuoy_$SONOBUOY_VERSION"_linux_amd64.tar.gz -C /tmp && \ mv /tmp/sonobuoy /usr/local/bin && \ chmod +x /usr/local/bin/sonobuoy && \ wget https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip && \ unzip awscli-exe-linux-x86_64.zip && \ ./aws/install && \ # curl -sL https://aka.ms/InstallAzureCLIDeb | bash && \ cd $WORKSPACE && \ pip install --upgrade pip && \ pip install -r requirements_v3api.txt # necessary to run if statements using [[ ]] SHELL ["/bin/bash", "-c"] RUN if [[ -z '$EXTERNAL_ENCODED_VPN' ]] ; then \ echo 'no vpn provided' ; \ else \ apt-get update && apt-get -y install openvpn net-tools && \ echo $EXTERNAL_ENCODED_VPN | base64 -d > external.ovpn && \ if [[ -z '$VPN_ENCODED_LOGIN' ]] ; then \ echo 'no passcode provided' ; \ else \ echo 'adding passfile' && echo $VPN_ENCODED_LOGIN | base64 -d > passfile && \ sed -i 's/auth-user-pass/auth-user-pass passfile/g' external.ovpn; \ fi; \ fi;