CI/CD

FluxCD Playground

Get access to the FluxCD playground with one click

FluxCD is a Continuous Delivery (CD) and GitOps tool for Kubernetes.

Think about how apps are usually deployed into Kubernetes. Someone writes a YAML file, and then uses a "kubectl apply" command to deploy stuff declared in that file. But this can quickly become a problem when multiple people are managing a Kubernetes cluster. It will be hard to track who created what, and what changes have happened lately. But a tool like FluxCD makes this much more transparent and simple.

People won't create YAML files on their laptops and then push changes to Kubernetes directly, making others wonder what might have changed last night. Instead, everyone will work through a Git repository. They'll all have a common middleground, instead of working on their own files, in isolation. And FluxCD will continuously synchronize Kubernetes with the states that are defined in that repository. So it makes Kubernetes continuously follow the state declared in that Git repository. This is part of the reason why it's called a continuous delivery tool.

For example, if John wants to create a cool deployment, he'll create a YAML file, and then upload it to this repository. FluxCD will notice the new file and automatically deploy this to Kubernetes. Now Jane can take a look at the repository, and see exactly what John did. And if Jane has a nice idea about how to improve this deployment, she can suggest some edits to John's YAML file. John approves them, FluxCD notices the changes again, and immediately resynchronizes Kubernetes with this new deployment definition.

In a nutshell, the Git repository makes it very convenient for multiple people to collaborate on the changes they want to push to Kubernetes. And FluxCD synchronizes Kubernetes with the states defined in this repository, at all times.

Features of FluxCD

  • Compatible with multiple tools such as Helm, Kustomize, etc.
  • Works with different Git providers such as GitLab, GitBucket, GitHub, and s3 compatible buckets for source files.
  • Integrates with RBAC.
  • Designed to be secure.
  • Provides alerting to external systems such as Slack, Telegram, MS Teams, etc. 
  • Plus many extra features you can check out on the product's documentation page.

FluxCD playground

Setting up Kubernetes, FluxCD, and a Git repository would take a very long time. So we saved you the trouble and prepared an environment where everything is provided.

The playground is pre-configured with Flux and Gitea. Gitea is a self-hosted Git service that is used to store files in a repository - an alternative to GitHub. To get you started, a sample repository has been created in Gitea. It already includes some files that you can use to bootstrap (install/initialize) FluxCD into a Kubernetes cluster. Instructions can be found inside the playground. Hope you will enjoy this one!