CLI Bootstrap

The bootstrap command creates a single node cluster using the current node as the master.

Syntax Example

pf9ctl bootstrap [flags] <cluster-name>

All Available Commands and Flags

pf9ctl bootstrap --help

Bootstrap a single node Kubernetes cluster with current node as the master node.

Usage:
  pf9ctl bootstrap [flags] cluster-name

Examples:
pf9ctl bootstrap <clusterName> --pmk-version <version>

Required Flags:
	    --pmk-version string                  Kubernetes pmk version
Optional Flags:
	    --advanced-api-configuration string   Allowed API groups and version. Option: default, all & custom
	    --allow-workloads-on-master           Taint master nodes ( to enable workloads ), use either --allow-workloads-on-master or --allow-workloads-on-master=false to change (default true)
	    --api-server-flags strings            Comma separated list of supported kube-apiserver flags, e.g: --request-timeout=2m0s,--kubelet-timeout=20s
	    --block-size string                   Block size determines how many Pod's can run per node vs total number of nodes per cluster (default "26")
	    --container-runtime string            The container runtime for the cluster (default "containerd")
	    --containers-cidr string              CIDR for container overlay (default "10.20.0.0/16")
	    --controller-manager-flags strings    Comma separated list of supported kube-controller-manager flags, e.g: --large-cluster-size-threshold=60,--concurrent-statefulset-syncs=10
	    --enable-kubeVirt                     Enables Kubernetes to run Virtual Machines within Pods. This feature is not recommended for production workloads, use either --enable-kubeVirt or --enable-kubeVirt=true to change
	    --enable-profile-engine               Simplfy cluster governance using the Platform9 Profile Engine, use either --enable-profile-engine or --enable-profile-engine=false to change (default true)
	    --etcd-backup                         Enable automated etcd backups on this cluster, use either --etcd-backup or --etcd-backup=false to change (default true)
	    --external-dns-name string            External DNS for master VIP
	-h, --help                                help for bootstrap
	    --http-proxy string                   Specify the HTTP proxy for this cluster. Format-> <scheme>://<username>:<password>@<host>:<port>, username and password are optional.
	    --interface-detction-method string    Interface detection method for Calico CNI (default "first-found")
	-i, --ip strings                          IP address of the host to be prepared
	    --ip-encapsulation string             Encapsulates POD traffic in IP-in-IP between nodes (default "Always")
	    --master-virtual-interface string     Physical interface for virtual IP association
	    --master-virtual-ip string            Virtual IP address for cluster
	    --metallb-ip-range string             Ip range for MetalLB
	    --mfa string                          MFA token
	    --monitoring                          Enable monitoring for this cluster, use either --monitoring or --monitoring=false to change (default true)
	    --mtu-size string                     Maximum Transmission Unit (MTU) for the interface (default "1440")
	    --nat int                             Packets destined outside the POD network will be SNAT'd using the node's IP (default 1)
	    --network-plugin string               Specify network plugin ( Possible values: flannel or calico ) (default "calico")
	    --network-plugin-operator             Will deploy Platform9 CRDs to enable multiple CNIs and features such as SR-IOV, use either --network-plugin-operator or --network-plugin-operator=true to change
	    --network-stack int                   0 for ipv4 and 1 for ipv6
	-p, --password string                     Ssh password for the node (use 'single quotes' to pass password)
	    --privileged                          Enable privileged mode for K8s API, use either --privileged or --privileged=false to change (default true)
	-r, --remove-existing-pkgs                Will remove previous installation if found, use either --remove-existing-pkgs or --remove-existing-pkgs=true to change
	    --reserved-cpu string                 Comma separated list of CPUs to be reserved for the system, e.g: 4-8,9-12
	    --scheduler-flags strings             Comma separated list of supported Kube-scheduler flags, e.g: --kube-api-burst=120,--log_file_max_size=3000
	    --services-cidr string                CIDR for services overlay (default "10.21.0.0/16")
	-s, --ssh-key string                      Ssh key file for connecting to the node
	-e, --sudo-pass string                    Sudo password for user on remote host
	    --tag string                          Add tag metadata to this cluster (key=value)
            --topology-manager-policy string      Topology manager policy (default "none")
	    --use-hostname                        Use node hostname for cluster creation, use either --use-hostname or --use-hostname=true to change
	-u, --user string                         Ssh username for the node


Global Flags:
	    --log-dir string   path to save logs
	    --no-prompt        disable all user prompts
	    --verbose          print verbose logs

Command Example

The bootstrap command requires a cluster name to complete successfully. During the bootstrap process the CLI will prompt the user asking if the node should be set up as a Master node, in most circumstances answer yes

Last updated

Was this helpful?