Installing Release on Kubernetes On-premise Platform

This section describes how to install the Release application on Kubernetes On-premise Platform.


This guide is intended for administrators with cluster administrator credentials who are responsible for application deployment.

Before You Begin

The following are the prerequisites required to install Deploy using Kubernetes Operator installer:

  • Docker version 17.03 or later
  • The kubectl command-line tool
  • Access to a Kubernetes cluster version 1.19 or later
  • Kubernetes cluster configuration

Keycloak as the Default Authentication Manager for Release

  • Keycloak is the default authentication manager with Release 22.1 and later.
  • This is defined by the spec.keycloak.install parameter that is set to true by default in the dairelease_cr.yaml file.
  • If you want to disable Keycloak as the default authentication manager for Release, set the spec.keycloak.install parameter to false.
  • After you disable the Keycloak authentication, the default login credentials (admin/admin) will be applicable when you log in to the Release interface.
  • For more information about how to configure Keycloak for Kubernetes Operator-based Installer for Release, see Keycloak Configuration for Kubernetes Operator Installer.

Step 1—Create a Folder for Installation Tasks

Create a folder on your workstation from where you will execute the installation tasks, for example, ReleaseInstallation.

Step 2—Download the Operator ZIP

  1. Download the file from the Release Software Distribution site.
  2. Extract the ZIP file to the ReleaseInstallation folder.

Step 3—Update the On-Premise Resource Files

To deploy the Release application on the Kubernetes cluster, update the Infrastructure file parameters (infrastructure.yaml) in the location where you extracted the ZIP file with the parameters corresponding to the Kubernetes On-premise Cluster Configuration (kubeconfig) file as described in the table. You can find the Kubernetes cluster information in the default location ~/.kube/config. Ensure the location of the kubeconfig configuration file is your home directory.

Note: The deployment will not proceed further if the infrastructure.yaml is updated with wrong details.

Infrastructure File Parameters Kubernetes On-premise Cluster Configuration File Parameters Parameter Value
apiServerURL server Enter the server parameter value.
caCert certificate-authority-data Enter the server details of the cluster.
tlsCert client-certificate-data Before updating the parameter value, decode to base64 format.
tlsPrivateKey client-key-data Before updating the parameter value, decode to base64 format.

Step 4—Convert License and Repository Keystore Files to Base64 Format

Update the Values file with the license and keystore details.

  1. Run the following command to get the storage class list:

    kubectl get sc
  2. Run the keytool command below to generate the RepositoryKeystore:

    keytool -genseckey {-alias alias} {-keyalg keyalg} {-keysize keysize} [-keypass keypass] {-storetype storetype} {-keystore keystore} [-storepass storepass]


    keytool -genseckey -alias deployit-passsword-key -keyalg aes -keysize 128 -keypass deployit -keystore /tmp/repository-keystore.jceks -storetype jceks -storepass test123
  3. Convert the Release license and the repository keystore files to the base 64 format.

    • To convert the xlrLicense into base 64 format, run:

      cat <License.lic> | base64 -w 0
    • To convert RepositoryKeystore to base64 format, run:

      cat <keystore.jks> | base64 -w 0

      Note: The above commands are for Linux-based systems. For Windows, there is no built-in command to directly perform Base64 encoding and decoding. But you can use the built-in command certutil -encode/-decode to indirectly perform Base64 encoding and decoding.

Step 5—Update the Default Release Custom Resource Definitions

  1. Update dairelease_cr file in the \digitalai-release\kubernetes path of the extracted zip file.
  2. Update the mandatory parameters as described in the following table:

    Note: For deployments on test environments, you can use most of the parameters with their default values in the dairelease_cr file.

Parameter Description
AdminPassword Admin password for xl-release
KeystorePassphrase The passphrase for the RepositoryKeystore.
Persistence.StorageClass The storage class that must be defined as on prem cluster
RepositoryKeystore Convert the repository keystore file for Release to the base64 format.
ingress.hosts DNS name for accessing UI of Release.
postgresql.persistence.storageClass The storage Class that needs to be defined as PostgreSQL
rabbitmq.persistence.storageClass The storage class that must be defined as RabbitMQ
xlrLicense Release license

Note: For deployments on production environments, you must configure all the relevant/required parameters for your Kubernetes On-premise production setup, in the dairelease_cr.yaml file. See Default Parameters to know more about the parameters available in the release’s dairelease_cr.yaml file and their default values. You must update the default values for the parameters per your requirements.

To configure the Keycloak parameters for OIDC authentication, see Keycloak Configuration for Kubernetes Operator Installer.

  1. Update the relevant/required parameters for your Kubernetes On-premise production setup in the dairelease_cr.yaml file. See Default Parameters.

    If you want to use your own database and messaging queue, refer Using Existing DB and Using Existing MQ topics, and update the dairelease_cr.yaml file. For information on how to configure SSL/TLS with Release, see Configuring SSL/TLS.

Step 6—Download and set up the XL CLI

Check following link for details: Install the XL-CLI

Note: Use the version that matches your product version in the public folder.

Step 7—Set up the Namespace

You can use any namespace for the installation. By default, digitalai namespace is used. First you need to create namespace, replace digitalai with your custom name if you would like to use some other name:

kubectl create namespace digitalai

In case you are not using digitalai as namespace or if you would like to install multiple release instances on the same cluster you need to use custom namespace setup. Got to the following document to see how to install the release operator to use custom namespace.

Step 8—Set up the Digital.Ai Deploy Container Instance

  1. Run the following command to download and start the local Deploy instance:

    docker run -d -e "ADMIN_PASSWORD=admin" -e "ACCEPT_EULA=Y" -p 4516:4516 --name xld xebialabs/xl-deploy:22.2.0

    Note: Before running the command check if there is already running docker containers with name xld or the same port with docker ps command. Stop and delete the container with commands, for example with name xld: docker stop xld; doecker rm xld.

  2. Wait Deploy has started and access the Deploy interface, go to:
    http://<host IP address>:4516/

Step 9—Start the Deployment

Go to the release-operator-onprem folder of the extracted ZIP file and run the following command:

xl apply -v -f digital-ai.yaml

Step 10—Verify the Deployment Status

  1. Check the deployment job completion using XL CLI.
    The deployment job starts the execution of various tasks as defined in the digital-ai.yaml file in a sequential manner. If you encounter an execution error while running the scripts, the system displays error messages. The average time to complete the job is around 10 minutes.

    Note: The running time depends on the environment.

    Deployment Status

To troubleshoot runtime errors, see Troubleshooting Operator Based Installer.

Verify the deployment succeeded, do one of the following:

  • Open the local Deploy application, go to the Explorer tab, and from Library, click Monitoring > Deployment tasks

    Successful Release Deployment

  • Run the following commands in a terminal or command prompt:

    Deployment Status Using CLI Command

Step 11—Perform Sanity Checks

Open the Release application and perform the required deployment sanity checks.

Configure the User Permissions