From ceb1b1566992b0161e59b86c3d46d0ac9a51c783 Mon Sep 17 00:00:00 2001 From: Daniel Badea Date: Wed, 11 Sep 2019 14:30:27 +0000 Subject: [PATCH] ceph: explicitly bind ceph-mgr to controller address ceph-mgr has no corresponding sections in ceph.conf When the service starts it binds and advertise a local address. In the case of #1843082 ceph-mgr on controller-0 binds to the floating management IP address [face::5]. When controller swacts ceph-client API requests are sent to [face::5] but there is no service listening on that endpoint and host-lock command hangs. Fix: use ceph.conf to explicitly bind ceph-mgr to a host-specific controller address. Change-Id: I811bfa7410770eb91eb4519cfab3e6febf381e6d Closes-bug: 1843082 Signed-off-by: Daniel Badea --- .../src/modules/platform/manifests/ceph.pp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/puppet-manifests/src/modules/platform/manifests/ceph.pp b/puppet-manifests/src/modules/platform/manifests/ceph.pp index 943ae5881..2b1706b61 100644 --- a/puppet-manifests/src/modules/platform/manifests/ceph.pp +++ b/puppet-manifests/src/modules/platform/manifests/ceph.pp @@ -304,6 +304,19 @@ class platform::ceph::monitor } } } + + # explicitly bind ceph-mgr to host-specific address + # to avoid automatic binding of floating address + if $::hostname == $mon_0_host { + ceph_config{ + "mgr.${$::hostname}/public_addr": value => $mon_0_ip; + } + } + elsif $::hostname == $mon_1_host { + ceph_config{ + "mgr.${$::hostname}/public_addr": value => $mon_1_ip; + } + } } define osd_crush_location(