Advanced Options

Syntax for Advanced Options

To include advanced options in the kURL installation script, use the following syntax with -s before the advanced option flag:

curl https://kurl.sh/latest | sudo bash -s ADVANCED_FLAG

Where ADVANCED_FLAG is the flag for the advanced option.

For more information about installing with kURL, see Install with kURL.

The install scripts are idempotent. Re-run the scripts with different flags to change the behavior of the installer.

Reference

Flag Description
additional-no-proxy-addresses This indicates addresses that should not be proxied in addition to the private IP. Multiple addresses can be specified as a comma separated list of IPs or a range of addresses in CIDR notation.

Example:
curl https://kurl.sh/latest | sudo bash -s additional-no-proxy-addresses=192.1.1.1
airgap Do not attempt outbound Internet connections while installing.

Example:
curl https://kurl.sh/latest | sudo bash -s airgap
app-version-label A version label that indicates to KOTS which version of an application to install. KOTS will install the latest version if this flag is not passed.
container-log-max-files Specifies the maximum number of container log files that can be present for a container. This does not work with Docker. For Docker, see JSON File logging driver.

Example:
curl https://kurl.sh/latest | sudo bash -s container-log-max-files=2
container-log-max-size A quantity defining the maximum size of the container log file before it is rotated. For example: "5Mi" or "256Ki". This does not work with Docker. For Docker, see JSON File logging driver.

Example:
curl https://kurl.sh/latest | sudo bash -s container-log-max-size=5Mi
exclude-builtin-host-preflights Skips the built-in host preflight checks from running and only runs the vendor-defined checks. See Customizing Host Preflights.

Example:
curl https://kurl.sh/latest | sudo bash -s exclude-builtin-host-preflights
ha Install will require a load balancer to allow for a highly available Kubernetes Control Plane.

Example:
curl https://kurl.sh/latest | sudo bash -s ha
host-preflight-enforce-warnings Block installations on host preflight failures and warnings.

Example:
curl https://kurl.sh/latest | sudo bash -s host-preflight-enforce-warnings
host-preflight-ignore Ignore host preflight failures and warnings.

Example:
curl https://kurl.sh/latest | sudo bash -s host-preflight-ignore
ignore-remote-load-images-prompt Bypass prompt to load images on remotes. This is useful for automating upgrades.

Example:
curl https://kurl.sh/latest | sudo bash -s ignore-remote-load-images-prompt
ignore-remote-upgrade-prompt Bypass prompt to upgrade remotes. This is useful for automating upgrades.

Example:
curl https://kurl.sh/latest | sudo bash -s ignore-remote-upgrade-prompt
installer-spec-file This flag takes the path to a ‘patch’ yaml file. The config in this patch will be merged with the existing installer yaml, taking precedence where there is conflict, and will change the installation based on the final config.

Example:
curl https://kurl.sh/latest | sudo bash -s installer-spec-file="./patch.yaml"
kurl-install-directory Override the base directory where kURL will install its dependencies. The path will be suffixed with "/kurl/" ("{kurl-install-directory}/kurl/"). This directory must exist, be writeable by the kURL installer and must have sufficient disk space (5 GB).

Note: The default is /var/lib/.

Example:
curl https://kurl.sh/latest | sudo bash -s kurl-install-directory="/some/dir"
labels Apply the given labels to the node. This flag can be used when initially creating a kURL cluster or when adding a node to an existing kURL cluster.

Example:
curl https://kurl.sh/latest | sudo bash -s labels=gpu=enabled,type=data
load-balancer-address The IP:port of a load balancer for the Kubernetes API servers in HA mode.

Example:
curl https://kurl.sh/latest | sudo bash -s load-balancer-address="34.124.10.32:80"
preserve-docker-config This flag will make the kURL installer keep the current docker config of the node, overriding any yaml config.

Example:
curl https://kurl.sh/latest | sudo bash -s preserve-docker-config
preserve-firewalld-config This flag will make the kURL installer keep the current Firewalld config of the node, overriding any yaml config.

Example:
curl https://kurl.sh/latest | sudo bash -s preserve-firewalld-config
preserve-iptables-config This flag will make the kURL installer keep the current Iptables config of the node, overriding any yaml config.

Example:
curl https://kurl.sh/latest | sudo bash -s preserve-iptables-config
preserve-selinux-config This flag will make the kURL installer keep the current SELinux config of the node, overriding any yaml config.

Example:
curl https://kurl.sh/latest | sudo bash -s preserve-selinux-config
private-address The private IP address of the host.

Example:
curl https://kurl.sh/latest | sudo bash -s private-address="10.128.0.26"
public-address The public IP address.

Example:
curl https://kurl.sh/latest | sudo bash -s public-address="34.139.108.74"
skip-system-package-install This flag will tell kURL to skip installing system packages. The user is responsible for installing the required packages beforehand.

Example:
curl https://kurl.sh/latest | sudo bash -s skip-system-package-install
velero-restic-timeout The time interval that backups/restores of pod volumes are allowed to run before timing out. Default is '4h0m0s'.

Example:
curl https://kurl.sh/latest | sudo bash -s velero-restic-timeout=12h0m0s
velero-server-flags Additional flags to pass to the Velero server. This is a comma-separated list of arguments.

Example:
curl https://kurl.sh/latest | sudo bash -s velero-server-flags=--log-level=debug,--default-repo-maintain-frequency=12h
ekco-enable-internal-load-balancer Run an internal load balanacer with HAProxy listening on localhost:6444 on all nodes.

Example:
curl https://kurl.sh/latest | sudo bash -s ekco-enable-internal-load-balancer
kubernetes-upgrade-ignore-preflight-errors Bypass kubeadm upgrade preflight errors and warnings. See the kubeadm upgrade documentation for more information.

Example:
curl https://kurl.sh/latest | sudo bash -s kubernetes-upgrade-ignore-preflight-errors=CoreDNSUnsupportedPlugins
kubernetes-max-pods-per-node The maximum number of Pods that can run on each node (default 110).

Example:
curl https://kurl.sh/latest | sudo bash -s kubernetes-max-pods-per-node=200