How Does flux use Work?

15 Apr.,2024

 

Flux Documentation

Open and extensible continuous delivery solution for Kubernetes.

Flux is a tool for keeping Kubernetes clusters in sync with sources of configuration (like Git repositories), and automating updates to configuration when there is new code to deploy.

Flux is built from the ground up to use Kubernetes' API extension system, and to integrate with Prometheus and other core components of the Kubernetes ecosystem. Flux supports multi-tenancy and support for syncing an arbitrary number of Git repositories.

Flux Works Well With

Flux very naturally integrates with these pieces* of best-practice Open Source software (from the CNCF Landscape and elsewhere). Click on the logo to see how to set it up with Flux.

* This list is of course only a small selection of tools we integrate with. If you want to add more, please send a PR with the link to docs which explain how to set things up.

Flux UIs

If you want to find out more about Flux UIs, check out our dedicated section.

Capacitor

Weave GitOps

Flux in Short

🤝 Flux provides GitOps for both apps and infrastructureFlux and Flagger deploy apps with canaries, feature flags, and A/B rollouts. Flux can also manage any Kubernetes resource. Infrastructure and workload dependency management is built in.🤖 Just push to Git and Flux does the restFlux enables application deployment (CD) and (with the help of Flagger) progressive delivery (PD) through automatic reconciliation. Flux can even push back to Git for you with automated container image updates to Git (image scanning and patching).🔩 Flux works with your existing toolsFlux works with your Git providers (GitHub, GitLab, Bitbucket, can even use s3-compatible buckets as a source), all major container registries, fully integrates with OCI and all CI workflow providers.🔒 Flux is designed with security in mindPull vs. Push, least amount of privileges, adherence to Kubernetes security policies and tight integration with security tools and best-practices. Read more about our security considerations.☸️ Flux works with any Kubernetes and all common Kubernetes toolingKustomize, Helm, RBAC, and policy-driven validation (OPA, Kyverno, admission controllers) so it simply falls into place.🤹 Flux does Multi-Tenancy (and “Multi-everything”)Flux uses true Kubernetes RBAC via impersonation and supports multiple Git repositories. Multi-cluster infrastructure and apps work out of the box with Cluster API: Flux can use one Kubernetes cluster to manage apps in either the same or other clusters, spin up additional clusters themselves, and manage clusters including lifecycle and fleets.✨ Dashboards love FluxNo matter if you use one of the Flux UIs or a hosted cloud offering from your cloud vendor, Flux has a thriving ecosystem of integrations and products built on top of it and all have great dashboards for you.📞 Flux alerts and notifiesFlux provides health assessments, alerting to external systems, and external events handling. Just “git push”, and get notified on Slack and other chat systems.👍 Users trust FluxFlux is a CNCF Graduated project and was categorised as “Adopt” on the CNCF CI/CD Tech Radar (alongside Helm).💖 Flux has a lovely community that is very easy to work with!We welcome contributors of any kind. The components of Flux are on Kubernetes core controller-runtime, so anyone can contribute and its functionality can be extended very easily.

Who is Flux for?

Flux helps

  • cluster operators who automate provision and configuration of clusters;
  • platform engineers who build continuous delivery for developer teams;
  • app developers who rely on continuous delivery to get their code live.

What can I do with Flux?

Flux is based on a set of Kubernetes API extensions (“custom resources”), which control how git repositories and other sources of configuration are applied into the cluster (“synced”). For example, you create a GitRepository object to mirror configuration from a Git repository, then a Kustomization object to sync that configuration.

Flux works with Kubernetes’ role-based access control (RBAC), so you can lock down what any particular sync can change. It can send notifications to Slack and other like systems when configuration is synced and ready, and receive webhooks to tell it when to sync.

The flux command-line tool is a convenient way to bootstrap the system in a cluster, and to access the custom resources that make up the API.

Where do I start?

Get started with Flux!

Following this flux CLI and running a couple of very simple commands, you will have a GitOps workflow setup which involves a staging and a production cluster.

Following this guide will just take a couple of minutes to complete: After installing theCLI and running a couple of very simple commands, you will have a GitOps workflow setup which involves a staging and a production cluster.

If you should need help, please refer to our Support page.

More detail on what’s in Flux

Features:

  • Source configuration from Git and Helm repositories, and S3-compatible buckets (e.g., Minio)
  • Kustomize and Helm support
  • Event-triggered and periodic reconciliation
  • Integration with Kubernetes RBAC
  • Health assessment (clusters and workloads)
  • Dependency management (infrastructure and workloads)
  • Alerting to external systems (webhook senders)
  • External events handling (webhook receivers)
  • Automated container image updates to Git (image scanning and patching)
  • Policy-driven validation (OPA, Kyverno, admission controllers)
  • Seamless integration with Git providers (GitHub, GitLab, Bitbucket)
  • Interoperability with workflow providers (GitHub Actions, Tekton, Argo)
  • Interoperability with Cluster API (CAPI) providers

What is the GitOps Toolkit?

Flux is constructed with the GitOps Toolkit components, which is a set of

  • specialized tools and Flux Controllers
  • composable APIs
  • reusable Go packages for GitOps under the fluxcd GitHub organisation

for building Continuous Delivery on top of Kubernetes.

The GitOps Toolkit can be used individually by platform engineers who want to make their own continuous delivery system, and have requirements not covered by Flux.

Community

Need help or want to contribute? Please see the links below. The Flux project is always looking for new contributors and there are a multitude of ways to get involved.

Events

Check out our events calendar, both with upcoming talks you can attend or past events videos you can watch.

We look forward to seeing you with us!

\$\begingroup\$

Flux consists of four major components.

  1. Activators - chemicals dissolving the metal oxides.
  2. Vehicles - high-temperature tolerant chemicals in the form of liquids or solids with a suitable melting point. They act as an oxygen barrier to protect the hot metal surface against oxidation, to dissolve the reaction products of activators and oxides and carry them away from the metal surface, and to aid in heat transfer. A common "vehicle" in electronics soldering is rosin.
  3. Solvents - added to aid in the processing and deposition of the solder joint. Incomplete solvent removal leads to boiling off and spattering of solder particles or molten solder.
  4. Additives - Additives can be corrosion inhibitors, stabilizers, antioxidants, thickeners, and dyes.

Short answer: Flux removes oxidation, aids in heat transfer, cleans and prepares the joint to accept the solder, and promotes even solder flow.

http://en.wikipedia.org/wiki/Flux_(metallurgy)

Many various fluxes contain metal halides which are metals combined with halogens. Halogens are a group in the periodic table consisting of five chemically related elements: fluorine (F), chlorine (Cl), bromine (Br), iodine (I), and astatine (At). These halides are the activators. Because flux has a low melting point it will liquefy before solder solidifies. Metal halides often promote corrosion which will help aid in the dissolution of the oxide allowing the contaminate to flow away from the joint. Then the solder will flow into the joint forming a strong bond that actually fuses with the metals involved. Which is why metals like lead and tin are used to solder metals like copper because they form a bond with the metal that creates a thin layer of alloy metals. I do not believe there are any "products" from this reaction. There was a saying in Chemistry I learned once "like dissolves like". It takes corrosion to remove it. However, heavy corrosion will not remove from the metal by just using solder flux which is very mild and not acidic as flux used in copper tube welding.

I wasn't able to research "voids" in the solder. In my experience that is due to soldering with extremely high temperatures. Lead melting point is about 621 degrees Fahrenheit. If your iron is too hot it can super heat the lead and cause it to "explode" or pop off the joint. Perhaps this is a cause of voids. Also, if the material being soldered is very dirty it could cause contaminates to be trapped under the solder that the solvents in the flux are unable to clean away. Which, as mentioned above, can cause spattering and boiling off of solder particles which could cause the "voids".

How Does flux use Work?

How does flux work, chemically, and what are the products?