Skip to content

GitOps & Cluster Lifecycle Overview

Once a cluster exists (provisioned by Terraform), everything that runs inside it is delivered via ArgoCD (GitOps pull-based sync), and the cluster itself is managed as part of a fleet via Rancher.

flowchart LR
    TF["Terraform<br/>modules/k8s"] -->|kubeadm cluster exists| REG
    subgraph REG["Registration (Terraform modules)"]
        direction TB
        A["argocd-register-clust<br/>adds cluster as ArgoCD target"]
        V["vault-k8s-auth<br/>wires ServiceAccount into Vault"]
        R["Rancher import<br/>(manual or scripted)"]
    end
    REG --> ARGOCD["ArgoCD on dke-mgmt"]
    ARGOCD -->|ApplicationSet sync| APPS["In-cluster apps:<br/>Calico/Flannel CNI, ESO,<br/>MetalLB, ingress, workloads"]
    ARGOCD -.fleet mgmt.-> RANCHER["Rancher on dke-mgmt"]

See:

Why dke-mgmt is special

dke-mgmt hosts ArgoCD and Rancher themselves — it's the control plane for every other cluster's GitOps and fleet management, not just another workload cluster. Its own availability is a single point of failure for deploying changes, though not for already-running workloads elsewhere, since GitOps sync is pull-based and workload clusters keep serving traffic even if dke-mgmt is briefly down. See Architecture Overview.