Skip to content

ksail cluster update

Update a Kubernetes cluster to match the current configuration.
This command applies changes from your ksail.yaml configuration to a running cluster.
For Talos clusters, many configuration changes can be applied in-place without
cluster recreation (e.g., network settings, kubelet config, registry mirrors).
For Kind/K3d clusters, in-place updates are more limited. Worker node scaling
is supported for K3d, but most other changes require cluster recreation.
Changes are classified into three categories:
- In-Place: Applied without disruption
- Reboot-Required: Applied but may require node reboots
- Recreate-Required: Require full cluster recreation
Use --dry-run to preview changes without applying them.
Usage:
ksail cluster update [flags]
Flags:
--cert-manager CertManager Cert-Manager configuration (Enabled: install, Disabled: skip)
--cni CNI Container Network Interface (CNI) to use
-c, --context string Kubernetes context of cluster
--control-planes int32 Number of control-plane nodes (default 1)
--csi CSI Container Storage Interface (Default: use distribution, Enabled: install CSI, Disabled: skip CSI)
-d, --distribution Distribution Kubernetes distribution to use
--distribution-config string Configuration file for the distribution
--dry-run Preview changes without applying them
--force Skip confirmation prompt and proceed with cluster recreation
-g, --gitops-engine GitOpsEngine GitOps engine to use (None disables GitOps, Flux installs Flux controllers, ArgoCD installs Argo CD) (default None)
--import-images string Path to tar archive with container images to import after cluster creation but before component installation
-k, --kubeconfig string Path to kubeconfig file (default "~/.kube/config")
--load-balancer LoadBalancer LoadBalancer support (Default: use distribution × provider, Enabled: install, Disabled: uninstall)
--local-registry string Local registry specification: [user:pass@]host[:port][/path] (e.g., localhost:5050, ghcr.io/myorg, ${USER}:${PASS}@ghcr.io:443/org)
--metrics-server MetricsServer Metrics Server (Default: use distribution, Enabled: install, Disabled: uninstall)
--mirror-registry strings Configure mirror registries with optional authentication. Format: [user:pass@]host[=upstream]. Credentials support environment variables using ${VAR} syntax (quote placeholders so KSail can expand them). Examples: docker.io=https://registry-1.docker.io, '${USER}:${TOKEN}@ghcr.io=https://ghcr.io'
-n, --name string Cluster name used for container names, registry names, and kubeconfig context
--policy-engine PolicyEngine Policy engine (None: skip, Kyverno: install Kyverno, Gatekeeper: install Gatekeeper)
--provider Provider Infrastructure provider backend (e.g., Docker)
--workers int32 Number of worker nodes
Global Flags:
--benchmark Show per-activity benchmark output