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