diff --git a/talos/talhelper/multipathd-extension-patch.yaml b/talos/talhelper/multipathd-extension-patch.yaml new file mode 100644 index 0000000..ac6e665 --- /dev/null +++ b/talos/talhelper/multipathd-extension-patch.yaml @@ -0,0 +1,28 @@ +apiVersion: v1alpha1 +kind: ExtensionServiceConfig +name: multipathd +configFiles: + - content: | + # Your multipathd configuration content here + defaults { + user_friendly_names yes + find_multipaths yes + } + blacklist { + devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*" + devnode "^(hd|sda|sd[a-z])[0-9]*" # Adjust to blacklist local disks + devnode "^cciss!.*" + } + devices { + device { + vendor "PURE" + product "FlashArray" + path_grouping_policy multibus + path_selector "queue-length 0" + path_checker tur + no_path_retry 0 + rr_min_io 1 + dev_loss_tmo 30 + } + } + mountPath: /etc/multipath.conf diff --git a/talos/talhelper/talconfig.yaml b/talos/talhelper/talconfig.yaml index 91de44b..7e08737 100644 --- a/talos/talhelper/talconfig.yaml +++ b/talos/talhelper/talconfig.yaml @@ -8,9 +8,9 @@ # talhelper gencommand apply --extra-flags="--insecure" | bash # talhelper gencommand bootstrap | bash # ───────────────────────────────────────────────────────────────────────────── - +--- clusterName: fastpass -talosVersion: v1.13.2 +talosVersion: v1.13.5 kubernetesVersion: v1.32.3 # VIP floats across control plane nodes — all kubectl/talosctl traffic lands here @@ -120,6 +120,7 @@ worker: - siderolabs/qemu-guest-agent - siderolabs/util-linux-tools - siderolabs/iscsi-tools + - siderolabs/multipath-tools patches: - |- @@ -137,7 +138,7 @@ worker: nodeIP: validSubnets: - 10.1.71.0/24 - + extraMounts: # Only mount /var/lib/iscsi (NOT /etc/iscsi) # The iscsi-tools extension manages /etc/iscsi automatically @@ -154,23 +155,51 @@ worker: sysctls: net.ipv4.conf.all.arp_announce: "2" net.ipv4.conf.all.arp_ignore: "1" - - |- apiVersion: v1alpha1 kind: ExtensionServiceConfig - name: multipath-tools + name: multipathd configFiles: - - content: | - # Your multipath.conf content here + - content: |- + # Pure Storage FlashArray multipath configuration + # Configured via ExtensionServiceConfig for multipathd system service defaults { - user_friendly_names yes + polling_interval 10 + path_selector "round-robin 0" + path_grouping_policy group_by_prio + path_checker tur + prio alua + failback immediate + user_friendly_names no + find_multipaths yes + fast_io_fail_tmo 10 + dev_loss_tmo 600 + no_path_retry 0 + } + + devices { + device { + vendor "PURE" + product "FlashArray" + path_selector "round-robin 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 + } + } + + blacklist { + # Exclude Portworx PXD devices from multipathing + devnode "^pxd[0-9]*" + devnode "^pxd.*" } mountPath: /etc/multipath.conf - environment: - - ARGS=-f /etc/multipath.conf - # Note: ExtensionServices run with host access by design, - # effectively privileged for system tasks. - # ─── Nodes ─────────────────────────────────────────────────────────────────── nodes: