Digital.ai Deploy 24.1.x Release Notes
Support Policy
For each version of Deploy, we provide maintenance support for 15 months. For more information, see Digital.ai Support Policy.
Upgrade Instructions
The Digital.ai Deploy upgrade process you use depends on the version from which you are upgrading, and the version to which you want to go.
For upgrade instructions, see:
Digital.ai Deploy 24.1.2 includes the following new features:
Note: 24.1.2 is the released GA version.
Breaking Changes for 24.1
The following are some of the breaking changes for Deploy 24.1.
- To ensure optimal performance and compatibility, it is necessary to upgrade to JDK 17 before running Deploy 24.1. For more information, see the JDK Migration.
- Atlassian Crowd integration is not supported in Deploy 24.1 due to the unavailability of Crowd Integration support for JDK 17. The relevant libraries and classes have been removed.
Platform Engineering
Introducing Deploy plugin for Internal Developer Platform, Backstage. For more information, see Overview.
Technical Updates
Spring 6 Migration
Deploy 24.1 now incorporates Spring 6, with all the necessary code and configurations migrated.
Akka to Pekko Migration
Tip: If your Deploy cluster setup doesn't have any Akka-related configurations, no need to make any changes in the configurations.
From Deploy 24.1 version, Deploy has adopted Apache Pekko and migrated all the required code and configurations from Akka to Pekko.
Note: When you try to set up Deploy in cluster mode, and if you encounter any occurrences of the term
akka
within the following files located in thecentralConfiguration
folder, the set up fails.
XL_DEPLOY_SERVER_HOME/centralConfiguration/deploy-cluster.yaml
XL_DEPLOY_SERVER_HOME/centralConfiguration/deploy-jmx.yaml
XL_DEPLOY_SERVER_HOME/centralConfiguration/deploy-server.yaml
XL_DEPLOY_SERVER_HOME/centralConfiguration/deploy-task.yaml
To fix this issue, replace those instances with the corresponding configuration settings associated with Pekko. This involves modifying any relevant packages, class names, jar names, URLs, and so on to align with the configuration specifications specific to the Pekko framework.
For more detailed instructions about the configuration changes, see Akka to Pekko Migration for Deploy.
RabbitMQ Connection Fix
Fixed an issue where the property updates on RabbitMQ during deployment resulted in worker-RabbitMQ connection failures and impacted the task rollback functionality and led to continuous queuing issues.
RabbitMQ Quorum Queue Support
Added a quorum queue parameter for RabbitMQ. For more information, see Enable Quorum Queue for RabbitMQ.
Introduced SMBv3 Protocol Support
Remoting functionality for Deploy now supports the Server Message Block (SMB) protocol version 3, providing enhanced security, performance, and scalability for file sharing in a networked environment.
Xldeploy-py Version Upgrade
The HTTP requests libraries have been upgraded to version 2.13, which is compatible with Python 3.x.
Jython Script Caching
Added a caching mechanism for Jython scripts to improve performance. For more information, see Types of Cache.
Lock Plugin Concurrency Limit
You can now limit the concurrency limits for deployment. For more information, see Concurrent Deployments Limit.
XL CLI Enhancements
Prevent Overwrite of the Deployed Application
If you try to overwrite the YAML specification file after deployment, you will receive an error message and cannot overwrite the file specification. If you want to change the file, create a new CI for the artifact.
Undeploy Application Using XL CLI
You can now undeploy an application using XL CLI. For more information, see Undeploy an application.
View Deployment Steps
It is now possible to track deployment progress in XL CLI. For more information, see XL CLI Behavior.
Kubernetes Operator Enhancements
Improvements to Operator and Helm chart in 24.1
- Ubuntu is set as the default image.
- For RabbitMQ, support for Quorum queues is added. Use the
queueType
property to configure the queue type appropriately. - Migrated from Akka to Pekko
- For DNS timeout, the
networkaddress.cache.ttl
value is set to 30 - Support for Kubernetes server version 1.23 to 1.29 is provided (1.29 is included)
- Minor upgrades of Helm sub charts
- PostgreSQL is upgraded from version 12.8.5 to 12.12.9
- nginx-ingress-controller is upgraded from version 9.9.2 to 9.10.3
- Minor upgrades to the images
- PostgreSQL image is upgraded from version 15.4.0 to 15.6.0
- Removed
kube-rbac-proxy
sidecar from the operator pods, and removed all relatedrbac-proxy
resources such as service, role, and rolebinding. - You can now replace the CR values that are in clear-text format in the CR with the secret references. For more information, see Using Secret References in CR
- Enabled file logging
Upgrade Deploy Operator from 23.1.x to 24.1.x
Learn how to upgrade the Deploy Operator from 23.1.x to 24.1.x. For more detailed instructions about the upgrade, see Upgrade Options Reference for Digital.ai Deploy.
To preserve the configuration, the best approach is to use customized configuration files. You can follow the examples provided here.
Enable File Logging
For operator-based installation of Deploy, file logging is enabled. For more information, see Enable File Logging.
Manage Conf
Directory
As of Deploy 24.1, the Conf
directory is now managed through the operator itself and eliminates the need for a mounted volume.
Manage TrustStore
As of Deploy 24.1, the TrustStore management is facilitated through the secret provider, streamlining security configurations. For more information, see Set up TrustStore for Deploy.
Support for Custom Registries
As of Deploy 24.1, we've extended our support for custom registries, allowing users with more flexibility and control over their configurations. For more information, see Setup Custom Image Registry.
Support for PKCS#12 Key Stores
As of Deploy 24.1, we've introduced support for PKCS#12 key stores, offering enhanced security options. For more information, see Set up TrustStore for Deploy.
Support Exec
Command
Exec
command is added for the Kubernetes container plugin allowing you to directly execute within the containerized environments.
Docker Update
Important: In line with the Docker-recommended best practices, the latest version tag is no longer supported for Deploy and Release docker images. This means that the docker pull command and image descriptors (used in as-code files)—without a valid version tag—will not succeed—after 01 Nov, 2024.
Correct
docker pull docker.io/xebialabs/xl-deploy:24.1
version: "2"
services:
xl-deploy:
image: xebialabs/xl-deploy:24.1
container_name: xl-deploy
Incorrect
docker pull docker.io/xebialabs/xl-deploy
version: "2"
services:
xl-deploy:
image: xebialabs/xl-deploy
container_name: xl-deploy
Plugins and Integrations
Docker Plugin
- The Docker plug-in now allows you to define MountSpecs within the dockerServiceSpec. For more information, see Deploy a ServiceVolumeMountSpec
Azure Plugin
- You can create or modify your Bicep template to define the Azure resources you want to deploy at the subscription level and resource group level.
- In Azure Bicep deployments now supports the zip files.
- WebApp and FunctionApp deployments can now be targeted to specific deployment slots.
- Deploy Azure Plugin now supports creation of Static WebApps and ContainerApps.
For more information, see Azure Plugin.
Helm Plugin
- You can now effectively manage and orchestrate Helm deployments across all satellites.
- Created a Helm chart that automatically creates a Kubernetes namespace if it does not exist.
- Enforce Stitch validations on the helm charts before deployment.
- Deploy Helm - Authentication and Target K8s Params on Chart Level.
- Fixed Helm deployment template to run without the expecting helm chart to be present locally.
- Reusable Helm repo configurations introduced.
For more information, see Helm Plugin.
Terraform Plugin
- Added support to specify Init Parameters and Secret Init parameters for Terraform module.
For more information, see Terraform Plugin.
OpenShift Plugin
- To ensure synchronization with the base Kubernetes plugin, an authentication token has been added at the project level.
JDK Migration: Java 17 Support
To ensure access to the latest Java functionalities and security fixes, the Deploy 24.1 supports Java 17.
Configure Java 17
Before upgrading to Digital.ai Deploy 24.1, install Java 17 on all the Deploy servers. The supported JDKs are as follows:
- Oracle JDK
- Open JDK
Note: Set the
JAVA_HOME
environment variable correctly for the user or service to run the Deploy service.
Deploy JVM Options
The 24.1 Deploy contains the xld-wrapper.conf.common
configuration wrapper file updated with required additional JVM options for JDK 17.
When upgrading to Deploy 24.1, manual configuration of the following JVM options is necessary if the deployment includes customized configuration wrapper files.
The following JVM options must be specified:
--add-opens=java.base/java.util=ALL-UNNAMED
--add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED
--add-opens=java.base/java.lang=ALL-UNNAMED
--add-opens=java.base/java.lang.invoke=ALL-UNNAMED
--add-opens=java.base/java.io=ALL-UNNAMED
The following JVM options are deprecated and must be removed if they are specified:
-XX:MaxPermSize
-XX:PermSize
-XX:+TraceClassLoading
-XX:+TraceClassLoadingPreorder
-XX:+TraceClassResolution
-XX:+TraceLoaderConstraints
-XX:+UseMembar
Important Notes for Plugin Developers
This section covers information about the packages changed.
- With the rebranding of Java EE to Jakarta EE, many libraries have undergone changes in package names and are no longer compatible with the previous versions. However, Release, Deploy, and the official plugins are updated for compatibility. See Known Issues section below for additional information.
- Plugins that are bundled with Deploy are updated as needed to operate with Java 17. But, if you have developed custom plugins, there could be some compatibility issues. Hence, all locally developed (custom) plugins should be validated for full Java 17 compatibility before being deployed on a 24.1 Deploy instance.
- If you're using one or more of the below mentioned Pre-jakarta packages in your custom plugin code, you must update your plugin with Post-jakarta packages mentioned in the table below, in order to run it with Deploy 24.1.
Pre-JDK 17 package name | JDK 17 package name |
---|---|
javax.activation | jakarta.activation |
javax.batch | jakarta.batch |
javax.ejb | jakarta.ejb |
javax.el | jakarta.el |
javax.enterprise | jakarta.enterprise |
javax.faces | jakarta.faces |
javax.jms | jakarta.jms |
javax.json | jakarta.json |
javax.jws | jakarta.jws |
javax.mail | jakarta.mail |
javax.persistence | jakarta.persistence |
javax.resource | jakarta.resource |
javax.servlet | jakarta.servlet |
javax.validation | jakarta.validation |
javax.websocket | jakarta.websocket |
javax.ws.rs | jakarta.ws.rs |
javax.xml.bind | jakarta.xml.bind |
Plugin Changes for Java 17
- Java 17 is a milestone release of Java that deprecates or renames several packages in Java. Updating applications to run on Java 17 requires code changes when these deprecated or renamed packages are used.
- Custom plugins that are developed locally require code changes to run with Java 17. These plugins with outdated packages may result in service initialization failure or trigger an exception when executing code that contains the deprecated packages. Utilities have been developed and packaged with Deploy to assist with this transition.
- When a system is upgraded to the 24.1 version, installed plugins will be scanned for Java 17 compatibility. If an incompatible plugin is found, the service will not start, and a log message is displayed about the incompatible plugin.
- To ensure a successful upgrade, the Plugin Manager CLI has been enhanced to scan plugins, which allows early detection of plugins that require code changes.
Note: Any incompatible plugins should be updated, and a new plugin must be prepared with a new version before you upgrade. For more information, about how to update custom plugins, see Update Custom Plugins for JDK 17 Upgrade.
Known Issue - Plugins
In General Availability (GA) deploy, all the officially supported plugins will be updated. However, not all of them have been updated, and JDK 17 validation is going to fail for the following plugin: Base plugin. This is not going to block the upgrade process, as the checks are optimised to not run on bundled plugins. The Base plugin will work normally despite being considered incompatible.
In General Availability (GA) deploy, all the officially supported plugins will be updated. However, if you encounter a situation where the plugins block the upgrade process, perform the following steps:
- Turn off the plugin validation during upgrade, by setting the configuration entry
jdk-plugin-compatibility-check.on-product-upgrade
tofalse
in thedeployit.conf
file. - Now, restart the service to complete the upgrade.
- To turn on the plugin validation during upgrade, set the configuration entry
jdk-plugin-compatibility-check.on-product-upgrade
totrue
in thedeployit.conf
file. - Now, restart the service.
Bug Fixes and Field Incidents
Bug Fixes and Field Incidents—24.1.12
- D-37018 - Fixed an issue in the Helm charts for Deploy where multiline base64-encoded values for license keys, truststores, and repository keystores caused installation failures.
Bug Fixes and Field Incidents—24.1.11
This version was skipped, and 24.1.12 was released in its place.
Bug Fixes and Field Incidents—24.1.10
- D-34949 - Fixed an issue where users without admin permissions received the incorrect error message "You do not have read permission" when accessing non-existent multi-level directory paths via the API.
- D-35186 - Fixed an issue with the deployment of file.File artifact on Windows servers in Deploy 24.1.2,
overthere.SmbHost
, andoverthere.CifsHost
while using the winrm_native connection type.
Known Issue
Plugin Compatibility During Operator Upgrade to 24.1.10
When upgrading Digital.ai Deploy from version 24.1.x to 24.1.10, you may encounter compatibility issues. This is because the images from earlier versions were built using a trial version, whereas the images from version 24.1.10 onwards are built with the standard plugin version.
Affected Plugins: The following plugins are present only in the trial-edition and should be removed or updated to compatible version before attempting an upgrade to 24.1.10:
glassfish-plugin-24.1.2.xldp
iis-plugin-24.1.2.xldp
jbossas-plugin-24.1.2.xldp
jbossdm-plugin-24.1.2.xldp
tomcat-plugin-24.1.2.xldp
was-plugin-24.1.2.xldp
windows-plugin-24.1.2.xldp
wlp-plugin-24.1.2.xldp
wls-plugin-24.1.3.xldp
xld-compare-plugin-10.0.0.xldp
xld-cyberark-conjur-plugin-24.1.8.xldp
xld-hashicorp-vault-plugin-24.1.8.xldp
Turnaround:
- Remove or update these plugins before upgrading to avoid errors.
- Verify the master pod logs after upgrading to ensure no plugin-related issues.
Bug Fixes and Field Incidents—24.1.9
This version was skipped, and 24.1.10 was released in its place.
Bug Fixes and Field Incidents—24.1.8
- D-34995 - Fixed an issue with loading Spring Cloud Config during the upgrade to 24.1.2 by updating the AWS SDK version from 1.12.735 to 2.26.17.
Bug Fixes and Field Incidents—24.1.7
This version was skipped, and 24.1.8 was released in its place.
Bug Fixes and Field Incidents—24.1.6
- D-34646 - Fixed the Deploy vulnerabilities from AquaScan.
- D-34984 - Fixed an issue with the json patch dictionary that was causing deployment failure.
Bug Fixes and Field Incidents—24.1.5
This version was skipped, and 24.1.6 was released in its place.
Known Issue - 24.1.4
-
D-34984 - When creating a JsonPatch dictionary CI in the Environment section, you might encounter the following error:
"Unable to make field protected java.util.Calendar java.text.DateFormat.calendar accessible: module java.base does not "opens java.text" to unnamed module @3b0fe47a Serialization trace".
Workaround:
- To resolve this, add the following JVM argument to the
conf/xld-wrapper.conf.common
file:
wrapper.java.additional.13=--add-opens=java.base/java.text=ALL-UNNAMED
Bug Fixes and Field Incidents—24.1.3
- D-34217 - Fixed an issue where generating a Keystore (JKS) in an HTTPS setup, with or without ingress, showed errors in the logs.
Bug Fixes and Field Incidents—24.1.2
- D-25092 - Fixed an issue where users were unable to edit placeholders upon clicking on a deployed application.
- D-26046 - Fixed an issue where the application could not be deleted as rollback failed to update Infra-CI with the correct version.
- D-26297 - Fixed an issue that blocked non-admin users to view active monitored tasks after upgrading to v23.1.4.
- D-27083 - Fixed an issue with the import functionality that was blocking the import of a DAR (DAR file of an application), which included a reference to another CI.
- D-31833 - Fixed an issue that prevented the active connections in the connection pool from returning on time. The connections in the pool were getting returned only on a restart.
- D-32103 - Fixed an issue where the client session time-out displayed a white screen.
- D-32379 - Fixed an issue that blocked a successful check connection when the infrastructure CI path includes special characters.
- D-32611 - Fixed an error that occurred when setting permissions manually within a folder, the new permissions were not saved.
- D-33430 - Fixed an issue with setting up a truststore from custom resource (CR) in Deploy.
- D-33442 - Fixed an issue of excessive API requests and continuous polling in the Deploy web interface when viewing tasks.