Bootstrap Command

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

#pf9ctl bootstrap trial --pmk-version 1.21.3-pmk.111 ✓ Loaded Config Successfully ✓ Node is not onboarded and not attached to any cluster ✓ Removal of existing CLI ✓ Existing Platform9 Packages Check ✓ Required OS Packages Check ✓ SudoCheck ✓ CPUCheck ✓ DiskCheck ✓ MemoryCheck - At least 12 GB of memory is needed on host. Total memory found: 4 GB ✓ PortCheck ✓ Existing Kubernetes Cluster Check ✓ Check lock on dpkg ✓ Check lock on apt ✓ Check if system is booted with systemd ✓ Check time synchronization ✓ Check if firewalld service is not running ✓ Disabling swap and removing swap in fstab ✓ Completed Pre-Requisite Checks successfully Optional pre-requisite check(s) failed. See /home/ubuntu/pf9/log/pf9ctl-20211119.log or use --verbose for logs Prep local node as master node for kubernetes cluster (y/n): y ✓ Platform9 packages installed successfully ✓ Initialised host successfully ✓ Host successfully attached to the Platform9 control-plane ✓ Cluster creation started ✓ Host is connected ✓ Attached node to the cluster ✓ Bootstrap successfully finished Cluster creation started....This may take a few minutes....Check the latest status in UI ✓ Host is connected | Attaching node to the cluster trial


  Last updated by Anagha Pamidi