Installing Deploy on Openshift AWS

This section describes how to install the Deploy application on an OpenShift cluster on AWS.


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 migrate to the operator-based deployment:

  • Docker version 17.03 or later
  • The kubectl command-line tool
  • Access to a Kubernetes cluster version 1.19 or later
  • Kubernetes cluster configuration
  • If you are installing Deploy on OpenShift cluster, you will need:

    • The OpenShift oc tool
    • Access to an OpenShift cluster version 4.5 or later

Keycloak as the Default Authentication Manager for Deploy

  • Keycloak is the default authentication manager with Deploy 22.1 and later.
  • This is defined by the spec.keycloak.install parameter that is set to true by default in the daideploy_cr.yaml file.
  • If you want to disable Keycloak as the default authentication manager for Deploy, 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 Deploy interface.
  • For more information about how to configure Keycloak for Kubernetes Operator-based Installer, 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, DeployInstallation.

Step 2—Download the Operator ZIP

  1. Download the Deploy Operator-based installer zip file from the Deploy Software Distribution site. For example,
  2. Extract the ZIP file to the DeployInstallation folder.

Step 3—Update the Platform Resource Files

To deploy the Deploy application on the Kubernetes cluster, update the infrastructure.yaml file parameters (Infrastructure File Parameters) in DeployInstallation folder with the parameters corresponding to the kubeconfig file (OpenShift Cluster Configuration File Parameters) as described in the table below. 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 fail if the infrastructure.yaml is updated with wrong details.

Infrastructure File Parameters OpenShift Cluster Configuration File Parameters Parameter Value
ServerUrl server Enter the server details of the cluster.
openshiftToken NA This parameter defines the access token to access your OpenShift cluster.

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

  1. Run the following command to retrieve StorageClass values for Server, Postgres and Rabbitmq:

    oc 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 Deploy license and the repository keystore files to the base64 format:

    • To convert the xldLicense into base64 format, run:
    cat <License.lic> | base64 -w 0
    • To convert RepositoryKeystore to base64 format, run:
    cat <repository-keystore.jceks> | base64 -w 0

Step 5—Update the Custom Resource Definitions (daideploy_cr.yaml)

  1. 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 daideploy_cr.yaml file.

    Parameters Description
    AdminPassword Admin password for xl-deploy
    KeystorePassphrase The passphrase for repository-keystore file
    Persistence.StorageClass PVC Storage Class for volume
    RepositoryKeystore Convert the license file for Deploy to the base64 format.
    ingress.hosts DNS name for accessing UI of Deploy.
    spec.keycloak.ingress.rules[0].host DNS name for accessing UI of embedded Keycloak.
    postgresql.persistence.storageClass Storage Class to be defined as PostgreSQL.
    rabbitmq.persistence.storageClass Storage Class to be defined as RabbitMQ.
    xldLicense Deploy license

    Note: For deployments on production environments, you must configure all the relevant/required parameters for your Openshift production setup, in the daideploy_cr.yaml file. See Default Parameters to know more about the parameters available in the Deploy’s daideploy_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.

  2. Update the relevant/required parameters for your Openshift production setup in the daideploy_cr.yaml file. See Default Parameters.

    If you want to use an existing database and messaging queue, refer Using Existing DB and Using Existing MQ topics, and update the daideploy_cr.yaml file. For information on how to configure AWS RDS with Deploy, see Configuring AWS RDS.

Step 6—Download and Set up the XL CLI

See 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, the digitalai namespace is used.

kubectl create namespace digitalai

To use a custom namespace, create a namespace and replace digitalai with your custom namespace.

If you would like to install multiple Deploy instances on the same cluster, you need to use a custom namespace.

See Install Deploy in a Custom Namespace.

Step 8—Set up the Deploy Container Instance

  1. Run the following command to download and run the 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; docker rm xld.

  2. Wait Deploy has started and access the Deploy application:
    http://_host IP address_:4516/

Step 9—Activate the Deploy Deployment Process

  1. Go to the deploy-operator-openshift of the extracted file and run the following command to activate the deployment process:
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.

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
  • Run the following command in a terminal or command prompt:

    kubectl get pod

To check the deployment status using CLI, run the following command:

oc get pod

Step 11—Perform Sanity Checks

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

Configure the User Permissions