Merge "Add ipv6 bind flags"

This commit is contained in:
Zuul 2024-04-29 08:40:22 +00:00 committed by Gerrit Code Review
commit 5f7ad409fe
3 changed files with 44 additions and 0 deletions

View File

@ -206,6 +206,8 @@ def get_ceph_context():
if config('prefer-ipv6'): if config('prefer-ipv6'):
dynamic_ipv6_address = get_ipv6_addr()[0] dynamic_ipv6_address = get_ipv6_addr()[0]
cephcontext['ms_bind_ipv4'] = False
cephcontext['ms_bind_ipv6'] = True
if not public_network: if not public_network:
cephcontext['public_addr'] = dynamic_ipv6_address cephcontext['public_addr'] = dynamic_ipv6_address
if not cluster_network: if not cluster_network:

View File

@ -23,6 +23,12 @@ debug osd = {{ loglevel }}/5
# skew calculation. # skew calculation.
mon pg warn max object skew = -1 mon pg warn max object skew = -1
{% if ms_bind_ipv6 %}
ms_bind_ipv6 = true
{%- endif %}
{%- if ms_bind_ipv4 == false %}
ms_bind_ipv4 = false
{% endif %}
{% if ceph_public_network is string %} {% if ceph_public_network is string %}
public network = {{ ceph_public_network }} public network = {{ ceph_public_network }}
{%- endif %} {%- endif %}

View File

@ -199,6 +199,42 @@ class CephHooksTestCase(test_utils.CharmTestCase):
'use_syslog': 'true'} 'use_syslog': 'true'}
self.assertEqual(ctxt, expected) self.assertEqual(ctxt, expected)
@patch.object(ceph_hooks, 'get_rbd_features', return_value=None)
@patch.object(ceph_hooks, 'get_ipv6_addr',
lambda **kwargs: ["2a01:348:2f4:0:685e:5748:ae62:209f"])
@patch.object(ceph_hooks, 'cmp_pkgrevno', lambda *args: 1)
@patch.object(ceph_hooks, 'get_mon_hosts',
lambda *args: ['2a01:348:2f4:0:685e:5748:ae62:209f',
'2a01:348:2f4:0:685e:5748:ae62:20a0'])
@patch.object(ceph_hooks, 'get_networks', lambda *args: "")
@patch.object(ceph_hooks, 'leader_get', lambda *args: '1234')
@patch.object(ceph, 'config')
@patch.object(ceph_hooks, 'config')
def test_get_ceph_context_prefer_ipv6(self, mock_config, mock_config2,
_get_rbd_features):
config = copy.deepcopy(CHARM_CONFIG)
config['prefer-ipv6'] = True
mock_config.side_effect = lambda key: config[key]
mock_config2.side_effect = lambda key: config[key]
ctxt = ceph_hooks.get_ceph_context()
expected = {'auth_supported': 'cephx',
'ceph_cluster_network': '',
'ceph_public_network': '',
'cluster_addr': '2a01:348:2f4:0:685e:5748:ae62:209f',
'dio': 'true',
'fsid': '1234',
'loglevel': 1,
'mon_hosts': '2a01:348:2f4:0:685e:5748:ae62:209f '
'2a01:348:2f4:0:685e:5748:ae62:20a0',
'mon_data_avail_warn': 30,
'mon_data_avail_crit': 5,
'old_auth': False,
'public_addr': '2a01:348:2f4:0:685e:5748:ae62:209f',
'use_syslog': 'true',
'ms_bind_ipv4': False,
'ms_bind_ipv6': True}
self.assertEqual(ctxt, expected)
@patch.object(ceph_hooks, 'config') @patch.object(ceph_hooks, 'config')
def test_nrpe_dependency_installed(self, mock_config): def test_nrpe_dependency_installed(self, mock_config):
config = copy.deepcopy(CHARM_CONFIG) config = copy.deepcopy(CHARM_CONFIG)