New calendar versioning in 2023

Beginning with the first release in 2023, CloudBees CD/RO is moving to a calendar versioning convention. The version number consists of the following fields:

  • Major: four digit year.

  • Minor: two digit month.

  • Micro: This is a patch version number starting with zero.

  • Modifier: An optional text tag, such as "dev," "alpha," "beta," "rc1," etc.

For example, release version 2023.02.0 would be the first release in February 2023 and 2023.03.2 would be the second patch release in March 2023.

For more information, refer to CloudBees maintenance lifecycle policies.

CloudBees CD/RO v10.11

CloudBees is pleased to announce the v10.11 long-term support (LTS) release of CloudBees CD/RO. With this release, CloudBees added several new features and system improvements, including:

  • Third-party deployments

  • SAML format configuration for SSO.

    This is a preview feature.
  • A YAML DSL option, including the ability to export.

    This is a preview feature.

Refer to New features below for more information.

Security fixes

This release includes the following security updates to address potential vulnerabilities:
  • Apache Commons configuration is upgraded from 6.5.0 to 6.6.1. [BEE-27970]

  • Apache Ivy is upgraded from 2.5.0 to 2.5.1. [BEE-28137]

  • Elasticsearch is upgraded to 7.17.7. [BEE-28654]

  • Jackson-databind is upgraded from 2.13.4 to 2.14.0. [BEE-24529]

  • PHP is upgraded from 7.4.32 to 8.1.13. For details, refer to https://www.php.net/releases/8_1_13.php. [BEE-28655]

  • Woodstox is upgraded from 6.2.4 to 6.4.0. [BEE-27568]

New features

Third-party deployments

With this release, CloudBees CD/RO simplified the process for using third-party tools for deployment by introducing Deploy and Undeploy options to the pipeline task object. When application and/or component versions are supplied in the task definition, then the environment inventory, path to production, and deployment analytics data is updated when the task is run.

The new CloudBees CD/RO third-party deployment feature allows you to execute deployments using your own deployment tools and still enjoy the benefits of CloudBees CD/RO application modeling. You have the ability to add an external deployment tool as a release or pipeline task.

For more information, refer to Third-party deployment.

SAML format configuration for SSO

You can now select a nameIdFormat when configuring your SAML SSO service provider.

SAML format configuration is a Preview feature. For more information, refer to Configuring single sign-on with SAML.

YAML DSL

You can now export and import CloudBees CD/RO code in YAML format. The DSL IDE has been updated to support YAML evaluation.

YAML DSL is a Preview feature. For more information, refer to CloudBees CD/RO domain-specific language (DSL), Generating DSL Scripts, and DSL editors.

Feature enhancements

UI enhancements

This release includes the following UI enhancements:

  • A new release editor UI with:

    • A tabbed layout

    • New button labels

    • New icons for controls

    • An updated process to create new and copy existing sub releases

  • A new pipeline editor UI with:

    • A tabbed layout

    • New button labels

  • A new Access tokens link on the User profile page

    You can now open the Access tokens page from the User profile page. Before, the page was only accessible through the Users page, which is based on custom access control settings.

Performance improvements

None.

Plugin enhancements

CloudBees CD/RO plugins catalog

The CloudBees CD/RO plugins catalog is available on the CloudBees CD/RO documentation site.

For more information about plugin support and versioning, refer to Plugin Concepts.

Plugin updates

EC-AnsibleTower 1.1.4

The dynamic dropdown parameter fields were replaced with text fields and validations were removed for the Retrieve a Job Template, Launch a Job Template, Launch and Wait a Job Template, and Retrieve an Inventory procedures.

EC-Bitbucket 1.2.2

Fixed setup of webhook API when properties are defined in the Repository field.

EC-DslDeploy 4.1.8

Added support to run the importDslFromGitNew sub procedure for the plugin.

Fixed issue with import of non-project entities in case remote agent is used.

EC-Git 1.12.1

Added branch name to commit data output.

Value resolving was fixed if the trigger parameter was defined as a reference to a property.

EC-Github 4.5.4

Fixed setup of webhook API when properties are defined in the Repository field.

EC-Helm 1.6.0

Added handling for "Use Existing" config file case.

Added the Kubeconfig context parameter to plugin configuration.

Deprecated the Kubeconfig context parameter in Cluster Reference form in Microservices.

Fixed security issue.

Fixed hard-coded actionOnError parameter.

EC-JIRA 2.1.2

Fixed an issue with the resolvedOn field not being retrieved for CloudBees Analytics configurations created for RCC.

SonarQube 2.1.2

This version includes the following updates:

  • Updated the SonarScanner CLI version to 4.7.0.2747.

  • Fixed an issue related to Test connection when using an authentication token.

  • Deprecated support for SonarQube 6.7. To use SonarQube 6.7, you must use CloudBees CD/RO agent 10.10 or lower.

Trigger-Property 1.1.1

Fixed setup of webhook API when properties are defined in the Trigger property name field.

Xray 1.0.0

First release.

Plugin Development Kit enhancements

None.

Resolved issues

BEE-16657

Fixed a page-loading issue on the Properties dialog in the UI. The UI is updated to use lazy loading when retrieving properties.

BEE-23727

You can now configure COMMANDER_JRE_TRUSTORE and COMMANDER_JRE_TRUSTORE_PASSWORD using ecconfigure.

BEE-24271

Fixed an issue with the TestConnection procedure for existing plugin configurations.

BEE-24707

Fixed an issue with importing non-project entities when using remote agents.

BEE-27158

Added CloudBees CD/RO response validation with error logging to cluster tool logs.

BEE-27237

Improved the application process render for complex cases.

BEE-27465

Fixed an issue with screen filters for reservations on the Release calendar.

BEE-27841

When debug is enabled for the EC-DslDeploy plugin, the plugin logs the elapsed time for each DSL file that is evaluated.

BEE-27883

Fixed an issue with aborting paused pipeline/release runs.

BEE-28126

Fixed issues with saving parameters when running a Service catalog item.

BEE-28209

Fixed an issue with reading the password from commander.properties on CloudBees CD/RO server startup.

BEE-28352

Added a --suppressEmpty option to the generateDsl API to exclude entity fields with empty string values in the DSL.

BEE-28447

Fixed an issue that caused an error when reading the STDIN in Windows, including reading passwords in the login API.

Behavior changes

None.

Installation and upgrade notes

For complete installation and upgrade information, refer to CloudBees CD/RO on Kubernetes and Install CloudBees CD/RO on traditional platforms.

CloudBees deprecated the CloudBees CD/RO `ec-jruby` and `ec-jython` wrapper programs with v10.11. The wrapper programs are no longer installed as part of CloudBees CD/RO tools.
Potential backward incompatibility

CloudBees CD/RO Docker images are now based on UBI minimal instead of UBI standard, as in previous releases. Some packages are not installed on our Docker images by default. This may cause backward incompatibility if your environment depends on these tools and utilities. CloudBees CD/RO Docker images now use `microdnf` as a package manager and `yum` and `dnf` package managers are no longer available. To retain backward compatibility, CloudBees CD/RO provides a `symlink` for `microdnf` as `dnf`. These package managers are not 100% compatible, which may cause unexpected errors and require modification of the scripts.

Duplicate applications warning

CloudBees CD/RO v10.9 included a fix for an issue that caused duplicate applications for applications created in the UI. The upgrade process fails when there are duplicate applications. CloudBees resolved this issue for MariaDB, MySQL, and Postgres databases. Ensure that your current installation does not contain applications with duplicate names. You can rename or delete the applications. You must remove duplicate applications by ID using the `deleteObjects` API. You cannot delete duplicate applications by name. For more details and scripts to assist with this process, refer to KBEC-00513 - How to resolve applications with duplicate names before upgrading from a version prior to v10.9.

Apache ZooKeeper required update

The ZooKeeper version bundled with CloudBees CD/RO v10.5 was updated from v3.4.6 to v3.8.0. CloudBees CD/RO v10.5+ requires ZooKeeper v3.8.0. For installation and upgrade instructions, refer to Install ZooKeeper and latest@cloudbees-cd:upgrade:clustered-environment.adoc.

Legacy services applications and container entities

The legacy Services applications and Traditional applications with containers have been deprecated and removed from this version of CloudBees CD/RO. Before you upgrade, you must migrate your applications to the current microservices application model.

Legacy webhook triggers

As of v10.8, webhook triggers configured and scheduled before v10.1 have been deleted. Polling triggers configured and scheduled prior to v10.1 continue to work, but they are not available from the UI to review or run.

For complete installation and upgrade information, refer to CloudBees CD/RO on Kubernetes and Install CloudBees CD/RO on traditional platforms.

CloudBees deprecated the CloudBees CD/RO ec-jruby and ec-jython wrapper programs with v10.11. The wrapper programs are no longer installed as part of CloudBees CD/RO tools.

CloudBees CD/RO server installation binaries are signed for traditional installations so that you can verify their origin and authenticity. Verifying binaries is an optional step in the installation process than can help ensure you are not the victim of a man-in-the-middle attack. For more information, refer to Verify installation binaries.

CloudBees CD/RO on Kubernetes

Sample CloudBees CD/RO server and agent Helm chart values provide the CloudBees default installation values. The CloudBees CD/RO images.tag value associated with v10.11 is 10.11.0.159101_3.2.31_20221212.

CloudBees CD/RO Docker images and Helm charts are signed so that you can verify their origin and authenticity. Verifying Docker tags and Helm charts is an optional step in the installation process than can help ensure you are not the victim of a man-in-the-middle attack. For more information, refer to Verify Docker images and Verify Helm charts.

CloudBees CD/RO Universal Base Image (UBI)

The actual UBI associated with v10.11 is 8.7.923.1669829893.

Upgrading gateway agents

All gateway agents that meet the following criteria must be updated to CloudBees CD/RO v10.2+:

  • Your enterprise implements a multi-zone environment.

  • Agent versions are a combination of pre-v10.2 and v10.2+.

  • The access route to a v10.2+ agent is configured through a pre-v10.2 gateway agent.

Configuring autostart services for Linux installations

Linux installations that you perform as a non-root user or without sudo permissions cannot automatically start the CloudBees CD/RO server, web server, repository server, or agents. Instead, you must set up service autostart after installation is complete. Refer to Configure autostart for non-root/non-sudo Linux installations to learn more.

Upgrading your CloudBees CD/RO environment
Before starting an upgrade, make sure to back up your existing CloudBees CD/RO data.
Upgradable versions

Upgrades to CloudBees CD/RO 10.x are supported only from ElectricCommander 5.0. For upgrade instructions, refer to the Upgrade on traditional platforms.

Updating the MySQL configuration before upgrading

Since release 8.0.1, CloudBees has instructed customers using a MySQL database to add the following two lines to their MySQL configuration:

init_connect='SET collation_connection = utf8_unicode_ci, NAMES utf8'
skip-character-set-client-handshake

Before upgrading CloudBees CD/RO, you must remove these lines or comment them out. Otherwise, jobs will not start.

Ensuring the correct default MySQL default collation

Make sure that the default collation for the MySQL database schema is set to utf8_unicode_ci or utf8_general_ci and that no table in the schema overrides this. The CloudBees CD/RO server checks this configuration on startup and logs errors in the server log if it is not set correctly.

If the collation is not configured correctly, entering non-ASCII text into CloudBees CD/RO can cause errors. For example, setting a release name to a non-ASCII value, and attempting a search, causes an exception.

If your MySQL database schema, or any tables within, are set to a non-UTF-8 collation order, refer to the Knowledge Base article KBEC-00385 - Converting a MySQL Database From Latin-1 to UTF-8 for detailed instructions about safely converting your schema to UTF-8. [NMB-26521, NMB-27459]

Upgrading agents that run the ec-groovy job step in multizone deployments

In multizone CloudBees CD/RO deployments, CloudBees CD/RO agents that are in a different zone than the CloudBees CD/RO server must be upgraded to version 9.0 or later for the ec-groovy job step to run successfully on those agents. You must also upgrade the gateway agents that lead back to the server’s zone, including those in any zones in between the agent’s zone and the server’s zone. [NMB-27490]

For details about multiple zones and gateway agents, refer to Zones and gateways.

Removing the SSL 2.0 Client Hello or SSLv2Hello protocol from your security configurations

CloudBees recommends removing the SSL 2.0 Client Hello or SSLv2Hello protocol from your security configurations for all components. [NMB-27934, NMB-29326]

  1. Upgrade agents to the latest operating system version for security reasons.

  2. If this warning appears on the Automation Platform UI:

    Note: We recommend removing `SSL 2.0 Client Hello` format from server configuration and upgrade older agents as indicated on the Cloud/Resources Page to avoid security risk.

    then enter the following command on the CloudBees CD/RO server:

    $ ecconfigure --serverTLSEnabledProtocol=TLSv1.2
Upgrading the CloudBees Analytics server

This section provides information about upgrading the CloudBees Analytics server.

Potential breaking change: Elasticsearch update

The Elasticsearch version shipped with CloudBees Analytics v10.2 has been updated from v6.6.2 to v7.10.2. As such, this update may create breaking changes in your custom reports. All changes related to the new version are described in Elasticsearch documentation. The following change may affect your reports the most. [BEE-2717] * Accessing missing document values throws an error. The doc['field'].value throws an exception if the document is missing a value for the field field.

To check if a document is missing a value, you can use doc['field'].size() == 0.

  • It is not possible to upgrade CloudBees Analytics v9.0.1 and below to CloudBees Analytics v10.2.0 and above. The installer exits with an error and an appropriate message when such an update is attempted. If you need to upgrade CloudBees Analytics v9.0.1 and below, you must first upgrade to a version between 9.1.0 and 10.1.0, or 9.0.2 and above. After that, you can upgrade CloudBees Analytics to v10.3.0 or higher. [NMB-31030]

  • For previous CloudBees Analytics upgrades from v9.0.1 and below: CloudBees Analytics data may contain obsolete indexes that are incompatible with CloudBees Analytics v10.2.0 and above. To work correctly, it is necessary to re-index these indexes before an upgrade. The installer prompts you to do this before upgrading.

    • In console mode and UI mode, the installer displays the following prompt if outdated indexes are detected:

      One or more Elasticsearch indexes were created in an obsolete version of Elasticsearch. These indexes must be re-indexed for the upgrade to be successful. Do you want to start the reindexation? [n/Y]

      After an affirmative answer, the installer automatically re-indexes and continues the upgrade.

    • In silent mode, the installer reindexes automatically.

  • Backing up and restoring custom settings

    The CloudBees Analytics installer overwrites the elasticsearch.yml configuration file with a new file. This file includes a Custom Settings section, which lets you add Elasticsearch settings not managed by the CloudBees Analytics server without being lost during an upgrade. The installer preserves the settings in the Custom Settings section. [NMB-25850]

  • Upgrading CloudBees Analytics clusters

    The principle of forming a cluster in CloudBees Analytics has changed in v10.2 due to the update of Elasticsearch v7.10.2. In this regard, an additional action is required to upgrade to CloudBees Analytics v10.2 or later:

    When updating the first master node, you must explicitly specify that it is the first node to be updated. If this action is not performed, any cluster that is being updated is placed out of service.

    All installers have been instrumented to accommodate this change. Refer to Upgrade the CloudBees Analytics server for more details. [BEE-2717]

  • CloudBees Analytics server configuration notes

    For a production environment, CloudBees recommends that you install the CloudBees Analytics server on a system separate from systems running other CloudBees CD/RO components (such as the CloudBees CD/RO server, web server, repository server, or agent). If you must install it on the same system (such as for testing or other non-production or trial-basis situations), refer to CloudBees Analytics server with other components for details.

    If your CloudBees Analytics server is configured with multiple nodes in a Kubernetes environment, you must pre-generate your certificates. For more information, refer to Install CloudBees CD/RO within Kubernetes.
CloudBees CI operations center configurations

After upgrading to CloudBees CD/RO v10.7 from v10.0.x, you may need to rework your CloudBees CI operations center configurations. * In v10.0.x, CloudBees CI operations center URLs specified in configurations are silently appended at runtime with the /cjoc path component. * In v10.1, URLs are used as defined in configurations. The /cjoc component is not appended. To maintain pre-v10.1 runtime compatibility, the v10.1 upgrade process modifies CloudBees CI operations center URLs in existing configurations by hardcoding the /cjoc path component. You need to rework existing URLs in configurations where appending the /cjoc path component is inappropriate.

Configuration notes

Performing a full import

During a full import, the import operation might hang in the following scenarios. To import successfully into CloudBees CD/RO 8.0 and newer versions, perform the appropriate workarounds [CEV-15447, CEV-11873]:

  • A manual process step in a process has formal parameters. The workaround is to remove the entry related to the property sheet for the job step that is associated with the manual process step.

  • In the exported XML file from an earlier release, two pipelines are in different projects, and both pipelines have no gate tasks. The flow associated with the pipeline is duplicated under both projects. The workaround is to remove the flow element under the projects.

Limitations

When an application is cloned from one project (the original project) to another (the destination project), the tier maps for the application point to the environments with the same names in the destination project. To deploy the application to the environments in the original project, you must create tier maps connecting the application to those environments.

Known issues

BEE-7512

With CloudBees CD/RO v10.2.1 and earlier, the DSL Import service catalog fails for grouped tasks.

BEE-14581

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

BEE-14933

The UI does not allow the transfer of artifacts across zones.

BEE-17259

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.

BEE-19742

When you save DSL for a dropdown menu, the code is evaluated to catch syntax errors. This evaluation is not the same as when the parameter is used. This can result in a property reference error because the properties may only be available when the parameter values are set. A workaround is to use a try-catch statement where the property path is a property that is not available in the definition context:

def value try { value = getProperty(propertyName: 'property path').value } catch (e) { return [] }

BEE-20205

CloudBees CI job tasks with a $[] branchName in the definition fail.

BEE-20536

When using Postgres with change tracking enabled, EcAuditStrategy errors may appear in the server log. This is a known issue, but is not expected to affect system performance.

BEE-27437

In v10.7, the SetupWebhook API does not work when a property is defined in the repository field.

BEE-27574

In v10.7, the Git polling trigger does not work when a property is defined in the repository field.

BEE-27713

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.

BEE-28886

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

BEE-28948

Duplicate inventory items are created when an application is deployed with different application versions using the /myJob/ec_deployment_artifacts property after modification. As a workaround, undeploy the previous version of the application on the environment before executing the next deployment for the modified release.

NMB-30095

Browser redirects to port 2080 during first navigation to CloudBees CD/RO deployed from CloudBees Software Delivery Automation and Flow Helm charts.

NMB-24734

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

NMB-24949

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.

NMB-26021

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.

NMB-26962

(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.

NMB-28135

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

NMB-29486

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.

CEV-11106

When an application with snapshots created in CloudBees CD/RO 6.1 or earlier is cloned and a project containing this application is imported to CloudBees CD/RO 6.3 or higher, the import operation fails.

CEV-12363

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

CEV-12429

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

CEV-14689

No error prompt appears for failed tasks and retry tasks during a pipeline runtime.

CEV-15122

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.

CEV-15829

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

CEV-16245

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

CEV-16250

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

CEV-16930

Jobs might not appear upon drill-down into the "Clusters With Most Deployments" widget in the CloudBees Analytics Microservices Dashboard if the service does not contain a deploy step in the process.

CEV-18531

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

CEV-19239 CEV-19259

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

CEV-21426

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.

CEV-23624

Approval by email on manual tasks should not expect parameters.

CEV-25150

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.

CEV-26700

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

CEV-28704

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.

CEV-28779

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.

N/A

You can revert changes only 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).

N/A

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. Make sure that your directory provider can handle the additional load for supporting nested group hierarchy traversal.

N/A

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.