Control plane
Grid’s control plane is four cooperating repositories plus your intent Git remote. It orchestrates engines — Terraform for cloud infrastructure, and Kubernetes workload GitOps (Argo / OpenShift) for in-cluster workloads — under one Sync, release, and RBAC model.
Components
| Component | Package | Responsibility |
|---|---|---|
| API & runner | grid-core | Auth, inventory, Sync, release orchestration, Terraform runner, Kubernetes GitOps path, monitoring APIs, install |
| Console | grid-ui | Browser UX: workspace, Infrastructure, Deployments, Releases, Monitoring, Admin |
| Generator / CLI | grid-cli | Terraform generate / plan / deploy / destroy; catalog maturity metadata |
| Module bank | grid-terraform | Versioned Terraform modules referenced by generate |
| Intent repo | Your Git remote (samples in grid-config) | Source of truth for what should exist — shared by every engine |
Runtime data (not the source of truth)
Under Core’s data directories you will also see:
| Path / store | Role |
|---|---|
GRID_DATA_DIR | Users, sessions, audit, release records, GitOps settings |
GRID_WORK_DIR | Fallback Terraform workspaces for API-only units without gitPath |
GRID_CONFIG_ROOT | Desired-state working tree + optional archive/ |
Source of truth for intent is always the Git tree that Sync mirrors into GRID_CONFIG_ROOT. Runtime JSON caches are rebuildable.
Request paths that matter
| User action | Typical path |
|---|---|
| Sync desired state | POST /api/v1/gitops/sync → upsert / stale |
| Plan / apply from console | Release + lifecycle → the unit’s engine (terraform or kubernetes GitOps) |
| Live logs | SSE GET /api/v1/deployments/:id/logs/stream |
| Drift check | Compare content hash / terraform plan signals |
| Monitoring | Query Prometheus / Alertmanager URLs configured on the host |
Production vs development
| Mode | How you run it | Env file |
|---|---|---|
| Development | npm run dev in each package | .env.development |
| Production | Compose / npm run prod / release images | .env / install/.env |
Production boots refuse incomplete remote state and monitoring URLs. Details: Development vs production.