Files
Scooby HuskyandClaude Opus 4.6 5163403e24 Scale down non-critical replicas for homelab resource savings
Reduce replicas to 1 for workloads that don't need HA in a homelab:
- Prometheus 2→1, Alertmanager 2→1 (~4.4GB RAM saved)
- cert-manager 3→1
- GitLab: registry 2→1, kas 2→1, sidekiq 2→1, praefect 2→1,
  pgbouncer-ro 3→1
- Guacamole + guacd 2→1
- Kiali 2→1, ArgoCD server 2→1
- Kyverno background-controller 2→1
- Scylla operator 2→1
- ext-authz-proxy 2→1, netbird-cluster-router 2→1

Kept multi-replica: coredns, envoy-gateway, kyverno admission,
vault, argocd-repo-server, gitlab-webservice, istiod, rook-ceph CSI.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 23:00:48 -05:00

89 lines
2.8 KiB
YAML

# values/prometheus.values.yaml
# Prometheus Operator configuration
prometheus:
prometheusSpec:
replicas: 1
# Reduce retention to lower I/O on shared NVMe storage
retention: 7d
storageSpec:
volumeClaimTemplate:
spec:
storageClassName: rook-ceph-block
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20Gi
# Enable ServiceMonitor discovery across all namespaces
# NOTE: empty {} is falsy in Go templates, so the chart falls back to
# requiring release: <release-name> label. Setting NilUsesHelmValues=false
# ensures the empty selector matches ALL monitors.
serviceMonitorSelector: {}
serviceMonitorSelectorNilUsesHelmValues: false
serviceMonitorNamespaceSelector: {}
podMonitorSelector: {}
podMonitorSelectorNilUsesHelmValues: false
podMonitorNamespaceSelector: {}
# Mount Talos client certificates
secrets:
- talos-client-cert
# Additional scrape configurations for Talos
# NOTE: Talos apid endpoint at port 50000 returns HTTP 415 errors with Prometheus v2.x
# This is a known compatibility issue between Talos v1.10.x and modern Prometheus
# The issue is that Prometheus sends Accept headers for content negotiation that
# Talos apid doesn't understand. Workarounds require a reverse proxy or using kubelet.
# For now, Talos metrics are disabled. Node metrics are still available via kubelet.
additionalScrapeConfigs: []
# DISABLED - Talos apid scraping (returns 415 Unsupported Media Type)
# - job_name: 'talos-apid'
# honor_timestamps: true
# scrape_interval: 30s
# scrape_timeout: 10s
# metrics_path: /metrics
# scheme: https
# scrape_protocols: []
# enable_http2: false
# enable_compression: false
# tls_config:
# ca_file: /etc/prometheus/secrets/talos-client-cert/ca.crt
# cert_file: /etc/prometheus/secrets/talos-client-cert/client.crt
# key_file: /etc/prometheus/secrets/talos-client-cert/client.key
# insecure_skip_verify: false
# kubernetes_sd_configs:
# - role: node
# relabel_configs:
# - source_labels: [__address__]
# regex: '(.*):.*'
# replacement: '${1}:50000'
# target_label: __address__
# - source_labels: [__meta_kubernetes_node_name]
# target_label: node
# Ingress disabled - Istio VirtualService handles routing
ingress:
enabled: false
alertmanager:
enabled: true
alertmanagerSpec:
replicas: 1
# Disable node-exporter due to PodSecurity restrictions
prometheus-node-exporter:
enabled: false
# Enable kube-state-metrics for Kubernetes object metrics
kube-state-metrics:
enabled: true
# Grafana (included in kube-prometheus-stack)
grafana:
enabled: false # We deploy Grafana separately