Deploying the App Store
Depending on your DNS/Kubernetes Ingress setup, Deploying AI App Store can be as simple as:
$ helm upgrade --install h2oaic h2oaicloud \
--set config.address=https://appstore.<yourdomain> \
This command uses Helm to deploy the App Store in a hello-world style deployment, including all the required dependencies, such as a PostgreSQL database and Keycloak as the OIDC provider, ready to go.
If you have questions or want to discuss deployments in your environment, please contact email@example.com.
App Store server deployment
The App Store is designed to run as a highly-available replicated Kubernetes deployment. A typical deployment consist of the following resources:
Two service accounts are required for this deployment: One for the App Store itself, and one for Wave apps launched by the App Store.
H2O AI Cloud stores sensitive information such as passwords, client secrets, etc. as Kubernetes secrets.
Exposes the App Store frontend. This service needs to be exposed via an Ingress to the end users.
The App Store service needs to be exposed under a wildcard DNS entry/TLS cert (e.g.,
*.wave.h2o.ai). This is because the App Store uses the subdomains for exposing the individual app instances (i.e.,
The main configuration file for App Store server is defined as a TOML file in a Kubernetes ConfigMap.
The App Store server can de deployed as a replicated Kubernetes deployment with a single server container in each pod.
The App Store server also requires a PostgreSQL database (>=11.0). Even though it is possible to deploy the database directly in Kubernetes (e.g., using the PostgreSQL helm chart), it is recommended to use a hosted cloud service.
Persistent Volume or Object Storage Bucket
The App Store needs a storage for large objects, such as app bundles. For ease of deployment in test environments, the App Store can use a Kubernetes Persistent Volume. The recommended storage is, however, a cloud object storage bucket, such as AWS S3 or Azure Blob Storage.
Wave App deployment
Each Wave application instance is deployed by the App Store using a helm chart. This helm chart is populated automatically given the values of the app.toml configuration file, as described in the Developer guide
Each app is deployed as a 1-pod Kubernetes deployment with ClusterIP service and optional Config Map or Persistent Volume Claim(s).
The pod runs a single generic container image with App Store Launcher as the main process. See Overview for details on the Launcher.