From b7879044e3a214d7e5c4aa5d62ac2476b143908d Mon Sep 17 00:00:00 2001 From: ramishra Date: Sat, 3 Jul 2021 09:18:05 +0530 Subject: [PATCH] Add option to enable keystone in undercloud As we're disabling keystone by default in the undercloud, this new configuration option can be used to optionally enable keystone. Depends-On: https://review.opendev.org/c/openstack/tripleo-heat-templates/+/799408 Change-Id: I8de3ad9cfb6627f76451e9f3705fbffd6cd19f2c --- .../disable-keystone-by-default-ee9cb13ee2e37f9f.yaml | 8 ++++++++ tripleoclient/config/standalone.py | 6 +++++- tripleoclient/config/undercloud.py | 1 + tripleoclient/tests/config/test_config_standalone.py | 11 ++++++++++- tripleoclient/tests/config/test_config_undercloud.py | 2 ++ tripleoclient/v1/undercloud_config.py | 4 ++++ 6 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 releasenotes/notes/disable-keystone-by-default-ee9cb13ee2e37f9f.yaml diff --git a/releasenotes/notes/disable-keystone-by-default-ee9cb13ee2e37f9f.yaml b/releasenotes/notes/disable-keystone-by-default-ee9cb13ee2e37f9f.yaml new file mode 100644 index 000000000..8532fa2c0 --- /dev/null +++ b/releasenotes/notes/disable-keystone-by-default-ee9cb13ee2e37f9f.yaml @@ -0,0 +1,8 @@ +--- +features: + - Undercloud is now deployed without keystone and deploys standalone + openstack services with http_basic authentication. A new option + 'enable_keystone' has been added to enable keystone in the undercloud + if required. +upgrade: + - keystone service would not be deployed by default in the undercloud. diff --git a/tripleoclient/config/standalone.py b/tripleoclient/config/standalone.py index 68e1de179..ca60f54dd 100644 --- a/tripleoclient/config/standalone.py +++ b/tripleoclient/config/standalone.py @@ -55,7 +55,8 @@ class StandaloneConfig(BaseConfig): ironic_inspector=False, mistral=False, nova=False, novajoin=False, swift=False, telemetry=False, validations=False, - zaqar=False, neutron=False, heat=False): + zaqar=False, neutron=False, heat=False, + keystone=True): _opts = [ # service enablement cfg.BoolOpt('enable_cinder', @@ -113,6 +114,9 @@ class StandaloneConfig(BaseConfig): cfg.BoolOpt('enable_heat', default=heat, help=_('Whether to enable the heat service.')), + cfg.BoolOpt('enable_keystone', + default=keystone, + help=_('Whether to enable the keystone service.')), ] return self.sort_opts(_opts) diff --git a/tripleoclient/config/undercloud.py b/tripleoclient/config/undercloud.py index 94b6e4249..39e333db0 100644 --- a/tripleoclient/config/undercloud.py +++ b/tripleoclient/config/undercloud.py @@ -71,6 +71,7 @@ _deprecated_opt_inspection_iprange = [cfg.DeprecatedOpt( class UndercloudConfig(StandaloneConfig): def get_undercloud_service_opts(self): return super(UndercloudConfig, self).get_enable_service_opts( + keystone=False, cinder=False, heat=False, ironic=True, diff --git a/tripleoclient/tests/config/test_config_standalone.py b/tripleoclient/tests/config/test_config_standalone.py index f0870b743..bc82a46fa 100644 --- a/tripleoclient/tests/config/test_config_standalone.py +++ b/tripleoclient/tests/config/test_config_standalone.py @@ -50,6 +50,7 @@ class TestStandaloneConfig(base.TestCase): 'enable_heat', 'enable_ironic', 'enable_ironic_inspector', + 'enable_keystone', 'enable_mistral', 'enable_neutron', 'enable_nova', @@ -60,12 +61,18 @@ class TestStandaloneConfig(base.TestCase): 'enable_zaqar'] self.assertEqual(expected, [x.name for x in ret]) for x in ret: - self.assertEqual(x.default, False, "%s config not False" % x.name) + if x.name == 'enable_keystone': + self.assertEqual(x.default, True, + "%s config not True" % x.name) + else: + self.assertEqual(x.default, False, + "%s config not False" % x.name) def test_get_service_opts_enabled(self): ret = self.config.get_enable_service_opts(cinder=True, frr=True, heat=True, + keystone=True, ironic=True, ironic_inspector=True, mistral=True, @@ -81,6 +88,7 @@ class TestStandaloneConfig(base.TestCase): 'enable_heat', 'enable_ironic', 'enable_ironic_inspector', + 'enable_keystone', 'enable_mistral', 'enable_neutron', 'enable_nova', @@ -108,6 +116,7 @@ class TestStandaloneConfig(base.TestCase): 'enable_heat', 'enable_ironic', 'enable_ironic_inspector', + 'enable_keystone', 'enable_mistral', 'enable_neutron', 'enable_nova', diff --git a/tripleoclient/tests/config/test_config_undercloud.py b/tripleoclient/tests/config/test_config_undercloud.py index 550293047..4c622c9d1 100644 --- a/tripleoclient/tests/config/test_config_undercloud.py +++ b/tripleoclient/tests/config/test_config_undercloud.py @@ -99,6 +99,7 @@ class TestUndercloudConfig(base.TestCase): 'enable_heat', 'enable_ironic', 'enable_ironic_inspector', + 'enable_keystone', 'enable_mistral', 'enable_neutron', 'enable_node_discovery', @@ -169,6 +170,7 @@ class TestUndercloudConfig(base.TestCase): ret = self.config.get_undercloud_service_opts() expected = {'enable_cinder': False, 'enable_frr': False, + 'enable_keystone': False, 'enable_heat': False, 'enable_ironic': True, 'enable_ironic_inspector': True, diff --git a/tripleoclient/v1/undercloud_config.py b/tripleoclient/v1/undercloud_config.py index c876089ad..8f338d620 100644 --- a/tripleoclient/v1/undercloud_config.py +++ b/tripleoclient/v1/undercloud_config.py @@ -598,6 +598,10 @@ def prepare_undercloud_deploy(upgrade=False, no_validations=True, deploy_args += ['-e', os.path.join( tht_templates, "environments/services/masquerade-networks.yaml")] + if CONF.get('enable_keystone'): + deploy_args += ['-e', os.path.join( + tht_templates, "environments/undercloud-enable-keystone.yaml")] + if CONF.get('enable_ironic'): deploy_args += ['-e', os.path.join( tht_templates, "environments/services/ironic.yaml")]