Will Anderson 0c32964ead ci: add gitea actions runner on GCP with WIF-backed deploy SA
A single e2-standard-4 GCE VM in us-central1-a runs act_runner,
registered to git.neuralplatform.ai. Workload Identity Federation
binds the runner to the existing neuron-ci-pusher SA (artifactregistry.writer
+ run.developer + serviceAccountUser on the runtime SAs). No long-lived
JSON keys live on the runner; the GCP_SA_KEY secret remains as a fallback
in case the Gitea OIDC issuer isn't reachable from oauth2.googleapis.com.

The runner VM has its own minimal-scope SA (gitea-runner-vm) that can
only read the registration token from Secret Manager — splitting boot
identity from deploy identity so a runner compromise doesn't grant push.

SSH is IAP-only (no public ingress on :22). Reference workflow lives at
products/web/.gitea/workflows/deploy.yaml and takes manual gcloud out of
the loop: push to main triggers build, push to AR, parallel deploy to
all 3 marketing prod regions, traffic flip, smoke check.
2026-05-02 12:45:25 -05:00

infrastructure

Personal infrastructure-as-code for Legion (k3s home server) and supporting tooling.

Doc What it covers
AGENTS.md Full reference: machines, secrets, services, domains, namespaces, common operations
servers/legion/README.md What's running on Legion and how deployment works
servers/legion/RUNBOOK.md Disaster recovery — full restore from scratch

Quick start

cd servers/legion
direnv allow
terraform plan
terraform apply

Push to servers/ to deploy app changes via Argo CD.

S
Description
No description provided
Readme
1.4 MiB
Languages
HCL 78.4%
Shell 17.5%
Python 2.6%
Dockerfile 1.5%