- 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
122 lines
3.0 KiB
YAML
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"
|