New features

None.

Feature enhancements

The non-block-scoped mode of the stage step was deprecated in 2016, but support for this mode, specifically its concurrency parameter, continued to add complexity to various pipeline-related plugins (BEE-29598)

The form of the stage step that takes a block (and name) is now supported.

The`stage` step without a block (only a name) will continue to print a warning and proceed as before; but stage with the concurrency parameter (and name and no block) now returns a build error. The previous functionality of the concurrency parameter can now be implemented using a combination of the lock and milestone steps.

Resolved issues

Resolved a NullPointerException when checking for a new license (BEE-462)

Selecting the Check for new license button on the Manage License page in a controller, caused an NullPointerException if the license was managed by the operations center.

The Check for new license button is no longer shown on the Manage License page of a controller if the license is managed by the operations center.

Backup jobs fail to run when created or updated when configured as code (BEE-19138)

Backup jobs run under special authentication for security reasons. When the job is created or updated by Configuration as Code (CasC), the authentication checks fail as there is no real user interacting with CloudBees CI.

This issue has been resolved. Now a user can be set in the CasC configuration for the Backup job. By setting the saveAsUser property, the job is saved by impersonating that user. The user must have permissions to read all the items and configuration added to the backup.

CloudBees backup plugin used an insecure SSH connection (BEE-24302)

In the CloudBees Backup plugin, the SFTP server used an insecure SSH connection.

It is now possible to configure a server key verification strategy for SFTP servers to ensure a secure SSH connection.

Parameters page fails to display the run and password parameters when triggered (BEE-28547)

The Parameters page failed to display the Password and Run Parameters values when triggering a build using the Trigger builds on remote projects build step with the Current build parameters parameter factory or the pipeline step triggerRemoteJob(parameterFactories: [[$class: 'CurrentBuild', …​]])).

The Parameters page can now properly handle those parameters.

Non-HTTP based UpdateCenter URLs cause exceptions in the Plugin Manager (BEE-28906)

A check was added to doCheckUpdateSiteUrl to check for a valid file and now valid non-HTTP based UpdateCenter URLs do not cause exceptions in the Plugin Manager.

GitHub Plugin global configuration is not loaded upon restart (BEE-29164)

The issue was caused by an initialization sequence problem between the GitHub Plugin and the Support Core plugin.

The issue was fixed in the Support Core plugin.

Cron triggers of non-pipeline jobs defined using CasC fails (BEE-29310)

When defining a cron trigger (cron is in the job triggers definition) in a non-pipeline job (such as Freestyle job, Backup job, or Cluster Operation job), the timer did not start and never scheduled a build. As a workaround, users could manually resave the job.

The issue is resolved.

Application of configure controller provisioning settings is unclear (BEE-29810)

It is not clear from the user interface (UI) that most options on the Configure Controller Provisioning page are defaults. Therefore changes to those default options did not apply to existing controllers created from the UI.

Default options are now clearly identified on the Configure Controller Provisioning page.

Authorization failure when provision agents to remote clusters (BEE-29935, BEE-29955)

Authentication to Kubernetes Cloud could fail (intermittently), even if the Kubernetes Cloud is configured with credentials.

The issue is resolved.

Known issues

Duplicate Pipeline Template Catalogs in the Configuration as Code jenkins.yaml file on each instance restart (BEE-12722)

If a Pipeline Template Catalog is configured in the CasC jenkins.yaml file and the id property is not defined, the catalog is duplicated on each instance restart and in the exported CasC configuration.

Upgrade notes

Java 11 is now required

Beginning with the September release, Java 11 is now required to run CloudBees CI. It is not possible to run the operations center, the controllers, or agents on Java 8 any longer. Java Web Start is no longer supported for inbound agents.

For more information, refer to Migrate to Java 11.

When you upgrade to Java 11, you must update your Java garbage collection arguments (BEE-16018)

Garbage collection has been updated in Java 11. Many of the previously recommended arguments are no longer supported. When you upgrade your JDK to Java 11, you must also update your garbage collection configuration. Using unsupported Java arguments will result in startup failure.

Kubernetes-client upgrade to 6.x (BEE-28247)::

The fabric8 Kubernetes-client has been upgraded from 5.x to 6.x. When configuring a managed controller and using the advanced YAML field; it is now possible to add additional entries such as CustomResourceDefinitions (CRDs) for which the Kubernetes-client has no model. They are now passed as is to the underlying Kubernetes API server.

NOTE: When declaring custom YAML snippets in a controller, apiVersion is now required by the Kubernetes-client library. Additional validation has been added to the UI component to validate that use case.

If the apiVersion is missing, the controller reprovisioning will fail when the operations center is upgraded. For more information on this topic, refer to this knowledge base article, The apiVersion on a resource being deserialized is required after upgrading Kubernetes-client 6.x. This article contains a script you can run to check for invalid configurations. The configurations listed in the output of this script need to be fixed by providing a valid apiVersion.

Contact CloudBees Support for any further questions.

Plugin Removal from the CloudBees Assurance Program (CAP) (BEE-9215)

CloudBees has removed the following plugins from the CloudBees Assurance Program (CAP):

  • Bootstrap 4 API

  • CloudBees Long-Running Build

  • Deployer Framework

  • Deployed on Column

  • JavaScript GUI Lib: Momentjs Bundle

This announcement allows CloudBees to focus on driving new technology and product innovation, as well as maintaining existing products that are actively used by customers.

If you installed any of these plugins using a Configuration as Code bundle via the plugins.yaml file, you must include them in the plugin catalog to continue using them. Refer to Installing non-CAP plugins with plugin catalogs.

For more information regarding this end-of-life announcement, please contact your Customer Success Manager.

Migration to Jakarta Mail (BEE-22565)

The CloudBees Nodes Plus plugin and the Operations Center Server plugin were updated to use jakarta.mail instead of javax.mail. This migration may break existing scripts that relied upon javax.mail. You may need to recreate any broken scripts.