CloudBees is pleased to announce the newest CloudBees CD/RO long-term support (LTS) release. You can find specific information about this release in the following sections:

In a future release (planned for v2025.03.0), CloudBees will stop publishing the CloudBees Software Delivery Automation Helm charts. There will be additional migration steps for environments using these charts to integrate CloudBees Analytics with CloudBees CI when upgrading. For more information, refer to Upgrade notes.

Security fixes

The following security fixes and improvements have been made as part of this release:

Fixed issue that could result in object information exposure

When running objects that contained echo statements, it was possible that internal information about the object could be exposed as part of the echo statement. This behavior has been updated to use static strings instead.

Resolved security issue for route parsing

To address security vulnerabilities related to handling route patterns, the path-to-regexp libraries were upgraded from version 0.1.7 to 0.1.10 and from version 1.7.0 to 1.9.0.

Updated jsPDF version

jsPDF has been updated to address security vulnerabilities.

PHP upgraded

PHP was upgraded to v8.1.31 to address security concerns.

New features

The following new features are introduced as part of this release:

UI searches are now case-insensitive

CloudBees CD/RO UI searches are now case-insensitive by default. For environments using a case-sensitive database, you can re-enable case-sensitive searches by navigating to Administration  Server settings  UI settings and changing Case-sensitive searches from Disabled to Enabled.

The Case-sensitive searches option is only present for environments that use case-sensitive databases. Additionally, this setting does not affect API searches, which remain case-sensitive by default.
Pipeline Stats dashboard added

A new built-in analytics Pipeline Stats dashboard has been added to provide insights into your pipeline run statistics. To view the dashboard, select the Analytics from the top navigation, and then select Pipeline Stats from the dashboard list. Additionally, to review the documentation, refer to Pipeline Stats dashboard.

Scale build resources manually using procedures in Kubernetes environments

In Kubernetes environments, you can now manually create and remove build resources (agents) within resource pools using a procedure. Running this procedure allows you to create agent resources to meet high resource demand and minimize wait times for jobs to start, such as when running multiple releases.

Once these agents are no longer needed, you can remove them using the procedure to help optimize resource usage. For more information, refer to Scale build resources manually using a procedure.

Feature enhancements

The following feature enhancements have been made as part of this release:

Service catalog UI has been refactored

The Service catalog UI has been refactored to enhance usability. Key improvements include:

  • Adding separate tabs for Catalog items and Catalogs.

  • Enhancing page filters for better searchability.

  • Introducing action-specific tabs that appear when a catalog is selected.

    Along with these enhancements, the Service catalog documentation has been completely revamped for improved usability. For more information, refer to Service catalog.
UI searches are now case-insensitive for all databases by default

By default, UI searches are now case-insensitive for all installations, including those that use case-sensitive databases, such as Oracle and PostgreSQL. For case-sensitive databases, a global setting is provided to control this behavior. To adjust this setting, navigate to Administration  Server setting  UI settings  Case sensitive, where Enabled is for case-sensitive searches, and Disabled is for case-insensitive searches.

The APIs findObjects, countObjects, getObjects, and deleteObjects are still case-sensitive by default for case-sensitive databases. A case-sensitivity flag is provided to control this behavior. Case-insensitive databases, such as MySQL, MariaDB, or Microsoft SQL Server, continue to support case-insensitive searches, irrespective of the API case-sensitive flag.

CloudBees CD/RO now supports Kubernetes v1.30

CloudBees CD/RO has been tested with Kubernetes v1.30 for specified versions. For more information, refer to Supported platforms for CloudBees CD/RO on Kubernetes.

CloudBees CD/RO v2024.12.0 is not supported on Azure Kubernetes Service (AKS) v1.30 if you are using CloudBees Analytics.
Updated page searches to be case-insensitive

To improve the usability of searches, all CloudBees CD/RO pages can now use case-insensitive searches.

Stage information is now shown in Portfolio views

When you select the Portfolio basic or Portfolio list, the status of stages are now shown under the object. This improves usability by providing an overview of the release in a single view.

Search field tooltip updated

The tooltip that appears when you select the Search field on CloudBees CD/RO UI pages has been updated to reflect the ability to enable case-insensitive searches for applicable databases.

Not all Search fields display this tooltip, because not all pages use case-sensitive searches.
Properties for completed releases can no longer be modified

To enhance the auditability of completed releases, you are no longer allowed to modify the properties of a release once it is completed. This ensures the integrity of release data and provides a reliable record for auditing purposes.

Search and filter for users

For users, you can now use basic searches and advanced filtering to refine results.

VPAT report for CloudBees CD/RO has been updated

Because CloudBees values making our products accessible to all users, the CloudBees CD/RO VPAT (Voluntary Product Accessibility Template) report has been reassessed, so we can continue to meet accessibility standards, ensure compliance with applicable regulations, and provide an inclusive experience for all users. For more information or to download the report refer to Accessibility.

A Sub release label is now added to releases triggered by parent releases

In the Portfolio basic and Portfolio list views, releases triggered by a higher-level release now automatically receive the Sub-release label instead of the Release label. This update improves usability and clarity for nested release scenarios.

Sub-releases are now visible in Portfolio list and views

Sub-releases manually added in the Kanban view as part of the release definition are now shown in Portfolio lists and in Portfolio basic views. Additionally, the Add Attach Pipeline Run option has also been added to include pipeline information in Portfolio views and lists.

YAML DSL is now Generally Available (GA)

YAML DSL is now Generally Available (GA) for the evalDsl and generateDsl operations, allowing YAML files to be processed. However, the following limitations exist:

  • Native YAML support is not fully supported

  • No support for multi-file configurations.

  • Parameterization is not supported.

  • The EC-DslDeploy plugin is not supported.

  • dslsync and scmsync are not supported.

Summary links for stages are now highlighted if it contains content

To improve the usability of stage summaries, the Summary link is now highlighted as an active link if it contains content, and greyed-out if the summary is empty. The Summary link is red if the stage contains errors.

Parent releases cannot be complete if they have active sub-releases

To improve the behavior of nested release scenarios, parent releases can no longer be completed if they contain an active immediate sub-release.

Resolved issues

The following issues have been resolved as part of this release:

Fixed Total Release Duration - Automated vs Manual Tasks totals

When using the Analytics dashboard widget Total Release Duration - Automated vs Manual Tasks, all release time was calculated as Automated. This issue has been fixed, and the times are now totaled as expected.

Selecting jobStepId from the property picker while modifying steps gives invalid property path

When modifying the definition of a procedure step, and selecting the property picker icon then the step System Properties (Runtime) option, the path for the jobStepId was incorrect. This caused a Step error to be returned. This issue is now fixed, and the jobStepId is correctly referenced.

Manual tasks were not being skipped in application deployments using Smart deploy

When running application deployments using Smart deploy, manual tasks were not being skipped as expected, which caused the deployment to be paused until they were approved. This issue has now been fixed, and after the first deployment of the application, manual tasks are skipped.

Fixed issue related to using "+" in REST API parameters

Fixed issue where the + (plus) was not correctly interpreted when used in the parameters of REST API calls.

Fixed Total Release Duration - Automated vs Manual Tasks totals

When using the Analytics dashboard widget Total Release Duration - Automated vs Manual Tasks, all release time was calculated as Automated. This issue has been fixed, and the times are now totaled as expected.

Several APIs are missing mandatory parameters and need clarification

An issue was reported that several APIs were missing mandatory parameters and examples in their descriptions in the documentation. Clarifications and examples were added to the following pages to help their usability:

Non-existed artifact versions returned in Environment Inventory

Fixed an issue where the Environment Inventory returned non-existed artifact versions.

CloudBees CI Organization Folders not populating in CI jobs task configurations

An issue was reported that when configuring CI jobs as tasks in pipelines that CloudBees CI Organization Folders were not appearing in the UI, and thus, jobs in the folders could not be selected. This issue has now been fixed, and now, CloudBees CI Organization Folders do appear in the CI jobs menu.

Pipeline runs that run longer than one year not correctly reported

Fixed issue where pipeline runs that lasted more than one year would reset at 366 days back to 1 day.

Fixed evalDsl not working as expected in procedure steps

In v2024.09.0, an issue was reported that evalDsl was not working as expected when invoked from procedure steps. This issue has now been fixed, and operates as expected.

Known issues

The following issues are included as known issues in this release:

MeanLeadTime report does not work correctly without release runs

The MeanLeadTime report does not work correctly when Elasticsearch only has pipeline runs but no release runs.

Data from a custom data retention policy schedule is not purged for single runs

When a custom data retention policy schedule is set to run once, the data is not purged after archiving. To purge data after archiving, use a repeat schedule or the global data retention setting.

Artifacts can’t be transferred across zones using UI

The CloudBees CD/RO UI does not allow you to transfer artifacts across zones.

Using PostgreSQL change tracking may generate errors

When using PostgreSQL with change tracking enabled, EcAuditStrategy errors may appear in the server log. This is a known issue, but is not expected to have any effect on the performance of the system.

Events generated from CloudBees CI create URLs that cause 401 errors

Events that originate from the default CloudBees CI create default configurations. URLs for these new controllers are not Jenkins configured URLs and cause 401 errors.

Process steps modified during runs to be manual will hang

When a process step that is not manual is modified to be manual after the process runs, but before the associated job step evaluated, the step hangs and adds a java.lang.IllegalStateException: Unknown step type: manual exception to the log.

flowRuntime reports existing CloudBees CI job when switching platforms

The flowRuntime response contains hasCIJobs=1 if a release was started from CloudBees CD/RO and the previous release run was triggered within CloudBees CI.

CloudBees CI build logs are not accessible using getCIBuildLog without controller restart

When running getCIBuildLog for a CloudBees CI build, the build log cannot be accessed without restarting the build CloudBees CI controller. As a workaround, restart your CloudBees CI controller, and set up a number of executors, and getCIBuildLog can then be used to access the CloudBees CI build logs.

Catalog item objects cannot end in spaces on Windows agents

On Windows agents, "Export DSL" catalog item fails to export objects that end in spaces.

Undefined parameters returned in CloudBees CI job response

In CloudBees CI job responses, actual parameters are returned that are not defined within the job. Additionally, saving and reloading the tasks doesn’t clear undefined actual parameters.

Multi-select menu options don’t define specific projects of project objects

Currently, if a formal parameter depends on a dropdown menu to get project parameter dependencies for object-like parameters, such as projectName, you can select multiple options in dropdown menus. However, there is only an object name (or list of names in case of multi-select) in the parameter value with no connection to a project and without the ability to identify which object exists in which projects.

CloudBees does not recommend using multi-select options for parameters used as project parameter dependency for object-like parameters when configuring formal parameters. This applies for the following formal parameter types:

  • Application

  • Procedure

  • Pipeline

  • Release

  • Environment

v10.2 and earlier legacy services may cause failed upgrades and break database consistency

Before upgrading from CloudBees CD/RO v10.2 and earlier, if legacy services exist in your system, upgrades may fail and database consistency break. Additionally, even if the upgrade returns successfully, it may still be impossible to run the validateDatabase API.

As a workaround, before upgrading from v10.2 and earlier, delete all legacy services and containers, and then perform the upgrade.

dslsync apply does not delete microservice mapping when source microservice has fewer mappings than target

Mapping for microservices is not deleted when the source microservice contains fewer mappings than the target microservice. This mismatch of microservices occurs when the following actions are performed.

On the DEV server:

  1. A microservice with 1 mapping is modified.

  2. dslsync apply is used promote DEV changes to:

    • DEV Git and CD/RO instances.

    • PROD Git and CD/RO instances.

      Expected/Actual Result: Both DEV and PROD data is synchronized = miroservice with 1 mapping

  3. The microservice is renamed.

  4. dslsync apply is used to promote changes to DEV Git and CD/RO instances.

    Expected/Actual Result: DEV and PROD data is NOT synchronized.

    • DEV = Renamed microservice with 1 mapping.

    • PROD = miroservice with the old name and 1 mapping .

On the PROD server.

  1. Mapping is added to the microservice with the old name. dslsync apply is used to promote changes to PROD Git and CD/RO instances.

    Expected/Actual Result: DEV and PROD data is NOT synchronized.

    • DEV = Renamed microservice with 1 mapping.

    • PROD = miroservice with the old name and 2 mappings.

  2. dslsync apply is used to promote DEV changes to PROD Git and CD/RO instances.

    • Expected Result: Both DEV and PROD data is synchronized = Renamed microservice with 1 mapping

    • Actual Result: Dev and PROD data is NOT synchronized. DEV = Renamed microservice with 1 mapping. PROD = Renamed microservice and 2 mappings.

Kerberos SSO sign-in issues

You may experience SSO sign-in issues when using Kerberos due to a Microsoft known issue.

v10.2 and earlier legacy services may cause failed upgrades and break database consistency

When updating from v10.2 or earlier to v10.3 or later, your upgrade may fail and break database consistency if legacy services or containers exist in your system. Additionally, even if the upgrade completes successfully with legacy services or containers present, it may still be impossible to run the validateDatabase API.

As a workaround, before upgrading from v10.2 and earlier, delete all legacy services and containers, and then perform the upgrade. When upgrading a clustered deployment of CloudBees CD/RO, before running the installer to upgrade, delete the contents inside the broker-data directory, located at <DATA_DIR>/broker-data-<hostname>.

CloudBees Analytics server cannot be configured in legacy UI

On DevOps essentials  Platform Home page  Administration  Analytics server, the message WARNING: 'getDevOpsInsightServerConfiguration' API is deprecated. is displayed, because Elasticsearch is no longer supported. Additionally, it is no longer possible to configure CloudBees Analytics from this page, because it is deprecated and will be removed in a future release.

To configure your CloudBees Analytics server, navigate to Administration  Configuration  Analytics server.

UI settings for Instance header can cause the navigation to disappear after updating

If upgrading from v2023.06.0 or earlier to v2023.10.0 or later, if Administration  Server settings  UI settings  Instance header is Enabled, and has a null value for the UI header label, the navigation may not load after an upgrade.

  • Workaround if you have already upgraded:

    1. Downgrade back to the pre-upgrade version.

    2. Navigate to Administration  Server settings  UI settings and set Instance header to Disabled.

    3. Perform the upgrade again.

  • Workaround if you have not already upgraded:

    • Navigate to Administration  Server settings  UI settings, and either:

      • Set Instance header to Disabled.

      • Set Instance header to Enabled, and add a value in UI header label.

Widget X-axis labels may overlap if a pipeline with only a few runs is returned

In the Pipeline Stats dashboard, if your query returns a pipeline with only a few runs, the widget labels on the X-axis may overlap in some cases, which may cause them to be unreadable. This is issue is fixed once a greater number of results are returned.

SyncArtifactVersions procedure completes with success when it should fail

SyncArtifactVersions procedure completes with success, rather than showing a warning, when manifest is missing and overwrite = false.

Automation Platform UI requires artifacts to use English characters in their file names

When you use the Automation Platform UI to upload and publish artifact files with non-English characters in their file names, the operation fails with the following error: Upload file: Exit code 1: ERROR: Publish failure: Unexpected retrieval exception for repository error.

Must restart server to apply LDAP changes

Modifications of LDAP user data (such as email addresses) on an Active Directory server after registration in CloudBees CD/RO do not appear properly in user details (in the Automation Platform UI, the Deploy UI, or ectool) until the CloudBees CD/RO server is restarted.

Not all Elasticsearch operations can be performed in a red state

(Microsoft Windows platforms only) If the Elasticsearch cluster used by CloudBees Analytics is in the red state (meaning that it only partly functions and some data is unavailable), then upgrade, reconfigure, and uninstall operations will not work. Since the Elasticsearch service cannot be stopped when a cluster is in a red state, you must stop the Elasticsearch service process from the task manager before running the installer for these actions.

Microsoft Edge® doesn’t support SAML 2.0

The Microsoft Edge® browser does not work with SAML 2.0 and is missing a self-signed certificate during redirection from the identity provider to the service provider. Microsoft Edge® is not recommended for sign-in via SAML 2.0.

LANG environment variable must be set to en.US.UTF-8

The LANG environment variable must be set to en.US.UTF-8; otherwise, the upgrade fails. Refer to KBEC-00452 - Error installing CloudBees CD/RO 10.0.x when Lang environment variable is different than en.US.UTF-8 for details.

Schedules missing configuration do display runtime error prompts

Error prompts for runtimes started by a schedule are not visible if the schedule was created with a missing configuration.

Changing name in Release Dashboard changes stage status color

The stage inclusion status in the Release Dashboard changes color after a stage is renamed.

Steps that cannot access their child steps are not retried

If an application process step cannot expand to its child steps (because of an invalid run condition or an invalid formal parameter), then the step is not retried even if it uses retry on error error handling. The job eventually completes with an error.

Retry count missing from pipeline runtime page

The retry count for group tasks or rules using automated retry on error is missing from the Pipeline runtime page.

Email notifications are not supported for complex environment mapping

Multiple mapped environments with the same name from different projects are not supported in email notifications.

Path-to-production view missing from imported project

A project import might not include the path-to-production view.

All subreleases must be present to link to a release

All subreleases of a release must appear before the release in the DSL for the release-to-subrelease links to be created.

CloudBees Analytics report editor doesn’t include search by assignee

The ability to search by assignee in a Deployment Report is not available in the CloudBees Analytics report editor.

Additional Release Command Center configurations for Jira

If Release Command Center was set up for Jira for user stories and defects, and the JIRA project name was mapped to the release project name using the field mapping projectName:releaseProjectName, then before upgrading to 10.0, the field mapping must be updated to mention the actual release project name using the following field mapping format: "release-project-name-in-CloudBees CD/RO":releaseProjectName.

Approval by email on manual tasks

Approval by email on manual tasks should not expect parameters.

ectool export and ectool import should only be used between same server versions

If you use the ectool export to export your system configuration from a previous release, and then use ectool import to import the same configuration to a CloudBees CD/RO 10.0 server, some out-of-the-box content introduced in the releases since the version from which the full export was done, such as new or updated plugins, new catalog items, and persona-based menu items, may be missing in the CloudBees CD/RO server UI. It is recommended to use ectool export and ectool import only between servers at the same version.

SSO requires additional PHP configuration

SSO does not work unless PHP configuration is changed due to a security-related request. As a workaround, change session.cookie_samesite to "Strict" in /opt/electriccloud/electriccommander/apache/conf/php.ini and restart the web server.

No UI to run or review pre-v10.1 triggers

CloudBees CD/RO v10.1 introduced new triggers and an updated UI for them. Pre-v10.1 triggers will continue to work but there is no UI to review or run them.

Legacy definitions and references cause unexpected behavior for full data exports

Before using the export command to perform a full data export from the CloudBees CD/RO database, delete any legacy definitions and references to service objects from applications and releases.

Reverting changes is not possible for all objects

You can only revert changes for high-level design objects such as applications procedures, procedure steps, workflow definitions, and state definitions.

Restarting the CloudBees CD/RO server while new records are created for all tracked objects might take at least as long as an export or import of all projects (10 to 40 minutes for a large project).
Recursively traversing nested group hierarchies may cause performance issues

Enabling Recursively Traverse Group Hierarchy might impact system performance when the LDAP group hierarchy is traversed. The amount of impact varies with the configurations of the CloudBees CD/RO and LDAP servers, the depth of group hierarchy in the LDAP server, and the network latency between the servers. Ensure that your directory provider can handle the additional load for supporting nested group hierarchy traversal.

Disabling and re-enabling change tracking may cause performance issues

System performance might decrease if you disable change tracking at the server level and then re-enable it. Change tracking is enabled by default. For details about using change tracking, refer to change tracking.