Skip to content

cub cluster controller-install

cub cluster controller-install

Install Argo CD, Sveltos or Flux in a cluster and create its target in ConfigHub

Synopsis

The first part of "cub cluster attach", on its own: installs the controller in the cluster and creates the ConfigHub side that represents the cluster. "cub cluster attach " finishes the job later, picking the cluster up where this left it.

In the cluster, the controller — Argo CD, Sveltos or Flux, chosen with --controller — is installed from the upstream manifest when it is absent, and an existing one is left as found (--no-install fails instead of installing). On a kind cluster "cub cluster create" made, Argo CD's UI or the Sveltos dashboard goes on the first port of the node's host port window.

In ConfigHub:

the cluster Space, which holds the OCI target and, once attached, argobot's Channel. target the OCI target that represents the cluster, gated by a "no-placeholders" Trigger in the cluster Space unless --no-placeholder-gate is given. No one is granted access to it yet: attaching creates the cluster's service account and grants it.

The cluster's credentials come from --provider, as for "cub cluster attach", and a copy is written to /clusters/.kubeconfig beside the cluster's record, so "cub cluster list" shows the cluster and "cub cluster detach --delete-config" undoes this.

Examples: # Install Argo CD in a kind cluster, then finish attaching it cub cluster create lab cub cluster controller-install lab --provider kind cub cluster attach lab

# Install Flux in the cluster your current kube context points at cub cluster controller-install staging --controller flux

cub cluster controller-install <name> [flags]

Options

      --aws-profile string          --provider eks: the AWS CLI profile (defaults to AWS_PROFILE)
      --aws-region string           --provider eks: the cluster's AWS region (defaults to the AWS CLI's: AWS_REGION or the profile's)
      --cluster string              the cluster's name at the provider (--provider eks or kind; defaults to the cluster name)
      --controller string           controller to install: argo (Argo CD), sveltos (Sveltos) or flux (Flux) (default "argo")
      --controller-version string   controller release to install when absent (default: argo stable, sveltos v1.16.0, flux v2.9.2; Argo CD must be v3.1 or later, which oci:// sources need)
      --grant-access                --provider eks: if your AWS identity has no access entry on the cluster, add one with cluster-admin
  -h, --help                        help for controller-install
      --kube-context string         --provider kubeconfig: the kube context to use (defaults to the kubeconfig's current context)
      --kubeconfig string           --provider kubeconfig: the kubeconfig to read the cluster from (defaults to $KUBECONFIG or ~/.kube/config)
      --no-install                  never install the controller; fail if the cluster has none
      --no-placeholder-gate         skip the default vet-placeholders Trigger, allowing Releases with unfilled confighubplaceholder values to be published to this cluster
      --provider string             where the cluster's credentials come from: kubeconfig, eks or kind (default "kubeconfig")
      --space string                ConfigHub space slug for the cluster's target (the "target prefix"; defaults to <name>)

Options inherited from parent commands

      --context string   The context to use for this command
      --debug            Debug output

SEE ALSO

  • cub cluster - Manage clusters wired into ConfigHub via Argo CD, Sveltos or Flux