Feature Enhancements
- The
triggerRemoteJob
step now supportsquietPeriod
-
The
triggerRemoteJob
step now supports thequietPeriod
parameter. A change was also made to the High Availability (HA) emulatedbuild
step to propagatequietPeriod
totriggerRemoteJob
. Previously,quietPeriod
was ignored in the High Availability (HA) emulatedbuild
step and a warning was shown.
Key Updates:
-
The
triggerRemoteJob
step now supports thequietPeriod
parameter. -
The
quietPeriod
in the High Availability (HA) emulated build step now works as expected, aligning with the behavior of the standardbuild
step.
- The
triggerRemoteJob
step option to abort the downstream build when the upstream build is aborted -
When using a mode awaiting the downstream result, the
triggerRemoteJob
step now has an optionallowAbort: true
to 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 Pipelinebuild
step.
- 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 thebuild
step 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
build
step does not work reliably in High Availability (HA) controllers. The CloudBees CI steptriggerRemoteJob
can 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 thebuild
step to thetriggerRemoteJob
equivalent. 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 ofbuild
in the Pipeline scripts when the emulation is enabled.
- High Availability (HA) aggregation APIs return
HTTP 400 bad request
for non-supported cases -
High Availability (HA) only supports aggregations APIs (namely
/job/xxx/api/json
,/computer/api/json
andqueue/api/json
) with only the/api/json
variant and mandatory?tree
parameter, as discussed in the HA considerations documentation. However, the APIs would have returned non-aggregated output if the?tree
was missing or non json variants such as/api/xml
or/api/python
were invoked. Now, these unintended requests returnHTTP 400 bad request
with 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/computer
and$JENKINS_URL/manage/computer
pages, the High Availability (HA) build queue widget incorrectly showed an empty queue even if items were actually enqueued, while on the$JENKINS_URL
and$JENKINS_URL/manage
pages, 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 404
error message -
When you browse workspace links for a running pipeline in another replica, the node link can result in an
HTTP 404 not found
message. Now, the link leads to the node screen as expected.
- Incorrect suggestion for use of
ReplicatedGroovy
utility -
In High Availability (HA) controllers, the Manage Jenkins > CloudBees CI High Availability > Script Console page offered an example of usage of the
ReplicatedGroovy
utility 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 404
error message -
Browsing a build workspace through a replica that does not own the corresponding running build resulted in an
HTTP 404
error 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
)CleanLostNodesWork
works with CloudBees CI High Availability (HA) -
Previously, the Google Compute Engine plugin (
google-compute-engine
)CleanLostNodesWork
was disabled in High Availability (HA) because it lead to the deletion of active agents in other replicas. Now theCleanLostNodesWork
works 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
parallel
blocks 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
navigators
list 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 controller
under Pod Templates in a pipeline job page. -
The Link Pod Templates -
Kubernetes clouds in this controller
was 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].credentialsId
wasnull
due to a previous security fix.
Known Issues
- 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.
- 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 shows duplicate entries for the plugin.
- Firefox download of
.tgz
suffix 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 web browser will be unable to unpack compressed tar archives with the
.tgz
suffix 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=none
flag to disable content compression by Eclipse Jetty 12. -
Use Google Chrome or Microsoft Edge instead of Firefox to download the archive with the
.tgz
suffix. -
Download with a
tar.gz
suffix instead of a.tgz
suffix.