Upgrading to Operator Based Deploy Solution
This section describes how to upgrade to the latest Kubernetes Operator-based Release solution on various Kubernetes platforms. Release 22.1 supports the following upgrades on the supported Kubernetes platforms:
- Upgrade from Helm Charts-based Release Solution
- Upgrade from the previous Operator-based Release Solution
Supported Platforms
- Amazon EKS
- Azure Kubernetes Service
- Kubernetes On-premise
- OpenShift on AWS
- OpenShift on VMWare vSphere
- GCP GKE
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
kubectl
command-line tool - 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 Release application
- Back up of the Release 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 Release
From Release 22.1, Keycloak is the default authentication manager for Release. This is defined by the spec.keycloak.install
parameter that is set to true
by default in the dairelease_cr.yaml
file. If you want to disable Keycloak as the default authentication manager for Digitial.ai Release, set the spec.keycloak.install
parameter to false
. After you disable the Keycloak authentication, the default login credentials (admin/admin
) will be applicable when you log in to the Digital.ai Release interface.
After you upgrade to the latest version of Digital.ai Release, follow the steps provided in Keycloak Configuration for Kubernetes Operator Installer to configure Keycloak for Release.
Upgrading from Helm Charts-based Release Environment to Operator-based Release Environment
You can upgrade to Release 22.1 from earlier Release versions that are installed using Helm Charts (Release 10.0 and Release 10.1) on the following platforms:
Amazon Elastic Container Service for Kubernetes (EKS)
Upgrading to Release 22.1 on Amazon EKS
Follow the steps below to upgrade to Release 22.1 on Amazon EKS.
Step 1—Check the status of the Helm Chart installation
Run the following command:
helm status <product name>
Sample Output
Step 2—Verify the pods running on the cluster
Run the following command:
kubectl get pods
Sample Output
Step 3—Download and set up the XL CLI
-
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. -
Enable
execute
permissions.chmod +x xl
-
Copy the XL binary in a directory that is on your
PATH
.echo $PATH
Example
cp xl /usr/local/bin
-
Verify the release version.
xl version
Step 4—Upgrade the Operator
-
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.
-
-
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:
| 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 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 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:
| NA |
Enter the repository name(eg: <repositoryName>/<imageName>:<tagName>) | Type the repository name from where you want to pull the product server image (Release), 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—22.1.0, and press Enter. | 22.1.0 |
Choose the version of the Digital.ai Release for Upgrader setup of operator | Use the Up/Down arrow keys to choose the version of the Release for the Upgrader setup of operator. | 22.1.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 Release. 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 Release. | 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="release" .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:
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/release-operator:1.0.0 |
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.
- 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—Register the load balancer/node port services external IP
-
Run the following command:
kubectl get svc
Sample Output
- Register your Load balancer external IP under the appropriate DNS.
After the registration, you can verify the newer version of Release (Operator-based product) using the same link that you used to access the earlier version (Helm-chart based release product).
Azure Kubernetes Service (AKS)
Upgrading to Release 22.1 on AKS
To upgrade to Release 22.1 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
-
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.
-
-
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:
| 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 daiRelease [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 (Release), 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—22.1.0, and press Enter. | 22.1.0 |
Choose the version of the Digital.ai Release for Upgrader setup of operator | Use the Up/Down arrow keys to choose the version of the Release for the Upgrader setup of operator. | 22.1.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 Release. 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 Release. | 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="release" .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:
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/release-operator:1.0.0 |
Enter the helm release name | Type the name of the release product installed using the Helm Chart, for example, dai-xlr-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 release product | NA |
A preview of the enter values is displayed.
- 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 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.
To complete the upgrade process, follow the steps — Step 1 to Step 4 from Installation topic.
Kubernetes On-premise
Upgrading to Release 22.1 on Kubernetes On-premise Cluster
Follow the steps below to upgrade to Release 22.1 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
Step 2—Verify the pods running on the cluster
Run the following command:
kubectl get pods
Sample Output
Step 3—Download and set up the XL CLI
-
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. -
Enable
execute
permissions.chmod +x xl
-
Copy the XL binary in a directory that is on your
PATH
.echo $PATH
Example
cp xl /usr/local/bin
-
Verify the release version.
xl version
Step 4—Upgrade the Operator
-
Run the following command:
xl op --upgrade
A set of questions is displayed.
-
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:
| 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. | No |
Do you want to use an existing Kubernetes namespace? | If you want to use Kubernetes namespace, type y for Yes. Otherwise, type n for No. Press Enter. Note: For Helm to Operator upgrade, always type y for 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:
| NA |
Enter the repository name(eg: <repositoryName>/<imageName>:<tagName>) | Type the repository name from where you want to pull the product server image (Release), 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-release |
Enter the image tag(eg: <repositoryName>/<imageName>:<tagName>) | Type the image tag of the product (version number), and press Enter. | 22.0.0 |
Choose the version of the Digital.ai Release for Upgrader setup of operator | Use the Up/Down arrow keys to choose the version of the Release for the Upgrader setup of operator. | 22.0.0 |
Use embedded keycloak? | Type y for Yes—to use the embedded Keycloak authentication manager. Otherwise, type n for No to use the default username and password for Release. Note If you select No, the next question related to Keycloak public URL will not be displayed. | 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 |
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:
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 Release from the official Docker Hub repository site. | xebialabs/release-operator:1.1.1 |
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.
- 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 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—Register the load balancer/node port services external IP
-
Run the following command:
kubectl get ingress
Sample Output
-
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 release product). -
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.
OpenShift
Upgrade to Release 22.1 on OpenShift Cluster
You can upgrade to Operator-based Release solution on the following OpenShift platforms:
- OpenShift cluster on AWS
- OpenShift cluster on VMWare vSphere
Follow the steps below to upgrade to Release 22.1 on your OpenShift cluster.
Step 1—Check the status of the Helm Chart installation
Run the following command:
helm status <product name>
Sample Output
Step 2—Verify the pods running on the cluster
Run the following command:
oc get pods
Sample Output
Step 3—Download and set up the XL CLI
-
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. -
Enable
execute
permissions.chmod +x xl
-
Copy the XL binary in a directory that is on your
PATH
.echo $PATH
Example
cp xl /usr/local/bin
-
Verify the release version.
xl version
Step 4—Upgrade the Operator
-
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.
-
-
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:
| 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 |
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:
| NA |
Enter the repository name(eg: <repositoryName>/<imageName>:<tagName>) | Type the repository name from where you want to pull the product server image (Release), 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—22.1.0, and press Enter. | 22.1.0 |
Choose the version of the Digital.ai Release for Upgrader setup of operator | Use the Up/Down arrow keys to choose the version of the Release for the Upgrader setup of operator. | 22.1.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 Release. 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 Release. | 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="release" .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:
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/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.
- 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
-
Run the following command:
oc get route
Sample Output
- 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).
Google Cloud Platform (GCP)
Upgrading to Release 22.1 on GCP GKE
Follow the steps below to Upgrading to Release 22.1 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
Step 2—Verify the pods running on the cluster
Run the following command:
kubectl get pods
Sample Output
Step 3—Download and set up the XL CLI
-
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. -
Enable
execute
permissions.chmod +x xl
-
Copy the XL binary in a directory that is on your
PATH
.echo $PATH
Example
cp xl /usr/local/bin
-
Verify the release version.
xl version
Step 4—Upgrade the Operator
- 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.
-
- 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:
| 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 |
Provide authentication token for the existing service account | Type the token, and press Enter. | 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 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 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:
| NA |
Enter the repository name(eg: <repositoryName>/<imageName>:<tagName>) | Type the repository name from where you want to pull the product server image (Release), 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 | Type the image tag of the product (version number), and press Enter. | 22.0.0 |
Choose the version of the Digital.ai Release for Upgrader setup of operator | Use the Up/Down arrow keys to choose the version of the Release for the Upgrader setup of operator. | 22.0.0 |
Use embedded keycloak? | Type y for Yes—to use the embedded Keycloak authentication manager. Otherwise, type n for No to use the default username and password for Release. Note If you select No, the next question related to Keycloak public URL will not be displayed. | 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 |
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:
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 Release product | NA |
A preview of the enter values is displayed.
- 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—Register the load balancer/node port services external IP
-
Run the following command:
kubectl get svc
-
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 release product).
Upgrading from Previous Operator-based Release Environment to the Latest Operator-based Release Environment
You can upgrade to Release 22.1 from Release 10.2 and later versions that are installed using Kubernetes Operator on the following platforms:
Amazon Elastic Container Service for Kubernetes (EKS)
Upgrading to Release 22.1 on Amazon EKS
Follow the steps below to Upgrading to Release 22.1 on Amazon EKS (AWS EKS).
Step 1—Check the status of the existing operator based Release instance
To check the status of the existing Operator version:
- Log in to Digital.ai Release.
- 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
Sample Output
Step 3—Download and set up the XL CLI
-
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. -
Enable
execute
permissions.chmod +x xl
-
Copy the XL binary in a directory that is on your
PATH
.echo $PATH
Example
cp xl /usr/local/bin
-
Verify the release version.
xl version
Step 4—Upgrade the Operator
-
Run the following commands to get the custom resource definition (CRD) and custom resource (CR):
kubectl get crd
CRD
kubectl get <crd name>
CR
Backup the previous crd and cr data value
kubectl get <crd name> <cr name> -n <namespace> -o yaml > dairelease_cr_<version>.yaml
Example
kubectl get digitalaireleases.xlr.digital.ai dai-xlr -n default -o yaml > dairelease_cr_<version>.yaml
-
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.
-
-
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:
| 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 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 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 Operator 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: | 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:
| NA |
Enter the repository name | Type the repository name from where you want to pull the product server image (Release), and press Enter. | xebialabs |
Enter the image name | Type the image name of the product—xl-release, and press Enter. | xl-deploy |
Enter the image tag | Type the image tag of the product (version number), and press Enter. | 22.0.0 |
Choose the version of the Digital.ai Release for Upgrader setup of operator | Use the Up/Down arrow keys to choose the version of the Release for the Upgrader setup of operator. | 22.0.0 |
Use embedded keycloak? | Type y for Yes—to use the embedded Keycloak authentication manager. Otherwise, type n for No to use the default username and password for Release. Note If you select No, the next question related to Keycloak public URL will not be displayed. | 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 |
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:
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 Release from the official Docker Hub repository site. | xebialabs/deploy-operator:1.1.0 |
Do you want to use custom operator zip file for Release? | 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 Release in the CR. Press Enter. | Yes |
Release operator zip to use (absolute path or URL to the zip) | Enter URL to the zip (check https://dist.xebialabs.com/customer/operator/release/) or absolute path to the zip on the local disc, and press Enter. From the zip will be extracted the new CR version that will be applied during upgrade. Together with merged values according to the keys list from next question | 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 Release CR | Press Enter the go to the editor mode and edit the keys lists to select all the CR values you would like to preserve after upgrade. Save changes and close 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.
- 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 Release 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
-
Run the following command:
kubectl get svc
-
Register your Load balancer external IP under the appropriate DNS.
Step 6—Verify the version of the Release instance
After the registration, verify the newer version of Release (latest Operator-based Deploy product):
-
Log in to Digital.ai Release.
-
From the Settings icon, click About:
Azure Kubernetes Service (AKS)
Upgrading to Release 22.1 on AKS
Follow the steps below to Upgrading to Release 22.1 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:
- Log in to Digital.ai Release.
- 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
-
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. -
Enable
execute
permissions.chmod +x xl
-
Copy the XL binary in a directory that is on your
PATH
.echo $PATH
Example
cp xl /usr/local/bin
-
Verify the release version.
xl version
Step 4—Upgrade the Operator
-
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 > dairelease_cr_<version>.yaml
Example
kubectl get digitalaireleases.xlr.digital.ai dai-xlr -n default -o yaml > dairelease_cr_<version>.yaml
-
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.
-
-
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:
| 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 clusters, always type y (Yes). | Yes |
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. 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:
| NA |
Enter the repository name | Type the repository name from where you want to pull the product server image (Release), and press Enter. | xebialabs |
Enter the image name | Type the image name of the product—xl-release, and press Enter. | xl-release |
Enter the image tag | Type the image tag of the product (version number), and press Enter. | 22.0.0 |
Choose the version of the Digital.ai Release for Upgrader setup of operator | Use the Up/Down arrow keys to choose the version of the Release for the Upgrader setup of operator. | 22.0.0 |
Use embedded keycloak? | Type y for Yes—to use the embedded Keycloak authentication manager. Otherwise, type n for No to use the default username and password for Release. Note If you select No, the next question related to Keycloak public URL will not be displayed. | 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 |
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:
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 Release? | 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 Release in the CR. Press Enter. | Yes |
Release operator zip to use (absolute path or URL to the zip) | Enter URL to the zip (check https://dist.xebialabs.com/customer/operator/release/) or absolute path to the zip on the local disc, and press Enter. From the zip will be extracted the new CR version that will be applied during upgrade. Together with merged values according to the keys list from next question | 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 Release CR | Press Enter the go to the editor mode and edit the keys lists to select all the CR values you would like to preserve after upgrade. Save changes and close 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.
- 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 Release product is uninstalled, and the new 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—Register the load balancer/node port services external IP
-
Run the following command:
kubectl get svc
-
Register your Load balancer external IP under the appropriate DNS.
Step 6—Verify the version of the Release instance
After the registration, verify the newer version of Release (latest Operator-based Release product):
- Log in to Digital.ai Release.
- From the Settings icon, click About:
Kubernetes On-premise Cluster
Upgrading to Release 22.1 on Kubernetes On-premise Cluster
Follow the steps below to Upgrading to Release 22.1 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:
- Log in to Digital.ai Release.
- 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
-
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. -
Enable
execute
permissions.chmod +x xl
-
Copy the XL binary in a directory that is on your
PATH
.echo $PATH
Example
cp xl /usr/local/bin
-
Verify the release version.
xl version
Step 4—Upgrade the Operator
-
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 > dairelease_cr_<version>.json
Example
kubectl get digitalaireleases.xlr.digital.ai dai-xlr -n default -o yaml > dairelease_cr_<version>.json
-
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.
-
-
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:
| 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 existing Kubernetes namespace? | If you want to use the existing kubernetes namespace, type y for Yes. Otherwise, type n for No. 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:
| NA |
Enter the repository name | Type the repository name from where you want to pull the product server image (Release), and press Enter. | xebialabs |
Enter the image name | Type the image name of the product—xl-release, and press Enter. | xl-release |
Enter the image tag | Type the image tag of the product (version number), and press Enter. | 22.0.0 |
Choose the version of the Digital.ai Release for Upgrader setup of operator | Use the Up/Down arrow keys to choose the version of the Release for the Upgrader setup of operator. | 22.0.0 |
Use embedded keycloak? | Type y for Yes—to use the embedded Keycloak authentication manager. Otherwise, type n for No to use the default username and password for Release. Note If you select No, the next question related to Keycloak public URL will not be displayed. | 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 |
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:
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 Release? | 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 Release in the CR. Press Enter. | Yes |
Release operator zip to use (absolute path or URL to the zip) | Enter URL to the zip (check https://dist.xebialabs.com/customer/operator/release/) or absolute path to the zip on the local disc, and press Enter. From the zip will be extracted the new CR version that will be applied during upgrade. Together with merged values according to the keys list from next question | 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 Release CR | Press Enter the go to the editor mode and edit the keys lists to select all the CR values you would like to preserve after upgrade. Save changes and close 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.
- 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 Release product is uninstalled, and the new 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—Register the load balancer/node port services external IP
-
Run the following command:
kubectl get svc
-
Register your Load balancer external IP under the appropriate DNS.
Step 6—Verify the version of the Release instance
After the registration, verify the newer version of Release(latest Operator-based Release product):
- Log in to Digital.ai Release.
- From the Settings icon, click About and verify the version.
OpenShift Cluster
Upgrading to Release 22.1 on OpenShift Cluster
This section describes how to upgrade Deploy using the Release Operator on the OpenShift cluster. You can upgrade on the following OpenShift platforms:
- OpenShift cluster on AWS
- OpenShift cluster on VMWare vSphere
Step 1—Check the status of the existing operator based Release instance
To check the status of the existing Operator version:
- Log in to Digital.ai Release.
- 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
-
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 > dairelease_cr_<version>.yaml
Example
kubectl get digitalaireleases.xlr.digital.ai dai-xlr -n default -o yaml > dairelease_cr_<version>.yaml
-
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.
-
-
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:
| 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 OpenShift and Azure AKS clusters, always type n (No). | No |
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. For Operator to Operator upgrade, always select Yes. | Yes |
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 |
Provide authentication token for the existing service account | Enter the token. | NA |
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:
| NA |
Enter the repository name | Type the repository name from where you want to pull the product server image (Release), and press Enter. | xebialabs |
Enter the image name | Type the image name of the product—xl-deploy, and press Enter. | xl-release |
Enter the image tag | Type the image tag of the product (version number), and press Enter. | 22.0.0 |
Choose the version of the Digital.ai Release for Upgrader setup of operator | Use the Up/Down arrow keys to choose the version of the Release for the Upgrader setup of operator. | 22.0.0 |
Use embedded keycloak? | Type y for Yes—to use the embedded Keycloak authentication manager. Otherwise, type n for No to use the default username and password for Release. Note If you select No, the next question related to Keycloak public URL will not be displayed. | 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 |
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:
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. Eg. <repositoryName>/<imageName>:<tagName> 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 Release? | 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 Release in the CR. Press Enter. | Yes |
Release operator zip to use (absolute path or URL to the zip) | Enter URL to the zip (check https://dist.xebialabs.com/customer/operator/release/) or absolute path to the zip on the local disc, and press Enter. From the zip will be extracted the new CR version that will be applied during upgrade. Together with merged values according to the keys list from next question | 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 Release CR | Press Enter the go to the editor mode and edit the keys lists to select all the CR values you would like to preserve after upgrade. Save changes and close 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.
- 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 Release product is uninstalled, and the new 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 version of the Release instance
After the registration, verify the newer version of Release (latest Operator-based Release product):
- Log in to Digital.ai Release.
- From the Settings icon, click About.
Google Cloud Platform (GCP) Google Kubernetes Engine (GKE)
Upgrading to Release 22.1 on GCP GKE
Follow the steps below to Upgrading to Release 22.1 on GCP GKE.
Step 1—Check the status of the existing operator based Release instance
To check the status of the existing Operator version:
- Log in to Digital.ai Deploy.
- 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
-
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. -
Enable
execute
permissions.chmod +x xl
-
Copy the XL binary in a directory that is on your
PATH
.echo $PATH
Example
cp xl /usr/local/bin
-
Verify the release version.
xl version
Step 4—Upgrade the Operator
-
Run the following commands to get the custom resource definition (CRD) and custom resource (CR):
kubectl get crd
CRD GCP
kubectl get <crd name>
CR GCP
Backup the previous crd and cr data value
kubectl get <crd name> <cr name> -n <namespace> -o yaml > dairelease_cr_<version>.yaml
Example
kubectl get digitalaireleases.xlr.digital.ai dai-xlr -n default -o yaml > dairelease_cr_<version>.yaml
-
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.
-
-
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:
| 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] cluster, always select Yes. | Yes |
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 |
Provide authentication token for the existing service account | Provide the token from the kubeconfig file | NA |
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:
| NA |
Enter the repository name | Type the repository name from where you want to pull the product server image (Release), and press Enter. | xebialabs |
Enter the image name | Type the image name of the product—xl-release, and press Enter. | xl-release |
Enter the image tag | Type the image tag of the product (version number), and press Enter. | 22.0.0 |
Choose the version of the Digital.ai Release for Upgrader setup of operator | Use the Up/Down arrow keys to choose the version of the Release for the Upgrader setup of operator. | 22.0.0 |
Use embedded keycloak? | Type y for Yes—to use the embedded Keycloak authentication manager. Otherwise, type n for No to use the default username and password for Release. Note If you select No, the next question related to Keycloak public URL will not be displayed. | 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 |
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:
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 Release? | 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 Release in the CR. Press Enter. | Yes |
Release operator zip to use (absolute path or URL to the zip) | Enter URL to the zip (check https://dist.xebialabs.com/customer/operator/release/) or absolute path to the zip on the local disc, and press Enter. From the zip will be extracted the new CR version that will be applied during upgrade. Together with merged values according to the keys list from next question | 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 Release CR | Press Enter the go to the editor mode and edit the keys lists to select all the CR values you would like to preserve after upgrade. Save changes and close 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.
- 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 Release product is uninstalled, and the new 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—Register the load balancer/node port services external IP
-
Run the following command:
kubectl get svc
-
Register your Load balancer external IP under the appropriate DNS.
Step 6—Verify the version of the Release instance
After the registration, verify the newer version of Release (latest Operator-based Release product):
-
Log in to Digital.ai Release.
-
From the Settings icon, click About: