Skip to content
Draft
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
40 changes: 21 additions & 19 deletions .envrc.example
Original file line number Diff line number Diff line change
@@ -1,23 +1,25 @@
export KUBECONFIG=$PWD/.mgt-cluster-kubeconfig.yaml
# Copy this file to .envrc and adjust as needed.
# direnv will load it automatically: https://direnv.net/
# make also reads environment variables (set them via .env or export).

export PATH=$PWD/hack/tools/bin:$PATH
# --- Stack selection ---
# Which provider and stack to build/publish/update.
# Defaults in the Makefile are openstack/scs.
export PROVIDER=openstack
export CLUSTER_STACK=scs

export PROVIDER=docker
# --- OCI registry ---
# Leave unset to auto-configure ttl.sh as a temporary dev registry (24h TTL).
# Set both for a persistent registry.
# export OCI_REGISTRY=registry.example.com
# export OCI_REPOSITORY=kaas/cluster-stacks
# export OCI_USERNAME=user
# export OCI_PASSWORD=password
# export OCI_ACCESS_TOKEN=token

# Versions
export K8S_VERSION=1-27
export CAPI_VERSION=v1.5.1
export CAPD_VERSION=$CAPI_VERSION
# --- Optional ---
# GitHub token for higher API rate limits during Kubernetes version resolution.
# export GITHUB_TOKEN=ghp_...

# Names
export NAMESPACE=scs-cs
export CLUSTER_CLASS_NAME=ferrol
export CLUSTER_NAME=cs-cluster
export CLUSTER_TOPOLOGY=true

# Debugging
export DISABLE_VERSIONCHECK="true"

# Release
export RELEASE_CLUSTER_CLASS=$CLUSTER_CLASS_NAME
export RELEASE_KUBERNETES_VERSION=1-27
# Kubeconfig for the management cluster (useful with direnv).
# export KUBECONFIG=$PWD/.mgt-cluster-kubeconfig.yaml
47 changes: 47 additions & 0 deletions Containerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
FROM alpine:3.21

LABEL org.opencontainers.image.source="https://github.com/SovereignCloudStack/cluster-stacks"
LABEL org.opencontainers.image.description="Cluster Stack Build Tools"
LABEL org.opencontainers.image.licenses="Apache-2.0"

# Install system dependencies
RUN apk add --no-cache \
bash \
git \
curl \
tar \
gzip \
gawk \
python3 \
py3-yaml \
jq \
ca-certificates

# Install helm
RUN HELM_VERSION=v3.17.3 && \
curl -fsSL "https://get.helm.sh/helm-${HELM_VERSION}-linux-amd64.tar.gz" | \
tar -xz -C /usr/local/bin --strip-components=1 linux-amd64/helm

# Install yq (mikefarah)
RUN YQ_VERSION=v4.45.4 && \
curl -fsSL "https://github.com/mikefarah/yq/releases/download/${YQ_VERSION}/yq_linux_amd64" \
-o /usr/local/bin/yq && chmod +x /usr/local/bin/yq

# Install oras
RUN ORAS_VERSION=1.2.2 && \
curl -fsSL "https://github.com/oras-project/oras/releases/download/v${ORAS_VERSION}/oras_${ORAS_VERSION}_linux_amd64.tar.gz" | \
tar -xz -C /usr/local/bin oras
WORKDIR /workspace

# Verify installations
RUN bash --version | head -1 && \
helm version --short && \
yq --version && \
oras version && \
make --version && \
git --version

# Allow git operations inside mounted volumes
RUN git config --global --add safe.directory /workspace

CMD ["/bin/bash"]
Loading