Get Started with Flux Operator
Install the Flux Operator and deploy Flux CD with a simple declarative configuration. Get up and running in minutes.
Install the Flux Operator CLI
Install the Flux Operator CLI using Homebrew:
brew install controlplaneio-fluxcd/tap/flux-operatorbrew install controlplaneio-fluxcd/tap/flux-operatorFor other install methods see the CLI documentation
Create a Flux Instance
Define your Flux configuration with the FluxInstance CRD:
apiVersion: fluxcd.controlplane.io/v1
kind: FluxInstance
metadata:
name: flux
namespace: flux-system
spec:
distribution:
version: "2.x"
registry: "ghcr.io/fluxcd"
artifact: "oci://ghcr.io/controlplaneio-fluxcd/flux-operator-manifests"
components:
- source-controller
- source-watcher
- kustomize-controller
- helm-controller
- notification-controller
cluster:
type: kubernetes
size: medium
multitenant: false
networkPolicy: true
domain: "cluster.local"apiVersion: fluxcd.controlplane.io/v1
kind: FluxInstance
metadata:
name: flux
namespace: flux-system
spec:
distribution:
version: "2.x"
registry: "ghcr.io/fluxcd"
artifact: "oci://ghcr.io/controlplaneio-fluxcd/flux-operator-manifests"
components:
- source-controller
- source-watcher
- kustomize-controller
- helm-controller
- notification-controller
cluster:
type: kubernetes
size: medium
multitenant: false
networkPolicy: true
domain: "cluster.local"Install the Flux Operator and apply your configuration on a cluster:
flux-operator install -f flux-instance.yamlflux-operator install -f flux-instance.yamlOther deploy methods: Helm, Terraform, OperatorHub
Sync from a Git Repository
Add a sync configuration to deploy resources from a Git repository:
apiVersion: fluxcd.controlplane.io/v1
kind: FluxInstance
metadata:
name: flux
namespace: flux-system
spec:
sync:
kind: GitRepository
url: "https://github.com/fluxcd/flux2-kustomize-helm-example"
ref: "refs/heads/main"
path: "clusters/staging"
pullSecret: "flux-system"apiVersion: fluxcd.controlplane.io/v1
kind: FluxInstance
metadata:
name: flux
namespace: flux-system
spec:
sync:
kind: GitRepository
url: "https://github.com/fluxcd/flux2-kustomize-helm-example"
ref: "refs/heads/main"
path: "clusters/staging"
pullSecret: "flux-system"For private repositories, create a secret with your credentials:
flux-operator create secret basic-auth flux-system \
--namespace=flux-system \
--username=git \
--password=$GITHUB_TOKENflux-operator create secret basic-auth flux-system \
--namespace=flux-system \
--username=git \
--password=$GITHUB_TOKENFor more information on how to configure syncing from Git repositories, container registries and S3-compatible storage, refer to the cluster sync guide.
Access the Status Page
Port-forward to access the built-in dashboards:
kubectl -n flux-system port-forward svc/flux-operator 9080:9080kubectl -n flux-system port-forward svc/flux-operator 9080:9080Open http://localhost:9080 in your browser to monitor your GitOps pipelines.
Learn more about the Flux Web UI →Setup the MCP Server
Install the Flux MCP Server to enable Agentic GitOps within Claude, Cursor, or other MCP-compatible tools:
brew install controlplaneio-fluxcd/tap/flux-operator-mcpbrew install controlplaneio-fluxcd/tap/flux-operator-mcpAdd the following configuration to your AI assistant's MCP server settings:
{
"flux-operator-mcp": {
"command": "flux-operator-mcp",
"args": [
"serve",
"--read-only=false"
],
"env": {
"KUBECONFIG": "/path/to/.kube/config"
}
}
}{
"flux-operator-mcp": {
"command": "flux-operator-mcp",
"args": [
"serve",
"--read-only=false"
],
"env": {
"KUBECONFIG": "/path/to/.kube/config"
}
}
}