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.ymlbut doesn't give simple instructions on editing this file and generating newREADME.mdfiles. 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
Developmentsection 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.