CloudBees CI release highlights

What’s new in CloudBees CI 2.361.1.2

Watch the video

New features

None.

Feature enhancements

User interface redesign for the Item configuration page in Jenkins core (BEE-19299)

The project Item Configuration page is undergoing a redesign in Jenkins core. The redesign replaces the tabs on the page and adds a sidebar for quick navigation to the configure project pages. The Item Configuration page redesign provides several enhancements:

  • A more modern design that aligns with the rest of the Jenkins UI.

  • A more prominent toggle button for enabling and disabling a project.

  • Simpler code for the page.

Refreshed the CloudBees Event Scheduler plugin for compatibility with the Jenkins ecosystem (BEE-22612)

Updated plugin dependencies to ensure continued compatibility with the ecosystem.

CloudBees Nodes Plus plugin migrated to Jakarta Mail (BEE-22565)

Migrated CloudBees Nodes Plus plugin to use jakarta.mail instead of javax.mail.

Operations Center Server plugin migrated to Jakarta Mail (BEE-22566)

Migrated the Operations Center Server plugin to use jakarta.mail instead of javax.mail.

Adapt to Instance Identity plugin (BEE-22604)

The Instance Identity plugin was moved from Jenkins core to a plugin. Plugins using instance-identity are now required to add it as a plugin dependency.

Refreshed the ElasticSearch Reporter plugin for compatibility with the Jenkins ecosystem (BEE-22612)

Updated plugin dependencies to ensure continued compatibility with the ecosystem.

Refreshed the CloudBees Quiet Start plugin for compatibility with the Jenkins ecosystem (BEE-22611)

Updated plugin dependencies to ensure continued compatibility with the ecosystem.

Resolved issues

Inbound TCP agents cannot be disabled from the user interface (UI) when an agent disconnects and then reconnects (BEE-21589)

When an inbound TCP agent momentarily disconnected and then automatically reconnected, an issue caused the controller to recognize the new channel connection after the disconnection. As a result, the channel ID was removed from the CloudChannelRegistry, and the agent could no longer be disabled using the UI.

This issue has been resolved.

Redesigned usage of Kubernetes clients in controller provisioning plugin (BEE-20348)

The existing design suffered from scaling issues, leaving idle threads behind.

The new design ensures threads are reused as needed, and only a limited number of threads is created for each declared cluster endpoint.

Calling the container step failed with an error message (BEE-21204)

When using the container step, the build would fail sporadically with the message io.fabric8.kubernetes.client.KubernetesClientException: not ready after 5000 MILLISECONDS.

A retry mechanism was introduced in the plugin to avoid such failure.

Sidecar injector cannot be deployed via Helm in Kubernetes environments running versions 1.21 or later that use pre-releases (BEE-22380)

When you attempt to deploy sidecar injector in Kubernetes environments that use pre-releases, the deployment fails with the message chart requires kubeVersion: >= 1.21.0 which is incompatible with Kubernetes <version>. The issue typically affects cloud-managed Kubernetes environments such as EKS, GKE, or AKS.

This issue has been resolved. The chart requirement now correctly checks Kubernetes pre-release versions.

Reduced the number of HTTP connections allocated to Kubernetes watches (BEE-1187)

A large number of HTTP connections were opened for watching Kubernetes events. This lead to performance issues when an environment had a large number of controllers.

A single watcher is now added for each namespace, reducing the number of allocated HTTP connections for watching events.

Test Connection button fails for Azure Blob Storage when used as part of a cluster operations job (BEE-21939)

When you used the Test Connection button to validate Azure Blob Storage from a backup step within a cluster operations job, it caused an error.

This issue has been resolved.

Removed forked PingThread from operations center (BEE-22537)

Removed the forked PingThread from operations center in favor of using the standard PingThread from Jenkins OSS instead.

Fix for memory leak caused by C2 JIT Compiler in Java 11.0.16 (BEE-23049)

This release has the fix to a known memory leak: Memory leak caused by regression in C2 JIT Compiler in Java 11.0.16.

The SSHD plugin is unable to load in Jenkins LTS version 2.361.x (BEE-22833)

The SSHD plugin fails to load in Jenkins LTS version 2.361.x because the Mina SSHD API : Common Plugin and Mina SSHD API : Core Plugin dependencies were not available.

In this release, the Mina SSHD API : Common and Mina SSHD API : Core Plugin were added to the product as detached plugins. This issue has been resolved.

The Shared Libraries cache was not thread safe, resulting in sporadic build failures due to race conditions (BEE-22033)

The Shared Libraries cache is now thread safe.

The LDAP plugin does not send authenticated events to SecurityListeners (BEE-21272)

The LDAP plugin now sends authenticated events to SecurityListeners.

CasC does not import the choice parameter values (BEE-22384)

The choice parameter is now fully imported and includes a list of possible values.

The REST API and CLI fail the bundle validation log request when the operations center managed controller has no bundle (BEE-22031)

To protect from the null collection of records, the log from the controllers is merged.

Arrays are not parsed in the items.yaml file (BEE-21741)

When the property of an item that is defined in the items.yaml file is an array instead of a collection, the item cannot be imported.

This issue is fixed.

The CasC bundle’s items.yaml file cannot correctly configure the choice parameter (BEE-21274)

The choice parameter can now be configured using CasC.

CasC exports unsupported items, such as MatrixProject, when inside a folder (BEE-21188)

Only supported items are now exported from all of the item’s hierarchy.

Object expecting Secret/SecretBytes cannot be imported (BEE-21078)

Loading items fails when they expect Secret/SecretBytes properties. For example, this prevents the loading of Secret Text and Secret File folder credentials, and password parameters.

The API now correctly imports and exports those objects.

An administrative monitor was created every time a bundle location checkout failed (BEE-21066)

Only one administrative monitor now appears, showing the last error (if any), or no monitor appears if the checkout is successful.

On the controller’s manage page, an erroneous download attribute is generated for the hyperlink to download a bundle validation log (BEE-20836)

The download attribute is no longer generated for the hyperlink and the downloaded file name is now automatically generated by the browser.

Load CasC bundles action shows the incorrect text for a deactivated bundle source with an error in the logs (BEE-20607)

A deactivated bundle source is now displayed as "CasC bundle source xxx is deactivated” in the Load remote CasC bundles action.

A empty bundle source is now displayed as "CasC bundle source xxx has no bundle configured" in the Load remote CasC bundle action.

CasC bundles with multiple folder levels were not properly supported (BEE-19491)

Previously, the effective bundle view only displayed the first two levels of any CasC bundles that contained multiple sub-folders. Any sub-folders below the second level did not display. Additionally, if you tried to download the bundle as a .zip file, the full bundle was not properly exported. The links to view, copy, and download individual files did not work.

This issue has been resolved. You can now view the entire folder structure of CasC bundles that contain multiple sub-folders and the download now produces the correct, full bundle content. The links to view, copy, and download individual files now work correctly.

Fixed validation method for Backup Step configuration within a cluster operations job for non-adminstrators (BEE-21940)

Non-administrators were not able to validate the Backup Step configuration within a cluster operations job; the Credentials dropdown list was empty, and the Test Connection button did not function properly.

This issue has been resolved. The Credentials dropdown list and Test Connection button now work for users who are not administrators.

User interface (UI) updates (BEE-19566)

CloudBees is addressing all icon compatibility and inconsistency issues with the Jenkins LTS 2.346 upgrade.

Jenkins logs not appended to service log file in RPM installation while using Java 8 (BEE-20636)

If you used an RPM to upgrade the product while using Java 8, the Jenkins logs were not appended to the following configured service log by default: /var/log/cloudbees-core-[cm|oc]/cloudbees-core-[cm|oc].log.

Java 11 is now required. Upgrading to Java 11 resolves this issue.

Known issues

Jira Plugin removed from CAP (BEE-22980)

The Jira Plugin has been removed from the CloudBees Assurance Program (CAP).

JIRA Integration For Blue Ocean Plugin removed from CAP (BEE-23090)

The JIRA Integration For Blue Ocean Plugin has been removed from the CloudBees Assurance Program (CAP).

CloudBees Docker Build And Publish Plugin removed from CAP (BEE-22981)

The CloudBees Docker Build And Publish Plugin has been removed from the CloudBees Assurance Program (CAP).

Mecurial Plugin removed from CAP (BEE-22979)

The Mecurial Plugin has been removed from the CloudBees Assurance Program (CAP).

MSBuild Plugin removed from CAP (BEE-22978)

The MSBuild Plugin has been removed from the CloudBees Assurance Program (CAP).

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.

End of life announcement (BEE-23004)

After assessing the viability of our supported plugins, CloudBees will no longer support the following plugins:

  • CloudBees Docker Build and Publish

  • Jira

  • JIRA Integration For Blue Ocean

  • Mercurial

  • MSBuild

  • Promoted Builds

These plugins have been removed from the CloudBees Assurance Program (CAP). This end-of-life 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.

SSH host key verification enabled by default in Git Client Plugin (JENKINS-69149)

As a follow up of a security fix from Jenkins Security Advisory 2022-07-27, the Git Client plugin now has SSH host key verification enabled by default using the Known Hosts file strategy. Any git / checkout step that use the SSH protocol now performs strict host key verification based on the ~/ssh/known_hosts file in its environment. Impacted builds fail to check out the code and show the following error:

stderr: No <key_format> host key is known for <hostname> and you have requested strict checking.

The solution is to specify one of the recommended host key verifiction strategies documented in Git Client Plugin - SSH Host Key verification.

Jenkins upgrade notes

Jenkins 2.361 upgrade notes