Commit Graph

1628 Commits

Author SHA1 Message Date
Zack Cerza
64c9b53cf4 ceph.spec.in: Add option to enable sccache
Signed-off-by: Zack Cerza <zack@redhat.com>
2024-11-07 15:21:32 -07:00
Zack Cerza
681a75e949
Merge pull request #60577 from zmc/rpm-dwz-toggle 2024-11-04 15:26:27 -07:00
Zack Cerza
88deedee94 ceph.spec.in: Add an option to disable dwz
We disabled dwz in 2017, then re-enabled it in 2021. In my tests I observe dwz
adding about 50% to build times in exchange for 33% space-saving.

Signed-off-by: Zack Cerza <zack@redhat.com>
2024-11-01 10:20:31 -06:00
Ernesto Puerta
8ccb634804
mgr/zabbix: remove deprecated module
This (already deprecated) module is removed as a side-effect of the
deprecation and removal of the `restful` module.

Fixes: https://tracker.ceph.com/issues/47066
Signed-off-by: Ernesto Puerta <epuertat@redhat.com>
2024-10-28 14:17:19 +01:00
Ernesto Puerta
96ec7badb8
mgr/restful: remove deprecated module
Detailed changes:
* Remove `restful` mgr module dir,
* Remove Python depedencies (`pecan`, `werkzeug`) from ceph.spec and
  debian control,
* Remove docs,
* Remove associated QA tests,
* Update vstart.

Fixes: https://tracker.ceph.com/issues/47066
Signed-off-by: Ernesto Puerta <epuertat@redhat.com>
2024-10-28 14:17:18 +01:00
Venky Shankar
bd51dcf955
Merge pull request #59858 from anoopcs9/fix-unversioned-obsoletes
ceph.spec.in: Fix unversioned Obsoletes: rpmbuild warning

Reviewed-by: Venky Shankar <vshankar@redhat.com>
2024-09-24 11:52:56 +05:30
Kefu Chai
1b5d7fb8ef
Merge pull request #59640 from kshtsk/wip-jsonnetfmt-command-not-found
ceph.spec.in: we need jsonnet for all distroes for make check

Reviewed-by: Deepika Upadhyay <dupadhya@redhat.com>
Reviewed-by: Kefu Chai <tchaikov@gmail.com>
2024-09-24 07:20:46 +08:00
Anoop C S
afd2759680 ceph.spec.in: Fix unversioned Obsoletes: rpmbuild warning
Fix the following warning while building source rpm with `rpmbuild`:

warning: line 1187: It's not recommended to have
  unversioned Obsoletes: Obsoletes: ceph-libcephfs

Signed-off-by: Anoop C S <anoopcs@cryptolab.net>
2024-09-18 18:05:30 +05:30
Kyr Shatskyy
e7139a8f43 ceph.spec.in: we need jsonnet for all distroes for make check
Fixes: https://tracker.ceph.com/issues/67938

Signed-off-by: Kyr Shatskyy <kyrylo.shatskyy@clyso.com>
2024-09-06 15:26:25 +02:00
Effi Ofer
dc8eed68ce librbd/migration: add nbd stream
Co-authored-by: Ilya Dryomov <idryomov@gmail.com>
Signed-off-by: Effi Ofer <effio@il.ibm.com>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
2024-09-06 14:14:12 +02:00
Casey Bodley
7e465c9ab3
Merge pull request #58336 from Svelar/uadk
Compressor: add UADK support

Reviewed-by: Brad Hubbard <bhubbard@redhat.com>
Reviewed-by: Casey Bodley <cbodley@redhat.com>
Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
2024-08-23 10:32:47 -04:00
Guillaume Abrioux
e96b6cf068
Merge pull request #59204 from tchaikov/wip-ceph-volume-deps
ceph-volume: add "packaging" to install_requires
2024-08-22 15:54:53 +02:00
Matan Breizman
d6c51a7221 ceph.spec.in: spec files comments
```
RPM build errors:
    extra tokens at the end of %else directive in line 118:  %else # not fedora/rhel

    extra tokens at the end of %else directive in line 121:  %else # not x86_64
```

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
2024-08-14 09:56:25 +00:00
Kefu Chai
729fd8e25f ceph-volume: add "packaging" to install_requires
in 0985e201, "packaging" was introduced as a runtime dependency of
ceph-volume, and `ceph.spec.in` was updated accordingly to note
this new dependency. but the debian packaging was not updated.

in 80edcd40, the missing dependency was added to debian/control as
one of ceph-volume's runtime dependency.

but dh_python3 is able to figure out the dependencies by reading
the egg's metadata of the ceph-volume python module. and as a
python project, ceph-volume is using its `setup.py` for
tracking its dependencies.

so in order to be more consistent, and keep all of its dependencies
in one place, let's move this dependency to setup.py . as the
packagings in both distros are able to figure the dependencies
from egg-info.

see also
- https://manpages.debian.org/testing/dh-python/dh_python3.1.en.html#dependencies
- https://docs.fedoraproject.org/en-US/packaging-guidelines/Python_201x/#_automatically_generated_dependencies

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2024-08-14 07:04:00 +08:00
Rongqi Sun
e93c7e09fa uadk: move numactl dependency
Signed-off-by: Rongqi Sun <sunrongqi@huawei.com>
2024-08-12 18:18:57 +08:00
Leonid Chernin
5843c6b04b mon: add NVMe-oF gateway monitor and HA
- gateway submodule

Fixes: https://tracker.ceph.com/issues/64777

This PR adds high availability support for the nvmeof Ceph service. High availability means that even in the case that a certain GW is down, there will be another available path for the initiator to be able to continue the IO through another GW. High availability is achieved by running nvmeof service consisting of at least 2 nvmeof GWs in the Ceph cluster. Every GW will be seen by the host (initiator) as a separate path to the nvme namespaces (volumes).

The implementation consists of the following main modules:

- NVMeofGWMon - a PaxosService. It is a monitor that tracks the status of the nvmeof running services, and take actions in case that services fail, and in case services restored.
- NVMeofGwMonitorClient – It is an agent that is running as a part of each nvmeof GW. It is sending beacons to the monitor to signal that the GW is alive. As a part of the beacon, the client also sends information about the service. This information is used by the monitor to take decisions and perform some operations.
- MNVMeofGwBeacon – It is a structure used by the client and the monitor to send/recv the beacons.
- MNVMeofGwMap – The map is tracking the nvmeof GWs status. It also defines what should be the new role of every GW. So in the events of GWs go down or GWs restored, the map will reflect the new role of each GW resulted by these events. The map is distributed to the NVMeofGwMonitorClient on each GW, and it knows to update the GW with the required changes.

It is also adding 3 new mon commands:
- nvme-gw create
- nvme-gw delete
- nvme-gw show

The commands are used by the ceph adm to update the monitor that a new GW is deployed. The monitor will update the map accordingly and will start tracking this GW until it is deleted.

Signed-off-by: Leonid Chernin <lechernin@gmail.com>
Signed-off-by: Alexander Indenbaum <aindenba@redhat.com>
2024-07-31 08:50:10 +00:00
Kefu Chai
6c76fb28f7 ceph.spec.in: remove setuptools dependency
in 844b66de, we stopped using pkg_resources for import packaging.
and the exact reason why we introduced pkg_resources was for using
the packaging python module, see cf608920.

so, let's partially revert cf608920.

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2024-06-02 16:55:29 +08:00
Kefu Chai
844b66de41 mgr/prometheus: s/pkg_resources.packaging/packaging/
instead of relying on the internal implementation of pkg_resources,
let's import packaging directly.

in this change, we also add the dependency to the packaging module
in the packaging recipes.

See also https://github.com/pypa/setuptools/issues/4385

Fixes https://tracker.ceph.com/issues/66201
Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2024-05-25 15:22:32 +08:00
Nizamudeen A
1323848e22
Merge pull request #57145 from ktdreyer/rm-dashboard-werkzeug
ceph.spec.in: ceph-mgr-dashboard does not require werkzeug

Reviewed-by: Nizamudeen A <nia@redhat.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
2024-05-03 11:00:18 +05:30
Ken Dreyer
461c4b167e ceph.spec.in: ceph-mgr-dashboard does not require werkzeug
Nothing in the dashboard codebase imports werkzeug. It appears this was
leftover from the time when the dashboard was packaged with the rest of
the mgr modules.

Fixes: https://tracker.ceph.com/issues/65693

Signed-off-by: Ken Dreyer <kdreyer@ibm.com>
2024-04-30 09:19:38 -04:00
John Mulligan
d141ce597d ceph.spec.in: add smb module and python-dataclasses dependency
The only distro ceph squid+ is building for at the moment that does not
already have a python version that includes dataclasses is centos/rhel
8. Add a dependency for the backport package on rhel8.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
2024-04-25 19:10:39 -04:00
Yuri Weinstein
499fd19382
Merge pull request #56067 from myoungwon/wip-ceph-dedup-daemon
tool: separating ceph-dedup-tool into tool and daemon  

Reviewed-by: Samuel Just <sjust@redhat.com>
2024-04-23 16:35:03 -07:00
Laura Flores
43b8639572
Merge pull request #54979 from pdvian/wip-mgr-optracker
mgr: integrate optracker in ceph-mgr
2024-04-23 17:49:04 -05:00
John Mulligan
5f25005dfb 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: 0dd7364364
Signed-off-by: John Mulligan <jmulligan@redhat.com>
2024-03-29 14:07:05 -04:00
Prashant D
66efcaae7a mgr: integrate optracker in ceph-mgr
Signed-off-by: Prashant D <pdhange@redhat.com>
Signed-off-by: Michael J. Kidd <linuxkidd@gmail.com>
2024-03-25 17:01:05 -04:00
Samuel Just
dbfb661eb9
Merge pull request #55886 from tchaikov/wip-ceph.spec-gcc-13
ceph.spec.in: bump gcc-toolset to 13 and use it on rhel>=8

Reviewed-by: Samuel Just <sjust@redhat.com>
Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
2024-03-21 14:24:39 -07:00
Yuri Weinstein
bf30425f5e
Merge pull request #55409 from cybozu/add-ceph-exporter-to-deb-package
debian: add ceph-exporter package

Reviewed-by: Kefu Chai <tchaikov@gmail.com>
Reviewed-by: Avan Thakkar <athakkar@redhat.com>
Reviewed-by: Juan Miguel Olmo Martínez <jolmomar@redhat.com>
2024-03-20 08:40:57 -07:00
Dan Mick
d3f3b0784c
Merge pull request #56203 from athanatos/sjust/wip-protoc-dependencies
crimson: add crimson-osd rpm and deb runtime dependencies for protobuf inherited from seastar
2024-03-19 16:03:00 -07:00
Adam King
920886ac64
Merge pull request #55615 from rhcs-dashboard/grafana-mount-dashboards
mgr/cephadm: mount grafana dashboards from the path

Reviewed-by: Adam King <adking@redhat.com>
Reviewed-by: Pedro Gonzalez Gomez <pegonzal@redhat.com>
2024-03-19 10:03:16 -04:00
Samuel Just
57602aad35 ceph.spec.in: add runtime protobuf dependency for crimson-osd inherited from seastar
Signed-off-by: Samuel Just <sjust@redhat.com>
2024-03-14 13:52:51 -07:00
Kefu Chai
913d127c81 ceph.spec.in: use gcc-toolset when with seastar or rhel 8
both RHEL8 and RHEL9 have gcc-toolset 13, and we need to use gts-13
for building crimson, so let's enable it when building crimson,
and we need to use gts-11 when building on RHEL7. hence this change.

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2024-03-11 18:28:17 +08:00
Kefu Chai
55da694632 ceph.spec.in: use gcc-toolset 13 for crimson build
since gts 13 is out, and GCC-13 brings better support of C++20 coroutines,
and because clang prefers using a newer gts when its gcc is around. so
let's bump up the gcc-toolset from 11 to 13 when building crimson. because
gcc-toolset-13 LTO triggers a linker bug resulting in a segfault in SafeTimer,
see https://tracker.ceph.com/issues/63867 , we cannot switch the classic
build to gts 13 without proving that it does not incur performance
regressions.

since annobin plugin package was renamed to
gcc-toolset-13-gcc-plugin-annobin, let's update its name accordingly.

and use -runtime subpackage instead of -build, as
macros.gcc-toolset-13-enable is now located in -runtime subpackage
since devtoolset12

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2024-03-11 18:28:17 +08:00
Samuel Just
a164f5f6d8 ceph.spec.in: disable lto to work around gcc-toolset-13 linker bug
gcc-toolset-13 lto can trigger a linker bug resulting in a segfault in
SafeTimer (and perhaps elsewhere).  See
https://tracker.ceph.com/issues/63867 for details.  This patch disables
lto for now now so that we can switch to gcc-toolset-13.

Fixes: https://tracker.ceph.com/issues/63867
Signed-off-by: Samuel Just <sjust@redhat.com>
2024-03-11 18:28:17 +08:00
myoungwon oh
42b5a3579d tool/ceph_dedup: split ceph_dedup_tool into ceph_dedup_tool and ceph_dedup_daemon
Signed-off-by: Myoungwon Oh <myoungwon.oh@samsung.com>
2024-03-11 02:57:25 +00:00
Kefu Chai
f5f2e4cc10 ceph.spec.in: set CMAKE_EXE_LINKER_FLAGS to -lstdc++
because the gcc-toolset-13 always links against the `libstdc++_nonshared.a`, which misses the
simple symbols. so we have to link against libstdc++ explicitly to assure that the
executables have access to them when compiling with the gcc-toolset toolchain.

see
```
/opt/rh/gcc-toolset-13/root/usr/bin/c++ -O2  -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -rdynamic -pie CMakeFiles/ceph_scratchtool.dir/scratchtool.c.o -o ../../bin/ceph_scratchtool  -Wl,-rpath,/home/jenkins-build/build/workspace/ceph-dev-new-build/ARCH/x86_64/AVAILABLE_ARCH/x86_64/AVAILABLE_DIST/centos9/DIST/centos9/MACHINE_SIZE/gigantic/release/19.0.0-1977-gb0c1f7e8/rpm/el9/BUILD/ceph-19.0.0-1977-gb0c1f7e8/redhat-linux-build/lib: ../../lib/librados.so.2.0.0 ../../lib/libglobal.a ../../lib/libceph-common.so.2 ../../lib/libjson_spirit.a ../../lib/libcommon_utf8.a ../../lib/liberasure_code.a ../../lib/libextblkdev.a -lcap ../../boost/lib/libboost_thread.a ../../boost/lib/libboost_chrono.a ../../boost/lib/libboost_atomic.a ../../boost/lib/libboost_system.a ../../boost/lib/libboost_random.a ../../boost/lib/libboost_program_options.a ../../boost/lib/libboost_date_time.a ../../boost/lib/libboost_iostreams.a ../../boost/lib/libboost_regex.a /usr/lib64/libblkid.so /usr/lib64/libcrypto.so /usr/lib64/libudev.so /usr/lib64/libibverbs.so /usr/lib64/librdmacm.so /usr/lib64/libz.so ../opentelemetry-cpp/sdk/src/trace/libopentelemetry_trace.a ../opentelemetry-cpp/sdk/src/resource/libopentelemetry_resources.a ../opentelemetry-cpp/sdk/src/common/libopentelemetry_common.a ../opentelemetry-cpp/exporters/jaeger/libopentelemetry_exporter_jaeger_trace.a ../opentelemetry-cpp/ext/src/http/client/curl/libopentelemetry_http_client_curl.a /usr/lib64/libcurl.so /usr/lib64/libthrift.so -ldl /usr/lib64/librt.a -lresolv  -Wl,--as-needed -latomic
/opt/rh/gcc-toolset-13/root/usr/libexec/gcc/x86_64-redhat-linux/13/ld: /opt/rh/gcc-toolset-13/root/usr/lib/gcc/x86_64-redhat-linux/13/libstdc++_nonshared.a(ios_init.o): undefined reference to symbol '_ZNSt8ios_base4InitD1Ev@@GLIBCXX_3.4'
/opt/rh/gcc-toolset-13/root/usr/libexec/gcc/x86_64-redhat-linux/13/ld:
/usr/lib64/libstdc++.so.6: error adding symbols: DSO missing from command line
```

this change prepares us for switching to gts-13.

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2024-03-11 09:53:39 +08:00
Kefu Chai
c8e37d1c6f ceph.spec.in: use gts_version instead of gts_prefix
since we are going to use different gcc-toolset versions on rhel8 and
on rhel9, and the subpackage names of gcc-toolset changed across
gts 11 and gts 13, let's prepare for this change.

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2024-03-11 09:48:36 +08:00
Nizamudeen A
2a112acd0a mgr/cephadm: mount grafana dashboards from the path
For this, the grafana dashboards are installed directly to the
containers and later, cephadm picks it up to mount the dashboards to the
grafana container

Signed-off-by: Nizamudeen A <nia@redhat.com>
2024-03-08 15:51:08 +05:30
Casey Bodley
25ce4845f5 rpm: disable system_qat for non-x86_64 arch
Fixes: https://tracker.ceph.com/issues/64678

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2024-03-06 09:25:23 -05:00
Shinya Hayashi
32cbe079c6 systemd: add systemd unit file for ceph-exporter
Signed-off-by: Shinya Hayashi <shinya-hayashi@cybozu.co.jp>
2024-03-06 07:24:15 +00:00
Casey Bodley
7710719dec rpm: add system_qat option, default on for centos9
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2024-02-07 11:13:21 -05:00
Matan Breizman
31717ac36c
Merge pull request #55444 from Matan-B/wip-crimson-seastar-upgrade
Crimson: bump up seastar version 

Reviewed-by: Samuel Just <sjust@redhat.com>
2024-02-07 11:38:45 +02:00
Matan Breizman
d49990f246 ceph.spec.in: crimson add protobuf
Following eea4102091

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
2024-02-06 15:49:08 +00:00
Adam Kupczyk
b5bae62c00
Merge pull request #55054 from pereman2/zns-remove
os/bluestore: remove zoned namespace support
It has never been finished and now its in the way of future improvements.
2024-02-06 15:32:48 +01:00
baum
3cb0412e26
Merge pull request #55330 from baum/centos9-install-build-deps
🧹build dependencies: centos9
2024-02-02 09:54:28 +02:00
Adam King
a4452f6cc4
Merge pull request #54742 from guits/node-proxy
orch: implement hardware monitoring

Reviewed-by: Juan Miguel Olmo Martínez <jolmomar@redhat.com>
2024-01-31 13:28:50 -05:00
Nizamudeen A
538f94cf16 vstart: add nvmeof_gw to the vstart script
so that it can be later used by the dashboard to configure the nvmeof
through UI

and create rbd pool in UI

Fixes: https://tracker.ceph.com/issues/64201
Signed-off-by: Nizamudeen A <nia@redhat.com>
2024-01-31 12:46:11 +05:30
Nizamudeen A
35e40c4e8f mgr/dashboard: adapt to new nvmeof APIs
Fixes: https://tracker.ceph.com/issues/64201
Signed-off-by: Nizamudeen A <nia@redhat.com>
2024-01-30 15:39:35 +05:30
Guillaume Abrioux
0985e20134 ceph-volume: use 'no workqueue' options with dmcrypt
CloudFlare engineers made some testing and realized that using
workqueues with encryption on flash devices has a bad effect.

See [1] for details.

With this patch it will make ceph-volume call crypsetup with
`--perf-no_read_workqueue` and `--perf-no_write_workqueue` options
when the device is not a rotational.

[1] https://blog.cloudflare.com/speeding-up-linux-disk-encryption/

Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>
Co-Authored-by: Stefan Kooman <stefan@kooman.org>
Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>
2024-01-26 22:05:30 +01:00
Alexander Indenbaum
11a37da053 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>
2024-01-26 19:56:31 +00:00
Guillaume Abrioux
0dd7364364 node-proxy: add packaging related changes
This adds the required changes to build an RPM of node-proxy.

Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>
2024-01-25 15:07:21 +00:00