Deploy was silently failing — bitnami/kubectl image lacks scw CLI needed by Kapsule kubeconfig credential plugin. Now uses infra-runner (has scw), installs kubectl inline until image is rebuilt. Adds cluster-info check before deploy and proper error reporting per service. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
53 lines
1.7 KiB
Docker
53 lines
1.7 KiB
Docker
# Lightweight IaC runner: Terraform + Terragrunt + Scaleway CLI + glab
|
|
FROM alpine:3.21
|
|
|
|
ARG TERRAFORM_VERSION=1.11.2
|
|
ARG TERRAGRUNT_VERSION=0.72.6
|
|
ARG SCW_CLI_VERSION=2.52.0
|
|
ARG GLAB_VERSION=1.55.0
|
|
|
|
# Install base dependencies
|
|
RUN apk add --no-cache \
|
|
bash \
|
|
curl \
|
|
git \
|
|
jq \
|
|
openssh-client \
|
|
unzip \
|
|
aws-cli
|
|
|
|
# Install Terraform (OpenTofu-compatible)
|
|
RUN curl -fsSL "https://releases.hashicorp.com/terraform/${TERRAFORM_VERSION}/terraform_${TERRAFORM_VERSION}_linux_amd64.zip" \
|
|
-o /tmp/terraform.zip && \
|
|
unzip /tmp/terraform.zip -d /usr/local/bin/ && \
|
|
rm /tmp/terraform.zip && \
|
|
terraform version
|
|
|
|
# Install Terragrunt
|
|
RUN curl -fsSL "https://github.com/gruntwork-io/terragrunt/releases/download/v${TERRAGRUNT_VERSION}/terragrunt_linux_amd64" \
|
|
-o /usr/local/bin/terragrunt && \
|
|
chmod +x /usr/local/bin/terragrunt && \
|
|
terragrunt --version
|
|
|
|
# Install Scaleway CLI
|
|
RUN curl -fsSL "https://github.com/scaleway/scaleway-cli/releases/download/v${SCW_CLI_VERSION}/scaleway-cli_${SCW_CLI_VERSION}_linux_amd64" \
|
|
-o /usr/local/bin/scw && \
|
|
chmod +x /usr/local/bin/scw && \
|
|
scw version
|
|
|
|
# Install kubectl
|
|
RUN curl -fsSL "https://dl.k8s.io/release/v1.31.4/bin/linux/amd64/kubectl" \
|
|
-o /usr/local/bin/kubectl && \
|
|
chmod +x /usr/local/bin/kubectl && \
|
|
kubectl version --client
|
|
|
|
# Install glab (GitLab CLI)
|
|
RUN curl -fsSL "https://gitlab.com/gitlab-org/cli/-/releases/v${GLAB_VERSION}/downloads/glab_${GLAB_VERSION}_linux_amd64.tar.gz" \
|
|
-o /tmp/glab.tar.gz && \
|
|
tar -xzf /tmp/glab.tar.gz -C /tmp/ && \
|
|
mv /tmp/bin/glab /usr/local/bin/glab && \
|
|
rm -rf /tmp/glab.tar.gz /tmp/bin && \
|
|
glab version
|
|
|
|
WORKDIR /app
|