Skip to main content

Deploying Eggplant DAI in Containers

This section provides guidance on how to install or upgrade Eggplant DAI on Kubernetes using Helm. Read this section before you complete the step-by-step instructions for your preferred installation mode:

  • Production mode - Uses an external PostgreSQL database and persistent storage for RabbitMQ and MinIO.
  • Quick trial mode - Uses ephemeral containers for PostgreSQL, RabbitMQ and MinIO.

Upgrade instructions are also available.

Important

Production mode is the only fully supported installation method. Quick trial mode is only intended for a simple test deployment and so there is no upgrade path for it.

Prerequisites

All Installations

You must have the following prerequisites in place for all installations:

  • A working Kubernetes cluster, along with the kubectl command-line tool which is:

    • Installed and configured to work with your cluster

    • Compatible with your cluster version.

      Run the following command to confirm that kubectl is working correctly:

      $ kubectl cluster-info
      Kubernetes master is running at https://cluster.example.com
  • The helm command-line tool. These instructions assume that you've installed Helm version 3.

  • Your Eggplant DAI license key. Contact your Eggplant representative if you do not have the license key.

Production Mode

If you're installing for production you also need:

  • The credentials, hostname, and port for an empty PostgreSQL database. The database username and the database name must match, and the user must have full control over the database. Eggplant recommends using PostgreSQL version 14.x and the application requires that the pgcrypto and uuid-ossp extensions are installed.

  • A persistent storage solution for the asset management and screenshot services.

Preparation

Complete these steps to prepare your working environment before installing Eggplant DAI.

Add the Eggplant Helm repository

Add the Eggplant Helm Chart repository to your Helm environment:

$ helm repo add eggplant https://charts.dai.eggplant.cloud

"eggplant" has been added to your repositories.

If you already have the repository, ensure that it is up to date:

helm repo update

Create a Kubernetes namespace

Eggplant DAI installs into a new namespace on your Kubernetes cluster. These instructions use dai as the namespace, but you can use another name if you prefer.

note

If you have multiple Kubernetes clusters, remember to select the cluster where you wish to install Eggplant DAI.

  1. Create the namespace:

    $ kubectl create namespace dai

    namespace/dai created
  2. Set the namespace as your current Kubernetes context:

    $ kubectl config set-context --current --namespace=dai

    Context modified

Install with Helm

Follow the appropriate instructions for your chosen installation mode:

Upgrading

Refer to the upgrade instructions.

Uninstalling Eggplant DAI

  1. Delete the Helm release to uninstall Eggplant DAI:

    $ helm delete dai

    release "dai" uninstalled

    This command deletes the Helm release previously installed as dai, leaving the Kubernetes namespace behind.

    Important

    If you used:

    • An internal database (quick trial) this is also removed.
    • An external database (production), removing DAI does not affect it.
  2. To also delete the namespace:

    $ kubectl delete namespaces dai
    namespace "dai" deleted

Troubleshooting

If you experience problems, you can view the Kubernetes event log:

kubectl get events --sort-by=.metadata.creationTimestamp

You can also view the logs from pods, e.g. using the following command:

kubectl logs <pod name>

If logs show database connectivity problems, verify the parameters in dai.yaml. You may also want to confirm that the database access works as expected, with the supplied credentials, e.g. using psql:

psql -h <database hostname> -U <database username>

If you experience problems when accessing Eggplant DAI on a browser, you can confirm the ingress configuration, including the hostname specified in the configuration file:

kubectl get ingresses

Support

Contact Eggplant Customer Support, if you require further assistance.