right-size memory: set requests=limits based on actual usage

- Set memory requests = limits across 56 stacks to prevent overcommit
- Right-sized limits based on actual pod usage (2x actual, rounded up)
- Scaled down trading-bot (replicas=0) to free memory
- Fixed OOMKilled services: forgejo, dawarich, health, meshcentral,
  paperless-ngx, vault auto-unseal, rybbit, whisper, openclaw, clickhouse
- Added startup+liveness probes to calibre-web
- Bumped inotify limits on nodes 2,3 (max_user_instances 128->8192)

Post node2 OOM incident (2026-03-14). Previous kubelet config had no
kubeReserved/systemReserved set, allowing pods to starve the kernel.
This commit is contained in:
Viktor Barzin 2026-03-14 21:01:24 +00:00
parent 2c296d4d7c
commit f7c2c06009
58 changed files with 123 additions and 121 deletions

View file

@ -144,7 +144,7 @@ resource "kubernetes_deployment" "affine" {
memory = "256Mi"
}
limits = {
memory = "512Mi"
memory = "256Mi"
}
}
}
@ -182,7 +182,7 @@ resource "kubernetes_deployment" "affine" {
cpu = "50m"
}
limits = {
memory = "512Mi"
memory = "256Mi"
}
}

View file

@ -139,7 +139,7 @@ resource "kubernetes_deployment" "audiobookshelf" {
memory = "64Mi"
}
limits = {
memory = "512Mi"
memory = "64Mi"
}
}
}

View file

@ -48,11 +48,11 @@ resource "kubernetes_deployment" "blog" {
name = "blog"
resources {
limits = {
memory = "256Mi"
memory = "64Mi"
}
requests = {
cpu = "10m"
memory = "32Mi"
memory = "64Mi"
}
}
port {

View file

@ -205,9 +205,9 @@ resource "kubernetes_deployment" "calibre-web-automated" {
path = "/"
port = 8083
}
initial_delay_seconds = 30
period_seconds = 10
failure_threshold = 54
initial_delay_seconds = 60
period_seconds = 15
failure_threshold = 56
}
liveness_probe {
http_get {
@ -220,7 +220,7 @@ resource "kubernetes_deployment" "calibre-web-automated" {
resources {
requests = {
cpu = "50m"
memory = "256Mi"
memory = "512Mi"
}
limits = {
memory = "512Mi"
@ -338,7 +338,7 @@ resource "kubernetes_deployment" "annas-archive-stacks" {
resources {
requests = {
cpu = "10m"
memory = "192Mi"
memory = "384Mi"
}
limits = {
memory = "384Mi"

View file

@ -83,7 +83,7 @@ resource "kubernetes_deployment" "changedetection" {
memory = "128Mi"
}
limits = {
memory = "512Mi"
memory = "128Mi"
}
}
}
@ -122,7 +122,7 @@ resource "kubernetes_deployment" "changedetection" {
memory = "64Mi"
}
limits = {
memory = "256Mi"
memory = "64Mi"
}
}
}

View file

@ -48,11 +48,11 @@ resource "kubernetes_deployment" "city-guesser" {
name = "city-guesser"
resources {
limits = {
memory = "256Mi"
memory = "64Mi"
}
requests = {
cpu = "10m"
memory = "32Mi"
memory = "64Mi"
}
}
port {

View file

@ -145,11 +145,11 @@ resource "kubernetes_deployment" "claude-memory" {
resources {
requests = {
memory = "32Mi"
memory = "64Mi"
cpu = "10m"
}
limits = {
memory = "128Mi"
memory = "64Mi"
}
}
}

View file

@ -135,10 +135,10 @@ resource "kubernetes_deployment" "coturn" {
resources {
requests = {
cpu = "10m"
memory = "32Mi"
memory = "64Mi"
}
limits = {
memory = "128Mi"
memory = "64Mi"
}
}
}

View file

@ -58,10 +58,10 @@ resource "kubernetes_deployment" "cyberchef" {
resources {
requests = {
cpu = "10m"
memory = "32Mi"
memory = "64Mi"
}
limits = {
memory = "128Mi"
memory = "64Mi"
}
}
}

View file

@ -71,7 +71,7 @@ resource "kubernetes_deployment" "dashy" {
resources {
requests = {
cpu = "250m"
memory = "512Mi"
memory = "1Gi"
}
limits = {
memory = "1Gi"

View file

@ -148,10 +148,10 @@ resource "kubernetes_deployment" "dawarich" {
resources {
requests = {
cpu = "15m"
memory = "256Mi"
memory = "512Mi"
}
limits = {
memory = "1Gi"
memory = "512Mi"
}
}
}

View file

@ -179,10 +179,10 @@ resource "kubernetes_deployment" "diun" {
resources {
requests = {
cpu = "10m"
memory = "32Mi"
memory = "64Mi"
}
limits = {
memory = "128Mi"
memory = "64Mi"
}
}
}

View file

@ -55,7 +55,7 @@ resource "kubernetes_deployment" "echo" {
resources {
requests = {
cpu = "10m"
memory = "32Mi"
memory = "128Mi"
}
limits = {
memory = "128Mi"

View file

@ -79,7 +79,7 @@ resource "kubernetes_deployment" "excalidraw" {
resources {
requests = {
cpu = "10m"
memory = "16Mi"
memory = "64Mi"
}
limits = {
memory = "64Mi"

View file

@ -62,7 +62,7 @@ resource "kubernetes_deployment" "f1-stream" {
}
requests = {
cpu = "25m"
memory = "64Mi"
memory = "256Mi"
}
}
port {

View file

@ -100,10 +100,10 @@ resource "kubernetes_deployment" "forgejo" {
resources {
requests = {
cpu = "15m"
memory = "64Mi"
memory = "256Mi"
}
limits = {
memory = "512Mi"
memory = "256Mi"
}
}
port {

View file

@ -108,7 +108,7 @@ resource "kubernetes_deployment" "freshrss" {
memory = "64Mi"
}
limits = {
memory = "256Mi"
memory = "64Mi"
}
}
}

View file

@ -89,7 +89,7 @@ resource "kubernetes_deployment" "frigate" {
memory = "2Gi"
}
limits = {
memory = "8Gi"
memory = "8Gi"
"nvidia.com/gpu" = "1"
}
}

View file

@ -202,7 +202,7 @@ resource "kubernetes_deployment" "grampsweb" {
memory = "512Mi"
}
limits = {
memory = "2Gi"
memory = "512Mi"
}
}
}
@ -267,7 +267,7 @@ resource "kubernetes_deployment" "grampsweb" {
memory = "256Mi"
}
limits = {
memory = "1Gi"
memory = "256Mi"
}
}
}

View file

@ -125,7 +125,7 @@ resource "kubernetes_deployment" "hackmd" {
memory = "64Mi"
}
limits = {
memory = "512Mi"
memory = "64Mi"
}
}
}

View file

@ -96,11 +96,11 @@ resource "kubernetes_deployment" "health" {
resources {
requests = {
memory = "64Mi"
memory = "128Mi"
cpu = "15m"
}
limits = {
memory = "256Mi"
memory = "128Mi"
}
}
}

View file

@ -96,7 +96,7 @@ resource "kubernetes_deployment" "cache_proxy" {
container_port = 80
}
resources {
requests = { cpu = "10m", memory = "16Mi" }
requests = { cpu = "10m", memory = "64Mi" }
limits = { memory = "64Mi" }
}
volume_mount {

View file

@ -513,10 +513,10 @@ resource "kubernetes_deployment" "immich-machine-learning" {
resources {
requests = {
cpu = "100m"
memory = "1Gi"
memory = "2Gi"
}
limits = {
memory = "4Gi"
memory = "2Gi"
"nvidia.com/gpu" = "1"
}
}

View file

@ -54,10 +54,10 @@ resource "kubernetes_deployment" "isponsorblocktv-vermont" {
resources {
requests = {
cpu = "10m"
memory = "32Mi"
memory = "64Mi"
}
limits = {
memory = "256Mi"
memory = "64Mi"
}
}
}

View file

@ -65,7 +65,7 @@ resource "kubernetes_deployment" "kms-web-page" {
}
requests = {
cpu = "10m"
memory = "16Mi"
memory = "64Mi"
}
}
port {
@ -157,11 +157,11 @@ resource "kubernetes_deployment" "windows_kms" {
name = "windows-kms"
resources {
limits = {
memory = "128Mi"
memory = "64Mi"
}
requests = {
cpu = "10m"
memory = "32Mi"
memory = "64Mi"
}
}
port {

View file

@ -119,10 +119,10 @@ resource "kubernetes_deployment" "meshcentral" {
resources {
requests = {
cpu = "15m"
memory = "64Mi"
memory = "256Mi"
}
limits = {
memory = "512Mi"
memory = "256Mi"
}
}
volume_mount {

View file

@ -107,7 +107,7 @@ resource "kubernetes_deployment" "navidrome" {
memory = "64Mi"
}
limits = {
memory = "384Mi"
memory = "64Mi"
}
}
}

View file

@ -143,7 +143,7 @@ resource "kubernetes_deployment" "netbox" {
memory = "256Mi"
}
limits = {
memory = "1Gi"
memory = "256Mi"
}
}
port {

View file

@ -52,7 +52,7 @@ resource "kubernetes_deployment" "networking-toolbox" {
resources {
requests = {
cpu = "10m"
memory = "32Mi"
memory = "128Mi"
}
limits = {
memory = "128Mi"

View file

@ -73,7 +73,7 @@ resource "kubernetes_deployment" "novelapp" {
}
}
container {
image = "viktorbarzin/novelapp:1"
image = "mghee/novelapp:latest"
name = "novelapp"
image_pull_policy = "Always"
env {

View file

@ -121,10 +121,10 @@ resource "kubernetes_deployment" "ntfy" {
resources {
requests = {
cpu = "10m"
memory = "32Mi"
memory = "64Mi"
}
limits = {
memory = "128Mi"
memory = "64Mi"
}
}
}

View file

@ -271,7 +271,7 @@ resource "kubernetes_deployment" "ollama-ui" {
memory = "256Mi"
}
limits = {
memory = "1536Mi"
memory = "256Mi"
}
}
}

View file

@ -103,10 +103,10 @@ resource "kubernetes_deployment" "onlyoffice-document-server" {
resources {
requests = {
cpu = "100m"
memory = "512Mi"
memory = "3Gi"
}
limits = {
memory = "4Gi"
memory = "3Gi"
}
}
port {

View file

@ -603,7 +603,7 @@ resource "kubernetes_deployment" "openclaw" {
}
requests = {
cpu = "100m"
memory = "512Mi"
memory = "1536Mi"
}
}
}
@ -640,11 +640,11 @@ resource "kubernetes_deployment" "openclaw" {
}
resources {
limits = {
memory = "512Mi"
memory = "256Mi"
}
requests = {
cpu = "25m"
memory = "64Mi"
memory = "256Mi"
}
}
}
@ -879,7 +879,7 @@ resource "kubernetes_deployment" "task_webhook" {
resources {
requests = {
cpu = "5m"
memory = "32Mi"
memory = "64Mi"
}
limits = {
memory = "64Mi"
@ -1023,7 +1023,7 @@ resource "kubernetes_cron_job_v1" "cluster_healthcheck" {
memory = "64Mi"
}
limits = {
memory = "128Mi"
memory = "64Mi"
}
}
}
@ -1104,7 +1104,7 @@ resource "kubernetes_cron_job_v1" "task_processor" {
memory = "64Mi"
}
limits = {
memory = "128Mi"
memory = "64Mi"
}
}
}

View file

@ -94,7 +94,7 @@ resource "kubernetes_deployment" "osrm-foot" {
memory = "256Mi"
}
limits = {
memory = "1Gi"
memory = "256Mi"
}
}
}
@ -174,7 +174,7 @@ resource "kubernetes_deployment" "osrm-bicycle" {
memory = "256Mi"
}
limits = {
memory = "1Gi"
memory = "256Mi"
}
}
}
@ -258,7 +258,7 @@ resource "kubernetes_deployment" "otp" {
memory = "2Gi"
}
limits = {
memory = "4Gi"
memory = "2Gi"
}
}
}

View file

@ -116,7 +116,7 @@ resource "kubernetes_deployment" "owntracks" {
resources {
requests = {
cpu = "10m"
memory = "16Mi"
memory = "64Mi"
}
limits = {
memory = "64Mi"

View file

@ -131,10 +131,10 @@ resource "kubernetes_deployment" "paperless-ngx" {
resources {
requests = {
cpu = "50m"
memory = "512Mi"
memory = "1Gi"
}
limits = {
memory = "2Gi"
memory = "1Gi"
}
}

View file

@ -119,11 +119,11 @@ resource "kubernetes_deployment" "plotting-book" {
}
resources {
requests = {
memory = "32Mi"
memory = "64Mi"
cpu = "10m"
}
limits = {
memory = "256Mi"
memory = "64Mi"
}
}
}

View file

@ -151,10 +151,10 @@ resource "kubernetes_deployment" "poison_fountain" {
resources {
requests = {
cpu = "10m"
memory = "32Mi"
memory = "64Mi"
}
limits = {
memory = "128Mi"
memory = "64Mi"
}
}
}

View file

@ -70,10 +70,10 @@ resource "kubernetes_deployment" "privatebin" {
resources {
requests = {
cpu = "10m"
memory = "32Mi"
memory = "64Mi"
}
limits = {
memory = "256Mi"
memory = "64Mi"
}
}
}

View file

@ -213,7 +213,7 @@ resource "kubernetes_deployment" "realestate-crawler-api" {
memory = "64Mi"
}
limits = {
memory = "512Mi"
memory = "64Mi"
}
}
volume_mount {
@ -329,7 +329,7 @@ resource "kubernetes_deployment" "realestate-crawler-celery" {
memory = "512Mi"
}
limits = {
memory = "3Gi"
memory = "512Mi"
}
}
port {
@ -439,7 +439,7 @@ resource "kubernetes_deployment" "realestate-crawler-celery-beat" {
resources {
requests = {
cpu = "10m"
memory = "64Mi"
memory = "256Mi"
}
limits = {
memory = "256Mi"

View file

@ -83,7 +83,7 @@ resource "kubernetes_deployment" "printer" {
cpu = "25m"
}
limits = {
memory = "1536Mi"
memory = "128Mi"
}
}
@ -238,7 +238,7 @@ resource "kubernetes_deployment" "resume" {
cpu = "15m"
}
limits = {
memory = "384Mi"
memory = "64Mi"
}
}

View file

@ -112,10 +112,10 @@ resource "kubernetes_deployment" "clickhouse" {
resources {
requests = {
cpu = "500m"
memory = "512Mi"
memory = "1Gi"
}
limits = {
memory = "2Gi"
memory = "1Gi"
}
}
}
@ -302,10 +302,10 @@ resource "kubernetes_deployment" "rybbit" {
resources {
requests = {
cpu = "25m"
memory = "128Mi"
memory = "1Gi"
}
limits = {
memory = "512Mi"
memory = "1Gi"
}
}
}
@ -397,10 +397,10 @@ resource "kubernetes_deployment" "rybbit-client" {
resources {
requests = {
cpu = "10m"
memory = "64Mi"
memory = "192Mi"
}
limits = {
memory = "256Mi"
memory = "192Mi"
}
}
}

View file

@ -103,10 +103,10 @@ resource "kubernetes_deployment" "send" {
resources {
requests = {
cpu = "10m"
memory = "32Mi"
memory = "64Mi"
}
limits = {
memory = "256Mi"
memory = "64Mi"
}
}
}

View file

@ -69,7 +69,7 @@ resource "kubernetes_deployment" "shadowsocks" {
resources {
requests = {
cpu = "10m"
memory = "16Mi"
memory = "64Mi"
}
limits = {
memory = "64Mi"

View file

@ -121,7 +121,7 @@ resource "kubernetes_deployment" "speedtest" {
memory = "128Mi"
}
limits = {
memory = "512Mi"
memory = "128Mi"
}
}
volume_mount {

View file

@ -58,10 +58,10 @@ resource "kubernetes_deployment" "stirling-pdf" {
resources {
requests = {
cpu = "25m"
memory = "512Mi"
memory = "1536Mi"
}
limits = {
memory = "2Gi"
memory = "1536Mi"
}
}

View file

@ -158,7 +158,7 @@ resource "kubernetes_deployment" "tandoor" {
memory = "256Mi"
}
limits = {
memory = "1536Mi"
memory = "256Mi"
}
}
}

View file

@ -83,7 +83,7 @@ resource "kubernetes_deployment" "tor-proxy" {
memory = "64Mi"
}
limits = {
memory = "256Mi"
memory = "64Mi"
}
}
# volume_mount {
@ -177,7 +177,7 @@ resource "kubernetes_deployment" "torrserver" {
memory = "256Mi"
}
limits = {
memory = "1Gi"
memory = "256Mi"
}
}
readiness_probe {

View file

@ -145,7 +145,8 @@ resource "kubernetes_deployment" "trading-bot-frontend" {
}
}
spec {
replicas = 1
# Disabled: reduce cluster memory pressure (2026-03-14 OOM incident)
replicas = 0
strategy {
type = "RollingUpdate"
rolling_update {
@ -176,10 +177,10 @@ resource "kubernetes_deployment" "trading-bot-frontend" {
resources {
requests = {
cpu = "10m"
memory = "32Mi"
memory = "64Mi"
}
limits = {
memory = "128Mi"
memory = "64Mi"
}
}
}
@ -205,7 +206,7 @@ resource "kubernetes_deployment" "trading-bot-frontend" {
memory = "128Mi"
}
limits = {
memory = "512Mi"
memory = "128Mi"
}
}
}
@ -232,7 +233,8 @@ resource "kubernetes_deployment" "trading-bot-workers" {
}
}
spec {
replicas = 1
# Disabled: reduce cluster memory pressure (2026-03-14 OOM incident)
replicas = 0
strategy {
type = "Recreate"
}
@ -270,7 +272,7 @@ resource "kubernetes_deployment" "trading-bot-workers" {
memory = "64Mi"
}
limits = {
memory = "256Mi"
memory = "64Mi"
}
}
}
@ -296,7 +298,7 @@ resource "kubernetes_deployment" "trading-bot-workers" {
memory = "512Mi"
}
limits = {
memory = "2Gi"
memory = "512Mi"
}
}
}
@ -322,7 +324,7 @@ resource "kubernetes_deployment" "trading-bot-workers" {
memory = "64Mi"
}
limits = {
memory = "256Mi"
memory = "64Mi"
}
}
}
@ -348,7 +350,7 @@ resource "kubernetes_deployment" "trading-bot-workers" {
memory = "64Mi"
}
limits = {
memory = "256Mi"
memory = "64Mi"
}
}
}
@ -374,7 +376,7 @@ resource "kubernetes_deployment" "trading-bot-workers" {
memory = "64Mi"
}
limits = {
memory = "256Mi"
memory = "64Mi"
}
}
}
@ -400,7 +402,7 @@ resource "kubernetes_deployment" "trading-bot-workers" {
memory = "64Mi"
}
limits = {
memory = "256Mi"
memory = "64Mi"
}
}
}

View file

@ -48,11 +48,11 @@ resource "kubernetes_deployment" "blog" {
name = "travel-blog"
resources {
limits = {
memory = "256Mi"
memory = "64Mi"
}
requests = {
cpu = "10m"
memory = "32Mi"
memory = "64Mi"
}
}
port {

View file

@ -72,7 +72,7 @@ resource "kubernetes_deployment" "tuya-bridge" {
resources {
requests = {
cpu = "10m"
memory = "32Mi"
memory = "256Mi"
}
limits = {
memory = "256Mi"

View file

@ -145,7 +145,7 @@ resource "kubernetes_deployment" "shlink" {
}
requests = {
cpu = "25m"
memory = "128Mi"
memory = "512Mi"
}
}
port {
@ -275,11 +275,11 @@ resource "kubernetes_deployment" "shlink-web" {
}
resources {
limits = {
memory = "512Mi"
memory = "64Mi"
}
requests = {
cpu = "10m"
memory = "50Mi"
memory = "64Mi"
}
}
port {

View file

@ -130,8 +130,8 @@ resource "helm_release" "vault" {
readOnly = true
}]
resources = {
requests = { cpu = "10m", memory = "32Mi" }
limits = { memory = "64Mi" }
requests = { cpu = "10m", memory = "128Mi" }
limits = { memory = "128Mi" }
}
}]
}

View file

@ -105,10 +105,10 @@ resource "kubernetes_deployment" "wealthfolio" {
resources {
requests = {
cpu = "10m"
memory = "32Mi"
memory = "64Mi"
}
limits = {
memory = "128Mi"
memory = "64Mi"
}
}
}

View file

@ -110,11 +110,11 @@ resource "kubernetes_deployment" "webhook_handler" {
name = "webhook-handler"
resources {
limits = {
memory = "256Mi"
memory = "64Mi"
}
requests = {
cpu = "10m"
memory = "32Mi"
memory = "64Mi"
}
}
port {

View file

@ -81,10 +81,10 @@ resource "kubernetes_deployment" "whisper" {
resources {
requests = {
cpu = "25m"
memory = "256Mi"
memory = "1Gi"
}
limits = {
memory = "1536Mi"
memory = "1Gi"
}
}
}
@ -202,7 +202,7 @@ resource "kubernetes_deployment" "piper" {
memory = "64Mi"
}
limits = {
memory = "512Mi"
memory = "64Mi"
}
}
}

View file

@ -81,7 +81,7 @@ resource "kubernetes_deployment" "ytdlp" {
resources {
requests = {
cpu = "25m"
memory = "128Mi"
memory = "512Mi"
}
limits = {
memory = "512Mi"