Style Guides for Ops

I think it would be a good idea to have a published style guide for our infrastructure code. There is a bit of freedom when it comes to writing the code (Puppet DSL, ruby, YAML, etc) that describes the infrastructure and sometimes it becomes difficult to merge pull requests from otherwise enthusiastic contributors without stating up-front how we expect that code to be written.

I think it would help to have a “template” repository to contain our guides. We could have :

  • PR templates
  • CI templates (Travis, testing strategies, expected coverage, etc)
  • Ansible style guides
  • README style guides

etc.
I propose all of this to go into operations-style.egi.eu, which could be built from github.com/EGI-Foundation/OpsStyle

We could go so far to create a few cookie cutters for EGI…

:+1:

I think too that enforcing code quality, style and documentation is appropriate. When possible it would be good to refer to existing appropriate/spread standard or practices to ease adoption.

I’m working on Ansible Style Guide. It is starting with a modified Ansible Galaxy init to make our roles pass linting by default.

The style guide is mostly going to be in the AnsibleSyntax.md file there, but we can add a bunch of nice things like, how to write tests, how to re-use roles, how to ask for pull request reviews, how to publish the roles with DOI in Zenodo, etc. I also want to put in a few :github: templates for issues, code of conduct, etc. This will really help in setting up new roles, and harmonising the use of them.

See the Motivation in the README.md