No description
Find a file
2026-02-22 22:46:20 -05:00
.gitea/workflows feat: pause CI jobs for now 2026-02-08 17:34:38 -05:00
bootstrap feat: update amounts 2026-02-22 22:37:28 -05:00
infra feat: fix deploy config 2026-02-11 22:39:10 -05:00
.gitignore fix: add ignore for generated files 2026-02-08 17:41:50 -05:00
.python-version init 2026-02-08 17:32:38 -05:00
__main__.py init 2026-02-08 17:32:38 -05:00
CLAUDE.md feat: fix deploy config 2026-02-11 22:39:10 -05:00
Pulumi.prod.yaml chore: update region 2026-02-08 19:16:57 -05:00
Pulumi.staging.yaml feat: fix deploy config 2026-02-11 22:39:10 -05:00
Pulumi.yaml fix: add ignore for generated files 2026-02-08 17:41:50 -05:00
pyproject.toml fix: add ignore for generated files 2026-02-08 17:41:50 -05:00
README.md feat: fix deploy config 2026-02-11 22:39:10 -05:00
uv.lock fix: add ignore for generated files 2026-02-08 17:41:50 -05:00

canpute-infra

Pulumi (Python) infrastructure for the Canpute platform. Provisions Civo K8s clusters and bootstraps them with platform components.

What it deploys

Infrastructure: Civo managed Kubernetes cluster (k3s, flannel CNI, no Traefik)

Bootstrap (Helm releases onto the cluster):

  • ArgoCD — syncs app manifests from the canpute repo (release branch)
  • ArgoCD Image Updater — watches the container registry and triggers rollouts when images change
  • cert-manager — TLS via Let's Encrypt
  • ingress-nginx — ingress controller
  • Doppler operator — syncs secrets into K8s

Stacks

Stack Node Size Nodes Overlay
staging g4s.kube.xsmall 1 deploy/overlays/stg
prod g4s.kube.medium 2 deploy/overlays/prod

Prerequisites

Setup

# Install Python dependencies
uv sync

# Generate Civo SDK from Terraform provider
pulumi package add terraform-provider civo/civo

# Initialize stacks
pulumi stack init staging
pulumi stack init prod

# Set secrets per stack
pulumi config set --secret civo:token <your-civo-token>
pulumi config set --secret doppler_token <your-doppler-service-token>
pulumi config set registry_user <your-registry-user>
pulumi config set --secret registry_token <your-registry-token>

Usage

pulumi stack select <staging|prod>
pulumi preview
pulumi up