Skip to main content
Version: Release 23.1

Install Wizard for Digital.ai Release and Remote Runner

  • Here's a list of questions that you would have to answer to install Digital.ai Deploy or Release or Remote Runner using the xl kube install command.
  • While some of the following questions are common for Deploy or Release or Remote Runner, some are relevant only for Deploy or Release or Remote Runner and that has been called out in the descriptions accordingly.
  • You must select one of the available options for some of the questions.
  • Use the arrow keys to move up or down and press enter to select an option.

Important: We highly recommend you to go through the xl kube workshop to gain a comprehensive understanding on how to install or upgrade Digital.ai Deploy or Release or Remote Runner on a kubernetes cluster and how it can benefit you.

Installation Wizard

Here's a list of questions that you would have to answer to install Digital.ai Release or Remote Runner using the xl kube install command.

Here's the list of questions

Confirm the kubectl Context

Prompt? Following kubectl context will be used during execution: <kubectl-context/username>? (Y/n)
Prompt valid for—platformEKSAKSGKEOpenShift on AWSPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYes
Available valueskubectl current context
Default valuekubectl current context
RemarksConfirm the kubectl context to proceed.

Choose a Kubernetes Platform

Prompt? Select the Kubernetes setup where the Digital.ai Devops Platform will be installed, updated or cleaned:
Prompt valid for—platformEKSAKSGKEOpenShift on AWSPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYes
Available valuesOpenshift [Openshift]
AWSEKS [AWS EKS]
PlainK8s [Plain multi-node K8s cluster]
AzureAKS [Azure AKS]
GoogleGKE [Google Kubernetes Engine]
Default valueOpenshift [Openshift]
RemarksYou must have your cluster ready before you select an answer for this prompt.

Choose a Kubernetes Namespace

Important: If you want to enable the TLS protocol in your cluster, you must have the TLS secret created in the namespace before you start the installation or upgrade. This means that you must have created the namespace and the TLS secret already. Use the same namespace when you answer this prompt.

Prompt? Do you want to use an custom Kubernetes namespace (current default is digitalai): [? for help] (y/N)
Prompt valid for—platformEKSAKSGKEOpenShift on AWSPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYes
Available valuesNA
Default valuedigitalai
RemarksType the name of a custom namespace where you want to install or upgrade Deploy or Release or go with the default namespace, which is digitalai.
If you are going to enable the TLS protocol in your cluster, you must have created the namespace and the TLS secret already. Use the same namespace where you have the TLS secret created.

Choose the Product to Install

Prompt? Product server you want to perform install for [Use arrows to move, enter to select, type to filter, ? for more help]
Prompt valid for—platformEKSAKSGKEOpenShift on AWSPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYes
Available valuesdaiRelease [Digital.ai Release]
daiDeploy [Digital.ai Deploy]
dai-release-runner [Remote Runner for Digital.ai Release]
Default valuedaiRelease [Digital.ai Release]
RemarksSelect a product—Digital.ai Release or Digital.ai Deploy or Remote Runner for Digital.ai Release

Important: The following prompt (Select Type of Image Registry) is specific to installing Remote Runner and will not be available when you install Release.

Select Type of Image Registry

PromptSelect type of image registry (current default is default): [? for help] (xebialabs)
Prompt valid for—platformEKSAKSGKEOpenShift on AWSPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYes
Available valuesNA
Default valuedefault
RemarksType the image repository. It is recommended to go with the default, which is xebialabs. This is specific to Remote Runner.

Enter the Repository Name

Prompt? Enter the repository name (eg: <repositoryName> from <repositoryName>/<imageName>:<tagName>): [? for help] (xebialabs)
Prompt valid for—platformEKSAKSGKEOpenShift on AWSPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYes
Available valuesNA
Default valuexebialabs
RemarksType the repository name. It is recommended to go with the default, which is xebialabs

Enter the Image Name

Prompt? Enter the image name (eg: <imageName> from <repositoryName>/<imageName>:<tagName>): [? for help]
Prompt valid for—platformEKSAKSGKEOpenShift on AWSPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYes
Available values(xl-release)
(xl-deploy)
(xlr-remote-runner)
Default value(xl-release) or (xl-deploy) or (xlr-remote-runner)

Depending on the product you chose to install earlier, the default value would either be xl-release or xl-deploy or xlr-remote-runner for Digital.ai Release, Deploy, and Remote Runner respectively.
RemarksType the name of the image you want to use for installation.

Enter the Image Tag

The xl kube install and xl kube upgrade wizards let you go with the default (latest) docker image tags available when you install or upgrade Digital.ai Deploy or Release or Remote Runner. However, here are the Docker Hub links to verify all the the available image tags.

Prompt? Enter the image tag (eg: <tagName> from <repositoryName>/<imageName>:<tagName>): [? for help]
Prompt valid for—platformEKSAKSGKEOpenShift on AWSPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYes
Available valuesNA
Default valueThe latest release available in the repository, for example 23.1.0
RemarksType the product version number you want to install, for example, 23.1.0 or 22.3.0 or 0.1.34.

Important: The next 3 prompts are specific to installing Remote Runner and will not be available when you install Release.

Enter the Remote Runner Helm Chart path

Prompt? Enter the Remote Runner Helm Chart path (URL or local path): [? for help]
Prompt valid for—platformEKSAKSGKEOpenShift on AWSPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYes
Available valuesNA
Default valueNA
RemarksEnter the Helm chart path of the Remote Runner. This is specific to Remote Runner.

Enter the Release URL used by Remote Runner

Prompt? Enter the Release URL that will be used by the remote runner: [? for help]
Prompt valid for—platformEKSAKSGKEOpenShift on AWSPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYes
Available valuesNA
Default valueNA
RemarksEnter the Release URL that will be used by remote runner. This is specific to Remote Runner.

Enter the Release Token used by Remote Runner

Prompt? Enter the Release Token that will be used by remote runner: [? for help]
Prompt valid for—platformEKSAKSGKEOpenShift on AWSPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYes
Available valuesNA
Default valueNA
RemarksEnter the Release Token that will be used by remote runner. This is specific to Remote Runner.

Enter the Release Server Replica Count

Prompt? Enter the release server replica count: [? for help] (3)
Prompt valid for—platformEKSAKSGKEOpenShift on AWSPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYes
Available valuesNA
Default value3
RemarksType the number of Release server replicas you want.

Enter the PVC Size for Release

Prompt? Enter PVC size for Release (Gi): [? for help] (8)
Prompt valid for—platformEKSAKSGKEOpenShift on AWSPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYes
Available valuesNA
Default value8
RemarksType the persistent volume claim (PVC) size for Release.

Select Access Modes

Prompt? Select between supported Access Modes: [Use arrows to move, enter to select, type to filter, ? for more help]
Prompt valid for—platformEKSAKSGKEOpenShift on AWSPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYes
Available valuesReadWriteOnce [ReadWriteOnce]
ReadWriteMany [ReadWriteMany]
Default value for ReleaseReadWriteMany [ReadWriteMany]
Default value for DeployReadWriteOnce [ReadWriteOnce]
RemarksSelect the access mode.

Tip: Before you enable HTTP2 for Release, you must understand its prerequisites. For detailed information and understanding, read through the Enable HTTP2 to Install Digital.ai Release on Kubernetes Cluster page.

Important: If you want to enable the HTTP2, you must create the keystore file in pkcs12 (p12) format before you start the installation or upgrade. Additionally, you must create a secret, if you are going to use the secret to provide the keystore file. For more information, see the Configuring Keystore for Release Server to Enable HTTP2 section in Enable HTTP2 to Install Digital.ai Release on Kubernetes Cluster page.

Enable HTTP2

Prompt? Do you want to enable http2 for release: [? for help] (y/N)
Prompt valid for—platformEKSAKSGKEOpenShift on AWSPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYes
Available valuesNA
Default valueNo
RemarksSelect Yes to enable HTTP2 or No otherwise. The default is No. If you want to enable HTTP2, keep the server keystore secret handy to enter at the next prompt.
For the Release server to start with HTTP2, an external ingress type needs to be selected. Additionally, an IngressClass resource must be configured to handle HTTP2 backend of the Release server.

Important: The next 4 prompts are enabled when you enable Http2 to install Release.

Select Source of the Keystore

Before you complete this step, see the Configuring Keystore for Release Server to Enable HTTP2 section in Enable HTTP2 to Install Digital.ai Release on Kubernetes Cluster page.

Prompt Select source of the keystore for the server: [Use arrows to move, type to filter, ? for more help]
Prompt valid for—platformEKSAKSGKEOpenShift on AWSPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYes
Available valuesfile [Path to the keystore file (the file can be in the raw format or base64 encoded)]
editor [Copy/Paste the keystore to editor (the content needs to be base64 encoded)]
secret [Generic Secret containing keystore file with key as ssl-keystore.p12].
Default valuefile [Path to the keystore file (the file can be in the raw format or base64 encoded)]
RemarksIf you have an existing keystore file in p12 format, you can either choose to type in the path of the Release server keystore file.
Copy and paste the base64 encoded string of keystore file in the editor.
Select the generic secret created for the ssl-keystore.p12 file

Keystore File for the Server

Important: The keystore file must be in pkcs12 (p12) format.

Prompt? Provide keystore file for the server: [? for help]
Prompt valid for—platformEKSAKSGKEOpenShift on AWSPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYes
Available valuesNA
Default valueNA
RemarksA keystore file for the server is used to securely store the private keys. Here, it indicates that the keystore file for the server is received.

Tip: The keystore password and keystore key passphrase are generated after running the openssl command. Keep these handy. For more information, see the see the Create Keystore and Certificate Using OpenSSL section in Enable HTTP2 to Install Digital.ai Release on Kubernetes Cluster page.

Server Keystore Password

Prompt? Provide the server keystore password: [? for help]
Prompt valid for—platformEKSAKSGKEOpenShift on AWSPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYes
Available valuesNA
Default valueNA
RemarksA server keystore password is used to protect the keystore file and its contents from unauthorized access. Here, enter the server keystore password.

Server Keystore Key Passphrase

Note: This step is optional.

Prompt? Provide the server keystore key passphrase: [? for help]
Prompt valid for—platformEKSAKSGKEOpenShift on AWSPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYes
Available valuesNA
Default valueNA
RemarksA server keystore key passphrase is required only if provided during keystore file creation. Here, enter the server keystore key passphrase.

Select Ingress Type

Prompt? Select between supported ingress types: [Use arrows to move, enter to select, type to filter, ? for more help]
Prompt valid for—platformEKSAKSGKEOpenShift on AWSPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesNoNo
Available valuesnginx [NGINX]
haproxy [HAProxy]
external [External - IngressClass resource should already exist]
none [None - Ingress will not be set up during installation]
Default value for Releasenginx [NGINX]
RemarksSelect one of the ingress controllers—nginx or haproxy.
You can also choose not to set up the ingress controller at the time of installation or choose to use an external ingress controller.
When HTTP2 is enabled, select external. Note that, the IngressClass resource must be available to handle HTTP2 backends.
No ingress controller needed if you were to use an OpenShift cluster.  

Enable TLS/SSL

Important: If you want to enable the TLS protocol in your cluster, you must have the TLS secret created in the namespace before you start the installation or upgrade. This means that you must have created the namespace and the TLS secret already. Use the same TLS secret when you answer this prompt.

Prompt? Do you want to enable an TLS/SSL configuration (if yes, requires existing TLS secret in the namespace): [? for help] (y/N)
Prompt valid for—platformEKSAKSGKEOpenShift on AWSPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesNoNo
Available valuesNA
Default valueNo
RemarksType Yes to enable TLS/SSL or No otherwise. The default is No. If you want to enable TLS/SSL, keep the TLS secret handy to enter at the next prompt.

Enter the Domain Name

Prompt? Provide DNS name for accessing UI of the server: [? for help]
Prompt valid for—platformEKSAKSGKEOpenShift on AWSPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYes
Available valuesNA
Default valueNA
RemarksType the domain name for accessing the Digital.ai Deploy or Release server. For example, xlr-operator.apps.opcluster.p1.openshiftapps.com

Enter the Administrator Password

Prompt? Provide administrator password: [? for help]
Prompt valid for—platformEKSAKSGKEOpenShift on AWSPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYes
Available valuesNA
Default valueRandomly generated administrator password.
RemarksA default password is generated randomly and you can use it if you choose to, in which case you must copy the password and keep it handy.
You can also type your own administrator password at the prompt.

Select the OIDC Configuration

Prompt? Type of the OIDC configuration: [Use arrows to move, enter to select, type to filter, ? for more help]
Prompt valid for—platformEKSAKSGKEOpenShift on AWSPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYes
Available valuesexternal [External OIDC Configuration]
identity-service [Identity Service Configuration]
embedded [Embedded Keycloak Configuration]
no-oidc [No OIDC Configuration]
Default valueno-oidc [No OIDC Configuration]
RemarksChoose one of the options based on the OIDC authentication setup you have or want to have.

For more information, see Select the Type of OIDC Configuration.

Enter the Operator Image to Use

Prompt? Enter the operator image to use (eg: <repositoryName>/<imageName>:<tagName>): [? for help]
Prompt valid for—platformEKSAKSGKEOpenShift on AWSPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYes
Available valuesNA
Default valueThe latest image from the xebialabs repository, for example, (xebialabs/release-operator:22.3.0-openshift)
RemarksType the Kubernetes Operator Docker Hub image name you want to use.
By default, the latest image for the product—Deploy or Release—which you install—would be used.
Example: (xebialab/release-operator:22.3.0-openshift), if you are installing Digital.ai Release on OpenShift.
However, you can change it to an older image if required.

Enter the Product License

Prompt? Select source of the license: [Use arrows to move, enter to select, type to filter, ? for more help]
Prompt valid for—platformEKSAKSGKEOpenShift on AWSPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYes
Available valuesfile [Path to the license file (the file can be in clean text or base64 encoded)]
editor [Copy/Paste the license to editor (the text can be in clean text or base64 encoded)]
Default valuefile [Path to the license file (the file can be in clean text or base64 encoded)]
RemarksYou can either choose to type in the path to the license file (for example, /home/jmahendran/xl-release-license.lic) or choose to copy and paste the license information in the editor.
The license file can be in plain text format or in base64 encoded format.

Select the Java Repository Keystore

Prompt? Select source of the repository keystore: [Use arrows to move, enter to select, type to filter, ? for more help]
Prompt valid for—platformEKSAKSGKEOpenShift on AWSPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYes
Available valuesgenerate [Generate the repository keystore during installation (you need to have keytool utility installed in your path)]
file [Path to the repository keystore file (the file can be in the raw format or base64 encoded)]
editor [Copy/Paste the repository keystore to editor (the content needs to be base64 encoded)]
Default valuegenerate [Generate the repository keystore during installation (you need to have keytool utility installed in your path)]
RemarksSelect if you want to generate a new JDK keystore file or use an existing one. The default is to generate a new JDK keystore.
If you have an existing keystore file, you can either choose to type in the path to the repository keystore file or copy and paste the keystore file in the editor.

Enter the Keystore Passphrase

Prompt? Provide keystore passphrase: [? for help]
Prompt valid for—platformEKSAKSGKEOpenShift on AWSPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYes
Available valuesNA
Default valueA randomly generated password.
RemarksType a password for the JDK repository keystore.
A random password is auto-generated by default.
Copy the auto-generated password and keep it safe if you were to use the auto-generated password.

Select the Storage Class

Prompt? Provide storage class for the server: [Use arrows to move, enter to select, type to filter, ? for more help]
Prompt valid for—platformEKSAKSGKEOpenShift on AWSPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYes
Available valuesAs set up by the cluster administrator
Default valueAs set up by the cluster administrator
RemarksSelect a storage class that you want to use for Digital.ai Deploy or Release or Remote Runner.

Create New PostgreSQL Server? Or Use Existing One?

Prompt? Do you want to install a new PostgreSQL on the cluster: [? for help] (Y/n)
Prompt valid for—platformEKSAKSGKEOpenShift on AWSPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYes
Available valuesNA
Default valueYes
RemarksType Yes to install a new PostgreSQL database server in your cluster or No to use an existing PostgreSQL server.
Keep the following information handy in case you want to use an existing PostgreSQL server:

For Release:

XLR_DB_URL: jdbc:postgresql://<xlr-db-host>:5432/<xlr-database-name>
XLR_DB_USER: <xlr-username>
XLR_DB_PASS: <xlr-password>
XLR_REPORT_DB_URL: jdbc:postgresql://<xlr-report-db-host>:5432/<xl-report-database-name>
XLR_REPORT_DB_USER: <xl-report-username>
XLR_REPORT_DB_PASS: <xl-report-password>

For Deploy:
XL_DB_URL: jdbc:postgresql://<xld-db-host>:5432/<xlr-database-name>
XL_DB_USERNAME: <xld-username>
XL_DB_PASSWORD: <xld-password>

Enter the external PostgreSQL server details at the following prompt.  

? Edit database external setup: [? for help] [Enter to launch editor]

Select the PostgreSQL Storage Class

Prompt? Storage Class to be defined for PostgreSQL: [Use arrows to move, enter to select, type to filter, ? for more help]
Prompt valid for—platformEKSAKSGKEOpenShift on AWSPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYes
Available valuesAs set up by the cluster administrator
Default valueAs set up by the cluster administrator
RemarksSelect a storage class that you want to use for PostgreSQL.

Enter the PostgreSQL PVC size

Prompt? Provide PVC size for PostgreSQL (Gi): [? for help] (8)
Prompt valid for—platformEKSAKSGKEOpenShift on AWSPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYes
Available valuesNA
Default value8
RemarksType the persistent volume claim for PostgreSQL. The default is 8.

Create New RabbitMQ Server? Or Use Existing One?

Prompt? Do you want to install a new RabbitMQ on the cluster: [? for help] (Y/n)
Prompt valid for—platformEKSAKSGKEOpenShift on AWSPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYes
Available valuesNA
Default valueYes
RemarksType Yes to install a new RabbitMQ server in your cluster or No to use an existing RabbitMQ server.
Keep the following information handy in case you want to use an existing RabbitMQ server:

For Release:
XLR_TASK_QUEUE_USERNAME: <username>
XLR_TASK_QUEUE_PASSWORD: <password>
XLR_TASK_QUEUE_NAME: <queue-name>
XLR_TASK_QUEUE_URL: <queue-url>

For Deploy:
XLD_TASK_QUEUE_DRIVER_CLASS_NAME: <driver-class-name>
XLD_TASK_QUEUE_PASSWORD: <password>
XLD_TASK_QUEUE_URL: <queue-url>
XLD_TASK_QUEUE_USERNAME: <username>


Enter the external RabbitMQ server details at the following prompt.

? Edit RabbitMQ external setup: [? for help] [Enter to launch editor]

Enter the RabbitMQ Replica Count

Prompt? Replica count to be defined for RabbitMQ: [? for help] (3)
Prompt valid for—platformEKSAKSGKEOpenShift on AWSPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYes
Available valuesNA
Default value3
RemarksType the number of replicas you need for RabbitMQ server.

Select the RabbitMQ Storage Class

Prompt? Storage Class to be defined for RabbitMQ: [Use arrows to move, enter to select, type to filter, ? for more help]
Prompt valid for—platformEKSAKSGKEOpenShift on AWSPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYes
Available valuesAs set up by the cluster administrator
Default valueAs set up by the cluster administrator
RemarksSelect a storage class that you want to use for RabbitMQ.

Enter the RabbitMQ PVC Size

Prompt? Provide PVC size for RabbitMQ (Gi): [? for help] (8)
Prompt valid for—platformEKSAKSGKEOpenShift on AWSPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYes
Available valuesNA
Default value8
RemarksType the persistent volume claim for RabbitMQ. The default is 8.

Once you are done answering the questions, the installer provides a summary of the installation choices you made. Here's an example.

1665217557157

It then proceeds with the installation by applying the resources to the cluster and completes the installation of the product. Here's an example.

1665217708304