This Project builds a bridge between the Kubermatic Kubernetes Platform and ArgoCD, by auto importing UserClusters into KKP.
Project is under active Development
You need to have a existing Kubermatic Kubernetes Platform and ArgoCD Installation. The base configuration of the Helm Chart is designed for booth beeing installed on the same cluster together with the bridge. But it is possible to spread all 3 components to different clusters/locations.
We have a Helm Chart to deploy the bridge, which can be found here. The Helmchart will handle the commandline parameters and will create the required Serviceaccount and related Rbac if enabled
If you want to decouple this bridge from your kubernetes infrastructure or just want a quick dev/test environment, this also possible. If you dont wont to use the public image, you can build it yourself. Afterwards you can run it in your container environment for example docker:
docker run -v $HOME/.kube/config:/etc/kubeconfig -e KUBECONFIG=/etc/kubeconfig ghcr.io/svalabs/kubermatic-argocd-bridge:[version]
It is possible to run this bridge anywhere outside kubernetes/containers by just running the compiled binary and providing it with kubeapi access for KKP and ArgoCD
You can obtain the binary by building it yourself or download if from the releases. After that, you can run the binary with the required parametes
Important: The following parameters are ment for docker or raw binary environments, when using the Helm Installtion, refer to our Helmchart for further customization
Parameter | value | default value | description |
---|---|---|---|
-kkp-kubeconfig | System Path | "" | Path to the kubeconfig, which should be used for the connection to KKP |
-kkp-serviceaccount | Boolean | true | If the default service account in your pod should be used for the connection to KPK |
-argo-kubeconfig | System Path | "" | Path to the kubeconfig, which should be used for the connection to ArgoCD |
-argo-serviceaccount | Boolean | true | If the default service account in your pod should be used for the connection to ArgoCD |
-argo-namespace | String | argocd | The ArgoCD namespace, where the secrets get managed |
-refresh-interval | Duration | 60s | How often the clusters should be synced |
-cluster-secret-template | System Path | "" | Path to the custom secret Template, to add addition information to your cluster secret, use the default as a starting point |
-cleanup-removed-clusters | Boolean | false | If enabled, UserClusters which no longer exist at their seed, get also removed from ArgoCD |
-cleanup-timed-clusters | Boolean | false | If enabled, UserClusters whose seed got removed or is not reachable, are remove after a specific timeout |
-cluster-timeout-time | Duration | 30s | After which duration clusters will be removed, if -cleanup-timed-clusters is enabled |
docker build -t [image name] .
docker push -t [image name]
go mod download
cd cmd
go build -o kubermatic-argocd-bridge