Overview
In general, some good practices we recommend include:
- Documentation: Add a clear body of text with purpose, usage instructions, dependencies, easy to copy-paste examples, and troubleshooting steps for common issues.
- Versioning: Follow the semantic versioning 2.0.0 convention (see specification details).
- Inputs & Outputs: If deployable, adopt technology-specific standards for exposing the Item's inputs and outputs (e.g.
variables.tf
on Terraform,vars.yml
in Ansible, etc). - Testing: If executable, make sure the results of execution are consistent or reproducible between runs.
- Contribution Guidelines: If you are planning to accept contributions from other community members, is best to specify per writing which steps they should follow such that your collaborate is friction-free.
Example Repositories
You are encouraged to take inspiration or borrow from EWC Items and adopt similar implementation patterns, helping to increase the overall consistency of the Community Hub. Feel free to review the structure, README or CONTRIBUTING style, CI/CD automation, and dependencies of Items according to their technology classification, starting with examples such as:
- Terraform Module: OpenStack Compute Instance
- Ansible Playbook: EUMETSAT Data Tailor Flavour, ECMWF Data Flavour
- Hybrid: SSH Bastion Provisioning
Whenever possible reuse dependencies, especially those listed in EWC Items. These are well-maintained and versatile building blocks designed to perform only one task, but perform it in the best possible way. EWC building blocks are publicly available as GitHub repositories, at https://github.com/orgs/ewcloud/repositories.