Upgrading to Operator Based Solution

This section describes how to upgrade to the latest Kubernetes Operator-based Deploy solution on various Kubernetes platforms. The following upgrade scenarios are supported:

Supported Platforms

  • Amazon EKS
  • Azure Kubernetes Service
  • Kubernetes On-premise
  • OpenShift on AWS
  • GCP GKE

Audience

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
  • The vi editor
  • The yq command-line tool (Use the latest binary)
  • Access to a Kubernetes cluster version 1.19 or later
  • Kubernetes cluster configuration
  • If you are upgrading Deploy on OpenShift cluster, you will need:

    • The OpenShift oc tool
    • Access to an OpenShift cluster version 4.5 or later
  • The Helm Chart that was used to install the Deploy application
  • Back up of the Deploy application and Kubernetes cluster configuration
  • Ensure the port 4516 is free

Backup and Restore

Before you upgrade to Kubernetes Operator-based solution, you must back up your existing database so that you can revert back to the earlier state in case of upgrade failures. You can use automated backups or snapshots of the database to back up your AWS Relational Database Service (RDS) instance. For more information about back up and restore using snapshots, refer to Backing up and restoring an Amazon RDS DB instance.

Note: We recommend that you use an external database instance (for example, PostgreSQL) for production grade installations. To back up the PostgreSQL database running on a virtual machine, use the native PostgreSQL commands—pg_dump and pg_restore.

Keycloak as the Default Authentication Manager for Deploy

From Deploy 22.1, Keycloak is the default authentication manager for Deploy. 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 Digitial.ai 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 Digital.ai Deploy interface.

After you upgrade to the latest version of Digital.ai Deploy, follow the steps provided in Keycloak Configuration for Kubernetes Operator Installer to configure Keycloak for Deploy.

Upgrading from Helm Charts-based Deploy Environment to Operator-based Deploy Environment

You can upgrade to Deploy 22.2 from earlier Deploy versions that are installed using Helm Charts (Deploy 10.0 and Deploy 10.1) on the following platforms:

Amazon Elastic Container Service for Kubernetes (EKS)

Upgrading to Deploy 22.2 on Amazon EKS

Follow the steps below to Upgrading to Deploy 22.2 on Amazon EKS (AWS EKS).

Step 1—Check the status of the Helm Chart installation

Run the following command:

helm status <product name>

Sample Output

Helm Installation Status

Step 2—Verify the pods running on the cluster

Run the following command:

kubectl get pods

Sample Output

[Running Pods][(https://devdocnew.digitalai-testing.com](https://docs.xebialabs.com)/static/runningpodsawseksk8soper-8c0821ae609a606dae008011bd6fa77d.png)

Step 3—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 4—Upgrade the Operator

  1. Do one of the following:

    • If you want to retain the Operator artefacts, run the following command:

      xl op --upgrade --no-cleanup
    • Otherwise, run the following command:

      xl op --upgrade

      A set of questions is displayed.

    Note: Before running the command check if there is already running docker containers with name dai-deploy or with port 4516 with the command docker ps. Stop and delete the container with commands: docker stop dai-deploy; docker rm dai-deploy

  2. To continue with the upgrade, perform the actions described in the following table:

    Note: The default values is displayed within square brackets ([])

Question Action Default Value
Select the setup mode Use the Up/Down arrow keys to choose one of the setup modes, and press Enter:
  • advanced—to specify custom values
  • quick—to quickly run the setup with default values
Note: We recommend advanced setup mode for Helm to Operator upgrade.
NA
Select the Kubernetes setup where the digitalai Devops will be installed or uninstalled Use the Up/Down arrow keys to select the platform from the list—AwsEKS [AWS EKS]. Press Enter. NA
Do you want to use kubernetes current-context from ~/.kube/config ? If you want to use Kubernetes configuration, type y for Yes. Otherwise, type n for No. Press Enter.
Note: For OpenShift and Amazon EKS (AWS EKS) clusters, always type n (No).
No
Enter the K8sApiServerURL of your Kubernetes installation Type the AWS Server URL, and press Enter. NA
What is the Amazon EKS cluster name? Type the Amazon EKS Cluster Name, and press Enter. NA
Do you want to use the AWS SSO credentials? If you want to use the AWS SSO Access, type y for Yes. Otherwise, type n for No. If you select Yes, then next three question related to SSO [What is the AWS Account ID?, What is the AWS SSO Role Name?, What is the AWS Role ARN? ] will be displayed. No
Do you want to use the AWS credentials from your ~/.aws/credentials file? If you want to use the AWS credentials from the credentials file, type y for Yes. Otherwise, type n for No. Press Enter. Yes
What is the AWS Account ID? Account Id or alias of aws account where assume role exists. NA
What is the AWS SSO Role Name? Role name that user wants to use for deployment of operator in aws eks cluster. NA
What is the AWS Role ARN? Role Arn [eg : arn:aws:iam::945589xxxx:role/rolename] NA
Do you want to use the AWS credentials from your ~/.aws/credentials file? If you want to use the AWS credentials from the credentials file, type y for Yes. Otherwise, type n for No. Press Enter. Yes
Do you want to use a custom Kubernetes namespace (current default is ‘digitalai’)? If you want to use the ‘digitalai’ namespace, type n for No. Otherwise, type y for Yes. Press Enter.
Note: For Helm to Operator upgrade, always type y (Yes).
Yes
Enter the name of the existing Kubernetes namespace where the XebiaLabs DevOps Platform will be installed, updated or undeployed Type the name of the Kubernetes namespace where the Helm Chart is deployed, and press Enter. default
Product server you want to perform upgrade for Use the Up/Down arrow keys to choose one of the products you want to upgrade, and press Enter:
  • daiDeploy [Digital.ai Deploy]
  • daiDeploy [Digital.ai Deploy]
Note: Choose the product that is deployed on the Helm Chart.
NA
Enter the repository name(eg: <repositoryName>/<imageName>:<tagName>) Type the repository name from where you want to pull the product server image (Deploy), and press Enter. xebialabs
Enter the image name(eg: <repositoryName>/<imageName>:<tagName>) Type the image name of the product—xl-deploy, and press Enter. xl-deploy
Enter the image tag(eg: <repositoryName>/<imageName>:<tagName>) Type the image tag of the product (version number), and press Enter. 22.2.0
Choose the version of the Digital.ai Deploy for Upgrader setup of operator Use the Up/Down arrow keys to choose the version of the Deploy for the Upgrader setup of operator. 22.2.0
Do you want to enable an oidc? Type y for Yes—to enable OIDC Configuration. Otherwise, type n for No to use the default username and password for Deploy.
Note If you select No, oidc setup will be disabled
NA
Do you want to use an existing oidc configuration from previous installation? Type y for Yes—to Use an already existing oidc configuration from previous installation. Otherwise, type n for No to use the Embedded keycloak or other external oidc configuration for Deploy. NA
Use embedded keycloak? Type y for Yes—to use the embedded Keycloak authentication manager.
Note If you select No, the next question related to Keycloak public URL will not be displayed, Configure external oidc setup question will be displayed to configure external oidc setup.
NA
Enter Keycloak public URL Type the hostname of the public URL (the DNS name to access Keycloak console) that will be used for keycloak installation. NA
Use embedded DB for keycloak? Type y for Yes—to use the embedded DB for keycloak.
Note If you select No, we need to use the custom zip options and update cr yaml file with external DB for keycloak.
NA
Configure external oidc setup? Press Enter to enable the editor mode and edit the keys and values for oidc configuration. Save the changes and close the editor. For example:
.spec.oidc.enabled=true
.spec.oidc.external=true
.spec.oidc.accessTokenUri=“accessTokenURI”
.spec.oidc.clientId=“deploy”
.spec.oidc.clientSecret=“clientSecret”
.spec.oidc.emailClaim=“email”
.spec.oidc.fullNameClaim=“name”
.spec.oidc.issuer=“issuer”
.spec.oidc.keyRetrievalUri=“keyRetrievalURI”
.spec.oidc.logoutUri=“logoutURI”
.spec.oidc.postLogoutRedirectUri=“postLogoutRedirectURI”
.spec.oidc.redirectUri=“redirectURI”
.spec.oidc.rolesClaim=“groups”
.spec.oidc.userAuthorizationUri=“userAuthorizationUri”
.spec.oidc.userNameClaim=“preferred_username”
.spec.oidc.scopes=[“openid”]
Note: Mention only required field.
Select the type of the upgrade you want Use the Up/Down arrow keys to choose one of the types of upgrades, and press Enter:
  • operatorToOperator [Operator to Operator]
  • helmToOperator [Helm to Operator]

Note: To upgrade from Helm-based solution to Operator-based solution, select helmToOperator [Helm to Operator].
NA
Operator image to use (eg: <repositoryName>/<imageName>:<tagName>) Type the operator image name, and press Enter.
Note: Get the latest Operator Docker image for Deploy from the official Docker Hub repository site.
xebialabs/deploy-operator:1.0.0
Do you want to custom operator zip file for Deploy? Type Yes to use the custom one custom resource from the Deploy operator zip file. Otherwise, type n to use the current custom resource from the cluster. NA
Enter the helm release name Type the name of the Deploy product installed using the Helm Chart, for example, dai-xld-aws.
Note: To get the helm release name, run the following command in a separate command shell—helm ls, and copy the name of the Deploy product
NA

A preview of the entered values is displayed.

  1. Type y for Yes—to confirm the values. Otherwise, type n for No—to modify the values. After you confirm, the system start the local Deploy instance. This process will take some time.
    After the process completes, the Helm-based Deploy product is uninstalled, and the Operator-based Deploy product is installed.
    Note: The local Instance of Deploy will run on 4516 port; therefore, ensure you have the port 4516 free. Deployment status can be monitored on the local Deploy GUI. To access local deploy, use: http://localhost:4516, and log in using the default username and password.

Step 5—Register the load balancer/node port services external IP

  1. Run the following command:

    kubectl get svc

    Sample Output

    Register load balancer

  2. Register your Load balancer external IP under the appropriate DNS.
    After the registration, you can verify the newer version of Deploy (Operator-based product) using the same link that you used to access the earlier version (Helm-chart based Deploy product).

Azure Kubernetes Service (AKS)

Upgrading to Deploy 22.2 on AKS

To upgrade to Deploy 22.2 on Azure Kubernetes Service (AKS) cluster, follow the installation steps — Step 1 to Step 4 from Installation topic, and perform the following steps:

Step 1—Upgrade the Operator

  1. Do one of the following:

    • If you want to retain the Operator artefacts, run the following command:

      xl op --upgrade --no-cleanup
    • Otherwise, run the following command:

      xl op --upgrade

      A set of questions is displayed.

    Note: Before running the command check if there is already running docker containers with name dai-deploy or with port 4516 with the command docker ps. Stop and delete the container with commands: docker stop dai-deploy; docker rm dai-deploy

  2. To continue with the upgrade, perform the actions described in the following table:

    Note: The default values is displayed within square brackets ([])

Question Action Default Value
Select the setup mode Use the Up/Down arrow keys to choose one of the setup modes, and press Enter:
  • advanced—to specify custom values
  • quick—to quickly run the setup with default values
Note: We recommend advanced setup mode for Helm to Operator upgrade.
NA
Select the Kubernetes setup where the digitalai Devops will be installed or uninstalled Use the Up/Down arrow keys to select the platform from the list—Azure AKS [Azure AKS]. Press Enter. NA
Do you want to use kubernetes current-context from ~/.kube/config ? If you want to use Kubernetes configuration, type y for Yes. Otherwise, type n for No. Press Enter.
Note: For AKS cluster, always type y (Yes).
Yes
Do you want to use an custom Kubernetes namespace (current default is ‘digitalai’)? If you want to use the ‘digitalai’ namespace, type n for No. Otherwise, type y for Yes. Press Enter.
Note: For Helm to Operator upgrade, always type y (Yes).
Yes
Enter the name of the existing Kubernetes namespace where the XebiaLabs DevOps Platform will be installed, updated or undeployed Type the name of the Kubernetes namespace where the Helm Chart is deployed, or press Enter to select the default option. default
Product server you want to perform upgrade for Use the Up/Down arrow keys and select daiDeploy [Digital.ai Deploy] NA
Enter the repository name(eg: <repositoryName>/<imageName>:<tagName>) Type the repository name from where you want to pull the product server image (Deploy), and press Enter. xebialabs
Enter the image name(eg: <repositoryName>/<imageName>:<tagName>) Type the image name of the product—xl-deploy, and press Enter. xl-deploy
Enter the image tag(eg: <repositoryName>/<imageName>:<tagName>) Type the image tag of the product—22.2.0, and press Enter. 22.2.0
Choose the version of the Digital.ai Deploy for Upgrader setup of operator Use the Up/Down arrow keys to choose the version of the Deploy for the Upgrader setup of operator. 22.2.0
Do you want to enable an oidc? Type y for Yes—to enable OIDC Configuration. Otherwise, type n for No to use the default username and password for Deploy.
Note If you select No, oidc setup will be disabled
NA
Do you want to use an existing oidc configuration from previous installation? Type y for Yes—to Use an already existing oidc configuration from previous installation. Otherwise, type n for No to use the Embedded keycloak or other external oidc configuration for Deploy. NA
Use embedded keycloak? Type y for Yes—to use the embedded Keycloak authentication manager.
Note If you select No, the next question related to Keycloak public URL will not be displayed, Configure external oidc setup question will be displayed to configure external oidc setup.
NA
Enter Keycloak public URL Type the hostname of the public URL (the DNS name to access Keycloak console) that will be used for keycloak installation. NA
Use embedded DB for keycloak? Type y for Yes—to use the embedded DB for keycloak.
Note If you select No, we need to use the custom zip options and update cr yaml file with external DB for keycloak.
NA
Configure external oidc setup? Press Enter to enable the editor mode and edit the keys and values for oidc configuration. Save the changes and close the editor. For example:
.spec.oidc.enabled=true
.spec.oidc.external=true
.spec.oidc.accessTokenUri=“accessTokenURI”
.spec.oidc.clientId=“deploy”
.spec.oidc.clientSecret=“clientSecret”
.spec.oidc.emailClaim=“email”
.spec.oidc.fullNameClaim=“name”
.spec.oidc.issuer=“issuer”
.spec.oidc.keyRetrievalUri=“keyRetrievalURI”
.spec.oidc.logoutUri=“logoutURI”
.spec.oidc.postLogoutRedirectUri=“postLogoutRedirectURI”
.spec.oidc.redirectUri=“redirectURI”
.spec.oidc.rolesClaim=“groups”
.spec.oidc.userAuthorizationUri=“userAuthorizationUri”
.spec.oidc.userNameClaim=“preferred_username”
.spec.oidc.scopes=[“openid”]
Note: Mention only required field.
Select the type of the upgrade you want Use the Up/Down arrow keys to choose one of the types of upgrades, and press Enter:
  • operatorToOperator [Operator to Operator]
  • helmToOperator [Helm to Operator]

Note: To upgrade from Helm-based solution to Operator-based solution, select helmToOperator [Helm to Operator].
NA
Operator image to use (eg: <repositoryName>/<imageName>:<tagName>) Type the operator image name, and press Enter.
Note: Get the latest Operator Docker image for Deploy from the official Docker Hub repository site.
xebialabs/deploy-operator:1.0.0
Enter the helm release name Type the name of the Deploy product installed using the Helm Chart, for example, dai-xld-aks.
Note: To get the helm release name, run the following command in a separate command shell—helm ls, and copy the name of the Deploy product
NA
A preview of the entered values is displayed.
  1. Type y for Yes—to confirm the values. Otherwise, type n for No—to modify the values. After you confirm, the system start the local Deploy instance. This process will take some time.
    After the process completes, the Helm-based Deploy product is uninstalled, and the Operator-based Deploy product is installed.
    Note: The local Instance of Deploy will run on 4516 port; therefore, ensure you have the port 4516 free. Deployment status can be monitored on the local Deploy GUI. To access local deploy, use: http://localhost:4516, and log in using the default username and password.

To complete the upgrade process, follow the steps — Step 1 to Step 4 from Installation topic.

OpenShift

Upgrading to Deploy 22.2 on OpenShift Cluster

You can upgrade to Operator-based Deploy solution on the following OpenShift platforms:

  • OpenShift cluster on AWS

Follow the steps below to Upgrading to Deploy 22.2 on your OpenShift cluster.

Step 1—Check the status of the Helm Chart installation

Run the following command:

helm status <product name>

Sample Output

Helm Installation Status

Step 2—Verify the pods running on the cluster

Run the following command:

oc get pods

Sample Output

Running Pods

Step 3—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 4—Upgrade the Operator

  1. Do one of the following:

    • If you want to retain the Operator artefacts, run the following command:

      xl op --upgrade --no-cleanup
    • Otherwise, run the following command:

      xl op --upgrade

      A set of questions is displayed.

    Note: Before running the command check if there is already running docker containers with name dai-deploy or with port 4516 with the command docker ps. Stop and delete the container with commands: docker stop dai-deploy; docker rm dai-deploy

  2. To continue with the upgrade, perform the actions described in the following table:

    Note: The default values is displayed within square brackets ([])

Question Action Default Value
Select the setup mode Use the Up/Down arrow keys to choose one of the setup modes, and press Enter:
  • advanced—to specify custom values
  • quick—to quickly run the setup with default values
Note: We recommend advanced setup mode for Helm to Operator upgrade.
NA
Select the Kubernetes setup where the digitalai Devops will be installed or uninstalled Use the Up/Down arrow keys to select the platform from the list—OpenShift. Press Enter. NA
Do you want to use kubernetes current-context from ~/.kube/config ? If you want to use Kubernetes configuration, type y for Yes. Otherwise, type n for No. Press Enter.
Note: For OpenShift and Amazon EKS (AWS EKS) clusters, always type n (No).
No
Enter the K8sApiServerURL of your Kubernetes installation Type the OpenShift Server URL, and press Enter. NA
Choose kubernetes authentication type Use the Up/Down arrow keys to choose one of the authentication types for the OpenShift cluster:
  • token
  • filepath
token
Provide authentication token for the existing service account Enter the token. NA
Do you want to use an custom Kubernetes namespace (current default is ‘digitalai’)? If you want to use the ‘digitalai’ namespace, type n for No. Otherwise, type y for Yes. Press Enter.
Note: For Helm to Operator upgrade, always type y (Yes).
Yes
Enter the name of the existing Kubernetes namespace where the XebiaLabs DevOps Platform will be installed, updated or undeployed Type the name of the Kubernetes namespace where the Helm Chart is deployed, and press Enter. default
Product server you want to perform upgrade for Use the Up/Down arrow keys to choose one of the products you want to upgrade, and press Enter:
  • daiDeploy [Digital.ai Deploy]
  • daiDeploy [Digital.ai Deploy]
Note: Choose the product that is deployed on the Helm Chart.
NA
Enter the repository name(eg: <repositoryName>/<imageName>:<tagName>) Type the repository name from where you want to pull the product server image (Deploy), and press Enter. xebialabs
Enter the image name(eg: <repositoryName>/<imageName>:<tagName>) Type the image name of the product—xl-deploy, and press Enter. xl-deploy
Enter the image tag(eg: <repositoryName>/<imageName>:<tagName>) Type the image tag of the product—22.2.0, and press Enter. 22.2.0
Choose the version of the Digital.ai Deploy for Upgrader setup of operator Use the Up/Down arrow keys to choose the version of the Deploy for the Upgrader setup of operator. 22.2.0
Do you want to enable an oidc? Type y for Yes—to enable OIDC Configuration. Otherwise, type n for No to use the default username and password for Deploy.
Note If you select No, oidc setup will be disabled
NA
Do you want to use an existing oidc configuration from previous installation? Type y for Yes—to Use an already existing oidc configuration from previous installation. Otherwise, type n for No to use the Embedded keycloak or other external oidc configuration for Deploy. NA
Use embedded keycloak? Type y for Yes—to use the embedded Keycloak authentication manager.
Note If you select No, the next question related to Keycloak public URL will not be displayed, Configure external oidc setup question will be displayed to configure external oidc setup.
NA
Enter Keycloak public URL Type the hostname of the public URL (the DNS name to access Keycloak console) that will be used for keycloak installation. NA
Use embedded DB for keycloak? Type y for Yes—to use the embedded DB for keycloak.
Note If you select No, we need to use the custom zip options and update cr yaml file with external DB for keycloak.
NA
Configure external oidc setup? Press Enter to enable the editor mode and edit the keys and values for oidc configuration. Save the changes and close the editor. For example:
.spec.oidc.enabled=true
.spec.oidc.external=true
.spec.oidc.accessTokenUri=“accessTokenURI”
.spec.oidc.clientId=“deploy”
.spec.oidc.clientSecret=“clientSecret”
.spec.oidc.emailClaim=“email”
.spec.oidc.fullNameClaim=“name”
.spec.oidc.issuer=“issuer”
.spec.oidc.keyRetrievalUri=“keyRetrievalURI”
.spec.oidc.logoutUri=“logoutURI”
.spec.oidc.postLogoutRedirectUri=“postLogoutRedirectURI”
.spec.oidc.redirectUri=“redirectURI”
.spec.oidc.rolesClaim=“groups”
.spec.oidc.userAuthorizationUri=“userAuthorizationUri”
.spec.oidc.userNameClaim=“preferred_username”
.spec.oidc.scopes=[“openid”]
Note: Mention only required field.
Select the type of the upgrade you want Use the Up/Down arrow keys to choose one of the types of upgrades, and press Enter:
  • operatorToOperator [Operator to Operator]
  • helmToOperator [Helm to Operator]

Note: To upgrade from Helm-based solution to Operator-based solution, select helmToOperator [Helm to Operator].
NA
Operator image to use (eg: <repositoryName>/<imageName>:<tagName>) Type the operator image name, and press Enter.
Note: Get the latest Operator Docker image for Deploy from the official Docker Hub repository site.
xebialabs/deploy-operator:1.0.0-openshift
Enter the helm release name Type the name of the Deploy product installed using the Helm Chart.
Note: To get the helm release name, run the following command in a separate command shell—helm ls, and copy the name of the Deploy product
NA
A preview of the entered values is displayed.
  1. Type y for Yes—to confirm the values. Otherwise, type n for No—to modify the values. After you confirm, the system start the local Deploy instance. This process will take some time.
    After the process completes, the Helm-based Deploy product is uninstalled, and the Operator-based Deploy product is installed.
    Note: The local Instance of Deploy will run on 4516 port; therefore, ensure you have the port 4516 free. Deployment status can be monitored on the local Deploy GUI. To access local deploy, use: http://localhost:4516, and log in using the default username and password.

Step 5—Verify the Operator installation

  1. Run the following command:

    oc get route

    Sample Output

    Verify Operator Installation

  2. Verify the newer version of the release (Operator-based product) using the same link that you used to access the earlier version (Helm-chart based Deploy product).
Kubernetes On-premise

Upgrading to Deploy 22.2 on Kubernetes On-premise Cluster

Follow the steps below to Upgrading to Deploy 22.2 on Kubernetes On-premise Cluster.

Step 1—Check the status of the Helm Chart installation

Run the following command:

helm status <product name>

Sample Output

Helm Installation Status

Step 2—Verify the pods running on the cluster

Run the following command:

kubectl get pods

Sample Output

Running Pods

Step 3—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 4—Upgrade the Operator

  1. Run the following command:

    xl op --upgrade

    A set of questions is displayed.

    Note: Before running the command check if there is already running docker containers with name dai-deploy or with port 4516 with the command docker ps. Stop and delete the container with commands: docker stop dai-deploy; docker rm dai-deploy.

  2. To continue with the upgrade, perform the actions described in the following table:

    Note: The default values is displayed within square brackets ([])

Question Action Default Value
Select the setup mode Use the Up/Down arrow keys to choose one of the setup modes, and press Enter:
  • advanced—to specify custom values
  • quick—to quickly run the setup with default values
Note: We recommend advanced setup mode for Helm to Operator upgrade.
NA
Select the Kubernetes setup where the digitalai Devops will be installed or uninstalled Use the Up/Down arrow keys to select the platform from the list—PlainK8SCluster [Plain multi-node K8s cluster]. Press Enter. NA
Do you want to use kubernetes current-context from ~/.kube/config ? If you want to use Kubernetes configuration, type y for Yes. Otherwise, type n for No. Press Enter.
Note: For on-premise cluster, always type Y (Yes).
Y
Do you want to use an custom Kubernetes namespace (current default is ‘digitalai’)? If you want to use the ‘digitalai’ namespace, type n for No. Otherwise, type y for Yes. Press Enter.
Note: For Helm to Operator upgrade, always type y (Yes).
Yes
Enter the name of the existing Kubernetes namespace where the XebiaLabs DevOps Platform will be installed, updated or undeployed Type the name of the Kubernetes namespace where the Helm Chart is deployed or press Enter to select default. default
Product server you want to perform upgrade for Use the Up/Down arrow keys to choose daiDeploy [Digital.ai Deploy] NA
Enter the repository name(eg: <repositoryName>/<imageName>:<tagName>) Type the repository name to download Deploy image, and press Enter to select xebialabs xebialabs
Enter the image name(eg: <repositoryName>/<imageName>:<tagName>) Type the image name of the product—xl-deploy, and press Enter. xl-deploy
Enter the image tag(eg: <repositoryName>/<imageName>:<tagName>) Type the image tag of the product (version number), for example 22.2.0, and press Enter. 22.2.0
Choose the version of the Digital.ai Deploy for Upgrader setup of operator Use the Up/Down arrow keys to choose the version of the Deploy for the Upgrader setup of operator. 22.2.0
Do you want to enable an oidc? Type y for Yes—to enable OIDC Configuration. Otherwise, type n for No to use the default username and password for Deploy.
Note If you select No, oidc setup will be disabled
NA
Do you want to use an existing oidc configuration from previous installation? Type y for Yes—to Use an already existing oidc configuration from previous installation. Otherwise, type n for No to use the Embedded keycloak or other external oidc configuration for Deploy. NA
Use embedded keycloak? Type y for Yes—to use the embedded Keycloak authentication manager.
Note If you select No, the next question related to Keycloak public URL will not be displayed, Configure external oidc setup question will be displayed to configure external oidc setup.
NA
Enter Keycloak public URL Type the hostname of the public URL (the DNS name to access Keycloak console) that will be used for keycloak installation. NA
Use embedded DB for keycloak? Type y for Yes—to use the embedded DB for keycloak.
Note If you select No, we need to use the custom zip options and update cr yaml file with external DB for keycloak.
NA
Configure external oidc setup? Press Enter to enable the editor mode and edit the keys and values for oidc configuration. Save the changes and close the editor. For example:
.spec.oidc.enabled=true
.spec.oidc.external=true
.spec.oidc.accessTokenUri=“accessTokenURI”
.spec.oidc.clientId=“deploy”
.spec.oidc.clientSecret=“clientSecret”
.spec.oidc.emailClaim=“email”
.spec.oidc.fullNameClaim=“name”
.spec.oidc.issuer=“issuer”
.spec.oidc.keyRetrievalUri=“keyRetrievalURI”
.spec.oidc.logoutUri=“logoutURI”
.spec.oidc.postLogoutRedirectUri=“postLogoutRedirectURI”
.spec.oidc.redirectUri=“redirectURI”
.spec.oidc.rolesClaim=“groups”
.spec.oidc.userAuthorizationUri=“userAuthorizationUri”
.spec.oidc.userNameClaim=“preferred_username”
.spec.oidc.scopes=[“openid”]
Note: Mention only required field.
Select the type of the upgrade you want Use the Up/Down arrow keys to choose one of the types of upgrades, and press Enter:
  • operatorToOperator [Operator to Operator]
  • helmToOperator [Helm to Operator]

Note: To upgrade from Helm-based solution to Operator-based solution, select helmToOperator [Helm to Operator].
NA
Operator image to use (eg: <repositoryName>/<imageName>:<tagName>) Type the operator image name along with repository and tag, and press Enter.
Note: Get the latest Operator Docker image for Deploy from the official Docker Hub repository site.
xebialabs/deploy-operator:1.1.0
Enter the helm release name Type the name of the Deploy product installed using the Helm Chart, for example, dai-xld-onprem.
Note: To get the helm release name, run the following command in a separate command shell—helm ls, and copy the name of the Helm release
NA
A preview of the entered values is displayed.
  1. Type y for Yes—to confirm the values. Otherwise, type n for No—to modify the values. After you confirm, the system starts the local Deploy instance. This process will take some time.
    After the process completes, the Helm-based Deploy product is uninstalled, and the Operator-based Deploy product is installed.
    Note: The local Instance of Deploy will run on 4516 port; therefore, ensure you have the port 4516 free. Deployment status can be monitored on the local Deploy GUI. To access local deploy, use: http://localhost:4516, and log in using the default username and password.

Step 5—Register the load balancer/node port services external IP

  1. Run the following command:

    kubectl get ingress

    Sample Output

    Register load balancer

  2. Register your Load balancer external IP under the appropriate DNS.
    After the registration, you can verify the newer version of the release (Operator-based product) using the same link that you used to access the earlier version (Helm-chart based Deploy product).
  3. Replace the NodePort with the updated node port. To get the details about the services and the node port, run the following command:

    kubectl get svc.
Google Cloud Platform (GCP)

Upgrading to Deploy 22.2 on GCP GKE

Follow the steps below to Upgrading to Deploy 22.2 on Google Cloud Platform (GCP) Google Kubernetes Engine (GKE) cluster.

Step 1—Check the status of the Helm Chart installation

Run the following command:

helm status <product name>

Sample Output

Helm Installation Status

Step 2—Verify the pods running on the cluster

Run the following command:

kubectl get pods

Sample Output

Running Pods

Step 3—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 4—Upgrade the Operator

  1. Do one of the following:

    • If you want to retain the Operator artefacts, run the following command:

      xl op --upgrade --no-cleanup
    • Otherwise, run the following command:

      xl op --upgrade

      A set of questions is displayed.

    Note: Before running the command check if there is already running docker containers with name dai-deploy or with port 4516 with the command docker ps. Stop and delete the container with commands: docker stop dai-deploy; docker rm dai-deploy.

  2. To continue with the upgrade, perform the actions described in the following table:

    Note: The default values is displayed within square brackets ([])

Question Action Default Value
Select the setup mode Use the Up/Down arrow keys to choose one of the setup modes, and press Enter:
  • advanced—to specify custom values
  • quick—to quickly run the setup with default values
Note: We recommend advanced setup mode for Helm to Operator upgrade.
NA
Select the Kubernetes setup where the digitalai Devops will be installed or uninstalled Use the Up/Down arrow keys to select the platform from the list—GoogleGKE [Google Kubernetes Engine]. Press Enter. NA
Do you want to use kubernetes current-context from ~/.kube/config ? If you want to use Kubernetes configuration, type y for Yes. Otherwise, type n for No. Press Enter.
Note: For OpenShift and Amazon EKS (AWS EKS) clusters, always type n (No).
No
Enter the K8sApiServerURL of your Kubernetes installation Type the GKE Server URL, and press Enter. NA
Choose Kubernetes authentication type Use the Up/Down arrow keys to choose the type of authentication, and press Enter:
  • token
  • filepath
token
Provide authentication token for the existing service account Type the token, and press Enter. NA
Do you want to use an custom Kubernetes namespace (current default is ‘digitalai’)? If you want to use the ‘digitalai’ namespace, type n for No. Otherwise, type y for Yes. Press Enter.
Note: For Helm to Operator upgrade, always type y (Yes).
Yes
Enter the name of the existing Kubernetes namespace where the XebiaLabs DevOps Platform will be installed, updated or undeployed Type the name of the Kubernetes namespace where the Helm Chart is deployed, and press Enter. default
Product server you want to perform upgrade for Use the Up/Down arrow keys to choose one of the products you want to upgrade, and press Enter:
  • daiDeploy [Digital.ai Deploy]
  • daiDeploy [Digital.ai Deploy]
Note: Choose the product that is deployed on the Helm Chart.
NA
Enter the repository name(eg: <repositoryName>/<imageName>:<tagName>) Type the repository name from where you want to pull the product server image (Deploy), and press Enter. xebialabs
Enter the image name(eg: <repositoryName>/<imageName>:<tagName>) Type the image name of the product—xl-deploy, and press Enter. xl-deploy
Enter the image tag Type the image tag of the product (version number), and press Enter. 22.2.0
Choose the version of the Digital.ai Deploy for Upgrader setup of operator Use the Up/Down arrow keys to choose the version of the Deploy for the Upgrader setup of operator. 22.2.0
Do you want to enable an oidc? Type y for Yes—to enable OIDC Configuration. Otherwise, type n for No to use the default username and password for Deploy.
Note If you select No, oidc setup will be disabled
NA
Do you want to use an existing oidc configuration from previous installation? Type y for Yes—to Use an already existing oidc configuration from previous installation. Otherwise, type n for No to use the Embedded keycloak or other external oidc configuration for Deploy. NA
Use embedded keycloak? Type y for Yes—to use the embedded Keycloak authentication manager.
Note If you select No, the next question related to Keycloak public URL will not be displayed, Configure external oidc setup question will be displayed to configure external oidc setup.
NA
Enter Keycloak public URL Type the hostname of the public URL (the DNS name to access Keycloak console) that will be used for keycloak installation. NA
Use embedded DB for keycloak? Type y for Yes—to use the embedded DB for keycloak.
Note If you select No, we need to use the custom zip options and update cr yaml file with external DB for keycloak.
NA
Configure external oidc setup? Press Enter to enable the editor mode and edit the keys and values for oidc configuration. Save the changes and close the editor. For example:
.spec.oidc.enabled=true
.spec.oidc.external=true
.spec.oidc.accessTokenUri=“accessTokenURI”
.spec.oidc.clientId=“deploy”
.spec.oidc.clientSecret=“clientSecret”
.spec.oidc.emailClaim=“email”
.spec.oidc.fullNameClaim=“name”
.spec.oidc.issuer=“issuer”
.spec.oidc.keyRetrievalUri=“keyRetrievalURI”
.spec.oidc.logoutUri=“logoutURI”
.spec.oidc.postLogoutRedirectUri=“postLogoutRedirectURI”
.spec.oidc.redirectUri=“redirectURI”
.spec.oidc.rolesClaim=“groups”
.spec.oidc.userAuthorizationUri=“userAuthorizationUri”
.spec.oidc.userNameClaim=“preferred_username”
.spec.oidc.scopes=[“openid”]
Note: Mention only required field.
Select the type of the upgrade you want Use the Up/Down arrow keys to choose one of the types of upgrades, and press Enter:
  • operatorToOperator [Operator to Operator]
  • helmToOperator [Helm to Operator]

Note: To upgrade from Helm-based solution to Operator-based solution, select helmToOperator [Helm to Operator].
NA
Operator image to use (eg: <repositoryName>/<imageName>:<tagName>) Type the operator image name, and press Enter.
Note: Get the latest Operator Docker image for Deploy from the official Docker Hub repository site.
xebialabs/deploy-operator:1.2.0
Enter the helm release name Type the name of the Deploy product installed using the Helm Chart.
Note: To get the helm release name, run the following command in a separate command shell—helm ls, and copy the name of the Deploy product
NA

A preview of the entered values is displayed.

  1. Type y for Yes—to confirm the values. Otherwise, type n for No—to modify the values. After you confirm, the system start the local Deploy instance. This process will take some time.
    After the process completes, the Helm-based Deploy product is uninstalled, and the Operator-based Deploy product is installed.
    Note: The local Instance of Deploy will run on 4516 port; therefore, ensure you have the port 4516 free. Deployment status can be monitored on the local Deploy GUI. To access local deploy, use: http://localhost:4516, and log in using the default username and password.

Step 5—Register the load balancer/node port services external IP

  1. Run the following command:

    kubectl get svc
  2. Register your Load balancer external IP under the appropriate DNS.
    After the registration, you can verify the newer version of Deploy (Operator-based product) using the same link that you used to access the earlier version (Helm-chart based Deploy product).

Upgrading from Previous Operator-based Deploy Environment to the Latest Operator-based Deploy Environment

You can upgrade to Deploy 22.2 from Deploy 10.2 and later versions that are installed using Kubernetes Operator on the following platforms:

Amazon Elastic Container Service for Kubernetes (EKS)

Upgrading to Deploy 22.2 on Amazon EKS

Follow the steps below to Upgrading to Deploy 22.2 on Amazon EKS (AWS EKS).

Step 1—Check the status of the existing operator based Deploy instance

To check the status of the existing Operator version:

  1. Log in to Digital.ai Deploy.
  2. From the Settings icon, click About and verify the status:

    Operator-based Installation Status

Step 2—Verify the pods running on the cluster

Run the following command:

kubectl get pods

Sample Output

Running Pods

Step 3—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 4—Upgrade the Operator

  1. Run the following commands to get the custom resource definition (CRD) and custom resource (CR):

    kubectl get crd

    CRD

    Operator Version
    kubectl get <crd name>

    CR

    Operator Version

    Backup the previous crd and cr data value

    kubectl get <crd name> <cr name> -n <namespace> -o yaml > daideploy_cr_<version>.yaml

    Example

    kubectl get digitalaideploys.xld.digital.ai dai-xld -n default -o yaml > daideploy_cr_<version>.yaml    
  2. Do one of the following:

    • If you want to retain the Operator artefacts, run the following command:

      xl op --upgrade --no-cleanup
    • Otherwise, run the following command:

      xl op --upgrade

      A set of questions is displayed.

    Note: Before running the command check if there is already running docker containers with name dai-deploy or with port 4516 with the command docker ps. Stop and delete the container with commands: docker stop dai-deploy; docker rm dai-deploy.

  3. To continue with the upgrade, perform the actions described in the following table:

    Note: The default values is displayed within square brackets ([])

Question Action Default Value
Select the setup mode Use the Up/Down arrow keys to choose one of the setup modes, and press Enter:
  • advanced—to specify custom values
  • quick—to quickly run the setup with default values
Note: We recommend advanced setup mode for Helm to Operator upgrade.
NA
Select the Kubernetes setup where the digitalai Devops will be installed or uninstalled Use the Up/Down arrow keys to select the platform from the list—AwsEKS [AWS EKS]. Press Enter. NA
Do you want to use kubernetes current-context from ~/.kube/config ? If you want to use Kubernetes configuration, type y for Yes. Otherwise, type n for No. Press Enter.
Note: For OpenShift and Amazon EKS (AWS EKS) clusters, always type n (No).
No
Enter the K8sApiServerURL of your Kubernetes installation Type the AWS Server URL, and press Enter. NA
What is the Amazon EKS cluster name? Type the Amazon EKS Cluster Name, and press Enter. NA
Do you want to use the AWS SSO credentials? If you want to use the AWS SSO Access, type y for Yes. Otherwise, type n for No. If you select Yes, then next three question related to SSO [What is the AWS Account ID?, What is the AWS SSO Role Name?, What is the AWS Role ARN? ] will be displayed. No
Do you want to use the AWS credentials from your ~/.aws/credentials file? If you want to use the AWS credentials from the credentials file, type y for Yes. Otherwise, type n for No. Press Enter. Yes
What is the AWS Account ID? Account Id or alias of aws account where assume role exists. NA
What is the AWS SSO Role Name? Role name that user wants to use for deployment of operator in aws eks cluster. NA
What is the AWS Role ARN? Role Arn [eg : arn:aws:iam::945589xxxx:role/rolename] NA
Do you want to use an custom Kubernetes namespace (current default is ‘digitalai’)? If you want to use the ‘digitalai’ namespace, type n for No. Otherwise, type y for Yes. Press Enter.
Note: For Helm to Operator upgrade, always type y (Yes).
Yes
Enter the name of the existing Kubernetes namespace where the XebiaLabs DevOps Platform will be installed, updated or undeployed: Type the name of the existing Kubernetes namespace on which your operator is deployed. default
Product server you want to perform upgrade for Use the Up/Down arrow keys to choose one of the products you want to upgrade, and press Enter:
  • daiDeploy [Digital.ai Deploy]
  • daiDeploy [Digital.ai Deploy]
Note: Choose the product that is deployed on the operator.
NA
Enter the repository name(eg: <repositoryName>/<imageName>:<tagName>) Type the repository name from where you want to pull the product server image (Deploy), and press Enter. xebialabs
Enter the image name(eg: <repositoryName>/<imageName>:<tagName>) Type the image name of the product—xl-deploy, and press Enter. xl-deploy
Enter the image tag(eg: <repositoryName>/<imageName>:<tagName>) Type the image tag of the product (version number), and press Enter. 22.2.0
Choose the version of the Digital.ai Deploy for Upgrader setup of operator Use the Up/Down arrow keys to choose the version of the Deploy for the Upgrader setup of operator. 22.2.0
Do you want to enable an oidc? Type y for Yes—to enable OIDC Configuration. Otherwise, type n for No to use the default username and password for Deploy.
Note If you select No, oidc setup will be disabled
NA
Do you want to use an existing oidc configuration from previous installation? Type y for Yes—to Use an already existing oidc configuration from previous installation. Otherwise, type n for No to use the Embedded keycloak or other external oidc configuration for Deploy. NA
Use embedded keycloak? Type y for Yes—to use the embedded Keycloak authentication manager.
Note If you select No, the next question related to Keycloak public URL will not be displayed, Configure external oidc setup question will be displayed to configure external oidc setup.
NA
Enter Keycloak public URL Type the hostname of the public URL (the DNS name to access Keycloak console) that will be used for keycloak installation. NA
Use embedded DB for keycloak? Type y for Yes—to use the embedded DB for keycloak.
Note If you select No, we need to use the custom zip options and update cr yaml file with external DB for keycloak.
NA
Configure external oidc setup? Press Enter to enable the editor mode and edit the keys and values for oidc configuration. Save the changes and close the editor. For example:
.spec.oidc.enabled=true
.spec.oidc.external=true
.spec.oidc.accessTokenUri=“accessTokenURI”
.spec.oidc.clientId=“deploy”
.spec.oidc.clientSecret=“clientSecret”
.spec.oidc.emailClaim=“email”
.spec.oidc.fullNameClaim=“name”
.spec.oidc.issuer=“issuer”
.spec.oidc.keyRetrievalUri=“keyRetrievalURI”
.spec.oidc.logoutUri=“logoutURI”
.spec.oidc.postLogoutRedirectUri=“postLogoutRedirectURI”
.spec.oidc.redirectUri=“redirectURI”
.spec.oidc.rolesClaim=“groups”
.spec.oidc.userAuthorizationUri=“userAuthorizationUri”
.spec.oidc.userNameClaim=“preferred_username”
.spec.oidc.scopes=[“openid”]
Note: Mention only required field.
Select the type of the upgrade you want Use the Up/Down arrow keys to choose one of the types of upgrades, and press Enter:
  • operatorToOperator [Operator to Operator]
  • helmToOperator [Helm to Operator]

Note: To upgrade from the previous Operator-based solution, select operatorToOperator [Operator to Operator].
NA
Operator image to use (eg: <repositoryName>/<imageName>:<tagName>) Type the operator image name, and press Enter.
Note: Get the latest Operator Docker image for Deploy from the official Docker Hub repository site.
xebialabs/deploy-operator:1.1.0
Do you want to use custom operator zip file for Deploy? If you would like to change the CR during upgrade, type Y for Yes. Otherwise, type n for No and you will just upgrade the version of the Deploy in the CR. Press Enter. Yes
Deploy operator zip to use (absolute path or URL to the zip) Enter the URL of the ZIP file [Software Distribution site] (https://dist.xebialabs.com/customer/operator/deploy/), or the absolute path of the ZIP file on your local drive, and press Enter.
Note: The new CR version that will be applied during upgrade and the merged values as per the keys list will be extracted during the upgrade.
NA
Enter the name of the custom resource Type the name of the Operator CR. NA
Enter the name of the custom resource definition Type the name of the Operator CRD. NA
Edit list of custom resource keys that will migrate to the new Deploy CR Press Enter to enable the editor mode and edit the keys lists to select all the CR values you would like to retain after upgrade. Save the changes and close the editor. Default value is the specific list of keys, which are automatically updated in most cases. For example:
.spec.replicaCount
.spec.UseExistingDB.Enabled
.spec.UseExistingMQ.Enabled
.spec.ingress.hosts
.spec.KeystorePassphrase
.spec.Persistence.Size
.spec.Persistence.StorageClass
.spec.RepositoryKeystore
.spec.postgresql.persistence.size
.spec.postgresql.persistence.storageClass
.spec.postgresql.postgresqlMaxConnections
.spec.keycloak.postgresql.persistence.size
.spec.keycloak.postgresql.postgresqlMaxConnections
.spec.haproxy-ingress.install
.spec.rabbitmq.install
.spec.keycloak.install
.spec.nginx-ingress-controller.install
.spec.postgresql.install
.spec.rabbitmq.install
.spec.oidc.enabled
.spec.rabbitmq.persistence.storageClass
.spec.rabbitmq.persistence.size
.spec.rabbitmq.replicaCount
.spec.rabbitmq.persistence.replicaCount
.spec.rabbitmq.persistence.storageClass
.spec.route.hosts
.spec.xlrLicense

A preview of the entered values is displayed.

  1. Type y for Yes—to confirm the values. Otherwise, type n for No—to modify the values. After you confirm, the system starts the local Deploy instance. This process will take some time.
    After the process completes, the previous Operator-based Deploy product is uninstalled, and the new Operator-based Deploy product is installed.
    Note: The local Instance of Deploy will run on 4516 port; therefore, ensure you have the port 4516 free. Deployment status can be monitored on the local Deploy GUI. To access local deploy, use: http://localhost:4516, and log in using the default username and password.

Step 5—Register the load balancer/node port services external IP

  1. Run the following command:

    kubectl get svc
  2. Register your Load balancer external IP under the appropriate DNS.

    Step 6—Verify the version of the Deploy instance

After the registration, verify the newer version of Deploy (latest Operator-based Deploy product):

  1. Log in to Digital.ai Deploy.
  2. From the Settings icon, click About:

    Operator Version
Azure Kubernetes Service (AKS)

Upgrading to Deploy 22.2 on AKS

Follow the steps below to upgrade to Deploy 22.2 on Azure Kubernetes Service (AKS).

Step 1—Check the status of the existing operator based Deploy instance

To check the status of the existing Operator version:

  1. Log in to Digital.ai Deploy.
  2. From the Settings icon, click About and verify the status.

Step 2—Verify the pods running on the cluster

Run the following command:

kubectl get pods

Step 3—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 4—Upgrade the Operator

  1. Run the following commands to get the custom resource definition (CRD) and custom resource (CR):

    kubectl get crd

    The system fetches the CRD details.

    kubectl get <crd name>

    The system fetches the CRD details.

    Backup the previous crd and cr data value

    kubectl get <crd name> <cr name> -n <namespace> -o yaml > daideploy_cr_<version>.yaml

    Example

    kubectl get digitalaideploys.xld.digital.ai dai-xld -n default -o yaml > daideploy_cr_<version>.yaml    
  2. Do one of the following:

    • If you want to retain the Operator artefacts, run the following command:

      xl op --upgrade --no-cleanup
    • Otherwise, run the following command:

      xl op --upgrade

      A set of questions is displayed.

    Note: Before running the command check if there is already running docker containers with name dai-deploy or with port 4516 with the command docker ps. Stop and delete the container with commands: docker stop dai-deploy; docker rm dai-deploy.

  3. To continue with the upgrade, perform the actions described in the following table:

    Note: The default values is displayed within square brackets ([])

Question Action Default Value
Select the setup mode Use the Up/Down arrow keys to choose one of the setup modes, and press Enter:
  • advanced—to specify custom values
  • quick—to quickly run the setup with default values
Note: We recommend advanced setup mode for Helm to Operator upgrade.
NA
Select the Kubernetes setup where the digitalai Devops will be installed or uninstalled Use the Up/Down arrow keys to select the platform from the list—Azure AKS [Azure AKS]. Press Enter. NA
Do you want to use kubernetes current-context from ~/.kube/config ? If you want to use Kubernetes configuration, type y for Yes. Otherwise, type n for No. Press Enter.
Note: For OpenShift and Azure AKS clusters, always type n (No).
Yes
Do you want to use an custom Kubernetes namespace (current default is ‘digitalai’)? If you want to use the ‘digitalai’ namespace, type n for No. Otherwise, type y for Yes. Press Enter.
For Operator to Operator upgrade, always select Yes.
Yes
Enter the name of the existing Kubernetes namespace where the XebiaLabs DevOps Platform will be installed, updated or undeployed: Type the name of the existing Kubernetes namespace on which your operator is deployed. default
Product server you want to perform upgrade for Use the Up/Down arrow keys to choose one of the products you want to upgrade, and press Enter:
  • daiDeploy [Digital.ai Deploy]
  • daiDeploy [Digital.ai Deploy]
Note: Choose the product that is deployed on the operator.
NA
Enter the repository name Type the repository name from where you want to pull the product server image (Deploy), and press Enter. xebialabs
Enter the image name Type the image name of the product—xl-deploy, and press Enter. xl-deploy
Enter the image tag Type the image tag of the product (version number), and press Enter. 22.2.0
Choose the version of the Digital.ai Deploy for Upgrader setup of operator Use the Up/Down arrow keys to choose the version of the Deploy for the Upgrader setup of operator. 22.2.0
Do you want to enable an oidc? Type y for Yes—to enable OIDC Configuration. Otherwise, type n for No to use the default username and password for Deploy.
Note If you select No, oidc setup will be disabled
NA
Do you want to use an existing oidc configuration from previous installation? Type y for Yes—to Use an already existing oidc configuration from previous installation. Otherwise, type n for No to use the Embedded keycloak or other external oidc configuration for Deploy. NA
Use embedded keycloak? Type y for Yes—to use the embedded Keycloak authentication manager.
Note If you select No, the next question related to Keycloak public URL will not be displayed, Configure external oidc setup question will be displayed to configure external oidc setup.
NA
Enter Keycloak public URL Type the hostname of the public URL (the DNS name to access Keycloak console) that will be used for keycloak installation. NA
Use embedded DB for keycloak? Type y for Yes—to use the embedded DB for keycloak.
Note If you select No, we need to use the custom zip options and update cr yaml file with external DB for keycloak.
NA
Configure external oidc setup? Press Enter to enable the editor mode and edit the keys and values for oidc configuration. Save the changes and close the editor. For example:
.spec.oidc.enabled=true
.spec.oidc.external=true
.spec.oidc.accessTokenUri=“accessTokenURI”
.spec.oidc.clientId=“deploy”
.spec.oidc.clientSecret=“clientSecret”
.spec.oidc.emailClaim=“email”
.spec.oidc.fullNameClaim=“name”
.spec.oidc.issuer=“issuer”
.spec.oidc.keyRetrievalUri=“keyRetrievalURI”
.spec.oidc.logoutUri=“logoutURI”
.spec.oidc.postLogoutRedirectUri=“postLogoutRedirectURI”
.spec.oidc.redirectUri=“redirectURI”
.spec.oidc.rolesClaim=“groups”
.spec.oidc.userAuthorizationUri=“userAuthorizationUri”
.spec.oidc.userNameClaim=“preferred_username”
.spec.oidc.scopes=[“openid”]
Note: Mention only required field.
Select the type of the upgrade you want Use the Up/Down arrow keys to choose one of the types of upgrades, and press Enter:
  • operatorToOperator [Operator to Operator]
  • helmToOperator [Helm to Operator]

Note: To upgrade from the previous Operator-based solution, select operatorToOperator [Operator to Operator].
NA
Operator image to use (eg: <repositoryName>/<imageName>:<tagName>) Type the operator image name, and press Enter.
Note: Get the latest Operator Docker image for Deploy from the official Docker Hub repository site.
xebialabs/deploy-operator:1.1.0
Do you want to use custom operator zip file for Deploy? If you would like to change the CR during upgrade, type Y for Yes. Otherwise, type n for No and you will just upgrade the version of the Deploy in the CR. Press Enter. Yes
Deploy operator zip to use (absolute path or URL to the zip) Enter the URL of the ZIP file [Software Distribution site] (https://dist.xebialabs.com/customer/operator/deploy/), or the absolute path of the ZIP file on your local drive, and press Enter.
Note: The new CR version that will be applied during upgrade and the merged values as per the keys list will be extracted during the upgrade.
NA
Enter the name of the custom resource Type the name of the Operator CR (see Step 4). NA
Enter the name of the custom resource definition Type the name of the Operator CRD (see Step 4). NA
Edit list of custom resource keys that will migrate to the new Deploy CR Press Enter to enable the editor mode and edit the keys lists to select all the CR values you would like to retain after upgrade. Save the changes and close the editor. Default value is specific list of keys that are in the most cases updated. For example:
.spec.replicaCount
.spec.UseExistingDB.Enabled
.spec.UseExistingMQ.Enabled
.spec.ingress.hosts
.spec.KeystorePassphrase
.spec.Persistence.Size
.spec.Persistence.StorageClass
.spec.RepositoryKeystore
.spec.postgresql.persistence.size
.spec.postgresql.persistence.storageClass
.spec.postgresql.postgresqlMaxConnections
.spec.keycloak.postgresql.persistence.size
.spec.keycloak.postgresql.postgresqlMaxConnections
.spec.haproxy-ingress.install
.spec.rabbitmq.install
.spec.keycloak.install
.spec.nginx-ingress-controller.install
.spec.postgresql.install
.spec.rabbitmq.install
.spec.oidc.enabled
.spec.rabbitmq.persistence.storageClass
.spec.rabbitmq.persistence.size
.spec.rabbitmq.replicaCount
.spec.rabbitmq.persistence.replicaCount
.spec.rabbitmq.persistence.storageClass
.spec.route.hosts
.spec.xlrLicense

A preview of the entered values is displayed.

  1. Type y for Yes—to confirm the values. Otherwise, type n for No—to modify the values. After you confirm, the system starts the local Deploy instance. This process will take some time.
    After the process completes, the previous Operator-based Deploy product is uninstalled, and the new Operator-based Deploy product is installed.
    Note: The local Instance of Deploy will run on 4516 port; therefore, ensure you have the port 4516 free. Deployment status can be monitored on the local Deploy GUI. To access local deploy, use: http://localhost:4516, and log in using the default username and password.

Step 5—Register the load balancer/node port services external IP

  1. Run the following command:

    kubectl get svc
  2. Register your Load balancer external IP under the appropriate DNS.

    Step 6—Verify the version of the Deploy instance

After the registration, verify the newer version of Deploy (latest Operator-based Deploy product):

  1. Log in to Digital.ai Deploy.
  2. From the Settings icon, click About.
Kubernetes On-premise Cluster

Upgrading to Deploy 22.2 on Kubernetes On-premise Cluster

Follow the steps below to upgrade to Deploy 22.2 on Kubernetes On-premise Cluster.

Step 1—Check the status of the existing operator based Deploy instance

To check the status of the existing Operator version:

  1. Log in to Digital.ai Deploy.
  2. From the Settings icon, click About and verify the status.

Step 2—Verify the pods running on the cluster

Run the following command:

kubectl get pods

Step 3—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 4—Upgrade the Operator

  1. Run the following commands to get the custom resource definition (CRD) and custom resource (CR):

    kubectl get crd

    The system fetches the CRD details.

    kubectl get <crd name>

    The system fetches the CRD details.

    Backup the previous crd and cr data value

    kubectl get <crd name> <cr name> -n <namespace> -o yaml > daideploy_cr_<version>.yaml

    Example

    kubectl get digitalaideploys.xld.digital.ai dai-xld -n default -o yaml > daideploy_cr_<version>.yaml    
  2. Do one of the following:

    • If you want to retain the Operator artefacts, run the following command:

      xl op --upgrade --no-cleanup
    • Otherwise, run the following command:

      xl op --upgrade

      A set of questions is displayed.

      Note: Before running the command check if there is already running docker containers with name dai-deploy or with port 4516 with the command docker ps. Stop and delete the container with commands: docker stop dai-deploy; docker rm dai-deploy.

  3. To continue with the upgrade, perform the actions described in the following table:

    Note: The default values is displayed within square brackets ([])

Question Action Default Value
Select the setup mode Use the Up/Down arrow keys to choose one of the setup modes, and press Enter:
  • advanced—to specify custom values
  • quick—to quickly run the setup with default values
Note: We recommend advanced setup mode for Helm to Operator upgrade.
NA
Select the Kubernetes setup where the digitalai Devops will be installed or uninstalled Use the Up/Down arrow keys to select the platform from the list—PlainK8SCluster [Plain multi-node K8s cluster]. Press Enter. NA
Do you want to use kubernetes current-context from ~/.kube/config ? If you want to use Kubernetes configuration, type y for Yes. Otherwise, type n for No. Press Enter.
Note: For OpenShift and Azure AKS clusters, always type n (No).
Yes
Do you want to use an custom Kubernetes namespace (current default is ‘digitalai’)? If you want to use the ‘digitalai’ namespace, type n for No. Otherwise, type y for Yes. Press Enter.
For Operator to Operator upgrade, always select Yes.
Yes
Enter the name of the existing Kubernetes namespace where the XebiaLabs DevOps Platform will be installed, updated or undeployed: Type the name of the existing Kubernetes namespace on which your operator is deployed. default
Product server you want to perform upgrade for Use the Up/Down arrow keys to choose one of the products you want to upgrade, and press Enter:
  • daiDeploy [Digital.ai Deploy]
  • daiDeploy [Digital.ai Deploy]
Note: Choose the product that is deployed on the operator.
NA
Enter the repository name Type the repository name from where you want to pull the product server image (Deploy), and press Enter. xebialabs
Enter the image name Type the image name of the product—xl-deploy, and press Enter. xl-deploy
Enter the image tag Type the image tag of the product (version number), and press Enter. 22.2.0
Choose the version of the Digital.ai Deploy for Upgrader setup of operator Use the Up/Down arrow keys to choose the version of the Deploy for the Upgrader setup of operator. 22.2.0
Do you want to enable an oidc? Type y for Yes—to enable OIDC Configuration. Otherwise, type n for No to use the default username and password for Deploy.
Note If you select No, oidc setup will be disabled
NA
Do you want to use an existing oidc configuration from previous installation? Type y for Yes—to Use an already existing oidc configuration from previous installation. Otherwise, type n for No to use the Embedded keycloak or other external oidc configuration for Deploy. NA
Use embedded keycloak? Type y for Yes—to use the embedded Keycloak authentication manager.
Note If you select No, the next question related to Keycloak public URL will not be displayed, Configure external oidc setup question will be displayed to configure external oidc setup.
NA
Enter Keycloak public URL Type the hostname of the public URL (the DNS name to access Keycloak console) that will be used for keycloak installation. NA
Use embedded DB for keycloak? Type y for Yes—to use the embedded DB for keycloak.
Note If you select No, we need to use the custom zip options and update cr yaml file with external DB for keycloak.
NA
Configure external oidc setup? Press Enter to enable the editor mode and edit the keys and values for oidc configuration. Save the changes and close the editor. For example:
.spec.oidc.enabled=true
.spec.oidc.external=true
.spec.oidc.accessTokenUri=“accessTokenURI”
.spec.oidc.clientId=“deploy”
.spec.oidc.clientSecret=“clientSecret”
.spec.oidc.emailClaim=“email”
.spec.oidc.fullNameClaim=“name”
.spec.oidc.issuer=“issuer”
.spec.oidc.keyRetrievalUri=“keyRetrievalURI”
.spec.oidc.logoutUri=“logoutURI”
.spec.oidc.postLogoutRedirectUri=“postLogoutRedirectURI”
.spec.oidc.redirectUri=“redirectURI”
.spec.oidc.rolesClaim=“groups”
.spec.oidc.userAuthorizationUri=“userAuthorizationUri”
.spec.oidc.userNameClaim=“preferred_username”
.spec.oidc.scopes=[“openid”]
Note: Mention only required field.
Select the type of the upgrade you want Use the Up/Down arrow keys to choose one of the types of upgrades, and press Enter:
  • operatorToOperator [Operator to Operator]
  • helmToOperator [Helm to Operator]

Note: To upgrade from the previous Operator-based solution, select operatorToOperator [Operator to Operator].
NA
Operator image to use (eg: <repositoryName>/<imageName>:<tagName>) Type the operator image name, and press Enter.
Note: Get the latest Operator Docker image for Deploy from the official Docker Hub repository site.
xebialabs/deploy-operator:1.1.0
Do you want to use custom operator zip file for Deploy? If you would like to change the CR during upgrade, type Y for Yes. Otherwise, type n for No and you will just upgrade the version of the Deploy in the CR. Press Enter. Yes
Deploy operator zip to use (absolute path or URL to the zip) Enter the URL of the ZIP file [Software Distribution site] (https://dist.xebialabs.com/customer/operator/deploy/), or the absolute path of the ZIP file on your local drive, and press Enter.
Note: The new CR version that will be applied during upgrade and the merged values as per the keys list will be extracted during the upgrade.
NA
Enter the name of the custom resource Type the name of the Operator CR (see Step 4). NA
Enter the name of the custom resource definition Type the name of the Operator CRD (see Step 4). NA
Edit list of custom resource keys that will migrate to the new Deploy CR Press Enter to enable the editor mode and edit the keys lists to select all the CR values you would like to retain after upgrade. Save the changes and close the editor. Default value is specific list of keys that are in the most cases updated. For example:
.spec.replicaCount
.spec.UseExistingDB.Enabled
.spec.UseExistingMQ.Enabled
.spec.ingress.hosts
.spec.KeystorePassphrase
.spec.Persistence.Size
.spec.Persistence.StorageClass
.spec.RepositoryKeystore
.spec.postgresql.persistence.size
.spec.postgresql.persistence.storageClass
.spec.postgresql.postgresqlMaxConnections
.spec.keycloak.postgresql.persistence.size
.spec.keycloak.postgresql.postgresqlMaxConnections
.spec.haproxy-ingress.install
.spec.rabbitmq.install
.spec.keycloak.install
.spec.nginx-ingress-controller.install
.spec.postgresql.install
.spec.rabbitmq.install
.spec.oidc.enabled
.spec.rabbitmq.persistence.storageClass
.spec.rabbitmq.persistence.size
.spec.rabbitmq.replicaCount
.spec.rabbitmq.persistence.replicaCount
.spec.rabbitmq.persistence.storageClass
.spec.route.hosts
.spec.xlrLicense

A preview of the entered values is displayed.

  1. Type y for Yes—to confirm the values. Otherwise, type n for No—to modify the values. After you confirm, the system starts the local Deploy instance. This process will take some time.
    After the process completes, the previous Operator-based Deploy product is uninstalled, and the new Operator-based Deploy product is installed.
    Note: The local Instance of Deploy will run on 4516 port; therefore, ensure you have the port 4516 free. Deployment status can be monitored on the local Deploy GUI. To access local deploy, use: http://localhost:4516, and log in using the default username and password.

Step 5—Register the load balancer/node port services external IP

  1. Run the following command:

    kubectl get svc
  2. Register your Load balancer external IP under the appropriate DNS.

    Step 6—Verify the version of the Deploy instance

After the registration, verify the newer version of Deploy (latest Operator-based Deploy product):

  1. Log in to Digital.ai Deploy.
  2. From the Settings icon, click About.
Azure Kubernetes Service (AKS)

Upgrading to Deploy 22.2 on AKS

Follow the steps below to upgrade to Deploy 22.2 on Azure Kubernetes Service (AKS).

Step 1—Check the status of the existing operator based Deploy instance

To check the status of the existing Operator version:

  1. Log in to Digital.ai Deploy.
  2. From the Settings icon, click About and verify the status.

Step 2—Verify the pods running on the cluster

Run the following command:

kubectl get pods

Step 3—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 4—Upgrade the Operator

  1. Run the following commands to get the custom resource definition (CRD) and custom resource (CR):

    kubectl get crd

    The system fetches the CRD details.

    CRD

    CRD

    kubectl get <crd name>

    The system fetches the CRD details.

    CR

    CR

    Backup the previous crd and cr data value

    kubectl get <crd name> <cr name> -n <namespace> -o yaml > daideploy_cr_<version>.yaml

    Example

    kubectl get digitalaideploys.xld.digital.ai dai-xld -n default -o yaml > daideploy_cr_<version>.yaml    
  2. Do one of the following:

    • If you want to retain the Operator artefacts, run the following command:

      xl op --upgrade --no-cleanup
    • Otherwise, run the following command:

      xl op --upgrade

      A set of questions is displayed.

    Note: Before running the command check if there is already running docker containers with name dai-deploy or with port 4516 with the command docker ps. Stop and delete the container with commands: docker stop dai-deploy; docker rm dai-deploy.

  3. To continue with the upgrade, perform the actions described in the following table:

    Note: The default values is displayed within square brackets ([])

Question Action Default Value
Select the setup mode Use the Up/Down arrow keys to choose one of the setup modes, and press Enter:
  • advanced—to specify custom values
  • quick—to quickly run the setup with default values
Note: We recommend advanced setup mode for Helm to Operator upgrade.
NA
Select the Kubernetes setup where the digitalai Devops will be installed or uninstalled Use the Up/Down arrow keys to select the platform from the list—Azure AKS [Azure AKS]. Press Enter. NA
Do you want to use kubernetes current-context from ~/.kube/config ? If you want to use Kubernetes configuration, type y for Yes. Otherwise, type n for No. Press Enter.
Note: For Azure AKS clusters, always type n (No).
Yes
Do you want to use an custom Kubernetes namespace (current default is ‘digitalai’)? If you want to use the ‘digitalai’ namespace, type n for No. Otherwise, type y for Yes. Press Enter.
For Operator to Operator upgrade, always select Yes.
Yes
Enter the name of the existing Kubernetes namespace where the XebiaLabs DevOps Platform will be installed, updated or undeployed: Type the name of the existing Kubernetes namespace on which your operator is deployed. default
Product server you want to perform upgrade for Use the Up/Down arrow keys to choose one of the products you want to upgrade, and press Enter:
  • daiDeploy [Digital.ai Deploy]
  • daiDeploy [Digital.ai Deploy]
Note: Choose the product that is deployed on the operator.
NA
Enter the repository name Type the repository name from where you want to pull the product server image (Deploy), and press Enter. xebialabs
Enter the image name Type the image name of the product—xl-deploy, and press Enter. xl-deploy
Enter the image tag Type the image tag of the product (version number), and press Enter. 22.2.0
Choose the version of the Digital.ai Deploy for Upgrader setup of operator Use the Up/Down arrow keys to choose the version of the Deploy for the Upgrader setup of operator. 22.2.0
Do you want to enable an oidc? Type y for Yes—to enable OIDC Configuration. Otherwise, type n for No to use the default username and password for Deploy.
Note If you select No, oidc setup will be disabled
NA
Do you want to use an existing oidc configuration from previous installation? Type y for Yes—to Use an already existing oidc configuration from previous installation. Otherwise, type n for No to use the Embedded keycloak or other external oidc configuration for Deploy. NA
Use embedded keycloak? Type y for Yes—to use the embedded Keycloak authentication manager.
Note If you select No, the next question related to Keycloak public URL will not be displayed, Configure external oidc setup question will be displayed to configure external oidc setup.
NA
Enter Keycloak public URL Type the hostname of the public URL (the DNS name to access Keycloak console) that will be used for keycloak installation. NA
Use embedded DB for keycloak? Type y for Yes—to use the embedded DB for keycloak.
Note If you select No, we need to use the custom zip options and update cr yaml file with external DB for keycloak.
NA
Configure external oidc setup? Press Enter to enable the editor mode and edit the keys and values for oidc configuration. Save the changes and close the editor. For example:
.spec.oidc.enabled=true
.spec.oidc.external=true
.spec.oidc.accessTokenUri=“accessTokenURI”
.spec.oidc.clientId=“deploy”
.spec.oidc.clientSecret=“clientSecret”
.spec.oidc.emailClaim=“email”
.spec.oidc.fullNameClaim=“name”
.spec.oidc.issuer=“issuer”
.spec.oidc.keyRetrievalUri=“keyRetrievalURI”
.spec.oidc.logoutUri=“logoutURI”
.spec.oidc.postLogoutRedirectUri=“postLogoutRedirectURI”
.spec.oidc.redirectUri=“redirectURI”
.spec.oidc.rolesClaim=“groups”
.spec.oidc.userAuthorizationUri=“userAuthorizationUri”
.spec.oidc.userNameClaim=“preferred_username”
.spec.oidc.scopes=[“openid”]
Note: Mention only required field.
Select the type of the upgrade you want Use the Up/Down arrow keys to choose one of the types of upgrades, and press Enter:
  • operatorToOperator [Operator to Operator]
  • helmToOperator [Helm to Operator]

Note: To upgrade from the previous Operator-based solution, select operatorToOperator [Operator to Operator].
NA
Operator image to use (eg: <repositoryName>/<imageName>:<tagName>) Type the operator image name, and press Enter.
Note: Get the latest Operator Docker image for Deploy from the official Docker Hub repository site.
xebialabs/deploy-operator:1.1.0
Do you want to use custom operator zip file for Deploy? If you would like to change the CR during upgrade, type Y for Yes. Otherwise, type n for No and you will just upgrade the version of the Deploy in the CR. Press Enter. Yes
Deploy operator zip to use (absolute path or URL to the zip) Enter the URL of the ZIP file [Software Distribution site] (https://dist.xebialabs.com/customer/operator/deploy/), or the absolute path of the ZIP file on your local drive, and press Enter.
Note: The new CR version that will be applied during upgrade and the merged values as per the keys list will be extracted during the upgrade.
NA
Enter the name of the custom resource Type the name of the Operator CR (see Step 5). NA
Enter the name of the custom resource definition Type the name of the Operator CRD (see Step 5). NA
Edit list of custom resource keys that will migrate to the new Deploy CR Press Enter to enable the editor mode and edit the keys lists to select all the CR values you would like to retain after upgrade. Save the changes and close the editor. Default value is specific list of keys that are in the most cases updated. For example:
.spec.replicaCount
.spec.UseExistingDB.Enabled
.spec.UseExistingMQ.Enabled
.spec.ingress.hosts
.spec.KeystorePassphrase
.spec.Persistence.Size
.spec.Persistence.StorageClass
.spec.RepositoryKeystore
.spec.postgresql.persistence.size
.spec.postgresql.persistence.storageClass
.spec.postgresql.postgresqlMaxConnections
.spec.keycloak.postgresql.persistence.size
.spec.keycloak.postgresql.postgresqlMaxConnections
.spec.haproxy-ingress.install
.spec.rabbitmq.install
.spec.keycloak.install
.spec.nginx-ingress-controller.install
.spec.postgresql.install
.spec.rabbitmq.install
.spec.oidc.enabled
.spec.rabbitmq.persistence.storageClass
.spec.rabbitmq.persistence.size
.spec.rabbitmq.replicaCount
.spec.rabbitmq.persistence.replicaCount
.spec.rabbitmq.persistence.storageClass
.spec.route.hosts
.spec.xlrLicense

A preview of the entered values is displayed.

  1. Type y for Yes—to confirm the values. Otherwise, type n for No—to modify the values. After you confirm, the system starts the local Deploy instance. This process will take some time.
    After the process completes, the previous Operator-based Deploy product is uninstalled, and the new Operator-based Deploy product is installed.
    Note: The local Instance of Deploy will run on 4516 port; therefore, ensure you have the port 4516 free. Deployment status can be monitored on the local Deploy GUI. To access local deploy, use: http://localhost:4516, and log in using the default username and password.

Step 5—Register the load balancer/node port services external IP

  1. Run the following command:

    kubectl get svc
  2. Register your Load balancer external IP under the appropriate DNS.

Step 6—Verify the version of the Deploy instance

After the registration, verify the newer version of Deploy (latest Operator-based Deploy product):

  1. Log in to Digital.ai Deploy.
  2. From the Settings icon, click About.
OpenShift Cluster

Upgrading to Deploy 22.2 on OpenShift Cluster

This section describes how to upgrade Deploy using the Deploy Operator on the OpenShift cluster. You can upgrade on the following OpenShift platforms:

  • OpenShift cluster on AWS

Step 1—Check the status of the existing operator based Deploy instance

To check the status of the existing Operator version:

  1. Log in to Digital.ai Deploy.
  2. From the Settings icon, click About and verify the status.

Step 2—Verify the pods running on the cluster

Run the following command:

oc get pods

Step 3—Upgrade the Operator

  1. Run the following commands to get the custom resource definition (CRD) and custom resource (CR):

    oc get crd

    The system fetches the CRD details.

    oc get <crd name>

    The system fetches the CRD details.

    Backup the previous crd and cr data value

    kubectl get <crd name> <cr name> -n <namespace> -o yaml > daideploy_cr_<version>.yaml

    Example

    kubectl get digitalaideploys.xld.digital.ai dai-xld -n default -o yaml > daideploy_cr_<version>.yaml    
  2. Do one of the following:

    • If you want to retain the Operator artefacts, run the following command:

      xl op --upgrade --no-cleanup
    • Otherwise, run the following command:

      xl op --upgrade

      A set of questions is displayed.

    Note: Before running the command check if there is already running docker containers with name dai-deploy or with port 4516 with the command docker ps. Stop and delete the container with commands: docker stop dai-deploy; docker rm dai-deploy.

  3. To continue with the upgrade, perform the actions described in the following table:

    Note: The default values is displayed within square brackets ([])

Question Action Default Value
Select the setup mode Use the Up/Down arrow keys to choose one of the setup modes, and press Enter:
  • advanced—to specify custom values
  • quick—to quickly run the setup with default values
Note: We recommend advanced setup mode for Operator to Operator upgrade.
NA
Select the Kubernetes setup where the digitalai Devops will be installed or uninstalled Use the Up/Down arrow keys to select the platform from the list—Openshift [Openshift]. Press Enter. NA
Do you want to use kubernetes current-context from ~/.kube/config ? If you want to use Kubernetes configuration, type y for Yes. Otherwise, type n for No. Press Enter.
Note: For GoogleGKE [Google Kubernetes Engine] cluster, always type n (No).
No
Enter the K8sApiServerURL of your Kubernetes installation Type the OpenShift Server URL, and press Enter. NA
Choose kubernetes authentication type Use the Up/Down arrow keys to choose one of the authentication types for the OpenShift cluster:
  • token
  • filepath
token
Provide authentication token for the existing service account Enter the token. NA
Do you want to use an custom Kubernetes namespace (current default is ‘digitalai’)? If you want to use the ‘digitalai’ namespace, type n for No. Otherwise, type y for Yes. Press Enter.
For Operator to Operator upgrade, always select Yes.
Yes
Enter the name of the existing Kubernetes namespace where the XebiaLabs DevOps Platform will be installed, updated or undeployed Enter the name of the existing Kubernetes namespace on which your operator is deployed. default
Product server you want to perform upgrade for Use the Up/Down arrow keys to choose one of the products you want to upgrade, and press Enter:
  • daiDeploy [Digital.ai Deploy]
  • daiDeploy [Digital.ai Deploy]
Note: Choose the product that is deployed on the Helm Chart.
NA
Enter the repository name Type the repository name from where you want to pull the product server image (Deploy), and press Enter. xebialabs
Enter the image name Type the image name of the product—xl-deploy, and press Enter. xl-deploy
Enter the image tag Type the image tag of the product (version number), and press Enter. 22.2.0
Choose the version of the Digital.ai Deploy for Upgrader setup of operator Use the Up/Down arrow keys to choose the version of the Deploy for the Upgrader setup of operator. 22.2.0
Do you want to enable an oidc? Type y for Yes—to enable OIDC Configuration. Otherwise, type n for No to use the default username and password for Deploy.
Note If you select No, oidc setup will be disabled
NA
Do you want to use an existing oidc configuration from previous installation? Type y for Yes—to Use an already existing oidc configuration from previous installation. Otherwise, type n for No to use the Embedded keycloak or other external oidc configuration for Deploy. NA
Use embedded keycloak? Type y for Yes—to use the embedded Keycloak authentication manager.
Note If you select No, the next question related to Keycloak public URL will not be displayed, Configure external oidc setup question will be displayed to configure external oidc setup.
NA
Enter Keycloak public URL Type the hostname of the public URL (the DNS name to access Keycloak console) that will be used for keycloak installation. NA
Use embedded DB for keycloak? Type y for Yes—to use the embedded DB for keycloak.
Note If you select No, we need to use the custom zip options and update cr yaml file with external DB for keycloak.
NA
Configure external oidc setup? Press Enter to enable the editor mode and edit the keys and values for oidc configuration. Save the changes and close the editor. For example:
.spec.oidc.enabled=true
.spec.oidc.external=true
.spec.oidc.accessTokenUri=“accessTokenURI”
.spec.oidc.clientId=“deploy”
.spec.oidc.clientSecret=“clientSecret”
.spec.oidc.emailClaim=“email”
.spec.oidc.fullNameClaim=“name”
.spec.oidc.issuer=“issuer”
.spec.oidc.keyRetrievalUri=“keyRetrievalURI”
.spec.oidc.logoutUri=“logoutURI”
.spec.oidc.postLogoutRedirectUri=“postLogoutRedirectURI”
.spec.oidc.redirectUri=“redirectURI”
.spec.oidc.rolesClaim=“groups”
.spec.oidc.userAuthorizationUri=“userAuthorizationUri”
.spec.oidc.userNameClaim=“preferred_username”
.spec.oidc.scopes=[“openid”]
Note: Mention only required field.
Select the type of the upgrade you want Use the Up/Down arrow keys to choose one of the types of upgrades, and press Enter:
  • operatorToOperator [Operator to Operator]
  • helmToOperator [Helm to Operator]

Note: To upgrade from the previous Operator-based solution, select operatorToOperator [Operator to Operator].
NA
Operator image to use (eg: <repositoryName>/<imageName>:<tagName>) Type the operator image name, and press Enter.
Note: Get the latest Operator Docker image for Deploy from the official Docker Hub repository site.
xebialabs/deploy-operator:1.1.0
Do you want to use custom operator zip file for Deploy? If you would like to change the CR during upgrade, type Y for Yes. Otherwise, type n for No and you will just upgrade the version of the Deploy in the CR. Press Enter. Yes
Deploy operator zip to use (absolute path or URL to the zip) Enter the URL of the ZIP file [Software Distribution site] (https://dist.xebialabs.com/customer/operator/deploy/), or the absolute path of the ZIP file on your local drive, and press Enter.
Note: The new CR version that will be applied during upgrade and the merged values as per the keys list will be extracted during the upgrade.
NA
Enter the name of the custom resource Type the name of the Operator CR (see Step 4). NA
Enter the name of the custom resource definition Type the name of the Operator CRD (see Step 4). NA
Edit list of custom resource keys that will migrate to the new Deploy CR Press Enter to enable the editor mode and edit the keys lists to select all the CR values you would like to retain after upgrade. Save the changes and close the editor. Default value is specific list of keys that are in the most cases updated. For example:
.spec.replicaCount
.spec.UseExistingDB.Enabled
.spec.UseExistingMQ.Enabled
.spec.ingress.hosts
.spec.KeystorePassphrase
.spec.Persistence.Size
.spec.Persistence.StorageClass
.spec.RepositoryKeystore
.spec.postgresql.persistence.size
.spec.postgresql.persistence.storageClass
.spec.postgresql.postgresqlMaxConnections
.spec.keycloak.postgresql.persistence.size
.spec.keycloak.postgresql.postgresqlMaxConnections
.spec.haproxy-ingress.install
.spec.rabbitmq.install
.spec.keycloak.install
.spec.nginx-ingress-controller.install
.spec.postgresql.install
.spec.rabbitmq.install
.spec.oidc.enabled
.spec.rabbitmq.persistence.storageClass
.spec.rabbitmq.persistence.size
.spec.rabbitmq.replicaCount
.spec.rabbitmq.persistence.replicaCount
.spec.rabbitmq.persistence.storageClass
.spec.route.hosts
.spec.xlrLicense

A preview of the entered values is displayed.

  1. Type y for Yes—to confirm the values. Otherwise, type n for No—to modify the values. After you confirm, the system starts the local Deploy instance. This process will take some time.
    After the process completes, the previous Operator-based Deploy product is uninstalled, and the new Operator-based Deploy product is installed.
    Note: The local Instance of Deploy will run on 4516 port; therefore, ensure you have the port 4516 free. Deployment status can be monitored on the local Deploy GUI. To access local deploy, use: http://localhost:4516, and log in using the default username and password.

Step 4—Verify the version of the Deploy instance

After the registration, verify the newer version of Deploy (latest Operator-based Deploy product):

  1. Log in to Digital.ai Deploy.
  2. From the Settings icon, click About.
Google Cloud Platform (GCP) Google Kubernetes Engine (GKE)

Upgrading to Deploy 22.2 on GCP GKE

Follow the steps below to upgrade to Deploy 22.2 on GCP GKE.

Step 1—Check the status of the existing operator based Deploy instance

To check the status of the existing Operator version:

  1. Log in to Digital.ai Deploy.
  2. From the Settings icon, click About and verify the status:

    Operator-based Installation Status

Step 2—Verify the pods running on the cluster

Run the following command:

kubectl get pods

Sample Output

Running Pods

Step 3—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 4—Upgrade the Operator

  1. Run the following commands to get the custom resource definition (CRD) and custom resource (CR):

    kubectl get crd

    CRD

    CRD

    kubectl get <crd name>

    CR

    CR

    Backup the previous crd and cr data value

    kubectl get <crd name> <cr name> -n <namespace> -o yaml > daideploy_cr_<version>.yaml

    Example

    kubectl get digitalaideploys.xld.digital.ai dai-xld -n default -o yaml > daideploy_cr_<version>.yaml    
  2. Do one of the following:

    • If you want to retain the Operator artefacts, run the following command:

      xl op --upgrade --no-cleanup
    • Otherwise, run the following command:

      xl op --upgrade

      A set of questions is displayed.

    Note: Before running the command check if there is already running docker containers with name dai-deploy or with port 4516 with the command docker ps. Stop and delete the container with commands: docker stop dai-deploy; docker rm dai-deploy.

  3. To continue with the upgrade, perform the actions described in the following table:

    Note: The default values is displayed within square brackets ([])

Question Action Default Value
Select the setup mode Use the Up/Down arrow keys to choose one of the setup modes, and press Enter:
  • advanced—to specify custom values
  • quick—to quickly run the setup with default values
Note: We recommend advanced setup mode for the Operator upgrade.
NA
Select the Kubernetes setup where the digitalai Devops will be installed or uninstalled Use the Up/Down arrow keys to select the platform from the list—GoogleGKE [Google Kubernetes Engine]. Press Enter. NA
Do you want to use kubernetes current-context from ~/.kube/config ? If you want to use Kubernetes configuration, type y for Yes. Otherwise, type n for No. Press Enter.
Note: For GoogleGKE [Google Kubernetes Engine], always select No.
No
Enter the K8sApiServerURL of your Kubernetes installation Type the GCP GKE Server URL, and press Enter. NA
Choose kubernetes authentication type Use the Up/Down arrow keys to choose one of the authentication types for the cluster:
  • token
  • filepath
token
Provide authentication token for the existing service account Enter the token. NA
Do you want to use an custom Kubernetes namespace (current default is ‘digitalai’)? If you want to use the ‘digitalai’ namespace, type n for No. Otherwise, type y for Yes. Press Enter.
For Operator to Operator upgrade, always select Yes.
Yes
Enter the name of the existing Kubernetes namespace where the XebiaLabs DevOps Platform will be installed, updated or undeployed: Type the name of the existing Kubernetes namespace on which your operator is deployed. default
Product server you want to perform upgrade for Use the Up/Down arrow keys to choose one of the products you want to upgrade, and press Enter:
  • daiDeploy [Digital.ai Deploy]
  • daiDeploy [Digital.ai Deploy]
Note: Choose the product that is deployed on the operator.
NA
Enter the repository name Type the repository name from where you want to pull the product server image (Deploy), and press Enter. xebialabs
Enter the image name Type the image name of the product—xl-deploy, and press Enter. xl-deploy
Enter the image tag Type the image tag of the product (version number), and press Enter. 22.2.0
Choose the version of the Digital.ai Deploy for Upgrader setup of operator Use the Up/Down arrow keys to choose the version of the Deploy for the Upgrader setup of operator. 22.2.0
Do you want to enable an oidc? Type y for Yes—to enable OIDC Configuration. Otherwise, type n for No to use the default username and password for Deploy.
Note If you select No, oidc setup will be disabled
NA
Do you want to use an existing oidc configuration from previous installation? Type y for Yes—to Use an already existing oidc configuration from previous installation. Otherwise, type n for No to use the Embedded keycloak or other external oidc configuration for Deploy. NA
Use embedded keycloak? Type y for Yes—to use the embedded Keycloak authentication manager.
Note If you select No, the next question related to Keycloak public URL will not be displayed, Configure external oidc setup question will be displayed to configure external oidc setup.
NA
Enter Keycloak public URL Type the hostname of the public URL (the DNS name to access Keycloak console) that will be used for keycloak installation. NA
Use embedded DB for keycloak? Type y for Yes—to use the embedded DB for keycloak.
Note If you select No, we need to use the custom zip options and update cr yaml file with external DB for keycloak.
NA
Configure external oidc setup? Press Enter to enable the editor mode and edit the keys and values for oidc configuration. Save the changes and close the editor. For example:
.spec.oidc.enabled=true
.spec.oidc.external=true
.spec.oidc.accessTokenUri=“accessTokenURI”
.spec.oidc.clientId=“deploy”
.spec.oidc.clientSecret=“clientSecret”
.spec.oidc.emailClaim=“email”
.spec.oidc.fullNameClaim=“name”
.spec.oidc.issuer=“issuer”
.spec.oidc.keyRetrievalUri=“keyRetrievalURI”
.spec.oidc.logoutUri=“logoutURI”
.spec.oidc.postLogoutRedirectUri=“postLogoutRedirectURI”
.spec.oidc.redirectUri=“redirectURI”
.spec.oidc.rolesClaim=“groups”
.spec.oidc.userAuthorizationUri=“userAuthorizationUri”
.spec.oidc.userNameClaim=“preferred_username”
.spec.oidc.scopes=[“openid”]
Note: Mention only required field.
Select the type of the upgrade you want Use the Up/Down arrow keys to choose one of the types of upgrades, and press Enter:
  • operatorToOperator [Operator to Operator]
  • helmToOperator [Helm to Operator]

Note: To upgrade from the previous Operator-based solution, select operatorToOperator [Operator to Operator].
NA
Operator image to use (eg: <repositoryName>/<imageName>:<tagName>) Type the operator image name, and press Enter.
Note: Get the latest Operator Docker image for Deploy from the official Docker Hub repository site.
xebialabs/deploy-operator:1.2.0
Do you want to use custom operator zip file for Deploy? If you would like to change the CR during upgrade, type Y for Yes. Otherwise, type n for No and you will just upgrade the version of the Deploy in the CR. Press Enter. Yes
Deploy operator zip to use (absolute path or URL to the zip) Enter the URL of the ZIP file [Software Distribution site] (https://dist.xebialabs.com/customer/operator/deploy/), or the absolute path of the ZIP file on your local drive, and press Enter.
Note: The new CR version that will be applied during upgrade and the merged values as per the keys list will be extracted during the upgrade.
NA
Enter the name of the custom resource Type the name of the Operator CR. NA
Enter the name of the custom resource definition Type the name of the Operator CRD. NA
Edit list of custom resource keys that will migrate to the new Deploy CR Press Enter to enable the editor mode and edit the keys lists to select all the CR values you would like to retain after upgrade. Save the changes and close the editor. Default value is specific list of keys that are in the most cases updated. For example:
.spec.replicaCount
.spec.UseExistingDB.Enabled
.spec.UseExistingMQ.Enabled
.spec.ingress.hosts
.spec.KeystorePassphrase
.spec.Persistence.Size
.spec.Persistence.StorageClass
.spec.RepositoryKeystore
.spec.postgresql.persistence.size
.spec.postgresql.persistence.storageClass
.spec.postgresql.postgresqlMaxConnections
.spec.keycloak.postgresql.persistence.size
.spec.keycloak.postgresql.postgresqlMaxConnections
.spec.haproxy-ingress.install
.spec.rabbitmq.install
.spec.keycloak.install
.spec.nginx-ingress-controller.install
.spec.postgresql.install
.spec.rabbitmq.install
.spec.oidc.enabled
.spec.rabbitmq.persistence.storageClass
.spec.rabbitmq.persistence.size
.spec.rabbitmq.replicaCount
.spec.rabbitmq.persistence.replicaCount
.spec.rabbitmq.persistence.storageClass
.spec.route.hosts
.spec.xlrLicense

A preview of the entered values is displayed.

  1. Type y for Yes—to confirm the values. Otherwise, type n for No—to modify the values. After you confirm, the system starts the local Deploy instance. This process will take some time.
    After the process completes, the previous Operator-based Deploy product is uninstalled, and the new Operator-based Deploy product is installed.
    Note: The local Instance of Deploy will run on 4516 port; therefore, ensure you have the port 4516 free. Deployment status can be monitored on the local Deploy GUI. To access local deploy, use: http://localhost:4516, and log in using the default username and password.

Step 5—Register the load balancer/node port services external IP

  1. Run the following command:

    kubectl get svc
  2. Register your Load balancer external IP under the appropriate DNS.

Step 6—Verify the version of the Deploy instance

After the registration, verify the newer version of Deploy (latest Operator-based Deploy product):

  1. Log in to Digital.ai Deploy.
  2. From the Settings icon, click About:

    Operator Version

The Operator upgrader fails when you upgrade from 10.3 to latest 22.2. What should you do?