You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Next »

Introduction

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.


name

Item Metadata

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


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" below, extracted from the Community Hub catalog on GitHub. Furthermore, if you wish to check all the supported metadata fields, find the current version of the catalog schema on GitHub, at https://github.com/ewcloud/ewc-community-hub/blob/main/schemas/items/v1alpha1.json.

ecmwf-data-flavour:
  annotations:
    technology: "Ansible Playbook"
    category: "Compute,Data Access"
    supportLevel: "EWC-supported"
    licenseType: "Apache License 2.0"
    others: "Deployable,EWCCLI-compatible"
  description: |
    Includes the basic ECMWF software stack, with MARS client and an environment with `ecCodes`, `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
      $ ansible-playbook -i inventory ecmwf-data-flavour.yml
      ```

    You may use the following ansible variables to customise 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.
        type: bool
      - name: ecmwf_toolbox_env_wipe
        default: false
        description: Boolean to decide whether to wipe the environment if exists prior to a reinstallation.
        type: bool
      - name: ecmwf_toolbox_env_name
        default: "ecmwf-toolbox"
        description: Name of the environment containing the ECMWF toolbox.
        type: str
      - name: ecmwf_toolbox_create_ipykernel
        default: true
        description: Boolean to create a system-wide kernel available.
        type: bool
      - name: conda_prefix
        default: "/opt/conda"
        description: Prefix where conda is installed.
        type: str
      - name: conda_user
        default: "root"
        description: User owning the conda installation.
        type: str
    pathToMainFile: playbooks/ecmwf-data-flavour/ecmwf-data-flavour.yml
  home: https://github.com/ewcloud/ewc-flavours/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"
  sources:
    - https://github.com/ewcloud/ewc-flavours.git
  summary: It includes the basic ECMWF software stack, with MARS client and an environment with `ecCodes`, `Metview`, `Earthkit` and `Aviso`.
  version: "2.0.0"

Submission Steps

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

  1. Fork the EWC Community Hub repository
  2. Append your metadata to the catalog file, named items.yaml
  3. Validate your metadata (see details on the "Schema Validation" section of repository's README file)
  4. Submit the metadata by opening a pull request, between your fork and the main branch of official repository
  5. If you have submitted via pull request, assign one or two of the official repository maintainers for review

OR

Open a support ticket on the EWC Support Portal, including the metadata of your Item (in the aforementioned format), and let a support engineer open the pull request on your behalf.

Related Articles



  • No labels