How to operate Renovate¶
This guide covers the recurring operational tasks for the Renovate bot.
All commands target the kup6s cluster; set your context with --context kup6s.
Trigger a manual run¶
The bot runs nightly, but you can trigger it on demand.
Use cronjob/renovate for the kup6s/dp repositories or cronjob/renovate-helix for the heidi repositories:
kubectl --context kup6s -n renovate create job renovate-manual --from=cronjob/renovate
kubectl --context kup6s -n renovate wait --for=condition=complete --for=condition=failed job/renovate-manual --timeout=600s
kubectl --context kup6s -n renovate logs job/renovate-manual
Delete the manual job when you are done, so the name is free for the next run:
kubectl --context kup6s -n renovate delete job renovate-manual
Force a rate-limited update¶
When a repository already has prConcurrentLimit open merge requests, further updates wait under Rate-Limited in that repository’s Dependency Dashboard issue.
To release one now, open the Dependency Dashboard issue and select the checkbox next to the update. Renovate creates the merge request on its next run.
To raise the cap instead, edit prConcurrentLimit in the repository’s renovate.json.
Rotate a group access token¶
Each instance authenticates with its own GitLab group access token, and every token expires yearly. Rotate a token before expiry:
In GitLab, open the instance’s group —
kup6s/dpfor keygitlab-token,heidifor keygitlab-token-heidi— and select .Create a token named
renovate-botwith the Developer role and theapiscope.Patch the source secret’s key with the new value. The secret holds several keys, so patch — do not recreate it:
kubectl --context kup6s -n application-secrets patch secret renovate-secrets-source \ --type merge -p '{"stringData":{"gitlab-token":"NEW_TOKEN"}}'
ESO refreshes
renovate-secretswithin its refresh interval; the next run uses the new token.Revoke the old token in GitLab.
Investigate a failed build¶
A merge request that changes only config.yaml, with no manifests/ diff, means the postUpgradeTasks build failed.
Read the run logs and look for
artifactErrors:kubectl --context kup6s -n renovate logs job/renovate-manual | grep -A3 artifactErrorsReproduce the exact command in the Renovate image against a fresh clone:
kubectl --context kup6s -n renovate run repro --rm -i --restart=Never \ --image=renovate/renovate:43.263.9-full --command -- bash -lc ' cd /tmp && git clone -q https://oauth2:TOKEN@git.bluedynamics.eu/kup6s/dp/dp-infra.git cd /tmp/dp-infra && sh -c "cd myapp && npm ci && npm run build"'
Common causes are a missing committed imports/ directory, a missing cdk8s-cli dependency, or a command that does not match allowedCommands.
Refer to Renovate configuration reference for the build prerequisites.
Note
A build that fails because a major version genuinely breaks the code is expected behavior, not a bot fault. Do not merge such an update; the failed build is the signal to hold it.
Respond to the staleness alert¶
RenovateRunStale fires per CronJob when it has not succeeded for more than 36 hours; the cronjob label names the affected instance.
Check the recent jobs and the last run’s logs:
kubectl --context kup6s -n renovate get jobs
kubectl --context kup6s -n renovate logs job/<most-recent-job>
A stale run usually means an expired token, a GitLab outage, or a repository-wide config error.