A "project" now refers to an application deployed into Kubernetes, which
includes one or more "images." This is really the grouping I wanted in
the beginning, which I tried to achieve using separate configuration
files. Unfortunately, this made the original "projects" too
independent, making it difficult to produce the manifest diff I wanted
to add to the PR descriptions. It was also cumbersome managing multiple
config files and therefore multiple CronJobs in Kubernetes.
The new data model is a lot deeper than the original one, making TOML a
lot less nice. YAML definitely handles nested data structures better,
despite its shortcomings. Having to repeat nested table names in TOML
is quite cumbersome.
infra/updatebot/pipeline/head This commit looks goodDetails
Repositories on Docker Hub often have images we do not want to consider
when determining the "latest" version of an application, such as
non=container images, development/testing versions, etc. To exclude
these, project sources can now define a `version_re` property that
contains a regular expression. Images that do not match the expression
will be ignored.
Naturally, there will be times when `updatebot` runs and there are no
changes to make, because the deployed applications are already
up-to-date. In this scenario, we need to avoid making empty commits and
attempting to create a PR with no changes.
The `repo.branch` configuration setting controls the branch of the
repote repository to check out. It is also used as the target
branch name for the Gitea pull request.