Flux optional components

How to install Flux optional components

The flux bootstrap command deploys a series of Kubernetes controllers along with their CRDs, RBAC and network policies in the flux-system namespace.

Default components

The default components are specified with the --components flag.

flux bootstrap git \
  --components source-controller,kustomize-controller,helm-controller,notification-controller

The minimum required components for bootstrapping are source-controller and kustomize-controller.

When not specifying the --components flag, both flux bootstrap and flux install will deploy the default components.

Extra components

To enable the Flux image automation feature, the extra components can be specified with the --components-extra flag.

flux bootstrap git \
  --components-extra image-reflector-controller,image-automation-controller

By default, both flux bootstrap and flux install commands do not include any extra components.

Network policies

Flux relies on Kubernetes network policies to ensure that only Flux components have direct access to the source artifacts kept in the source-controller.

The default network policies block all ingress access to the flux-system namespace, except for notification-controller webhook receiver.

While not recommend, you can deploy the Flux components without network policies using the --network-policy flag.

flux bootstrap git \
  --network-policy false

Cluster domain

The Flux components are communicating over HTTP with source-controller and notification-controller. To reduce the DNS queries performed by each component, the cluster internal domain name is used to compose the FQDN of each service e.g. http://source-controller.flux-system.svc.cluster.local./.

The cluster domain name can be set using the --cluster-domain flag.

flux bootstrap git \
  --cluster-domain cluster.internal

When not specified, the cluster domain defaults to cluster.local.

Last modified 2023-08-29: Update optional-components.md (f1fd050)