]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
4 years agocephadm: improve is_container_running() 41684/head
Sage Weil [Sat, 5 Jun 2021 15:05:48 +0000 (10:05 -0500)]
cephadm: improve is_container_running()

The 'podman ps' command sporatically exits with 125, I suspect due
to some race/bug in podman itself.

However, our goal here is just to check if a specific container
is running.  Use inspect for that instead--it's even (a bit) faster.

Fixes: https://tracker.ceph.com/issues/51109
Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 4757a13dc62d34d3649b1df3bd9f17793c201c1f)

4 years agomgr/cephadm:fix alerts sent to wrong URL
Paul Cuzner [Wed, 2 Jun 2021 23:34:19 +0000 (11:34 +1200)]
mgr/cephadm:fix alerts sent to wrong URL

The path_prefix in prometheus.yml was specifying an
endpoint prefix, which was invalid. This resulted in 404
errors when trying to send alerts to alertmanager and
blocked alerts being sent on to the ceph-dashboard API
receiver. This fix remves this prefix.

Fixes: https://tracker.ceph.com/issues/51073
Signed-off-by: Paul Cuzner <pcuzner@redhat.com>
(cherry picked from commit 9d408a70c7d01fd7c94f9b814af916396d7cbf1f)

4 years agomgr/cephadm: Warn about OSDs to be deleted manually when deleting an OSD service
Juan Miguel Olmo Martínez [Thu, 25 Mar 2021 15:59:55 +0000 (16:59 +0100)]
mgr/cephadm: Warn about OSDs to be deleted manually when deleting an OSD service

Provide information about what OSDs must be deleted in order to delete
completelly a OSD Service.

Signed-off-by: Juan Miguel Olmo Martínez <jolmomar@redhat.com>
(cherry picked from commit 84ac0b326dca8e9d44594a319c020250ea0709c0)

4 years agodoc: add ceph-nfs link
Sage Weil [Fri, 4 Jun 2021 17:56:04 +0000 (12:56 -0500)]
doc: add ceph-nfs link

This is a small piece of da4dcd673bda49a709c5457a2ef9de943f6de479,
which covers too much else to backport.

Signed-off-by: Sage Weil <sage@newdream.net>
4 years agomgr: Fix orch osd rm stop help message
VasishtaShastry [Mon, 10 May 2021 06:38:59 +0000 (12:08 +0530)]
mgr: Fix orch osd rm stop help message

Corrects help message of `ceph orch osd rm --help`
Doc link - https://docs.ceph.com/en/latest/cephadm/osd/#stopping-osd-removal

Signed-off-by: VasishtaShastry <vipin.indiasmg@gmail.com>
(cherry picked from commit 87fe9cec8ada9ef5d905d2d16f1726e05699398e)

4 years agomgr/cephadm/inventory: do not try to resolve current mgr host
Sage Weil [Thu, 3 Jun 2021 14:29:00 +0000 (10:29 -0400)]
mgr/cephadm/inventory: do not try to resolve current mgr host

The CNI configuration may set up a private network for the container, which
is mapped to the hostname in /etc/hosts.  For example, my test box sets
up 10.88.0.0/24 because I was using crio + kubeadm on this host earlier
(at least I think that's why):

$ sudo podman run --rm --name test123 --entrypoint /bin/bash -it quay.ceph.io/ceph-ci/ceph:master -c "cat /etc/hosts"
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.88.0.8 f9e91bf2478f test123

In any case, we should never trust a lookup of our own hostname from inside
a container!

This isn't quite sufficient, though: if this is a single-host cluster, then
we fall back to using get_mgr_ip(). That value may be distorted by the
public_network option on the mgr, but we don't have any other good
options here, and single-node clusters are unlikely to have complex
network configs.

Refactor a bit to avoid the try/except nesting.

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 45e806676bc9bf85d4947eba9741387cec3ae2fd)

4 years agopybind/mgr/mgr_module: make get_mgr_ip() return mgr's IP from mgrmap
Sage Weil [Wed, 2 Jun 2021 02:31:11 +0000 (22:31 -0400)]
pybind/mgr/mgr_module: make get_mgr_ip() return mgr's IP from mgrmap

The previous approach was convoluted: we tried to do a DNS lookup on the
hostname, which would fail if /etc/hosts had an entry.  Which, with podman,
it does.  And the IP it has will vary in all sorts of weird ways.  For
example, CNI on my host means that I get a dynamic address in 10.88.0.0/24.

Avoid all of that nonsense and use the IP that is in the mgrmap.  There
may be multiple IPs (v2 + v1, or maybe even IPv4 + v6 in the future); in
that case, use the first one.

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 72d72fc5db33110effdbfcdfd19e086d4dd831be)

4 years agomgr/restful: use get_mgr_ip() instead of hostname
Sage Weil [Wed, 2 Jun 2021 02:31:47 +0000 (22:31 -0400)]
mgr/restful: use get_mgr_ip() instead of hostname

Now we match dashboard!

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit df7994617438a53db84edfd1e83c8439e0cad8f6)

4 years agodoc/cephadm: s/the the/the
Zac Dover [Wed, 2 Jun 2021 14:06:06 +0000 (00:06 +1000)]
doc/cephadm: s/the the/the

This removes an extraneous "the" and reworks a
sentence so that it adheres to the grammatical
rules of the English language.

Signed-off-by: Zac Dover <zac.dover@gmail.com>
(cherry picked from commit 52701fe8651f9416dbb144284ab1043747e39449)

4 years agodoc/cephadm: enriching "daemon status"
Zac Dover [Mon, 31 May 2021 03:55:20 +0000 (13:55 +1000)]
doc/cephadm: enriching "daemon status"

This PR creates parallel structure for the
text in the "Daemon Status" section of the
cephadm Service Management chapter.

Signed-off-by: Zac Dover <zac.dover@gmail.com>
(cherry picked from commit 80dcbc80190c7fc5c25c2df9bb35ad8af1a41a19)

4 years agodoc/cephadm: enriching "Service Specification"
Zac Dover [Mon, 31 May 2021 04:15:56 +0000 (14:15 +1000)]
doc/cephadm: enriching "Service Specification"

This PR adds parallel construction to the "Service
Specification" section of the "Service Managment"
chapter of the cephadm documentation.

Signed-off-by: Zac Dover <zac.dover@gmail.com>
(cherry picked from commit c02fb2b25bc976decabb24cbbb8514ed43f6eddc)

4 years agomgr/cephadm: Don't call _check_host without hosts
Sebastian Wagner [Tue, 11 May 2021 11:08:31 +0000 (13:08 +0200)]
mgr/cephadm: Don't call _check_host without hosts

Fixes: https://tracker.ceph.com/issues/50691
Signed-off-by: Sebastian Wagner <sewagner@redhat.com>
(cherry picked from commit 8211927626fcd5fa2e14bc35126758f394a1f5ce)

4 years agocephadm: stop passing --no-hosts to podman
Sage Weil [Tue, 25 May 2021 17:55:08 +0000 (13:55 -0400)]
cephadm: stop passing --no-hosts to podman

This reverts cfc1f914ce74f1fd1f45e2efd3ba2ddcb2da129a, which is no longer
neceesary because (1) we don't use socket.getfqdn(), and (2) we generally
do not rely on DNS or /etc/hosts at all anymore (with the exception of
the upgrade transition).

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit d1bb94ba4c4b8401bf7799b7da3a8f5c2fd228c6)

4 years agomgr/nfs: use host.addr for backend IP where possible
Sage Weil [Wed, 26 May 2021 22:38:05 +0000 (18:38 -0400)]
mgr/nfs: use host.addr for backend IP where possible

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 7e9f4ac7a11805b721d3857197b6d04c4cdae45e)

4 years agomgr/cephadm: convert host addr if non-IP to IP
Sage Weil [Tue, 25 May 2021 20:10:49 +0000 (16:10 -0400)]
mgr/cephadm: convert host addr if non-IP to IP

Previously we allowed the host.addr to be a DNS name (short or fqdn).
This is problematic because of the inconsistent way that docker and podman
handle /etc/hosts, and undesirable because relying on external DNS is
an external source of failure for the cluster without any benefit in
return (simply updating DNS is not sufficient to make ceph behave).

So: update any non-IP to an IP as soon as we start up (presumably on
upgrade).  If we get a loopback address (127.0.0.1 or 127.0.1.1), then
wait and hope that the next instance of the manager has better luck.

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 781bfa14ffc9aa37eb85635a59af1f202999e874)

4 years agomgr/dashboard,prometheus: new method of getting mgr IP
Sage Weil [Tue, 25 May 2021 17:00:35 +0000 (13:00 -0400)]
mgr/dashboard,prometheus: new method of getting mgr IP

- Use a centralized method get_mgr_ip()
- Look up the hostname via DNS.  This is a bit more reliable than
getfqdn() since it will work even when podman adds the container
name to /etc/hosts.

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 157a7b4183dbd888f106c613a758409d7e07b917)

4 years agodoc/cephadm: remove any reference to the use of DNS or /etc/hosts
Sage Weil [Tue, 25 May 2021 16:14:39 +0000 (12:14 -0400)]
doc/cephadm: remove any reference to the use of DNS or /etc/hosts

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 872668a9b37ee5a0171c37b3b6f0f4d605ee54a2)

4 years agomgr/cephadm: use known host addr
Sage Weil [Fri, 21 May 2021 17:31:31 +0000 (13:31 -0400)]
mgr/cephadm: use known host addr

If the host IP/addr is known, use that.  The addr might even be a FQDN
instead of an IP address, in which case we want to look that up instead
of the bare hostname.

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 900880050a2e57bcf477d8ebad3b38c001710be5)

4 years agomgr/cephadm: resolve IP at 'orch host add' time
Sage Weil [Fri, 21 May 2021 16:32:49 +0000 (12:32 -0400)]
mgr/cephadm: resolve IP at 'orch host add' time

We prefer to always have a real IP for hosts in the cluster.  This avoids
a reliance on DNS for most operations.

Perhaps more importantly, it means we are less sensitive to inconsistent
host lookup results, for example due to (1) mismatched /etc/hosts files
between machines, or (2) a lookup of the local hostname that returns
127.0.1.1.

Adjust with_hosts() fixture to take an addr, and adjust tests accordingly.

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 3587a10b3eb5a35bfaad556a65eb83c6b062526c)

4 years agodoc/cephadm: enrich "service status"
Zac Dover [Thu, 27 May 2021 01:28:38 +0000 (11:28 +1000)]
doc/cephadm: enrich "service status"

This PR improves the syntax of the "Service
Status" section of the "Service Managment"
section of the cephadm guide. This includes
pretty significant reworking of the information
in the section, so vetting this one might be
annoying. Anyway, I think I've lowered the
cognitive load on the reader.

Signed-off-by: Zac Dover <zac.dover@gmail.com>
(cherry picked from commit 31558e5568da5b445b2da1b98ac2eb626d8efdf3)

4 years agodoc/cephadm: recommend redeploying monitoring stack daemon after changing image
Adam King [Fri, 7 May 2021 14:04:31 +0000 (10:04 -0400)]
doc/cephadm: recommend redeploying monitoring stack daemon after changing image

Fixes: https://tracker.ceph.com/issues/50687
Signed-off-by: Adam King <adking@redhat.com>
(cherry picked from commit 9be84658fbd5a51f631fcda050811ca0113fbea1)

4 years agocephadm: clean-up error message
Michael Fritch [Thu, 13 May 2021 23:03:32 +0000 (17:03 -0600)]
cephadm: clean-up error message

use the standard error message from FileNotFound:
```
cephadm bootstrap --mon-ip 192.168.1.1 --config ~/foobar
ERROR: [Errno 2] No such file or directory: '/root/foobar'
```

Signed-off-by: Michael Fritch <mfritch@suse.com>
(cherry picked from commit 870e9bddd2a059ae4930a2eed163bb862094dcaa)

4 years agocephadm: raise an error when `--config` file is not found
Michael Fritch [Thu, 13 May 2021 23:03:10 +0000 (17:03 -0600)]
cephadm: raise an error when `--config` file is not found

extend the common logic used by the deploy, ceph-volume, and shell
commands for validating the `--config` arg during bootstrap

Signed-off-by: Michael Fritch <mfritch@suse.com>
(cherry picked from commit 0e444191b93b76527eccb349bd0f68b1fc9302d4)

4 years agocephadm: manage cephadm log with logrotated
Daniel Pivonka [Mon, 10 May 2021 14:20:38 +0000 (10:20 -0400)]
cephadm: manage cephadm log with logrotated

Signed-off-by: Daniel Pivonka <dpivonka@redhat.com>
(cherry picked from commit 6790b21bc5ba1e2ccdacefc7f067d5e760e6836d)

4 years agomgr/cephadm: progress item for service apply
Sage Weil [Fri, 21 May 2021 18:43:24 +0000 (14:43 -0400)]
mgr/cephadm: progress item for service apply

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 089d2fb01b72366aed021caf34dacb85c09b93cc)

4 years agomgr: expose ceph.conf path to modules
Sage Weil [Fri, 21 May 2021 22:49:58 +0000 (18:49 -0400)]
mgr: expose ceph.conf path to modules

This is useful for shelling back out to ceph utilities.

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 3194b8d789ecf6d6b9cd8cadfd962011fa5f6ea0)

4 years agocommon/config: track the path to the conf file we loaded
Sage Weil [Fri, 21 May 2021 22:49:33 +0000 (18:49 -0400)]
common/config: track the path to the conf file we loaded

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 340c799bf924d61b355abb9c5e3e34b66634eb45)

4 years agoqa/tasks/cephfs/test_nfs: fix info test
Sage Weil [Fri, 7 May 2021 19:01:10 +0000 (15:01 -0400)]
qa/tasks/cephfs/test_nfs: fix info test

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 218eec938d1c241a595384984aa9e002ffc68e0e)

4 years agodoc/cephfs/fs-nfs-exports: document --ingress --virtual-ip
Sage Weil [Mon, 24 May 2021 15:16:45 +0000 (11:16 -0400)]
doc/cephfs/fs-nfs-exports: document --ingress --virtual-ip

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit ada85604ab3845fcd2d321791051b8da77eee748)

4 years agomgr/nfs: move ingress vs virtual_ip check to cluster interface
Sage Weil [Tue, 18 May 2021 22:02:25 +0000 (18:02 -0400)]
mgr/nfs: move ingress vs virtual_ip check to cluster interface

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit f2e78bf2e3009eb67a2e7ef06336371eddee7573)

4 years agoPendingReleaseNotes: clarify deprecated
Sage Weil [Fri, 7 May 2021 15:01:57 +0000 (11:01 -0400)]
PendingReleaseNotes: clarify deprecated

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit fe03c85b434c058db2d9fdcab888f128a9006d78)

4 years agoPendingReleaseNotes: note breaking CLI changes
Sage Weil [Fri, 7 May 2021 14:58:45 +0000 (10:58 -0400)]
PendingReleaseNotes: note breaking CLI changes

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 0ca1400e4bb586963ed5da699a91d57ad99b64bd)

4 years agodoc/cephadm/nfs: document nfs+ingress
Sage Weil [Thu, 6 May 2021 22:47:38 +0000 (18:47 -0400)]
doc/cephadm/nfs: document nfs+ingress

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit e51c3dcf015730b30ad917117c88b395335808ca)

4 years agoqa/suites/rados/cephadm/smoke-roleless: test nfs, nfs + ingress
Sage Weil [Fri, 30 Apr 2021 15:37:51 +0000 (11:37 -0400)]
qa/suites/rados/cephadm/smoke-roleless: test nfs, nfs + ingress

Still missing a full client mount test, though!

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit e2db373698a79adfe17927fb9bd0fb3e908a8f64)

4 years agomgr/nfs: take --ingress argument to 'nfs cluster create'
Sage Weil [Thu, 6 May 2021 22:47:27 +0000 (18:47 -0400)]
mgr/nfs: take --ingress argument to 'nfs cluster create'

It is likely that the rook/k8s variation of ingress will not take a
virtual_ip argument.  We want to make sure that ingress yes/no can be
specified independent of the virtual_ip.

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 81f0b6984fcfd90b470052b9de19b8b10d176972)

4 years agomgr/cephadm: adjust debug output for device refresh
Sage Weil [Thu, 6 May 2021 18:37:14 +0000 (14:37 -0400)]
mgr/cephadm: adjust debug output for device refresh

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit feb741dd734468eb24d9fac5814beda6112cd100)

4 years agomgr/cephadm: ingress: fix log msg
Sage Weil [Thu, 6 May 2021 18:16:43 +0000 (14:16 -0400)]
mgr/cephadm: ingress: fix log msg

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit d72d1b5c4e797d8217ab1152e5b05dba8aec15f7)

4 years agomgr/cephadm: fix logging of config/placement errors
Sage Weil [Thu, 6 May 2021 18:16:38 +0000 (14:16 -0400)]
mgr/cephadm: fix logging of config/placement errors

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 14af47070a8b05b8e8e9f94a7676d573407f3a16)

4 years agocommon/options: enable nfs module for new clusters
Sage Weil [Thu, 3 Jun 2021 12:39:30 +0000 (07:39 -0500)]
common/options: enable nfs module for new clusters

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 8085a7e9cc6a409c59fc8a1542c3c94607fc4e0b)

# Conflicts:
# src/common/options/mgr.yaml.in
  - common/options.cc

4 years agocephadm: --stop-signal=SIGTERM
Sage Weil [Thu, 6 May 2021 14:57:46 +0000 (10:57 -0400)]
cephadm: --stop-signal=SIGTERM

haproxy's container image tells docker|podman to send SIGUSR1 for a "clean"
shutdown.  For NFS, the connections never close, so we will always hit the
podman|docker 10s timeout and get a SIGKILL.  That, in turn, causes haproxy
to exit with 143, and puts the systemd unit in a failed state.

This highlights a general problem(?) with stopping containers: if they don't
do it quickly then we'll end up in this error state.  We don't directly
address that here.

Avoid this problem by always stopping containers with SIGTERM.  In the
haproxy case, that means an immediate shutdown (no graceful drain of
open connections).  In theory we could do this only for haproxy with
NFS, but we can easily imagine RGW connections that don't close in 10s
either, and we don't want containers exiting in error state--we just
want the proxy to stop quickly.

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 9ab674579f51a89febec69a93d179505e85a066a)

4 years agomgr/orchestrator: default nfs pool, namespaces
Sage Weil [Mon, 3 May 2021 15:48:45 +0000 (11:48 -0400)]
mgr/orchestrator: default nfs pool, namespaces

Apply nfs default pool (currently 'nfs-ganesha'), and default the
namespace to the service_id.

There is no practical reason for users to ever need to change this, and
requiring them to provide this informaiton at config/apply time just
complicates life.

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 09be2e14cc8d1d06609e876b6f0b0a579c11cd58)

4 years agomgr/cephadm: nfs: create pool if it doesn't yet exist
Sage Weil [Mon, 3 May 2021 15:42:13 +0000 (11:42 -0400)]
mgr/cephadm: nfs: create pool if it doesn't yet exist

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 548f1681e093ee7bda0629ce587724e00eeae1b3)

4 years agodoc/cephadm/nfs: update
Sage Weil [Wed, 5 May 2021 16:26:28 +0000 (12:26 -0400)]
doc/cephadm/nfs: update

- leave off pool/ns, since they should almost never be necessary.
- add port

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 0e0f89266898f350a31480cb4915d66dcba0d17f)

4 years agomgr/nfs: change 'nfs cluster info'
Sage Weil [Tue, 4 May 2021 17:10:14 +0000 (13:10 -0400)]
mgr/nfs: change 'nfs cluster info'

- include the virtual_ip and port at top level
- move backend server list into a sub-item
- include (haproxy) monitoring port

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 00aac5df9ea603d26c340279f97f45f366b6f26f)

4 years agomgr/nfs: take optional virtual_ip for deploying ingress
Sage Weil [Tue, 4 May 2021 17:09:38 +0000 (13:09 -0400)]
mgr/nfs: take optional virtual_ip for deploying ingress

For 'nfs cluster create', optionally take a virtual_ip to deploy ingress.

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 26cb491d196bb9257c7e959c3c9f180e6d9f136a)

4 years agomgr/nfs: remove 'nfs cluster update'
Sage Weil [Wed, 5 May 2021 16:59:44 +0000 (12:59 -0400)]
mgr/nfs: remove 'nfs cluster update'

This command is very awkward to implement unless all service spec fields
are always required.  That will soon mean both the placement *and*
virtual_ip (if any), making it much less useful for a human to make use
of.

Instead, let them update yaml, or adjust the nfs and/or ingress specs
directly.  I don't think this command is needed.

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit e5c1d4aa71ddf24304ec5d18b22bea739c20226d)

4 years agomgr/nfs: factor out ganesha pool creation
Sage Weil [Wed, 5 May 2021 16:34:56 +0000 (12:34 -0400)]
mgr/nfs: factor out ganesha pool creation

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 5585fdd5e384ca816a34d7918ccebc02b66d6abc)

4 years agomgr/nfs: delete -> rm for CLI
Sage Weil [Tue, 4 May 2021 17:02:23 +0000 (13:02 -0400)]
mgr/nfs: delete -> rm for CLI

The rest of the CLI uses 'rm' in place of 'remove' or 'delete', so let's
deprecate 'delete' and add 'rm'.

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit ad0a62dc9db196ada4c962e7dacb18b73ab54a25)

4 years agomgr/nfs: add some type annotations
Sage Weil [Wed, 5 May 2021 16:57:17 +0000 (12:57 -0400)]
mgr/nfs: add some type annotations

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 7a5b45268cdeef47968a8f901b79406c40b243c3)

4 years agopython-common: fix IngressSpec yaml dump
Sage Weil [Wed, 5 May 2021 19:44:44 +0000 (15:44 -0400)]
python-common: fix IngressSpec yaml dump

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 05fdbc8c76274952d2ef10e1ab1be3679efe479e)

4 years agomgr/cephadm: ingress: remove eth0 default
Sage Weil [Mon, 3 May 2021 15:02:24 +0000 (11:02 -0400)]
mgr/cephadm: ingress: remove eth0 default

Better to raise an error; eth0 will never be correct.

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 9dba27edfeaa24f758121d3032775bf89cd4856a)

4 years agoqa/tasks/cephadm: allow mounting volumes in shell
Sage Weil [Sun, 2 May 2021 22:08:52 +0000 (18:08 -0400)]
qa/tasks/cephadm: allow mounting volumes in shell

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit b711a752775bb21bafa2ec376346eb7cd99f5c18)

4 years agocephadm: add -v arg to shell
Sage Weil [Sun, 2 May 2021 22:08:33 +0000 (18:08 -0400)]
cephadm: add -v arg to shell

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 693fd30532760067a262f381fb3487deae52f689)

4 years agoqa/tasks/vip: add 'vip.exec' task
Sage Weil [Fri, 30 Apr 2021 15:41:23 +0000 (11:41 -0400)]
qa/tasks/vip: add 'vip.exec' task

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 54542fdaab5b710eed8127be21111d4f3a030f69)

4 years agomgr/orchestrator: add --port arg to 'orch apply nfs'
Sage Weil [Fri, 30 Apr 2021 15:36:47 +0000 (11:36 -0400)]
mgr/orchestrator: add --port arg to 'orch apply nfs'

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 205bf35c4377607176be16b8144a2bfe8fc70eb6)

4 years agomgr/cephadm: nfs: add purge
Sage Weil [Thu, 29 Apr 2021 14:43:57 +0000 (10:43 -0400)]
mgr/cephadm: nfs: add purge

Remove the grace object if we purge the service.

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 15bdaa74b51b70afc089567dbda68fee64e89109)

4 years agomgr/cephadm: ingress: support nfs
Sage Weil [Mon, 26 Apr 2021 19:29:45 +0000 (15:29 -0400)]
mgr/cephadm: ingress: support nfs

- use consistent hashing
- statically map across ranks
- disable backend checks so that clients don't move

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 51f0dedbbb996fdaca4ba866791c2ac86d4429c6)

4 years agomgr/cephadm: do not reconfigure daemons on deleted services
Sage Weil [Mon, 26 Apr 2021 19:28:48 +0000 (15:28 -0400)]
mgr/cephadm: do not reconfigure daemons on deleted services

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 444663b740da4e91cdf318f2661fc5cc0b76557c)

4 years agomgr/cephadm: nfs: shell out to rados tool for conf creation
Sage Weil [Mon, 26 Apr 2021 18:54:38 +0000 (14:54 -0400)]
mgr/cephadm: nfs: shell out to rados tool for conf creation

This avoids any hangs due to rados.

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 917fb597673ade3b436854d17aef559447540a85)

4 years agomgr/cephadm: nfs: add rank to grace file from mgr module
Sage Weil [Mon, 26 Apr 2021 18:48:03 +0000 (14:48 -0400)]
mgr/cephadm: nfs: add rank to grace file from mgr module

Do the grace file manipulation from the mgr module.  For add, this isn't
especially important, but for remove it is very important.  Clean out
old ranks from the grace table before we record that the rank has been
purged from the rank_map.

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 74169045a9b212d4b549159a8f7870ed6e9119ea)

4 years agomgr/cephadm: nfs: bind ganesha to appropriate ip:port
Sage Weil [Mon, 26 Apr 2021 13:17:31 +0000 (09:17 -0400)]
mgr/cephadm: nfs: bind ganesha to appropriate ip:port

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit ae4ab5d2041856c8a891e25df610b88bc07b14f1)

4 years agomgr/cephadm: enable ranked daemons for nfs
Sage Weil [Fri, 23 Apr 2021 19:33:23 +0000 (15:33 -0400)]
mgr/cephadm: enable ranked daemons for nfs

Use ranked daemons for NFS. Ganesha does not like it if multiple
instances start up with the same rank, but we need stable ranks so that
a rank can "fail over" to a new instance of a new daemon on another host
(with the same rank) for NFS client reclaim to work.

Specify a nodeid of '{service_name}.{rank}' for ganesha.

Include a unique id in the daemon_id just because this avoids some issues
with the create/destroy ordering, and because the daemon_id doesn't matter
much anymore since we are using a stable rank.

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit a7d65f00ea554078f6e8f058e9ec137230902964)

4 years agomgr/cephadm: support creation of daemons with ranks
Sage Weil [Fri, 23 Apr 2021 19:31:14 +0000 (15:31 -0400)]
mgr/cephadm: support creation of daemons with ranks

- we need to assign all names and update the rank_map before we start
creating daemons.
- if we are using ranks, we should delete old daemons first, and
fence them from the cluster (where possible).

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit e8b07982b50e35a546a52b092cac5a825c37981d)

4 years agomgr/cephadm: make _plan show removed daemon names
Sage Weil [Fri, 23 Apr 2021 19:28:31 +0000 (15:28 -0400)]
mgr/cephadm: make _plan show removed daemon names

This is more informative than just the hostnames.

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 1b0980752f159e93a72d73094125dd8d4ec582cc)

4 years agomgr/cephadm/schedule: assign/map ranks
Sage Weil [Fri, 23 Apr 2021 19:28:13 +0000 (15:28 -0400)]
mgr/cephadm/schedule: assign/map ranks

If we are passed a rank_map, use it maintain one daemon per rank, where
the ranks are consecutive non-negative integers starting from 0.

A bit of refactoring in place() so that we only do the rank allocations
on slots we are going to use (no more than count).

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit de03942f806cb16e00259f2397446afb9322c3f1)

4 years agomgr/cephadm: add rank[_generation] properties
Sage Weil [Fri, 23 Apr 2021 19:25:58 +0000 (15:25 -0400)]
mgr/cephadm: add rank[_generation] properties

DaemonDescription
CephadmDaemonDeploySpec
DaemonPlacement
unit.meta
get_unique_name() (we include it in the daemon_id)

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 5e8f184be8091fdea8d7856a243dca913180e2a9)

4 years agomgr/cephadm/inventory: store optional rank_map along with specs
Sage Weil [Fri, 23 Apr 2021 19:22:07 +0000 (15:22 -0400)]
mgr/cephadm/inventory: store optional rank_map along with specs

The rank_map is a bit of state to keep track of which ranks are
occupied by which generation and daemon_id.

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit d0d2232c0542170b0908d8d79d6fc50eaa053d94)

4 years agomgr/cephadm: include service_name is generated DaemonDescription
Sage Weil [Fri, 23 Apr 2021 19:13:05 +0000 (15:13 -0400)]
mgr/cephadm: include service_name is generated DaemonDescription

This makes 'orch ls' match up daemosn to services (and probably cleans up
other bits and pieces) when the old daemon id -> service name calc code
can't do its thing.

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 11ff4842a207c82dd4ec8254aa370962cde24c82)

4 years agomgr/orchestrator: include service_name in DaemonDescription dump
Sage Weil [Fri, 23 Apr 2021 18:53:54 +0000 (14:53 -0400)]
mgr/orchestrator: include service_name in DaemonDescription dump

('orch ps')

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 15e5c0a3accf8284d22df3b8f98b0127eec02834)

4 years agomgr/cephadm/inventory: fix deleted check
Sage Weil [Fri, 23 Apr 2021 18:07:19 +0000 (14:07 -0400)]
mgr/cephadm/inventory: fix deleted check

Look in dict, not encoded JSON string

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit a282c3c249fcd901bf8005f9f8e581ceb0ff6225)

4 years agomgr/cephadm: simplify
Sage Weil [Fri, 23 Apr 2021 15:17:14 +0000 (11:17 -0400)]
mgr/cephadm: simplify

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 991515aaaa19eeee93f6b98b6721ed2b3efbff1b)

4 years agomgr/cephadm/schedule: make placement shuffle deterministic
Sage Weil [Thu, 22 Apr 2021 22:42:00 +0000 (18:42 -0400)]
mgr/cephadm/schedule: make placement shuffle deterministic

hash(str) is non-deterministic, probably because it is using the internal
object ID or something and not the string content?

In any case, explicitly hash the string content and use that instead.

Also, sort the input pre-shuffle to ensure that variations in the original
host list ordering don't screw with the result.

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit adceaa9b28278601c56a7db1c3f42eaa592ec4d1)

4 years agomgr/cephadm: document CephadmService flags
Sage Weil [Thu, 22 Apr 2021 17:57:21 +0000 (13:57 -0400)]
mgr/cephadm: document CephadmService flags

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 2fa80d8769a5b4ab1238a9b18627b9e28a540b66)

4 years agodoc/cephadm: fix prompts in service-management.rst
Zac Dover [Tue, 25 May 2021 19:22:56 +0000 (05:22 +1000)]
doc/cephadm: fix prompts in service-management.rst

This PR formats the prompts in service-managment.rst
properly.

Signed-off-by: Zac Dover <zac.dover@gmail.com>
(cherry picked from commit db3af8e3d2c6aceced0176930717546496147a3b)

4 years agoqa/tasks/cephadm: Include bootstrap registry options for downstream
sunilkumarn417 [Wed, 19 May 2021 10:02:45 +0000 (15:32 +0530)]
qa/tasks/cephadm: Include bootstrap registry options for downstream
- registry-url, registry-username and registry-password bootstrap options are
supported now. This is needed to access monitoring service container images.
- usage of RHEL distribution based cephadm in download_cephadm task.

Signed-off-by: sunilkumarn417 <sunnagar@redhat.com>
(cherry picked from commit 364fb5899bc87ca0da802293946ef8f2dcbd3c4e)

4 years agoqa/suites/rados: include rook test in rados
Sage Weil [Thu, 20 May 2021 17:41:52 +0000 (12:41 -0500)]
qa/suites/rados: include rook test in rados

This just to make sure we don't break mgr/orchestrator.

Note that we already symlink ../orch/cephadm, so this makes rados
include all of orch/.

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 5db5c8c292e70a643d91f19e1b21da3be65ecb34)

4 years agoMerge pull request #41646 from rhcs-dashboard/wip-51063-pacific
Ernesto Puerta [Thu, 3 Jun 2021 12:09:32 +0000 (14:09 +0200)]
Merge pull request #41646 from rhcs-dashboard/wip-51063-pacific

pacific: mgr/dashboard: fix bucket objects and size calculations

Reviewed-by: Waad Alkhoury <walkhour@redhat.com>
Reviewed-by: Avan Thakkar <athakkar@redhat.com>
Reviewed-by: Nizamudeen A <nia@redhat.com>
4 years agoMerge pull request #41320 from trociny/wip-50794-pacific
Yuri Weinstein [Wed, 2 Jun 2021 20:40:14 +0000 (13:40 -0700)]
Merge pull request #41320 from trociny/wip-50794-pacific

pacific: osd: don't assert in-flight backfill is always in recovery list

Reviewed-by: Neha Ojha <nojha@redhat.com>
4 years agoMerge pull request #41312 from k0ste/wip-50779-pacific
Yuri Weinstein [Wed, 2 Jun 2021 18:54:38 +0000 (11:54 -0700)]
Merge pull request #41312 from k0ste/wip-50779-pacific

pacific: mgr/progress: ensure progress stays between [0,1]

Reviewed-by: Neha Ojha <nojha@redhat.com>
4 years agoMerge pull request #41236 from trociny/wip-50702-pacific
Yuri Weinstein [Wed, 2 Jun 2021 18:53:51 +0000 (11:53 -0700)]
Merge pull request #41236 from trociny/wip-50702-pacific

pacific: os/FileStore: fix to handle readdir error correctly

Reviewed-by: Neha Ojha <nojha@redhat.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
4 years agoMerge pull request #41125 from sseshasa/wip-50606-pacific
Yuri Weinstein [Wed, 2 Jun 2021 18:53:01 +0000 (11:53 -0700)]
Merge pull request #41125 from sseshasa/wip-50606-pacific

pacific: osd: Override recovery, backfill and sleep related config options during OSD and mclock scheduler initialization.

Reviewed-by: Neha Ojha <nojha@redhat.com>
Reviewed-by: Josh Durgin <jdurgin@redhat.com>
4 years agoMerge pull request #41113 from k0ste/wip-50602-pacific
Yuri Weinstein [Wed, 2 Jun 2021 18:52:16 +0000 (11:52 -0700)]
Merge pull request #41113 from k0ste/wip-50602-pacific

pacific: osd: compute OSD's space usage ratio via raw space utilization

Reviewed-by: Igor Fedotov <ifedotov@suse.com>
4 years agoMerge pull request #40566 from singuliere/wip-49992-pacific
Yuri Weinstein [Wed, 2 Jun 2021 18:51:33 +0000 (11:51 -0700)]
Merge pull request #40566 from singuliere/wip-49992-pacific

pacific: common/mempool: only fail tests if sharding is very bad

Reviewed-by: Kefu Chai <kchai@redhat.com>
4 years agoMerge pull request #41468 from batrick/i50873
Yuri Weinstein [Wed, 2 Jun 2021 15:13:26 +0000 (08:13 -0700)]
Merge pull request #41468 from batrick/i50873

pacific: mon,doc: deprecate min_compat_client

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
4 years agoMerge pull request #40689 from singuliere/wip-50014-pacific
Yuri Weinstein [Wed, 2 Jun 2021 15:12:25 +0000 (08:12 -0700)]
Merge pull request #40689 from singuliere/wip-50014-pacific

pacific: debian,cmake,cephsqlite: hide non-public symbols

Reviewed-by: Kefu Chai <kchai@redhat.com>
4 years agomgr/dashboard: fix bucket objects and size calculations 41646/head
Avan Thakkar [Tue, 1 Jun 2021 14:21:16 +0000 (19:51 +0530)]
mgr/dashboard: fix bucket objects and size calculations

Fixes: https://tracker.ceph.com/issues/51035
Signed-off-by: Avan Thakkar <athakkar@redhat.com>
(cherry picked from commit 9f5ef98d9c88a91b80e622f16f7061eddff79b2c)

4 years agoMerge pull request #41633 from rhcs-dashboard/wip-51036-pacific
Ernesto Puerta [Wed, 2 Jun 2021 12:16:36 +0000 (14:16 +0200)]
Merge pull request #41633 from rhcs-dashboard/wip-51036-pacific

pacific: mgr/dashboard: pass Grafana datasource in URL

Reviewed-by: Aashish Sharma <aasharma@redhat.com>
Reviewed-by: Avan Thakkar <athakkar@redhat.com>
Reviewed-by: Ernesto Puerta <epuertat@redhat.com>
Reviewed-by: Nizamudeen A <nia@redhat.com>
4 years agoMerge pull request #41528 from rhcs-dashboard/wip-50968-pacific
Ernesto Puerta [Wed, 2 Jun 2021 12:14:20 +0000 (14:14 +0200)]
Merge pull request #41528 from rhcs-dashboard/wip-50968-pacific

pacific: mgr/dashboard: show RGW tenant user id correctly in 'NFS create export' form

Reviewed-by: Waad Alkhoury <walkhour@redhat.com>
Reviewed-by: Alfonso Martínez <almartin@redhat.com>
Reviewed-by: Laura Paduano <lpaduano@suse.com>
Reviewed-by: Ernesto Puerta <epuertat@redhat.com>
Reviewed-by: Nizamudeen A <nia@redhat.com>
4 years agoMerge PR #41053 into pacific
Patrick Donnelly [Wed, 2 Jun 2021 05:24:31 +0000 (22:24 -0700)]
Merge PR #41053 into pacific

* refs/pull/41053/head:
cephfs-top: set the cursor to be invisible
cephfs-top: self-adapt the display according the window size
cephfs-top: use the default window object from curses.wrapper()
cephfs-top: improve the output

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
4 years agoMerge PR #41389 into pacific
Patrick Donnelly [Wed, 2 Jun 2021 04:59:08 +0000 (21:59 -0700)]
Merge PR #41389 into pacific

* refs/pull/41389/head:
qa/tasks/nfs: add test to check if cmds fail on not passing required arguments
mgr/nfs: fix flake8 missing whitespace around parameter equals error
mgr/nfs: annotate _cmd_nfs_* methods return value
doc/cephfs/nfs: add section about ganesha logs
doc/cephfs/nfs: Replace volume/nfs with nfs
doc/cephfs/nfs: add note about export management with volume/nfs interface only
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: Patrick Donnelly <pdonnell@redhat.com>
4 years agoMerge PR #40634 into pacific
Patrick Donnelly [Wed, 2 Jun 2021 04:49:17 +0000 (21:49 -0700)]
Merge PR #40634 into pacific

* refs/pull/40634/head:
qa: check mounts attribute in ctx

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
4 years agoMerge PR #41169 into pacific
Patrick Donnelly [Wed, 2 Jun 2021 04:11:47 +0000 (21:11 -0700)]
Merge PR #41169 into pacific

* refs/pull/41169/head:
pacific: qa: drop the distro~HEAD directory from the fs suite.

Reviewed-by: Neha Ojha <nojha@redhat.com>
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
Reviewed-by: Josh Durgin <jdurgin@redhat.com>
4 years agoMerge pull request #41629 from ideepika/wip-pr-41514
Ilya Dryomov [Tue, 1 Jun 2021 16:39:34 +0000 (18:39 +0200)]
Merge pull request #41629 from ideepika/wip-pr-41514

pacific: qa/upgrade: conditionally disable update_features tests

Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Mykola Golub <mgolub@suse.com>
4 years agomgr/dashboard: pass Grafana datasource in URL 41633/head
Ernesto Puerta [Mon, 31 May 2021 11:45:40 +0000 (13:45 +0200)]
mgr/dashboard: pass Grafana datasource in URL

PR https://github.com/ceph/ceph/pull/24314 added support for
specifying the Grafana datasource via $datasource template variable, but
this hadn't been used from the Dashboard side so far.

As per https://grafana.com/docs/grafana/latest/variables/#templates, by
adding `var-datasource=Dashboard1`, Dashboard can specify the
datasource.

Fixes: https://tracker.ceph.com/issues/51026
Signed-off-by: Ernesto Puerta <epuertat@redhat.com>
(cherry picked from commit 957c9c304bca8ef8416041f96b0e2d5bb0f0a0dc)

4 years agoqa/upgrade: conditionally disable update_features tests 41629/head
Deepika [Mon, 24 May 2021 21:20:39 +0000 (21:20 +0000)]
qa/upgrade: conditionally disable update_features tests

with the recent support for async rbd operations from pacific+ when an
    older client(non async support) goes on upgrade, and simultaneously
    interacts with a newer client which expects the requests to be async,
    experiences hang; considering the return code for request completion to
    be acknowledgement for async request, which then keeps waiting for
    another acknowledgement of request completion.

    this if happens should be a rare only when lockowner is an old client
    and should be deferred if compatibility issues arises.

see also: 541230475d3b25ab18c4eb9bc5011060462594a6(octopus)

Signed-off-by: Deepika <dupadhya@redhat.com>
(cherry picked from commit 9c0b239d70cdeb0c5705fa89fa5aac111152671b)

4 years agoMerge pull request #41428 from rhcs-dashboard/wip-50774-pacific
Ernesto Puerta [Tue, 25 May 2021 16:39:25 +0000 (18:39 +0200)]
Merge pull request #41428 from rhcs-dashboard/wip-50774-pacific

pacific: mgr/dashboard: ingress service creation follow-up

Reviewed-by: Waad Alkhoury <walkhour@redhat.com>
Reviewed-by: Aashish Sharma <aasharma@redhat.com>
Reviewed-by: Avan Thakkar <athakkar@redhat.com>
Reviewed-by: Nizamudeen A <nia@redhat.com>
4 years agoMerge pull request #41427 from rhcs-dashboard/wip-50882-pacific
Ernesto Puerta [Tue, 25 May 2021 16:38:41 +0000 (18:38 +0200)]
Merge pull request #41427 from rhcs-dashboard/wip-50882-pacific

pacific: mgr/dashboard: fix ESOCKETTIMEDOUT E2E failure

Reviewed-by: Waad Alkhoury <walkhour@redhat.com>
Reviewed-by: Avan Thakkar <athakkar@redhat.com>
Reviewed-by: Nizamudeen A <nia@redhat.com>
Reviewed-by: Pere Diaz Bou <pdiazbou@redhat.com>
4 years agoMerge pull request #41505 from rhcs-dashboard/wip-50959-pacific
Ernesto Puerta [Tue, 25 May 2021 16:37:37 +0000 (18:37 +0200)]
Merge pull request #41505 from rhcs-dashboard/wip-50959-pacific

pacific: mgr/dashboard: drop container image name and id from services list

Reviewed-by: Avan Thakkar <athakkar@redhat.com>
Reviewed-by: Ernesto Puerta <epuertat@redhat.com>
Reviewed-by: Nizamudeen A <nia@redhat.com>
4 years agoMerge pull request #41507 from rhcs-dashboard/wip-50962-pacific
Ernesto Puerta [Tue, 25 May 2021 16:36:10 +0000 (18:36 +0200)]
Merge pull request #41507 from rhcs-dashboard/wip-50962-pacific

pacific: mgr/dashboard: fix API docs link

Reviewed-by: Aashish Sharma <aasharma@redhat.com>
Reviewed-by: Avan Thakkar <athakkar@redhat.com>
Reviewed-by: Nizamudeen A <nia@redhat.com>
4 years agoMerge pull request #41440 from rhcs-dashboard/wip-50864-pacific
Ernesto Puerta [Tue, 25 May 2021 16:34:54 +0000 (18:34 +0200)]
Merge pull request #41440 from rhcs-dashboard/wip-50864-pacific

pacific: mgr/dashboard: Fix for query params resetting on change-password

Reviewed-by: Aashish Sharma <aasharma@redhat.com>
Reviewed-by: Alfonso Martínez <almartin@redhat.com>
Reviewed-by: Avan Thakkar <athakkar@redhat.com>