Deploying Ephemeral with Helm

To deploy Tonic Ephemeral, you use Helm charts. The OCI reference for the Ephemeral chart is oci://quay.io/tonicai/ephemeral. The Ephemeral repository is at https://quay.io/repository/tonicai/ephemeral.

During the onboarding process, Tonic.ai provides you with access credentials for the Quay repository, which gives you access to the charts and application images.

Obtaining the Helm chart configuration

To access the Helm chart assets, you first authenticate Helm to Quay:

helm registry login quay.io

After you authenticate, download the configuration template to a .yaml file.

helm show values oci://quay.io/tonicai/ephemeral --version <ephemeral-version> <yaml-file>

For --version, you must provide the full version number. The repository Tag History lists the available Ephemeral versions.

The .yaml file contains the Helm chart configuration. It is typically named values.yaml.

The following example downloads the configuration template for version 1.062.0 to values.yaml.

helm show values oci://quay.io/tonicai/ephemeral --version 1.062.0 > values.yaml

Configuring the Helm chart

To configure Ephemeral, you edit values.yaml.

Before you deploy Ephemeral, you must configure the following Helm chart values:

Option name
Description

environmentName

Free text that is used to label Ephemeral assets such as databases or log files. For example, ACME_WEB_QA.

dockerConfigAuth

ephemeralDatabase

ephemeralVersion

The Ephemeral version, which is expressed as a 3-digit string. For example, for the full version number 1.062.0, ephemeralVersion is 062.

ingress

ephemeralWeb.annotaions

ephemeralDatabase

To configure the connection information for the Ephemeral application database:

ephemeralDatabase:
  host: <database-host-DNS-or-IP-address> # For example, myEphemeralDBServer.acme.com
  port: <database-service-port> # For PostgreSQL, usually 5432 
  dbName: <database-name>
  user: <username-for-database-access>
  password: <database-password>
  sslMode: disable|allow|prefer|require|verify-ca|verify-full 

For details about the sslMode options, go to the PostgreSQL SSL documentation.

ingress

To allow external access to the Ephemeral web application, set ingress.enable to true, then configure the ingress.

Different environments - such as Amazon Elastic Kubernetes Service (Amazon EKS), Google Kubernetes Engine (GKE), or Azure Kubernetes Service (AKS) - have different annotation options.

The following example shows the required options for GKE. For help with other environments, contact Tonic.ai support.

ingress:
  enabled: true|false
  annotations: {
    # Environment specific annotations. Below is an example for GKE.
    # References a named static IP address
    # and specificies the ingress class.
    kubernetes.io/ingress.global-static-ip-name: tonic-ephemeral,
    kubernetes.io/ingress.class: "gce",
  }
  labels: {}
  host: ""
  className: <INGRESS_CONTROLLER_TYPE> # For example, nginx or gce 

ephemeralWeb.annotations

Ephemeral web server or API access might require specific annotations.

In the following example, the configuration ensures that GKE correctly recognizes https traffic.

ephemeral_web:
  annotations: {
    cloud.google.com/app-protocols: '{"https":"HTTPS"}'
  }

Installing Ephemeral

To install Ephemeral:

helm install -n <your-namespace> ephemeral oci://quay.io/tonicai/ephemeral --version 1.<ephemeral-version>.0 -f values.yaml

To monitor the progress of the installation:

kubectl get all -n <your-namespace>.

The ephemeral-web pod should be in the running state.

If you enabled ingress, then to check the ingress state:

kubectl describe ingress/ephemeral-web -n <your-namespace>

The Address field contains any expected external address. For example:

The Ephemeral web service should be accessible at http://<ingress-IP-address>.

If you have specific requirements related to ingress or SSL, contact Tonic.ai support.

Upgrading Ephemeral

To upgrade to a newer version of Ephemeral:

helm upgrade -n <your-namespace> ephemeral oci://quay.io/tonicai/ephemeral --version 1.<ephemeral-version>.0 -f values.yaml

Last updated