# env setup ## k3s node setup ```bash POD_CIDR="10.42.0.0/16" API_SERVER_IP=10.201.24.235 API_SERVER_PORT=6443 cilium-cli install --set k8sServiceHost=${API_SERVER_IP} --set k8sServicePort=${API_SERVER_PORT} --set ipam.operator.clusterPoolIPv4PodCIDRList=$POD_CIDR --set kubeProxyReplacement=true --helm-set=operator.replicas=1 ``` ```bash helm upgrade --install vsphere-cpi vsphere-cpi/vsphere-cpi --namespace kube-system --set config.enabled=true --set config.vcenter="10.201.23.1" --set config.username='capv@vsphere.local' --set config.password="Giantswarm-2024" --set config.datacenter="giant-swarm" ``` ```bash kubectl patch node k3s-1-control-plane-hxf82 --type=json -p='[{"op":"remove","path":"/spec/taints"}]' ``` ## install fleet controller ref: https://fleet.rancher.io/how-tos-for-operators/installation#_configuration_for_multi_cluster get API server url for fleet controller cluster: ```bash API_SERVER_URL=$(kubectl --kubeconfig ../kubeconfigs/k3s-mc.kubeconfig config view -o json --raw | jq -r '.clusters[] | select(.name=="k3s-mc").cluster["server"]') ``` get API server CA bundle for fleet controller cluster: ```bash kubectl --kubeconfig /tmp/k3s-mc.kubeconfig config view -o json --raw | jq -r '.clusters[] | select(.name=="k3s-mc").cluster["certificate-authority-data"]' | base64 -d > ca.pem API_SERVER_CA="ca.pem" ``` ```bash helm -n cattle-fleet-system install --create-namespace --wait --set apiServerURL="$API_SERVER_URL" --set-file apiServerCA="$API_SERVER_CA" fleet fleet/fleet ``` ## install fleet agent ref: https://fleet.rancher.io/how-tos-for-operators/cluster-registration#_install_agent_for_a_predefined_cluster extract values from join token secret: ``` bash k view-secret k3s-test > extracted-values.yaml ``` install fleet-agent in the managed cluster: ```bash helm -n cattle-fleet-system install --create-namespace --wait --set clientID="k3s-test" --values extracted-values.yaml fleet-agent fleet/fleet-agent ```