Quick Start
tip
See Run Kubitus for details on how to run the below kubitus-*
commands.
Create your bootstrap cluster with Kind
If you don't have an existing cluster, you can create one with Kind.
Create the bootstrap cluster using Kind:
cluster_name=cluster-bootstrap
kubitus-create-kind-cluster --cluster "$cluster_name"
The above command will create a Kind cluster with the following:
- 1 control-plane and 2 workers
- No CNI (we will install Cilium in the next section)
- Kubernetes context
cluster-bootstrap
will be removed if present - Kubernetes context will be renamed from
kind-cluster-bootstrap
tocluster-bootstrap
Create your clusters
repository
Fork the clusters repository or create a new empty repository. You can mark it as private.
Go to Settings > Access Tokens, and add two access token:
gitops_read
with the Developer role and the read_repository scope.gitops_write
with the Developer role and the write_repository scope.
gitops_read_token=glpat-redacted1
gitops_write_token=glpat-redacted2
gitlab_user=sathieu
clusters_project_url="https://_:$gitops_read_token@gitlab.com/$gitlab_user/clusters"
Bootstrap your cluster
KUBITUS_GITLAB_PASSWORD="$gitops_write_token" \
kubitus-bootstrap \
--mgmt "$cluster_name" \
--cluster "$cluster_name" \
--clusters-project-url "$clusters_project_url" \
--clusters-repo-branch "$gitlab_user-$cluster_name" \
--author-name "$(git config user.name)" \
--author-email "$(git config user.email)"
The above command will do the following (in a temporary directory):
- Clone the clusters repo fork
- Clone the bootstrap apps (cilium, argo-cd, root-app, ...) and some other applications (kube-prometheus-stack to install CRDs)
- Changing values and pushing to clusters repo branch
- Install Prometheus CRDs
- Helm install bootsrap apps
- Wait for ArgoCD applications to be Synced/Healthy
What's next
You can configure further the apps by modifying your clusters repository.
If you have several clusters, see workload clusters.