[PR #67] [MERGED] fix: resolve cluster health audit findings #293
Labels
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
webgrip/homelab-cluster#293
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/webgrip/homelab-cluster/pull/67
Author: @Ryangr0
Created: 5/22/2026
Status: ✅ Merged
Merged: 5/22/2026
Merged by: @Ryangr0
Base:
main← Head:fix/cluster-health-audit-findings📝 Commits (1)
136cce3fix: resolve cluster health audit findings📊 Changes
4 files changed (+26 additions, -10 deletions)
View changed files
📝
kubernetes/apps/cnpg-system/plugin-barman-cloud/app/helmrelease.yaml(+7 -0)📝
kubernetes/apps/observability/kube-prometheus-stack/app/helmrelease.yaml(+1 -0)📝
kubernetes/apps/renovate/renovate-operator/jobs/job-cleanup.cronjob.yaml(+2 -2)📝
kubernetes/components/cnpg-monitoring/prometheus-rules.yaml(+16 -8)📄 Description
Summary
Four concrete fixes surfaced by the cluster health audit agent run on 2026-05-22.
Changes
1.
renovate/job-cleanupCronJob — daily failure fixedRoot cause (two bugs):
postBuild.substituteFromonks-jobs.yamlsilently erased${ttl_days}→ empty string (not acluster-secretskey)date(alpine/k8s image) does not support GNU-d "-3 days"syntaxFix: Replace with pure POSIX epoch arithmetic — no shell
${VAR}syntax, no GNU date dependency:The cleanup job will now succeed and prune stale Renovate Jobs older than 3 days.
2. Alertmanager Discord notifications — unblocked
Root cause:
RenovateProjectDependencyIssuesfires for 5 repos simultaneously. Alertmanager groups them into one Discord message. The{{ range .Alerts }}template outputs full descriptions for each alert, exceeding Discord's 4096-char limit. Alertmanager had been silently dropping all warning/critical notifications for 9+ hours.Fix: Add
max_alerts: 5to the Discord route. Notifications will be capped at 5 alerts per message; remaining alerts surface on the next interval.3.
CNPGRestoreTestStale/CNPGRestoreTestFailed— false-positive alerts silencedRoot cause: The restore-test CronJobs are intentionally
suspend: truewhile CNPG disaster-recovery clusters are hibernated. The PrometheusRule fired unconditionally, treating suspended CronJobs as "stale".Fix: Add
unless on (namespace) kube_cronjob_spec_suspend{cronjob="cnpg-restore-test"} == 1to both alert expressions. Alerts only fire when the CronJob is actually running and overdue.4.
plugin-barman-cloud— resource limits addedContext: The barman-cloud plugin deployment had 177 restarts over 37 days with no resource limits set. Periodic crashes cause the
cnpg-disaster-recoveryclusters to hit "context deadline exceeded" when CNPG tries to discover the plugin.Fix: Add
requests: 64Mi/limits: 256Mito prevent unconstrained memory growth.Testing
bash -nNot fixed in this PR
testLonghorn volume — manual cleanup via Longhorn UI🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.