talos
This commit is contained in:
@@ -88,6 +88,10 @@ papermc_server:
|
||||
dev_servers:
|
||||
hosts:
|
||||
scrim:
|
||||
backstage:
|
||||
ansible_host: 10.1.71.133
|
||||
ansible_user: wed
|
||||
ansible_become: true
|
||||
|
||||
# dhcp_server:
|
||||
# hosts:
|
||||
|
||||
118
talos/talhelper/px-csi-talos-patch-v2.yaml
Normal file
118
talos/talhelper/px-csi-talos-patch-v2.yaml
Normal file
@@ -0,0 +1,118 @@
|
||||
---
|
||||
# Patch for px-pure-csi-node DaemonSet to work on Talos Linux
|
||||
# This version DISABLES multipath to avoid multipath.conf issues on Talos
|
||||
# Apply with: kubectl patch daemonset px-pure-csi-node -n portworx --patch-file px-csi-talos-patch-v2.yaml
|
||||
apiVersion: apps/v1
|
||||
kind: DaemonSet
|
||||
metadata:
|
||||
name: px-pure-csi-node
|
||||
namespace: portworx
|
||||
spec:
|
||||
template:
|
||||
spec:
|
||||
containers:
|
||||
- name: node-plugin
|
||||
env:
|
||||
# CRITICAL: Disable multipath to avoid /etc/multipath.conf requirement
|
||||
- name: DISABLE_MULTIPATH
|
||||
value: "true"
|
||||
# Keep existing env vars (these will merge with existing)
|
||||
- name: PX_LOGLEVEL
|
||||
value: INFO
|
||||
- name: LOG_FILE
|
||||
value: /var/log/px-pure-csi/node.log
|
||||
- name: PURE_DISCOVERY_CONF
|
||||
value: /config/pure.json
|
||||
- name: CSI_ENDPOINT
|
||||
value: unix:/csi/csi.sock
|
||||
- name: CSI_NODE_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
apiVersion: v1
|
||||
fieldPath: spec.nodeName
|
||||
- name: NAMESPACE
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
apiVersion: v1
|
||||
fieldPath: metadata.namespace
|
||||
- name: CLUSTER_UUID
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
key: ClusterUUID
|
||||
name: pure-storage-cluster-cm
|
||||
- name: CLUSTER_NAME
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
key: ClusterName
|
||||
name: pure-storage-cluster-cm
|
||||
- name: NODE_STAGE_CONCURRENCY
|
||||
value: "25"
|
||||
- name: PURE_FLASHARRAY_SAN_TYPE
|
||||
value: ISCSI
|
||||
|
||||
volumeMounts:
|
||||
# Add Talos-specific mounts
|
||||
- name: usr-local-sbin
|
||||
mountPath: /usr/local/sbin
|
||||
mountPropagation: Bidirectional
|
||||
- name: var-lib-iscsi
|
||||
mountPath: /var/lib/iscsi
|
||||
mountPropagation: Bidirectional
|
||||
# Fix existing mounts (keep originals, add propagation)
|
||||
- name: log-dir
|
||||
mountPath: /var/log/px-pure-csi
|
||||
- name: sys
|
||||
mountPath: /sys
|
||||
- name: kubelet-dir
|
||||
mountPath: /var/lib/kubelet
|
||||
mountPropagation: Bidirectional
|
||||
- name: kubelet-dir
|
||||
mountPath: /csi
|
||||
subPath: plugins/pxd.portworx.com
|
||||
- name: device-dir
|
||||
mountPath: /dev
|
||||
- name: iscsi
|
||||
mountPath: /etc/iscsi
|
||||
- name: host-root
|
||||
mountPath: /host
|
||||
mountPropagation: Bidirectional
|
||||
|
||||
volumes:
|
||||
# Add Talos-specific volumes
|
||||
- name: usr-local-sbin
|
||||
hostPath:
|
||||
path: /usr/local/sbin
|
||||
type: Directory
|
||||
- name: var-lib-iscsi
|
||||
hostPath:
|
||||
path: /var/lib/iscsi
|
||||
type: DirectoryOrCreate
|
||||
- name: host-root
|
||||
hostPath:
|
||||
path: /
|
||||
type: Directory
|
||||
# Keep existing volumes
|
||||
- name: kubelet-dir
|
||||
hostPath:
|
||||
path: /var/lib/kubelet
|
||||
- name: log-dir
|
||||
hostPath:
|
||||
path: /var/log/px-pure-csi
|
||||
- name: device-dir
|
||||
hostPath:
|
||||
path: /dev
|
||||
type: Directory
|
||||
- name: probe-dir
|
||||
emptyDir: {}
|
||||
- name: iscsi
|
||||
hostPath:
|
||||
path: /etc/iscsi
|
||||
- name: pure-config
|
||||
secret:
|
||||
secretName: px-pure-secret
|
||||
items:
|
||||
- key: pure.json
|
||||
path: pure.json
|
||||
- name: sys
|
||||
hostPath:
|
||||
path: /sys
|
||||
44
talos/talhelper/px-csi-talos-patch.yaml
Normal file
44
talos/talhelper/px-csi-talos-patch.yaml
Normal file
@@ -0,0 +1,44 @@
|
||||
---
|
||||
# Patch for px-pure-csi-node DaemonSet to work on Talos Linux
|
||||
# Apply with: kubectl patch daemonset px-pure-csi-node -n portworx --patch-file px-csi-talos-patch.yaml
|
||||
apiVersion: apps/v1
|
||||
kind: DaemonSet
|
||||
metadata:
|
||||
name: px-pure-csi-node
|
||||
namespace: portworx
|
||||
spec:
|
||||
template:
|
||||
spec:
|
||||
containers:
|
||||
- name: node-plugin
|
||||
volumeMounts:
|
||||
# Add Talos-specific mounts
|
||||
- name: usr-local-sbin
|
||||
mountPath: /usr/local/sbin
|
||||
mountPropagation: Bidirectional
|
||||
- name: var-lib-iscsi
|
||||
mountPath: /var/lib/iscsi
|
||||
mountPropagation: Bidirectional
|
||||
# Fix existing kubelet-dir mount propagation
|
||||
- name: kubelet-dir
|
||||
mountPath: /var/lib/kubelet
|
||||
mountPropagation: Bidirectional
|
||||
# Mount host root for nsenter access
|
||||
- name: host-root
|
||||
mountPath: /host
|
||||
mountPropagation: Bidirectional
|
||||
|
||||
volumes:
|
||||
# Add Talos-specific volumes
|
||||
- name: usr-local-sbin
|
||||
hostPath:
|
||||
path: /usr/local/sbin
|
||||
type: Directory
|
||||
- name: var-lib-iscsi
|
||||
hostPath:
|
||||
path: /var/lib/iscsi
|
||||
type: DirectoryOrCreate
|
||||
- name: host-root
|
||||
hostPath:
|
||||
path: /
|
||||
type: Directory
|
||||
@@ -143,63 +143,18 @@ worker:
|
||||
# Only mount /var/lib/iscsi (NOT /etc/iscsi)
|
||||
# The iscsi-tools extension manages /etc/iscsi automatically
|
||||
# /var/lib/iscsi contains iSCSI session and node data that must persist
|
||||
- destination: /var/lib/iscsi
|
||||
type: bind
|
||||
source: /var/lib/iscsi
|
||||
options:
|
||||
- bind
|
||||
- rshared
|
||||
- rw
|
||||
# - destination: /var/lib/iscsi
|
||||
# type: bind
|
||||
# source: /var/lib/iscsi
|
||||
# options:
|
||||
# - bind
|
||||
# - rshared
|
||||
# - rw
|
||||
|
||||
# ARP tuning for dual-NIC setup
|
||||
sysctls:
|
||||
net.ipv4.conf.all.arp_announce: "2"
|
||||
net.ipv4.conf.all.arp_ignore: "1"
|
||||
- |-
|
||||
apiVersion: v1alpha1
|
||||
kind: ExtensionServiceConfig
|
||||
name: multipathd
|
||||
configFiles:
|
||||
- content: |-
|
||||
# Pure Storage FlashArray multipath configuration
|
||||
# Configured via ExtensionServiceConfig for multipathd system service
|
||||
defaults {
|
||||
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
|
||||
|
||||
# ─── Nodes ───────────────────────────────────────────────────────────────────
|
||||
nodes:
|
||||
|
||||
85
talos/talhelper/talos-multipath-patch.yaml
Normal file
85
talos/talhelper/talos-multipath-patch.yaml
Normal file
@@ -0,0 +1,85 @@
|
||||
---
|
||||
# Talos machine config patch for Pure FlashArray multipath support
|
||||
# Add this to your Talos machine config under worker nodes
|
||||
# Apply with: talosctl patch machineconfig -n <worker-ip> --patch @talos-multipath-patch.yaml
|
||||
machine:
|
||||
files:
|
||||
- path: /var/etc/multipath.conf
|
||||
permissions: 0644
|
||||
op: create
|
||||
# content: |-
|
||||
# # Pure Storage FlashArray multipath configuration
|
||||
# defaults {
|
||||
# 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 {
|
||||
# devnode "^pxd[0-9]*"
|
||||
# devnode "^pxd.*"
|
||||
# }
|
||||
|
||||
# Symlink for PX-CSI to find multipath.conf
|
||||
- path: /etc/multipath.conf
|
||||
permissions: 0644
|
||||
op: create
|
||||
# content: |-
|
||||
# # Symlink to persistent location
|
||||
# # Note: Talos /etc is read-only, this gets regenerated on boot
|
||||
# defaults {
|
||||
# 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 {
|
||||
# devnode "^pxd[0-9]*"
|
||||
# devnode "^pxd.*"
|
||||
# }
|
||||
Reference in New Issue
Block a user