Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,18 @@ updates:
ignore:
- dependency-name: '*'
update-types: ['version-update:semver-major']
# GCP
- package-ecosystem: 'docker'
directory: '/gcp'
schedule:
interval: 'weekly'
labels:
- 'dependencies'
- 'docker'
- 'gcp'
ignore:
- dependency-name: '*'
update-types: ['version-update:semver-major']
# Chrome
- package-ecosystem: 'docker'
directory: '/chrome'
Expand Down
68 changes: 68 additions & 0 deletions gcp/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
FROM python:3.14.3-slim-trixie AS base

LABEL maintainer="opensource@ekino.com"
LABEL org.opencontainers.image.source="https://github.com/ekino/docker-buildbox/"

FROM base AS base-amd64
ARG HELM_ARCH="linux-amd64"
ARG KUBECTL_ARCH="amd64"
ARG KUSTOMIZE_ARCH="linux_amd64"
ARG TERRAGRUNT_ARCH="amd64"
ARG INFRACOST_ARCH="amd64"
ARG JQ_ARCH="amd64"

FROM base AS base-arm64
ARG HELM_ARCH="linux-arm64"
ARG KUBECTL_ARCH="arm64"
ARG KUSTOMIZE_ARCH="linux_arm64"
ARG TERRAGRUNT_ARCH="arm64"
ARG INFRACOST_ARCH="arm64"
ARG JQ_ARCH="arm64"

FROM base-$TARGETARCH

RUN apt-get update -qq && apt-get install -qq -y apt-transport-https ca-certificates gnupg curl git zip unzip jq wget \
&& echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" | tee /etc/apt/sources.list.d/google-cloud-sdk.list \
&& curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | gpg --dearmor -o /usr/share/keyrings/cloud.google.gpg \
&& apt-get update -qq \
&& apt-get install -qq -y google-cloud-cli google-cloud-sdk-gke-gcloud-auth-plugin \
&& apt-get -qq -y autoremove \
&& apt-get -qq -y clean && apt-get -y -qq purge \
&& rm -rf /var/lib/apt/lists/* /var/lib/dpkg/*-old \
&& wget https://github.com/mikefarah/yq/releases/latest/download/yq_linux_${JQ_ARCH} -O /usr/bin/yq \
&& chmod +x /usr/bin/yq \
&& pip install -U pip \
&& pip install pipenv \
# Installing kubectl
&& curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/${KUBECTL_ARCH}/kubectl" \
&& chmod +x ./kubectl \
&& mv ./kubectl /usr/bin/kubectl \
# Downloading latest kustomize
&& KUSTOMIZE_VERSION=$(curl -s https://api.github.com/repos/kubernetes-sigs/kustomize/releases/latest | grep '"tag_name":' | sed -E 's/.*"kustomize\/v([^"]+)".*/\1/') \
&& curl -LO https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize%2Fv${KUSTOMIZE_VERSION}/kustomize_v${KUSTOMIZE_VERSION}_${KUSTOMIZE_ARCH}.tar.gz \
&& tar -xf kustomize_v${KUSTOMIZE_VERSION}_${KUSTOMIZE_ARCH}.tar.gz \
&& rm kustomize_v${KUSTOMIZE_VERSION}_${KUSTOMIZE_ARCH}.tar.gz \
&& mv ./kustomize /usr/bin/kustomize \
# Downloading latest helm (3.x.x)
&& HELM_VERSION=$(curl -s https://api.github.com/repos/helm/helm/releases | grep '"tag_name":' | grep -E 'v3\.[0-9]+\.[0-9]+' | head -1 | sed -E 's/.*"v([^"]+)".*/\1/') \
&& curl -LO https://get.helm.sh/helm-v${HELM_VERSION}-${HELM_ARCH}.tar.gz \
&& tar xf helm-v${HELM_VERSION}-${HELM_ARCH}.tar.gz && rm helm-v${HELM_VERSION}-${HELM_ARCH}.tar.gz \
&& mv ${HELM_ARCH}/helm /usr/local/bin/helm \
# Downloading latest helm diff plugin
&& HELM_DIFF_VERSION=$(curl -s https://api.github.com/repos/databus23/helm-diff/releases/latest | grep '"tag_name":' | sed -E 's/.*"v([^"]+)".*/\1/') \
&& helm plugin install --version $HELM_DIFF_VERSION https://github.com/databus23/helm-diff \
# Downloading latest terragrunt
&& TERRAGRUNT_VERSION=$(curl -s https://api.github.com/repos/gruntwork-io/terragrunt/releases/latest | grep '"tag_name":' | sed -E 's/.*"v([^"]+)".*/\1/') \
&& curl -LO https://github.com/gruntwork-io/terragrunt/releases/download/v${TERRAGRUNT_VERSION}/terragrunt_linux_${TERRAGRUNT_ARCH} \
&& mv terragrunt_linux_${TERRAGRUNT_ARCH} /usr/bin/terragrunt \
&& chmod +x /usr/bin/terragrunt \
# Downloading latest infracost
&& INFRACOST_VERSION=$(curl -s https://api.github.com/repos/infracost/infracost/releases/latest | grep '"tag_name":' | sed -E 's/.*"v([^"]+)".*/\1/') \
&& curl -LO https://github.com/infracost/infracost/releases/download/v${INFRACOST_VERSION}/infracost-linux-${INFRACOST_ARCH}.tar.gz \
&& tar xvf infracost-linux-${INFRACOST_ARCH}.tar.gz \
&& mv infracost-linux-${INFRACOST_ARCH} /usr/bin/infracost \
&& curl -LO https://raw.githubusercontent.com/infracost/infracost/v${INFRACOST_VERSION}/scripts/ci/diff.sh \
&& mv diff.sh /opt/diff.sh \
&& chmod +x /opt/diff.sh \
&& git clone --depth=1 https://github.com/tfutils/tfenv.git ~/.tfenv \
&& ln -s ~/.tfenv/bin/* /usr/local/bin
20 changes: 20 additions & 0 deletions gcp/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
versions:
'1':
platforms:
- linux/amd64
- linux/arm64
test_config:
cmd:
- gcloud --version
- git --version
- helm diff version
- helm version
- kustomize version
- pip --version
- pipenv --version
- zip --version
- unzip -v
- terragrunt --version
- infracost --version
- tfenv init
- kubectl version --client
Loading