Install Flux CLI
Install the Flux CLI using the following command:
curl -s https://fluxcd.io/install.sh | sudo bash
Configure GitHub Repository
1. Create an Empty Repository
- Go to GitHub and create a new, empty repository.
2. Generate a Personal Access Token
- Generate a token at GitHub Personal Access Tokens .
- The token must have the following minimum permissions:
Category | Permission |
---|---|
Metadata | Read-only |
Actions | Read and write |
Administration | Read and write |
Commit statuses | Read and write |
Contents | Read and write |
Dependabot alerts | Read and write |
Dependabot secrets | Read and write |
Deployments | Read and write |
Discussions | Read and write |
Environments | Read and write |
Issues | Read and write |
Merge queues | Read and write |
Pull requests | Read and write |
Repository security advisories | Read and write |
Secret scanning alerts | Read and write |
Secrets | Read and write |
Variables | Read and write |
Webhooks | Read and write |
Workflows | Read and write |
Bootstrap the Cluster
1. Export Required Variables
Export your GitHub username, repository name, and token as environment variables:
export GITHUB_USER=<your-github-username>
export REPOSITORY=<your-repository-name>
export GITHUB_TOKEN=<your-personal-access-token>
2. Run Flux Bootstrap Command
Execute the following command to bootstrap Flux in your cluster:
flux bootstrap github \
--owner=$GITHUB_USER \
--repository=$REPOSITORY \
--branch=main \
--path=clusters/production \
--personal
3. Clone the Repository Locally
Choose a directory to clone the repository and execute:
cd ~
git clone https://oauth2:$GITHUB_TOKEN@github.com/$GITHUB_USER/$REPOSITORY
Local Repository Structure
After completing the bootstrap process, your local repository folder structure should resemble the following:
.
├── clusters
│ └── production
│ └── flux-system
│ ├── gotk-components.yaml
│ ├── gotk-sync.yaml
│ └── kustomization.yaml
└── README.md