ceph-perf: install mdutils and run CBT under gh-venv
cbt imports mdutils but ceph/cbt master requirements.txt does not
list it. Install mdutils into gh-venv, put the venv on PATH for
run-cbt.sh, and invoke compare.py via python3 so its /usr/bin/python3
shebang is not used. Only skip CBT runs when the archive dir already
has results, and fail the step if the archive is empty after run-cbt.
ceph-perf: default unset CEPH_PERF_EXTRA_CMAKE_ARGS for set -u
run-cbt uses set -euxo pipefail, but the optional Jenkins parameter is not
always exported into the shell environment. Use ${CEPH_PERF_EXTRA_CMAKE_ARGS:-}
so PR-triggered builds do not fail before cmake.
Jenkins invokes shell steps as /bin/sh -xe when there is no shebang.
On Noble that is dash, which rejects set -o pipefail. Add #!/bin/bash
so Jenkins runs the run-cbt builder with bash.
github-check uses github3.py 4.0.1, which passes app_id as int to
jwt.encode(). PyJWT 2.11+ requires iss to be a string. Install
githubcheck first, then pin pyjwt<2.11.
ceph-perf: fix github-check and use run-make.sh for clang-19
github-check fails on fresh venvs with PyJWT 2.13+ because github3
passes app_id as int to jwt.encode(). Pin pyjwt<2.13 before installing
githubcheck, and quote app-id/install-id in github-check calls.
Stop probing for clang down to 18 in the perf job; Crimson needs
clang-19. Let run-make.sh install it via llvm.sh (get_llvm) and select
it with discover_compiler, same as make-check nodes.
The added matrix cell pushed the CPS-generated WorkflowScript method past
the JVM's 64KB bytecode limit, failing every ceph-dev-pipeline build with
MethodTooLargeException. Revert to unblock CI; noble debug builds will be
re-landed once the matrix stage bodies are extracted into helper methods.
Shraddha Agrawal [Tue, 16 Jun 2026 08:01:54 +0000 (13:31 +0530)]
introduce debug builds for noble
This commit adds debug builds for the distro noble. With this change, we
will also get debug noble builds. This is especially useful for testing
crimson in QA suites. Signed-off-by: Shraddha Agrawal <shraddha.agrawal000@gmail.com>
deepssin [Mon, 15 Jun 2026 11:09:21 +0000 (11:09 +0000)]
teuthology-nightly-cadence: raise priority, trim EOL suites, add umbrella
Bump maintenance nightly suites to priority 200 so jobs run ahead of the
old 800+ backlog while staying behind dev/release work at 50–75. Drop
teuthology/nop and quincy (EOL). Add umbrella with the same suite list and
daily cadence as main; keep squid for active stable testing. Timer now
fires main, tentacle, squid, and umbrella
Ville Ojamo [Fri, 12 Jun 2026 05:21:27 +0000 (12:21 +0700)]
ceph-pr-commits: support target branch in docs commit msgs
ceph/ceph@0a54fcdfc491ce2b2bb3ded77e319a7cff785e73 added a new policy
that backport PRs with not-cherry-picked commits need the commit log
summary to begin with the target branch name.
This policy conflicted with docs-only commits that must have the same
line start with "doc", as enforced by this job.
Modify the regex used to allow an additional optional "branch: " string in
front of the "doc" string in the beginning of the commit message
summary, only if "target_branch" is something else than "main".
Signed-off-by: Ville Ojamo <git2233+ceph@ojamo.eu>
Casey Bodley [Thu, 11 Jun 2026 14:51:00 +0000 (10:51 -0400)]
ceph-dev-cron: add jammy to umbrella
umbrella will still support ubuntu jammy, and qa suites there depend on
jammy packages. reenable jammy in ceph-dev-cron builds in case we
want to schedule suites directly against the tip of umbrella
This describes the perf PR job as a release regression check, pin the
benchmark definition to ceph-main, and surface the perf regression
status in GitHub. This also reenables the ceph-perf-pull-request
deepssin [Thu, 4 Jun 2026 10:30:58 +0000 (10:30 +0000)]
teuthology-nightly-cadence: fix subset expansion and align suite SHA
Mark cadence helper methods @NonCPS so expandCadenceToRows runs instead of
falling through to cadenceSteps (which passed partitions and scheduled full
suites). Fail the build if any row lacks subset and log subset per suite.
Pass SUITE_SHA to teuthology-runner with the same resolved Shaman SHA as
CEPH_SHA1 so qa/suites checkout matches the built packages.
John Mulligan [Fri, 29 May 2026 13:55:49 +0000 (09:55 -0400)]
ceph-pull-requests: add parameter for DISTRO_BASE
This new parameter can be used to manually start a "make check" job
via with jenkins ui with a distro base other than the default value
of "jammy". This will allow us to test on a newer distro base and
eventually let (some) users self-service test their fixes for these
issues.
Signed-off-by: John Mulligan <phlogistonjohn@asynchrono.us>
David Galloway [Thu, 28 May 2026 20:22:06 +0000 (16:22 -0400)]
builder.yml: Reinstall vagrant(-libvirt) if needed
Avoids:
```
Vagrant failed to properly resolve required dependencies. These
errors can commonly be caused by misconfigured plugin installations
or transient network issues. The reported error is:
nokogiri requires Ruby version >= 3.2, < 4.1.dev. The current ruby version is 2.7.4.191.
```
Which happens when an old vagrant version is installed on a builder then the version of vagrant provided in the chacra repo is newer.
Signed-off-by: David Galloway <david.galloway@ibm.com>
Afreen Misbah [Wed, 27 May 2026 21:18:28 +0000 (02:48 +0530)]
cephadm-e2e: use crun as explicit OCI runtime for rootless podman
--group-add keep-groups requires crun as the OCI runtime; runc silently
ignores it. Install crun explicitly, pass --runtime crun to the podman
wrapper, and remove newgrp which is unreliable inside non-interactive
scripts.
David Galloway [Wed, 27 May 2026 19:42:26 +0000 (15:42 -0400)]
ceph-dev-pipeline: Fix NotSerializableException when iterating readProperties result
Jenkins periodically saves its state to disk so it can resume builds
after a restart or when waiting for an agent. Some Java objects cannot
be saved this way. We were looping over a properties file in a way that
created one of those unsaveable objects, which caused Jenkins to crash
when it happened to try saving at that moment.
The fix changes the loop to only work with plain strings, which Jenkins
has no trouble saving.
Signed-off-by: David Galloway <david.galloway@ibm.com>
David Galloway [Wed, 27 May 2026 17:34:29 +0000 (13:34 -0400)]
ceph-pr-api: Split out squid-specific job
The Squid branch still requires python3.10 in order to build. Most of our builders are running Ubuntu Noble now which does not have python3.10.
So run ceph API tests for Squid-targeted PRs on installed-os-jammy and all others on installed-os-noble.
The job names were chosen to keep the existing naming scheme for non-squid jobs (e.g., https://jenkins.ceph.com/job/ceph-api vs. https://jenkins.ceph.com/job/ceph-api-squid)
Signed-off-by: David Galloway <david.galloway@ibm.com>
Afreen Misbah [Tue, 19 May 2026 10:44:13 +0000 (16:14 +0530)]
cephadm-e2e: fix libvirt socket permission denied in rootless podman
Rootless podman drops host supplementary groups when creating a user
namespace. The kcli container loses the libvirt GID and cannot access
/var/run/libvirt/libvirt-sock, causing all e2e builds to fail.
Add --group-add keep-groups to preserve the host user's groups inside
the container.
Afreen Misbah [Mon, 18 May 2026 19:37:59 +0000 (01:07 +0530)]
mgr/dashboard: Fix image sync issue grafana
In the build script, `-e GODEBUG=http2client=0` is placed after the container image name (quay.io/skopeo/stable sync --all), which means it gets passed as a flag to skopeo sync, not to podman run.
feat: add Pulp upload scripts and pipeline integration
Add an optional path to publish built RPM/DEB artifacts to Pulp alongside the
existing Chacra flow.
- Introduce a `PULP_UPLOAD` boolean parameter (default false) on the `ceph-dev` job.
- Add `scripts/setup_pulp.sh` to install `pulp-cli` (with pulp-cli-deb) via uv and
write client config from Jenkins credentials.
- Add `scripts/pulp_upload.sh` to upload discovered packages, attach them to the
target repository, create a publication, and publish a distribution with
project/version/ref/arch/sha labels.
- Update the Jenkinsfile to install/configure the Pulp client when forcing a
rebuild with Pulp upload while Chacra already has artifacts, and to invoke
`pulp_upload.sh` after `chacra_upload.sh` when `THROWAWAY` is not `true` and
`PULP_UPLOAD` is `true`.