ARG ARGOCD_VERSION="v3.3.0" FROM quay.io/argoproj/argocd:$ARGOCD_VERSION ARG SOPS_VERSION="3.11.0" ARG AGE_VERSION="1.3.1" ARG HELM_SECRETS_VERSION="4.7.5" ARG KUBECTL_VERSION="1.35.1" ARG AVP_VERSION="1.17.0" # Switch to root for the ability to perform install USER root ENV HELM_PLUGINS="/home/argocd/.local/share/helm/plugins/" # Install tools needed for your repo-server to retrieve & decrypt secrets, render manifests RUN apt-get update && \ apt-get install -y --no-install-recommends \ git bash ca-certificates wget gpg curl tar jq && \ rm -rf /var/lib/apt/lists/* # SOPS RUN curl -o /usr/local/bin/sops -L https://github.com/getsops/sops/releases/download/v${SOPS_VERSION}/sops-v${SOPS_VERSION}.linux.amd64 && \ chmod +x /usr/local/bin/sops # age (encryption for SOPS) RUN curl -L -o /tmp/age.tar.gz https://github.com/FiloSottile/age/releases/download/v${AGE_VERSION}/age-v${AGE_VERSION}-linux-amd64.tar.gz && \ tar -xzf /tmp/age.tar.gz -C /tmp && \ mv /tmp/age/age /usr/local/bin/age && \ mv /tmp/age/age-keygen /usr/local/bin/age-keygen && \ chmod +x /usr/local/bin/age /usr/local/bin/age-keygen && \ rm -rf /tmp/age* # kubectl RUN curl -fsSL https://dl.k8s.io/release/v${KUBECTL_VERSION}/bin/linux/amd64/kubectl \ -o /usr/local/bin/kubectl && chmod +x /usr/local/bin/kubectl # argocd-vault-plugin RUN curl -L -o /usr/local/bin/argocd-vault-plugin \ https://github.com/argoproj-labs/argocd-vault-plugin/releases/download/v${AVP_VERSION}/argocd-vault-plugin_${AVP_VERSION}_linux_amd64 && \ chmod +x /usr/local/bin/argocd-vault-plugin ENV ARGOCD_USER_ID=999 USER $ARGOCD_USER_ID # helm-secrets plugin RUN helm plugin install --version ${HELM_SECRETS_VERSION} https://github.com/jkroepke/helm-secrets