53 lines
1.7 KiB
Bash
Executable file
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
|