Skip to content

feat: register dieubernetes-stage-do-atl1 with ArgoCD via GitOps - #17

Merged
jonathandieu merged 1 commit into
mainfrom
cluster-registrations
Jul 8, 2026
Merged

feat: register dieubernetes-stage-do-atl1 with ArgoCD via GitOps#17
jonathandieu merged 1 commit into
mainfrom
cluster-registrations

Conversation

@jonathandieu

Copy link
Copy Markdown
Owner

Registers the stage workload cluster with ArgoCD entirely through git + ExternalSecrets — no argocd CLI, no admin bearer token. See terraform ADR 0003 for the full design.

  • charts/platform/cluster-registrations: one ExternalSecret per registered cluster, pulling a precomputed ArgoCD cluster-secret config blob (bearerToken + CA) from the 1Password item terraform creates alongside each cluster's dedicated argocd-manager ServiceAccount.
  • Wires cluster-registrations into the existing platform appset rather than adding a new one.
  • Tightens the platform appset's cluster selector to also require argocd-active: "true", so a future second platform peer (failover) isn't treated as also-active. The live platform cluster's self-registration secret already has this label (applied via terraform).

Once this syncs, dieubernetes-stage-do-atl1 should appear as a registered cluster in the ArgoCD UI, and the existing workloads appset (purpose in [prod, stage], unchanged) should start generating Applications for mealie/plausible/changedetection on stage.

Adds a cluster-registrations chart that renders one ExternalSecret per
registered cluster, pulling the precomputed ArgoCD cluster-secret config
blob from the 1Password item terraform creates alongside each cluster's
dedicated argocd-manager ServiceAccount (see terraform ADR 0003). No
argocd CLI step, no admin bearer token - registration is just git + ESO.

Wires cluster-registrations into the existing platform appset instead of
adding a new one, and tightens that appset's selector to also require
argocd-active: "true" so a future second platform peer doesn't get
treated as also-active. The live platform cluster's self-registration
secret already has that label applied via terraform.
@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown

Helm template diff

Only in /tmp/head: cluster-registrations.yaml
diff -u --recursive --label base --label head base head
--- base
+++ head
@@ -218,7 +218,7 @@
     app.kubernetes.io/managed-by: Helm
 type: Opaque
 data:
-  SECRET_KEY_BASE: cGl2c0sydWd3b2VDZFYxMmVvTEgxNTh2MjRxeUFlbDR6dnEzUVlXWlVva0hNdXVIOHNxM05IYWs3b01PS05Jc2hMbGRPMk85Uk9tVlRCcWtiZGhXQURXalRu
+  SECRET_KEY_BASE: V1l1cGp0N0oyZmJzZ0hqekFTRVlDc2loOElCYzBTOE1kZTFUTWw3UHBaOHkzQXRkeFJRcFFPMkhxT0JJQzRjakxYVEpVaEVNQnRYMkVkOEJLNGJOTEVwWkpV
   TOTP_VAULT_KEY: ZHN4dmJuM2p4RGQxNmF6MlFwc1g1QjhPK2xseGpRMlNKRTJpNUJ6eDM4ST0=
   DATABASE_URL: cG9zdGdyZXM6Ly9wb3N0Z3Jlczpwb3N0Z3Jlc0BwbGF1c2libGUtYW5hbHl0aWNzLXBvc3RncmVzcWw6NTQzMi9wbGF1c2libGVfZGI=
   CLICKHOUSE_DATABASE_URL: aHR0cDovL2NsaWNraG91c2U6cGFzc3dvcmRAcGxhdXNpYmxlLWFuYWx5dGljcy1jbGlja2hvdXNlOjgxMjMvcGxhdXNpYmxlX2V2ZW50c19kYg==

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a GitOps-managed mechanism to register non-platform workload clusters into ArgoCD using ExternalSecrets/1Password, and wires it into the existing platform ApplicationSet so registration is deployed alongside other platform components.

Changes:

  • Introduces a new cluster-registrations Helm chart that renders one ExternalSecret per registered cluster, producing ArgoCD cluster secrets.
  • Adds initial registration values for the stage cluster (stage-do-atl1) including API server endpoint and 1Password item reference.
  • Updates the platform ApplicationSet to (a) deploy the new chart and (b) require argocd-active: "true" on the selected platform cluster.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.

File Description
charts/platform/cluster-registrations/values.yaml Defines the list of workload clusters to register and their 1Password item references.
charts/platform/cluster-registrations/templates/externalsecret.yaml Renders ExternalSecret resources that create ArgoCD cluster secrets with purpose labels.
charts/platform/cluster-registrations/Chart.yaml Adds the new Helm chart definition for cluster-registrations.
argocd/apps/platform/appset.yaml Wires cluster-registrations into the platform appset and tightens the platform cluster selector via argocd-active.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +11 to +13
clusters:
- name: stage-do-atl1
purpose: stage
Comment on lines 11 to 16
- clusters:
selector:
matchLabels:
purpose: platform
argocd-active: "true"
- list:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants