From 5163403e24510cac67a36f319b52ab12c6054b42 Mon Sep 17 00:00:00 2001 From: Scooby Husky Date: Sun, 15 Mar 2026 23:00:48 -0500 Subject: [PATCH] Scale down non-critical replicas for homelab resource savings MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- apps/argocd/values.yaml | 2 +- apps/gitlab/manifests/pgbouncer-pooler.yaml | 2 +- apps/gitlab/values.yaml | 16 ++++++++-------- .../guacamole/manifests/deployment-complete.yaml | 4 ++-- .../authentik/manifests/ext-authz-proxy.yaml | 2 +- infrastructure/cert-manager/values.yaml | 2 +- infrastructure/kiali/manifests/kiali-cr.yaml | 2 +- infrastructure/kyverno/values.yaml | 2 +- .../netbird/manifests/cluster-router.yaml | 2 +- infrastructure/prometheus/values.yaml | 5 ++--- infrastructure/scylla/operator-values.yaml | 2 +- 11 files changed, 20 insertions(+), 21 deletions(-) diff --git a/apps/argocd/values.yaml b/apps/argocd/values.yaml index 66409be..bb3c5d0 100644 --- a/apps/argocd/values.yaml +++ b/apps/argocd/values.yaml @@ -56,7 +56,7 @@ configs: g, Scooby, role:admin server: - replicas: 2 + replicas: 1 extraArgs: - --insecure # TLS is terminated at Istio gateway diff --git a/apps/gitlab/manifests/pgbouncer-pooler.yaml b/apps/gitlab/manifests/pgbouncer-pooler.yaml index 2f5ac5b..db90f42 100644 --- a/apps/gitlab/manifests/pgbouncer-pooler.yaml +++ b/apps/gitlab/manifests/pgbouncer-pooler.yaml @@ -70,7 +70,7 @@ spec: cluster: name: pg-gitlab - instances: 3 + instances: 1 type: ro # Read-Only pooler (connects to replicas) diff --git a/apps/gitlab/values.yaml b/apps/gitlab/values.yaml index 954d1ef..5b60f60 100644 --- a/apps/gitlab/values.yaml +++ b/apps/gitlab/values.yaml @@ -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 diff --git a/apps/guacamole/manifests/deployment-complete.yaml b/apps/guacamole/manifests/deployment-complete.yaml index ec2f8b0..7719999 100644 --- a/apps/guacamole/manifests/deployment-complete.yaml +++ b/apps/guacamole/manifests/deployment-complete.yaml @@ -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 diff --git a/infrastructure/authentik/manifests/ext-authz-proxy.yaml b/infrastructure/authentik/manifests/ext-authz-proxy.yaml index 6dcd041..fc199a6 100644 --- a/infrastructure/authentik/manifests/ext-authz-proxy.yaml +++ b/infrastructure/authentik/manifests/ext-authz-proxy.yaml @@ -93,7 +93,7 @@ metadata: labels: app: ext-authz-proxy spec: - replicas: 2 + replicas: 1 selector: matchLabels: app: ext-authz-proxy diff --git a/infrastructure/cert-manager/values.yaml b/infrastructure/cert-manager/values.yaml index 25c6482..8db5dfa 100644 --- a/infrastructure/cert-manager/values.yaml +++ b/infrastructure/cert-manager/values.yaml @@ -1,6 +1,6 @@ --- installCRDs: true -replicaCount: 3 +replicaCount: 1 global: leaderElection: diff --git a/infrastructure/kiali/manifests/kiali-cr.yaml b/infrastructure/kiali/manifests/kiali-cr.yaml index f9f3395..9903181 100644 --- a/infrastructure/kiali/manifests/kiali-cr.yaml +++ b/infrastructure/kiali/manifests/kiali-cr.yaml @@ -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" diff --git a/infrastructure/kyverno/values.yaml b/infrastructure/kyverno/values.yaml index b88c5f8..9b409d8 100644 --- a/infrastructure/kyverno/values.yaml +++ b/infrastructure/kyverno/values.yaml @@ -13,7 +13,7 @@ admissionController: enabled: true backgroundController: - replicas: 2 + replicas: 1 resources: limits: memory: 256Mi diff --git a/infrastructure/netbird/manifests/cluster-router.yaml b/infrastructure/netbird/manifests/cluster-router.yaml index efc7a4a..53b731f 100644 --- a/infrastructure/netbird/manifests/cluster-router.yaml +++ b/infrastructure/netbird/manifests/cluster-router.yaml @@ -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 diff --git a/infrastructure/prometheus/values.yaml b/infrastructure/prometheus/values.yaml index c244026..258e2b2 100644 --- a/infrastructure/prometheus/values.yaml +++ b/infrastructure/prometheus/values.yaml @@ -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: diff --git a/infrastructure/scylla/operator-values.yaml b/infrastructure/scylla/operator-values.yaml index 12a3610..2d9522b 100644 --- a/infrastructure/scylla/operator-values.yaml +++ b/infrastructure/scylla/operator-values.yaml @@ -1,6 +1,6 @@ # infrastructure/scylla/operator-values.yaml # Scylla Operator -replicas: 2 +replicas: 1 logLevel: 2 webhook: