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