argocd-clusterset
argocd-clusterset
is a command-line tool and Kubernetes controller to sync EKS clusters into ArgoCD cluster secrets.
Consider this as a tool to add EKS cluster auto-discovery to ArgoCD.
Intended to be used with ArgoCD's ApplicationSet controller, as you have no other "official"ish way to automatically deploy to auto-discovered clusters.
It's also recommended to use ArgoCD 1.8+, as ArgoCD's scalability has considerably increased starting that version, to help support managing a lot of clusters and application that might be the case when you use this and ApplicationSets. Please read their blog post introducing ArgoCD 1.8-rc.1 for more information on the scalability improvement.
Usage
argocd-clusterset
is pretty experimental, so there's no tagged releases yet.
You need to clone this repository, and follow the below steps to deploy this as a K8s controller:
$ NAME=$YOUR_DOCKER_USER/argocd-clusterset make docker-buildx
$ (cd config/default; kustomize edit set image controller=$YOUR_DOCKER_USER/argocd-clusterset:latest)
#
# With kustomize:
#
$ kustomize build config/default | kubectl apply -f - --dry-run
$ kustomize build config/default | kubectl apply -f -
#
# With helm:
#
$ helm upgrade --install --name clusterset-controller charts/clusterset-controller
$ cat <<EOF | kubectl apply -f -
apiVersion: clusterset.mumo.co/v1alpha1
kind: ClusterSet
metadata:
name: myclusterset1
spec:
selector:
eksTags:
foo: "bar"
template:
metadata:
labels:
env: "prod"
EOF
Or to use it as a command-line tool, run:
$ make build
$ ./argocd-clusterset sync \
--namespace ns-for-cluster-secrets \
--eks-tags environment=production --eks-tags owner=yourteam