Files
homelab/cluster/platform/pure-exporter/deployment.yaml
Hermes Agent service account cb5ffc16d8 Add Pure FlashArray OpenMetrics exporter to monitoring namespace
- Deploy purestorage/pure-fa-om-exporter:v1.0.27 container
- Configure API token secret for utilidor FlashArray (jarvis user)
- Expose /metrics endpoint via ClusterIP service on port 9490
- ServiceMonitor for kube-prometheus-stack auto-discovery
- ArgoCD application for GitOps deployment (wave 3)
- Scrape interval: 60s (storage metrics low frequency)
- Resource limits: 200m CPU / 128Mi memory

Provides pure_* metrics namespace for FlashArray capacity, performance,
volume stats, host connectivity, etc.
2026-06-19 17:48:20 -05:00

91 lines
2.4 KiB
YAML

# ------------------------------------------------------------------------------
# Pure FlashArray OpenMetrics Exporter - Deployment
#
# Provides Prometheus-scrapable metrics from Pure Storage FlashArray
# Polls FlashArray API and exposes /metrics endpoint for Prometheus ServiceMonitor
#
# Container: quay.io/purestorage/pure-fa-om-exporter (official image)
# Port: 9490 (standard exporter port)
# Config: tokens.yaml mounted from Secret
# ------------------------------------------------------------------------------
apiVersion: apps/v1
kind: Deployment
metadata:
name: pure-fa-exporter
namespace: monitoring
labels:
app.kubernetes.io/name: pure-fa-exporter
app.kubernetes.io/component: metrics
app.kubernetes.io/part-of: monitoring
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: pure-fa-exporter
template:
metadata:
labels:
app.kubernetes.io/name: pure-fa-exporter
app.kubernetes.io/component: metrics
spec:
containers:
- name: exporter
image: quay.io/purestorage/pure-fa-om-exporter:v1.0.27
imagePullPolicy: IfNotPresent
# Command args - point to tokens file
args:
- --port=9490
- --tokens=/etc/pure-exporter/tokens.yaml
ports:
- name: metrics
containerPort: 9490
protocol: TCP
# Resource limits (exporter is lightweight)
resources:
requests:
cpu: 50m
memory: 64Mi
limits:
cpu: 200m
memory: 128Mi
# Health checks
livenessProbe:
httpGet:
path: /
port: metrics
initialDelaySeconds: 10
periodSeconds: 30
timeoutSeconds: 5
readinessProbe:
httpGet:
path: /
port: metrics
initialDelaySeconds: 5
periodSeconds: 10
timeoutSeconds: 5
# Mount tokens.yaml from secret
volumeMounts:
- name: tokens
mountPath: /etc/pure-exporter
readOnly: true
volumes:
- name: tokens
secret:
secretName: pure-fa-exporter-token
items:
- key: tokens.yaml
path: tokens.yaml
# Security context
securityContext:
runAsNonRoot: true
runAsUser: 65534
fsGroup: 65534