Skip to main content

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.

Prerequisites

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 to cluster-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

info

Prerequisites (included in image):

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.