Introduction
Before you beginning the process of submitting your Item, make note of the following prerequisites:
- A basic understanding about how to structure text in YAML file format (checkout this introductory article)
- A hosting location for your Item, which supports versioning and is accessible from the public internet. Valid locations include, but are not limited to:
- Git repository
- Package repository
- Container registry
- Artifact registry
- Object storage
- Wiki site
Once you have taken care of these basic prerequisites, you can turn your attention to the Item itself. Whether your idea is in an early conceptualization state or fully implemented, take a moment to think about its purpose, the customization options that would improve reusability, the level of support you can offer, and the open-source license you wish to grant.
Choosing a License
Unless your Item has dependencies linked to GPL terms of use, or on the contrary, they are constrained by a proprietary license, you, as the Item owner, are free to choose a suitable open-source license under which to feature Items. For reference, EWC Items typically release under MIT or Apache 2.0 license.
Specifying a Support Level
The Community Hub recognizes four different support levels, one of which is reserved for Items featured by the EWC and its close partners. You, as the Item owner, are free to choose, from any of the remaining support levels, the one that best fits your availability and commitment:
Name | Audience | Summary | Examples |
---|---|---|---|
Community | For typical users or research groups sharing useful work | Item is shared by the owner but no commitment on the maintenance which is left on best-effort and community-supported | A GitHub repository with a permissive license but no maintainer commitment • An enriched dataset on atmospheric phenomena, updated at irregular interval and/or subject to data availability, without any formal commitment • A data pipeline template for various streaming analysis algorithms, regularly updated to support new datasets and increase throughput capabilities |
EWC | For Items featured by EWC partners (ECMWF, EUMETSAT, etc.) or trusted collaborators | Maintained by E&E | A one-click deployable software stack for self-managed identity/policy/audit (IPA), hardened SSH access point and remote desktop environment hosting |
Defining Deployability
Whether an Item is deployable or not depends mainly on the Item Technology. Find the full list of currently supported ones (see EWC Community Hub ).
Item is not Deployable
No additional action required.
Item is Deployable
If your Item is indeed deployable and you wish to feature it as such, please make sure to assess whether or not it works out-of-the-box in both of the EWC providers, namely:
- EUMETSAT site
- EWCMWF site
In the event deployments are only intended to work on one of the sites, or requires additional setup on one of them, please clearly disclaim as part of the Item metadata you submit. An statement on the Item's description is sufficient.
(Optional) Adding Compatibility with the ewccli
Before attempting to feature your Item as EWCCLI-compatible, please ensure you test and validate by carrying out a deployment via the ewccli. EWC review may refuse your submission if it is unclear if deployment via ewccli
is advertised but non-functional.
If you are convinced featuring your Item as compatible can greatly improve its reception among community members, but you are unsure how to conduct the necessary deployment tests, you can place a support ticket to request assistance.
If you meet all the criteria listed below, you might want to consider the benefits of adding compatibility for the ewccli
:
- Your Item is Deployable
- Your Item is an Ansible Playbook
- You lack expertise/resource/business-cases to turn your contribution into
Hybrid
Item (by combining it with Terraform to achieve self-provisioning, such as in the SSH Bastion Provisioning EWC item)
The ewccli
is a Linux-native Python-based tool which allows you to interact with deployable Items directly into a EWC tenancy, with minimal setup required on your local working environment. On paper, adding compatibility with the ewclid
does not require additional development effort on your side, as the business logic is built into the tool itself. All what is required is additional Item metadata to be prepared, namely:
- Inputs specification: If any available. May also include default values for each input.
- Output specification: If any available.
- Annotations:
annotations: others: "EWCCLI-compatible,Deployable"
For a complete Item Metadata example including full compatibility with the ewccli
checkout the example metadata of the "ECMWF Data Flavour" Item, published on GitHub.
Putting it all Together
Besides the information highlighted in the previous sections, Item usage information is recommended to increase the quality of your submission. To help both contributor and reviewers to categorize this information, we kindly ask you to fill in the Item Metadata structure the EWC Community Hub uses (YAML format). Take as example metadata of the "ECMWF Data Flavour" Item, published on GitHub. When preparing metadata for your own Item, we recommend you copy the content of said example YAML and adapt values accordingly.
("EWCWF Data Flavour" Item, published on GitHub)
Detailed information on all the supported metadata attributes, both required and optional, is also publicly available. The current version of the Items schema definition is hosted on GitHub, at https://github.com/ewcloud/ewc-community-hub/blob/main/schemas/items/v1alpha1.json.
If you are unfamiliar with YAML, or needed additional guidance to correctly annotate your Item, feel free to place a support ticket on the EWC Support Portal.
Best-Practices
Best-practices are not always well documented, and they tend to change. If you are not sure what is currently considered a best-practice, at least within the EWC community, we recommend you start here:
- Best-Practices of Community Hub Item Implementation: examples of EWC Items implementation, ranging from basic documentation format to CI/CD automation, all details broken down per Item Technology.