Use FluxCD as GitOps solution for infrastructure workloads

As FluxCD is now a more mature tool, we should revisit our FluxCD setup and address the short comings identified on the POC #24556 (closed)

During the POC we moved some infrastructure components like cert-manager, external-dns to be managed with Flux but this was only done in Pre and Staging environments, however these components are still managed using gitlab-helmfiles in Production. We should aim to make Flux production read so we can use it to deploy all infrastructure component releases with a GitOps approach.

Acceptance Criteria:

  • Upgrade FluxCD to the latest version.
  • Revisit and simplify FluxCD k8s-mgmt repo structure.
  • Implement mechanism to get Helm Release diffs in CI.
  • Add integration testing to FluxCD https://gitlab.com/gitlab-com/gl-infra/k8s-mgmt repos.
  • Complete migration from Gitlab Helmfiles to FluxCD for partially migrated services like cert-manager and external-dns.
  • Write Production Readiness for FluxCD.
  • Bootstrap FluxCD in Production clusters.
  • Deploy Foundation owned services using FluxCD instead of helm-files.
Edited by Marcel Chacon