configpolicy/deploy/k8s-node.sh

48 lines
935 B
Bash

#!/bin/sh
# vim: set ts=4 sw=4 noet :
name=${1:-node-$(diceware -n1 --no-caps)}
hostname=${name}.k8s.pyrocufflink.black
if ! virsh list --all --name | grep -qF ${name}; then
./newvm.sh ${name} \
--domain k8s.pyrocufflink.black \
--fedora 40 \
--memory 16384 \
--vcpus 8 \
--no-console \
--network network=kube \
-- \
--network network=storage \
--disk pool=default,size=32,cache=none \
--disk pool=default,size=32,cache=none \
|| exit
sleep 15
fi
if ! grep -q "${hostname}" hosts; then
sed -i '/\[k8s-node\]/a'"${hostname}" hosts
fi
ansible-playbook \
-l ${hostname} \
wait-for-host.yml \
|| exit
printf 'Waiting for SSH host certificate to be signed ... '
until ssh-keyscan -c ${hostname} 2>/dev/null | grep -q cert; do
sleep 1 || exit
done
echo done
ansible-playbook \
-l ${hostname} \
bootstrap.yml \
datavol.yml \
users.yml \
kubernetes.yml \
collectd.yml \
btop.yml \
-u root \
|| exit