Skip to main content

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.

Control plane: grid-ui to grid-core to engines to targets, plus intent Git and state/GitOps
UI and API on top; intent Git and state / cluster GitOps underneath.

Components​

ComponentPackageResponsibility
API & runnergrid-coreAuth, inventory, Sync, release orchestration, Terraform runner, Kubernetes GitOps path, monitoring APIs, install
Consolegrid-uiBrowser UX: workspace, Infrastructure, Deployments, Releases, Monitoring, Admin
Generator / CLIgrid-cliTerraform generate / plan / deploy / destroy; catalog maturity metadata
Module bankgrid-terraformVersioned Terraform modules referenced by generate
Intent repoYour 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 / storeRole
GRID_DATA_DIRUsers, sessions, audit, release records, GitOps settings
GRID_WORK_DIRFallback Terraform workspaces for API-only units without gitPath
GRID_CONFIG_ROOTDesired-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 actionTypical path
Sync desired statePOST /api/v1/gitops/sync → upsert / stale
Plan / apply from consoleRelease + lifecycle → the unit’s engine (terraform or kubernetes GitOps)
Live logsSSE GET /api/v1/deployments/:id/logs/stream
Drift checkCompare content hash / terraform plan signals
MonitoringQuery Prometheus / Alertmanager URLs configured on the host

Production vs development​

ModeHow you run itEnv file
Developmentnpm run dev in each package.env.development
ProductionCompose / npm run prod / release images.env / install/.env

Production boots refuse incomplete remote state and monitoring URLs. Details: Development vs production.