Skip to content

hyperspike/argocd-cluster-register

Repository files navigation

ArgoCD-Cluster-Register

scan workflow license release Go Report Card

ArgoCD-Cluster-Register An ArgoCD controller to listen for Cluster-API clusters and register them with an ArgoCD project

How it works

the Cluster-Register controller listens to Kubernetes-API for the Cluster-API Resource Cluster and if a cluster is in a non-deleting state it will search for Cluster Connecting resources and add a deterministic Cluster secret into the ArgoCD namespace. Furthermore it will then add the Cluster to the appropriate ArgoCD Projects.

Thus the Cluster-Register controller never contacts CAPI or ArgoCD directly. Providing two benefits, re-use of Kubernetes RBAC and ease of programming as there is only the controller-runtime/kubebuilder to interacte with.

Getting Started

Please note; ArgoCD-Cluster-Register is still work in progress, and the deployment config is undergoing some updates.

LATEST=$(curl -s https://api.github.com/repos/hyperspike/argocd-cluster-register/releases/latest | jq -r .tag_name)
curl -sL https://github.com/hyperspike/argocd-cluster-register/releases/download/$LATEST/install.yaml | kubectl create -f -

Verifying the container image

LATEST=$(curl -s https://api.github.com/repos/hyperspike/argocd-cluster-register/releases/latest | jq -r .tag_name)
cosign verify ghcr.io/hyperspike/argocd-cluster-register:$LATEST  --certificate-oidc-issuer https://token.actions.githubusercontent.com --certificate-identity https://github.com/hyperspike/argocd-cluster-register/.github/workflows/image.yaml@refs/tags/$LATEST

Notes

ArgoCD-Cluster-Register doesn't provide label based filtering at this time, but this feature is planed.

Testing includes Kubeadm/CAPI-Docs and EKS/CAPI-Docs Clusters, other declarative auth mechanisms have not been implemented.