Upgrade Notes
- Adjustments to packaging status of CloudBees Assurance Program plugins
-
The categorization of CloudBees Assurance Program (CAP) plugins was reviewed across operations center and controller server types, for both CloudBees CI on modern cloud platforms and CloudBees CI on traditional platforms.
-
Some plugins were added to, or removed from, the setup wizard shown in freshly started servers. Setup wizard categories were also adjusted, as were the default selections. None of these changes affect existing servers or servers provisioned using a CasC bundle.
-
Some plugins were moved between the mandatory versus optional scopes in one or more server types. Mandatory plugins are always installed when the server starts (with or without CasC); they may be disabled if you are confident they are not needed, but may not be uninstalled. Optional plugins can be installed or uninstalled according to your needs. If you are using CasC, optional plugins should be explicitly listed (unless they are included as a transitive dependency of a listed plugin). These changes do not affect existing servers, except in the case of an optional-to-mandatory switch, in which case the plugin will be installed during upgrade if it was not already.
These changes cover only plugins with significant user features in and of themselves. There are a number of other plugins which exist solely to provide APIs to feature plugins (either with no visible functionality, or functionality such as configuration options which are useless on their own). In some cases, these API-type plugins were moved between mandatory and optional categories. These need not be listed in
plugins.yamlfor CasC users. In some cases, these plugins were also removed from CAP in some server types and may be uninstalled when unused.Table 1. Plugins moved between mandatory and optional scopes Plugin Server types Platforms New status CloudBees Backup
(infradna-backup)Operations center
CloudBees CI on modern cloud platforms
Optional
CloudBees High Availability (Active/Passive) Management
(cloudbees-ha)Operations center
CloudBees CI on traditional platforms
Optional
CloudBees Monitoring
(cloudbees-monitoring)Operations center
All
Optional
CloudBees Plugin Usage Analyzer
(cloudbees-plugin-usage)All
All
Optional
CloudBees Software Delivery Automation Common
(cloudbees-platform-common)All
All
Optional
CloudBees Support
(cloudbees-support)Client controllers
CloudBees CI on traditional platforms
Mandatory
CloudBees Update Center
(cloudbees-update-center-plugin)Operations center
CloudBees CI on modern cloud platforms
Optional
Command Agent Launcher
(command-launcher)All
All
Optional
Operations Center Monitoring
(operations-center-monitoring)Operations center
CloudBees CI on modern cloud platforms
Optional
Operations Center Server Cluster Operations
(operations-center-clusterops)Operations center
CloudBees CI on modern cloud platforms
Optional
Operations Center Update Center
(operations-center-updatecenter)Operations center
CloudBees CI on modern cloud platforms
Optional
Oracle Java SE Development Kit Installer
(jdk-tool)All
All
Optional
Pipeline: Basic Steps
(workflow-basic-steps)Managed controllers
CloudBees CI on modern cloud platforms
Mandatory
Pipeline: Stage Step
(pipeline-stage-step)Managed controllers
CloudBees CI on modern cloud platforms
Optional
-
- Operations center CloudBees Assurance Program plugin changes since 2.580.1.38223
-
The following plugins have been removed from the operations center CloudBees Assurance Program since 2.580.1.38223:
-
Elasticsearch Reporter (
esr) -
Elasticsearch Reporter Configuration (
esr-config) -
Elasticsearch Reporter Feeder (
esr-feeder) -
Elasticsearch Reporter Reporter (
esr-reporter) -
CloudBees Nodes Plus Plugin (
cloudbees-nodes-plus) -
Operations Center Elasticsearch Provider (
operations-center-elasticsearch-provider) -
Dev Tools Symbols API Plugin (
oss-symbols-api) -
SSH server (
sshd) -
Config File Provider Plugin (
config-file-provider) -
Google Compute Engine Plugin (
google-compute-engine) -
Google OAuth Credentials plugin (
google-oauth-plugin) -
Javadoc Plugin (
javadoc) -
Jenkins JSch dependency plugin (
jsch) -
OAuth Credentials plugin (
oauth-credentials) -
SSH Agent Plugin (
ssh-agent) -
Unique ID Library Plugin (
unique-id) -
Favorite (
favorite)
-
- Controller CloudBees Assurance Program plugin changes since 2.580.1.38223
-
The following plugins have been removed from the controller CloudBees Assurance Program since 2.580.1.38223:
-
Elasticsearch Reporter Configuration (
esr-config) -
Elasticsearch Reporter Reporter (
esr-reporter) -
CloudBees Amazon AWS CLI Plugin (
cloudbees-aws-cli) -
CloudBees OpenShift CLI Plugin (
openshift-cli) -
SSH server (
sshd) -
Docker Commons Plugin (
docker-commons) -
CloudBees Docker Hub/Registry Notification (
dockerhub-notification) -
Favorite (
favorite)
-
Feature Enhancements
- New
gitCommitfield for Configuration as Code bundle traceability -
The CasC Controller Bundle Service can now optionally record the Git commit each bundle came from in a new
gitCommitfield, stored separately from the Configuration as Code (CasC) bundle’s existing version. This enables tracing a bundle back to the exact change in source control. Enabling this feature does not change how bundle versions are calculated or how updates are detected.
The following UI elements now display the bundle version, Git commit, and reload timestamp:
-
Bundle reload administrative monitors
-
Bundle reload page
-
Bundle log page
- CasC bundle reload notifications now show the version and reload time
-
When a CasC bundle is reloaded, the notification shown in Manage Jenkins now includes the bundle version that was reloaded (or that failed to reload) and the date and time the reload completed. This makes it easier to confirm exactly which change was applied, especially when reloads happen in quick succession. On controllers running in High Availability (HA) mode, this information is consistent across all replicas.
- Better
stateandnoncehandling in SSO sign-in -
To better comply with an OpenID Connect (OIDC) specification requirement, a controller connected to the operations center now retains only secure hashes of the
stateandnoncefields during an SSO redirect, instead of the original values. Fine-grained logging is also available to more clearly track SSO failures, such as those caused by failing to use-Dcom.cloudbees.jenkins.replication.jetty_hazelcast.Integrator.tolerateNonStickySessions=truein an HA controller without sticky sessions.
- New Jenkins OAuth client credential for machine-to-machine authentication
-
You can now create a Jenkins OAuth client credential that uses the
client_credentialsgrant to authenticate API requests as a Jenkins user, with no sign-in required. For more information, refer to Bind an OAuth client credential to a user.
- Consolidate checkout directories for libraries in HA controllers
-
Previously, Pipeline Groovy library Git repositories were checked out to
/var/jenkins/workspace/$jobname@libs/$nameHashdirectories. When using the same library in many jobs, for example when using Multibranch Pipeline with many branches, this could lead to many copies of the same library being checked out, ultimately filling up the temporary volume and crashing a replica in an HA controller. Now/var/jenkins/libraries/$definitionHashis used regardless of the job requesting the library, except when thelibrarystep is used with theretrieverargument.
- Managed controllers now display a warning on the High Availability checkbox
-
A warning is now displayed on the High Availability checkbox in the managed controller configuration to remind you to read through the associated HA documentation and ensure that various prerequisites have been met.
- OKHttp plugin no longer logs verbose warnings when using a proxy to connect to HTTPS servers
-
The OKHttp plugin (
okhttp-api) previously emitted aWARNINGlog entry for every attempted connection to an HTTPS server through a proxy that required authentication. You can now opt into proper support for preemptive authentication by setting theplugins.okhttp-api.proxy.preemptive-auth-enabledsystem property totrue.
Resolved Issues
- SSO sign-in errors on HA controllers when sticky sessions are not available
-
Previously, HA controllers accessed without sticky sessions could fail to complete operations center SSO sign-in. You can now resolve this by passing
-Dcom.cloudbees.jenkins.replication.jetty_hazelcast.Integrator.tolerateNonStickySessions=trueto the controller, which forces all session data access to check other replicas. This can impose a small performance penalty and cause minor issues with UI controls based on progressive rendering, such as the agent build history page.
- Queue lock held in HA controller while checking for non-concurrent tasks
-
Under certain conditions, problems with Hazelcast communications in an HA controller might cause the Jenkins queue lock to be held excessively long while checking whether a non-concurrent task might be running on another replica.
- Reprovisioning a managed controller to enable or disable High Availability (HA) now updates Ingress sticky session configuration
-
Reprovisioning a non-HA managed controller to enable High Availability (HA) using the Reprovision button did not recreate the Ingress resource, leaving it without the sticky session annotations required for High Availability (HA). Previously, the only workaround was to use Deprovision followed by Start. Now Reprovision adds or removes sticky session annotations when High Availability (HA) is enabled or disabled, respectively.
This issue did not affect deployments using Kubernetes Gateway API for CloudBees CI on modern cloud platforms, as the HTTPRoute was recreated in both situations.
- Overridden workspace and build directory properties no longer persist an override
-
After switching an HA controller to non-HA, the controller installation continued to use the overridden
workspacedirectory on the built-in node (used for purposes such as library checkouts), even after the system property that set the override was removed. The value now defaults correctly when no system property actively sets it.
- Builds with a Stashed File parameter no longer fail on HA controllers
-
Pipeline jobs that use a Stashed File parameter and unstash could fail intermittently with
No such saved stashon HA controllers. This happened when a build was scheduled on a replica other than the one where it was triggered. Such builds now run on the replica that received the request, so the file is always available. Base64 File parameters are unchanged and still load-balance across replicas.
- Error when granting
Job/Discoverbut notJob/Readin an HA controller -
When a job was in the queue on an HA controller and the current user had
Discoverpermissions but notReadpermissions for it, the task was expected to be concealed or shown as unknown. Instead, an error was printed to the system log, and the UI could break in various ways.
- Re-sign SHA-1 custom Update Center certificates with SHA-512
-
Red Hat Enterprise Linux (RHEL) 9 was rejecting the Update Center custom certificates because they were signed using the
SHA-1algorithm. The operations center now re-signs theseSHA-1custom Update Center certificates withSHA-512and keeps the same keys.
- CasC rejected
items.yamlfiles larger than 3 MB -
A size limit of 3 MB per file is enforced for CasC bundles, resulting in CasC rejecting any file exceeding this size. This was noticed when using the
create-itemsHTTP API or thecasc-items-create-itemsCLI command. You can now increase the limit by setting the following JVM system property, with the value specified in bytes:-Dcasc.yaml.max.document.size=<size-bytes>.
- HTML error when validating bundles with malformed item properties
-
When the bundle validation endpoint was reached with a CasC bundle containing an invalid
items.yamlfile, an error page was displayed. The endpoint now returns a JSON result instead.
- Incorrect Application Load Balancer health check path caused services to be marked unhealthy on Amazon Elastic Kubernetes Service
-
On Amazon Elastic Kubernetes Service (EKS) with an AWS Application Load Balancer (ALB), SSO Relay, the hibernation monitor, and the CasC Controller Bundle Service used the wrong health check path, causing the load balancer to mark them as unhealthy. This has been resolved; these services now use the correct health check path.
- Jenkins controllers can now configure the CloudBees Unify integration
-
Previously, accessing the CloudBees Unify configuration page on a Jenkins controller displayed an error, preventing users from configuring the CloudBees Unify integration. This issue only affected Jenkins controllers and did not affect CloudBees CI controllers.
- Better diagnosis and recovery from fatal load errors in Pipeline builds
-
Under special circumstances a deserialization error in an unusually formed
build.xmlfor a Pipeline build could result in the build being presented as loaded but with nonsensical metadata, and with no log messages indicating the root cause. Now any such exception can be tracked via aFINElogger onOldDataMonitor, and the build will not be loaded at all.
- Performance overhead loading unsandboxed Groovy scripts
-
When a plugin used a Groovy script with the sandbox option deselected, loading the script from disk unconditionally saved changes to
$JENKINS_HOME/scriptApproval.xml, triggering notifications that could add further overhead, such as from the Job Config History plugin.
- Kubernetes Agents widget no longer crashes when no Kubernetes cloud is configured
-
The Kubernetes Agents widget no longer throws an
IndexOutOfBoundsExceptionor logs a warning on controllers with no Kubernetes cloud configured.