Commit Graph

1577 Commits

Author SHA1 Message Date
Yuval Lifshitz
223bcfa5b4
Merge pull request #54935 from yuvalif/wip-yuval-return-lua-devel
build/rgw/lua: return lua-devel runtime dependency

reviewed-by: cbodley
2023-12-19 19:57:47 +02:00
Nizamudeen A
c52c2dca68
Merge pull request #54710 from kalaspuffar/replace_jwt_with_pure_python
mgr/dashboard: Simplify authentication protocol

Reviewed-by: Fabian-Gruenbichler <NOT@FOUND>
Reviewed-by: Avan Thakkar <athakkar@redhat.com>
Reviewed-by: Ernesto Puerta <epuertat@redhat.com>
Reviewed-by: Nizamudeen A <nia@redhat.com>
2023-12-19 19:18:20 +05:30
Yuval Lifshitz
76df4d8243 build/rgw/lua: return lua-devel runtime dependency
reverting: b0a77a53ab86b9b24a2cfb46049957d40a8c80aa
after sepia lab issue is resolved

Signed-off-by: Yuval Lifshitz <ylifshit@redhat.com>
2023-12-17 15:34:15 +00:00
Kefu Chai
250f870181
Merge pull request #51732 from andreas-schwab/main
ceph.spec.in: enable build on riscv64 for openSUSE Factory

Reviewed-by: Tim Serong <tserong@suse.com>
Reviewed-by: Kefu Chai <tchaikov@gmail.com>
2023-12-15 09:13:08 +08:00
Daniel Persson
c1ea66fe12 mgr/dashboard: Changes suggested after review by @epuertat.
Move the JWT requirement to the test requirements file. Also remove JWT from ceph specification and debian build.

Signed-off-by: Daniel Persson <mailto.woden@gmail.com>
2023-12-13 10:43:01 +01:00
Patrick Donnelly
23af075146
Merge PR #54726 into main
* refs/pull/54726/head:
	PendingReleaseNotes: announce cephfs-shell avail. on rhel9
	qa: test fs:shell on all distros
	qa: add cephfs-shell to installed rpm packages
	ceph.spec.in: enable support for cephfs-shell by default via EPEL9

Reviewed-by: Venky Shankar <vshankar@redhat.com>
Reviewed-by: Dhairya Parmar <dparmar@redhat.com>
2023-12-11 08:37:39 -05:00
Yuval Lifshitz
b0a77a53ab build/rgw/lua: remove lua-devel as a runtime dependency
this is due to the fact that lua-devel
cannot be installed in teuthology for rhel8

this would fail the build of some luarocks packages

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

Signed-off-by: Yuval Lifshitz <ylifshit@redhat.com>
2023-12-10 08:09:35 +00:00
Patrick Donnelly
d63d96f8bc
ceph.spec.in: enable support for cephfs-shell by default via EPEL9
The required packages [1,2] are now at the right version and readily available.

[1] https://packages.fedoraproject.org/pkgs/python-cmd2/python3-cmd2/epel-9.html
[2] https://packages.fedoraproject.org/pkgs/python-colorama/python3-colorama/epel-9.html

Fixes: https://tracker.ceph.com/issues/43393
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2023-11-29 20:22:49 -05:00
Yuval Lifshitz
46500cace6 rgw/test/lua: add lua integration tests suite
Signed-off-by: Yuval Lifshitz <ylifshit@redhat.com>

Fixes: https://tracker.ceph.com/issues/63616
2023-11-23 16:36:28 +00:00
John Mulligan
dc52a352f7 ceph.spec.in: add build conditions to control cephadm bundling
Add two conditions to either disable bundling or switch to rpm based
depdencies. The default is to bundle deps from pip.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
2023-11-06 13:27:41 -05:00
Daniel Gryniewicz
a4b19133f1
Merge pull request #52933 from dang/wip-dang-posix-driver
RGW - Add POSIX Driver

Reviewed-by: Casey Bodley <cbodley@redhat.com>
Reviewed-by: Matt Benjamin <mbenjamin@redhat.com>
2023-09-15 08:58:52 -04:00
Daniel Gryniewicz
5258bcbd73 RGW - Add POSIX Driver
This is the MVP for a driver for RGW that operates on top of a POSIX
filesystem.  It supports get, put, list, copy, multipart, external
access via the filesystem itself, and ordered bucket listings via an
LRU-based cache.

Note that this is currently a Filter, indended to run on top of dbstore.
This is because it currently doesn't have any User implementation, so it
depends on dbstore's User.  Everything else is implemented in
POSIXDriver.  Once there is a User implementation, this will become a
Store, instead of a Filter.

Commit messages from bucket listing cache:

  rgw/posixdriver: recycle lmdb database handles as required

    While LMDB workflows often do not close/return database handles,
    ours continually reuses them.  This requires us to close each
    handle (atomically) when a cache entry is recycled.

  rgw/posixdriver: don't instantiate bucket cache entries from notify events

  rgw/posixdriver: incorporate lmdb-safe for now

    The current inclusion is based on https://github.com/Martchus/lmdb-safe,
    which is actively maintained but currently has some packaging issues the
    author has agreed to accept fixes for.

    For now, skip the submodule to save time and remove an external dependency.

  rgw/posixdriver: fix listing of cached, empty bucket

    * check lmdb enumeration result in all cases and w/better style
    * add unit test for enumeration of an empty cached directory

  rgw/posixdriver: nest lmdbs in a directory under the dbroot path to avoid cleanup issues

  rgw/posixdriver: refactor for posix integration

    * Derive BucketCache types as templates on a SAL driver and SAL
      bucket pair.

    * Integrate cache fills as callbacks into SAL layer (or mock, for
      tests)

    * Renaming and cleanups

  rgw/posixdriver: add bucket cache implementation and tests

    Adds free-standing cache of buckets and object names, with
    bucket names (and listing attributes, upcoming) managed in
    a hashed set of lmdb databases, which provides ordering and
    a high-performance listing cache.

    An framework for notification on new object creation (e.g.,
    outside S3 workflow) is provided, and a Linux implementation
    using inotify.

    FindLMDB.cmake taken with attribution and license.

  rgw/posixdriver: add zpp_bits serialization (FAST)

Signed-off-by: Daniel Gryniewicz <dang@redhat.com>
Signed-off-by: Ali Maredia <amaredia@redhat.com>
Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
2023-09-14 12:09:40 -04:00
J. Eric Ivancich
c02906ae64 rgw: enhances rgw-restore-bucket-index script
This enhances the script to both process versioned buckets correctly
and to handle object names that begin with underscore.

If the bucket is versioned it submits each version chronologically
(based on mtime) to be reindexed in order to "replay" the modification
of objects. However mtime is not a perfect indicator. So additionally
it looks at the OLH object to determine the most recent version and
the script makes sure that it is replayed last. The order of previous
versions is likely correct, but not guaranteed to be so.

Additional logic is added to handle objects with names that begin with
underscore ('_') since that's used as a delimiter and needs to be
escaped and rados object locators are also used.

A man page for the script is added.

Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
2023-08-30 14:41:15 -04:00
Matan Breizman
e6d2ec65bd ceph.spec.in: add sanitizers to seastar requires
```
CMake Error at src/seastar/CMakeLists.txt:782 (message):
  Sanitizers not found!
```

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
2023-08-06 09:45:42 +00:00
liuqinfei
14c1f3ddd6 ceph.spec.in: add support for openEuler OS
The ceph main branch daily build on openEuler has been built.
https://github.com/openeuler-mirror/ceph-daily-build
The verification includes:
    - build ceph from source
    - run unit test
    - build RPM package

Signed-off-by: liuqinfei <lucas.liuqinfei@huawei.com>
2023-06-25 18:55:03 +08:00
Andreas Schwab
c7f5037293 ceph.spec.in: enable build on riscv64 for openSUSE Factory
Signed-off-by: Andreas Schwab <schwab@suse.de>
2023-05-24 16:42:42 +02:00
J. Eric Ivancich
637d461bf1 rgw: install rgw scripts with common files rather than radosgw files
Update ceph.spec.in and debian install files so
rgw-restore-bucket-index, rgw-orphan-list, rgw-gap-list,
rgw-gap-list-comparator are installed with common files.

Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
2023-03-15 09:35:45 -04:00
J. Eric Ivancich
6ea11b1305 rgw: add rgw-restore-bucket-index
Adds an experimental script that allows a bucket index of a
non-versioned bucket to be restored by applying `radosgw-admin object
reindex ...` to all objects in the specified bucket. The objects in
the bucket are determined by scanning the data pool for head objects
containing the bucket's marker.

Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
2023-03-09 11:00:57 -05:00
Redouane Kachach
110db72e24
mgr/rgw: adding mgr rgw module to ceph image
Fixes: https://tracker.ceph.com/issues/58856

Signed-off-by: Redouane Kachach <rkachach@redhat.com>
2023-02-27 19:11:25 +01:00
Casey Bodley
970a16cb30 rpm: use system arrow packages for fedora/centos9
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2023-01-25 13:47:08 -05:00
Casey Bodley
7760d31a72 rpm: combine system_utf8proc option into system_arrow
libarrow-devel depends on utf8proc-devel, so we can't enable
system_arrow without system_utf8proc

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2023-01-25 13:47:08 -05:00
Casey Bodley
0b561f985e rpm: fix package names for arrow/parquet
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2023-01-25 13:47:08 -05:00
Tim Serong
1f92b0314b ceph.spec.in: Replace %usrmerged macro with regular version check
%usrmerged is deprecated in favour of %if 0%{?suse_version} < 1550
(see https://en.opensuse.org/openSUSE:Usr_merge for details)

Fixes: https://tracker.ceph.com/issues/58501
Signed-off-by: Tim Serong <tserong@suse.com>
2023-01-19 18:28:06 +11:00
Laura Flores
e03067541c
Merge pull request #49712 from tchaikov/wip-packaging-in-setuptools
mgr/prometheus: use vendored "packaging" instead
2023-01-11 17:50:47 -06: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
Samuel Just
68149e9c99 ceph.spec.in: remove the bcond_without cephfs_java option
This effectively disable cephfs_java for rpm builds for now.
The only user appears to be cephfs jni bindings.

Fixes: https://tracker.ceph.com/issues/58382
Signed-off-by: Samuel Just <sjust@redhat.com>
2023-01-10 20:06:06 -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
Tim Serong
6c2fd4267e ceph.spec.in: disable system_pmdk on s390x for SUSE distros
Fixes: https://tracker.ceph.com/issues/57860
Signed-off-by: Tim Serong <tserong@suse.com>
2022-10-13 15:30:19 +11: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
Ken Dreyer
7cfe523c7f Merge PR #47153 into main
* refs/pull/47153/head:
	build: fix atomic linking with LTO on s390x

Reviewed-by: Justin Caratzas <jcaratza@redhat.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
2022-09-26 13:47:11 -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
Tim Serong
b660b79bf5 ceph.spec.in: Use gcc11-c++ on openSUSE Leap 15.x
Fixes: 80949babab
Fixes: https://tracker.ceph.com/issues/57497
Signed-off-by: Tim Serong <tserong@suse.com>
2022-09-12 11:13:28 +10: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
Kefu Chai
ee8ccbfc9e
Merge pull request #47548 from cbodley/wip-57073
install-deps: fix centos 8's use of gcc-toolset-11

Reviewed-by: Kefu Chai <tchaikov@gmail.com>
2022-08-11 08:14:11 +08:00
Casey Bodley
a46db91ef4 ceph.spec.in: install gcc-toolset-11-libatomic-devel in x86_64 also
otherwise after enabling gcc-toolset-11, cmake fails with:

- Performing Test HAVE_LIBATOMIC - Failed
CMake Error at cmake/modules/CheckCxxAtomic.cmake:66 (message):
  Host compiler /opt/rh/gcc-toolset-11/root/usr/bin/g++ requires libatomic,
  but it is not found

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2022-08-10 18:23:44 -04:00
David Galloway
fcf48cda0a ceph.spec.in: disable system_pmdk on aarch64
Signed-off-by: David Galloway <dgallowa@redhat.com>
2022-08-10 14:36:43 -04:00
Kefu Chai
215c07ba8b ceph.spec.in: always use stock compiler on el9
as RHEL/CentOS 9, we have the access to GCC-11, which is good enough for
compiling main HEAD even with WITH_SEASTAR=ON.

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2022-08-10 23:47:02 +08:00
Kefu Chai
53302f5f7f ceph.spec.in: define %gts_prefix
less repeatings this way, also  allow maintainer to use other version of GTS.

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2022-08-10 22:49:43 +08:00
Kefu Chai
75dd923533 ceph.spec.in: %enable_devtoolset11 only if the macro is defined
there is chance that we are using `yum-builddep` to prepare the
build dependencies. in that case, gcc-toolset-11-build is not
installed. it's like a chicken-egg dilemma, but the point is
`yum-builddep` is able to pull in the gcc-toolset-11-build. once
gcc-toolset-11-build is installed, we will have the %enable_devtoolset11
rpm macro.

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2022-08-10 22:37:48 +08: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
14ab202bd1
Merge pull request #47500 from tchaikov/wip-no-more-distutils
pybind/mgr/dashboard: do not use distutils.version.StrictVersion

Reviewed-by: Ernesto Puerta <epuertat@redhat.com>
2022-08-09 23:02:07 +08: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
7e122341d9 ceph.spec.in: add libatomic to BuildRequires on fedora
otherwise we'd have failures like

/opt/compiler-explorer/gcc-trunk-20220808/bin/../lib/gcc/x86_64-linux-gnu/13.0.0/../../../../x86_64-linux-gnu/bin/ld:
/tmp/ccVlMbVh.o: in function `std::atomic<tagged_ptr>::store(tagged_ptr,
std::memory_order)':
/opt/compiler-explorer/gcc-trunk-20220808/include/c++/13.0.0/atomic:273:
undefined reference to `__atomic_store_16'

when generating the building system using CMake on fedora 36.

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2022-08-08 20:40:54 +08:00
Tim Serong
afb684b60f
Merge pull request #47436 from SUSE/wip-mib-snmp-dir
ceph.spec.in: ceph-mib: require snmp-mibs on SUSE distros

Reviewed-by: Kefu Chai <tchaikov@gmail.com>
Reviewed-by: Justin Caratzas <jcaratza@redhat.com>
2022-08-08 15:46:20 +10:00
Tim Serong
69997b3b0c ceph.spec.in: ceph-mib: specify "%dir %{_datadir}/snmp"
Without this, the openSUSE build fails with:

  ceph-mib-17.0.0-[...].noarch.rpm: directories not owned by a package:
    - /usr/share/snmp

Fixes: 183e3475064459fb10820b1c356875244fbc3f8a
Signed-off-by: Tim Serong <tserong@suse.com>
2022-08-05 13:12:50 +10:00
Kefu Chai
c1062a0df2
Merge pull request #47449 from tchaikov/rpm-gts-11
ceph.spec.in: build with gcc-toolset-11

Reviewed-by: Casey Bodley <cbodley@redhat.com>
2022-08-04 21:30:51 +08:00
Kefu Chai
3811e8835d ceph.spec.in: BuildRequires gcc-toolset-11-libatomic-devel for aarch64
to address following failure when generating the building system
using CMake:

```
-- Performing Test HAVE_LIBATOMIC
-- Performing Test HAVE_LIBATOMIC - Failed
CMake Error at cmake/modules/CheckCxxAtomic.cmake:66 (message):
  Host compiler /opt/rh/gcc-toolset-11/root/usr/bin/c++ requires libatomic,
but it is not found
```

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2022-08-04 12:15:03 +08:00
Kefu Chai
336fe86af8 ceph.spec.in: call %enable_devtoolset11 on centos8
before this change %enable_devtoolset11 is called only when building
with crimson on centos8.

after this change %enable_devtoolset11 is called when building on
centos8. because we've started using gcc-toolset-11 for building
rpm packages on centos8 after the C++20 migration. so, to build
with gcc-11, we need to enable it.

also, because gcc-toolset-11 is used, we have to disable
annotated_build.

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2022-08-04 11:02:16 +08:00
Avan Thakkar
d7226fcc45 exporter: per node metric exporter
Fixes: https://tracker.ceph.com/issues/55046

Signed-off-by: Pere Diaz Bou <pdiazbou@redhat.com>
Signed-off-by: Avan Thakkar <athakkar@redhat.com>
2022-08-03 13:13:49 +02:00