Skip to main content

Concepts overview

This section defines the vocabulary Grid uses end-to-end. Read it before authoring JSON or operating the console at scale.

Core ideas​

ConceptMeaning
Intent (desired state)Git-tracked JSON that declares what should exist
UnitOne JSON file → one inventory identity → one engine root (Terraform workspace or workload release)
EngineHow a unit is realized — terraform or kubernetes (GitOps)
ProjectBoundary / app slug (projects/<slug>/…)
ProviderPath segment and provider field — any catalog id, not a preferred cloud
EnvironmentPath segment and metadata.environment (development, staging, production, or custom)
SyncPull Git → upsert inventory → mark missing paths stale
ReleasePlan / apply / destroy job with logs, audit, optional approval
Module bankVersioned Terraform modules (grid-terraform) for the terraform engine
ArchiveGenerated instance Terraform next to intent — part of the exit ramp
Remote stateShared Terraform state backend for terraform-engine units on a control plane
CatalogKnown subtypes per provider (CLI maturity + console flags)

End-to-end path​

Author JSON in Git
→ Sync into GRID_CONFIG_ROOT
→ Unit appears in Infrastructure (if console catalog allows)
→ Plan / apply release via the unit’s engine:
· terraform → plan/apply + remote state + archive/
· kubernetes → cluster GitOps
→ Optional metrics labeled with grid_unit_id

Deep dives​

TopicPage
Path layout & samplesDesired-state layout
JSON fields, dependsOn, kindsUnit JSON
Sync, stale, drift, idsGitOps sync
Plan / apply / destroyRelease lifecycle
Modules & pinsModule bank
State + archiveArchive and remote state
In-cluster apps / ArgoKubernetes workloads
Leaving without a black boxExit ramp

Design principles (why it feels this way)​

  1. Path is identity. Renaming a file path changes how state, archive, and inventory are addressed unless you migrate deliberately.
  2. Reference, don’t merge. dependsOn wires remote state (terraform); dependents remain separate applies.
  3. Git delete ≠ cloud / cluster delete. Stale is an operator signal; destroy is explicit.
  4. Console flags ≠ CLI capability. The UI may hide a provider or engine that the CLI catalog already describes.
  5. Engines share Sync and RBAC. Terraform and Kubernetes workloads differ in how they apply, not in who owns intent.
  6. Host monitoring is separate. Prometheus runs beside Grid, not inside the Compose app containers.