Kubernetes workloads
Grid is not only a Terraform control plane. The product model is one Git-backed desired-state tree and one release loop; how a unit is realized depends on its engine.
| Engine | What it operates |
|---|---|
terraform | Cloud modules, managed clusters, node pools, and other catalog subtypes — generate / plan / apply via grid-cli |
kubernetes | In-cluster workloads (Applications, Helm, Kustomize, Jobs, …) via GitOps (Argo CD / OpenShift GitOps). Exposed when kubernetesWorkloads is on |
Two different “Kubernetes” ideas
Do not confuse them:
| Kind | Engine | Example |
|---|---|---|
| Managed cluster / node pool | terraform | Cluster and node-pool subtypes in the provider catalog |
| Workloads inside a cluster | kubernetes | Deployments, Helm releases, Application CRs reconciled by Argo |
Clusters are infrastructure. Workloads are continuous delivery on top of a cluster. Grid is designed to own both under the same project / environment / RBAC story.
What GitOps means here
- Desired-state Sync — Grid pulls your Git repo of path-shaped JSON into inventory. That is shared for every engine.
- Workload GitOps — for
kubernetesunits, apply does not meanterraform apply. It means Grid drives (or hands off to) a cluster GitOps reconciler so the cluster converges on the workload intent you declared.
Naming in the console keeps Sources for the desired-state remote so “GitOps” can mean in-cluster CD without colliding with Sync settings — Console overview.
Unit shape (direction of travel)
Workload units still live under the same path grammar:
projects/<project>/<cloud-or-platform>/<environment>/<infra-type>/<name>.json
The JSON carries engine metadata and workload kind (Application, Helm, Kustomize, CronJob, …). Field names follow the API contract in grid-core for that engine.
RBAC already reserves a kubernetes domain for view / apply when the engine is enabled — Auth, RBAC, and approvals.
Exit ramp for workloads
Same philosophy as Terraform: Grid must not be a black box.
| You keep | Outside Grid |
|---|---|
| Git history of workload intent | Argo / OpenShift GitOps (or kubectl / Helm) against the cluster |
| Cluster credentials you already use | No proprietary workload state format required by Grid |
See Exit ramp.
Related flags and config
| Knob | Role |
|---|---|
kubernetesWorkloads (UI) | Hide / show workload engine surfaces |
GRID_ARGO_ENABLED | Core Argo / OpenShift GitOps integration |
GRID_ARGO_KUBECONFIG | Cluster kubeconfig for the reconciler |
Details: Feature flags · Configuration.