- 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
62 lines
1.7 KiB
YAML
62 lines
1.7 KiB
YAML
# ------------------------------------------------------------------------------
|
|
# ExternalSecret for Pure Storage FlashArray Credentials
|
|
# Syncs from 1Password to create px-pure-secret
|
|
#
|
|
# This secret contains pure.json with FlashArray configuration:
|
|
# - Management endpoint
|
|
# - API token
|
|
# - NFS endpoint (if using file services)
|
|
#
|
|
# Expected 1Password structure:
|
|
# Vault: homelab
|
|
# Item: pure-flasharray-fastpass
|
|
# Field: pure.json (contains the full JSON configuration)
|
|
#
|
|
# The pure.json format:
|
|
# {
|
|
# "FlashArrays": [
|
|
# {
|
|
# "MgmtEndPoint": "flasharray.mk-labs.cloud",
|
|
# "APIToken": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
|
|
# "NFSEndPoint": "flasharray-nfs.mk-labs.cloud"
|
|
# }
|
|
# ]
|
|
# }
|
|
# ------------------------------------------------------------------------------
|
|
apiVersion: external-secrets.io/v1beta1
|
|
kind: ExternalSecret
|
|
metadata:
|
|
name: px-pure-secret
|
|
namespace: portworx
|
|
annotations:
|
|
argocd.argoproj.io/sync-wave: "1"
|
|
spec:
|
|
# Refresh interval
|
|
refreshInterval: 1h
|
|
|
|
# Reference to SecretStore (assumes ClusterSecretStore named "onepassword" exists)
|
|
secretStoreRef:
|
|
kind: ClusterSecretStore
|
|
name: onepassword
|
|
|
|
# Target secret specification
|
|
target:
|
|
name: px-pure-secret
|
|
creationPolicy: Owner
|
|
template:
|
|
type: Opaque
|
|
metadata:
|
|
labels:
|
|
app.kubernetes.io/name: portworx-csi
|
|
app.kubernetes.io/component: storage
|
|
data:
|
|
# The key must be "pure.json" - this is required by PX-CSI
|
|
pure.json: "{{ .pure_config | toString }}"
|
|
|
|
# Data to fetch from 1Password
|
|
data:
|
|
- secretKey: pure_config
|
|
remoteRef:
|
|
key: pure-flasharray-fastpass
|
|
property: pure.json
|