Skip to main content

Flux Bootstrapping

When setting up Flux on a kubernetes cluster, it must be “bootstrapped”. This is the process whereby the flux controller pods are deployed to the cluster and they are configured to sync with a git repository.

Repositories

In order to perform bootstrapping, Flux must be able to authenticate into Git repositories which are defined in its config:

One of the repos that the Flux must be able to authenticate to is the config repo itself (mentioned above), this repo is created during the bootstrapping phase.

Bootstrapping code for SDS and CFT is stored in following repositories:

Each repository has its own ADO pipeline which can be run to perform bootstrapping against the clusters, you will notice that the bootstrapping scripts for SDS and CFT are marginally different but mostly work in the exact same way.

Besides bootstrapping stages which are run at the very end, these pipelines also run Terraform to ensure necessary infrastructure and the actual cluster exists before an attempt to bootstrap Flux on it is made.

One of the key steps in the bootstrapping process are:

These ensure Flux can pulls in entire config with all resources defined within and manage it on a given environment/cluster.

GitHub authentication

There are several ways to enable Flux to authenticate with GitHub and sync its repositories.

In the past we used SSH deploy keys which were defined on each of the flux-config repositories.

Currently we use GitHub App authentication which solves the problem of the SSH key expiry and the need to do manual key rotations.

This page was last reviewed on 17 June 2025. It needs to be reviewed again on 17 June 2026 by the page owner platops-build-notices .
This page was set to be reviewed before 17 June 2026 by the page owner platops-build-notices. This might mean the content is out of date.