ECMWF ai-models β Helm Deployment#
This Helm chart deploys GenCast and Panguweather using ai-models library by ecmwf. It handles model setup, packaging, and inference in a fully containerized GPU environment.
First you need to get API key from The Climate Data Store (CDS) in order to download ERA5 dataset. Instructions for generating the key are available on the CDSAPI setup page. This CDS API Key should be added as a Kubernetes secret (cds-api-secret in our case).
NOTE: This workload requires the namespace to have this secret. Please work with your cluster administrator to make it available according to your clusterβs best practices
π§ Project Structure#
helm/
βββ Chart.yaml # Helm chart metadata
βββ values.yaml # Main config values (e.g. image, GPU)
βββ templates/ # Helm templates and helpers for deployment, config, etc.
β βββ _helpers.tpl # Helpers common to other helm charts in the repo
β βββ configmap.yaml
β βββ inference-job.yaml
βββ mount/ # Files mounted into the container via ConfigMap
β βββ grib_visualizer.py
β βββ README.md
β βββ setup_env.sh
β βββ rocm.patch
β βββ run_model.sh
βββ overrides/ # Optional values overrides
π Quickstart#
Deploy directly with:
helm template gencast ./helm | kubectl apply -f -
This sets up the pod, installs dependencies, downloads the model, runs inference, optionally profiles the run and writes outputs to the .grib file. Then visualizes the .grib files and writes everything to minio.
Script params#
Parameter |
Description |
Default |
|---|---|---|
|
|
|
|
Forecast lead time in hours |
|
|
Visualization (gifs) |
|
|
Directory for model outputs |
|
|
Log file directory |
|
|
Prediction output directory |
|
|
Auxiliary files directory |
|
|
Enable JAX profiling |
|
|
Number of ensemble members |
|
|
Date in YYYYMMDD format |
|
|
Time in HHMM format |
|
|
Mount directory for additional scripts |
|
|
MinIO bucket name for output storage |
|
|
Subdirectory/prefix added to upload paths |
|
Environment Variables#
Parameter |
Description |
Default |
|---|---|---|
|
MinIO access key ID |
(from secret: minio-credentials / minio-access-key) |
|
MinIO secret key |
(from secret: minio-credentials / minio-secret-key) |
|
MinIO or S3-compatible endpoint URI |
|
|
URL for the CDS API |
(from secret: cds-api-secret / url) |
|
Key for the CDS API |
(from secret: cds-api-secret / key) |