Skip to content

fix: cap systemd journal to 500M on all Linux hosts#290

Merged
swares merged 7 commits into
mainfrom
fix/journald-size-cap
Jul 23, 2026
Merged

fix: cap systemd journal to 500M on all Linux hosts#290
swares merged 7 commits into
mainfrom
fix/journald-size-cap

Conversation

@swares

@swares swares commented Jul 23, 2026

Copy link
Copy Markdown
Owner

Root cause of monitoring outage 2026-07-23: n150-1 root disk hit 91% from 4.1G unbounded journal → DiskPressure → mass eviction of monitoring namespace.

Fixed by manual vacuum (3.5G freed) and this playbook wiring a permanent cap.

swares added 7 commits July 23, 2026 14:53
- ExternalSecret pulls groq-api-key + gemini-api-key from secret/lab/cloud-ai
- Deployment mounts litellm-cloud-ai Secret as env vars
- ConfigMap adds 'cloud' model group (llama-3.3-70b-versatile + gemini-2.0-flash)
- Router fallbacks: chat → cloud, chat-cpu → cloud on any failure
- NetworkPolicy allows litellm HTTPS egress to public internet for cloud APIs
- Authelia: add bypass rules for /v1/ and /health/ on ai.apps.lab.home.arpa
- ai-gateway ingress: add authelia-forwardauth middleware
- SSO.md: move LiteLLM to Completed
Captures work done and deferred across the 2026-07-14–23 sessions:
- healthchecks.io dead-man's switch (5 checks)
- Groq + Gemini cloud fallback in LiteLLM
- LiteLLM ForwardAuth SSO via Authelia
- Kyverno PolicyExceptions cleanup
- lldap SQLite backup wired
- OVMS / Vault OIDC / rknpu / offsite Track 2 deferred with rationale
- Current lab state snapshot
Add awscli install and a tofu-state copy step to backup-cloud.yml.
Before the nightly restic snapshot, the script now pulls the tofu-state
bucket from MinIO (using root creds from Vault secret/lab/minio) into
$TMPDIR, which restic then includes in the R2 snapshot.

MinIO creds are written to /etc/restic/cloud.env alongside the existing
R2 credentials so no separate env file is needed.

aws s3 cp overrides AWS_ACCESS_KEY_ID/SECRET with the MinIO root creds
for that one call; the rest of the script uses the R2 creds from the
EnvironmentFile as before.
Unbounded journal growth on n150-1 caused disk pressure (91% of 49G
root) → kubelet evicted all monitoring namespace pods including Grafana,
Alertmanager, and Prometheus (2026-07-23).

Adds a journald drop-in (SystemMaxUse=500M, SystemKeepFree=1G) and
vacuums existing journals on first run. Targets all:!x86_nodes:!embedded:!standalone_vms.
@swares
swares merged commit 72e43ba into main Jul 23, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant