#!/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 topology.kubernetes.io/region=380 topology.kubernetes.io/zone=vm2-380 node.cloudprovider.kubernetes.io/platform=nocloud node-role.kubernetes.io/worker=" fi