Skip to main content
Version: 0.7 (Next)

Upstream Templates

Summary

Konstruct ships upstream provisioning templates that define the complete set of platform applications installed on each cluster type. Templates use Argo CD sync waves to orchestrate deployment order, ensuring dependencies are satisfied before dependent apps are installed.

All templates are maintained in the konstruct-templates repository on the main branch, under the cluster-templates/ directory. The repository root is organized by template kind: cluster-templates/ (cluster provisioning), helm-templates/ (application Helm charts), and pipeline-templates/ (CI workflows).

Cluster Hierarchy

Control Plane Cluster (1 per platform)
├── Management Clusters (1 per organization, aka "project clusters")
│ ├── Workload Clusters (physical clusters for applications)
│ ├── Theme Clusters (workload clusters that host platform theme workloads)
│ └── Virtual Clusters (lightweight vcluster-based environments)

Template Types

Every template is a Helm chart that declares a top-level clusterType in its values.yaml. Konstruct reads that key to decide how to treat the template.

TemplateCloud ProvidersclusterTypeDescription
Control PlaneCloud-agnosticcontrol-planeSeed template for the Konstruct control plane itself — no infrastructure layer; hydrated during bootstrap
Management ClusterAWS, CivomanagementPer-organization management cluster running the org's Argo CD root and provisioning workload clusters
Workload ClusterAWS, Civo, GCPphysicalApplication workload clusters with core platform services
Theme ClusterAWS, CivophysicalWorkload clusters that host platform theme workloads and join the app target pool
Virtual ClusterAWSvirtualLightweight vcluster-based environments sharing a host workload cluster

Template Paths

TemplatePath
Control Planecluster-templates/control-plane/
Management — AWScluster-templates/aws/project-cluster/
Management — Civocluster-templates/civo/project-cluster/
Workload — AWScluster-templates/aws/workload-cluster/
Workload — Civocluster-templates/civo/workload-cluster/
Workload — GCPcluster-templates/google/workload-cluster/
Theme — AWScluster-templates/aws/theme-cluster/
Theme — Civocluster-templates/civo/theme-cluster/
Virtual — AWScluster-templates/aws/workload-vcluster/

Two further directories under cluster-templates/ are system pieces, not user-selectable templates: mgmt/ holds the Argo CD AppProject and cluster-registration components that management clusters install for their children, and shared/ holds resources reused across templates (such as the environment Application).

How Sync Waves Work

Each Argo CD Application in a template has a sync-wave annotation that controls deployment order:

metadata:
annotations:
argocd.argoproj.io/sync-wave: '30'

Lower wave numbers deploy first. Apps within the same wave deploy concurrently. Argo CD waits for all apps in a wave to become healthy before proceeding to the next wave.

Platform Component Versions by Template

ComponentControl PlaneAWS MgmtCivo MgmtAWS WorkloadCivo WorkloadGCP WorkloadAWS vClusterTheme (Civo)
cert-managerGitOpsv1.14.4v1.20.1v1.14.4v1.16.5v1.14.4v1.14.4v1.16.5
ingress-nginx4.12.14.12.14.10.04.10.0
envoy-gatewayGitOpsv1.7.0v1.7.0v1.7.0
external-dnsGitOps1.14.41.20.01.14.41.14.41.20.0
external-secretsGitOps0.19.20.19.20.19.20.19.2
reloaderGitOpsv1.0.102.2.8v1.0.10v1.0.10v1.0.10v1.0.10v1.0.10
crossplaneGitOps1.17.01.17.0
kube-prometheus-stack68.3.068.3.0
atlantis6.9.3
actions-runnerGitOpsGitOps
tip

Civo templates use Envoy Gateway instead of NGINX ingress, and newer component versions. AWS templates include more infrastructure tooling (external-dns, external-secrets, RBAC) at the workload cluster level. The AWS theme variant matches the Civo column and additionally pins external-secrets 0.19.2 with a ClusterSecretStore. Components marked "GitOps" are sourced from the platform GitOps repository rather than pinned in the template.