]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/log
ceph-ci.git
4 days agosrc/script/buildcontainer-setup.sh: install ccache wip-foobar
Kamoltat Sirivadhna [Fri, 10 Oct 2025 19:34:04 +0000 (19:34 +0000)]
src/script/buildcontainer-setup.sh: install ccache

Signed-off-by: Kamoltat Sirivadhna <ksirivad@redhat.com>
4 days agorun-make-check.sh: handle sudo and command that may not run in container
John Mulligan [Tue, 18 Mar 2025 23:26:59 +0000 (19:26 -0400)]
run-make-check.sh: handle sudo and command that may not run in container

Work around a known failure that sudo is not expected to be present in
container images. Prepare to handle a failure to set a sysctl param.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit 9f44155dff195015186315968a0a1e8ce925ed5d)
(cherry picked from commit 424ba2fb1f8061a5eaeef122d67afeca40afd739)

4 days agoinstall-deps: extract SUDO variable logic into a reusable function
John Mulligan [Sat, 15 Mar 2025 16:44:00 +0000 (12:44 -0400)]
install-deps: extract SUDO variable logic into a reusable function

While the function is pretty simple and could be copy-pasted I
prefer to extract things into functions to indicate that the
logic is used/repeated elsewhere to ward off making changes to
one copy vs the other.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit bbd7933598e11d84758a6f09fd176f47c744aaa2)
(cherry picked from commit 69b7dd8333fbec11db8cb9c9cd70554477034b7c)

4 days agorun-make-check: Enable ctest resource allocation
luo rixin [Wed, 7 Feb 2024 03:33:44 +0000 (11:33 +0800)]
run-make-check: Enable ctest resource allocation

Co-authored-by: Kefu Chai <tchaikov@gmail.com>
Signed-off-by: luo rixin <luorixin@huawei.com>
(cherry picked from commit 5aa832c5c60e0469127647570bb102ff64a3fe32)
(cherry picked from commit 6097aa619db5a8489a672a6c156c033106ba7d90)

4 days agoscript/build-with-container: improve error handling for invalid distros
John Mulligan [Wed, 8 Oct 2025 20:41:36 +0000 (16:41 -0400)]
script/build-with-container: improve error handling for invalid distros

Instead of throwing a long obnoxious traceback at the user if the value
supplied to -d/--distro is invalid do something nicer. For example:
```
$ ./src/script/build-with-container.py -d trixy  -e build
usage: build-with-container.py [-h] [--help-build-steps]
build-with-container.py: error: argument --distro/-d: unknown distro: 'trixy' not in centos10, centos10stream, centos8, centos9, centos9stream, rocky9, rockylinux9, rocky10, rockylinux10, fedora41, fc41, fedora42, fc42, fedora43, fc43, ubuntu20.04, ubuntu-focal, focal, ubuntu22.04, ubuntu-jammy, jammy, ubuntu24.04, ubuntu-noble, noble, debian12, debian-bookworm, bookworm, debian13, debian-trixie, trixie

```

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit 72f3ad9549e84bdba7bdfd97d2ede3c55e02f103)
(cherry picked from commit db50915a573299a98bbdb04b1185adecd9ac113d)

4 days agoscript/build-with-container: add debian 13 (trixie)
John Mulligan [Wed, 8 Oct 2025 21:04:27 +0000 (17:04 -0400)]
script/build-with-container: add debian 13 (trixie)

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit a13fa091dd6bad35c44076cb7c46cb7bcc17a7ac)
(cherry picked from commit 2e534d9c80a8dd46336cb6152ae533bacbe0fd09)

4 days agoscript/build-with-container: add ubuntu 20.04 (focal)
John Mulligan [Wed, 8 Oct 2025 17:30:18 +0000 (13:30 -0400)]
script/build-with-container: add ubuntu 20.04 (focal)

Add ubuntu 20.04 (focal) to the available list of distro kinds.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit 7c40f7bd07ac935d0657b9284118da8590a5cf0d)
(cherry picked from commit 97ef62fe921c0946803e16b1803f0f031b872646)

4 days agoscript/build-with-container: add a pair of fedora distro versions
John Mulligan [Wed, 8 Oct 2025 14:28:30 +0000 (10:28 -0400)]
script/build-with-container: add a pair of fedora distro versions

Add fedora 42 and the soon-to-be-released fedora 43.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit 76fe5ad298ee5626eeb63591a702e8f8cc9be7d0)
(cherry picked from commit 7a67d62193289fe6d1e371e7cebab5e22638a27d)

4 days agoscript/build-with-container: lightly organize the distro kind aliases
John Mulligan [Wed, 8 Oct 2025 14:26:58 +0000 (10:26 -0400)]
script/build-with-container: lightly organize the distro kind aliases

Do a tiny reorg of the distro kind aliases and container images to keep
the EL distros together and comment out each "section".

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit 4430a5ad6be6f26309d5f5bea0e448a4bbd432e1)
(cherry picked from commit 9ec89279244f1865312acb564cf8cf175a034da5)

4 days agoscript/build-with-container: be consistent with naming in distro kinds
John Mulligan [Wed, 8 Oct 2025 14:23:25 +0000 (10:23 -0400)]
script/build-with-container: be consistent with naming in distro kinds

Update the DistroKind enum and related items so that the naming is
applied consistently. That is: the canonical (no pun indented) form
of the name is "<name><version>" and codenames, such as "jammy" or
"bookworm" are aliases. This matches the previously existing code.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit ac11a80a63ab1909fbdf682d830acde96856f502)
(cherry picked from commit 1d0affb0797b83f313f7b86a83b01916769fb998)

4 days agosrc/script: add bookworm to build-with-container.py
Dan Mick [Tue, 7 Oct 2025 01:48:42 +0000 (18:48 -0700)]
src/script: add bookworm to build-with-container.py

..and its friend buildcontainer-setup.sh

Signed-off-by: Dan Mick <dan.mick@redhat.com>
(cherry picked from commit 34b497c2f3652e7d30c7b7476b711fd9f1f4ecac)
(cherry picked from commit 7ff4bfae4eb58a4d8ee3cd34f02edd1ad4109380)

4 days agobuild-with-container: ensure npm dir is set up before configure
John Mulligan [Thu, 28 Aug 2025 23:39:06 +0000 (19:39 -0400)]
build-with-container: ensure npm dir is set up before configure

When the npm cache path option is passed the npm cache dir is passed
to all container `run` commands, ensure the dir has been created
before the first container command (configure) is used.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit 79166af192ea0b4b982b56ce521516d5a29e7a0d)
(cherry picked from commit b58415182b09fa9ee384c3262c7a2a81b85fcba2)

4 days agobuild-with-container: add argument groups to organize options
John Mulligan [Fri, 12 Sep 2025 17:52:25 +0000 (13:52 -0400)]
build-with-container: add argument groups to organize options

Use the argparse add_argument_group feature to organize the mass of
arguments into more sensible categories. Hopefully, someone reading
over the `--help` output can now more easily see options that
are useful rather than being overwhelmed by a wall of text.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit 71a1be4dd0aea004da56c2f518ee70a281a3f7d3)
(cherry picked from commit 321859b6afabc80b214fb9eff17ab5f1810a09e3)

4 days agomake-debs.sh: invoke tar with --no-same-owner
Dan Mick [Sat, 23 Aug 2025 00:43:24 +0000 (17:43 -0700)]
make-debs.sh: invoke tar with --no-same-owner

When running as a normal user, tar does not attempt to preserve
owners set on the tar content files.  When running as root, it does.
Containerized builds are running as root.  Stop make-debs.sh from
trying to set other owners for files, and leaving files in the
host system with mapped UIDs other than the user running the container
(which causes jenkins to be unable to clear the workspace).

Signed-off-by: Dan Mick <dan.mick@redhat.com>
(cherry picked from commit 46c540444dd0dc4b4572e71ef452436a3b580d51)
(cherry picked from commit 4ed5d15c752f6aaad1a6ef2aabdc6e4f2eb5992a)

4 days agobuild-with-container: improve source rpm detection
John Mulligan [Tue, 19 Aug 2025 23:12:07 +0000 (19:12 -0400)]
build-with-container: improve source rpm detection

Improve source rpm detection by adding a new detection method that
executes and rpm command in a container to get exactly the version of
the source rpm that the ceph.spec file would have generated.  For
backwards compatibility and that I don't entirely trust myself to have
tested this the old methods are still available.

The old `--rpm-no-match-sha` is now an alias for `--srpm-match=any` to
cause it to build any (unique) ceph srpm it finds.
`--srpm-match=versionglob` retains the previous default behavior of
using a glob matching on the git id or ceph version value.  The new
default of `--srpm-match=auto` implements the rpm command based behavior
described above.

All of this is wrapped in a new step `find-rpm` but that's mostly an
implementation detail and for testing.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit 916088a4e7380cd7ac1403fb4416ef91ab07aa52)
(cherry picked from commit 3d490f82719bd8d552c595dc8a40916577b73fb9)

4 days agoDockerfile.build: make WITH_CRIMSON a build arg
John Mulligan [Fri, 20 Jun 2025 23:34:45 +0000 (19:34 -0400)]
Dockerfile.build: make WITH_CRIMSON a build arg

We've chosen to enable crimson by default to match the CI, but that
is not always something a developer may want, so make WITH_CRIMSON
a build argument that can be toggled off if necessary.

Conflicts:
Dockerfile.build

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit 9cbadc2e6009cbbf3bc757f801d3508da6fe498d)
(cherry picked from commit 899f6ecba7a2a559b0e0b181ecbbe7805e26fc9c)

4 days agoDockerfile.build: Install sccache
Zack Cerza [Mon, 24 Feb 2025 19:30:13 +0000 (12:30 -0700)]
Dockerfile.build: Install sccache

Note that it is not used automatically.

Signed-off-by: Zack Cerza <zack@cerza.org>
(cherry picked from commit a5a983c7363ab185cdc48ecd392f8cff6ce087bd)
(cherry picked from commit 83d16fa16e96d8b335a500668ba9f21c2de94359)

4 days agoscript/build-with-container: support --build-arg arguments
John Mulligan [Fri, 20 Jun 2025 23:46:16 +0000 (19:46 -0400)]
script/build-with-container: support --build-arg arguments

Allow passing --build-arg arguments to build-with-container.py
which are passed directly to the container build command.
This allows a developer to toggle certain features of the build
container, however this should not be used in CI.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit 7802a61150af85ef49c666666af753cee5a14451)
(cherry picked from commit 543b9c38d1a9e2fcb3e504a40f824da6dfabd6c0)

4 days agoscript/build-with-container: remove unused build arg
John Mulligan [Thu, 29 May 2025 14:21:49 +0000 (10:21 -0400)]
script/build-with-container: remove unused build arg

Remove the unused build arg for JENKINS_HOME. This was
once used to try and create build images like the CI jobs. However,
the env var is now unconditionally set in the build script and must
be passed (or not) explicitly by the user.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit 6f5b23a39eadaa6e1f4df3a882cbb872f497d8fa)
(cherry picked from commit 73d5dd518e3a98d8ecf695d89b8608e6125a5022)

4 days agoscript/build-with-container: add workarounds for older python versions
John Mulligan [Fri, 13 Jun 2025 00:37:56 +0000 (20:37 -0400)]
script/build-with-container: add workarounds for older python versions

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit 45e0979b60bd4e508fd1e00ac3bfdab5cdcf8a52)
(cherry picked from commit 2f52e519c799645e0b9fe2ca2c9ef6905314645b)

4 days agoscript/build-with-container: handle failure to find source rpm better
John Mulligan [Thu, 8 May 2025 17:22:52 +0000 (13:22 -0400)]
script/build-with-container: handle failure to find source rpm better

Don't use an obscure assert, raise an exception with a helpful error
message.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit 7cd048c2ee21935312c3b05c9b128c183b4e6ad8)
(cherry picked from commit a042017fb5afe164960fbe6048a925465b2d0943)

4 days agoscript/build-with-container: fix rpm build step when using an overlay
John Mulligan [Thu, 8 May 2025 15:21:32 +0000 (11:21 -0400)]
script/build-with-container: fix rpm build step when using an overlay

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit acebfed03cacdef8735c37f68fc1f415b934f68a)
(cherry picked from commit 36457c7c8153d2f4ac73f459c9dc1841990745ad)

4 days agoscript/build-with-container: fix rpmbuild when no rpm build args are set
John Mulligan [Thu, 8 May 2025 15:21:11 +0000 (11:21 -0400)]
script/build-with-container: fix rpmbuild when no rpm build args are set

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit da9fca7a1084a84b94ee34d33e8d0cc5d4772330)
(cherry picked from commit 0c12cc864154c9df3632ebbbc209020f988190b8)

4 days agoscript/build-with-container: cache git branch result
John Mulligan [Fri, 21 Mar 2025 18:28:25 +0000 (14:28 -0400)]
script/build-with-container: cache git branch result

Cache the branch we got from the git command as it is highly unlikely
to change during the script execution and if it does -- we mostly don't
care anyway.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit e562aa086197c2950c9ebb9f8f112e88e1e6e666)
(cherry picked from commit 6748198f499693cc15adb5c607f19d97c39a907a)

4 days agoscript/build-with-container: detect when cached build images need rebuilding
John Mulligan [Fri, 21 Mar 2025 17:53:16 +0000 (13:53 -0400)]
script/build-with-container: detect when cached build images need rebuilding

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit 8d0fafa40c1cfe92008b0b8d267253ae5c5ea945)
(cherry picked from commit e09268ce25463657b1f537f1ae00e177361b45c9)

4 days agoscript/build-with-container: add log line with time taken
John Mulligan [Thu, 20 Mar 2025 21:03:43 +0000 (17:03 -0400)]
script/build-with-container: add log line with time taken

Add a log line with time taken to the output of the script, this can
help to see at a glance how long a particular bwc step took.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit e5c05e2bbf63a97f5ef963ed9900da690e89a5f8)
(cherry picked from commit 2ea415898c9997f88e81f0b2d6bd25015333ba8a)

4 days agobuild-with-container.py: Pass distro to make-debs
Zack Cerza [Fri, 7 Mar 2025 23:59:40 +0000 (16:59 -0700)]
build-with-container.py: Pass distro to make-debs

Signed-off-by: Zack Cerza <zack@cerza.org>
(cherry picked from commit cc21dc48f59f31ace32c671cc964e9aeaf23648c)
(cherry picked from commit ba0933e4f67e8b734a27ca45c79aa3e204a1b349)

4 days agobuild-with-container.py: Pass version to make-debs
Zack Cerza [Wed, 5 Mar 2025 21:47:26 +0000 (14:47 -0700)]
build-with-container.py: Pass version to make-debs

Signed-off-by: Zack Cerza <zack@cerza.org>
(cherry picked from commit 9ee29921b7ba744b617e5659a7af4a10cf742de1)
(cherry picked from commit d0802c2005aebbb629a0340a68f5b98ffed1fe53)

4 days agoscript/build-with-container: fix building on docker
John Mulligan [Fri, 14 Mar 2025 18:39:09 +0000 (14:39 -0400)]
script/build-with-container: fix building on docker

Fix building images on docker by using the `--pull` option instead of
`--pull=always`. The latter apparently only works on podman. The former
should do the same thing on both container engines.

Fixes: https://tracker.ceph.com/issues/70470
Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit bc80c5fde5944f04a31d3f9f29db145b05214ab3)
(cherry picked from commit 4a29dd08ddeb98a6e69c186805d7bcceddaf0b31)

4 days agobuild-with-container.py: Add --rpmbuild-extra-args
Zack Cerza [Tue, 25 Feb 2025 16:15:32 +0000 (09:15 -0700)]
build-with-container.py: Add --rpmbuild-extra-args

Signed-off-by: Zack Cerza <zack@cerza.org>
(cherry picked from commit fd75679cf4b93d3605a25af7a08e00be9aca48f6)
(cherry picked from commit c9e0567c73557f1309cf219f1bd6d2fad1b34168)

4 days agobuild-with-container.py: Add --ceph-version
Zack Cerza [Thu, 13 Feb 2025 00:10:23 +0000 (17:10 -0700)]
build-with-container.py: Add --ceph-version

So that we can build from an extracted tarball, as opposed to a git repo.

Signed-off-by: Zack Cerza <zack@cerza.org>
(cherry picked from commit 800f5c2924dfd88292fbd483b881f25d15bbc928)
(cherry picked from commit b4a5187c822540c70cd206af2cc34e51d61451fd)

4 days agobuild-with-container.py: Add --env-file
Zack Cerza [Sat, 8 Feb 2025 00:16:20 +0000 (17:16 -0700)]
build-with-container.py: Add --env-file

Signed-off-by: Zack Cerza <zack@cerza.org>
(cherry picked from commit 8e9544fed3dc70ac91f995aacb3aed2edbd45554)
(cherry picked from commit d9b6e57295ae40257787540b698c063c966597b1)

4 days agoscript/buildcontainer-setup: set JENKINS_HOME while building image
John Mulligan [Fri, 14 Mar 2025 18:37:02 +0000 (14:37 -0400)]
script/buildcontainer-setup: set JENKINS_HOME while building image

Set the JENKINS_HOME environment variable while building the builder
image. This is needed because parts of scripts like run-make.sh and
install-deps.sh key off of this variable. Since we want to be able to
use the build container to build, run "make check" and the like, we want
that environment to be as similar to the jenkins CI environment as we
can make it.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit f026709b1f7e323908eaf8f4582ae1bd1ed7a323)
(cherry picked from commit 35a848da909543e7036185cf6e78b6693453e8ac)

4 days agoscript/build-with-container: Add Rocky 9
David Galloway [Wed, 23 Jul 2025 19:17:55 +0000 (15:17 -0400)]
script/build-with-container: Add Rocky 9

Signed-off-by: David Galloway <david.galloway@ibm.com>
(cherry picked from commit 2996390144f7d0a0ea94edcf95ca7b89c6a62013)
(cherry picked from commit 393a7dc900aaf403d041156cb2a5293e4b64ed2d)

4 days agoscript/build-with-container: add rocky10 to built-in distros
John Mulligan [Fri, 20 Jun 2025 23:03:22 +0000 (19:03 -0400)]
script/build-with-container: add rocky10 to built-in distros

Add "rocky10" (also aliased to "rockylinux10") to the known distro bases
so that the team can begin to experiment with the Rocky Linux 10 distro
for containerized builds.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit 33b33ff129011d71dcbe94fe4b2bb790f98301ad)
(cherry picked from commit 9958d46b130e175fb94569f975815edfd7348599)

4 days agobuild dependencies: centos9
Alexander Indenbaum [Fri, 26 Jan 2024 19:50:19 +0000 (19:50 +0000)]
build dependencies: centos9

- ceph.spec.in: declare git as build dependency
- install-deps.sh: enable CRB repo

Test procedure:
    docker run --rm -ti  -v /home/baum/ceph-ci:/home/ceph quay.io/centos/centos:stream9 bash
    [root@a3c4b1545e93 /]# cd /home/ceph/
    [root@a3c4b1545e93 ceph]# ./install-deps.sh 2>&1 tee install-deps.log

Signed-off-by: Alexander Indenbaum <aindenba@redhat.com>
(cherry picked from commit 11a37da05305420ca37f5a3af5b8991e1e2967cb)
(cherry picked from commit 7c05f07cf6cd98e01f2668bf3b8eef6a8ce7b997)

4 days agoscript/build-with-container: fix incorrect build invocation for tests
John Mulligan [Thu, 13 Mar 2025 11:48:28 +0000 (07:48 -0400)]
script/build-with-container: fix incorrect build invocation for tests

The `tests` build target was set to build the "normal" target but it
needs to build the tests.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit 6b635d3ec080c9514442e2617d1ab868050a39d9)
(cherry picked from commit e15a5f873d7b7f42e7c6ce29838082b39fd12a64)

4 days agoscript/build-with-container: add support for overlay dir
John Mulligan [Thu, 20 Feb 2025 00:17:30 +0000 (19:17 -0500)]
script/build-with-container: add support for overlay dir

The source dir (aka homedir, default /ceph) is mounted in the container
read-write. This is needed as the various ceph build scripts expect to
write things into the tree - often this is in the build directory - but
not always. This can lead to small messes and/or situations that are
confusing to debug, especially if one is jumping between distros often.
Add an option to use an overlay volume for the homedir - by default we
enable a persistent overlay with a supplied "upper dir" where files that
were written will appear. One can also enable a temporary overlay that
forgets the writes when the container exits - maybe useful when doing
experiments in 'interactive' mode.

To use this option run the command with the `--overlay=<dir>` option.
For example: `./src/script/build-with-container.py -b build.inner
--overlay-dir build.ovr`. This will create a directory
`build.ovr/content` automatically and all new files will appear there.
For example the build directory will appear at
`build.ovr/content/build.inner`.

To use the temporary overlay use a `-` as the directory name. For
example: `./src/script/build-with-container.py -b build.inner
--overlay-dir -`

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit 794e3d0b25a05e019e549eb51ba0ddba1268d5a6)
(cherry picked from commit 895ffc99895f53e6621c68b51150313e772d0756)

4 days agoscript/build-with-container: skip dnf cache dir volume mounts on docker
John Mulligan [Thu, 20 Feb 2025 14:50:49 +0000 (09:50 -0500)]
script/build-with-container: skip dnf cache dir volume mounts on docker

When using docker the --volume option is not available during build
(docker [buildx] build), unlike podman. Since passing these volumes must
be conditional on them being set up I see no way to handle this short of
just disabling the option on docker. Log the fact that it's being
skipped - the only other issue is that we pointlessly set up some dirs
and the build may be a bit slower.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit 4208a736652190fdaad3006c435f6c068e81a093)
(cherry picked from commit 08f7626d7241ba3a00f98fd2df1faab649845f57)

4 days agoscript/build-with-container: remove default --volume arg from ctr build
John Mulligan [Wed, 19 Feb 2025 18:20:36 +0000 (13:20 -0500)]
script/build-with-container: remove default --volume arg from ctr build

On the original github pr #59841 user fayak kindly informed us that the
--volume option was not supported by docker build. Since this section
was a leftover from a previous way of constructing the builder image and
was no longer needed we simply removed it.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit 612a9d6808f4f1d4f93aeca055acba064e7a1209)
(cherry picked from commit e56df19133b2c5dbde3007f315eb861facf0134d)

4 days agoscript/build-with-container.py: build builder image with --pull=always
John Mulligan [Wed, 19 Feb 2025 18:20:01 +0000 (13:20 -0500)]
script/build-with-container.py: build builder image with --pull=always

Construct the builder image using the --pull=always flag to initiate a
pull of the base image (centos, ubuntu, etc) in order to avoid using a
stale base image. Since the script automatically (by default) avoids
building if a matching tag is in local container storage it is handy to
use a fresh base when it *is* time to build something. Otherwise, you
end up in a situation like I sometimes do - using a months old base
unintentionally.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit f6e6188e30a9d765e86bd2d710666cfbdeb0818c)
(cherry picked from commit 915f6210d7e5bb2bd020dc02febaf1eb1afd1798)

4 days agoscript/build-with-container: add a common packages target
John Mulligan [Fri, 14 Feb 2025 19:50:42 +0000 (14:50 -0500)]
script/build-with-container: add a common packages target

Add a `packages` target to build-with-container.py that requests a build
of packages, whatever package type is native to the distro selected.
For example `./src/script/build-with-container.py -d ubuntu22.04 -e
packages` will automatically select a deb packages build where
`./src/script/build-with-container.py -d centos9 -e packages` will
trigger rpm packages to be built. The underlying package-type specific
targets remain unchanged.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit 37b7d509c59348ae11badd6673cb49ce9ce303fa)
(cherry picked from commit de0d9279445404c4d5a48dc97832ac8409989e8b)

4 days agoscript/build-with-container: support custom tag suffixes
John Mulligan [Fri, 14 Feb 2025 16:44:35 +0000 (11:44 -0500)]
script/build-with-container: support custom tag suffixes

Previously, one could use the `--tag` option to completely override the
container tag generated by the script. However, there are cases where
one may want to add information to the tag rather than override it.
Allow the tag value to start with a plus (+) character that indicates
that the remainder of the string is to be suffixed to the generated tag.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit 30836c4ed4b9332f22b31897ce4ece0ad4da6fc0)
(cherry picked from commit 5d7ff135f6f44148e8a977b88cc71c8066239ac5)

4 days agoscript/build-with-container: add --base-branch cli option
John Mulligan [Fri, 14 Feb 2025 16:37:04 +0000 (11:37 -0500)]
script/build-with-container: add --base-branch cli option

Add a command line option --base-branch that allows the user to supply a
custom base branch name. git doesn't make determining this easy so we
always assume a base branch of 'main' by default - but this option lets
one change that.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit ff34bf7241f1a1072f74494cc8f50156e0076019)
(cherry picked from commit 8a3e3af0fa31fa507051d8b3b2812e67c937318c)

4 days agoscript/build-with-container: add --current-branch cli option
John Mulligan [Fri, 14 Feb 2025 16:24:06 +0000 (11:24 -0500)]
script/build-with-container: add --current-branch cli option

Add a new --current-branch argument that lets the user supply a name for
the current branch. This allows the automatic tag generation to avoid
calling git - something useful if the tree is not using a git checkout
(like a tarball). It also allows you to pull a temporary branch in git
but ignore it and act like the temporary branch is the base branch.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit c1713c5bc37b7e31bd84555066c06a72bb0f025b)
(cherry picked from commit 98be912957232484fcd86e1bcd7ffbab36d36e31)

4 days agoscript/build-with-container: add more distro aliases
John Mulligan [Tue, 11 Feb 2025 23:36:13 +0000 (18:36 -0500)]
script/build-with-container: add more distro aliases

Add a system to define distro name aliases and use that to define some
additional aliases, primarily to match ubuntu codenames rather than
version numbers. Requested by Zack.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit 65f055f0d8390b9787007433d16cf3a1737584ff)
(cherry picked from commit 0adecbe7618c5d3298c1ea3dbed8f0733e7eb73c)

4 days agoscript/build-with-container: apply black formatting to file
John Mulligan [Thu, 20 Feb 2025 00:21:27 +0000 (19:21 -0500)]
script/build-with-container: apply black formatting to file

After the last set of fixes and enhancements I forgot to reformat the
file. This applies standard `black` formatting to the file.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit de855aec1c7a483ca5f0971a149860e8aaee8f7f)
(cherry picked from commit a1c73426ea258f158618f77dcfb38dffa090833a)

4 days agoscript: allow relative & ~ paths in build-with-container dnf cache arg
John Mulligan [Thu, 6 Feb 2025 16:51:54 +0000 (11:51 -0500)]
script: allow relative &  ~ paths in build-with-container dnf cache arg

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit cf0ed0a2859204fab3cbd871d2e56c1a86fa6a53)
(cherry picked from commit 19f38aea0ce80981a75d15ef73500edab640b2eb)

4 days agoscript: set execute bit on build-with-container.py
John Mulligan [Thu, 6 Feb 2025 14:59:29 +0000 (09:59 -0500)]
script: set execute bit on build-with-container.py

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit f7165966277636b926692aece82977dad3bd1784)
(cherry picked from commit 884bdec8fee6b1b879bee2681da27a89fa24b2ce)

4 days agosrc/script: add a script to help build ceph using containers
John Mulligan [Tue, 20 Aug 2024 19:01:05 +0000 (15:01 -0400)]
src/script: add a script to help build ceph using containers

The build-with-container script tries to encapsulate nearly all major
build tasks using docker/podman containers. If there's no build image
locally it will create one for your. It provides targets for building
(make), testing (make check), building rpm packages or deb packages and
is designed to be fairly easily extended.

View the comment at the top of the source file for usage details.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit f276cc5176f7f842267beb985d2a3bd073005839)
(cherry picked from commit 4507594714ea4f72826e385d18c38369d7520f28)

4 days agoscript: add discover_compiler function to lib-build.sh
John Mulligan [Tue, 1 Nov 2022 18:51:57 +0000 (14:51 -0400)]
script: add discover_compiler function to lib-build.sh

The discover_compiler function is an abstraction over the current
compiler detection code in run-make.sh. It is intended to be flexible
enough to work on {centos,rhel} systems, but currently is just an
updated version of the logic from run-make.sh. The intent is that this
function will grow and become useful for other scripts used for
building (possibly do_cmake.sh for example).

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit 561bf4ea9b4dd8f6710a959c5bd38eb4085a9d52)
(cherry picked from commit 8dae1c161c4d3bc3a1ef3cd48de0da9a89e44e65)

4 days agoscript: add discover_compiler function to lib-build.sh
John Mulligan [Tue, 1 Nov 2022 18:51:57 +0000 (14:51 -0400)]
script: add discover_compiler function to lib-build.sh

The discover_compiler function is an abstraction over the current
compiler detection code in run-make.sh. It is intended to be flexible
enough to work on {centos,rhel} systems, but currently is just an
updated version of the logic from run-make.sh. The intent is that this
function will grow and become useful for other scripts used for
building (possibly do_cmake.sh for example).

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit 561bf4ea9b4dd8f6710a959c5bd38eb4085a9d52)
(cherry picked from commit 8dae1c161c4d3bc3a1ef3cd48de0da9a89e44e65)

4 days agoscript: add a common ci_debug function to print ci debug lines
John Mulligan [Mon, 31 Oct 2022 19:06:25 +0000 (15:06 -0400)]
script: add a common ci_debug function to print ci debug lines

Reduces some of the boilerplate around emitting the "CI_DEBUG:"
prefixed debug lines for the CI. Additionally, enables using
the FORCE_CI_DEBUG var to enable ci debug lines even when not
in a jenkins environment.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit 93b94811cb10bb936c5abf87d708ae96d7939a8e)
(cherry picked from commit 29da3e654d0f73ac52626c7e2532b996fa4b925b)

4 days agoinstall-deps.sh: source lib-build.sh
John Mulligan [Mon, 31 Oct 2022 17:52:50 +0000 (13:52 -0400)]
install-deps.sh: source lib-build.sh

Currently, only in_jenkins is used. More will come later.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit 9b7db758c3f2a381e58790b60aee8908b9a6f1fa)
(cherry picked from commit aee71d803a58605b4dae1abf325e3a7af86b3768)

4 days agoscript: have run-make.sh honor BUILD_DIR like do_cmake.sh does
John Mulligan [Thu, 6 Oct 2022 17:43:41 +0000 (13:43 -0400)]
script: have run-make.sh honor BUILD_DIR like do_cmake.sh does

The BUILD_DIR environment variable is honored by do_cmake.sh in order to
create multiple build output directories. Before this change run-make.sh
did not support BUILD_DIR the same way as do_cmake.sh. This change makes
it possible to use BUILD_DIR with run-make.sh.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit 974effaa95ddbc9816a37e382a96e691f4e3cbdd)
(cherry picked from commit 3425674847f7e8500a5dadf6e2e55c9c1866197a)

4 days agoAdd Containerfile and build.sh to build it.
Dan Mick [Wed, 26 Jun 2024 02:07:41 +0000 (19:07 -0700)]
Add Containerfile and build.sh to build it.

The intent is to replace ceph-container.git, at first for ci containers
only, and eventually production containers as well.

There is code present for production containers, including
a separate "make-manifest-list.py" to scan for and glue the two
arch-specific containers into a 'manifest-list' 'fat' container,
but that code is not yet fully tested.

This code will not be used until a corresponding change to the
Jenkins jobs in ceph-build.git is pushed.

Note that this tooling does not authenticate to the container repo;
it is assumed that will be done elsewhere.  Authentication is
verified by pushing a minimal image to the requested repo.

Signed-off-by: Dan Mick <dmick@redhat.com>
(cherry picked from commit 5c40a5c1737cf0628c899c4e9f788017b8b4fca8)
(cherry picked from commit 3baf000d447a831bb936ee7add6ee9a4baae3442)

4 days agosrc/msg: attach header tid + Added more loggings wip-ksirivad-reef-c-build
Kamoltat Sirivadhna [Wed, 1 Oct 2025 19:53:39 +0000 (19:53 +0000)]
src/msg: attach header tid +  Added more loggings

Also dump the encoded payload on the sender
and reciever side

Signed-off-by: Kamoltat Sirivadhna <ksirivad@redhat.com>
(cherry picked from commit dec4382881a93a01d54c627c2642d511311f1469)

15 months ago18.2.4 v18.2.4
Ceph Release Team [Fri, 12 Jul 2024 13:57:23 +0000 (09:57 -0400)]
18.2.4

Signed-off-by: Ceph Release Team <ceph-maintainers@ceph.io>
15 months agoqa/suites/upgrade/reef-p2p/reef-p2p-parallel: increment upgrade to 18.2.2
Yuri Weinstein [Mon, 8 Jul 2024 19:22:12 +0000 (19:22 +0000)]
qa/suites/upgrade/reef-p2p/reef-p2p-parallel: increment upgrade to 18.2.2

Instead of installing 18.2.0, which still contains the osdmap crc bug tracked
in https://tracker.ceph.com/issues/63389, we should install v18.2.2 since this contains
the fix. Then, we upgrade to reef_latest. In this scenario, we do not expect to see the
crc bug. If we test any upgrade path before that, we will hit the warning and the test will fail.

Fixes: https://tracker.ceph.com/issues/66505
Signed-off-by: Laura Flores <lflores@ibm.com>
(cherry picked from commit a9365afeb38afdb59530121ddae5c6fdfdfd2d1a)

15 months agoqa/distros: removed centos 8 from supported distros
Casey Bodley [Mon, 18 Sep 2023 18:17:03 +0000 (14:17 -0400)]
qa/distros: removed centos 8 from supported distros

Signed-off-by: Casey Bodley <cbodley@redhat.com>
(cherry picked from commit 449db416aa82df12b349ce10603c9646c88bde83)
(cherry picked from commit ec249a7549734befaa130dabcb0c14b91be8a4f4)

15 months agomgr/k8sevents: update V1Events to CoreV1Events
Nizamudeen A [Fri, 3 May 2024 08:56:19 +0000 (14:26 +0530)]
mgr/k8sevents: update V1Events to CoreV1Events

centos9 only provides kubernetes 26.1.0 as base dep and hence the
k8sevents code needs to be updated accordingly. the api changes happened
in kuberenetes while 19.0.0 was released

Fixes: https://tracker.ceph.com/issues/65627
Fixes: https://tracker.ceph.com/issues/64981
Signed-off-by: Nizamudeen A <nia@redhat.com>
(cherry picked from commit 6af964719217d720e6c2fd1ba2a607f6255d2604)
(cherry picked from commit 1f1160442fbc4d8c55d4aabb2a3cfccf26571f70)

15 months agoqa/tasks/qemu: Fix OS version comparison
Zack Cerza [Fri, 14 Jun 2024 19:37:16 +0000 (13:37 -0600)]
qa/tasks/qemu: Fix OS version comparison

See: https://sentry.ceph.com/share/issue/21ed88d705854238bdafbf6711e795ee/
They're strings, not floats.
This surfaced as a result of https://github.com/ceph/teuthology/pull/1953

Signed-off-by: Zack Cerza <zack@redhat.com>
(cherry picked from commit 260a45a03148ba4d2bbfcac9485bcf9a8743cade)
(cherry picked from commit 7fb22816dc66b11742bd52509ecea439c9db8ebd)

15 months agoqa/cephfs: fs:upgrade:mds_upgrade_sequence uses centos9
Venky Shankar [Thu, 27 Jun 2024 09:51:48 +0000 (15:21 +0530)]
qa/cephfs: fs:upgrade:mds_upgrade_sequence uses centos9

Signed-off-by: Venky Shankar <vshankar@redhat.com>
(cherry picked from commit 936c2813b0e526c4588802c2de69c38f631df755)

15 months agoqa: upgrade sub-suite upgraded_client from from n-1|n-2 releases
Dhairya Parmar [Tue, 30 Apr 2024 11:09:19 +0000 (16:39 +0530)]
qa: upgrade sub-suite upgraded_client from from n-1|n-2 releases

... and move to centos9.

Fixes: https://tracker.ceph.com/issues/65580
Signed-off-by: Dhairya Parmar <dparmar@redhat.com>
Signed-off-by: Venky Shankar <vshankar@redhat.com>
(cherry picked from commit 76589659480c6e9cd2ad09b3be21deeb6d1686d1)

 Conflicts:
qa/suites/fs/upgrade/upgraded_client/tasks/0-from/nautilus.yaml
qa/suites/fs/upgrade/upgraded_client/tasks/0-install.yaml
qa/suites/fs/upgrade/upgraded_client/tasks/0-install/quincy.yaml

(cherry picked from commit 329c440eec172401c3b58646b44d415628148ec3)

15 months agoqa: upgrade sub-suite nofs from n-1 and n-2 releases
Dhairya Parmar [Thu, 4 Apr 2024 12:25:52 +0000 (17:55 +0530)]
qa: upgrade sub-suite nofs from n-1 and n-2 releases

also adjust the respective upgrade YAMLs and move to
centos9.

For reef release, start upgrade from pacific/quincy.

Fixes: https://tracker.ceph.com/issues/65580
Signed-off-by: Dhairya Parmar <dparmar@redhat.com>
Signed-off-by: Venky Shankar <vshankar@redhat.com>
(cherry picked from commit f00a69f714dd07d580731a326aff41cacca6d0b6)
(cherry picked from commit e06d1d6c1d4198d629a941d9777131f65d21b10b)

15 months agoqa: use supported releases for featureful_client
Venky Shankar [Fri, 7 Jun 2024 05:13:27 +0000 (05:13 +0000)]
qa: use supported releases for featureful_client

... and switch for centos9.

For reef release, start upgrade from pacific/quincy.

Fixes: https://tracker.ceph.com/issues/65580
Signed-off-by: Venky Shankar <vshankar@redhat.com>
(cherry picked from commit 3715ce671de97530dda30d59fe643cebc3ebc508)
(cherry picked from commit ecb6824beab99b39b7b533bc42ac3371c8ee69a9)

15 months agoqa: refactor client upgrade yamls and other minor touchups
Dhairya Parmar [Mon, 6 Nov 2023 14:24:20 +0000 (19:54 +0530)]
qa: refactor client upgrade yamls and other minor touchups

* start testing new_ops and stress_tests with both the drivers(i.e. fuse and kclient)
therefore moved 0-clients/ from tasks/3-workload/new_ops/ to tasks/ and renamed it to
2-clients/

* since new_ops/ and stress_tests/ now share the common upgrade yaml, moved the
tests yamls(in stress_tests/1-tests) directly under 3-workload/stress_tests/

* renamed 1-client-sanity.yaml in new_ops/ to newops.yaml

Fixes: https://tracker.ceph.com/issues/62953
Signed-off-by: Dhairya Parmar <dparmar@redhat.com>
(cherry picked from commit c556c7324763332df62f4d382da02314900f1a60)

 Conflicts:
qa/suites/fs/upgrade/upgraded_client/tasks/2-clients/fuse-upgrade.yaml
qa/suites/fs/upgrade/upgraded_client/tasks/2-clients/kclient.yaml
qa/suites/fs/upgrade/upgraded_client/tasks/2-workload/new_ops/0-clients/fuse-upgrade.yaml
qa/suites/fs/upgrade/upgraded_client/tasks/2-workload/new_ops/0-clients/kclient.yaml
qa/suites/fs/upgrade/upgraded_client/tasks/2-workload/new_ops/1-client-sanity.yaml
qa/suites/fs/upgrade/upgraded_client/tasks/2-workload/new_ops/newops.yaml
qa/suites/fs/upgrade/upgraded_client/tasks/2-workload/stress_tests/1-tests/blogbench.yaml
qa/suites/fs/upgrade/upgraded_client/tasks/2-workload/stress_tests/1-tests/dbench.yaml
qa/suites/fs/upgrade/upgraded_client/tasks/2-workload/stress_tests/1-tests/fsstress.yaml
qa/suites/fs/upgrade/upgraded_client/tasks/2-workload/stress_tests/1-tests/iozone.yaml
qa/suites/fs/upgrade/upgraded_client/tasks/2-workload/stress_tests/1-tests/kernel_untar_build.yaml
qa/suites/fs/upgrade/upgraded_client/tasks/2-workload/stress_tests/blogbench.yaml
qa/suites/fs/upgrade/upgraded_client/tasks/2-workload/stress_tests/dbench.yaml
qa/suites/fs/upgrade/upgraded_client/tasks/2-workload/stress_tests/fsstress.yaml
qa/suites/fs/upgrade/upgraded_client/tasks/2-workload/stress_tests/iozone.yaml
qa/suites/fs/upgrade/upgraded_client/tasks/2-workload/stress_tests/kernel_untar_build.yaml
qa/suites/fs/upgrade/upgraded_client/tasks/3-workload/new_ops/0-clients/kclient.yaml
qa/suites/fs/upgrade/upgraded_client/tasks/3-workload/new_ops/1-client-sanity.yaml
qa/suites/fs/upgrade/upgraded_client/tasks/3-workload/stress_tests/1-tests/blogbench.yaml
qa/suites/fs/upgrade/upgraded_client/tasks/3-workload/stress_tests/1-tests/dbench.yaml
qa/suites/fs/upgrade/upgraded_client/tasks/3-workload/stress_tests/1-tests/fsstress.yaml
qa/suites/fs/upgrade/upgraded_client/tasks/3-workload/stress_tests/1-tests/iozone.yaml
qa/suites/fs/upgrade/upgraded_client/tasks/3-workload/stress_tests/1-tests/kernel_untar_build.yaml
qa/suites/rbd/device/workloads/.qa

(cherry picked from commit 1a2e3638911d512c6fc65fcb64ecc3a869a465ad)

15 months agotests: make sure nvmetcli and nvme-cli are up to date
Guillaume Abrioux [Wed, 26 Jun 2024 10:35:43 +0000 (10:35 +0000)]
tests: make sure nvmetcli and nvme-cli are up to date

Otherwise jobs end up with the following failure:

```
2024-06-25T14:22:18.659 INFO:teuthology.orchestra.run.smithi098.stderr:Failed to write to /dev/nvme-fabrics: Invalid argument
```

Also, the output of nvme list has changed so we have to update
qa/tasks/nvme_loop.py accordingly.

Fixes: https://tracker.ceph.com/issues/66707
Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>
(cherry picked from commit d707c41eacb513bdcb9fec17c823bfbfdc182700)
(cherry picked from commit 1138d6b17075748e6a98b123ab40351919df473f)

15 months agoqa/rgw/upgrade/pacific: remove centos_8.stream.yaml and rely on ubuntu_20.04.yaml
Casey Bodley [Wed, 26 Jun 2024 16:11:10 +0000 (12:11 -0400)]
qa/rgw/upgrade/pacific: remove centos_8.stream.yaml and rely on ubuntu_20.04.yaml

we can't test this pacific->reef upgrade path on centos because pacific doesn't
have centos 9 builds, and reef no longer has centos 8 builds. only test
this upgrade on ubuntu focal which is still supported for both releases

this commit targets the reef branch directly because this rgw/upgrade/pacific
suite no longer exists on main and squid branches

Signed-off-by: Casey Bodley <cbodley@redhat.com>
(cherry picked from commit e7e2617541852de55093e5689cde7db6b6ed9112)

15 months agoqa/distros: removed rhel 8 from supported distros
Casey Bodley [Wed, 20 Sep 2023 14:19:00 +0000 (10:19 -0400)]
qa/distros: removed rhel 8 from supported distros

Signed-off-by: Casey Bodley <cbodley@redhat.com>
(cherry picked from commit 7a1dce1ebd883741b5003b9e18d4765526cbbb3e)
(cherry picked from commit 6bff0eda850b8d7cd1d815328373c1eeff412f13)

15 months agoqa/crimson-rados: remove centos 8 symlinks
Adam King [Fri, 14 Jun 2024 15:59:27 +0000 (11:59 -0400)]
qa/crimson-rados: remove centos 8 symlinks

As we're trying to drop centos 8 from the distros we
test on these symlinks are now dead and need to be
cleaned up. In main, there was no replacement for
these symlinks (it just relies on the
crimson-supposted-all-distro dir for its distro)
so I'm just removing them here.

Signed-off-by: Adam King <adking@redhat.com>
(cherry picked from commit 65fd8a574626e9ae63a4064802757d79f74b1b1a)

15 months agoqa/upgrade: make reef p2p parallel upgrade tests to use centos 9
Adam King [Tue, 11 Jun 2024 14:57:43 +0000 (10:57 -0400)]
qa/upgrade: make reef p2p parallel upgrade tests to use centos 9

Since we're no longer using centos 8 for tests after the removal
of the mirrors

Signed-off-by: Adam King <adking@redhat.com>
(cherry picked from commit 3d0919d29d9b314b27da1ad83773bf27f15b5783)

15 months agoqa/distros: add ubuntu 22.04 for containerized tests
Adam King [Fri, 7 Jun 2024 17:36:31 +0000 (13:36 -0400)]
qa/distros: add ubuntu 22.04 for containerized tests

Partial backport of 0fa3eb67387eaf403b5a6e716a81582949dcecf1
that adds the symlinks for the containerized tests to use
ubuntu 22.04 but leaves out the part dropping ubuntu 20.04

Signed-off-by: Adam King <adking@redhat.com>
(cherry picked from commit cbb70e37e6b7b82be5f69da6c35db057184b16e2)

15 months agoqa/distros: add supported-container-hosts for cephadm and upgrade suites
Casey Bodley [Thu, 25 Jan 2024 17:41:39 +0000 (12:41 -0500)]
qa/distros: add supported-container-hosts for cephadm and upgrade suites

Signed-off-by: Casey Bodley <cbodley@redhat.com>
(cherry picked from commit 849a58b0873154a6713b4c8d838634f13b0b806d)
(cherry picked from commit 9930b469170ce04602f857d212a6538bab3d55db)

15 months agoqa/workunits/cephadm: enable nodejs:18 on centos 9 stream
Laura Flores [Mon, 22 Jan 2024 20:52:58 +0000 (20:52 +0000)]
qa/workunits/cephadm: enable nodejs:18 on centos 9 stream

Signed-off-by: Laura Flores <lflores@ibm.com>
(cherry picked from commit a602e5f0e0e48c40fd728ae382502826ca354828)
(cherry picked from commit f19ee36410080a3c596fbcbf07308a338bb4066f)

15 months agoqa/cephadm: fix iscsi pids limit check for centos 9
Adam King [Mon, 11 Dec 2023 20:44:30 +0000 (15:44 -0500)]
qa/cephadm: fix iscsi pids limit check for centos 9

Centos 9 uses cgroups v2 which has a slightly
different file location for the pids.max. This commit
updates the test to also check the new location
so the test can pass on centos 9

Signed-off-by: Adam King <adking@redhat.com>
(cherry picked from commit 97efa97c2c72dba32774d0f105ae90462b93ac4e)
(cherry picked from commit e0e50da949147b41c685b90a884517fa6e187406)

15 months agoqa/cephadm: use quincy for add-repo test
Adam King [Mon, 11 Dec 2023 18:59:42 +0000 (13:59 -0500)]
qa/cephadm: use quincy for add-repo test

There are no centos 9 build for octopus, so if we
want to start testing on cnetos 9 as a distro we need
the add-repo test to be done on a newer release
for which there are actual builds

Signed-off-by: Adam King <adking@redhat.com>
(cherry picked from commit 80dc6ce72a2c209424698ce31549362e9148022f)
(cherry picked from commit b27c4e229187360461ba1dd81eb959676e690751)

15 months agoqa: remove container hosts install from centos 9 distros
Adam King [Thu, 30 Nov 2023 22:14:59 +0000 (17:14 -0500)]
qa: remove container hosts install from centos 9 distros

We needed the container-hosts version of podman on centos 8,
but there's no need to keep using it in centos 9

Additionally, changes from crun variants to runc variants since
crun is now the default container runtime on centos 9

Signed-off-by: Adam King <adking@redhat.com>
(cherry picked from commit c8873c6591d368e12907669c274fd3d6391e3f68)
(cherry picked from commit 1dbc8e4b6790b7d385d4df2b8a552bd2076026e7)

15 months agoqa/distos: remove rhel from podman and container-hosts
Casey Bodley [Mon, 9 Oct 2023 21:29:21 +0000 (17:29 -0400)]
qa/distos: remove rhel from podman and container-hosts

Signed-off-by: Casey Bodley <cbodley@redhat.com>
(cherry picked from commit 7193f76a1502de392af0b407db0073266f9bc9c8)
(cherry picked from commit 53d9a47d1b9d997e00761a7c720af97c768f53ee)

15 months agoqa/suites/fs: workload suite uses centos 9 instead of rhel
Casey Bodley [Mon, 9 Oct 2023 21:28:48 +0000 (17:28 -0400)]
qa/suites/fs: workload suite uses centos 9 instead of rhel

Signed-off-by: Casey Bodley <cbodley@redhat.com>
(cherry picked from commit b9ba9642fea18055e768c3ddee5ba5e372264ede)
(cherry picked from commit 1f9e19c373b93123c68a610325c88bb57b1c3822)

15 months agoqa/distros: bump podman from centos 8 to 9
Casey Bodley [Mon, 9 Oct 2023 21:25:13 +0000 (17:25 -0400)]
qa/distros: bump podman from centos 8 to 9

Signed-off-by: Casey Bodley <cbodley@redhat.com>
(cherry picked from commit 00b3eef5b846dee6e9aae1f1295271c89f2801e5)
(cherry picked from commit a2b5cc150d7e6b80da186ed162edde9ae59fb5bb)

15 months agoqa/distros: bump container-hosts from centos 8 to 9
Casey Bodley [Mon, 9 Oct 2023 21:22:10 +0000 (17:22 -0400)]
qa/distros: bump container-hosts from centos 8 to 9

Signed-off-by: Casey Bodley <cbodley@redhat.com>
(cherry picked from commit bac9e74abf0f5cb60c74640d6c4689169acf7abe)
(cherry picked from commit 78dead6e384f436cab2c763ea801966dea57100d)

15 months agoqa/distros: remove a-supported-distro.yaml that pointed to centos 7.2
Casey Bodley [Wed, 20 Sep 2023 19:55:54 +0000 (15:55 -0400)]
qa/distros: remove a-supported-distro.yaml that pointed to centos 7.2

Signed-off-by: Casey Bodley <cbodley@redhat.com>
(cherry picked from commit 3825863893a8577a306d70e171224f051d7e70ee)
(cherry picked from commit 030af009e996f46850fe92a342cf98f316ccc9ca)

15 months agoqa/distros: replace supported-all-distro with supported
Casey Bodley [Wed, 20 Sep 2023 19:55:05 +0000 (15:55 -0400)]
qa/distros: replace supported-all-distro with supported

Signed-off-by: Casey Bodley <cbodley@redhat.com>
(cherry picked from commit 0e5746d44ef44ba1c7e7c0c3c3828fdfc8b14fc2)
(cherry picked from commit 75f367c4937d1b670ab937cf826d221d4df840ff)

15 months agoqa/rgw/upgrade: fix broken links to distro files
Casey Bodley [Wed, 20 Sep 2023 16:03:43 +0000 (12:03 -0400)]
qa/rgw/upgrade: fix broken links to distro files

replace the broken links to qa/distros/supported/*.yaml with links under
qa/distros/all/

Signed-off-by: Casey Bodley <cbodley@redhat.com>
(cherry picked from commit a60978fc51fa45399fbab5f2ca408f771c607c6d)
(cherry picked from commit fde79ec969d1b51dd358f28d015bb78d388154ed)

15 months agoqa/fs/upgrade: fix broken links to distro files
Casey Bodley [Wed, 20 Sep 2023 16:00:48 +0000 (12:00 -0400)]
qa/fs/upgrade: fix broken links to distro files

replace the broken links to qa/distros/supported/centos_8.stream.yaml
with links under qa/distros/all/

Signed-off-by: Casey Bodley <cbodley@redhat.com>
(cherry picked from commit 7486856ba1259ff2c35f5017d12a21f797c869d1)
(cherry picked from commit 0efa15a19606a127bca6dfb4bcb60c829b690e02)

15 months agoqa/rgw/notifications: pin to centos_latest
Casey Bodley [Wed, 20 Sep 2023 15:11:37 +0000 (11:11 -0400)]
qa/rgw/notifications: pin to centos_latest

the subsuite had a supported-all-distro$/ subdirectory, but that only
contained centos_8.yaml. qa/tasks/rabbitmq.py is hardcoded to use 'yum'
and rpm packages, so replace supported-all-distro$ with a link to
centos_latest.yaml

Signed-off-by: Casey Bodley <cbodley@redhat.com>
(cherry picked from commit 2d9348ad564f9199ae58062c1d12b7020cba0790)
(cherry picked from commit 0f15fd37cbbb47485aeb5293ceda3d91c4ce181a)

15 months agoqa: ignore container checkpoint/restore related selinux denials for centos9
Venky Shankar [Mon, 4 Mar 2024 01:15:11 +0000 (06:45 +0530)]
qa: ignore container checkpoint/restore related selinux denials for centos9

Fixes: http://tracker.ceph.com/issues/64616
Signed-off-by: Venky Shankar <vshankar@redhat.com>
(cherry picked from commit 7a6389272affd04aab9ea88352ac0791dc472480)

 Conflicts:
qa/distros/podman/centos_9.stream.yaml

Adjust for missing centos_9.stream podman distro.

(cherry picked from commit 0418aba03e9802250d686a31d2795234f2ce88b7)

15 months agoqa: use allowlist instead of whitelist for selinux denials
Venky Shankar [Mon, 4 Mar 2024 01:09:06 +0000 (06:39 +0530)]
qa: use allowlist instead of whitelist for selinux denials

https://github.com/ceph/teuthology/pull/1757 introduced this change,
however, qa/distros continued to use `whitelist' keyword.

Signed-off-by: Venky Shankar <vshankar@redhat.com>
(cherry picked from commit 71c9fe55d6a4ba3dbff166c155cc74d485f75330)

 Conflicts:
qa/distros/container-hosts/centos_9.stream.yaml
qa/distros/container-hosts/centos_9.stream_runc.yaml
qa/distros/podman/centos_9.stream.yaml

Adjust for missing centos_9[.stream] distros and other distros
which are present for release.

(cherry picked from commit c86a45dc833193de1904b6a7f64824c8df6e2b8a)

16 months agomon: validate SERVER_REEF on set-require-min-compat-client
Radoslaw Zarzynski [Thu, 30 May 2024 08:44:54 +0000 (08:44 +0000)]
mon: validate SERVER_REEF on set-require-min-compat-client

Unit testing
-------------
```
[rzarzynski@o06 build]$ bin/unittest_features
...
[ RUN      ] features.release_features
1 argonaut features 0x40000 looks like argonaut
2 bobtail features 0x40000 looks like argonaut
3 cuttlefish features 0x40000 looks like argonaut
4 dumpling features 0x42040000 looks like dumpling
5 emperor features 0x42040000 looks like dumpling
6 firefly features 0x20842040000 looks like firefly
7 giant features 0x20842040000 looks like firefly
8 hammer features 0x1020842040000 looks like hammer
9 infernalis features 0x1020842040000 looks like hammer
10 jewel features 0x401020842040000 looks like jewel
11 kraken features 0xc01020842040000 looks like kraken
12 luminous features 0xe01020842240000 looks like luminous
13 mimic features 0xe01020842240000 looks like luminous
14 nautilus features 0xe01020842240000 looks like luminous
15 octopus features 0xe01020842240000 looks like luminous
16 pacific features 0xe01020842240000 looks like luminous
17 quincy features 0xe01020842240000 looks like luminous
18 reef features 0xe010208d2240000 looks like reef
19 squid features 0xe010208d2240000 looks like reef
[       OK ] features.release_features (0 ms)
```

Manual testing
--------------
\### 'quincy` client connected to `main` cluster
There was `ceph -w` from `quincy` running in the background.

```
[rzarzynski@o06 build]$ bin/ceph osd set-require-min-compat-client reef
Error EPERM: cannot set require_min_compat_client to reef: 1 connected client(s) look like luminous (missing 0x80000000); add --yes-i-really-mean-it to do it anyway
```

\### Only `main` clients connected to `main` cluster
```
[rzarzynski@o06 build]$ bin/ceph osd get-require-min-compat-client
luminous
[rzarzynski@o06 build]$ bin/ceph daemon mon.a sessions | jq  -jr '.[] | .name, "\t", .con_features, "\t", .con_features_hex, "\n"' | grep client
client.?        4540701547738038271     3f03cffffffdffff
client.?        4540701547738038271     3f03cffffffdffff
[rzarzynski@o06 build]$ bin/ceph osd set-require-min-compat-client reef
set require_min_compat_client to reef
```

Fixes: https://tracker.ceph.com/issues/61948
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
(cherry picked from commit 4d74ff6327ebdc7deb44737cac08125204b2fec6)

(cherry picked from commit 70adcbbc3afadec0b194ae1d7e9833d1c569bce9)

16 months agomon, osd, *: expose upmap-primary in OSDMap::get_features()
Radoslaw Zarzynski [Mon, 27 May 2024 16:58:07 +0000 (16:58 +0000)]
mon, osd, *: expose upmap-primary in OSDMap::get_features()

This is a minimal fix to ensure only peers understanding
`pg-upmap-primary` are able to connect, and thus to exclude
the possibility of running into the `pg_upmap_primaries.empty()`
assertion in encoders.

Fixes for other problems will follow up.

The intention is to ship this patch in the very next minor
release of reef.

Manual testing
--------------

\### start using upmap-primar is presence of `quincy` client
NOTE: incompatible clients aren't disconnected but this is
known and expected as we lack the machinery.

```
[rzarzynski@o06 build]$ bin/ceph osd get-require-min-compat-client
reef
[rzarzynski@o06 build]$ bin/ceph daemon mon.a sessions | jq  -jr '.[] | .name, "\t", .con_features, "\t", .con_features_hex, "\n"' | grep client
client.?        4540701547738038271     3f03cffffffdffff
client.?        4540138320759226367     3f01cfbf7ffdffff
[rzarzynski@o06 build]$ bin/ceph osd pool create test_pool 1 1
pool 'test_pool' created
[rzarzynski@o06 build]$ bin/ceph osd pg-upmap-primary 1.0 2
change primary for pg 1.0 to osd.2
[rzarzynski@o06 build]$ bin/ceph daemon mon.a sessions | jq  -jr '.[] | .name, "\t", .con_features, "\t", .con_features_hex, "\n"' | grep client
client.?        4540701547738038271     3f03cffffffdffff
client.?        4540138320759226367     3f01cfbf7ffdffff
```

\### `main` client is still able to connect
```
[rzarzynski@o06 build]$ bin/ceph -w
  cluster:
    id:     d570a7cd-84ca-4fd0-aafb-80138762c6af
    health: HEALTH_WARN
            11 mgr modules have failed dependencies
            1 pool(s) do not have an application enabled

  services:
    mon: 1 daemons, quorum a (age 64m)
    mgr: x(active, since 64m)
    osd: 3 osds: 3 up (since 64m), 3 in (since 64m)

  data:
    pools:   1 pools, 1 pgs
    objects: 0 objects, 0 B
    usage:   3.0 GiB used, 300 GiB / 303 GiB avail
    pgs:     1 active+clean
```

\### `quincy` client is refused
```
[rzarzynski@o06 build-quincy]$ bin/ceph -s -c /home/rzarzynski/ceph2/build/ceph.conf
2024-05-30T08:59:42.411+0000 7f0911a9b700 -1 --2- 127.0.0.1:0/2812481872 >> [v2:127.0.0.1:40536/0,v1:127.0.0.1:40537/0] conn(0x7f090c111500 0x7f090c1118f0 secure :-1 s=SESSION_CONNECTING pgs=0 cs=0 l=0 rev1=1 crypto rx=0x7f08fc0048c0 tx=0x7f08fc009e30 comp rx=0 tx=0).handle_ident_missing_features client does not support all server features: 80000000
2024-05-30T08:59:42.612+0000 7f0911a9b700  0 --2- 127.0.0.1:0/2812481872 >> [v2:127.0.0.1:40536/0,v1:127.0.0.1:40537/0] conn(0x7f090c111500 0x7f090c1118f0 unknown :-1 s=AUTH_CONNECTING pgs=0 cs=0 l=0 rev1=1 crypto rx=0 tx=0 comp rx=0 tx=0).send_auth_request get_initial_auth_request returned -2
```

\### stop using upmap-primary
```
[rzarzynski@o06 build]$ bin/ceph osd rm-pg-upmap-primary 1.0
clear 1.0 pg_upmap_primary mapping
```

\### `quincy` client may connect again
```
[rzarzynski@o06 build-quincy]$ bin/ceph -s -c /home/rzarzynski/ceph2/build/ceph.conf
  cluster:
    id:     d570a7cd-84ca-4fd0-aafb-80138762c6af
    health: HEALTH_WARN
            11 mgr modules have failed dependencies
            1 pool(s) do not have an application enabled

  services:
    mon: 1 daemons, quorum a (age 77m)
    mgr: x(active, since 77m)
    osd: 3 osds: 3 up (since 76m), 3 in (since 76m)

  data:
    pools:   1 pools, 1 pgs
    objects: 0 objects, 0 B
    usage:   3.0 GiB used, 300 GiB / 303 GiB avail
    pgs:     1 active+clean

```

Fixes: https://tracker.ceph.com/issues/61948
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
(cherry picked from commit 5dbb7c4b12707b9c6d1334055cdd9dd820ffc1a6)

Conflicts:
src/osd/OSDMap.cc -- reef lacks MSR

(cherry picked from commit 9fb3902fc371568b28f85d53bd9560974766825b)

17 months agocmake/arrow: don't treat warnings as errors
Casey Bodley [Wed, 24 Jan 2024 14:44:25 +0000 (09:44 -0500)]
cmake/arrow: don't treat warnings as errors

with arrow's default BUILD_WARNING_LEVEL, -Werror is added to cflags and
debug builds fail on a warning about _FORTIFY_SOURCE

Fixes: https://tracker.ceph.com/issues/63130
Signed-off-by: Casey Bodley <cbodley@redhat.com>
(cherry picked from commit 5c1a57a1afed1e4a632fb6df6de34ff9689460db)
(cherry picked from commit 7ecee431f6f3499730c5425b9b2930df8d61c159)

17 months agoceph.spec.in: remove command-with-macro line
John Mulligan [Fri, 29 Mar 2024 18:04:33 +0000 (14:04 -0400)]
ceph.spec.in: remove command-with-macro line

A comment clearly left as a breadcrumb for a node-proxy manpage is
causing (intermittent) build failures. Remove the line and hope
the manpage is added if/when appropriate.

Fixes: 0dd73643649ddc2366e60de4fe6c078b6e112091
Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit 5f25005dfbff51531989d121f26ecae308409356)
(cherry picked from commit a75e4b669fff6de47c24a3fa701b5302d86c7725)

17 months agoreef: qa: do not use `fs authorize` for two fs
Patrick Donnelly [Thu, 9 May 2024 01:38:56 +0000 (21:38 -0400)]
reef: qa: do not use `fs authorize` for two fs

This support was only recently added in squid.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
(cherry picked from commit 62328dfdf7aa834e5086080a7312b45439c2ebdf)

17 months agoPendingReleaseNotes: add note on the client incompatibility health warning and featur...
Patrick Donnelly [Fri, 3 May 2024 00:45:43 +0000 (20:45 -0400)]
PendingReleaseNotes: add note on the client incompatibility health warning and feature bit

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
(cherry picked from commit e70f005f1b2f4ba5466d254ec4a6432297d3fbf4)
(cherry picked from commit 6a6aca8ad879e5fb9a08b23c6641903e40751e0a)

17 months agodoc/cephfs: add client_mds_auth_caps client feature bit
Patrick Donnelly [Fri, 3 May 2024 00:46:17 +0000 (20:46 -0400)]
doc/cephfs: add client_mds_auth_caps client feature bit

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
(cherry picked from commit 536b47cbfc669b5a3f04d93964408a2258d05ad0)
(cherry picked from commit cee4b62da42f0026220e6b8a4c3d92ec2c582b65)

17 months agodoc/cephfs: add missing client feature bits
Patrick Donnelly [Fri, 3 May 2024 00:38:19 +0000 (20:38 -0400)]
doc/cephfs: add missing client feature bits

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
(cherry picked from commit 79ba8970d7cbc714e160d5957bd849eede93e5a3)
(cherry picked from commit e6f24a3e59fe44c2f52a77c2787c5da369c9e464)

17 months agodoc/cephfs: document MDS_CLIENTS_BROKEN_ROOTSQUASH health error
Patrick Donnelly [Thu, 2 May 2024 23:33:50 +0000 (19:33 -0400)]
doc/cephfs: document MDS_CLIENTS_BROKEN_ROOTSQUASH health error

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
(cherry picked from commit b810bc9c54515b69aefffb36f1a47235b3c9125d)
(cherry picked from commit 2f6dff5e5e80d5376d04897bbae72b7055a3b05b)

17 months agoqa: add tests for MDS_CLIENTS_BROKEN_ROOTSQUASH
Patrick Donnelly [Fri, 3 May 2024 00:52:29 +0000 (20:52 -0400)]
qa: add tests for MDS_CLIENTS_BROKEN_ROOTSQUASH

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
(cherry picked from commit 9d0ab233d822668e88c873bc1314e984feaf1296)
(cherry picked from commit 86fb2fa006f47a9792279895ffd00cb2cfdecc6e)

17 months agomds: raise health warning if client lacks feature for root_squash
Patrick Donnelly [Fri, 3 May 2024 00:50:37 +0000 (20:50 -0400)]
mds: raise health warning if client lacks feature for root_squash

Rather than evict all clients lacking this feature bit, raise a health error
that pushes the administrator to address it. This avoids the surprise of having
all affected clients suddenly evicted in the cluster.

Fixes: https://tracker.ceph.com/issues/65733
Fixes: 954ed30
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
(cherry picked from commit 66ff5c9fc8d4664f18b2fa462e96e5548c35951f)

Conflicts:
src/messages/MMDSBeacon.h: missing health beacon type
(cherry picked from commit 480b2cb199e6c933930ece59a3eca9c4cdf29c50)