Skip to content

Flux#

Flux Logo

License: Apache 2.0

Flux is a grouping of tools used to sync Kubernetes clusters with various configuration sources and methods. This is leveraged by the Platform for the Tenants who use Gitlab as a source and can use some of the methods/projects below to deploy their code in a CD manner.

GitOps Toolkit

Our current implementation of Flux allows our tenants to deploy their code through a few methods:

  • Git Repo (of manifests)
  • Helm Charts (GitOps Toolkit Helm Controller)
  • Kustomize
  • Terraform - Upon Request

This process is simplified for our customers by creating the necessary objects to do this automatically inside the landlord project to create the Git Repo, Kustomize and the Helm Release objects.

Git Repository#

Git logo

License: GPLv3

Flux is capable of deploying manifest files in a plain git repo.

GitOps Toolkit Helm Controller#

Helm Logo

License: Apache 2.0

Helm manages software using Charts. Many common pieces of software are available as a chart. Curated charts often contain a variety of tunables the implementor can use to setup the software for their particular needs across a variety of platforms.

In addition to existing curated software, the intuitive templating makes it a popular choice for our customers looking to deploy and configure their own software.

Helm objects declared in tenant repos will be operated on by Flux's Helm Controller. This behavior is different than the Helm seen elsewhere which is managed through Terraform outside the Flux/GitOps Toolkit environment.

Kustomize#

Kustomize Logo

License: Apache 2.0

Kustomize allows customization of non-templated yaml manifest files.

Terraform#

Terraform Logo

License: Business Source License 1.1

Terraform allows you to declaritively define objects. While not currently used, the Terraform controller could be easily made available.

Update Concerns#

General Concerns#

  • Flux:
  • Helm:
  • Kustomize:
    • APIs are still evolving, be sure to check release notes for deprecation.