- Owner: nodir@
- Prod instance: luci-config.appspot.com
[TOC]
- Stores a registry of projects (clients) and chrome infra services
- Gathers configuration files scattered across repositories and provides unified API to discover and read them.
- Validates config files
Non-chromium detailed documentation can be found on GitHub. This page explains specifics of chromium's instance.
Projects that want to use CQ or BuildBucket must be registered in projects.cfg.
Send a CL or file a bug to nodir@ or sergiyb@.
Luci-config imports config files from Gitiles every 10 min:
- Service configs are imported from infradata/config repo
- Project configs are imported from project repositories. They are either in
the root of
infra/config
branch (example: infra.git) orinfra/project-config
dir ofmaster
branch (example: chromium/src.git) - Ref configs are typically imported from
infra/config
directory of a branch.
ConfigSet->Location mapping can be found by calling get_mapping API.
- CQ reads cq.cfg files, dicovers projects and reads a list of builders to trigger
- BuildBucket reads cr-buildbucket.cfg, discovers and registers buckets.
- CIA reads its configs and updates its internal state.
- Chrome infra console plans to read
access
field of project metadata to learn who can access project's monitoring data.
- luci-config validates its owns configs.
- chrome-infra-auth and buildbucket expose a metadata endpoint that specify that they can validate their configs. The metadata endpoints are registed in servies/luci-config:services.cfg. Luci-Config disovers and talks to them to delegate the validation.
Invalid configs are NOT imported into luci-config. Entire config set revision (all files) is rejected if at least one file is invalid. Services that consume configs through luci-config are guaranteed not to receive invalid configs, as long as they make backward-compatible changes to validation code.
As of 2015-07-09 an, when an invalid config is not imported, an error is emitted in luci-config logs and ereporter2 sends an email to config-ereporeter2-config group with max an hour latency. The plan is to implement presubmit check for configs through luci-config API, and maybe send an email to a commit author.