50 lines
1.7 KiB
Docker
50 lines
1.7 KiB
Docker
ARG ALPINE_VERSION=3.21
|
|
|
|
FROM docker.io/alpine:${ALPINE_VERSION}
|
|
|
|
ARG ALPINE_VERSION
|
|
ARG KUBE_VERSION=1.30.6
|
|
|
|
ARG SOPS_VERSION="3.9.1"
|
|
ARG VALS_VERSION="0.37.6"
|
|
ARG HELM_SECRETS_VERSION="4.6.2"
|
|
|
|
RUN cd /etc/apk/keys && \
|
|
wget "https://cdn.zero-downtime.net/alpine/stefan@zero-downtime.net-61bb6bfb.rsa.pub" && \
|
|
echo "@kubezero https://cdn.zero-downtime.net/alpine/v${ALPINE_VERSION}/kubezero" >> /etc/apk/repositories && \
|
|
echo "@edge-testing http://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories && \
|
|
echo "@edge-community http://dl-cdn.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories && \
|
|
apk upgrade -U -a --no-cache && \
|
|
apk --no-cache add \
|
|
jq \
|
|
yq \
|
|
diffutils \
|
|
bash \
|
|
python3 \
|
|
py3-yaml \
|
|
restic \
|
|
helm \
|
|
etcd-ctl@edge-community \
|
|
cri-tools@kubezero \
|
|
etcdhelper@kubezero \
|
|
kubeadm@kubezero~=${KUBE_VERSION} \
|
|
kubectl@kubezero~=${KUBE_VERSION}
|
|
|
|
RUN helm repo add kubezero https://cdn.zero-downtime.net/charts && \
|
|
mkdir -p /var/lib/kubezero
|
|
|
|
# helm secrets
|
|
RUN mkdir -p $(helm env HELM_PLUGINS) && \
|
|
wget -qO - https://github.com/jkroepke/helm-secrets/releases/download/v${HELM_SECRETS_VERSION}/helm-secrets.tar.gz | tar -C "$(helm env HELM_PLUGINS)" -xzf-
|
|
|
|
# vals
|
|
RUN wget -qO - https://github.com/helmfile/vals/releases/download/v${VALS_VERSION}/vals_${VALS_VERSION}_linux_amd64.tar.gz | tar -C /usr/local/bin -xzf- vals
|
|
|
|
ADD admin/kubezero.sh admin/libhelm.sh admin/migrate_argo_values.py /usr/bin
|
|
ADD admin/libhelm.sh /var/lib/kubezero
|
|
|
|
ADD charts/kubeadm /charts/kubeadm
|
|
ADD charts/kubezero /charts/kubezero
|
|
|
|
ENTRYPOINT ["kubezero.sh"]
|