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:

The following changes have been made to the CloudBees CD/RO release notes:

  • The plugin release notes sections Plugin updates and PDK enhancements have been migrated to the Plugin release notes tab.

  • The upgrade notes sections Behavior changes, Installation and upgrade notes, and Configuration notes have been migrated to the new Upgrade notes tab.

Security fixes

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

Third-party libraries updates

The following third-party libraries have been updated:

  • PHP to version 8.1.25

  • Apache to version 2.4.58

  • OpenSSL to version 3.0.12

Apache Ivy updated

Apache Ivy has been updated to 2.5.2-PATCH1 version.

CVE-2023-27534 resolved

CVE-2023-27534 was detected in previous releases of CloudBees CD/RO, and has been resolved.

CVE-2023-38545 resolved

CVE-2023-38545 was detected in previous releases of CloudBees CD/RO, and has been resolved.

New features

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

CloudBees CD/RO ec-specs testing framework is now available

You can now use CloudBees CD/RO ec-specs to write and run test specifications on CloudBees CD/RO releases, pipelines, DSL scripts, etc. For more information, visit the ec-specs GitHub repository.

Argo Rollouts inline analysis is now supported

Starting with CloudBees CD/RO v2023.12.0, you can use approved Argo Rollouts metric providers for deployment inline analysis. CloudBees CD/RO microservice deployment pipelines poll the rollout for results from metric providers, and either progress or rollback the deployment.

Additionally, if a rollout returns inconclusive results, a manual approver step is created in the deployment pipeline, and assignees are notified based on group notification policies. For more information, refer to Using Argo Rollouts inline analysis.

DORA Metrics combined into one dashboard

A new DORA Metrics dashboard is now available that includes Deployment Frequency, Mean Lead Time, Mean Time to Recover, and Change Failure Rate. Previously split across separate dashboards, your performance metrics can now be tracked a single convenient view.

Feature enhancements

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

The stage restart total is displayed in the Audit Reports and the Deployments tab

The number of times a stage has been restarted is now displayed in Audit Reports and the Deployments tab.

Removed EC-ServiceNow plugin dependency from the MTTR dashboard

Enhancing usability, the MTTR dashboard widget now functions without needing to install and configure the EC-ServiceNow plugin. The EC-ServiceNow plugin procedure GetRecords_NextGen includes the SysID output parameter. If opting not to use ServiceNow, you can set up an alternative procedure that specifies this output parameter.

A warning now displays when environment configuration is needed

When adding an application to a release that does not include a configured environment, a warning message now displays.

Preview Feature: Improved support for managing runtime properties

To improve developer experience, a new initialValue argument has been introduced for property APIs createProperty, modifyProperty and setProperty that can be used to prevent runtime property values from being overwritten. Runtime properties might include counters or other properties that are updated due to process execution. This is particularly helpful when configurations are managed by DSL. For example, when first applying DSL, it might be desirable to set an initial value, but on subsequent applications maintain the current system value. DSL for such a runtime property:

Runtime property example
// If prop_counter does not exist, // then the property will be created with its value set to 1 (value for initialValue). initialValue is also set to 1. // If prop_counter already exists, // then the property value will remain unchanged. initialValue is updated to 1. property 'prop_counter', initialValue: '1', value: '201' // Existing behavior // If prop_counter_no_initial_value does not exist, // then the property will be created with its value set to 201. // If prop_counter_no_initial_value already exists, // then the property value will be updated to 201. property 'prop_counter_no_initial_value', value: '201'

As part of this feature, the behavior of generateDsl has also been updated when both initialValue and suppressValueTracking are set for runtime properties. When generating DSL for a property with initialValue set to a non-null value and suppressValueTracking set to true, then the property value is not output in the generated DSL allowing only the property definition to be represented in the generated DSL. DSL for a runtime property with suppressValueTracking set:

Runtime property with suppressValueTracking
property 'prop_counter', initialValue: '1', value: '201', suppressValueTracking: true

The new initialValue is a preview feature. This preview feature is currently not available through the Flow UI, but is available through the CloudBees CD/RO APIs.

Third-party deployer task artifact version field supports property substitution

Third-party deployer task artifact version field now supports normal property substitution.

Improved performance when importing formal parameters with the optionsDsl parameter defined

Improved performance of DSL imports containing formal parameters by adding a new validate argument to the create/modifyFormalParameters API. Now, by default, the create/modifyFormalParameters API validation will not evaluate the optionsDsl, validationDsl, or defaultValueDsl argument values. The validate argument must be set to true to validate the optionsDsl, validationDsl, or defaultValueDsl argument values.

New procedure parameter type has been added to CloudBees CD/RO

The newly added procedure parameter type creates a procedure dropdown to select an existing procedure object. To use this parameter type, you must first provide a way for users to select the project containing the procedure via a Project, Dropdown Menu, or Text Entry parameter type.

The Edit task screen is now resizable

The Edit task screen can now be vertically expanded or collapsed.

The instance header was enhanced to include links

Links can now be added to the text in the instance header label.

The evalDSL API had been enhanced to allow control of validation checks for imported entities

To control validation checks for imported entities, the disableAllValidations argument was added to the evalDSL API.

The argument actions are:

  • When argument value is true all validations/tests for evaluated entities are disabled.

  • When argument value is false all validations/tests for evaluated entities are enabled.

  • When argument value is null all validations/tests for evaluated entities is controlled by DSL content and by default disabled argument.

    The disableAllValidations option was added and paired with the following APIs and arguments. API name API argument list.

  • addCredentialToPluginConfiguration test

  • createCIConfiguration / modifyCIConfiguration testConnection

  • createComplianceConfiguration / modifyComplianceConfiguration testConnection

  • createCredentialProvider / modifyCredentialProvider testConnection

  • createCredential / modifyCredential test

  • setDevOpsInsightServerConfiguration testConnection

  • createFormalParameter / modifyFormalParameter validate

  • createKerberosKeytabEntry validateKeytabEntry

  • createTrigger / modifyTrigger validate

New DSL defeat validation option added to input parameter

It is now possible to turn off DSL validation when creating an input parameter in the UI. By toggling off the Validate DSL arguments checkbox, DSL validation is turned off. This is useful when a known good DSL expression takes a long time to validate or when false-positive errors occur at creation time.

To improve performance, the includeRuntimeDetails and includeRuntimes arguments were added to the getReleases API

Argument were added and depreciated in the getReleases API to improve performance. Argument changes are:

  • Added includeRuntimes. Set to true to include release last run information in response. Default value is false.

  • Added includeRuntimeDetails. Set to true to include detailed information about release last run or a run specified in releaseFlowRuntimeMapping with flowRuntimeId, available only when the response returns a maximum of 10 releases. Default value is false.

  • Depreciated the excludeRuntimeDetails and viewName arguments.

Simplified plugin selection in application process dialogue

The CloudBees CD/RO traditional application process dialogue has been updated, and it is no longer necessary to select a plugin category before choosing the desired plugin.

Kubernetes v1.28 support

CloudBees CD/RO Helm charts now support Kubernetes v1.28.

Access the process object editor from the Edit Task panel

In the Edit Task panel, a link to open the object-specific editor now becomes active when the Process field is populated.

CloudBees CD/RO IntelliJ IDEA plugin version 1.2.0 is now available

In this new plugin version contains the following enhancements and fixes.

  • Added support for IDEA 2023.3.

  • Added detailed plugin documentation.

  • Added request timeout setting to the CloudBees CD/RO Connections Settings screen.

  • Added support for authentication using a token.

  • Added support for YAML format DSL.

  • Added support for displaying CloudBees CD/RO Server errors.

  • Added support for evaluating DSL functionality. This feature checks variables in the script before executing DSL. Then, it provides the ability to substitute these values.

  • Switched redirection of the Go to job details option to now navigate to the CloudBees CD/RO modern UI.

  • Fixed security issues.

  • Added support for communication with the server via the WEB server. This eliminates the need to specify the server hostname and web server separately.

For more information, refer to Intellij IDEA plugin.

Third-party tool updates for CloudBees CD/RO agents

The following third-party tools have been updated:

Elasticsearch upgrade

Elasticsearch has been updated to version 7.17.14.

Added support for image and container security context

Support was added to the CloudBees CD/RO Kubernetes templates for image and container security contexts, and they can now be used in CloudBees CD/RO Helm charts. For more information on configuring security context in your values files, refer to Applying pod security context in CloudBees CD/RO Helm charts.

Add custom values for liveness and readiness probing in Kubernetes Helm charts

Starting with v2023.12.0 Helm charts, you can add custom values for:

  • jobInit.livenessProbe

  • web.livenessProbe and web.readinessProbe

  • repository.livenessProbe and repository.readinessProbe

For more information, refer to How to configure custom probing values.

Use custom registry images in CloudBees CD/RO Kubernetes Helm charts

CloudBees CD/RO Kubernetes has been enhanced, and you can now use custom images in component-level charts. For more information, refer to How to configure custom images for CloudBees CD/RO.

CloudBees CD/RO web server performance improved by extending file type compression

The CloudBees CD/RO web server performance has been improved to compress a wider array of Apache web server files types, including JS, XML, fonts, etc.

Resolved issues

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

Processes with many linked parallel steps causes job creation to hang

Fix issue of job creation hanging when the process has many parallel steps linked to each other.

Application version not expanded in stage summary

Fixed issue where applications version defined as a property reference were not expanded in the stage summary.

The Audit reports only displays evidence from the last run of each stage.

The Evidence tab of the Audit reports has been enhanced to display evidence from the most recent run of each stage.

Transaction rollback errors returned by the RDBMS are now being properly interpreted

Fixed the misinterpretation of transaction rollback errors returned by the RDBMS when committing transactions.

The modifyEnvironmentTier with the flag resourcePhaseMapping incorrectly added a new resource in environment tier

The modifyEnvironmentTier with the flag resourcePhaseMapping command now modifies the existing environment tier as expected.

Fixed conflicts caused by parent context objects property names

Fixed DSL property name issue that created conflicts between parent context objects and their nested operation arguments.

Fixed issue of email link not working for manual steps containing parameters.

Removed the Yes for manual tasks that include parameters.

The myProcess/owningProjectName property disappears after restart

The myProcess/owningProjectName property is now retained after restarting CloudBees CD/RO.

Resolved user interface freeze when start/end date undefined

Resolved an issue where the UI would freeze when a user attempted to edit the start/end date in the popup that displayed for a release with a previously undefined start/end date.

Added InvalidObjectType to EcException for instances when mapping is not found for an objectType

When mapping is not found for an objecftType, the InvalidObjectType EcException now occurs.

Fixed incorrect PATH variable after upgrading from v10.3 or earlier

Fixed issue of agent using the environment variable PATH defined in ~/.cshrc when upgrading to v2023.08.0 from v10.3 or earlier.

Incorrect version component value were passed to deploy application process

Fixed issue of incorrect version component values being passed to deploy application processes if the value was defined with a property reference.

Fixed override tags not working during DSL evaluation and import

Override tags now work as expected during DSL evaluation and import.

Fix issue of the evalDSL API not overwriting properties

The evalDSL API now overwrites properties as expected.

Fixed inconsistent ordering generated DSL components

Components are now alphabetically ordered in the application tier.

Fixed ZooKeeper environmental variables in Helm chart and Docker images

In the CloudBees CD/RO ZooKeeper Helm chart and Docker image, there were environmental variables that were not correctly passed to zoo.cfg. This issue has been fixed. Additionally, autopurge variables were also updated as part of this fix.

Project creation is permitted when saving a release as a catalog item

The Save release as a catalog item feature now allows project creation.

Evidence tab of Pipeline run audit report displays details for latest stage

The Evidence tab of Pipeline run audit report now only displays runtime details for the latest stage.

Deleting a cloned application process that contains tiers returns integrity violation errors

Fixed issue of a cloned application process containing tiers returning integrity violation errors. Now, when an application process being cloned contains a tier with the same name as an application process tier in the target application, then the application tier id is set to match the value in the target application. If application tier id value is not present in target application, then application tier id to null.

Track changes to value help text added

When adding a new property, the Track changes to value checkbox now includes help text explaining its behavior. When the checkbox is selected, changes to the property value are tracked. If not selected, the current property value is only retained during imports and exports.

Widget message for no filtered data available updated

Widgets now display No data yet message instead of NaN if no data corresponds to filters selected.

Behavior of evalDsl overwrite true updated for applications containing microservices

evalDsl with Overwrite set to true does not fail for applications containing microservices.

Fixed force import for persona page with persona subpages

Fixed force import for persona page with persona subpages.

Fixed issue causing resourcePool not found error at the start of environmentTier import

Changed message logging level from ERROR to DEBUG when resourcePool is not found at the start of an environmentTier import. The resourcePool is found later during the import. Import results are not affected.

Fixed issue causing errors using getOutputParameter

The getOutputParameter for a job feature now works as expected after upgrading to CloudBees CD/RO v23.10.0 from v10.11.

Fixed issue affecting the evalDSL API running of property-related API job steps

Property-related API job steps in the evalDSL API now run same way as in DSL IDE. This was fixed by resolving conflicts with explicitly specified and implicitly injected arguments in the evalDSL API.

Updated Kubernetes agent third-party tool installation

In previous CloudBees CD/RO versions, the examples for installing agent third-party tools on Kubernetes shown in:

The rolling deploy phases size limit was too small

The rolling deploy phases are no longer limited by size.

Exception stack traces no longer occur when evaluating DSL of a procedure pipeline task or task inside a group::Fixed an issue that resulted in logging exception stack traces when using evalDSL with overwrite set to true to validate DSL of procedure pipeline task or a pipeline task within a group.

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.

Artifacts can’t be transferred across zones using UI

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

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.

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.

Kerberos SSO sign-in issues

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

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.

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.

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.

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.

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

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.