Skip to content

Instantly share code, notes, and snippets.

@nodirt
Created July 9, 2015 18:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nodirt/199bf82dab291f27de53 to your computer and use it in GitHub Desktop.
Save nodirt/199bf82dab291f27de53 to your computer and use it in GitHub Desktop.

Chrome Infra Configuration service (luci-config)

  • Owner: nodir@
  • Prod instance: luci-config.appspot.com

[TOC]

Overview

  • 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.

Project registry

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@.

Import

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) or infra/project-config dir of master 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.

Who uses it?

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment