Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Introduction

Info

If you are unfamiliar with GitHub pull requests (PRs), open a ticket you may also submit the necessary information as a ticket on the EWC Support Portal.

To formally submit an initial version of your Item, or to request the indexing of a followup version, you must fill all required information (also known as Item metadata) and share it with the EWC team.

Item Metadata

Warning

The key, at the top of an item's metadata, must be unique and always match the value the attribute `name`.

Warning

A contact (email or URL) is required for successful submission.

...

We use YAML format to structure the required Item metadata. Take as example the metadata of the "ECMWF Data Flavour", extracted from the Community Hub catalog on GitHub:

Code Block
languageyaml
ecmwf-data-flavour:
  annotations:
    licenseTypetechnology: "Apache License 2.0Ansible Playbook"
    category: "Compute,Data Access"
    supportLevel: "EWC-Supportedsupported"
    technologylicenseType: "Apache Ansible PlaybookLicense 2.0"
  displayName: ECMWF Data Flavourothers: "Deployable,EWCCLI-compatible"
  description: |
    # ECMWF data flavour
    Includes the basic ECMWF software stack, with MARS client and an environment with ecCodes`ecCodes`, Metview, Earthkit and Aviso.
    # Usage Example
    usage:`Metview`, `Earthkit` and `Aviso`.
    
    Getting started
    ---------------
    
    * Clone or download the code from the source repository.
    * Install ansible and other dependencies. You may want to do it in its own virtual environment (`pip install -r requirements.txt`)
    * Fetch the external requirements
      ```bash
      $ ansible-galaxy role install -r requirements.yml roles/
      ```
    
    * Define your inventory in `inventory`
    * Run the apropriate playbook 
    bash
      ```bash
      $ ansible-playbook -i inventory ecmwf-data-flavour.yml
    #  Inputs```

    You may use the following ansible variables to customizecustomise this playbook:
    
    | Variable | Description | Type | Default | Required |
    |------|-------------|------|---------|----------|
    | reboot_if_required | Reboot the instance if required after an update. | `boolean`| `true` | no |
    | ecmwf_toolbox_env_wipe | Decide whether to wipe the environment if exists prior to a reinstallation. | `boolean` | `no` | no |
    | ecmwf_toolbox_env_wipe | Name of the environment containing the ECMWF toolbox. | `string` | `ecmwf-toolbox` | no |
    | ecmwf_toolbox_create_ipykernel | Create a system-wide kernel available. | `boolean` | yes | no |
    | conda_prefix | Prefix where conda is installed. | `string` | `/opt/conda` | no |
    | conda_user | User owning the conda installation. | `string` | `root` | no |
  
    Example usage:
  
    ```bash
    ansible-playbook -i inventory ecmwf-data-flavour.yml
    ```
    
    Author
    ------------------
    ECMWF for the European Weather Cloud
    
    <img src="https://climate.copernicus.eu/sites/default/files/inline-images/ECMWF.png"  width="120px" height="120px"> 
    
    ![ewc logo](https://europeanweather.cloud/sites/default/files/images/cloud-data-network-SW-v3.png){width=120px  height=120px}

  displayName: ECMWF Data Flavour
  ewccli:
    inputs:
      - name: reboot_if_required
        default: true
        description: Boolean to reboot the instance if required after an update. Default
        type: truebool
      - name: ecmwf_toolbox_env_wipe
        default: false
        description: Boolean to decide whether to wipe the environment if exists prior to a reinstallation. Default
        type: falsebool
      - name: ecmwf_toolbox_env_name
        default: "ecmwf-toolbox"
        description: Name of the environment containing the ECMWF toolbox. Default: ecmwf-toolbox

        type: str
      - name: ecmwf_toolbox_create_ipykernel
        default: true
        description: Boolean to create a system-wide kernel available. Default
        type: truebool
      - name: conda_prefix
        default: "/opt/conda"
        description: Prefix where conda is installed. Default: /opt/conda
        type: str
      - name: conda_user
        default: "root"
        description: User owning the conda installation. Default
        type: rootstr
   home pathToMainFile: https://github.com/ewcloud/ewc-flavoursplaybooks/ecmwf-data-flavour/ecmwf-data-flavour.yml
  licensehome: https://github.com/ewcloud/ewc-flavours/blob/main/LICENSE/tree/2.0.0/playbooks/ecmwf-data-flavour
  icon: https://raw.githubusercontent.com/ewcloud/ewc-community-hub/refs/heads/main/logos/EWCLogo.png
  license: https://github.com/ewcloud/ewc-flavours/blob/2.0.0/LICENSE
  published: true
  maintainers:
    - name: EWC Team
      email: support@ewcloud.int
      url: https://github.com/ewcloud/ewc-flavours/issues
  name: "ecmwf-data-flavour"
  published: false
  sources:
    - https://github.com/ewcloud/ewc-flavours/blob/main/playbooks/ecmwf-data-flavour/ecmwf-data-flavour.yml.git
  summary: It Includesincludes the basic ECMWF software stack, with MARS client and an environment with ecCodes`ecCodes`, Metview`Metview`, Earthkit`Earthkit` and Aviso`Aviso`.
  version: "12.0.0"

Submission Steps

Once you have all the required information at hand, you may proceed to:

...