Multi-cluster catalog: cluster registry + per-app deployment targets #32
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
lab/iac#32
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Multi-cluster catalog: cluster registry + per-app deployment targets
Part of the multi-cluster architecture. Establishes how an application
"requests deployment to multiple clusters" and how each system root learns
about it, mirroring Argo CD's model (clusters registered once; AppProjects
hold a list of destinations).
What changed
apps/clusters.yaml(new) — cluster registryThe canonical fleet. Each cluster carries its
argo_server(the apiserver URLArgo CD targets it by). Currently
mini,portable,remote; clusters areadded when they first host an app deployment.
apps/catalog.yaml— per-appdeploymentsReplaces the single
namespacefield with adeploymentsmap:An app targeting a new cluster is a one-line catalog addition. Pilot apps
(
privatebin,syncthing) stay onminionly.Consumers threaded
destinationblocks are now adynamicover theapp's
deployments, with server from the cluster registry (was a hardcodedminidestination). Newargocd_clusterresource registers catalogclusters — gated behind
var.register_clusters(default false) untilcluster credentials exist (T13 #28).
deploymentsmap; namespace derived fromthe primary (
mini) deployment. Per-cluster rendering (one bundle pertarget, delivered by Sveltos) is the follow-on (research #31).
Out of scope / follow-ons
catalog namespace shape here is compatible (roles bind per
deployments)Verification
tofu validategreen on all five roots (argocd, forgejo, k8s, kanidm, vault)scripts/validate-argocd-rbac.shpasses (50/50)tofu planon argocd shows destinations expanded per deploymenttofu planon k8s shows namespaces derived fromdeploymentsginjiruu referenced this issue2026-08-12 16:51:36 +00:00