Commit Graph

1569 Commits

Author SHA1 Message Date
Kefu Chai
83cd444a41 rpm: enable dwz
this change reverts 9132269421
back then, we were using rpm < 4.13, which does not support
the feature of "Debugsource and debuginfo sub-packages", but per
https://bugzilla.redhat.com/show_bug.cgi?id=185590. rpm >= 4.13
has this feature. see also http://rpm.org/wiki/Releases/4.13.0

in CentOS 8, RPM v4.14.3 is available. and by inspecting the log
when building ceph packages on CentOS 8, we have:

Wrote: /home/jenkins-build/build/workspace/ceph-dev-new-build/ARCH/x86_64/AVAILABLE_ARCH/x86_64/AVAILABLE_DIST/centos8/DIST/centos8/MACHINE_SIZE/gigantic/release/17.0.0-6524-g4e868f9a/rpm/el8/RPMS/x86_64/ceph-debugsource-17.0.0-6524.g4e868f9a.el8.x86_64.rpm
Wrote: /home/jenkins-build/build/workspace/ceph-dev-new-build/ARCH/x86_64/AVAILABLE_ARCH/x86_64/AVAILABLE_DIST/centos8/DIST/centos8/MACHINE_SIZE/gigantic/release/17.0.0-6524-g4e868f9a/rpm/el8/RPMS/x86_64/ceph-base-debuginfo-17.0.0-6524.g4e868f9a.el8.x86_64.rpm
Wrote: /home/jenkins-build/build/workspace/ceph-dev-new-build/ARCH/x86_64/AVAILABLE_ARCH/x86_64/AVAILABLE_DIST/centos8/DIST/centos8/MACHINE_SIZE/gigantic/release/17.0.0-6524-g4e868f9a/rpm/el8/RPMS/x86_64/ceph-common-debuginfo-17.0.0-6524.g4e868f9a.el8.x86_64.rpm
Wrote: /home/jenkins-build/build/workspace/ceph-dev-new-build/ARCH/x86_64/AVAILABLE_ARCH/x86_64/AVAILABLE_DIST/centos8/DIST/centos8/MACHINE_SIZE/gigantic/release/17.0.0-6524-g4e868f9a/rpm/el8/RPMS/x86_64/ceph-mds-debuginfo-17.0.0-6524.g4e868f9a.el8.x86_64.rpm
....
build/ARCH/x86_64/AVAILABLE_ARCH/x86_64/AVAILABLE_DIST/centos8/DIST/centos8/MACHINE_SIZE/gigantic/release/17.0.0-6524-g4e868f9a/rpm/el8/RPMS/x86_64/ceph-test-debuginfo-17.0.0-6524.g4e868f9a.el8.x86_64.rpm

so, rpmbuild does generate debuginfo package for each binary
package. this should make the life of valgrind a lot easier
when reading the dwz -- no need to read the debuginfo of all
the packages, only the .dwz of the related subpackage is read.

this change should help to decrease the size of debuginfo
rpm packages a little bit. see https://tracker.ceph.com/issues/19099#note-7

this change was inspired by Yuanming Chai <ychai@redhat.com>

See-also: https://tracker.ceph.com/issues/19099
Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-07-30 16:35:08 +08:00
Kefu Chai
fa8f07561c
Merge pull request #42286 from dvanders/dvanders_selinux
ceph.spec: selinux scripts respect CEPH_AUTO_RESTART_ON_UPGRADE

Reviewed-by: Brad Hubbard <bhubbard@redhat.com>
Reviewed-by: Boris Ranto <branto@redhat.com>
Reviewed-by: Wido den Hollander <wido@widodh.nl>
Reviewed-by: Kefu Chai <kchai@redhat.com>
2021-07-24 13:57:19 +08:00
Kefu Chai
ab7e753ab5
Merge pull request #42452 from smithfarm/wip-first-arg-immutable
rpm: drop use of $FIRST_ARG in ceph-immutable-object-cache

Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
2021-07-24 13:53:33 +08:00
Kefu Chai
5419131499 ceph.spec.in: build with header only fmt on RHEL
because fmt is packaged in EPEL, while librados is packaged
in RHEL, so we cannot have fmt as a runtime dependency of librados.
to address this issue, we should compile librados either with static library
or with header-only library of fmt. but because the fedora packaging
guideline does no encourage us to package static libraries, and it would
be complicated to package both static and dynamic library for fmt.

the simpler solution would be to compile Ceph with the header-only
version of fmt.

in this change, we compile ceph with the header-only version of fmt
on RHEL to address the runtime dependency issue.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-07-24 02:26:45 +08:00
Nathan Cutler
1cb84a1160 rpm: drop use of $FIRST_ARG in ceph-immutable-object-cache
The use of $FIRST_ARG was probably required because the SUSE-specific
%service_* rpm macros were playing tricks on the shell positional parameters.
This is bad practice and error-prone, so let's assume that no macros should do
that anymore and hence it's safe to assume that positional parameters remain
unchanged after any rpm macro call.

Thanks to Franck Bui for providing the original patch
926433f5d4 that this patch is modeled after.

NOTE: the use of FIRST_ARG had already been eliminated by
926433f5d4 but was re-introduced later by
9466d70985

Fixes: 9466d70985
Fixes: https://tracker.ceph.com/issues/51797
Signed-off-by: Nathan Cutler <ncutler@suse.com>
2021-07-22 22:52:39 +02:00
Kefu Chai
7048172cad
Merge pull request #38783 from ideepika/wip-osd-tracing
cmake/ninja: support ninja for jaegertracing

Reviewed-by: Kefu Chai <kchai@redhat.com>
2021-07-22 15:33:13 +08:00
Deepika Upadhyay
80e82686eb ceph.spec, cmake, debian: use thrift 0.13+ from distro pkg
the change to build and ship libthift was added when we didn't have 0.13.0
version shipped via distro pkgs, now that centos 8 and F34 supports req.
version, we do not need to build and ship it with jaeger library.

Signed-off-by: Deepika Upadhyay <dupadhya@redhat.com>
2021-07-22 10:59:45 +05:30
Deepika Upadhyay
e92b4745ba ceph.spec: enable WITH_JAEGER=ON if --with-jaeger passed
Signed-off-by: Deepika Upadhyay <dupadhya@redhat.com>
2021-07-22 10:58:12 +05:30
Deepika Upadhyay
00f44782af cmake, ceph.spec, debian: use yaml-cpp >= 0.6
* since focal and centos both have yaml-cpp 0.6 available, which dropped
having boost as it's dependency, moving to 0.6 seems a good upgrade.

* cmake: delete Buildyaml, since distro suppilies v0.6 this is not needed

This fixes the build failure, as jaegertracing requires yaml-cpp v0.6+
```
Could NOT find yaml-cpp: Found unsuitable version "", but required is at
  least "0.5.1" (found yaml-cpp_LIBRARY-NOTFOUND)

Signed-off-by: Deepika Upadhyay <dupadhya@redhat.com>
2021-07-22 10:58:08 +05:30
Dan van der Ster
092a6e3e83 ceph.spec: selinux scripts respect CEPH_AUTO_RESTART_ON_UPGRADE
In /etc/sysconfig/ceph we allow operators to define if ceph daemons
should be restarted on upgrade: CEPH_AUTO_RESTART_ON_UPGRADE.

But the post selinux scripts will stop ceph.target regardless if this
is set to `no`, leading to operators adding various hacks to prevent
these unexpected or inconvenient daemon restarts. By now, if users
are using rpms directly, they are likely orchestrating their own
daemon restarts so should not rely on the rpm itself to do this.

Fixes: https://tracker.ceph.com/issues/21672
Signed-off-by: Dan van der Ster <daniel.vanderster@cern.ch>
2021-07-12 15:35:39 +02:00
Nathan Cutler
b9c14266a7 rpm: remove macro invocation from comment line
In RPM spec files, comment lines should not include macro invocations,
because RPM can and will expand them, with unpredictable results.

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

Signed-off-by: Nathan Cutler <ncutler@suse.com>
2021-07-10 15:04:07 +02:00
Kefu Chai
4a3a74fd46 ceph.spec,debian: drop protobuf dependencies
since Seastar has dropped the protobuf dependencies, there is no
need to prepare them for building crimson anymore.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-07-08 08:49:57 +08:00
Kefu Chai
2026a7f0d3
Merge pull request #41999 from tchaikov/wip-rpm-deb
rpm,debian: cleanups related to python3-setuptools dependencies

Reviewed-by: Ernesto Puerta <epuertat@redhat.com>
2021-06-29 16:16:32 +08:00
Kefu Chai
d3d967794c
Merge pull request #41998 from kevinzs2048/arm64-rwl-cache-optional
ceph.spec.in, debian/rules: enable rbd-rwl-cache by default only on x86_64

Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
2021-06-27 22:31:23 +08:00
Kefu Chai
7213811dd0 ceph.spec.in: increase memory per core to 3000MB on SUSE distros
in the KVM instance offered by OBS, we have

[  346s] + cat /proc/meminfo
[  347s] MemTotal:       10167736 kB
[  347s] MemFree:         4983964 kB
[  347s] MemAvailable:    9826800 kB
[  347s] Buffers:           85856 kB
[  347s] Cached:          4615192 kB
[  347s] SwapCached:            0 kB
...
[  347s] SwapTotal:       2097148 kB

and its number of hardware threads is

[  346s] ++ /usr/bin/getconf _NPROCESSORS_ONLN
[  346s] + _threads=8

so ($MemTotal+$SwapTotal)/1024/2600 = 4.6, which is less
than the # of threads, so "4" was used for the number of jobs.

but per our recent observation in
38be14bc0f, some compiling jobs could
take up to 3GB. in the OOM failure in OBS, we had

[24915s] [24848.843594] Out of memory: Killed process 16894 (cc1plus) total-vm:4293756kB, anon-rss:2970012kB, file-rss:0kB, shmem-rss:0kB, UID:399 pgtables:8324kB oom_score_adj:0

where 4GiB memory was allocated, in which 3GiB was mapped into
memory. this matches with our findings.

in this change, the memory per core is bumped up to 3000MB
in hope to address the OOB. the downside of this change is
that it would take even longer to finish the build if the
building host is limited in memory.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-06-25 19:27:34 +08:00
Kevin Zhao
8c7729af08 ceph.spec.in, debian/rules: Set rbd-rwl-cache optional on arm64 and ppc64le
set rwl cache option on arm64 and ppc64le as PMDK is not well supported.
Currently, only 64-bit Linux* and Windows* on x86 are supported PMDK

Reference:
1. Experimental support on Arm64, but lacking of librpmem:
See: https://github.com/pmem/pmdk#experimental-support-for-64-bit-arm
2. No RPM for PMDK on Arm64:
See: https://bugzilla.redhat.com/show_bug.cgi?id=1340635
3. > Does PMDK support ARM64*?
   > Currently only 64-bit Linux* and Windows* on x86 are supported.
See: https://software.intel.com/content/www/us/en/develop/articles/persistent-memory-faq.html
4. Make check fail on Arm64
See: https://github.com/pmem/pmdk/issues/5255

Fixes: https://tracker.ceph.com/issues/51339
Signed-off-by: Kevin Zhao <kevin.zhao@linaro.org>
2021-06-25 11:53:18 +08:00
Kefu Chai
3c1cae8dd5 ceph.spec.in: enable --with-rbd_ssd_cache by default
unlike rbd_rwl_cache, rbd_ssd_cache does not depend on pmdk (libpmem),
so let's enable it on all supported architecture and rpm based distros.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-06-24 19:54:50 +08:00
Kefu Chai
c4fbf39d2e cmake,deb,rpm: drop ceph-deploy manpage
ceph-deploy is not actively maintained anymore, and it was replaced by
ceph-volume and other high-level tools.

so there is no point to package its manpage anymore.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-06-24 12:13:17 +08:00
Kefu Chai
e3c770cca8 ceph.spec.in: move ceph_volume python module into ceph-osd
the ceph-volume tool is composed of the cli frontend and ceph_volume
python module. in 02bc369e05, its cli
frontend is moved from ceph-base package to ceph-osd. but the python
module was left in ceph-base.

since the only consumer of ceph_volume python package is ceph-volume,
better off moving this python module into ceph-osd. this also aligns
the rpm packaging with the deb packaging, where ceph-osd deb package
also include ceph_volume python module.

we could extract ceph-volumne into its own package, so it can be an
arch-independent package. let's leave it as a follow-up change.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-06-24 12:13:17 +08:00
Kefu Chai
99eec32343 ceph.spec.in: move "Requires: python3-setuptools" from ceph-base to ceph-osd
python3-setuptools was originally added to ceph-base as a dependency of
ceph-detect-init, see https://tracker.ceph.com/issues/14864. but since
ceph-disk and ceph-detect-init were replaced by ceph-volume, and were
removed from the debian packaging in
ee6bc23e89.

there is no need to have python3-setuptools in the ceph-base packages
anymore.

but since we are still using pkg_resources module provided by setuptools
in ceph-volume, we need to preserve this runtime dependency in ceph-osd.
as ceph-osd packages ceph-volume.

please note, pkg_resources module is also used by cephadm to poke around
ceph_iscsi python module installed in a container, so python-setuptools
should be installed along with ceph-iscsi if we need a better
interoperability between ceph-iscsi and cephadm. this is not in the
scope of this change.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-06-24 12:13:17 +08:00
Kefu Chai
e745fc2184 ceph.spec.in: bump up the required version of fmt-devel to 6.2.1
6.2.1 is the version packaged by EPEL8, in other words, this is the
version we've been testing. so to be more consistent with the
known-to-be-good version, let's bump up the required version.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-06-18 11:14:30 +08:00
Kefu Chai
38be14bc0f ceph.spec.in: increase the mem_per_job to 3GiB
to lower the number of jobs, we are experiencing build failures on
a builder with 48c96t, 193 free mem. the failures were caused by
OOM killer which kills the c++ compiler

[498376.128969] oom-kill:constraint=CONSTRAINT_NONE,nodemask=(null),cpuset=/,mems_allowed=0,global_oom,task_memcg=/system.slice/jenkins.service,task=cc1plus,pid=1387895,uid=1110
[498376.145288] Out of memory: Killed process 1387895 (cc1plus) total-vm:3323312kB, anon-rss:3164568kB, file-rss:0kB, shmem-rss:0kB, UID:1110
[498376.315185] oom_reaper: reaped process 1387895 (cc1plus), now anon-rss:0kB, file-rss:0kB, shmem-rss:0kB
[498377.882072] cc1plus invoked oom-killer: gfp_mask=0x6200ca(GFP_HIGHUSER_MOVABLE), order=0, oom_score_adj=0

before this change, we use the total memory to calculate the number
of jobs, and assume that each job takes at most 2.5GiB mem. in the
case above, the # of job is 96.

after this change, we use the free memory, and increse the mem per job
to 3.0GiB. in the case above, the # of job would be 85.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-06-03 21:02:33 +08:00
Misono Tomohiro
f38def9273 ceph.spec.in: install gcc-toolset-9-gcc-c++ for rhel only
Otherwise fedora 33 complains there is no gcc-toolset-9-gcc-c++
when running "WITH_SEASTAR=true ./install_deps.sh"

Related to: 36759b5363
Signed-off-by: Misono Tomohiro <misono.tomohiro@jp.fujitsu.com>
2021-05-26 16:21:34 +09:00
Kefu Chai
1c04ce6f3a doc/man: build and install cephfs-shell manpage
otherwise the manpage of cephfs-shell is not built and installed.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-05-05 14:41:50 +08:00
Patrick Donnelly
52faaf848e
Revert "Merge PR #41134 into master"
This reverts commit 93bca2d0e9, reversing
changes made to 7e70b15c43.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2021-05-04 14:46:47 -07:00
Kefu Chai
5191008aa4 doc/man: build and install cephfs-shell manpage
otherwise the manpage of cephfs-shell is not built and installed.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-05-04 15:11:22 +08:00
Kefu Chai
ecb8d2cae2 ceph.spec.in: do not build with system pmdk by default
we need to use libpmem 1.10 in #40493.

without enabling the module stream offering libpmem 1.9.2, we can only
have access to libpmem 1.6.1. and fedora 33 only has libpmem 1.9
packaged. the same applies to openSUSE Tumbleweed and openSUSE Leap. so
let's stop using libpmem packaged by distro by default, until these
distros include libpmem 1.10.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-04-26 16:38:09 +08:00
Patrick Donnelly
a4d3377ff4
Merge PR #40526 into master
* refs/pull/40526/head:
	spec: add nfs to spec file
	mgr/nfs: Don't enable nfs module by default
	mgr/nfs: check for invalid chars in cluster id
	mgr/nfs: Use CLICommand wrapper
	mgr/nfs: reorg nfs files
	mgr/nfs: Check if transport or protocol are list instance
	mgr/nfs: reorg cluster class and common helper methods
	mgr/nfs: move common export helper methods to ExportMgr class
	mgr/nfs: move validate methods into new ValidateExport class
	mgr/nfs: add custom exception module
	mgr/nfs: create new module for export utils
	mgr/nfs: rename fs dir to export
	mgr/volumes/nfs: Move nfs code out of volumes plugin

Reviewed-by: Alfonso Martínez <almartin@redhat.com>
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
Reviewed-by: Ernesto Puerta <epuertat@redhat.com>
2021-04-22 09:20:59 -07:00
Kefu Chai
148ede83f6
Merge pull request #40956 from rzarzynski/wip-crimson-depends-on-binutils
ceph.spec.in: crimson depends on binutils b/c of addr2line.

Reviewed-by: Kefu Chai <kchai@redhat.com>
2021-04-22 15:27:54 +08:00
Varsha Rao
8ab4950171 spec: add nfs to spec file
Signed-off-by: Varsha Rao <varao@redhat.com>
2021-04-22 11:38:30 +05:30
Radoslaw Zarzynski
32af87341b ceph.spec.in: crimson depends on binutils b/c of addr2line.
This small utility is needed due to the backtrace processing.
See: d3dcf510c3.

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
2021-04-21 09:39:02 +00:00
Kefu Chai
f057ea202f
Merge pull request #40749 from tchaikov/wip-python3-spec
ceph.spec: consolidate python3-{setuptools,Cython} builds deps

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
Reviewed-by: Brad Hubbard <bhubbard@redhat.com>
2021-04-19 15:49:37 +08:00
Kefu Chai
5ddda38da4 common: extract options into yaml
extract the options in common/options.cc into separate .yaml.in
files, and preprocess them using CMake before translating them into .cc
files using a python script.

this change paves the road to render the options using sphinx, and
will allow us to further annotate the options to include more metadata.

also, a this YAML file can be consumed by applications like dashboard
and Sphinx to consume these metadata in a simpler way.

* use @variable-name@ for substituting the variables in .yaml.in file
* use cmake variable of `mgr_disabled_modules` instead of C macro
  to define `mgr_disabled_modules` in global.yaml.in
* debian/control, ceph.spec.in, win32_deps_build.sh: add python3-yaml
  as build dep
* add y2c.py (short for YAML to C++) to translate .yaml to .cc file
* common/options/*.yaml.in: extract and split options into .yaml.in
  files, the subvars in it is then replaced with CMake variables,
  and copied to the corresponding .yaml files
* include/config-h.in.cmake: remove MGR_DISABLED_MODULES, as it
  is not a CMake variable.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-04-13 09:13:47 +08:00
Kefu Chai
65ac18be6a ceph.spec: consolidate python3-{setuptools,Cython} builds deps
the names of these packages are the same across SUSE and fedora/RHEL
distros.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-04-10 23:08:50 +08:00
Ilya Dryomov
dc55f0bb43 packaging: require ceph-common for immutable object cache daemon
This daemon has a systemd service which starts it with --setuser ceph
--setgroup ceph.  "ceph" user and group are created by ceph-common and
won't be there unless ceph-common is installed.

Fixes: https://tracker.ceph.com/issues/50207
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
2021-04-07 13:11:23 +02:00
Nathan Cutler
404f8b2ce2 rpm: add missing % in %dir directive
de6c8250a6 added an explicit %dir directive for
a new directory added to the ceph-common package, but -- due to a typo --
neglected to include the "%". As a result, RPM builds started to fail with:

Processing files: ceph-common-17.0.0-2787.gde6c8250.el8.x86_64
error: File must begin with "/": {_libdir}/ceph/denc/

RPM build errors:
    File must begin with "/": {_libdir}/ceph/denc/

Fixes: de6c8250a6
Signed-off-by: Nathan Cutler <ncutler@suse.com>
2021-04-05 17:30:04 +02:00
Nathan Cutler
de6c8250a6 rpm: make ceph-common own the new denc directory
2d3c6561b4 introduced a new library directory
"%{_libdir}/ceph/denc/" in ceph-common but did not explicitly state that it
should be owned by the package. This caused OBS builds to fail as follows:

[ 5515s] ceph-common-17.0.0-2786.1.x86_64.rpm: directories not owned by a package:
[ 5515s]  - /usr/lib64/ceph/denc

Fixes: 2d3c6561b4
Signed-off-by: Nathan Cutler <ncutler@suse.com>
2021-04-04 11:02:11 +02:00
Kefu Chai
2d3c6561b4 tools/ceph-dencoder: build dencoders as plugins
to reduce the memory footprint when linking ceph-dencoder.

* src/tools/ceph-dencoder:
  * build dencoders as shared libraries named with the prefix of
    "den-mod-". so ceph-dencoder can find them
  * install dencoders into $prefix/lib/ceph/denc, so ceph-dencoder
    can find them
  * only expose "register_dencoders()" function from plugins.
  * load plugins in specified directory
* ceph.spec.in: package plugins
* debian: package plugins

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-04-01 15:46:22 +08:00
Nathan Cutler
4025858570 rpm: drop extraneous explicit sqlite-libs runtime dependency
Commit 75980798f1 introduced a new package,
libcephsqlite, with a hard RPM dependency on a package "sqlite-libs" which
does not exist in openSUSE.

Since the runtime library dependencies of libcephsqlite are handled by RPM
transparently, this line is not needed.

Fixes: https://tracker.ceph.com/issues/50007
Signed-off-by: Nathan Cutler <ncutler@suse.com>
2021-03-27 13:22:26 +01:00
Ludwig Nussel
e4c4a4ce97 ceph.spec: prepare openSUSE usrmerge (boo#1029961)
The compat symlink in /sbin is no longer required and actually in
the way in the usrmerge case.

Signed-off-by: Ludwig Nussel <ludwig.nussel@suse.de>
2021-03-25 10:35:35 +01:00
Kefu Chai
f3ad86069e
Merge pull request #40300 from tchaikov/test-promtool
ceph.spec,install-deps: use golang-github-prometheus for promtools

Reviewed-by: Brad Hubbard <bhubbard@redhat.com>
Reviewed-by: Aashish Sharma <aasharma@redhat.com>
Reviewed-by: Rishabh Dave <ridave@redhat.com>
2021-03-23 17:30:58 +08:00
Kefu Chai
e33e3a931d ceph.spec,install-deps: use golang-github-prometheus for promtools
instead of installing docker for using promtools, install
golang-github-prometheus.

Signed-off-by: Aashish Sharma <aasharma@redhat.com>
Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-03-22 14:13:17 +08:00
Patrick Donnelly
75980798f1
ceph.spec,debian: package libcephsqlite
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2021-03-19 08:52:55 -07:00
Kefu Chai
01a7ecaba2
Merge pull request #40163 from ktdreyer/resource-agents-noarch
rpm: ceph-resource-agents package is noarch

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
2021-03-18 11:02:22 +08:00
Ken Dreyer
79808963a7 rpm: ceph-resource-agents package is noarch
The ceph-resource-agents package contains an architecture-independent
bash script and parent directories. There are no architecture-dependent
files here, so we can use a single noarch RPM across all host
architectures.

Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
2021-03-16 16:18:11 -06:00
Kyr Shatskyy
a435380dc3 ceph.spec.in: use ninja instead of ninja-build for openSUSE
And since the dependency is now distro-conditional, moving it down
to the 'distro-conditional make check dependencies' section.

Signed-off-by: Kyr Shatskyy <kyrylo.shatskyy@suse.com>
2021-03-16 12:45:26 +01:00
Kefu Chai
75b58115ea ceph.spec: build with system libpmem on fedora and el8
* build with WITH_SYSTEM_PMDK=ON on fedora, as f32 and f33 ship
  libpmem1.8 and libpmem1.9 respectively. and we need libpmem v1.7
* build with WITH_SYSTEM_PMDK=ON on el8, as el8 and CentOS8 AppStream
  ships libpmem v1.6,

quote from nvml.spec:

> By design, PMDK does not support any 32-bit architecture.
> Due to dependency on some inline assembly, PMDK can be compiled only
> on these architectures:
> - x86_64
> - ppc64le (experimental)
> - aarch64 (unmaintained, supporting hardware doesn't exist?)

so far, only x86_64 and ppc64le packages are built.

see also,
https://src.fedoraproject.org/rpms/nvml/blob/rawhide/f/nvml.spec

this change addresses a regression introduced by
a49d1dbb32

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-03-12 23:04:11 +08:00
Kefu Chai
80f8f0956c ceph.spec: include ninja as BuildRequires
to ease the build for developers using SUSE, Fedora, CentOS or RHEL.
so install-deps.sh can install ninja for them.

Fixes: https://tracker.ceph.com/issues/49694
Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-03-10 18:19:49 +08:00
Kefu Chai
6de97d4434 ceph.spec: prepare for out-of-source build
see also
https://fedoraproject.org/wiki/Changes/CMake_to_do_out-of-source_builds

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-03-09 19:13:19 +08:00
Kefu Chai
624be364c6
Merge pull request #39909 from smithfarm/wip-revert-make-build-on-suse
rpm: refrain from using %make_build macro on SUSE

Reviewed-by: Kefu Chai <kchai@redhat.com>
2021-03-09 16:58:58 +08:00
Nathan Cutler
40cbd283bd rpm: refrain from using %make_build macro on SUSE
The recently merged commit 0e511973f7 replaced

    make %{_smp_mflags}

with

    %make_build

for the stated purpose of hiding the %_smp_mflags macro in a higher-level macro.

But, on SUSE, the higher-level macro (%make_build) expands to:

    make -O %{_smp_mflags}

The addition of the -O flag makes the build considerably slower and increases
the memory requirement. The exact reason for this is unknown - possibly it's due
to a bug in make, although the same slowness was observed with ninja as well.
In any event, this is a deal-breaker when building in the OBS, because the build
infrastructure there is optimized for builds that do not require huge amounts of
memory and we would rather have a fast build with mixed up compiler messages
than a very slow one with synced compiler messages.

Fixes: 0e511973f7
Signed-off-by: Nathan Cutler <ncutler@suse.com>
2021-03-08 11:52:09 +01:00
Marcus Watts
8afd92425b rgw/kms/vault - need libicu to make canonical json for encryption contexts.
for encryption, aws s3 provides an "encryption" context to vary per-object
keys.  The encryption context is a base64 encoded json structure, which
must be converted to a determinstic form -- "canonical json".  This
requires converting all strings to a normalized canonical form: "utf-8 nfc",
it also requires thta keys in objects be sorted in a fixed order; so some
form of sorting based on nfc.

It turns out that libicu was the best way to produce utf-8 nfc (boost also
provides a mechanism, but it has many quirks).  So, here are the hooks
to pull the system libicu into the build.

Fixes: http://tracker.ceph.com/issues/48746
Signed-off-by: Marcus Watts <mwatts@redhat.com>
2021-03-05 17:15:24 -05:00
Nathan Cutler
8b5bae19e5
Merge pull request #39813 from smithfarm/wip-49583
rpm: disable parallel compression on SUSE

Reviewed-by: Kefu Chai <kchai@redhat.com>
2021-03-05 14:28:08 +01:00
Nathan Cutler
30df650e64 rpm: use PMDK system libraries on SUSE
As of a49d1dbb32, when the rbd_rwl_cache and
rbd_ssd_cache bconds are enabled and WITH_SYSTEM_PMDK is disabled (as it is by
default), the RPM build attempts to

    git clone https://github.com/ceph/pmdk.git

but of course that won't work in the OBS, where the build workers have no
Internet connectivity.

Fortunately, the openSUSE/SLE versions targeted by Ceph master and pacific ship
the necessary PMDK libraries as RPM packages.

Fixes: a49d1dbb32
Fixes: https://tracker.ceph.com/issues/49550
Signed-off-by: Nathan Cutler <ncutler@suse.com>
2021-03-03 20:46:20 +01:00
Nathan Cutler
ef0384dc50
Merge pull request #39765 from smithfarm/wip-ncpus-for-obs
rpm: set build parallelism from memory on SUSE

Reviewed-by: Kefu Chai <kchai@redhat.com>
Reviewed-by: David Galloway <dgallowa@redhat.com>
2021-03-03 20:44:20 +01:00
Nathan Cutler
19f492014b rpm: drop old SUSE-specific OOM fix
This fix was needed some years ago, but no longer.

Signed-off-by: Nathan Cutler <ncutler@suse.com>
2021-03-03 15:52:04 +01:00
Nathan Cutler
7efcc72483 rpm: limit build jobs by system memory on SUSE
43b441f9a3 removed a bunch of code which the SUSE
builds were relying on to avoid OOM. This commit brings back that code in
a much-streamlined form: the SUSE-specific %limit_build macro.

This also has the advantage of not breaking the build on older RPMs which only
know about %_smp_mflags, and not the newer %_smp_build_ncpus etc. macros.

Fixes: 43b441f9a3
Fixes: https://tracker.ceph.com/issues/49556
Signed-off-by: Nathan Cutler <ncutler@suse.com>
2021-03-03 15:52:04 +01:00
Nathan Cutler
a63a94714a rpm: disable parallel compression on SUSE
This code causes the Ceph build in OBS to fail due to OOM, because the typical
setting of %_smp_build_ncpus in the OBS is 16, but available memory is
insufficient to sustain such a high degree of parallelism for the in-memory
compression operation.

Fixes: b50fc9e61c
Fixes: https://tracker.ceph.com/issues/49583
Signed-off-by: Nathan Cutler <ncutler@suse.com>
2021-03-03 15:48:05 +01:00
Nathan Cutler
f27484e84c rpm/luarocks: simplify conditional and support Leap 15.3
The luarocks conditional had gotten hard to read, and the openSUSE Leap 15.3
build needs lua53 as well.

Signed-off-by: Nathan Cutler <ncutler@suse.com>
2021-03-01 21:20:45 +01:00
Nathan Cutler
ffd202a086 rpm: re-disable SUSE lttng build on z390x
This partially reverts 2b1e646f7a which
mistakenly changed a line inside an "%if 0%{?suse_version}" conditional.

Fixes: 2b1e646f7a
Signed-off-by: Nathan Cutler <ncutler@suse.com>
2021-02-25 19:16:59 +01:00
Kefu Chai
ad46841715
Merge pull request #39427 from ktdreyer/rpm-whitespace
ceph.spec.in: remove trailing whitespace

Reviewed-by: Andrew Schoen <aschoen@redhat.com>
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
2021-02-24 17:00:04 +08:00
Kyr Shatskyy
1850dd508f ceph.spec.in: use lua53 for openSUSE 15.2
Signed-off-by: Kyr Shatskyy <kyrylo.shatskyy@suse.com>
2021-02-22 16:57:27 +01:00
Kefu Chai
e08fcf8900
Merge pull request #39552 from smithfarm/wip-49356
rpm: openSUSE Tumbleweed has lua54 now

Reviewed-by: Yuval Lifshitz <ylifshit@redhat.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
2021-02-21 19:50:20 +08:00
Jason Dillaman
963d854aba
Merge pull request #39539 from lixiaoy1/enable_pwl
cmake: enable write-back cache in spec

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
2021-02-20 12:59:04 -05:00
Kefu Chai
71aea12bac ceph.spec.in: s/%cmake/cmake/
this change partially reverts da7030db79
which use %cmake rpm macro in the place of "cmake". but

%cmake sets BUILD_SHARED_LIBS=ON. so quite a few internal libraries
defined using add_library() are now compiled into shared libraries which
are not installed or packagesd. when we are installing the rpm packages
compiled with this option, rpm compiles because the linked libraries are
missing, for instance, `libgmock.so.1.10.0` was compiled as a static
library before da7030db79, and was
included by the test executables. but after that change it's compiled
as a shared library.

so we need to either package the linked shared libraries or just link
against them statically. at this moment, the latter approach is simpler,
albeit larger size of exectuable and dbg symbols.

Fixes: https://tracker.ceph.com/issues/49395
Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-02-20 11:43:30 +08:00
lixiaoy1
a49d1dbb32 cmake: enable write-back cache in spec
Signed-off-by: Li, Xiaoyan <xiaoyan.li@intel.com>
2021-02-19 20:22:50 -05:00
Nathan Cutler
d8ee565b64 rpm: openSUSE Tumbleweed has lua54 now
Until someone figures out an easier way, we are stuck with the minor Lua version
in the package names.

Signed-off-by: Nathan Cutler <ncutler@suse.com>
2021-02-19 09:58:51 +01:00
Kefu Chai
3146c6160d rpm,install-dep.sh,cmake: build cephfs java binding
java packaging tools are now offered by "javapackages-tools" module in
el8. so let's re-enable it. this change partially reverts
dd133840b9d35ca7d8b1788836f6076b06c33087

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-02-18 12:18:38 +08:00
Kefu Chai
0c079852cd
Merge pull request #39506 from tchaikov/wip-rpm-multi-thread-xz
ceph.spec.in: use multi-threaded xz compression and cleanups

Reviewed-by: David Galloway <dgallowa@redhat.com>
2021-02-18 09:32:27 +08:00
Kefu Chai
144bf31087 ceph.spec.in: use %make_install macro
hide buildroot in the implementation of this macro

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-02-17 21:06:18 +08:00
Kefu Chai
0e511973f7 ceph.spec.in: use %make_build instead of "make"
so we can hide the `_smp_mflags` in `%make_build` macro

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-02-17 21:06:18 +08:00
Kefu Chai
43b441f9a3 ceph.spec.in: use a macro helper to limit number of jobs
so it can work with the rpm macros better.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-02-17 21:06:18 +08:00
Kefu Chai
35d1ba003d ceph.spec.in: specify cmake variable type
for better readablity

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-02-17 12:39:55 +08:00
Kefu Chai
da7030db79 ceph.spec.in: use %cmake macro
%cmake passes a bunch of default flags, so we can save some efforts.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-02-17 12:39:55 +08:00
Kefu Chai
bd4da136ba ceph.spec.in: use RPM_BUILD_NCPUS for number of jobs
this env variable is defined by /usr/lib/rpm/macros. let's used it
instead of inventing our own version.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-02-17 12:39:55 +08:00
Kefu Chai
b50fc9e61c ceph.spec.in: use multi-threaded xz compression
so we can build the compressed src rpm and binary rpms with smaller
latency.

see also
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/7.3_release_notes/technology_previews_installation_and_booting

by default, rpm uses

w9.gzdio

which means: gzip level 9. but since xz is able to compress using
multiple threads, let's switch to xz.

xz's default compression level is 6, but ceph's source and binary
packages are relatively large. let's use a higher compression level.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-02-17 11:25:37 +08:00
Ken Dreyer
1a6c3cffaa ceph.spec.in: remove trailing whitespace
RPM's parseSpec() Python method internally strips this whitespace
character.

Tools that process this spec file with parseSpec() and evaluate
RPMTAG_DESCRIPTION cannot match this exact %description string as
written here.

Strip the trailing whitespace so that the RPMTAG_DESCRIPTION header
matches what we've written in the spec.

Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
2021-02-11 11:01:19 -07:00
Yaakov Selkowitz
0f783b7e3b ceph.spec.in: bump gperftools requirement for ppc64le
gperftools' libprofiler did not build on ppc64le until 2.7.90.
The EPEL 8 package is being updated accordingly.

Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
2021-02-09 11:30:43 -05:00
Yaakov Selkowitz
2b1e646f7a ceph.spec.in: enable tcmalloc and lttng on s390x
The necessary prerequisites are already in RHEL+EPEL 8.

Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
2021-02-09 11:06:52 -05:00
luo.runbing
893924c20d
ceph.spec.in: fix missing backslash for line continuation
it errors while building without lua_packages:

+ -DBOOST_J=102 -DWITH_GRAFANA=ON
/var/tmp/rpm-tmp.aq2X3J: line 91: -DBOOST_J=102: command not found

Signed-off-by: luo.runbing <luo.runbing@zte.com.cn>
2021-02-09 09:39:41 +08:00
J. Eric Ivancich
8e03dbce42
Merge pull request #39176 from ivancich/wip-rgw-gap-list
rgw: tooling to locate rgw objects with missing rados components

Reviewed-by: Kefu Chai <kchai@redhat.com>
Reviewed-by: Michael Kidd <linuxkidd@gmail.com>
2021-02-04 15:16:48 -05:00
J. Eric Ivancich
3c5154f010 rgw: add rgw-gap-list-comparator tool
The rgw-gap-list tool can produce a number of false positives when the
cluster is being used during its run. One technique to minimize the
number of false positives is to run the tool twice and look for the
objects that appear in both lists. The rgw-gap-list-comparator tool is
designed to do this comparison.

Signed-off-by: Michael Kidd <linuxkidd@gmail.com>
2021-02-03 16:57:50 -05:00
J. Eric Ivancich
07b42195fb rgw: add rgw-gap-list tool
Due to a prior bug (pr: 38228) tail rados objects of some RGW objects
could have been incorrectly deleted. This tool is designed to look for
such cases. It essentially does the opposite of rgw-orphan-list,
looking for rados objects that RGW expects to be there, but which are
not to be found.

IMPORTANT: This is very experimental at this point in time, and any
"results" produced should be verified by other means.

Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
Signed-off-by: Michael Kidd <linuxkidd@gmail.com>
2021-02-03 16:57:50 -05:00
Sebastian Wagner
46188c4caa
Merge pull request #39007 from mgfritch/cephadm-podman-2.0
cephadm: require podman >= 2.0.0

Reviewed-by: Sebastian Wagner <sebastian.wagner@suse.com>
2021-01-29 10:26:03 +01:00
Michael Fritch
a899227895
spec, debian: recommend podman >= 2.0.2
Signed-off-by: Michael Fritch <mfritch@suse.com>
2021-01-26 08:01:55 -07:00
Jason Dillaman
6aba1c7bba
Merge pull request #39049 from lixiaoy1/fix_spec
spec: enable RWL/SSD caches

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
2021-01-26 09:46:44 -05:00
lixiaoy1
12ca24fc26 spec: enable RWL/SSD caches
Signed-off-by: Li, Xiaoyan <xiaoyan.li@intel.com>
2021-01-26 04:21:30 -05:00
Venky Shankar
b7acf7fc77 pybind/mgr/mirroring: interface to mirror CephFS directory snapshots
Signed-off-by: Venky Shankar <vshankar@redhat.com>
2021-01-19 01:06:43 -05:00
Patrick Donnelly
78a7df1500
Merge PR #38846 into master
* refs/pull/38846/head:
	*: remove legacy ceph_volume_client.py library

Reviewed-by: Varsha Rao <varao@redhat.com>
Reviewed-by: Rishabh Dave <ridave@redhat.com>
2021-01-14 08:10:19 -08:00
Patrick Donnelly
a3db265ad5
*: remove legacy ceph_volume_client.py library
This library is obsolete with the mgr volumes plugin since Nautilus.

The last remaining user of this library was Manila which will be using
the volumes plugin with Pacific and onwards.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2021-01-12 06:54:29 -08:00
Venky Shankar
1227752983 systemd: cephfs-mirror systemd unit files
Signed-off-by: Venky Shankar <vshankar@redhat.com>
2021-01-12 05:57:32 -05:00
Venky Shankar
42233bb5df doc, man: man page for cephfs-mirror tool
Signed-off-by: Venky Shankar <vshankar@redhat.com>
2021-01-12 05:57:32 -05:00
Venky Shankar
d5062c60f6 spec, deb: package cephfs-top utility
Signed-off-by: Venky Shankar <vshankar@redhat.com>
2021-01-11 06:15:53 -05:00
Patrick Donnelly
d03064d930
Merge PR #38642 into master
* refs/pull/38642/head:
	rpm/deb/cmake: install mount.fuse.ceph man page

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
2021-01-08 15:12:42 -08:00
Nathan Cutler
ea851e71fd
Merge pull request #38603 from smithfarm/wip-48604
rpm: require smartmontools on SUSE

Reviewed-by: Volker Theile <vtheile@suse.com>
2021-01-04 10:58:54 +01:00
Ken Dreyer
ad85bdf8de rpm/deb/cmake: install mount.fuse.ceph man page
Install the mount.fuse.ceph man page and ship it in the ceph-fuse
packaging along with the corresponding mount.fuse.ceph binary.

Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
2020-12-17 16:30:07 -07:00
Yuval Lifshitz
c1af849a0d
Merge pull request #37924 from yuvalif/allow_packages_in_lua
rgw/lua: support packages via luarocks
2020-12-17 19:53:00 +02:00
Nathan Cutler
c7e160a381 rpm: require smartmontools on SUSE
SUSE container images are built using a process that excludes dependencies that
are merely recommended.

Fixes: https://tracker.ceph.com/issues/48604
Signed-off-by: Nathan Cutler <ncutler@suse.com>
2020-12-16 11:46:46 +01:00
Kefu Chai
5af17733c7 rpm: package crimson-store-nbd in ceph-test package
when building with seastar enabled, package crimson-store-ndb in
"ceph-test" package. "crimson-store-nbd" is a new tool for testing
seastore using nbd.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2020-12-16 15:55:48 +08:00
Josh Durgin
8a74a937dd
Merge pull request #31358 from ideepika/wip-jaegertracing-in-ceph
jaegertracing build/ops integration

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
2020-12-15 16:29:26 -08:00
Deepika Upadhyay
85ca7b36a0 jaeger: make tracing default turned off, until teuthology integration
Signed-off-by: Deepika Upadhyay <dupadhya@redhat.com>
2020-12-11 10:08:09 +00:00
Deepika Upadhyay
3c5abab7ea ceph.spec.in: refactor s/Cephs/Ceph
Signed-off-by: Deepika Upadhyay <dupadhya@redhat.com>
2020-12-11 08:35:22 +00:00
Deepika Upadhyay
4b69d3a184 jaeger, build/op: add jaeger and it's dependencies as submodules
* This commit introduces Jaegertracing library as package libjaeger,
  pickwhich would be consumed by other ceph pacakges such as ceph-common0

* adds the following dependencies, which would be build from source
  using ExternalProjectHelper.cmake +IncludeJaeger.cmake +
  Build<package>.cmake scripts:

  jaegertracing: v0.6.0 [added as a submodule]
  opentracing: v1.6.0 [added as a submodule]
  thrift: 0.13.0 [added as a submodule]
  yaml-cpp: 0.6.0
  json(optional)

* updates Boost to be installed instead of being build only, because
  jaegertracing them during their build process.

* ceph.spec.in: introduces a default enabled jaeger packaging option,
  which could be disabled using --without-jaeger flag during rpmbuild

* note: libjaeger package if enabled will be a dependency on ceph-common, ceph-mon, rgw_common and transitively will be a dependency for modules that have them as  a dependency.

Signed-off-by: Deepika Upadhyay <dupadhya@redhat.com>
2020-12-11 07:55:46 +00:00
Yuval Lifshitz
6ef3e52a3f rgw/lua: support packages via luarocks
Signed-off-by: Yuval Lifshitz <ylifshit@redhat.com>
2020-12-04 09:55:56 +02:00
Or Ozeri
ea3c1bfb9e librbd: add LUKS support
This commit introduces internal (not yet part of the api) librbd functions for:
1. formating an RBD image in LUKS format
2. parsing an RBD image in LUKS format

 The actual implementation of the LUKS format is done via libcryptsetup, which is added as a new dependency.

Signed-off-by: Or Ozeri <oro@il.ibm.com>
2020-11-23 10:32:14 -05:00
Ken Dreyer
d73134660e rpm: cephadm package is noarch
The cephadm package contains an architecture-independent Python script,
empty directories, and an empty authorized_keys file. There are no
architecture-dependent files here, so we can use a single noarch RPM
across all host architectures.

Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
2020-11-18 09:21:27 -07:00
David Turner
1de14c7f9b rpm,deb: change sudoers file mode to 440
change sudoers file mode to 440 to match recommended defaults.

From the sudoers man page.

> the default file mode is 0440 (read‐able by owner and group, writable
by none).
> The default mode may be changed via the “sudoers_mode” option to the
sudoers
>  Plugin line in the sudo.conf(5) file.

Fixes: https://tracker.ceph.com/issues/48169
Signed-off-by: David Turner <drakonstein@gmail.com>
2020-11-12 14:09:03 +08:00
Yuval Lifshitz
80223d8b3c rpm/deb/cmake: remove the lua submodule
instead use the official lua-dev/el packages

Signed-off-by: Yuval Lifshitz <ylifshit@redhat.com>
2020-11-04 17:01:58 +02:00
Kefu Chai
e96c45d9d2
Merge pull request #37751 from changchengx/nasm_avx512
common: use nasm to build isa-l and isa-l_crypto to prepare for AVX512

Reviewed-by: Kefu Chai <kchai@redhat.com>
2020-10-31 11:41:19 +08:00
Kefu Chai
d162c00c66
Merge pull request #37788 from tchaikov/wip-zbd
rpm,cmake: s/WITH_LIBZBD/WITH_ZBD/ and enable ZBD on demand

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
Reviewed-By: Neha Ojha <nojha@redhat.com>
2020-10-30 11:17:56 +08:00
Changcheng Liu
497b4d6f72 cmake: remove yasm since it's been replaced by nasm
Signed-off-by: Changcheng Liu <changcheng.liu@aliyun.com>
2020-10-29 12:36:20 +08:00
Changcheng Liu
a944232ad4 install-deps.sh: install nasm for isa-l library
nasm support build isa-l:AVX512 algorithm implementation while yasm
doens't support it. Install nasm assembler to build isa-l
refer to: https://github.com/yasm/yasm/issues/101

Signed-off-by: Changcheng Liu <changcheng.liu@aliyun.com>
2020-10-29 12:35:55 +08:00
Kefu Chai
98c06b534f rpm: pass -DWITH_ZBD=ON to cmake if zbd is enabled
this is a leftover of fd1b02a341e3afba32776e35ec7c4bbe883f9b06

Signed-off-by: Kefu Chai <kchai@redhat.com>
2020-10-29 11:19:40 +08:00
Kefu Chai
b28174f13f
Merge pull request #37761 from tchaikov/wip-ceph.spec-with-seastar
ceph.spec.in: install gcc-toolset on RHEL only

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
2020-10-28 14:43:49 +08:00
Adam C. Emerson
c9d20eb1a0 rpm: Remove use of no-longer-existing WITH_BOOST_CONTEXT option
Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
2020-10-23 11:21:53 -04:00
Kefu Chai
36759b5363 ceph.spec.in: install gcc-toolset on RHEL only
there is no need to use GTS for compiling crimson, as the GCC-10 shipped by
fedora32 is good enough.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2020-10-23 10:49:08 +08:00
Nathan Cutler
b8168d9e8a Revert "spec: Podman (temporarily) requires apparmor-abstractions on suse"
This reverts commit 070e5c3e35ea476815ff9fa4f71aed147fe1ea79.

This commit was working around a bug that was present in old (pre-1.8.0)
versions of podman. Since we are no longer running cephadm with versions
that old, we can safely drop this workaround.

Fixes: https://tracker.ceph.com/issues/47862
Signed-off-by: Nathan Cutler <ncutler@suse.com>
2020-10-15 11:21:21 +02:00
Nathan Cutler
f5fc346bb2 Revert "rpm: on SUSE, podman is required for cephadm to work"
This reverts commit 009ade0c3ea624ecf47c8a3f9d1673b342e967cc.

Signed-off-by: Nathan Cutler <ncutler@suse.com>
2020-10-15 11:21:21 +02:00
Kefu Chai
ade1a6e394
Merge pull request #37455 from smithfarm/wip-spec-file-cleanup
rpm: three spec file cleanups

Reviewed-by: Tim Serong <tserong@suse.com>
2020-10-14 15:43:30 +08:00
Venky Shankar
7523aef6e8 mgr/stats: mds performance stats module
Signed-off-by: Venky Shankar <vshankar@redhat.com>
2020-10-12 07:34:51 -04:00
Nathan Cutler
3b53003f01 rpm: cleanup: drop useless conditional block in %postun base
The "meat" of this conditional was ripped out by
328807f80b, leaving only an empty shell
behind.

Signed-off-by: Nathan Cutler <ncutler@suse.com>
2020-09-29 15:54:19 +02:00
Nathan Cutler
f69aa5abfb rpm: cleanup: drop %service_del_postun_without_restart
SUSE needs %service_del_postun (with or without restart) *only* if there
is a possibility that the RPM containing the unit file will be upgraded
from a version that packaged SysVinit scripts instead of systemd unit
files. (Which is not the case here.)

Signed-off-by: Nathan Cutler <ncutler@suse.com>
2020-09-29 15:54:12 +02:00
Franck Bui
7d99e786df rpm: cleanup: drop use of DISABLE_RESTART_ON_UPDATE
This SUSE-specific variable is deprecated and use of
%service_del_postun_without_restart macro should be preferred these
days.

Signed-off-by: Franck Bui <fbui@suse.com>
2020-09-29 15:53:29 +02:00
Kefu Chai
a42fd5c21e
Merge pull request #37281 from tchaikov/wip-fmt
rpm: add fmt-devel as build deps

Reviewed-by: Neha Ojha <nojha@redhat.com>
2020-09-29 08:14:34 +08:00
Kefu Chai
4aced0cba9
Merge pull request #37211 from tchaikov/wip-zbd
rpm,install-deps,run-make-check: enable WITH_ZBD build on demand

Reviewed-by: Neha Ojha <nojha@redhat.com>
2020-09-22 09:42:09 +08:00
Kefu Chai
fd779c3600 rpm: add fmt-devel as build deps
since libfmt > 5.0.0 is packaged by CentOS/RHEL8 and openSUSE/SLE
we can just use it instead of our own version. also, since libfmt is
used out side of crimson project, no need to guard it using "with
seastar" anymore.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2020-09-22 01:01:51 +08:00
Yaarit Hatuka
d5528a7e8e ceph.spec.in, debian/control: add smartmontools and nvme-cli dependencies
These packages are needed in order to scrape device health metrics from
devices used by OSD and MON daemons.

smartmontools' smartctl is what we use in order to scrape devices' SMART
attributes and general health metrics.
In addition, we use nvme-cli tool on NVMe devices, which fetches
vendor specific NVMe related health metrics.

Ceph rely on these tools for proper functioning of the underlying layers
of devicehealth mgr module, and other mgr modules which use devicehealth
functionality (such as diskprediction_local, telemetry, dashboard).

Essentially, most of devicehealth commands rely on proper functioning of
smartctl, otherwise they lack the device health metrics.

For example, in case smartctl is missing, the commands:
    ceph device scrape-daemon-health-metrics <who>
    ceph device scrape-health-metrics [<devid>]
will not be able to scrape health metrics, and the command:
    ceph device predict-life-expectancy <devid>
will not provide any meaningful output (since there are no metrics).

In short, when we scrape a device by its daemon (be it an OSD or a MON):
  ceph device scrape-daemon-health-metrics <who>
The devicehealth module command eventually invokes a
block_device_get_metrics() call in either osd/OSD.cc or mon/Monitor.cc,
which wraps calls to both
    block_device_run_smartctl()       (spawns smartctl)
    block_device_run_vendor_nvme()    (spawns nvme)
in common/blkdev.cc.

Minimum version requirements:
'smartmontools' is the package name, which contains two utility
programs: 'smartd' and 'smartctl'. Ceph uses the latter.

Version 6.7 of smartctl first introduced the --json option (beta), which
allows to output the metrics in a JSON format. Since then a few
adjustments were made and the feature officially launched in smartctl
version 7.0.
Since we rely on the JSON format to process the metrics, we must have
smartmontools' smartctl version >= 7.

That said, we choose not to specify smartmontools version here on
purpose, since there might be a scenario where:
We specified smartmontools version to be >= 7.
smartmontools 7 is not available yet in rhel 8 / centos 8.
A user installs via rpm ceph-osd, for example.
smartmontools will not be installed (since version >= 7 is not available
in this repo yet).
Then the user upgrades to 8.3 (which should have smartmontools >= 7),
but smartmontools will not get upgraded (since it's not installed).
In the scenario where we do not specify a version, smartmontools 6.6
will be installed, but it will be upgraded to >= 7 when a user upgrades
(and if it's a fresh installation - version >= 7 would be installed
anyway).

nvme-cli does not have a minimum version.

We use 'Recommends' for both rpm and deb packages since we do not want
the installation to fail in case of conflicts. 'Recommends' weakens the
dependency to be installed in case possible, but ignores it in cases of
conflicts with other dependencies.

It's worth mentioning that smartmontools and nvme-cli dependencies exist
in ceph-container builds.
We add them here for the cases of bare metal installations.

In the future we will add a separate package (with smartmontools and
nvme-cli dependencies) that can be installed on any node (running
rbd-mirror, rgw, mds, mgr, etc.), in order to be able to collect the
health metrics of its devices and offer their life expectancy
prediction.

Fixes: https://tracker.ceph.com/issues/47479
Signed-off-by: Yaarit Hatuka <yaarit@redhat.com>
2020-09-18 03:25:56 +00:00
Kefu Chai
fd1b02a341 rpm: add --with-zbd option
libzbd-devel is not available in any distros official repo at the time
of writing. but we packaged it for RHEL8/CentOS8. and uploaded its
packages to http://apt-mirror.front.sepia.ceph.com/lab-extras/8/. to
build test it to avoid the bitrot of ZBD bluestore backend at a minimal
level. but we cannot do more than this. because

- the kernel shipped by RHEL/CentOS8 does not have zoned block device
  support enabled. see https://zonedstorage.io/distributions/linux/
- and we don't have zoned block device for testing in our lab.

so, in this change, "--with-zbd" option is added so we can pull
in the libzbd-devel package on demand.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2020-09-17 14:45:11 +08:00
Nathan Cutler
839c8ec6ba
Merge pull request #36994 from ktdreyer/boost-context-s390x
rpm: enable WITH_BOOST_CONTEXT for s390x

Reviewed-by: Kefu Chai <kchai@redhat.com>
Reviewed-by: Nathan Cutler <ncutler@suse.com>
2020-09-07 12:39:12 +02:00
Sebastian Wagner
b54e270930
Merge pull request #36995 from smithfarm/wip-47305
rpm: on SUSE, podman is required for cephadm to work

Reviewed-by: Sebastian Wagner <sebastian.wagner@suse.com>
2020-09-07 10:39:25 +02:00
Kefu Chai
bc4255ba2c
Merge pull request #36972 from smithfarm/wip-47112
rpm,deb: drop /etc/sudoers.d/cephadm

Reviewed-by: Sebastian Wagner <sebastian.wagner@suse.com>
Reviewed-by: David Disseldorp <ddiss@suse.de>
Reviewed-by: Kefu Chai <kchai@redhat.com>
2020-09-07 14:44:44 +08:00
Ken Dreyer
121cde8c0a rpm: enable WITH_BOOST_CONTEXT for s390x
We've upgraded to Boost version 1.73
(1169dee259), and this version provides
working support for boost::context for s390x. Enable this in the RPM
packaging.

Fixes: https://tracker.ceph.com/issues/47304
Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
2020-09-04 09:52:53 -06:00
Nathan Cutler
009ade0c3e rpm: on SUSE, podman is required for cephadm to work
On SUSE, cephadm is tested with podman only.

Fixes: https://tracker.ceph.com/issues/47305
Signed-off-by: Nathan Cutler <ncutler@suse.com>
2020-09-04 17:51:07 +02:00
Nathan Cutler
c1783d3d8f rpm,deb: drop /etc/sudoers.d/cephadm
Current behavior (without this patch) is:

1. cephadm package installs cephadm at /usr/sbin/cephadm
2. cephadm package installs /etc/sudoers.d/cephadm
3. !!! BUT this file refers to a non-existent executable (/usr/bin/cephadm) !!!
4. the PR that introduced this sudoers file (and this discrepancy) was merged in 2019
5. nobody noticed the discrepancy until now

My conclusion: the file /etc/sudoers.d/cephadm is not needed for cephadm to
work.

Fixes: https://tracker.ceph.com/issues/47112
Signed-off-by: Nathan Cutler <ncutler@suse.com>
2020-09-03 16:31:30 +02:00
Kefu Chai
9ea12cea31
Merge pull request #36932 from theMarix/patch-1
rpm: Fix typo in summary of prometheus-alerts package

Reviewed-by: Kefu Chai <kchai@redhat.com>
2020-09-03 22:05:06 +08:00
Sebastian Wagner
7f21e1ee02
Merge pull request #36949 from sebastian-philipp/mgr-re-add_osd_support
Revert "mgr/osd_support: remove module and all traces"

Reviewed-by: Yuri Weinstein <yweinste@redhat.com>
2020-09-03 14:41:25 +02:00
Sebastian Wagner
43f1bdb6ef Revert "mgr/osd_support: remove module and all traces"
This reverts commit a55c1dd0fa.

Kept to keep upgrades from older point releases working.
This module can be removed as soon as we no longer
support upgrades from old octopus point releases.

Revert "build/debian: remove osd_support"

This reverts commit 8ff2824beb.

Fixes: https://tracker.ceph.com/issues/47109
Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
2020-09-02 16:07:49 +02:00
Venky Shankar
ad4e611924 ceph.spec, debian: changes for building cephfs-mirror daemon
Signed-off-by: Venky Shankar <vshankar@redhat.com>
2020-09-02 06:50:08 -04:00
Matthias Bach
4d1e30470c rpm: Fix typo in summary of prometheus-alerts package
Signed-off-by: Matthias Bach <marix@marix.org>
2020-09-01 21:18:17 +02:00
Venky Shankar
29a6f72131 spec: include snap_schedule in ceph spec file
Signed-off-by: Venky Shankar <vshankar@redhat.com>
2020-08-27 15:55:45 +02:00
Kefu Chai
2644766d0f pybind/mgr/diskprediction_cloud: remove mgr-diskprediction-cloud
the service offered by https://www.diskprophet.com is not accessible
anymore. before we have a replacement of it, let's drop
mgr-diskprediction-cloud. and remove its packaging.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2020-08-19 11:08:38 +08:00
Kefu Chai
5c038b99b3 ceph.spec.in: use gcc-toolset-9 for building crimson
since seastar dropped support from C++14, we have to move to a compiler
with a decent C++17 support.

in this change, gcc-toolset-9 is used for compiling ceph if seastar is
enabled. use version >= 9.2.1-2.2, because of
https://bugzilla.redhat.com/show_bug.cgi?id=1853900

Signed-off-by: Kefu Chai <kchai@redhat.com>
2020-08-15 17:43:40 +08:00
Patrick Donnelly
305e1b3445
Merge PR #32731 into master
* refs/pull/32731/head:
	mgr/mds_autoscaler: plugin to configure mds instances

Reviewed-by: Sebastian Wagner <swagner@suse.com>
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
2020-08-10 12:47:47 -07:00
Milind Changire
f69abe6291 mgr/mds_autoscaler: plugin to configure mds instances
mgr plugin to deploy and configure MDSs in response to degraded file system

MDS instance management as per changes to:
* 'max_mds' option
* 'standby_count_wanted' option
* mds liveness and transitions from standby to active

mds_autoscaler plugin test credit goes to Sebastian Wagner.

Fixes: https://tracker.ceph.com/issues/40929
Signed-off-by: Milind Changire <mchangir@redhat.com>
2020-08-07 17:09:10 +05:30
Jan Fajerski
42f47baab6
Merge pull request #36372 from jan--f/c-v-fix-package-common-dep
ceph-volume: dependency on python-ceph-common
2020-08-05 13:37:50 +02:00
Jan Fajerski
cb432fe41d ceph-volume: dependency on python-ceph-common
Since e5b585d15de8b07e0a179344d4187582a5c069f2 ceph-volume depends on
python-ceph-common. This commit introduces this dependency for the
ceph-osd rpm (which includes ceph-volume) and installs the dependency
for tox runs.

Fixes: https://tracker.ceph.com/issues/46772
Fixes: e5b585d15de8b07e0a179344d4187582a5c069f2

Signed-off-by: Jan Fajerski <jfajerski@suse.com>
2020-08-03 17:14:41 +02:00
Joshua Schmid
a55c1dd0fa mgr/osd_support: remove module and all traces
Signed-off-by: Joshua Schmid <jschmid@suse.de>
2020-07-31 10:11:45 +02:00
Sebastian Wagner
0ada965faf python-common, spec.in: Add missing pyyaml dependency
Fixes: cd6a488ab2ca036dd4fb36751b938f605e97e1c8
Fixes: https://tracker.ceph.com/issues/46759
Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
2020-07-30 09:55:08 +02:00
Kefu Chai
db20cfd095 ceph.spec.in: cull _FORTIFY_SOURCE macro from CXXFLAGS for seastar
seastar uses setjmp() and longjmp() to implement coroutine, but
longjmp() is defined as ____longjmp_chk() by GCC if _FORTIFY_SOURC is
defined. ____longjmp_chk() simply bails out with an error message if
the dest stack pointer is higher than the src stack pointer, or the dest
stack pointer is not in the sigaltstack. in the case of seastar, the dst
%sp is not necessarily higher than src stack pointer, and it's not
handling a signal for switching the thread context. that's why we have
the "longjmp causes uninitialized stack frame" error when running
crimson-osd on RHEL/CentOS 8 using the prebuilt rpm packages.

the optflags rpm macro adds -D_FORTIFY_SOURCE=2 to CFLAGS and CXXFLAGS,
so even seastar tries to pass -U_FORTIFY_SOURCE to GCC, there is chance
that cmake append CXXFLAGS at the end of the option list passed to GCC.
and this renders seastar's attempt to undefine _FORTIFY_SOURCE useless.

another way to address this issue is to undefine this macro in
seastar:src/core/thread.cc. but since seastar tries neutralize the macro
in its cmake script instead of source file, i assume they have their
considerations. let's drop it in the rpm recipe instead.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2020-07-23 16:19:56 +08:00
Kefu Chai
3902a5eede rpm,deb: drop python3-six dependency
it's not used anymore.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2020-07-22 11:55:50 +08:00
Kefu Chai
8f1620b3c9 rpm: package crimson-osd in ceph-osd
in hope to simplify the enabling of crimson-osd. as we will use cephadm
as the way for deploying crimson-osd in future. it's unlikely we will
have classic osd and crimson osd co-located in the same system. so
this is most simple way to enable crimson-osd with minimum efforts.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2020-06-30 16:14:18 +08:00
Kefu Chai
338f47fe94 ceph.spec.in: Requires python3-scikit-learn only on fedora and suse
so far, python3-scikit-learn is not packaged by RHEL8/CentOS8 or EPEL8.

see
https://src.fedoraproject.org/rpms/python-scikit-learn/branches?branchname=master

this change should address the regression introduced by
d13b441cdb

Signed-off-by: Kefu Chai <kchai@redhat.com>
2020-06-25 18:19:55 +08:00
Kefu Chai
db4d3ca3aa
Merge pull request #35648 from ideepika/fix-44948
ceph.spec: fix mgr diskprediction_local dependency

Reviewed-by: Kefu Chai <kchai@redhat.com>
2020-06-25 16:10:05 +08:00
Deepika Upadhyay
62093a7eb2 ceph.spec: drop support for el7 for rpm builds
Signed-off-by: Deepika Upadhyay <dupadhya@redhat.com>
2020-06-23 16:35:31 +05:30
Deepika Upadhyay
d13b441cdb ceph.spec: fix mgr diskprediction_local dependency
fixes: https://tracker.ceph.com/issues/44948
Signed-off-by: Deepika Upadhyay <dupadhya@redhat.com>
2020-06-23 14:58:51 +05:30
Neal Gompa
ed6552d506 rpm: Drop override on %_libexecdir
We no longer need it, as distributions are converging on /usr/libexec
since FHS 3.0 has specified it as the acceptable path for libexecdir.

Fedora has been using /usr/libexec since the beginning, and
openSUSE has accepted software installed into /usr/libexec since
September 2019 in openSUSE:Factory. openSUSE Leap 15.x still uses
/usr/lib for %_libexecdir, but the rest of the spec should handle the
change gracefully.

Signed-off-by: Neal Gompa <ngompa13@gmail.com>
2020-06-08 13:15:04 -04:00
Kefu Chai
491fa555f9 ceph.spec.in: use %{_presetdir} for preset settings
the systemd preset settings should not be located under /usr/libexec
```
$ rpm --eval "%{_presetdir}"
/usr/lib/systemd/system-preset
```

see also
https://www.freedesktop.org/software/systemd/man/systemd.preset.html

Signed-off-by: Kefu Chai <kchai@redhat.com>
2020-06-08 13:15:04 -04:00
Neal Gompa
7c8e5de9c7 rpm: Add missing CMake parameter to path to systemd unit dir
This mimics the setting passed to CMake in other package builds,
and ensures that systemd units are installed into the right place.

Signed-off-by: Neal Gompa <ngompa13@gmail.com>
2020-06-08 12:55:28 -04:00
Sebastian Wagner
e0bbb05f56
Merge pull request #35271 from bk201/refactor-template-cephadm
mgr/cephadm: use jinja2 to render templates

Reviewed-by: Ernesto Puerta <epuertat@redhat.com>
Reviewed-by: Sebastian Wagner <sebastian.wagner@suse.com>
2020-06-04 19:50:58 +02:00
Kiefer Chang
64bb27f2f6 mgr/cephadm: add template engine Jinja2
Signed-off-by: Kiefer Chang <kiefer.chang@suse.com>
2020-06-04 16:23:39 +08:00
Kefu Chai
d234e5b06f ceph.spec.in: claim ownership of include/cephfs/metrics
otherwise, "osc build" fails like:

[ 5545s] libcephfs-devel-16.0.0-2172.ga59fb9ffac.x86_64.rpm: directories not owned by a package:
[ 5545s]  - /usr/include/cephfs/metrics

this addresses a regression introduced by
c669de12e0

Signed-off-by: Kefu Chai <kchai@redhat.com>
2020-06-03 20:08:33 +08:00
Venky Shankar
c669de12e0 client: new message type for providing client side metrics
Signed-off-by: Venky Shankar <vshankar@redhat.com>
2020-06-01 04:04:08 -04:00
Jason Dillaman
5938d55e8c rpm,deb: package librbd parent cache plugin with librbd
The librbd parent cache is an initial testbed for librbd plugin
support. The shared library will be packaged with librbd for the
time being.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2020-05-21 14:50:33 -04:00
Patrick Donnelly
356c64a3ff
Merge PR #34596 into master
* refs/pull/34596/head:
	test: add a new program for testing ino_release_cb
	client: add a new inode release request callback
	client: expose ceph_ll_register_callbacks via libcephfs
	client: move callback typedefs and arg struct into ceph_ll_client.h
	client: rename ceph_statx.h to ceph_ll_client.h
	client: make client_dentry_callback_t more friendly for C
	client: only override umask_cb with non-NULL values

Reviewed-by: Xiubo Li <xiubli@redhat.com>
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
Reviewed-by: Zheng Yan <zyan@redhat.com>
Reviewed-by: Greg Farnum <gfarnum@redhat.com>
2020-05-18 15:07:43 -07:00
Jason Dillaman
7f1df0d18a
Merge pull request #34789 from trociny/wip-rbd-nbd-quiesce
rbd-nbd: add quiesce/unquiesce hooks

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
2020-05-15 11:12:50 -04:00
Mykola Golub
8b6e38a6bf rpm,deb: add quiesce hook script to rbd-nbd package
Signed-off-by: Mykola Golub <mgolub@suse.com>
2020-05-09 16:36:49 +01:00
Kefu Chai
d5932cb8de rpm: BuildRequires fmt-devel on el8
it's included in EPEL8 now.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2020-05-09 01:54:55 +08:00
J. Eric Ivancich
9d5e9c3031 doc/rgw: add docs for rgw-orphan-list and ceph-diff-sorted
Add man pages and documentation for both tools.

Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
2020-05-04 13:33:56 -04:00
J. Eric Ivancich
e396064d9a rgw: add rgw-orphan-list tool & radosgw-admin bucket radoslist ...
Adds a `radosgw-admin` subcommand and walks the associated bucket
indices and manifests to generate the list of rados objects that
represent the rgw objects in the bucket(s).

Also adds a tool named `rgw-orphan-list`, which uses the radoslist
subcommand, that produces a list in a local file of what appear to be
rgw orphans.

Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
2020-05-04 13:20:08 -04:00
Jeff Layton
4436f27a04 client: rename ceph_statx.h to ceph_ll_client.h
...so we can use it to include other definitions and types that need to
be shared with in-tree code that doesn't want to include libcephfs.h.

Signed-off-by: Jeff Layton <jlayton@redhat.com>
2020-04-30 16:20:01 -04:00
Kefu Chai
f0a4fc14f0
Merge pull request #34090 from trociny/wip-ceph-erasure-code-tool
tools/erasure-code: new tool to encode/decode files

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
2020-04-27 11:37:00 +08:00
Sebastian Wagner
9f13c126f6 doc/man: add cephadm
Fixes: https://tracker.ceph.com/issues/44971

Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
2020-04-23 13:01:02 +02:00
Mykola Golub
56aaaf8a97 test/erasure-code: remove ceph_erasure_code
Its functionality is moved to ceph-erasure-code-tool.

Signed-off-by: Mykola Golub <mgolub@suse.com>
2020-04-13 18:25:09 +01:00
Mykola Golub
53c75eebbd rpm,deb: add ceph-erasure-code-tool to ceph-osd package
Signed-off-by: Mykola Golub <mgolub@suse.com>
2020-04-13 18:25:09 +01:00
Kefu Chai
9748350a79
Merge pull request #34381 from rhcs-dashboard/fix-44721-master
rpm: add python3-saml as install dependency

Reviewed-by: Kefu Chai <kchai@redhat.com>
2020-04-08 15:25:22 +08:00
Ernesto Puerta
d8d3b33633
rpm: add python3-saml as install dependency
`python.*-saml` is required for Ceph-Dashboard SSO support (optional
feature).

Fixes: https://tracker.ceph.com/issues/44721
Signed-off-by: Ernesto Puerta <epuertat@redhat.com>
2020-04-07 18:06:26 +02:00
Nathan Cutler
853ff61805 ceph.spec.in: remove extra tokens at end of %endif directive
RPM 4.15.1 warns: extra tokens at the end of %endif directive

Heed the warning.

Signed-off-by: Nathan Cutler <ncutler@suse.com>
2020-04-06 23:00:43 +02:00
Nathan Cutler
48c79c1102 ceph.spec.in: version an Obsoletes
RPM 4.15.1 warns: It's not recommended to have unversioned Obsoletes.

Heed the warning.

Signed-off-by: Nathan Cutler <ncutler@suse.com>
2020-04-06 23:00:23 +02:00
Casey Bodley
c89b59428e rgw: remove unused librgw_admin_user
unused and not worth the effort to maintain

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2020-03-25 14:12:55 -04:00
Sage Weil
f1b516d1bf ceph.spec: put prometheus alerts in vendor-neutral location
Signed-off-by: Sage Weil <sage@redhat.com>
2020-03-23 20:13:18 -05:00
Kefu Chai
293e8bdf6c ceph.spec.in: add build deps for Debug build of seastar
it's a regression introduced by
6158bcfdef, which dropped the change to
make Sanitizers optional

since we've switched from xenial to bionic. there is no need to disable
this anymore. we ran into an issue caused by the ancient linker shipped
by xenial before.

Fixes: https://tracker.ceph.com/issues/44658
Signed-off-by: Kefu Chai <kchai@redhat.com>
2020-03-18 11:02:23 +08:00
Sage Weil
603383605f Merge PR #33885 into master
* refs/pull/33885/head:
	Merge pull request #33848 from mchangir/octopus-tests-remove-suprious-whitespace
	Merge PR #33746 into octopus
	Merge PR #33830 into octopus
	Merge PR #33732 into octopus
	Merge PR #33620 into octopus
	Merge pull request #33876 from tchaikov/octopus-cephadm-mypy
	cephadm: add "assert foo is not None" for mypy check
	Merge pull request #33067 from tspmelo/wip-rbd-delete-with-snapshot
	cephadm: add grafana adopt
	Merge PR #33771 into octopus
	Merge PR #33850 into octopus
	Merge PR #33853 into octopus
	Merge PR #33857 into octopus
	Merge PR #32990 into octopus
	Merge PR #33713 into octopus
	Merge PR #33838 into octopus
	qa/tasks/cephadm: no default mon|mgr|crash service specs
	qa/suites/rados/cephadm/upgrade: upgrade start point that supports the no-spec option
	Merge PR #33832 into octopus
	cephadm: bootstrap: wait for mgr to restart after enabling a module
	mgr: add 'mgr_status' tell command
	Merge pull request #33839 from rhcs-dashboard/44538-fix-rgw-grafana-get-put-latencies
	Merge pull request #33743 from votdev/issue_43869_fix_qa_test
	cephadm: create initial mon and mgr service specs too
	cephadm: no need to pregenerate a crash key for the bootstrap host
	mgr/cephadm: do not complain when we don't have enough hosts
	mgr/cephadm: remove orphan daemons
	mgr/cephadm: report size=0 for fabricated ServiceDescription
	mgr/cephadm: safety check to prevent removing all mon|mgr daemons
	mgr/cephadm: prevent scaling mon|mgr below count=1
	mgr/cephadm: do not remove daemons from remove_service
	Merge pull request #33805 from tchaikov/wip-44500
	spec: Podman (temporarily) requires apparmor-abstractions on suse
	mgr/cephadm: Make sure we don't co-locate the same daemon
	monitoring: fix RGW grafana chart 'Average GET/PUT Latencies'
	tests: remove spurious whitespace
	mgr/cephadm: fix service list filtering
	Merge PR #33825 into octopus
	Merge PR #33811 into octopus
	Revert "Merge pull request #33673 from cbodley/wip-denc-enum"
	mgr/cephadm: fix upgrade order
	Merge PR #33801 into octopus
	Merge PR #33822 into octopus
	cephadm: bootstrap: tolerate error return from -h
	Merge PR #33809 into octopus
	Merge PR #32678 into octopus
	cephadm: use `sh` instead of `bash` during enter
	ceph.in: only shut down rados on clean exit
	common/ceph_timer: Pass reference to waited time on stack
	common/ceph_timer: Add test
	common/ceph_timer: Use unique_function, allowing noncopyable events
	common/ceph_timer: Couple cleanups
	common/ceph_timer: Fix namespaces
	common/ceph_timer: Add missing includes
	common/ceph_timer.h: Don't indent contents of a namespace
	mgr/dashboard: Crush rule modal
	mgr/dashboard: Preserve rule selection on pool type change
	mgr/dashboard: Crush rule is only send during replicated pool creation
	mgr/dashboard: Explicit returns in pool form
	mgr/dashboard: Removes fork join in pool form
	mgr/dashboard: Hide ECP actions during ec pool edit
	mgr/dashboard: Pool form erasure/replicated boolean
	mgr/dashboard: Change pool info API endpoint
	mgr/dashboard: Moves ECP info endpoint to UI-API
	mgr/cephadm: add _remove_osds_bg back to main loop
	mgr/cephadm/osd: update removal report immediately
	qa/tasks/ceph_manager: use StringIO for capturing COT output
	qa/standalone/scrub/osd-scrub-repair: force osdmap prop to osds
	qa/standalone/scrub/osd-scrub-test: wait longer for update
	qa/tasks/ceph_manager: capture stderr for COT
	qa/suites/rados/ceph: drop opensuse for now
	mon/MonClient: send logs to mon on separate schedule than pings
	mgr/dashboard: Fix missing ImageSpec usage
	mgr/dashboard: Allow removing RBD with snapshots
	mgr/dashboard: Refactor and cleanup tasks.mgr.dashboard.test_user
	mgr/dashboard: support multiple DriveGroups when creating OSDs
	mon/MonClient: send logs to mon even if we have no keelalive2
	cephadm: flag dashboard user to change password

Reviewed-by: Sebastian Wagner <swagner@suse.com>
2020-03-11 17:38:59 -05:00
Sebastian Wagner
070e5c3e35 spec: Podman (temporarily) requires apparmor-abstractions on suse
`apparmor-abstractions` contains a profile that is required to run podman containers.

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

Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
2020-03-10 13:57:25 +01:00
Nathan Cutler
fd7cb3dae5 rpm: drop "is_opensuse" conditional in SUSE-specific bcond block
Until now, "ocf" and "libradosstriper" were disabled on SLE, but not
openSUSE.

Leaving them enabled for openSUSE makes it appear as if these features
are expected to do something useful on SUSE.

Dropping the "is_opensuse" conditional has the desirable side effect of
streamlining the SUSE bcond block, and in the spirit of "and that's not
all", we take the opportunity to put the bconds in alphabetical order
for comforting cosmetic effect.

Signed-off-by: Nathan Cutler <ncutler@suse.com>
2020-03-06 10:26:44 +01:00
Mykola Golub
62620fc7d3 rpm,deb: fix python dateutil module dependency
(needed for mgr/rbd_support)

Signed-off-by: Mykola Golub <mgolub@suse.com>
2020-02-28 16:29:26 +00:00
Jason Dillaman
d5b155df9b
Merge pull request #33389 from trociny/wip-43619
rbd: schedule for running trash purge operations

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
2020-02-27 18:21:14 -05:00
Patrick Seidensal
c0c7f7dacc rpm,deb: poke Python OpenSSL dependencies
to ceph-mgr-modules-core package.

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

Signed-off-by: Patrick Seidensal <pseidensal@suse.com>
2020-02-26 15:48:57 +01:00
Mykola Golub
19e5af1433 mgr/rbd_support: use dateutil parser intead of datetime fromisoformat
fromisoformat is available since python 3.7 only.

Signed-off-by: Mykola Golub <mgolub@suse.com>
2020-02-25 09:52:22 +00:00
Kefu Chai
659b09a04d
Merge pull request #33435 from tchaikov/wip-viva-la-module
deb,rpm,doc: s/plugin/module/

Reviewed-by: Ernesto Puerta <epuertat@redhat.com>
Reviewed-by: Sebastian Wagner <swagner@suse.com>
Reviewed-by: Neha Ojha <nojha@redhat.com>
Reviewed-by: Laura Paduano <lpaduano@suse.com>
2020-02-21 19:38:33 +08:00
Kefu Chai
44df72357c rpm,deb: s/plugin/module/
Signed-off-by: Kefu Chai <kchai@redhat.com>
2020-02-20 22:15:54 +08:00
Kefu Chai
589626464d rpm,deb: package always-enabled plugins in a separated package
ceph-mgr depends on it in the sense that these plugins are
a hard dependency of ceph-mgr. like cmake depends on cmake-data,
even if the later cannot function on its own without the former.

the reason why we need a separated package is that mgr modules
are written in python, and should be arch independent. this change
helps the downstream to understand this and help to minimize the
divergence between upstream and downstream, because distros like
debian and its derivatives encourage splitting architecture independent
data into its own package.
see
https://www.debian.org/doc/manuals/developers-reference/best-pkging-practices.html#architecture-independent-data

also, the python related runtime dependencies are also moved into
ceph-mgr-modules-core.

if a python dependency is shared by another ceph-mgr-* package and
ceph-mgr-modules-core. it's only added to ceph-mgr-modules-core for
simplicity and consistency. as the name of dependency might vary
on different distros, so it's tedious and error-prone to repeat
these conditons and checks.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2020-02-20 22:00:37 +08:00
Kefu Chai
6cfd31cdbb ceph.spec.in: update to adapt to el7
make sure ceph-mgr installs on el7

Signed-off-by: Kefu Chai <kchai@redhat.com>
2020-02-20 21:49:05 +08:00
Sage Weil
151f88d7f9 Merge PR #32677 into master
* refs/pull/32677/head:
	build/ops: make/install osd_support package
	mgr/osd_support: move docs to docs/mgr/osd_support.rst
	mgr/osd_support: new module for osd utility calls

Reviewed-by: Neha Ojha <nojha@redhat.com>
2020-02-19 14:50:40 -06:00
Joshua Schmid
acc05bf06d
build/ops: make/install osd_support package
Signed-off-by: Joshua Schmid <jschmid@suse.de>
2020-02-19 10:33:26 +01:00
Sebastian Wagner
932fd0bb61 spec: ceph-mgr: add missing python3-pyyaml
Remove stray req from the -k8events package, since the base ceph-mgr now
requires it.

Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
2020-02-18 20:03:57 -06:00
Sebastian Wagner
36a5890fb7 debian,spec: Rename orchestrator_cli to orchestrator
Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
2020-02-17 10:24:01 +01:00
Kiefer Chang
02d56cf7b0
ceph.spec.in: fix python coverage dependency for non-rhel distros
The coverage package under openSUSE (and other distros) are named as
python{major_version}-coverage (without minor version).

Fixes: https://tracker.ceph.com/issues/44164
Signed-off-by: Kiefer Chang <kiefer.chang@suse.com>
2020-02-17 12:12:26 +08:00
Sage Weil
c42668c47a Merge PR #32775 into master
* refs/pull/32775/head:
	ceph.spec.in: fix python3 dependencies in centos7

Reviewed-by: Kefu Chai <kchai@redhat.com>
2020-02-15 08:37:41 -06:00
Nathan Cutler
6dbe449efe
Merge pull request #32805 from smithfarm/wip-cmake-logging
rpm: add cmake_verbose_logging switch

Reviewed-by: David Disseldorp <ddiss@suse.com>
Reviewed-by: Jan Fajerski <jfajerski@suse.com>
2020-02-13 20:00:27 +01:00
Nathan Cutler
5e98d22380 rpm: add cmake_verbose_logging switch
This switch sets CMAKE_VERBOSE_MAKEFILE and causes the CMakeOutput.log
and CMakeError.log files to be dumped after cmake execution finishes.

Signed-off-by: Nathan Cutler <ncutler@suse.com>
2020-02-13 15:13:24 +01:00