This repository was archived by the owner on Jan 2, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
69 lines (57 loc) · 2.71 KB
/
Copy pathDockerfile
File metadata and controls
69 lines (57 loc) · 2.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# ArgoCD Base
FROM quay.io/syself/argocd:argocd-alpha.5
# Dependencies versions
# renovate: datasource=github-tags depName=helmfile/helmfile extractVersion=^v(?<version>.*)$
ARG HELMFILE_VERSION=0.148.1
# renovate: datasource=github-tags depName=helm/helm
ARG HELM_VERSION=v3.10.2
ARG HELM_LOCATION="https://get.helm.sh"
ARG HELM_FILENAME="helm-${HELM_VERSION}-linux-amd64.tar.gz"
# renovate: datasource=github-tags depName=mozilla/sops
ARG SOPS_VERSION=3.7.3
# renovate: datasource=github-tags depName=databus23/helm-diff extractVersion=^v(?<version>.*)$
ARG HELM_DIFF_VERSION=3.6.0
# renovate: datasource=github-tags depName=jkroepke/helm-secrets extractVersion=^v(?<version>.*)$
ARG HELM_SECRETS_VERSION=4.2.2
# renovate: datasource=github-tags depName=kubernetes/kubernetes extractVersion=^v(?<version>.*)$
ARG KUBECTL_VERSION=1.25.4
USER root
ENV ARGOCD_USER_ID=999
# Download OS dependencies
RUN apt-get update && \
apt-get install -y \
curl git wget unzip && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
# Download helmfile
RUN curl -fsSL "helmfile" https://github.com/helmfile/helmfile/releases/download/v${HELMFILE_VERSION}/helmfile_${HELMFILE_VERSION}_linux_amd64.tar.gz | tar -xzv helmfile && \
mv helmfile /usr/local/bin/helmfile && \
chmod +x /usr/local/bin/helmfile
# Download helm
RUN curl -OL ${HELM_LOCATION}/${HELM_FILENAME} && \
echo Extracting ${HELM_FILENAME}... && \
tar zxvf ${HELM_FILENAME} && mv ./linux-amd64/helm /usr/local/bin/ && \
rm ${HELM_FILENAME} && rm -r ./linux-amd64 && \
chmod +x /usr/local/bin/helm
# Dowload sops
RUN curl -fSSL https://github.com/mozilla/sops/releases/download/v${SOPS_VERSION}/sops-v${SOPS_VERSION}.linux \
-o /usr/local/bin/sops && chmod +x /usr/local/bin/sops
# Download 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
# Switch back to non-root user
USER argocd
# Install helm-secrets plugin (as argocd user)
RUN helm plugin install https://github.com/databus23/helm-diff --version v${HELM_DIFF_VERSION} && \
helm plugin install https://github.com/jkroepke/helm-secrets --version v${HELM_SECRETS_VERSION} && \
helm plugin install https://github.com/mumoshu/helm-x && \
helm plugin install https://github.com/aslafy-z/helm-git.git
# In case wrapper scripts are used, HELM_SECRETS_HELM_PATH needs to be the path of the real helm binary
ENV HELM_SECRETS_HELM_PATH=/usr/local/bin/helm \
HELM_PLUGINS="/home/argocd/.local/share/helm/plugins/" \
HELM_SECRETS_VALUES_ALLOW_SYMLINKS=false \
HELM_SECRETS_VALUES_ALLOW_ABSOLUTE_PATH=false \
HELM_SECRETS_VALUES_ALLOW_PATH_TRAVERSAL=false
ENV USER=argocd
USER $ARGOCD_USER_ID
WORKDIR /home/argocd