Comprehensive guide on adding a new service

Problem to solve

The instructions for adding a new service and its runbooks seem difficult to find.

The existing README files tend to be descriptive. They don't give clear, accessible instructions engineering groups would follow when adding a new service and its runbooks.

For example,

  • docs/README.md describes how files are organized, and says that they're generated from the service catalog. However, it doesn't say how to generate the files form the service catalog. It doesn't link to services/README.md.
  • services/README.md mentions service-catalog.yml but doesn't give simple instructions on editing this file and generating new README.md files. It gives details on JSON schema validation which most contributors don't need since schema validation already happens in the CI – something the README doesn't say.
  • Instructions on updating the metrics catalog seem to be a short Development section at the end metrics-catalog/README.md. That doesn't seem to be linked from the previous READMEs. It doesn't say that the service catalog needs to be updated first (based on reviewer's feedback in !8487 (comment 2791716571)).

Additionally, the main README.md doesn't say how to contribute new runbooks – or maybe this is not visible enough. It links to CONTRIBUTING.md, which doesn't cover that either.

Somehow related to this, there doesn't seem to be instructions on getting merge requests reviewed.

Proposal

Create a new doc page that gives instructions for adding a new service, along with its metrics, and its runbooks.

Surface that doc page in the parent README and in docs/README.md (published as https://runbooks.gitlab.com/). Refactor docs/README.md, and possibly other READMEs.

Edited by Fabien Catteau