Patrick Donnelly [Thu, 30 Jul 2026 00:18:57 +0000 (20:18 -0400)]
.github/workflows: switch to pull_request_target trigger
Switch the trigger from `pull_request` to `pull_request_target` so that
the workflow definition on `main` is evaluated for PRs targeting active
release branches (main, umbrella, tentacle, squid). This allows the check
to run cleanly across release branches without requiring workflow file
backports to each branch.
Additionally:
- Update `src/script/verify-qa` to accept an optional target directory argument ($1).
- Run the trusted `verify-qa` script from `main` against the checked-out PR directory (`./pull_request`).
The concern of exfiltrating secrets is important but not relevant here:
we're not using the secrets in the definition and we explicitly
downgrade the github token to `read` permission.
Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
Patrick Donnelly [Thu, 30 Jul 2026 00:43:02 +0000 (20:43 -0400)]
.github/workflows: switch to pull_request_target trigger
Switch the trigger from `pull_request` to `pull_request_target` so that
the workflow definition on `main` is evaluated for PRs targeting active
release branches (main, umbrella, tentacle, squid). This allows the check
to run cleanly across release branches without requiring workflow file
backports to each branch.
While this workflow passes `github.token`, the token permissions are
strictly restricted to read-only (`contents: read` and `pull-requests: read`).
Because no PR code is checked out or executed, using `pull_request_target`
presents zero security risk here.
Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
John Mulligan [Wed, 29 Jul 2026 19:19:55 +0000 (15:19 -0400)]
python-common/smb: work around socket path length limits for grpc lib
The grpc library (at least the version on centos/rocky 10) has a limit
of 107 characters. Even a fairly short host name is going to be close
to this limit due to the UUID and service name in the path.
Because the tool doesn't do much else and it is safe, the workaround is
to chdir to into the parent dir of the socket and only pass the relative
path name of socket.
Fixes: https://tracker.ceph.com/issues/78857 Signed-off-by: John Mulligan <jmulligan@redhat.com>
script/ptl-tool: add 'crimson', 'build/ops', 'common', 'tests' to SUPPORTED_QA_TAGS
PRs carrying these GitHub labels were silently dropped from both the
QA tracker's PR "Labels" column and the Redmine ticket's tag_list,
since SUPPORTED_QA_TAGS is a fixed whitelist and these were never
added to it despite being real, actively-used component/category
labels (e.g. ceph/ceph#70661, #70658 for crimson).
Ville Ojamo [Wed, 29 Jul 2026 10:24:56 +0000 (17:24 +0700)]
doc/install: use ref for intra-docs links
Use ref instead of external link definitions for intra-docs links.
Add labels if necessary in files within the install/ directory. Use
existing labels for links outside the install/ directory but do not add
new labels outside of the install/ directory.
Signed-off-by: Ville Ojamo <git2233+ceph@ojamo.eu>
Ville Ojamo [Wed, 29 Jul 2026 09:40:54 +0000 (16:40 +0700)]
doc/cephadm: enable substitutions on CLI command example
Substitutions were not enabled on a prompt directive that tried to use
the stable-release substitution so the substitution string was rendered
verbatim.
Signed-off-by: Ville Ojamo <git2233+ceph@ojamo.eu>
When editing services such as oauth2-proxy, backend fields like scope
arrive as a single string. Spreading that string into the list turned
each character into its own row. Normalize string values to one item.
Fixes: https://tracker.ceph.com/issues/78808 Signed-off-by: Pedro Gonzalez Gomez <pegonzal@ibm.com>
mgr/dashboard: add text/javascript to gzip mime types
CherryPy's serve_file() uses Python's mimetypes module which returns
text/javascript for .js files (RFC 9239), but the gzip config only
listed application/javascript. This meant the main Angular bundle
was being served uncompressed. With Cheroot write timeouts,
the uncompressed transfer times out over slower networks, causing
ERR_CONTENT_LENGTH_MISMATCH in the browser.
Patrick Donnelly [Tue, 28 Jul 2026 12:40:32 +0000 (08:40 -0400)]
Merge PR #70574 into main
* refs/pull/70574/head:
.github/workflows: bump checkout action version
.github/workflows/qa-symlink: sparse checkout verify-qa
.github/workflows/qa-symlink: run only for active branches
Reviewed-by: Joseph Mundackal <jmundackal@bloomberg.net>
Kefu Chai [Fri, 26 Jun 2026 11:35:15 +0000 (19:35 +0800)]
crimson: migrate off deprecated seastar::smp::count and all_cpus()
The updated seastar deprecates the global smp::count and smp::all_cpus() in
favour of the per-instance smp::shard_count() and smp::all_shards(). Under the
CI -Werror build these deprecation warnings are fatal.
Replace the uses with the reactor-local free functions
seastar::this_smp_shard_count() and seastar::this_smp_all_shards(), which read
the current smp instance's shard count and shard-id range. crimson runs a
single smp instance and every migrated site executes on a reactor thread (the
alienstore worker threads do not touch these), so the behaviour is unchanged.
Kefu Chai [Fri, 26 Jun 2026 07:56:35 +0000 (15:56 +0800)]
crimson: use the seastar span sink API and build at API level 10
At SEASTAR_API_LEVEL >= 9 seastar dropped output_stream::write(net::packet) in
favour of write(std::span<temporary_buffer<char>>). Convert Socket's writes to
the span form, writing the packet's released fragments and keeping them alive
across the write with do_with, then raise Seastar_API_LEVEL from 6 to 10 to
match the updated seastar. The span write overloads are unconditional, so the
Socket change is valid at every API level.
Kefu Chai [Fri, 26 Jun 2026 07:56:35 +0000 (15:56 +0800)]
crimson: bump seastar submodule and adapt to its new future API
Update src/seastar to ceph-umbrella-25.05.0-1074-gcced0236, which is
scylladb/seastar master (fd71a5b4c7) with the ceph patches reapplied,
and adapt crimson to the future API changes the bump brings in:
- interruptible_future.h: seastar split its single ready_future_marker into
set_ready_future_marker and set_from_tuple_ready_future_marker; route
futurize::from_tuple through the matching markers.
- thread_pool.h: future_state::set() is now templated and get_value() is
ref-qualified; pass seastar::internal::monostate{} for the void case and
move the state before reading its value.
These crimson changes need the new seastar, so they share one commit with the
submodule bump. The build stays at Seastar_API_LEVEL 6 here; the level is
raised in the following commit.
J. Eric Ivancich [Thu, 23 Jul 2026 19:32:41 +0000 (15:32 -0400)]
rgw: update build config to streamline builds
Some binaries and man pages were not included in rpm builds or debian
builds. This adds those artifacts to ceph.spec.in
debian/ceph-common.install and debian/radosgw.install.
Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>