infra/talos/apply-worker-configs.sh

53 lines
1.7 KiB
Bash
Executable file

#!/bin/bash
set -e
cd "$(dirname "$0")"
WORKER_IPS=(10.0.0.104 10.0.0.105 10.0.0.106)
WORKER_NAMES=(worker-1 worker-2 worker-3)
echo "=== Applying Talos Worker Node Configurations ==="
echo ""
# Apply worker configs
for i in "${!WORKER_IPS[@]}"; do
IP=${WORKER_IPS[$i]}
NAME=${WORKER_NAMES[$i]}
echo "Applying config to $NAME ($IP)..."
talosctl apply-config \
--nodes $IP \
--file nodes/$NAME.yaml \
--insecure
echo " ✓ Applied to $NAME"
echo ""
done
echo "=== Worker nodes configured! ==="
echo ""
echo "The worker nodes will now join the cluster."
echo "Waiting for nodes to appear in cluster..."
sleep 15
# Get the worker node names (they're auto-generated)
WORKER_NODES=$(kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}' | grep -v -f <(kubectl get nodes -l node-role.kubernetes.io/control-plane -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}') 2>/dev/null || true)
if [ -n "$WORKER_NODES" ]; then
echo "Found worker nodes, applying labels..."
for node in $WORKER_NODES; do
echo " Labeling $node..."
kubectl label node $node \
topology.kubernetes.io/region=380 \
topology.kubernetes.io/zone=vm2-380 \
node.cloudprovider.kubernetes.io/platform=nocloud \
node-role.kubernetes.io/worker= \
--overwrite
done
echo ""
echo "Worker nodes labeled successfully!"
kubectl get nodes
else
echo "No worker nodes found yet. Label them manually with:"
echo " kubectl label node <node-name> topology.kubernetes.io/region=380 topology.kubernetes.io/zone=vm2-380 node.cloudprovider.kubernetes.io/platform=nocloud node-role.kubernetes.io/worker="
fi