autoconfigbrancher
autoconfigbrancher
is a tool that reconciles various parts of CI config
in openshift/release repository.
What it does
autoconfigbrancher
runs a sequence of other tools over a working copy of
the openshift/release repository. Each of these tools maintains some subset of
the CI configuration and can change it to some desired state. If the whole sequence results in changes,
autoconfigbrancher
submits or updates a PR that propagates these changes to the repository. This PR is configured to
be automatically merged (does not need a human approval).
(subject to bitrot, always consult the code)
- ci-operator-yaml-creator: ensures
that repositories with in-repo
.ci-operator.yaml
file use build_root.from_repository: true
in their ci-operator
configs
- registry-replacer: ensures that all builds
specified in ci-operator configs use a local cluster registry (replaces central registry pullspecs with local
ImageStreamTag references)
- config-brancher: propagates ci-operator
config changes from
master
/main
configs to future release branches
- ci-operator-config-mirror:
propagates ci-operator config changes to private forks in
openshift-priv
organization
- determinize-ci-operator: loads and
saves ci-operator config to fix ordering, formatting etc
- ci-operator-prowgen: generates Prow job
configuration from ci-operator configuration
- private-prow-configs-mirror:
propagates Prow configuration changes to private forks in
openshift-priv
organization
- determinize-prow-config: loads
and saves Prow configuration to fix ordering, formatting, proper sharding etc
- sanitize-prow-jobs: loads and saves Prow
job configuration to fix ordering, formatting etc. This tool also assigns jobs to build farm clusters.
- clusterimageset-updater: updates
cluster pool manifests to use the latest stable OCP releases
Why it exists
Over time, we wrote a number of tools that automatically maintain parts of the CI config
in openshift/release so that we do not need to do so as humans. After some
time, it was annoying to write a PR-creation capability for each tool separately and set up a periodic job for it, so we
started to add new tools as "steps" to the most mature of them (auto-config-brancher
was originally a tool that simply
ran config-brancher, committed the changes and
submitted a PR).
How it works
It iterates over a (hardcoded) sequence of steps that each calls one of the tools that modify some part of the CI
config. After each step, if there are changes in the config, the changes are committed. If there was at least one new
commit, the new series of commits is pushed into a new or existing PR using
the bumper
package from test-infra
.
How is it deployed
The periodic
job periodic-prow-auto-config-brancher (definition)
uses autoconfigbrancher
to
create PRs in openshift/release
.