kubernetes-bootstrapping/00-provisioning/README.md

47 lines
1.6 KiB
Markdown
Raw Normal View History

# 00-Provisioning
Adding new nodes
1. Create a boot and full butane yaml file for the new host in the butane directory
2. Generate ignition JSON files from butane YAML files using the below snippet
3. Check the resulting .json files into version control
```bash
# Be sure to run from 00-provisioning directory
cd 00-provisioning
# Loop through all butane files and generate ignition files
for i in butane/*.yaml; do
FILENAME=$( echo $i | cut -c 8- | head -c -6)
echo running butane on $FILENAME
butane butane/$FILENAME.yaml > ignition/$FILENAME.json
done
```
After you've checked the ignition files into version control, provision the server, either on baremetal or VM - example with virtualbox.
```bash
# Stop git bash being stupid
export MSYS_NO_PATHCONV=1
# Function to create VirtualBox VM, accepts name of VM as argument
create_vm() {
if [ -z "$1" ]; then
echo "error: create_vm() called without specifying a VM name"
echo "Usage: create_vm <name>"
return
fi
"C:/Program Files/Oracle/VirtualBox/vboxmanage.exe" import --vsys 0 --vmname "$1" "D:/VirtualBox/OVA/fedora-coreos-39.20231119.3.0-virtualbox.x86_64.ova"
"C:/Program Files/Oracle/VirtualBox/vboxmanage.exe" modifyvm $1 --nic1 bridged
"C:/Program Files/Oracle/VirtualBox/vboxmanage.exe" modifyvm $1 --bridge-adapter1 "Intel(R) Ethernet Controller I225-V"
"C:/Program Files/Oracle/VirtualBox/vboxmanage.exe" guestproperty set $1 "/Ignition/Config" "$(cat ignition/$1-boot.json)"
"C:/Program Files/Oracle/VirtualBox/vboxmanage.exe" startvm $1 --type headless
}
create_vm kube-node01
create_vm kube-node02
create_vm kube-node03
```