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:
121
cluster/platform/portworx-csi/storagecluster.yaml
Normal file
121
cluster/platform/portworx-csi/storagecluster.yaml
Normal file
@@ -0,0 +1,121 @@
|
||||
# ------------------------------------------------------------------------------
|
||||
# Portworx StorageCluster Custom Resource
|
||||
# Deployed by Portworx Operator to provision PX-CSI driver components
|
||||
#
|
||||
# This CR defines:
|
||||
# - PX-CSI version and configuration
|
||||
# - FlashArray backend storage type (iSCSI)
|
||||
# - Secret reference for FlashArray credentials
|
||||
# - CSI driver deployment parameters
|
||||
#
|
||||
# The Operator watches this CR and deploys:
|
||||
# - CSI controller (Deployment)
|
||||
# - CSI node driver (DaemonSet)
|
||||
# - Storage classes
|
||||
# - Monitoring components (optional)
|
||||
# ------------------------------------------------------------------------------
|
||||
apiVersion: core.libopenstorage.org/v1
|
||||
kind: StorageCluster
|
||||
metadata:
|
||||
name: px-cluster-fastpass
|
||||
namespace: portworx
|
||||
annotations:
|
||||
portworx.io/install-source: "helm"
|
||||
portworx.io/is-openshift: "false"
|
||||
spec:
|
||||
# Image configuration
|
||||
image: portworx/px-csi:3.2.0
|
||||
imagePullPolicy: IfNotPresent
|
||||
|
||||
# Cluster configuration
|
||||
kvdb:
|
||||
# Use internal KVDB (etcd embedded in PX-CSI for small clusters)
|
||||
internal: true
|
||||
|
||||
# Storage configuration
|
||||
storage:
|
||||
useAll: false
|
||||
devices: []
|
||||
# PX-CSI uses FlashArray as backend; no local devices needed
|
||||
journalDevice: null
|
||||
|
||||
# Network configuration
|
||||
network:
|
||||
# Use Kubernetes cluster network
|
||||
dataInterface: null
|
||||
mgmtInterface: null
|
||||
|
||||
# CSI configuration
|
||||
csi:
|
||||
enabled: true
|
||||
# Install CSI driver components
|
||||
installDriver: true
|
||||
|
||||
# Topology support (optional - disabled for initial deployment)
|
||||
topology:
|
||||
enabled: false
|
||||
|
||||
# Secret reference for FlashArray credentials
|
||||
# Created by ExternalSecret from 1Password
|
||||
cloudStorage:
|
||||
provider: "Pure"
|
||||
pure:
|
||||
# Reference to px-pure-secret containing pure.json
|
||||
secretRef: px-pure-secret
|
||||
|
||||
# Environment variables for PX-CSI
|
||||
env:
|
||||
# FlashArray SAN type - REQUIRED for block storage
|
||||
- name: PURE_FLASHARRAY_SAN_TYPE
|
||||
value: "ISCSI"
|
||||
|
||||
# Disable telemetry for homelab (can be enabled later)
|
||||
- name: PURE_DISABLE_TELEMETRY
|
||||
value: "true"
|
||||
|
||||
# Log level
|
||||
- name: LOG_LEVEL
|
||||
value: "info"
|
||||
|
||||
# Monitoring
|
||||
monitoring:
|
||||
# Prometheus metrics enabled
|
||||
prometheus:
|
||||
enabled: true
|
||||
exportMetrics: true
|
||||
|
||||
# Auto-update strategy
|
||||
updateStrategy:
|
||||
type: RollingUpdate
|
||||
rollingUpdate:
|
||||
maxUnavailable: 1
|
||||
|
||||
# Delete strategy
|
||||
deleteStrategy:
|
||||
type: Uninstall
|
||||
|
||||
# Placement configuration
|
||||
placement:
|
||||
nodeAffinity:
|
||||
requiredDuringSchedulingIgnoredDuringExecution:
|
||||
nodeSelectorTerms:
|
||||
- matchExpressions:
|
||||
- key: kubernetes.io/os
|
||||
operator: In
|
||||
values:
|
||||
- linux
|
||||
|
||||
# Tolerations for Talos nodes
|
||||
tolerations:
|
||||
- key: node-role.kubernetes.io/control-plane
|
||||
operator: Exists
|
||||
effect: NoSchedule
|
||||
|
||||
# Security
|
||||
security:
|
||||
enabled: false # Start with security disabled for initial setup
|
||||
|
||||
# Feature gates
|
||||
featureGates:
|
||||
# Enable CSI snapshots
|
||||
CSISnapshotController: "true"
|
||||
Reference in New Issue
Block a user