Files
OpenTofuPlayground/.gitlab-ci.yml
Lutz Finsterle b2a3e00452
Some checks failed
Deploy / Update Proxmox Dev VMs / Detect changed Proxmox tfvars (push) Successful in 26s
Test / Static Analysis (push) Failing after 25s
Test / Unit Tests — Docker Stack (push) Has been skipped
Test / Unit Tests — K8s Stack (push) Has been skipped
Deploy / Update Proxmox Dev VMs / Provision ${{ matrix.tfvars }} (push) Failing after 32s
Deploy / Update Proxmox Dev VMs / Destroy ${{ matrix.tfvars }} (push) Has been skipped
Test / Integration Test — K8s (k3d) (push) Has been skipped
New Function: DEV VM
2026-03-20 10:06:05 +01:00

45 lines
2.3 KiB
YAML

# ─────────────────────────────────────────────────────────────────────────────
# GitLab CI/CD — OpenTofu Playground
#
# Four included pipelines:
# test.gitlab-ci.yml Static analysis + unit tests + K8s integration
# deploy.gitlab-ci.yml Docker stack deploy/destroy via apps/*.tfvars
# deploy-k8s.gitlab-ci.yml K8s stack deploy/destroy via k8s/apps/*.tfvars
# deploy-proxmox.gitlab-ci.yml Proxmox dev VM provision/destroy via proxmox/apps/*.tfvars
#
# Required GitLab CI/CD variables (Settings > CI/CD > Variables):
# TOFU_VERSION OpenTofu version to install (default: 1.9.0)
# GOPASS_GPG_KEY GPG private key (armored) for the gopass store
# GOPASS_STORE_REPO Git URL of the gopass password store
# SEAWEED_S3_ENDPOINT SeaweedFS S3 endpoint, e.g. http://seaweedfs.home:8333
# SEAWEED_ACCESS_KEY SeaweedFS access key (mark as Masked)
# SEAWEED_SECRET_KEY SeaweedFS secret key (mark as Masked)
# PROXMOX_ENDPOINT Proxmox API URL, e.g. https://proxmox.home:8006/
# PROXMOX_API_TOKEN Proxmox API token: user@pam!tokenid=secret (Masked)
# PROXMOX_TLS_INSECURE "true" when using a self-signed cert (optional)
#
# gopass store layout expected by the deploy pipelines:
# infra/ssh-keys/<name> — SSH private key (Docker host or dev VM)
# infra/kubeconfigs/<name> — kubeconfig for K8s cluster or k3s VM
# apps/<name>/db_password — PostgreSQL password
# apps/<name>/git_token — optional git token for git_clone mode
# apps/<name>/rabbitmq_password — RabbitMQ password (K8s stack)
# apps/<name>/loki_token — optional Loki auth token (K8s stack)
# ─────────────────────────────────────────────────────────────────────────────
stages:
- static
- unit
- integration
- deploy
- destroy
variables:
TOFU_VERSION: "1.9.0"
include:
- local: .gitlab/workflows/test.gitlab-ci.yml
- local: .gitlab/workflows/deploy.gitlab-ci.yml
- local: .gitlab/workflows/deploy-k8s.gitlab-ci.yml
- local: .gitlab/workflows/deploy-proxmox.gitlab-ci.yml