So some background of GitOps. This is essentially the idea around leveraging a Git repo to manage your cluster state rather than directly applying or using something like Terraform to set it.
The first and biggest reason for me is leveraging it for Disaster Recovery. By having your source of truth set in a Git repo it allows for version control but also allows for quick recovery in the case of a total loss outage. Overall this won’t necessarily help if you have a significant amount of Persistent Volumes, but those should be getting backed up using Restic or something similar.
By pulling the code into a source control setup this allows for seeing changes over time but also allows for forcing using PRs to merge changes in. This allows for ensuring that the changes make sense and that thing are happening as they are suppose to. It also just allows for an overall better consensus before pushing to a cluster.
So Kustomize was the most annoying thing in the world to me for the longest time. However, it is truly a very powerful utility that can be leveraged. This really can allow for creating something that is super customizable depending on the environment. This can allow for multiple different environments to exist within the same Flux repo which can be super helpful in the overall management.
Overall Flux is something that doesn’t require a lot of work to setup, but can really help to smoothly manage a cluster. It can be super helpful when you have a team of people that work in a single cluster just to help ensure that people are not fighting each other for resources and clobbering work from someone else.
I do plan to build an entire video course on leveraging Flux and how it works. So be sure to sign up for the newsletter so you know when those videos are coming out!