Add Portworx CSI driver for Pure Storage FlashArray
- Deploy Portworx Operator + CSI driver via ArgoCD - Support both iSCSI block and NFS file storage from FlashArray - Integrate with 1Password External Secrets for FlashArray credentials - Include comprehensive deployment documentation and validation script - Storage classes: pure-block (iSCSI) and pure-file (NFS) - Talos Linux compatible with iSCSI/multipath configuration
This commit is contained in:
144
cluster/platform/portworx-csi/talos-config-reference.yaml
Normal file
144
cluster/platform/portworx-csi/talos-config-reference.yaml
Normal file
@@ -0,0 +1,144 @@
|
||||
# ------------------------------------------------------------------------------
|
||||
# Talos MachineConfig Extension for Portworx CSI / FlashArray
|
||||
#
|
||||
# This file documents the required Talos configuration for Pure Storage FlashArray
|
||||
# with Portworx CSI. These configurations must be applied to Talos nodes via
|
||||
# talhelper or talosctl.
|
||||
#
|
||||
# DO NOT apply this as a Kubernetes manifest - it's a reference for Talos patches.
|
||||
#
|
||||
# To apply these changes:
|
||||
# 1. Add the patches below to talos/talhelper/talconfig.yaml
|
||||
# 2. Run: talhelper genconfig
|
||||
# 3. Apply updated config: talosctl apply-config --file clusterconfig/...
|
||||
#
|
||||
# Required for:
|
||||
# - iSCSI initiator configuration
|
||||
# - Multipath device mapping (DM-multipath)
|
||||
# - udev rules for Pure Storage devices
|
||||
# ------------------------------------------------------------------------------
|
||||
|
||||
# Add this to your Talos worker node patches in talconfig.yaml:
|
||||
#
|
||||
# patches:
|
||||
# - |-
|
||||
# machine:
|
||||
# # Install system extensions for iSCSI and multipath
|
||||
# install:
|
||||
# extensions:
|
||||
# - image: ghcr.io/siderolabs/iscsi-tools:latest
|
||||
# - image: ghcr.io/siderolabs/util-linux-tools:latest
|
||||
#
|
||||
# # Kernel modules required for iSCSI and multipath
|
||||
# kernel:
|
||||
# modules:
|
||||
# - name: iscsi_tcp
|
||||
# - name: dm_multipath
|
||||
# - name: dm_round_robin
|
||||
#
|
||||
# # Configure multipath.conf
|
||||
# files:
|
||||
# - path: /etc/multipath.conf
|
||||
# permissions: 0644
|
||||
# op: create
|
||||
# content: |
|
||||
# # Multipath configuration for Pure Storage FlashArray
|
||||
# blacklist {
|
||||
# devnode "^pxd[0-9]*"
|
||||
# devnode "^pxd*"
|
||||
# }
|
||||
#
|
||||
# defaults {
|
||||
# polling_interval 10
|
||||
# find_multipaths yes
|
||||
# user_friendly_names no
|
||||
# }
|
||||
#
|
||||
# devices {
|
||||
# # Pure FlashArray iSCSI devices
|
||||
# device {
|
||||
# vendor "PURE"
|
||||
# product "FlashArray"
|
||||
# path_selector "service-time 0"
|
||||
# hardware_handler "1 alua"
|
||||
# path_grouping_policy group_by_prio
|
||||
# prio alua
|
||||
# failback immediate
|
||||
# path_checker tur
|
||||
# fast_io_fail_tmo 10
|
||||
# user_friendly_names no
|
||||
# no_path_retry 0
|
||||
# features 0
|
||||
# dev_loss_tmo 600
|
||||
# }
|
||||
#
|
||||
# # Pure FlashArray NVMe-oF devices (if using NVMe-oF instead of iSCSI)
|
||||
# device {
|
||||
# vendor "NVME"
|
||||
# product "Pure FlashArray"
|
||||
# path_selector "queue-length 0"
|
||||
# path_grouping_policy group_by_prio
|
||||
# prio ana
|
||||
# failback immediate
|
||||
# fast_io_fail_tmo 10
|
||||
# user_friendly_names no
|
||||
# no_path_retry 0
|
||||
# features 0
|
||||
# dev_loss_tmo 60
|
||||
# }
|
||||
# }
|
||||
#
|
||||
# # udev rules for Pure Storage
|
||||
# - path: /etc/udev/rules.d/99-pure-storage.rules
|
||||
# permissions: 0644
|
||||
# op: create
|
||||
# content: |
|
||||
# # Pure Storage udev rules for FlashArray
|
||||
# # Queue depth settings for optimal performance
|
||||
#
|
||||
# # Set scheduler to none for Pure devices
|
||||
# ACTION=="add|change", KERNEL=="sd*[!0-9]", SUBSYSTEM=="block", \
|
||||
# ATTRS{vendor}=="PURE", ATTR{queue/scheduler}="none"
|
||||
#
|
||||
# # Set queue depth for Pure iSCSI devices
|
||||
# ACTION=="add|change", KERNEL=="sd*[!0-9]", SUBSYSTEM=="block", \
|
||||
# ATTRS{vendor}=="PURE", ATTR{queue/nr_requests}="256"
|
||||
#
|
||||
# # Set queue depth for Pure NVMe devices
|
||||
# ACTION=="add|change", KERNEL=="nvme*", SUBSYSTEM=="block", \
|
||||
# ATTRS{model}=="Pure*", ATTR{queue/nr_requests}="256"
|
||||
#
|
||||
# # Enable and configure iSCSI initiator
|
||||
# kubelet:
|
||||
# extraMounts:
|
||||
# - destination: /var/lib/iscsi
|
||||
# type: bind
|
||||
# source: /var/lib/iscsi
|
||||
# options:
|
||||
# - bind
|
||||
# - rshared
|
||||
# - rw
|
||||
#
|
||||
# NOTE: After applying Talos configuration changes:
|
||||
# 1. Reboot nodes if kernel modules were added
|
||||
# 2. Verify iSCSI initiator: talosctl -n <node> get service iscsi-initiator
|
||||
# 3. Verify multipath: talosctl -n <node> exec -- multipath -ll
|
||||
# 4. Check initiator name uniqueness: talosctl -n <node> read /etc/iscsi/initiatorname.iscsi
|
||||
|
||||
---
|
||||
# This marker prevents accidental application as a K8s resource
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: portworx-csi-talos-config-reference
|
||||
namespace: portworx
|
||||
annotations:
|
||||
description: "Reference only - do not apply. See comments for Talos patches."
|
||||
data:
|
||||
README: |
|
||||
This ConfigMap is a documentation artifact only.
|
||||
|
||||
The actual configuration must be applied via Talos MachineConfig
|
||||
using talhelper or talosctl.
|
||||
|
||||
See the comments in this file for the complete configuration.
|
||||
Reference in New Issue
Block a user