Migrate to Operator Based Deployment on OpenShift Cluster

This section describes how to upgrade to Operator-based Release solution from the Helm Charts-based solution on OpenShift cluster. You can migrate to Operator-based solution on the following platforms:

  • OpenShift cluster on AWS
  • OpenShift cluster on VMWare vSphere

Intended 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 Openshift oc tool
  • The Kubectl tool
  • Access to a OpenShift cluster version 4.5 or later
  • The Helm Chart that was used to install the Release application
  • Keep the port 4516 free
  • Back up of the Release application and OpenShift cluster configuration

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.

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

  1. Download the XL-CLI binaries.

    wget https://dist.xebialabs.com/public/xl-cli/$VERSION/linux-amd64/xl

    Note: For $VERSION, substitute with the version that matches your product version in the public folder.

  2. Enable execute permissions.

    chmod +x xl
  3. Copy the XL binary in a directory that is on your PATH.

    echo $PATH

    Example

    cp xl /usr/local/bin
  4. Verify the release version.

    xl version

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.

  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 Digital.ai 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 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 existing Kubernetes namespace? If you want to use the existing Kubernetes namespace, type y for Yes. Otherwise, type n for No. 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:
  • daiRelease [Digital.ai Release]
  • daiDeploy [Digital.ai Deploy]
Note: Choose the produce 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 (Release/Deploy), and press Enter. xebialabs
Enter the image name(eg: <repositoryName>/<imageName>:<tagName>) Type the image name of the product—xl-release, and press Enter. xl-release
Enter the image tag(eg: <repositoryName>/<imageName>:<tagName>) Type the image tag of the product—10.2, and press Enter. 10.0.0
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 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/release-operator:1.0.0-openshift
Enter the helm release name Type the name of the release 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 release product
NA
A preview of the enter 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 release product is uninstalled, and the Operator-based release 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 release product).