Commit Graph

1438 Commits

Author SHA1 Message Date
Casey Bodley
ed45894c74 debian/mgr: remove pytest from debian/ceph-mgr-dashboard.requires
pytest isn't listed in ceph.spec.in for rpm builds, so it probably isn't
really a requirement for debian

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2023-02-16 18:38:21 -05:00
Kefu Chai
cf6089200d mgr/prometheus: use vendored "packaging" instead
instead of using the top-level "packaging" module, use the one
vendored by setuptools.

packaging python module provides versioning defined by PEP-440.
but python3-packaging is provided by CentOS8 powertools repo,
which is not enabled by default. and in CentOS9, this package
is provided by AppStream instead of BaseOS.

as prometheus mgr module is included by ceph-mgr-module-core,
it would be desirable if our user can install ceph-mgr-module-core
without enabling powertools or AppStream repo on a CentOS or
its derivative distros.

fortunately, setuptools vendors packaging module. and both
CentOS8 and CentOS9 provide python3-setuptools in their BaseOS
repos.

in this change, instead of using "packging" module, we use the
venderored one, which is in turn embedded in pkg_resources.
this python module is provided by python3-setuptools on CentOS
distros, and python3-pkg-resources on Debian and its derivatives.

the packaging recipes are updated accordingly to reflect the
new runtime dependency.

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2023-01-11 20:31:03 +08:00
Marcus Watts
28864311d3 rgw: added rgw-policy-check
rgw-policy-check - a program to do syntax checking on bucket policy.
This program just reads the policy into memory, so it is not
checking anything except syntax.

Signed-off-by: Marcus Watts <mwatts@redhat.com>

rgw: Fix return value of `rgw-policy-check`

Signed-off-by: Adam C. Emerson <aemerson@redhat.com>

rgw: Use ceph initialization in `rgw-policy-check`

Specifically so we can pull in the options from `ceph.conf` and similar.

Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
2022-12-13 16:41:52 -05:00
Martin Ohmacht
a6658c91bb blk/kernel: add plugin system for devices with compression and move VDO support into plugin
The current VDO support implementation is buried inside the common/blkdev.cc
with a simple interface used by KernelDevice. It is not easily extendable
and can not be easily used for other devices providing similar capabilities.
This patch adds a plugin system that is based in its structure on the
erasure code plugin system and moves the VDO support code into a VDO plugin.

Signed-off-by: Martin Ohmacht <mohmacht@us.ibm.com>
2022-09-28 14:09:04 -04:00
Michael Fritch
f756b3cfcc rpm, debian: use cmake to install the cephadm binary
Signed-off-by: Michael Fritch <mfritch@suse.com>
2022-09-13 12:17:20 -04:00
Josh Durgin
857f2bdb60
Merge pull request #47288 from batrick/i56274
debian: add libsqlite3-mod-ceph dependency for ceph-mgr

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
Reviewed-by: Kefu Chai <tchaikov@gmail.com>
2022-08-18 09:29:28 -07:00
Aswin Toni
2e0e684fc2 ceph-mixin: Remove jsonnet building
Signed-off-by: Aswin Toni <aswin.toni@cern.ch>
2022-08-17 12:08:56 +02:00
Casey Bodley
7ef6250a93
Merge pull request #47504 from cbodley/wip-57050
rgw/cmake: stop building all of radosgw a shared lib

Reviewed-by: Daniel Gryniewicz <dang@redhat.com>
2022-08-09 17:12:03 -04:00
Kefu Chai
075b31c1c7 pybind/mgr/dashboard: do not use distutils.version.StrictVersion
replace `distutils.version.StrictVersion` with
`pkg_resources.parse_version()`

as the former is deprecated, see https://peps.python.org/pep-0632/.
let's use `pkg_resources` instead. this change also addresses
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1010894.
we have this issue when testing with an ubuntu jammy test node.
see https://bugs.launchpad.net/ubuntu/+source/ceph/+bug/1967139

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2022-08-09 21:04:34 +08:00
Casey Bodley
69a231888e rgw/cmake: stop building all of radosgw a shared lib
Fixes: https://tracker.ceph.com/issues/57050

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2022-08-08 11:10:11 -07:00
Kefu Chai
04967404ed cmake,debian: install pure python module to deb_system path
in ubuntu 22.04 and debian unstable, the layout (scheme) for system
python module is named "deb_system", the default one is 'posix_local'.
and 'posix_local' installs python modules into paths like
usr/local/lib/python3.10/dist-packages/. hence dh_install fails
when it tries to find the files to be packaged under directory of
usr/lib/python3*/site-packages/.

in this change, the "deb_system" scheme is used if it is available,
and fall back to "posix_prefix" to be backward compatible with older
debian (derivative) distros.

also, update the source directories of pure python's installation
from `site-packages` to `*-packages`, to be compatible with ubuntu focal
and ubuntu jammy. as we are now using the specified scheme instead of
the default one.

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2022-08-05 09:10:04 +08:00
Kefu Chai
9f00a70232 debian: use dpkg/default.mk to init popular make variables
Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2022-08-04 16:35:20 +08:00
Patrick Donnelly
9cde84eab4
debian: add libsqlite3-mod-ceph versioned dep for ceph-mgr
Without this, upgrades will keep older versions of the libcephsqlite3
module.

Fixes: https://tracker.ceph.com/issues/56274
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2022-08-02 09:08:19 -04:00
Casey Bodley
79d7ae7195 debian: pin gcc-11
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2022-07-30 13:02:16 +08:00
Yin Congmin
b6b24852a6 cmake: add findndctl and finddaxctl function
In order to support the character device of pmem usage in bluestore via
libpmem built by Ceph itself, we need to enable daxctl and ndctl
dependency. add the installation of ndctl and find it. the version of
ndctl and daxctl library requires >63. "apt-get install" meet the version
under ubuntu focal.

the installation of ndctl-devel in ceph.spec.in has not been verified.

Signed-off-by: Yin Congmin <congmin.yin@intel.com>
2022-07-12 10:32:57 +08:00
Yin Congmin
693ad56503 install-deps: install pmdk libraries
Install libpmem and libpmemobj under focal ubuntu. the version of apt
list can meet the current requirements. libpmemobj require >=1.8.
Libpmem has no version requirements.

Signed-off-by: Yin Congmin <congmin.yin@intel.com>
2022-06-25 20:44:02 +08:00
Venky Shankar
c34fd00339
Merge pull request #46295 from dparmar18/tracker3998
mds: split up mdstypes

Reviewed-by: Venky Shankar <vshankar@redhat.com>
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
Reviewed-by: Neeraj Pratap Singh <neesingh@redhat.com>
Reviewed-by: Greg Farnum <gfarnum@redhat.com>
Reviewed-by: Xiubo Li <xiubli@redhat.com>
Reviewed-by: Nikhilkumar Shelke <nshelke@redhat.com>
Reviewed-by:  Rishabh Dave <ridave@redhat.com>
2022-06-20 09:59:53 +05:30
dparmar18
f2bfea5bfd mds: add include/cephfs/types.h path in spec files
Signed-off-by: Dhairya Parmar <dparmar@redhat.com>
2022-06-08 11:49:17 +05:30
Kefu Chai
6726fe7304
Merge pull request #46416 from tchaikov/wip-debian-dh-python3
debian: python3 related cleanups

Reviewed-by: Redouane Kachach <rkachach@redhat.com>
Reviewed-by: Ernesto Puerta <epuertat@redhat.com>
2022-06-05 21:44:41 +08:00
Yuval Lifshitz
042f3c7978
Merge pull request #44684 from zenomri/wip-omri-tracing-compiled
tracer: set tracing compiled in by default
2022-06-02 20:22:17 +03:00
Kefu Chai
42f5465755 debian: extract python3 packages to a single place
to better maintainability

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2022-05-31 19:42:32 +08:00
Kefu Chai
ef19547e83 debian: add .requires for specifying python3 deps
we use dh_python3 to define subvar of ${python3:Depends} as a part
of the runtime dependencies of python3 packages, like,
ceph-mgr modules named "ceph-mgr-*", python3 bindings named "python3-*".

but unlike python3 bindings of Ceph APIs, the ceph-mgr modules are
not packaged in a typical python way. in other words, they do not
ship a "dist-info" or an "egg-info" directory. instead, we just
install the python scripts into a directory which can be found by
ceph-mgr, by default it is /usr/share/ceph/mgr/dashboard/plugins.

this does not follow the convention of python packaging or
debian packaging policies related to python package. but it
still makes to put these files in this non-convention place, as
they are not supposed to be python packages consumed by the
outer world -- they are but plugins. and should always work
with the same version of ceph-mgr.

the problem is, despite that we have ${python3:Depends} in
the "Depends" field of packages like ceph-mgr-dashboard, dh_python3
is not able to figure out the dependencies by looking at the
installed files. for instance, we have following "Depends" of
ceph-mgr-dashboard:

Depends: ceph-mgr (= 17.0.0-12481-g805d2320-1focal), python3-cherrypy3, python3-jwt, python3-bcrypt, python3-werkzeug, python3-routes

and in the debian/control file we have:

Depends: ceph-mgr (= ${binary:Version}),
         python3-cherrypy3,
         python3-jwt,
         python3-bcrypt,
         python3-werkzeug,
         python3-routes,
         ${misc:Depends},
         ${python:Depends},
         ${shlibs:Depends},

apparently, none of the subvar is materialized to
a non-empty string.

to improve the packaging, in this change:

* drop all subvars from ceph-mgr-*, as they
  are all implemented in pure python.
* add debian/ceph-mgr-*.requires, it's content
  is replicated with the corresponding requirements.txt
  files.
  * add python3-distutils for distutils, as debian
    and its derivatives package non-essetial part of
    distutils into a separate package, see
    https://packages.debian.org/stable/python3-distutils
* add ${python3:Depends} so dh_python3
  can extract the deps from debian/ceph-mgr-*.pydist
* update the rule for "override_dh_python3" target,
  so dh_python3 can pick up the dependencies specified
  in .requires file.
* remove the python3 dependencies not used by
  ceph-mgr from ceph-mgr's "Depends"

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2022-05-31 19:42:32 +08:00
Kefu Chai
23501918de debian: s/${python:Depends}/${python3:Depends}/
${python:Depends} is added by dh_python2. but we've migrated to
python3 and Ceph is not compatible with python2 anymore. let's
replace all references of python2 with python3.

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2022-05-28 20:55:50 +08:00
John Mulligan
b66ec81595 debian: include the new object_format.py file
This was missed when adding object_format.py to the RPM packaging.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
2022-05-26 10:56:44 -04:00
Deepika Upadhyay
bee4d993fb debian: make jaeger package installation as default
jaeger opentelemetry deps that will be installed by default now:
libyaml-dev  > 0.6
libthrift-dev (thift deps: libevent-dev, bison, flex, boost(we use ceph compiled boost))
nlohmann-json3-dev

removes:
pkg.ceph.jaeger build package optional option

Signed-off-by: Deepika Upadhyay <dupadhya@redhat.com>
2022-05-17 04:38:01 -04:00
Casey Bodley
f0e30f67ab
Merge pull request #45064 from s-t-e-v-e-n-k/no-direct-use-of-nose
test: No direct use of nose

Reviewed-by: Casey Bodley <cbodley@redhat.com>
2022-05-11 12:28:48 -04:00
Ilya Dryomov
b100d1fb5b
Merge pull request #45677 from ideepika/wip-ninja-default
ceph.spec: make ninja-build package install always

Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Tim Serong <tserong@suse.com>
2022-04-12 10:57:30 +02:00
Casey Bodley
35058f6794
Merge pull request #45696 from cbodley/wip-cmake-system-utf8proc
cmake: WITH_SYSTEM_UTF8PROC defaults to OFF

Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Laura Flores <lflores@redhat.com>
2022-04-04 10:16:13 -04:00
Deepika Upadhyay
fa7821dd00 build: make ninja-build package install always
we use ninja build as default build now, having it installed only with
make check enabled may make builds fail, if ran without make check.

Signed-off-by: Deepika Upadhyay <dupadhya@redhat.com>
2022-04-04 12:57:27 +05:30
Steve Kowalik
47fba6f5b4 ceph.spec.in,debian/control: Remove nose
With the direct calls of nose methods removed, we no longer need to
BuildRequire it.

Fixes: https://tracker.ceph.com/issues/54252
Signed-off-by: Steve Kowalik <steven@wedontsleep.org>
2022-04-04 11:55:15 +10:00
Kefu Chai
e6eee05222 debian: install from site-packages to dist-packages
this change addresses the regression introduced by
637dd7b40404e644519b1fc3b5ef03f2d18def00

dist-packages is a debian specific directory for holding 3rd party
python modules. so install the pure python packages into it.

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2022-04-01 13:14:23 +08:00
Koen Kooi
b7b381fe91 debian/control: fix python3-cherrypy*3* dependency
The trailing '3' was missed in one instance, ceph-mgr-cephadm, leading to:

	Some packages could not be installed. This may mean that you have
	requested an impossible situation or if you are using the unstable
	distribution that some required packages have not yet been created
	or been moved out of Incoming.
	The following information may help to resolve the situation:

	The following packages have unmet dependencies:
	 ceph-mgr-cephadm : Depends: python3-cherrypy but it is not installable

Which makes the installation fail.

Fixes: 78983ad0d0
Signed-off-by: Koen Kooi <koen@softiron.com>
2022-03-30 05:18:51 -07:00
Casey Bodley
90662cad56 cmake: WITH_SYSTEM_UTF8PROC defaults to OFF
change the default value of WITH_SYSTEM_UTF8PROC from ON to OFF, so that
centos/rhel users can build with the default cmake configuration. no other
WITH_SYSTEM_* variable in ceph defaults to ON, so this is consistent
with other bundled libraries like boost and rocksdb

unfortunately, this also means that users that do have system packages
must opt-in to using them with -DWITH_SYSTEM_UTF8PROC=ON

both deb and rpm builds dependended on the previous default value, so
their logic was negated to match the new default

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

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2022-03-29 17:49:18 -04:00
Redouane Kachach
dadbd72996
mgr/cephadm: fixing natsort dependencies on debian
Signed-off-by: Redouane Kachach <rkachach@redhat.com>
2022-03-24 09:47:49 +01:00
Casey
e8460cbd5a deb: add build profile for system arrow
Signed-off-by: Casey <cbodley@redhat.com>
2022-03-14 10:19:02 -04:00
Casey Bodley
2ca6d75521 cmake: add submodule for Apache Arrow at v6.0.1
adds an arrow submodule. when WITH_RADOSGW_SELECT_PARQUET is enabled,
the submodule is built as an external project and rgw links against its
imported Arrow::Parquet target

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2022-03-14 10:19:02 -04:00
Redouane Kachach
7e646d9958
mgr/cephadm: Adding python natsort module
Needed by: https://tracker.ceph.com/issues/54026

Signed-off-by: Redouane Kachach <rkachach@redhat.com>
2022-02-23 11:39:40 +01:00
Nizamudeen A
27592b7561 cephadm: change shared_folder directory for prometheus and grafana
After https://github.com/ceph/ceph/pull/44059 the monitoring/prometheus
and monitoring/grafana/dashboards directories are changed to
monitoring/ceph-mixins. That broke the shared_folders in the cephadm
bootstrap script.

Changed all the instances of monitoring/prometheus and
monitoring/grafana/dashboards to monitoring/ceph-mixins

Also, renaming all the instances of prometheus_alerts.yaml to
prometheus_alerts.yml.

Fixes: https://tracker.ceph.com/issues/54176
Signed-off-by: Nizamudeen A <nia@redhat.com>
2022-02-07 16:34:37 +05:30
Arthur Outhenin-Chalandre
ecaf9070ae
spec: debian: monitoring: build jsonnet from source to use 0.18.0
As this new version is recently released it's still not in every distro
we use. We now build jsonnet from source so that we can use this new
version of jsonnet. This commit could be reverted later on when the new
version would be available everywhere.

Signed-off-by: Arthur Outhenin-Chalandre <arthur.outhenin-chalandre@cern.ch>
2022-02-03 13:08:36 +01:00
Arthur Outhenin-Chalandre
98236e3a1d
mgr/dashboard: monitoring: refactor into ceph-mixin
Mixin is a way to bundle dashboards, prometheus rules and alerts into
jsonnet package. Shifting to mixin will allow easier integration with
monitoring automation that some users may use.

This commit moves `/monitoring/grafana/dashboards` and
`/monitoring/prometheus` to `/monitoring/ceph-mixin`. Prometheus alerts
was also converted to Jsonnet using an automated way (from yaml to json
to jsonnet). This commit minimises any change made to the generated files
and should not change neithers the dashboards nor the Prometheus alerts.

In the future some configuration will also be added to jsonnet to add
more functionalities to the dashboards or alerts (i.e.: multi cluster).

Fixes: https://tracker.ceph.com/issues/53374
Signed-off-by: Arthur Outhenin-Chalandre <arthur.outhenin-chalandre@cern.ch>
2022-02-03 13:08:20 +01:00
Arthur Outhenin-Chalandre
e102620394
spec: debian: add golang as build dependency
Add golang as a build dependency to build golang project in the test
for monitoring/ceph-mixin.

Signed-off-by: Arthur Outhenin-Chalandre <arthur.outhenin-chalandre@cern.ch>
2022-02-03 09:49:55 +01:00
Casey Bodley
fb90d0ebdf build: revert arrow package dependency
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2022-01-14 14:54:09 -05:00
Casey Bodley
f65b59be85
Merge pull request #40802 from galsalomon66/wip-s3select-parquet-object-processing-2
RGW/s3select : parquet implementation:

Reviewed-by: Matt Benjamin <mbenjamin@redhat.com>
Reviewed-by: Casey Bodley <cbodley@redhat.com>
2022-01-13 12:53:33 -05:00
gal salomon
e3254b6306 parquet implementation:
(1) adding arrow/parquet to make(install is missing)
(2) s3select-operation contains 2 flows CSV and Parquet
(3) upon parquet-flow s3select processing engine is calling (via callback) to get-size and range-request, the range-requests are a-sync, thus the caller is waiting until notification.
(4) flow : execute --> s3select --(arrow layer)--> range-request --> GetObj::execute --> send_response_data --> notify-range-request --> (back-to) --> s3select
(5) on parquet flow the s3select is handling the response (using call-backs) because of aws-response-limitation (16mb)

add unique pointer (rgw_api); verify magic number for parquet objects; s3select module update
fix buffer-over-flow (copy range request)
change the range-request flow. now,it needs to use the callback parametrs (ofs & len) and not to use the element length
refactoring.  seperate the CSV flow from the parquet flow, a phase before adding conditional build(depend on arrow package installation)
adding arrow/parquet installation to debian/control
align s3select repo with RGW (missing API"s, such as get_error_description)
undefined reference to arrow symbol
fix comment: using optional_yield by value
fix comments; remove future/promise
s3select: a leak fix
s3select: fixing result production
s3select,s3tests : parquet alignments
typo: git-remote --> git_remote
s3select: remove redundant comma(end of projections); bug fix in parquet flow upon aggregation queries
adding arrow/parquet
editorial. remove blank lines
s3select: merged with master(output serialization,presto alignments)
merging(not rebase) master functionlities into parquet branch

(*) a dedicated source-files for s3select operation.
(*) s3select-engine: fix leaks on parquet flows, enabling allocate csv_object and parquet_object on stack
(*) the csv_object and parquet object allocated on stack (no heap allocation)

move data-members from heap to stack allocation, refactoring, separate flows for CSV and parquet. s3select: bug fix

conditional build: upon arrow package is installed the parquet flow become visable, thus enables to process parquet object. in case the package is not installed only CSV is usable

remove redundant try/catch, s3select: fix compile warning

arrow-devel version should be higher than 4.0.0, where arrow::io::AsyncContext become depecrated

missing sudo; wrong url;move the rm -f arrow.list

replace codename with $(lsb_release -sc)

arrow version should be >= 4.0.0; iocontext not exists in namespace on lower versions

RGW points to s3select/master

s3select submodule

sudo --> $SUDO

Signed-off-by: gal salomon <gal.salomon@gmail.com>
2022-01-12 23:15:21 +02:00
Yuri Weinstein
6e408e557b
Merge pull request #43993 from SMIL-Infra/cmake-systemd-cleanup
cmake: cleanups about systemd and install

Reviewed-by: Kefu Chai <kchai@redhat.com>
2022-01-07 15:35:42 -08:00
Josh Durgin
facf0d35b1
Merge pull request #43598 from ideepika/wip-opentelemetry
migrate from using opentracing-cpp to opentelemetry-cpp static as distributed tracing API

Reviewed-by: Yuval Lifshitz <ylifshit@redhat.com>
Reviewed-by: Josh Durgin <jdurgin@redhat.com>
2021-12-22 07:25:13 -08:00
Deepika Upadhyay
4128106de3 debian: remove libjaeger packaging
we no longer need to package libjaeger, as we would be using
libopentelemetry static libraries(until we support shared).

Signed-off-by: Deepika Upadhyay <dupadhya@redhat.com>
2021-11-24 19:59:18 +05:30
胡玮文
8e49d36170 cmake: fix default systemd unit install dir
The original usage of CMAKE_INSTALL_LIBEXECDIR is incorrect.

Also try to get the path from pkg-config

Signed-off-by: 胡玮文 <huww98@outlook.com>
2021-11-18 15:07:26 +08:00
Adam C. Emerson
447564e4db build: Remove LevelDB support
Whereas new LevelDB packages are build with -fno-rtti and break our
attempts to compile against them,

and whereas LevelDB has been deprecated for some time, with the Ceph
team expending great effort to migrating OSDs off of it,

let it be therefore removed.

Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
2021-11-01 12:42:17 -04:00
Brad Hubbard
e7a8d094bc
Merge pull request #43291 from badone/wip-missing-hostname-dependency
rpm, debian: We depend on 'hostname'

Reviewed-by: Kefu Chai <kchai@redhat.com>
2021-09-27 14:21:14 +10:00
Brad Hubbard
cf932436c8 rpm, debian: Add hostname as a "make check" dependency
test_hostname.cc depends on the hostname binary.

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

Signed-off-by: Brad Hubbard <bhubbard@redhat.com>
2021-09-27 11:03:55 +10:00
Adam King
78983ad0d0 mgr/cephadm: cephadm agent 2.0
Creates an http endpoint in mgr/cephadm to receive
http requests and an agent that can be deployed on
each host that will gather metadata on the host and
send it to the mgr/cephadm http endpoint. Should save the
cephadm mgr module a lot of time it would have to spend
repeatedly ssh-ing into each host to gather the metadata
and help performance on larger clusters.

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

Signed-off-by: Adam King <adking@redhat.com>
2021-09-24 07:23:50 -04:00
Brad Hubbard
9630b2d8df Revert "rpm, debian: drop xmlstarlet from build deps"
This reverts commit 707edc0b2d5283104aeb472131ee94dd59544290.

This commit was somewhat premature in removing the xmlstarlet
dependency.

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

Signed-off-by: Brad Hubbard <bhubbard@redhat.com>
2021-09-21 13:20:13 +10:00
Kefu Chai
707edc0b2d rpm, debian: drop xmlstarlet from build deps
xmlstarlet is not used anymore while performing "make check", so drop it
from the build dependency list.

it is still used by the teuthology test though, so keep it as a
dependency of ceph-test.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-09-14 23:25:19 +08:00
Kefu Chai
94945b6408 ceph.spec, debian: move deps from base to ceph-volume
this change makes util-linux, xfsprogs and e2fsprogs runtime deps of ceph-volume

ceph-volume uses blkid and lsblk, which are in turn packaged by
util-linux.

util-linux were added as build dependency to fulfill the needs of
ceph-disk. and we tested ceph-disk as part of "make check", since
ceph-disk was dropped, there is no need to have util-linux as
build dependency anymore.

the same applies to e2fsprogs and xfsprogs

see also a99177834120e7a2c4592054f6a8b8736e0ffb92

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-09-14 23:25:19 +08:00
Kefu Chai
fd9d563a51 debian/control: make cryptsetup-bin a ceph-volume runtime dep
was originally added by 6a45b8ed041514816d09b2808d2d390eadbd0dd9 and
cfcaceac44d6b7b7c55e81d0bfb05f4893f3b1d0 as a dependency of ceph-disk.
although, ceph-disk was replaced by ceph-volume, cryptsetup-bin is still
used.

but it should be a runtime dependency of ceph-volume. and it is not a
build dependency of ceph, so it's removed from the build dependency list
as well.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-09-14 23:25:19 +08:00
Kefu Chai
c6c260f15b debian: split ceph-volume into a separated package
ceph-volume is a tool implemented in pure python, so it would be better
to make it a architecture independent package for better
maintainability.

in this change

* ceph-volume is extracted out into a separated package
* ceph-volume depends on ceph-osd, as it deploys it and relies on
  an already-installed ceph-osd in the system.
* ceph-osd recommends ceph-volume. as ceph-osd can be used as a
  standalone package. but ceph-volume enhances it. also, to ensure
  the existing users to get ceph-volume installed along with
  ceph-osd.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-09-14 23:19:54 +08:00
Kefu Chai
c1d60c4d00 rpm,deb: make parted runtime dependency of ceph-osd
we don't run parted when building ceph, instead, it is a runtime
dependency of ceph-volume, which is packaged in ceph-osd.

so in this change

* parted is removed from build dependency list
* parted is added as a runtime depedency of ceph-osd.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-09-14 23:18:05 +08:00
David Galloway
4f21d41b73 debian/control: dh-systemd is part of debhelper now
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=822670

Signed-off-by: David Galloway <dgallowa@redhat.com>
2021-09-10 11:56:58 -04:00
Neha Ojha
de8a68b768
Merge pull request #41912 from trociny/wip-crushdiff
tools/crushdiff: new tool to test crushmap change

Reviewed-by: Neha Ojha <nojha@redhat.com>
2021-08-31 14:18:37 -07:00
Deepika Upadhyay
879f2056cb
Merge pull request #42913 from yaarith/update-sudoers-smartctl
rpm, debian: move smartmontools and nvme-cli to ceph-base

Reviewed-by: Ken Dreyer <kdreyer@redhat.com>
Reviewed-by: Deepika Upadhyay <dupadhya@redhat.com>
2021-08-30 14:26:03 +05:30
Yaarit Hatuka
7ca39fa92b rpm, debian: move smartmontools and nvme-cli to ceph-base
We wish to be able to scrape SMART and NVMe metrics from OSD and MON
nodes. For this we require / recommend smartmontools and nvme-cli
dependencies for both the ceph-osd and ceph-mon packages.  However, the
sudoers file (which is required for invoking `smartctl` by user 'ceph')
was installed only in the ceph-osd package.  Since different packages
cannot own the same file, and because we want to be able to scrape from
every daemon, we move the dependencies and the sudoers installation to
ceph-base. For generalization, we rename:
	sudoers.d/ceph-osd-smartctl -> sudoers.d/ceph-smartctl

Fixes: https://tracker.ceph.com/issues/50657
Signed-off-by: Yaarit Hatuka <yaarit@redhat.com>
2021-08-25 13:20:23 +00:00
Mykola Golub
8ecae46345 doc: add crushdiff(8) man page
Signed-off-by: Mykola Golub <mykola.golub@clyso.com>
2021-08-24 11:09:08 +03:00
Mykola Golub
6c73184b21 tools/crushdiff: new tool to test crushmap change
A tool to test the effect (number of pgs, objects, bytes moved)
of a crushmap change. This is a wrapper around osdmaptool, hardly
relying on its --test-map-pgs-dump option to get the list of
changed pgs.  Additionally it uses pg stats to calculate the
numbers of objects and bytes moved.

Signed-off-by: Mykola Golub <mykola.golub@clyso.com>
2021-08-24 09:20:28 +03:00
Ken Dreyer
cbc0127f34 rpm, debian: remove lsb-release
Nothing requires this any more, so we can remove it from the RPM
and Debian packaging.

Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
2021-08-18 13:08:24 -04:00
Ernesto Puerta
afadfede0d
Merge pull request #42194 from rhcs-dashboard/add-grafonnet-grafana
mgr/dashboard: monitoring: replace Grafana JSON with Grafonnet based code
2021-08-11 18:11:59 +02:00
Aashish Sharma
e9bd94515f mgr/dashboard: monitoring: replace Grafana JSON with Grafonnet based Code
This PR intends to add grafonnet to generate grafana JSON files

Fixes: https://tracker.ceph.com/issues/45184
Signed-off-by: Aashish Sharma <aasharma@redhat.com>
2021-08-11 19:23:54 +05:30
Kefu Chai
a17ebc0406
Merge pull request #42575 from tchaikov/wip-venv
*: s/virtualenv/python -m venv/

Reviewed-by: Sebastian Wagner <sewagner@redhat.com>
2021-08-04 18:37:45 +08:00
Kefu Chai
065ff536a1 cmake: disable kvs rados cls by default
libcls_kvs was introduced back in
73d016fdb3, but we don't have an internal
user so far. to reduce the build time. let's disable the build of it by
default.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-08-04 10:21:10 +08:00
Kefu Chai
3741f57eee rpm, debian: drop virtualenv from build deps
since we've replaced "virtualenv" with "python3 -m venv", there is no
need to have it in the build deps list.

since, on ubuntu, venv modules is not available by default, we need to
install python3-venv.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-07-31 22:34:05 +08:00
Kefu Chai
8e1edd746f debian/control: depend on libjaeger only if <pkg.ceph.jaeger>
otherwise we'd have following failure when trying to install ceph
packages if they are not built with pkg.ceph.jaeger profile:

ceph-common : Depends: libjaeger (= 17.0.0-6321-g62349ba4-1focal) but it is not installable

this change should address the regression introduced by
4b69d3a184

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-07-22 17:59:51 +08: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
be43f6133c debian, install-deps.sh: use Build-Profiles to optionally build with jaeger
we will now be using BuildProfileSpec based optional pkg building,
removing comment from .install file is no longer needed If
pkg.ceph.jaeger is enabled debian/control, it shall work to install
jaeger and it's dependencies.

  https://wiki.debian.org/BuildProfileSpec.

Signed-off-by: Deepika Upadhyay <dupadhya@redhat.com>
2021-07-22 11:01:06 +05:30
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
7aa3c2c3e6 debian/control: update yaml-cpp version to 0.6
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-19 21:43:17 +00:00
Deepika
52fc62520f debian, install-deps.sh: use Build-Profiles to optionally build debian libjaeger
library

* use pkg.ceph.jaeger for debian optional pkgs
remove mangling needing install-deps, instead use, buildProfileSpec feature
introduced for debian.  https://wiki.debian.org/BuildProfileSpec * check and

* set extraopts in debian/rules using pkg.ceph.jaeger
see: https://github.com/ceph/ceph/pull/38783#discussion_r662995612

* cleanup libjaeger.install mangling from CMakeLists

Signed-off-by: Deepika Upadhyay <dupadhya@redhat.com>
2021-07-19 21:01:42 +00: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
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
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
128d6184eb debian/control: drop duplicated python3-setuptools from Build-Depends
Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-06-24 12:13:17 +08:00
Kefu Chai
8867d7cd82 debian/control: add libfmt-dev for "make check"
so, on debian derivatives, we can use the libfmt-dev package for
building Ceph. this change is created in hope to reduce the compile
time.

>= 6.1.2 is specified, as it is the version packaged by ubuntu focal,
which is used for running "make check" and intergration tests.

find_package(fmt 6.0.0 QUIET)

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-06-18 11:13:45 +08:00
Kefu Chai
9b1d524839 debian: mark "crimson" specific deps with "pkg.ceph.crimson"
see also https://wiki.debian.org/BuildProfileSpec

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-06-07 12:36:19 +08:00
Kefu Chai
c0fad448e9 debian: mark "make check" deps with "pkg.ceph.check" build
instead of inventing our way for defining "make check" dependencies, use
build profile for adding "make check" specific dependencies. see
https://wiki.debian.org/BuildProfileSpec

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-06-07 12:35:00 +08:00
Kefu Chai
814fb28892 debian/control: ceph-mgr-modules-core does not Recommend ceph-mgr-rook anymore
per https://www.debian.org/doc/debian-policy/ch-relationships.html

> Recommends
>   This declares a strong, but not absolute, dependency.
>
> The Recommends field should list packages that would be found together
> with this one in all but unusual installations.

ceph-mgr-modules-core provides a set of ceph-mgr modules which are
always enabeld. but the rook module enables ceph-mgr to install and
configure a Ceph cluster using Rook. this module is very useful but
it does not have such a strong connection with ceph-mgr-modules-core.
we can always install it separately for using better intergration with
Rook.

See-also: https://tracker.ceph.com/issues/45574
Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-06-04 16:18:23 +08:00
Kefu Chai
8aa5ea0cf1 debian/ceph-common.postinst: fix indent and cleanups
* add editor variables for emacs
* replace tab with 8 spaces
* move "then" to previous line to be more consistent

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-05-08 23:15:07 +08: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
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
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
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
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
Kefu Chai
f1eda0b994 script/run-make: enable WITH_SYSTEM_ZSTD on focal
to speed up the build for "make check"

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-03-31 12:53:39 +08:00
Kefu Chai
406f2efafc
Merge pull request #40292 from tchaikov/wip-39191
debian,cmake,cephsqlite: hide non-public symbols

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
2021-03-26 14:28:34 +08:00
Kefu Chai
9438c23acd debian/rules: add with_system_libs option
so the maintainer can choose to use the packages shipped by distro.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-03-24 18:52:42 +08:00
Kefu Chai
bcd7f3ac0f debian/control: remove cython from Build-Depends
as cython3 is enough. and we've dropped the python2 support.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-03-24 18:52:42 +08:00
Kefu Chai
561a34a685 debian/rules: exclude ceph_crypto from dh_shlibdep
as libceph_crypto* are plugins, and they are not self-contained. they
reference symbols offered by the executable loading them. dh_shlibdep
should not complain when checking them, so add them to the exclude list.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-03-24 18:52:42 +08:00
Kefu Chai
45b9da3c92 debian/control: remove libsqlite3-mod-ceph from dep of ceph-mgr
as the subvar of ${shlibs:Depends} is able to take care of it

Fixes: https://tracker.ceph.com/issues/49899
Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-03-24 15:42:14 +08:00
Kefu Chai
4e2762fed7 debian/libsqlite3-mod-ceph: add .symbols file
for tracking the public symbols

see also dh_makeshlibs(1) and dpkg-gensymbols(1)

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-03-23 11:36:41 +08:00