From f37021346b1a299554f21345396c5da32f93419d Mon Sep 17 00:00:00 2001 From: Hermes Agent service account Date: Sat, 20 Jun 2026 20:25:08 -0500 Subject: [PATCH] Enable iSCSI support for Portworx CSI - Add dm_round_robin kernel module for Pure Storage multipath - Uncomment and enable /etc/multipath.conf with Pure-specific settings - Add apply-iscsi-config.sh script for rolling worker node updates --- talos/talhelper/apply-iscsi-config.sh | 69 +++++++++++++++++++++++++++ talos/talhelper/talconfig.yaml | 48 ++++++++++--------- 2 files changed, 94 insertions(+), 23 deletions(-) create mode 100755 talos/talhelper/apply-iscsi-config.sh diff --git a/talos/talhelper/apply-iscsi-config.sh b/talos/talhelper/apply-iscsi-config.sh new file mode 100755 index 0000000..3fbf4ce --- /dev/null +++ b/talos/talhelper/apply-iscsi-config.sh @@ -0,0 +1,69 @@ +#!/bin/bash +# Apply iSCSI configuration to worker nodes +# This regenerates configs with the iscsi-tools extension and applies them + +set -e + +echo "==========================================" +echo "Talos iSCSI Configuration Update" +echo "==========================================" +echo "" +echo "This will:" +echo " 1. Generate new Talos configs with iscsi-tools extension" +echo " 2. Apply configs to each worker node (one at a time)" +echo " 3. Reboot each node to load iSCSI modules" +echo " 4. Wait for each node to become Ready before continuing" +echo "" +read -p "Proceed? (y/N): " -n 1 -r +echo +if [[ ! $REPLY =~ ^[Yy]$ ]]; then + echo "Aborted." + exit 0 +fi + +echo "" +echo "Step 1: Generating Talos configurations..." +talhelper genconfig + +declare -A WORKERS=( + ["jungle-cruise"]="10.1.71.69" + ["haunted-mansion"]="10.1.71.70" + ["peter-pans-flight"]="10.1.71.71" +) + +for worker in jungle-cruise haunted-mansion peter-pans-flight; do + ip="${WORKERS[$worker]}" + echo "" + echo "==========================================" + echo "Updating $worker ($ip)..." + echo "==========================================" + + echo "Applying configuration (will reboot)..." + talosctl apply-config --nodes ${ip} \ + --file clusterconfig/fastpass-${worker}.yaml \ + --mode=reboot + + echo "Waiting for $worker to reboot and become Ready..." + sleep 30 # Give it time to start rebooting + kubectl wait --for=condition=Ready node/${worker} --timeout=10m + + echo "✓ $worker is back up." + + if [ "$worker" != "peter-pans-flight" ]; then + echo "Sleeping 30s before next node..." + sleep 30 + fi +done + +echo "" +echo "==========================================" +echo "✓ All workers updated!" +echo "==========================================" +echo "" +echo "Verifying iSCSI modules on jungle-cruise..." +kubectl debug node/jungle-cruise -it --image=busybox -- cat /proc/modules | grep -E "iscsi|multipath" || echo "Modules check failed" + +echo "" +echo "Next steps:" +echo " 1. Verify iSCSI modules loaded on all nodes" +echo " 2. Proceed with Portworx CSI installation" diff --git a/talos/talhelper/talconfig.yaml b/talos/talhelper/talconfig.yaml index d42ee27..1eab1f0 100644 --- a/talos/talhelper/talconfig.yaml +++ b/talos/talhelper/talconfig.yaml @@ -128,6 +128,7 @@ worker: modules: - name: iscsi_tcp - name: dm_multipath + - name: dm_round_robin kubelet: extraMounts: @@ -148,29 +149,30 @@ worker: sysctls: net.ipv4.conf.all.arp_announce: "2" net.ipv4.conf.all.arp_ignore: "1" - # files: - # - content: | - # defaults { - # polling_interval 10 - # } - # devices { - # device { - # vendor "PURE" - # product "FlashArray" - # path_selector "queue-length 0" - # path_grouping_policy group_by_prio - # prio alua - # path_checker tur - # fast_io_fail_tmo 10 - # user_friendly_names no - # no_path_retry 0 - # hardware_handler "1 alua" - # dev_loss_tmo 600 - # failback immediate - # } - # } - # path: /etc/multipath.conf - # op: create + + files: + - content: | + defaults { + polling_interval 10 + } + devices { + device { + vendor "PURE" + product "FlashArray" + path_selector "queue-length 0" + path_grouping_policy group_by_prio + prio alua + path_checker tur + fast_io_fail_tmo 10 + user_friendly_names no + no_path_retry 0 + hardware_handler "1 alua" + dev_loss_tmo 600 + failback immediate + } + } + path: /etc/multipath.conf + op: create # ─── Nodes ─────────────────────────────────────────────────────────────────── nodes: