Skip to main content
Version: Deploy 26.1

Upgrade Options Reference for Digital.ai Deploy

  • Here's a list of questions that you would have to answer to upgrade Digital.ai Deploy using the xl kube upgrade command.
  • While some of the following questions are common for both Deploy and Release, some are relevant only for Deploy and that has been called out in the descriptions accordingly.
  • You must select one of the available options for some of the questions.
  • Use the arrow keys to move up or down and press enter to select an option.
note

For the patch upgrades, if it is not stated differently, you can do patch update steps: Upgrade Patch Version of the Deploy

Upgrade to 26.1.x and persistent volumes

Starting from version 24.1 and later, the following folders have been removed as persistence folders:

  • conf
  • ext
  • hotfix
  • hotfix/lib
  • hotfix/plugins
  • hotfix/plugins/satellite-lib
  • centralConfiguration - only on central configuration pod
  • log - it was removed from 23.3 version

In case of the configuration directories, any files in the folders will be overridden by the templates. For other folders, the persisted files will be lost. In case there is a need to mount some directories back, to preserve files between restarts, use separate configurations:

  • For centralConfiguration:

    • or: centralConfiguration.extraVolumeMounts and centralConfiguration.extraVolumes.
  • For master:

    • master.persistence.paths
    • or: master.extraVolumeMounts and master.extraVolumes.
  • For worker:

    • worker.persistence.paths
    • or: worker.extraVolumeMounts and worker.extraVolumes.

See Upgrade Patch Version of the Deploy

Removal of the persistent configuration for central configuration

The centralConfiguration.persistence path was removed from CR (values.yaml) because there is no need for that configuration anymore.

Backup before upgrade

  • Before you upgrade existing Deploy using the Operator-based installer, you must back up your, see Upgrade Backup of the Deploy for details:
    • configuration in volumes,
    • databases.
  • Back up your data according to your organization's backup policies.
  • Check whether there are any hotfixes installed in the hotfix directory. If hotfixes are installed, contact the Digital.ai Support team before upgrading.
  • Some older database versions may not work with the latest Deploy versions. For more information, refer to System Requirements.
  • Review any files that you have customized. You will need to check these changes in the new version.
  • Read the release notes of the Deploy version you are upgrading to so that you are aware of the new functionality and possible upgrade considerations.

Automatic upgrade limitations

  • On Openshift you need to answer for upgrades from pre-23.3 versions with No for question: Should CRD be reused, if No we will delete the CRD digitalaideployocps.xldocp.digital.ai, and all related CRs will be deleted with it.
  • Upgrade of the embedded RabbitMQ server needs to be done manually, RabbitMQ subchart will be automatically upgraded as part of the xl-cli upgrade process. See Manual upgrade RabbitMQ
  • Upgrade of the embedded PostgreSQL server needs to be done manually, PostgreSQL subchart will be automatically upgraded as part of the xl-cli upgrade process. See Manual upgrade PostgreSQL
  • If you were changing the files in the Deploy directory in the pre-23.3 versions by using spec.deploy.configurationManagement, that section of the configuration is not anymore used.
  • If you customized the CR:
    1. Check the migration definitions in the question: Edit list of custom resource keys that will migrate to the new Deploy CR
    2. If the configuration changes are not part of migration definitions, you can add additional migration definition, check for details Custom resource keys migration
    3. If it is not possible to add the migration definition, you can customize the CR after upgrade, check Update Parameters in the CR File or Deployment
Breaking Changes in 26.1
  • RabbitMQ Topology Operator removed: The RabbitMQ Topology Operator has been removed. Operator versions have been upgraded.

  • PostgreSQL and RabbitMQ availability: PostgreSQL and RabbitMQ availability is now correctly considered during the upgrade flow.

  • Renamed answer keys: The following installation answer keys have been renamed. Update any saved answers files or automation scripts that reference the old keys before upgrading. Using the old keys will result in an unrecognized-key error during installation.

    Old KeyNew Key
    PostgresqlInstallPostgresqlType
    RabbitmqInstallRabbitmqType

Upgrade Deploy Operator from 23.1.x to 24.3.x or Later

Perform the following steps, before you upgrade the Deploy Operator from 23.1.x to 24.3.x or later.

Central Configuration Pod

  1. Login to the Deploy Central Configuration pod.
  2. Before you start the upgrade, delete the deploy-task.yaml and deploy-server.yaml files from the /opt/xebialabs/central-configuration-server/centralConfiguration/ location, and delete the xlc-wrapper.conf.common file from the /opt/xebialabs/central-configuration-server/conf/ location. When you upgrade, these file are replaced with the upgraded version.

Master Pod

  1. Login to the Deploy Master pod.
  2. Before you start the upgrade, delete the xld-wrapper.conf.common file from the /opt/xebialabs/xl-deploy-server/conf/ location. When you upgrade, the xld-wrapper.conf.common file is replaced with the upgraded version.

Worker Pod

  1. Login to the Deploy Worker pod.
  2. Before you start the upgrade, delete the xld-wrapper.conf.common file from the /opt/xebialabs/deploy-task-engine/conf/ location. When you upgrade, the xld-wrapper.conf.common file is replaced with the upgraded version.
note

If you have any custom changes in the above mentioned files, copy those changes locally, and apply them after the upgrade.

Deploy Upgrade Options Reference

Here's a list of questions that you would have to answer to upgrade Digital.ai Deploy using the xl kube upgrade command.

Here's the list of questions

Confirm the kubectl Context

Prompt? Following kubectl context will be used during execution: <kubectl-context/username>? (Y/n)
Prompt valid for—platformEKSAKSGKEOpenShift on AWSOpenshiftCertifiedPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYesYes
Available valueskubectl current context
Default valuekubectl current context
RemarksConfirm the kubectl context to proceed.

Choose a Kubernetes Platform

Prompt? Select the Kubernetes setup where the Digital.ai Devops Platform will be installed, updated or cleaned:
Prompt valid for—platformEKSAKSGKEOpenShift on AWSOpenshiftCertifiedPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYesYes
Available valuesOpenshift [Openshift]
OpenshiftCertified [Openshift Certified needs installed operator on cluster]
AWSEKS [AWS EKS]
PlainK8s [Plain multi-node K8s cluster]
AzureAKS [Azure AKS]
GoogleGKE [Google Kubernetes Engine]
Default valueOpenshift [Openshift]
RemarksYou must have your cluster ready before you select an answer for this prompt.

Choose a Kubernetes Namespace

important

If you want to enable the TLS protocol in your cluster, you must have the TLS secret created in the namespace before you start the installation or upgrade. This means that you must have created the namespace and the TLS secret already. Use the same namespace when you answer this prompt.

PromptDo you want to use a custom Kubernetes namespace (Yes, to use a custom namespace other than the default which is 'digitalai'):
Prompt valid for—platformEKSAKSGKEOpenShift on AWSOpenshiftCertifiedPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYesYes
Available valuesYes/No
Default valuefalse
RemarksType Yes to use a custom namespace, which is not digitalai, in your Kubernetes cluster for doing an install, update, or clean of the Digital.ai DevOps Platform.
If you are going to enable the TLS protocol in your cluster, you must have created the namespace and the TLS secret already. Use the same namespace where you have the TLS secret created.

Enter the Kubernetes Namespace

PromptEnter the name of the Kubernetes namespace where the Digital.ai DevOps Platform will be installed, updated or cleaned:
Prompt valid for—platformEKSAKSGKEOpenShift on AWSOpenshiftCertifiedPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYesYes
Available valuesN/A
Default valuedigitalai
RemarksType the name of the Kubernetes namespace to install, update, or clean the Digital.ai DevOps Platform.

Create the Kubernetes Namespace

PromptDo you want to create custom Kubernetes namespace <namespace>, it does not exist:
Prompt valid for—platformEKSAKSGKEOpenShift on AWSOpenshiftCertifiedPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYesYes
Available valuesYes/No
Default valueN/A
RemarksAlways type Yes to create the namespace in your Kubernetes cluster if it does not already exist. The setup can proceed only if the namespace is created.

Choose the Product to Upgrade

Prompt? Product server you want to perform upgrade for [Use arrows to move, enter to select, type to filter, ? for more help]
Prompt valid for—platformEKSAKSGKEOpenShift on AWSOpenshiftCertifiedPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYesYes
Available valuesdai-release [Digital.ai Release]
dai-deploy [Digital.ai Deploy]
dai-release-runner [Digital.ai Release Runner]
Default value-
RemarksSelect a product—dai-deploy [Digital.ai Deploy]

Select the Type of Upgrade

Prompt? Select the type of upgrade you want: [Use arrows to move, enter to select, type to filter, ? for more help]
Prompt valid for—platformEKSAKSGKEOpenShift on AWSOpenshiftCertifiedPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYesYes
Available valuesoperatorToOperator [Operator to Operator]
helmToOperator [Helm to Operator]
Default valueoperatorToOperator [Operator to Operator]
RemarksSelect operatorToOperator [Operator to Operator] or helmToOperator [Helm to Operator] depending on whether your existing site was installed using the Kubernetes Operator or the Helm Charts respectively.

Select Type of Image Registry

note

You can choose a custom public or private registry, which can be used to perform the setup of Deploy from a custom image registry and image repository. For more information, see Setup Custom Image Registry

PromptSelect type of image registry (current default is default): [? for help] (default)
Prompt valid for—platformEKSAKSGKEOpenShift on AWSOpenshiftCertifiedPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYesYes
Available valuesdefault [Default (Uses various public image registries for the installation images)]
public [Custom Public Registry (Uses a specific custom registry)]
private [Custom Private Registry - Password protected (Uses a specific custom registry with password)]
Default valuedefault
RemarksSelect the type of the image registry to use for pulling all images required for the installation. When selecting a custom image registry, all prerequisite images need to be available in the image registry.

Enter the Repository Name

Prompt? Enter the repository name for the Deploy application and operator images (eg: <repositoryName> from <repositoryName>/<imageName>:<tagName>): [? for help] (xebialabs)
Prompt valid for—platformEKSAKSGKEOpenShift on AWSOpenshiftCertifiedPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYesYes
Available valuesNA
Default valuexebialabs
RemarksType the repository name. It is recommended to go with the default, which is xebialabs.

Enter the Image Name

Prompt? Enter the Deploy server image name (eg: <imageName> from <repositoryName>/<imageName>:<tagName>): [? for help] (xl-deploy)
Prompt valid for—platformEKSAKSGKEOpenShift on AWSOpenshiftCertifiedPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYesYes
Available valuesxl-deploy
Default valuexl-deploy
RemarksType the name of the image you want to use for installation.

Enter the Image Tag

The xl kube install and xl kube upgrade options reference let you go with the default (latest) docker image tags available when you install or upgrade Digital.ai Deploy. However, here are the Docker Hub links to verify all the available image tags.

Prompt? Enter the Deploy application image tag (eg: <tagName> from <repositoryName>/<imageName>:<tagName>): [? for help]
Prompt valid for—platformEKSAKSGKEOpenShift on AWSOpenshiftCertifiedPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYesYes
Available valuesNA
Default valueThe latest release available in the repository, for example 26.1.0
RemarksType the product version number you want to install.

Enter the Deploy Task Engine Image Name

Prompt? Enter the Deploy task engine image name for version 22 and above (eg: <imageName> from <repositoryName>/<imageName>:<tagName>): [? for help] (deploy-task-engine)
Prompt valid for—platformEKSAKSGKEOpenShift on AWSOpenshiftCertifiedPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYesYes
Available valuesNA
Default valuedeploy-task-engine
RemarksType the name of the Digital.ai Deploy task engine image you want to use. This is relevant for Digital.ai Deploy 22.0.0 and later.

Enter the Deploy Central Configuration Image Name

Prompt? Enter the Central Configuration image name for version 22 and above (eg: <imageName> from <repositoryName>/<imageName>:<tagName>): [? for help] (central-configuration)
Prompt valid for—platformEKSAKSGKEOpenShift on AWSOpenshiftCertifiedPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYesYes
Available valuesNA
Default valuecentral-configuration
RemarksType the name of the Digital.ai Deploy central configuration image you want to use. This is relevant for Digital.ai Deploy 22.0.0 and later.

Select the OIDC Configuration

Prompt? Type of the OIDC configuration: [Use arrows to move, enter to select, type to filter, ? for more help]
Prompt valid for—platformEKSAKSGKEOpenShift on AWSOpenshiftCertifiedPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYesYes
Available valuesexisting [Existing OIDC Configuration]
no-oidc [No OIDC Configuration]
external [External OIDC Configuration]
identity-service [Identity Service Configuration]
Default valueno-oidc [No OIDC Configuration]
RemarksChoose existing [Existing OIDC Configuration] if you have an existing OIDC setup, which you want to use. Otherwise, choose one of the other options based on the OIDC authentication setup you want to have.

For more information, see Select the Type of OIDC Configuration.

Enter the Operator Image Name to Use

Prompt? Enter the operator image to use (eg: <imageName> from <repositoryName>/<imageName>:<tagName>): [? for help]
Prompt valid for—platformEKSAKSGKEOpenShift on AWSOpenshiftCertifiedPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYesYes
Available valuesNA
Default valueThe latest image from the Digital.ai repository, for example, deploy-operator
RemarksType the Kubernetes Operator Docker Hub image name you want to use.
By default, the latest image for the product — Deploy — deploy-operator

Enter the Operator Image Tag to Use

Prompt? Enter the Deploy operator image tag (eg: <tagName> from <repositoryName>/<imageName>:<tagName>): [? for help]
Prompt valid for—platformEKSAKSGKEOpenShift on AWSOpenshiftCertifiedPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYesYes
Available valuesNA
Default valueThe latest image from the Digital.ai repository
RemarksType the Kubernetes Operator Docker Hub image tag you want to use.
By default, the latest image for the product — Deploy — which you install—would be used.

Enter the CRD Name

Prompt? Enter the name of custom resource definition you want to reuse or replace: [Use arrows to move, enter to select, type to filter, ? for more help]
Prompt valid for—platformEKSAKSGKEOpenShift on AWSOpenshiftCertifiedPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYesYes
Available valuesThe list of all available CRDs.
Default valueNA
RemarksSelect one of the CRDs from the list you want to reuse or replace with a new one.

Confirm CRD's Reuse

Prompt? Should CRD be reused, if No we will delete the CRD digitalaideploys.xld.digital.ai, and all related CRs will be deleted with it: [? for help] (Y/n)
Prompt valid for—platformEKSAKSGKEOpenShift on AWSOpenshiftCertifiedPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYesYes
Available valuesNA
Default valueYes
RemarksCRDs are reused by default unless you answer No to this prompt. Note that choosing to delete a CRD means deleting the associated custom resources as well. Exercise caution before you answer No to this question.

Enter the CR Name

Prompt? Enter the name of custom resource: [Use arrows to move, enter to select, type to filter, ? for more help]
Prompt valid for—platformEKSAKSGKEOpenShift on AWSOpenshiftCertifiedPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYesYes
Available valuesThe list of available custom resources.
Default valueNA
RemarksSelect the name of the custom resource you want to use.

Edit the List of CR Keys

Prompt? Edit list of custom resource keys that will migrate to the new Deploy CR: [? for help] [Enter to launch editor]
Prompt valid for—platformEKSAKSGKEOpenShift on AWSOpenshiftCertifiedPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYesYes
Available valuesNA
Default valueNA
RemarksPress enter and edit the list of custom resource keys in the editor and save the changes.

Preserve Persisted Volume Claims?

Prompt? Should we preserve persisted volume claims? If not all volume data will be lost (Y/n)
Prompt valid for—platformEKSAKSGKEOpenShift on AWSOpenshiftCertifiedPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYesYes
Available valuesNA
Default valueYes
RemarksPVCs are preserved by default unless you answer No to this prompt. Exercise caution before you answer No to this question.

Clean RabbitMQ Operator Installation

note

This prompt appears during upgrade when a RabbitMQ Operator installation is detected on the cluster.

Prompt? Type yes to delete Rabbitmq Operator installation. The cleanup will be performed alongside at the end of cleanup process. Please note that this will delete all related resources if the operator is shared between applications
Prompt valid for—platformEKSAKSGKEOpenShift on AWSOpenshiftCertifiedPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYesYes
Available valuesYes/No
Default valueNo
RemarksType Yes to delete the RabbitMQ Operator installation during the cleanup phase. Note that this will delete all related resources if the operator is shared between applications.

Clean RabbitMQ Operator (Shared Impact)

Prompt? Clean Rabbitmq Operator (it can impact other installation of Rabbitmq Operator): (y/N)
Prompt valid for—platformEKSAKSGKEOpenShift on AWSOpenshiftCertifiedPlain Multi-node Kubernetes
Cluster On-premise
YesYesYesYesYesYes
Available valuesYes/No
Default valueNo
RemarksThis is a confirmation prompt. Cleaning the RabbitMQ Operator can impact other installations that share the same operator. Answer Yes only if you are certain no other applications depend on this operator.

Once you are done answering the questions, the installer proceeds with the upgrade and in the process prompts you to confirm whether to delete or keep the following resources such as:

  • custom resources
  • deployments
  • jobs
  • services
  • secrets
  • ingress class
  • cluster roles
  • cluster role bindings

You can skip these prompts if you want by using the --skip-prompts flag. See, XL Kube Command Reference for more information.

The installer then proceeds with the upgrade by applying the resources to the cluster and completes the upgrade.

Enhanced Upgrade Validation

The xl kube install command now monitors the actual deployment status during upgrade. The process:

  • Waits for Deploy operator pods to start successfully.
  • Validates that the operator’s Helm chart has been released.

If the deployment fails, the installation fails accordingly. This ensures that upgrade success accurately reflects the operational state of the Deploy instance.