New Features
- CloudBees CI on modern cloud platforms now supports Kubernetes 1.31
-
CloudBees CI on modern cloud platforms now supports Kubernetes 1.31 on Azure Kubernetes Service, Amazon Elastic Kubernetes Service and Google Kubernetes Engine. With this release, the minimal supported version of Kubernetes is 1.27. For more information, refer to Supported platforms for CloudBees CI on modern cloud platforms.
Feature Enhancements
- The
triggerRemoteJobstep now supportsquietPeriod -
The
triggerRemoteJobstep now supports thequietPeriodparameter. A change was also made to the High Availability (HA) emulatedbuildstep to propagatequietPeriodtotriggerRemoteJob. Previously,quietPeriodwas ignored in the High Availability (HA) emulatedbuildstep and a warning was shown.
Key Updates:
-
The
triggerRemoteJobstep now supports thequietPeriodparameter. -
The
quietPeriodin the High Availability (HA) emulated build step now works as expected, aligning with the behavior of the standardbuildstep.
- The
triggerRemoteJobstep option to abort the downstream build when the upstream build is aborted -
When using a mode awaiting the downstream result, the
triggerRemoteJobstep now has an optionallowAbort: trueto abort the downstream build if the upstream build is aborted, permitting a whole tree of work to be cancelled with one gesture. This provides parity with the Pipelinebuildstep.
- Pipeline: Build Step plugin (
pipeline-build-step) no longer required by CloudBees Pipeline Explorer plugin (cloudbees-pipeline-explorer-plugin) -
The CloudBees Pipeline Explorer plugin (
cloudbees-pipeline-explorer-plugin) had a hard dependency on the Pipeline: Build Step plugin (pipeline-build-step). This is now optional. If the Pipeline: Build Step is enabled and thebuildstep is used, it will be displayed in the CloudBees Pipeline Explorer. If the Pipeline: Build Step is not in use, it may be disabled or uninstalled.
- High Availability (HA): Removed replica names from build logs
-
When running builds in a High Availability (HA) controller, the replica name handling the build appeared in the build logs every time a build was adopted. Being a technical identifier and transient when running CloudBees CI on modern cloud platforms, it did not give the end user much useful information.
This information has been removed from the build logs. It is still accessible by administrators through a specific Owners action available in the Run sidebar.
- Option to emulate the Pipeline build step in High Availability (HA) controllers
-
The Pipeline
buildstep does not work reliably in High Availability (HA) controllers. The CloudBees CI steptriggerRemoteJobcan be used as a High Availability (HA) compatible replacement, but rewriting existing Pipeline scripts to make use of it could be troublesome. There is now an option to automatically translate all usages of thebuildstep to thetriggerRemoteJobequivalent. Most options and behaviors of the original step are supported. The Pipeline: Build Step plugin can be disabled or uninstalled when you enable the emulation. The High Availability (HA) Pipeline policy rule does not flag usages ofbuildin the Pipeline scripts when the emulation is enabled.
- High Availability (HA) aggregation APIs return
HTTP 400 bad requestfor non-supported cases -
High Availability (HA) only supports aggregations APIs (namely
/job/xxx/api/json,/computer/api/jsonandqueue/api/json) with only the/api/jsonvariant and mandatory?treeparameter, as discussed in the HA considerations documentation. However, the APIs would have returned non-aggregated output if the?treewas missing or non json variants such as/api/xmlor/api/pythonwere invoked. Now, these unintended requests returnHTTP 400 bad requestwith appropriate messages.
- Resumption of Pipeline builds now asynchronous
-
Pipeline builds running in a previous controller session are now loaded asynchronously, rather than blocking startup as before, allowing the controller to begin serving traffic. For High Availability (HA) controllers starting from zero replicas (after hibernation or a total outage), builds may be resumed on multiple replicas to balance load. If the Maximum load per replica is exceeded, the resumption of builds are paused until load goes back down. Also, the High Availability (HA) status screen now displays more information about load.
Resolved Issues
- High Availability (HA) build queue widget displayed empty queue items incorrectly in certain pages
-
Previously on the
$JENKINS_URL/computerand$JENKINS_URL/manage/computerpages, the High Availability (HA) build queue widget incorrectly showed an empty queue even if items were actually enqueued, while on the$JENKINS_URLand$JENKINS_URL/managepages, the queue was correctly displaying them. All four pages now display the High Availability (HA) build queue widget and list items that have been enqueued.
- High Availability (HA): When browsing pipeline workspaces, links to computers can lead to a
HTTP 404error message -
When you browse workspace links for a running pipeline in another replica, the node link can result in an
HTTP 404 not foundmessage. Now, the link leads to the node screen as expected.
- Incorrect suggestion for use of
ReplicatedGroovyutility -
In High Availability (HA) controllers, the Manage Jenkins > CloudBees CI High Availability > Script Console page offered an example of usage of the
ReplicatedGroovyutility that did not work. The result of each replica’s script must be a serializable object.
- Replaying a build in a High Availability (HA) controller could sometimes lead to a warning about script approval and failure
-
When replaying a build in a High Availability (HA) controller and the build gets load balanced to another replica, it could be scheduled with an incorrect sandbox status.
This condition is fixed, and the sandbox status will be retained across replays.
- Display of computers in a High Availability (HA) controller omitted launching cloud agents
-
The list of computers/executors in a High Availability (HA) controller included only computers that were already online, or those known to the replica with the sticky session. Agents are now added to the list shared among replicas as soon as the controller starts to launch them.
- High Availability (HA): internal IP exposure
-
This fix avoids exposing an internal IP to a caller impersonating an agent node from outside the cluster infrastructure.
- High Availability (HA): When using a separate resource URL, workspace browser can result in an
HTTP 404error message -
Browsing a build workspace through a replica that does not own the corresponding running build resulted in an
HTTP 404error message. Now, files in the workspace can now be accessed from any replica.
- Cached permalinks for jobs not reliable in High Availability (HA) controllers
-
While High Availability (HA) controllers supported permalinks such as
lastStableBuild, with the link resolving to the newest matching build regardless of the replica it ran on, the cache system was not reliable under heavy load conditions. Now, the cached system is reliable under heavy load conditions.
- The Google Compute Engine plugin (
google-compute-engine)CleanLostNodesWorkworks with CloudBees CI High Availability (HA) -
Previously, the Google Compute Engine plugin (
google-compute-engine)CleanLostNodesWorkwas disabled in High Availability (HA) because it lead to the deletion of active agents in other replicas. Now theCleanLostNodesWorkworks with High Availability (HA) and is active again.
- Fixed a concurrency issue when using the initial index build prevention strategy
-
The implementation of this strategy had a non-concurrent safe caching system that could lead to incorrect results when multiple multibranch projects were indexing at the same time.
- Outbound permanent agents could be left temporarily idle on High Availability (HA) controller
-
On a High Availability (HA) controller with multiple permanent agents (including the case of a single editable agent with multiple High Availability (HA) executors) using an outbound launcher, if two queue items asked for the same label at about the same time (for example, in
parallelblocks of the same build), only one agent would be launched; the other items would remain in the queue despite available offline agents for up to a minute. Now, many agents are needed to launch the workload immediately.
- Non-FIPS CloudBees CI Images disabled Red Hat FIPS Patches
-
To support FIPS, CloudBees CI Docker images were updated to enforce RedHat™ patches. However, these enforcements were mistakenly applied to non-CloudBees CI Docker images. These patches are now disabled.
- Configuration as Code (CasC) did not allow more than one SCM Navigators
-
Configuration as Code (CasC) did not allow defining more than one object in the
navigatorslist of an organization folder. This differed from the GUI configuration options. Users can now define more than one SCM navigator.
- Access issues with label
Kubernetes clouds in this controllerunder Pod Templates in a pipeline job page. -
The Link Pod Templates -
Kubernetes clouds in this controllerwas offered to manage permission users, but the destination Cloud page was only available to admin users, leading to a non permission error. Fixed the link to only appear in case the user has administration permission.
- Bitbucket Branch Source plugin (
cloudbees-bitbucket-branch-source) breaks usage ofscm.userRemoteConfigs[].credentialsId -
Fixed a regression where
scm.userRemoteConfigs[0].credentialsIdwasnulldue to a previous security fix.
- The Configuration as Code Bundle Retriever service failed to start on OpenShift due to permission issues
-
The Configuration as Code Bundle Retriever service no longer fails to start on OpenShift due to permission issues.
- The Configuration as Code Bundle Retriever is now accessible from outside of the Kubernetes cluster on OpenShift
-
The Configuration as Code Bundle Retriever was not accessible from outside of the Kubernetes cluster on OpenShift because it was missing a route and network policy.
- Firefox download of
.tgzsuffix files will not unpack in CloudBees CI 2.479.1.x, 2.479.2.x, and 2.479.3.x -
CloudBees CI users running versions 2.479.1.4, 2.479.2.3, and 2.479.3.1 with the Firefox browser will be unable to unpack compressed tar archives with the
.tgzsuffix due to a bug in Eclipse Jetty 12.0.0 through 12.0.14. The issue has been fixed in Eclipse Jetty 12.0.15 and will be included in a future release of CloudBees CI.
The following workarounds are available for users running CloudBees CI versions 2.479.1.4, 2.479.2.3, and 2.479.3.1:
-
Run CloudBees CI with the
--compression=noneflag to disable content compression by Eclipse Jetty 12. -
Use Google Chrome or Microsoft Edge instead of Firefox to download the archive with the
.tgzsuffix. -
Download with a
tar.gzsuffix instead of a.tgzsuffix.
Known Issues
An admin monitor displays if the Quiet Down mode is enabled.
- GitHub plugin settings would not load on startup
-
The GitHub plugin configuration failed to load during the Operations center startup. Refer to GitHub Plugin settings not loaded on startup after upgrading for more information.
Shared Clouds UI no longer supports renaming
- Duplicate plugins in the Operations Center Plugin Manager UI
-
When you search for a specific plugin under the Available tab in the operations center Plugin Manager, the search results show duplicate entries for the plugin.
- The controller and operations center fail to start when upgrading CloudBees CI
-
When upgrading or restarting CloudBees CI, the controller or operations center fails to start and returns a
Messaging.afterExtensionsAugmentederror. The operations center can also fail to start with anOperationsCenter.afterExtensionsAugmentederror. Refer to CloudBees CI startup failure due toIndexOutOfBoundsExceptionrelated to corrupt messaging transport files for a workaround for this issue.