docs/adrs/security-updates-automation.md
Date: 2022-11-24
Accepted
The current process of keeping third-party dependencies and container images up to date is manual and time consuming, which makes us lack behind upstream updates. This leads to K3s sometimes shipping outdated dependencies and images that can introduce security issues (CVEs) in our code and in users environments. A process is needed to automate the discovery of updates and PRs, so developers don't need to spend valuable time with manual tasks that can be easily automate.
The basic requirements that we need for such automation regarding the tooling are:
ENV vars in Dockerfiles and by matching regular expressions.There are well known free and/or open-source tools available for this kind of automation:
.github/dependabot.yml file.renovate.json.conditions.Each tool has its strong points and a combination of them will be required.
| Features x Tool | Dependabot | Renovate | Updatecli |
|---|---|---|---|
| Provides pull request automation | ✅ | ✅ | ✅ |
| Minimal configuration required for bumping major packages ecosystems | ✅ | ✅ | ⚪ |
| Minimal integration required (no GH app or token) | ✅ | ⚪ | ⚪ |
| Supports version bumps in unstructured formats | ⚪ | ✅ | ✅ |
| Supports orchestrating updates | ⚪ | ⚪ | ✅ |
| Offers greater extensibility | ⚪ | ⚪ | ✅ |
Based on the evaluated context, we decided to use Dependabot and Updatecli for automating version and security bumps.