---
title: "flux bootstrap"
---
## flux bootstrap

Deploy Flux on a cluster the GitOps way.

### Synopsis

The bootstrap sub-commands push the Flux manifests to a Git repository
and deploy Flux on the cluster.

### Options

```
      --author-email string                   author email for Git commits
      --author-name string                    author name for Git commits (default "Flux")
      --branch string                         Git branch (default "main")
      --ca-file string                        path to TLS CA file used for validating self-signed certificates
      --cluster-domain string                 internal cluster domain (default "cluster.local")
      --commit-message-appendix string        string to add to the commit messages, e.g. '[ci skip]'
      --components strings                    list of components, accepts comma-separated values (default [source-controller,kustomize-controller,helm-controller,notification-controller])
      --components-extra strings              list of components in addition to those supplied or defaulted, accepts values such as 'image-reflector-controller,image-automation-controller,source-watcher'
      --force                                 override existing Flux installation if it's managed by a different tool such as Helm
      --gpg-key-id string                     key id for selecting a particular key
      --gpg-key-ring string                   path to GPG key ring for signing commits
      --gpg-passphrase string                 passphrase for decrypting GPG private key
  -h, --help                                  help for bootstrap
      --image-pull-secret string              Kubernetes secret name used for pulling the controller images from a private registry
      --log-level debug|info|error            log level (default info)
      --network-policy                        setup Kubernetes network policies to deny ingress access to the Flux controllers from other namespaces (default true)
      --private-key-file string               path to a private key file used for authenticating to the Git SSH server
      --recurse-submodules                    when enabled, configures the GitRepository source to initialize and include Git submodules in the artifact it produces
      --registry string                       container registry where the Flux controller images are published (default "ghcr.io/fluxcd")
      --registry-creds string                 container registry credentials in the format 'user:password', requires --image-pull-secret to be set
      --secret-name string                    name of the secret the sync credentials can be found in or stored to (default "flux-system")
      --sparse-checkout strings               list of directories to be included in the GitRepository sparse checkout, the configured --path must be one of them, accepts comma-separated values
      --ssh-ecdsa-curve p256|p384|p521        SSH ECDSA public key curve (default p384)
      --ssh-hostkey-algos strings             list of host key algorithms to be used by the CLI for SSH connections
      --ssh-hostname string                   SSH hostname, to be used when the SSH host differs from the HTTPS one
      --ssh-key-algorithm rsa|ecdsa|ed25519   SSH public key algorithm (default ecdsa)
      --ssh-rsa-bits rsaKeyBits               SSH RSA public key bit size (multiplies of 8, min 1024) (default 2048)
      --ssh-signing-key-file string           path to an SSH private key file used for signing commits
      --ssh-signing-password string           passphrase for decrypting SSH signing key
      --ssh-signing-reuse-private-key         use the SSH transport key (--private-key-file) to sign commits
      --token-auth                            when enabled, the personal access token will be used instead of the SSH deploy key
      --toleration-keys strings               list of toleration keys used to schedule the controller pods onto nodes with matching taints
  -v, --version string                        toolkit version, when specified the manifests are downloaded from https://github.com/fluxcd/flux2/releases
      --watch-all-namespaces                  watch for custom resources in all namespaces, if set to false it will only watch the namespace where the Flux controllers are installed (default true)
```

### Options inherited from parent commands

```
      --as string                      Username to impersonate for the operation. User could be a regular user or a service account in a namespace.
      --as-group stringArray           Group to impersonate for the operation, this flag can be repeated to specify multiple groups.
      --as-uid string                  UID to impersonate for the operation.
      --as-user-extra stringArray      User extras to impersonate for the operation, this flag can be repeated to specify multiple values for the same key.
      --cache-dir string               Default cache directory (default "/root/.kube/cache")
      --certificate-authority string   Path to a cert file for the certificate authority to authenticate the Kubernetes API server
      --client-certificate string      Path to a client certificate file for TLS authentication to the Kubernetes API server
      --client-key string              Path to a client key file for TLS authentication to the Kubernetes API server
      --cluster string                 The name of the kubeconfig cluster to use
      --context string                 The name of the kubeconfig context to use
      --disable-compression            If true, opt-out of response compression for all requests to the server
      --insecure-skip-tls-verify       If true, the Kubernetes API server's certificate will not be checked for validity. This will make your HTTPS connections insecure
      --kube-api-burst int             The maximum burst queries-per-second of requests sent to the Kubernetes API. (default 300)
      --kube-api-qps float32           The maximum queries-per-second of requests sent to the Kubernetes API. (default 50)
      --kubeconfig string              Path to the kubeconfig file to use for CLI requests.
  -n, --namespace string               If present, the namespace scope for this CLI request (default "flux-system")
      --ns-follows-kube-context        use the namespace from the kubeconfig context instead of the default flux-system namespace, can also be set via FLUX_NS_FOLLOWS_KUBE_CONTEXT env var
      --server string                  The address and port of the Kubernetes API server
      --timeout duration               timeout for this operation (default 5m0s)
      --tls-server-name string         Server name to use for server certificate validation. If it is not provided, the hostname used to contact the server is used
      --token string                   Bearer token for authentication to the API server
      --user string                    The name of the kubeconfig user to use
      --verbose                        print generated objects
```

### SEE ALSO

* [flux](../flux/)	 - Command line utility for assembling Kubernetes CD pipelines
* [flux bootstrap bitbucket-server](../flux_bootstrap_bitbucket-server/)	 - Deploy Flux on a cluster connected to a Bitbucket Server repository
* [flux bootstrap git](../flux_bootstrap_git/)	 - Deploy Flux on a cluster connected to a Git repository
* [flux bootstrap gitea](../flux_bootstrap_gitea/)	 - Deploy Flux on a cluster connected to a Gitea repository
* [flux bootstrap github](../flux_bootstrap_github/)	 - Deploy Flux on a cluster connected to a GitHub repository
* [flux bootstrap gitlab](../flux_bootstrap_gitlab/)	 - Deploy Flux on a cluster connected to a GitLab repository

