# on new install: * `tofu apply` to create machines * change hostname to be fqdn with hostnamectl, changing with a running cluster will break the cluster * register dns with `knotctl add -z rut.sunet.se -n internal-sto4-test-k8sm-1.rut.sunet.se. -d 2001:6b0:6c::449 -r AAAA` * Add to cosmos-rules: ``` '^internal-sto4-test-k8sm-[0-9].rut.sunet.se$': rut::infra_ca_rp: sunet::microk8s::node: channel: 1.28/stable sunet::frontend::register_sites: sites: kubetest.rut.sunet.se: frontends: - se-fre-lb-1.sunet.se - se-tug-lb-1.sunet.se port: '30443' '^internal-sto4-test-k8sw-[0-9].rut.sunet.se$': rut::infra_ca_rp: sunet::microk8s::node: channel: 1.28/stable ``` * add nodes by adding a privisioning key on the first management node with `microk8s add-node` * Add all other _Controller_ nodes with `microk8s join 89.46.21.119:25000/12345678987654345678976543/1234565` * Add all other _Worker_ nodes with `microk8s join 89.46.21.119:25000/12345678987654345678976543/1234565 --worker` * Taint controller nodes so they wont get workload:` microk8s.kubectl taint nodes --selector=node.kubernetes.io/microk8s-controlplane=microk8s-controlplane cp-node=true:PreferNoSchedule` * `kubectl get nodes` should show something like: ``` NAME STATUS ROLES AGE VERSION internal-sto4-test-k8sm-2.rut.sunet.se NotReady 16d v1.28.7 internal-sto4-test-k8sw-5.rut.sunet.se Ready 15m v1.28.7 internal-sto4-test-k8sw-1.rut.sunet.se Ready 15m v1.28.7 internal-sto4-test-k8sw-2.rut.sunet.se Ready 14m v1.28.7 internal-sto4-test-k8sm-3.rut.sunet.se Ready 16d v1.28.7 internal-sto4-test-k8sw-3.rut.sunet.se Ready 18m v1.28.7 internal-sto4-test-k8sw-4.rut.sunet.se Ready 16m v1.28.7 internal-sto4-test-k8sw-0.rut.sunet.se Ready 21m v1.28.7 internal-sto4-test-k8sm-1.rut.sunet.se Ready 16d v1.28.7 ``` * **Profit**