-
Notifications
You must be signed in to change notification settings - Fork 20
Description
Hi!
First of all, thanks for the great work on the Renovate Operator!
Current Behavior
When clicking on Logs in the Web UI for a Renovate job, the operator fetches the logs directly from the associated Kubernetes Pod.
This works perfectly while the job is still running.
However, if jobTTLSecondsAfterFinished is configured, Kubernetes deletes the Job (and therefore the Pod) after the TTL expires. As a result:
- The Pod is deleted
- The logs are no longer available
- The Web UI cannot display logs for previous runs
Problem
In environments where jobTTLSecondsAfterFinished is enabled (which is a reasonable cleanup strategy), historical logs of Renovate runs are lost shortly after completion.
This makes troubleshooting or reviewing past runs difficult, especially if issues are discovered later.
Proposed Enhancement
It would be great if the Renovate Operator could persist the logs of the last job runs independently of the Kubernetes Job lifecycle.
For example:
- After a job completes, the operator could retrieve and store the logs.
- Logs could be persisted in a lightweight storage backend (e.g. SQLite).
- The Web UI would then fetch logs from this internal storage instead of directly from the Pod when the Pod no longer exists.
Possible Implementation Ideas
- Store logs per Renovate CR (e.g., last run, maybe with timestamps and status).
- Keep only the most recent run to avoid unbounded storage growth.
- Make log persistence configurable (enabled/disabled/storage path).
- Optionally support a configurable retention policy (e.g., number of runs or time-based retention).
Benefits
- Logs remain available even when jobTTLSecondsAfterFinished is enabled.
- Better observability and debugging of past Renovate runs.
- Cleaner Kubernetes clusters without sacrificing log visibility.
If this idea aligns with the project direction, I’d be happy to help further clarify requirements or discuss possible approaches.
Thanks!