Files
eSlider 5f6fd8462c
CI & Release / Verify simulator (push) Skipped
CI & Release / Trivy scan (push) Skipped
CI & Release / Semantic Release (push) Skipped
CI & Release / Verify simulator (pull_request) Failing after 4s
CI & Release / Trivy scan (pull_request) Skipped
CI & Release / Semantic Release (pull_request) Skipped
docs: audit links, glossary T0-T4, readability pass
Extend glossary with storage floors, source of truth, and linkable anchors.
Fix broken links, pose frame drift, rsync/offload wording, and README tone.
Add docs/improvement audit records and live demo links in design journey.
2026-07-10 10:46:59 +01:00

2.3 KiB

Terraform — ground workloads

Declared workloads on the k3d simulation cluster. See 06 — IaC boundaries.

Module Tier Purpose
sim-env/ T4 dev/sim Virtual fleet + observability on k3d
ground/ T3 Warehouse + T1→T3 offload

Two modules, two states. Fleet disposable; warehouse survives destroy of sim-env.

Recovering from partial state

If resources were created outside Terraform (or state was lost), import them before terraform apply. Run from the target module directory (sim-env/ or ground/):

# sim-env (namespace: swarm)
terraform import kubernetes_namespace.swarm swarm
terraform import kubernetes_stateful_set.drone swarm/drone
terraform import kubernetes_deployment.exporter swarm/exporter
terraform import kubernetes_deployment.explorer swarm/explorer
terraform import kubernetes_deployment.prometheus swarm/prometheus
terraform import kubernetes_deployment.grafana swarm/grafana
terraform import kubernetes_service.exporter swarm/exporter
terraform import kubernetes_service.explorer swarm/explorer
terraform import kubernetes_service.prometheus swarm/prometheus
terraform import kubernetes_service.grafana swarm/grafana
terraform import kubernetes_config_map.prometheus swarm/prometheus-config
terraform import kubernetes_config_map.grafana_provisioning swarm/grafana-provisioning
terraform import kubernetes_config_map.grafana_dashboard swarm/grafana-dashboard

# ground (namespace: ground)
terraform import kubernetes_namespace.ground ground
terraform import kubernetes_persistent_volume_claim.minio ground/minio-data
terraform import kubernetes_secret.minio ground/minio-credentials
terraform import kubernetes_deployment.minio ground/minio
terraform import kubernetes_deployment.warehouse_explorer ground/warehouse-explorer
terraform import kubernetes_service.minio ground/minio
terraform import kubernetes_service.warehouse_explorer ground/warehouse-explorer
terraform import kubernetes_cron_job_v1.offload ground/offload

Then terraform apply reconciles drift (for example pinning EXPLORER_PORT and EXPORTER_PORT so Kubernetes service env injection does not break startup).