Files
homelab/cluster/platform/portworx-csi/storagecluster.yaml
Hermes Agent service account 459dbc5d18 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
2026-06-18 23:08:29 -05:00

122 lines
3.0 KiB
YAML

# ------------------------------------------------------------------------------
# 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"