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>
This commit is contained in:
Scooby Husky
2026-03-15 23:00:48 -05:00
co-authored by Claude Opus 4.6
parent fa23e5084c
commit 5163403e24
11 changed files with 20 additions and 21 deletions
+1 -1
View File
@@ -56,7 +56,7 @@ configs:
g, Scooby, role:admin
server:
replicas: 2
replicas: 1
extraArgs:
- --insecure # TLS is terminated at Istio gateway
+1 -1
View File
@@ -70,7 +70,7 @@ spec:
cluster:
name: pg-gitlab
instances: 3
instances: 1
type: ro # Read-Only pooler (connects to replicas)
+8 -8
View File
@@ -140,8 +140,8 @@ minio:
registry:
enabled: true
hpa:
minReplicas: 2
maxReplicas: 2
minReplicas: 1
maxReplicas: 1
resources:
requests:
cpu: 25m
@@ -238,8 +238,8 @@ gitlab:
# GitLab KAS (Kubernetes Agent Server) - enabled for Kubernetes cluster integration
kas:
enabled: true
minReplicas: 2
maxReplicas: 2
minReplicas: 1
maxReplicas: 1
resources:
requests:
cpu: 25m
@@ -270,8 +270,8 @@ gitlab:
# Praefect - Gitaly Cluster routing and transaction manager
praefect:
enabled: true
minReplicas: 2
maxReplicas: 2
minReplicas: 1
maxReplicas: 1
# Note: Praefect PostgreSQL config is in global.praefect.psql
@@ -303,8 +303,8 @@ gitlab:
# Sidekiq background jobs
sidekiq:
minReplicas: 2
maxReplicas: 2
minReplicas: 1
maxReplicas: 1
# Note: hostAliases applied via helmfile postsync hook
@@ -13,7 +13,7 @@ metadata:
app: guacamole
component: client
spec:
replicas: 2
replicas: 1
strategy:
type: RollingUpdate
rollingUpdate:
@@ -159,7 +159,7 @@ metadata:
app: guacamole
component: guacd
spec:
replicas: 2
replicas: 1
selector:
matchLabels:
app: guacamole
@@ -93,7 +93,7 @@ metadata:
labels:
app: ext-authz-proxy
spec:
replicas: 2
replicas: 1
selector:
matchLabels:
app: ext-authz-proxy
+1 -1
View File
@@ -1,6 +1,6 @@
---
installCRDs: true
replicaCount: 3
replicaCount: 1
global:
leaderElection:
+1 -1
View File
@@ -9,7 +9,7 @@ spec:
deployment:
namespace: istio-system
cluster_wide_access: true
replicas: 2
replicas: 1
pod_labels:
sidecar.istio.io/inject: "true"
istio.io/dataplane-mode: "none"
+1 -1
View File
@@ -13,7 +13,7 @@ admissionController:
enabled: true
backgroundController:
replicas: 2
replicas: 1
resources:
limits:
memory: 256Mi
@@ -28,7 +28,7 @@ metadata:
labels:
app.kubernetes.io/name: netbird-cluster-router
spec:
replicas: 2
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: netbird-cluster-router
+2 -3
View File
@@ -3,8 +3,7 @@
# Prometheus Operator configuration
prometheus:
prometheusSpec:
# High availability with 2 replicas
replicas: 2
replicas: 1
# Reduce retention to lower I/O on shared NVMe storage
retention: 7d
@@ -74,7 +73,7 @@ prometheus:
alertmanager:
enabled: true
alertmanagerSpec:
replicas: 2
replicas: 1
# Disable node-exporter due to PodSecurity restrictions
prometheus-node-exporter:
+1 -1
View File
@@ -1,6 +1,6 @@
# infrastructure/scylla/operator-values.yaml
# Scylla Operator
replicas: 2
replicas: 1
logLevel: 2
webhook: