From e98c6b384445b05844b16666492bc1f0cae6330c Mon Sep 17 00:00:00 2001 From: Jon Date: Wed, 24 Apr 2024 08:34:36 +0930 Subject: [PATCH 1/4] feat(app): install helm and helm diff !251 --- dockerfile | 42 +++++++++++++++++++++++++++++++++++++----- requirements.txt | 2 ++ 2 files changed, 39 insertions(+), 5 deletions(-) diff --git a/dockerfile b/dockerfile index b79d821..36e0e44 100644 --- a/dockerfile +++ b/dockerfile @@ -1,8 +1,29 @@ +ARG release_name=bookworm FROM --platform=$TARGETPLATFORM quay.io/ansible/receptor:v1.4.4 as receptor -FROM --platform=$TARGETPLATFORM python:3.11-slim-bookworm +FROM --platform=$TARGETPLATFORM python:3.11-slim-${release_name} as prep + + + + +ENV DEBIAN_FRONTEND noninteractive + + +RUN apt update; \ + apt install -y \ + curl \ + gpg + + +RUN curl https://baltocdn.com/helm/signing.asc | gpg --dearmor | tee /usr/share/keyrings/helm.gpg > /dev/null; \ + echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/helm.gpg] https://baltocdn.com/helm/stable/debian/ all main" > /etc/apt/sources.list.d/helm.list; \ + cat /etc/apt/sources.list.d/helm.list; + + +FROM --platform=$TARGETPLATFORM python:3.11-slim-${release_name} + # Ansible chucks a wobbler without. see: https://github.com/ansible/ansible/issues/78283 ENV LC_ALL en_US.UTF-8 @@ -40,19 +61,29 @@ RUN apt update \ && cp /tmp/deb/sbin/ldconfig /sbin/ \ && rm -Rf /tmp/deb \ && rm $(ls | grep libc-bin_ | grep -a '.deb') \ - && apt-get install --reinstall \ + && apt-get install -y --reinstall \ libc-bin \ # EoF fixing dpkg ldconfig not found error # Set Locale to en_US as ansible requires a locale for it to function without chucking a tantrum!! && apt install -y \ locales \ + apt-transport-https \ && sed -i 's/^# *\(en_US.UTF-8\)/\1/' /etc/locale.gen \ - && locale-gen \ - && apt list --upgradable \ + && locale-gen; + + +COPY --from=prep --chmod=644 /etc/apt/sources.list.d/helm.list /etc/apt/sources.list.d/helm.list + +COPY --from=prep --chmod=644 /usr/share/keyrings/helm.gpg /usr/share/keyrings/helm.gpg + + +RUN apt update; \ + apt list --upgradable \ && apt upgrade --no-install-recommends -y \ && apt-get install --no-install-recommends -y \ openssh-client \ git \ + helm \ sshpass \ postgresql-common \ postgresql-client \ @@ -65,7 +96,8 @@ RUN apt update \ # see issue https://gitlab.com/nofusscomputing/projects/ansible/execution_environment/-/issues/9 for following two lines && apt remove -y \ python3* \ - libpython3* \ + libpython3*; \ + helm plugin install https://github.com/databus23/helm-diff; \ && rm -rf /var/lib/apt/lists/* diff --git a/requirements.txt b/requirements.txt index a800244..e0ef125 100644 --- a/requirements.txt +++ b/requirements.txt @@ -11,6 +11,8 @@ PyMySQL==1.1.0 # NetBox pytz==2024.1 +PyYAML>=3.11 + dnspython==2.4.2 xmltodict==0.13.0 From 838112adc452f39c46e882533c011ce23f29de85 Mon Sep 17 00:00:00 2001 From: Jon Date: Wed, 24 Apr 2024 10:20:51 +0930 Subject: [PATCH 2/4] feat: Install kubectl !251 --- dockerfile | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/dockerfile b/dockerfile index 36e0e44..7400c33 100644 --- a/dockerfile +++ b/dockerfile @@ -1,11 +1,15 @@ ARG release_name=bookworm +ARG kubernetes_version=1.29 + + FROM --platform=$TARGETPLATFORM quay.io/ansible/receptor:v1.4.4 as receptor FROM --platform=$TARGETPLATFORM python:3.11-slim-${release_name} as prep +ARG kubernetes_version ENV DEBIAN_FRONTEND noninteractive @@ -22,6 +26,11 @@ RUN curl https://baltocdn.com/helm/signing.asc | gpg --dearmor | tee /usr/share/ cat /etc/apt/sources.list.d/helm.list; +RUN curl -fsSL https://pkgs.k8s.io/core:/stable:/v${kubernetes_version}/deb/Release.key | gpg --dearmor | tee /usr/share/keyrings/kubernetes.gpg > /dev/null; \ + echo "deb [signed-by=/usr/share/keyrings/kubernetes.gpg] https://pkgs.k8s.io/core:/stable:/v${kubernetes_version}/deb/ /" > /etc/apt/sources.list.d/kubernetes.list; \ + cat /etc/apt/sources.list.d/kubernetes.list; + + FROM --platform=$TARGETPLATFORM python:3.11-slim-${release_name} @@ -76,6 +85,10 @@ COPY --from=prep --chmod=644 /etc/apt/sources.list.d/helm.list /etc/apt/sources. COPY --from=prep --chmod=644 /usr/share/keyrings/helm.gpg /usr/share/keyrings/helm.gpg +COPY --from=prep --chmod=644 /etc/apt/sources.list.d/kubernetes.list /etc/apt/sources.list.d/kubernetes.list + +COPY --from=prep --chmod=644 /usr/share/keyrings/kubernetes.gpg /usr/share/keyrings/kubernetes.gpg + RUN apt update; \ apt list --upgradable \ @@ -84,6 +97,7 @@ RUN apt update; \ openssh-client \ git \ helm \ + kubectl \ sshpass \ postgresql-common \ postgresql-client \ From 25146e758639d6556757854daf58be320c0605c3 Mon Sep 17 00:00:00 2001 From: Jon Date: Wed, 24 Apr 2024 10:24:05 +0930 Subject: [PATCH 3/4] fix: typo !251 --- dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dockerfile b/dockerfile index 7400c33..4a67d17 100644 --- a/dockerfile +++ b/dockerfile @@ -112,7 +112,7 @@ RUN apt update; \ python3* \ libpython3*; \ helm plugin install https://github.com/databus23/helm-diff; \ - && rm -rf /var/lib/apt/lists/* + rm -rf /var/lib/apt/lists/* WORKDIR /workdir From 061475fced3bf6f5e5007021a2a8bb6b7de4d533 Mon Sep 17 00:00:00 2001 From: Jon Date: Wed, 24 Apr 2024 10:32:51 +0930 Subject: [PATCH 4/4] fix(build_cache_image): correct missing flag !251 --- dockerfile-build_cache | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dockerfile-build_cache b/dockerfile-build_cache index 7f8a3ff..356f26a 100644 --- a/dockerfile-build_cache +++ b/dockerfile-build_cache @@ -46,7 +46,7 @@ RUN which ldconfig # && rm libc-bin_*.deb # Should re-install without issue -RUN apt-get install --reinstall \ +RUN apt-get install -y --reinstall \ libc-bin # EoF fixing dpkg ldconfig not found error # Set Locale to en_US as ansible requires a locale for it to function without chucking a tantrum!!