Automatically register any Cluster API cluster in your local ArgoCD instance.
The capargo
controller (Cluster API for ArgoCD) performs the
tedious task of adding a new Cluster API cluster in the ArgoCD installation
that's running on the same cluster. This allows for a seamless experience
between the creation of a new cluster, and the cluster having all the necessary
workloads installed and maintained by ArgoCD.
The capargo
controller can be installed either directly from a YAML manifest
or via kustomize templates in the manifests
directory.
To install the latest released version of the controller from the install.yaml
manifest, run the following command:
kubectl apply -f https://github.com/superorbital/capargo/releases/latest/download/install.yaml
Installation instructions for previous releases can be found in capargo releases.
Note
The default installation assumes that ArgoCD is installed in the argocd
namespace. This needs to be changed if your cluster's ArgoCD installation is
in a different namespace. This is controlled by the --argo-namespace
flag on
the capargo
binary.
Provider Cluster | Control Plane API group/version | Supported? |
---|---|---|
VCluster | infrastructure.cluster.x-k8s.io/v1alpha1 |
Yes |
AWSCluster | controlplane.cluster.x-k8s.io/v1beta1 |
Yes |
You will need the following tools installed in your computer for local development purposes:
For testing your changes, you will additionally need:
To build the binary, simply run:
task build
To build the Docker image, run:
task build-image
For testing changes, a Kind cluster with all the necessary components can be bootstrapped by running the following task at the root of the repo:
task create-cluster
This will create the Kind cluster, a local container registry, and install ArgoCD and Cluster API + Cluster API Provider vCluster (CAPV).
After this is done, you can retrieve the kubeconfig for the cluster using the command
task get-kubeconfig
which will create a kind-cluster.kubeconfig
file that you can use to talk to
your cluster.
You will need to push your image of capargo to the local container registry:
docker push localhost:5001/superorbital/capargo:local
After which, you can run the demo script that will create a CAPV cluster for your capargo Pod to interact with.
task install-demo
To clean up the Kind cluster and the local registry:
task cleanup-cluster