From b309cb6c288aa50c70515ce67d629efa23dc3a66 Mon Sep 17 00:00:00 2001 From: "grace.yu" Date: Thu, 4 Sep 2014 15:20:03 -0700 Subject: [PATCH] modify multinode environment template Change-Id: Ib61c673929f8028d7f46d84588fe544547713aed --- compass/actions/deploy.py | 6 + .../deployment/installers/config_manager.py | 11 ++ .../chef_installer/chef_installer.py | 25 +++ .../pk_installers/chef_installer/test_chef.py | 22 ++- .../installers/test_config_manager.py | 10 +- .../tests/deployment/test_data/config_data.py | 4 +- .../environments/multinodes.tmpl | 61 ++++++- ...os_compute.tmpl => os_compute_worker.tmpl} | 2 +- conf/flavor/openstack_chef.conf | 19 +- conf/package_installer/chef-icehouse.conf | 2 +- conf/role/openstack_chef.conf | 32 +++- .../databags/db_passwords.tmpl | 20 ++- .../openstack_icehouse/databags/secrets.tmpl | 8 + .../databags/service_passwords.tmpl | 20 +++ .../databags/user_passwords.tmpl | 5 + .../environments/allinone.tmpl | 17 +- .../environments/multinodes.tmpl | 165 ++++++++++++------ 17 files changed, 345 insertions(+), 84 deletions(-) rename compass/tests/deployment/test_data/templates/chef_installer/openstack_icehouse/nodes/{os_compute.tmpl => os_compute_worker.tmpl} (71%) diff --git a/compass/actions/deploy.py b/compass/actions/deploy.py index e5c9475b..fc411112 100644 --- a/compass/actions/deploy.py +++ b/compass/actions/deploy.py @@ -241,8 +241,14 @@ class ActionHelper(object): for host_id in hosts_id_list: info = cluster_db.get_cluster_host(user, cluster_id, host_id) logging.debug("checking on info %r %r" % (host_id, info)) + info[const.ROLES] = ActionHelper._get_role_names(info[const.ROLES]) + # TODO(grace): Is following line necessary?? + roles_info = info.setdefault(const.ROLES, []) + if not roles_info: + raise Exception("Host(id=%d) haven't set any roles!" % host_id) + config = cluster_db.get_cluster_host_config(user, cluster_id, host_id) diff --git a/compass/deployment/installers/config_manager.py b/compass/deployment/installers/config_manager.py index faea8e89..0703548f 100644 --- a/compass/deployment/installers/config_manager.py +++ b/compass/deployment/installers/config_manager.py @@ -253,6 +253,17 @@ class BaseConfigManager(object): def get_host_roles(self, host_id): return self.__get_host_item(host_id, const.ROLES, []) + def get_all_hosts_roles(self, hosts_id_list=None): + roles = [] + if hosts_id_list is None: + hosts_id_list = self.get_host_id_list() + + for host_id in hosts_id_list: + host_roles = self.get_host_roles(host_id) + roles.extend([role for role in host_roles if role not in roles]) + + return roles + def get_host_roles_mapping(self, host_id): roles_mapping = {} deployed_pk_config = self.get_host_package_config(host_id) diff --git a/compass/deployment/installers/pk_installers/chef_installer/chef_installer.py b/compass/deployment/installers/pk_installers/chef_installer/chef_installer.py index 2eff0512..cd04ae04 100644 --- a/compass/deployment/installers/pk_installers/chef_installer/chef_installer.py +++ b/compass/deployment/installers/pk_installers/chef_installer/chef_installer.py @@ -58,6 +58,7 @@ class ChefInstaller(PKInstaller): key, client = self.get_chef_credentials(installer_settings) self.chef_api = self._get_chef_api(key, client) + self.all_chef_roles = self.get_all_roles() logging.debug('%s instance created', self) @classmethod @@ -88,6 +89,15 @@ class ChefInstaller(PKInstaller): return chef_api + def get_all_roles(self): + import chef + if not self.chef_api: + logging.info("chefAPI is None! Cannot retrieve roles from server.") + return None + + roles_objs = chef.Role.list(self.chef_api) + return [name for name, value in roles_objs.items()] + def get_env_name(self, dist_sys_name, cluster_name): """Generate environment name.""" return "-".join((dist_sys_name, cluster_name)) @@ -173,6 +183,9 @@ class ChefInstaller(PKInstaller): run_list = node.run_list for role in roles: + if role not in self.all_chef_roles: + raise Exception("Cannot find role '%s' on chef server!") + node_role = 'role[%s]' % role if node_role not in run_list: node.run_list.append(node_role) @@ -371,6 +384,15 @@ class ChefInstaller(PKInstaller): return cluster_vars_dict + def validate_roles(self, hosts_id_list): + hosts_roles = self.config_manager.get_all_hosts_roles(hosts_id_list) + for role in hosts_roles: + if role not in self.all_chef_roles: + logging.error("Role: %s cannot be found on chef server!", + role) + return False + return True + def deploy(self): """Start to deploy a distributed system. Return both cluster and hosts deployed configs. The return format: @@ -395,6 +417,9 @@ class ChefInstaller(PKInstaller): if not host_list: return {} + if self.validate_roles(host_list) is False: + raise Exception("Some role cannot be found in chef server!") + adapter_name = self.config_manager.get_adapter_name() cluster_name = self.config_manager.get_clustername() env_name = self.get_env_name(adapter_name, cluster_name) diff --git a/compass/tests/deployment/installers/pk_installers/chef_installer/test_chef.py b/compass/tests/deployment/installers/pk_installers/chef_installer/test_chef.py index e0e33390..686aa709 100644 --- a/compass/tests/deployment/installers/pk_installers/chef_installer/test_chef.py +++ b/compass/tests/deployment/installers/pk_installers/chef_installer/test_chef.py @@ -63,6 +63,10 @@ class TestChefInstaller(unittest2.TestCase): ChefInstaller._get_chef_api = Mock() ChefInstaller._get_chef_api.return_value = 'mock_server' + ChefInstaller.get_all_roles = Mock() + ChefInstaller.get_all_roles.return_value = [] + ChefInstaller.validate_roles = Mock() + ChefInstaller.validate_roles.return_value = True chef_installer = ChefInstaller(config_manager) return chef_installer @@ -83,8 +87,9 @@ class TestChefInstaller(unittest2.TestCase): } } } - output = self.test_chef._generate_node_attributes(['os-compute'], - vars_dict) + output = self.test_chef._generate_node_attributes( + ['os-compute-worker'], vars_dict + ) self.maxDiff = None self.assertDictEqual(expected_node_attr, output) @@ -97,8 +102,6 @@ class TestChefInstaller(unittest2.TestCase): "json_class": "Chef::Environment", "chef_type": "environment", "default_attributes": { - }, - "override_attributes": { "compute": { "syslog": { "use": False @@ -113,6 +116,11 @@ class TestChefInstaller(unittest2.TestCase): "bind_interface": "eth0" } }, + "network": { + "l3": { + "external_network_bridge_interface": "eth2" + } + }, "db": { "bind_interface": "vnet0", "compute": { @@ -231,7 +239,7 @@ class TestChefInstaller(unittest2.TestCase): "subnet": "172.16.1.0/24" } }, - "os_compute": { + "os_compute_worker": { "management": { "interface": "eth0", "ip": "12.234.32.101", @@ -312,7 +320,7 @@ class TestChefInstaller(unittest2.TestCase): 2: { "deployed_package_config": { "roles_mapping": { - "os_compute": { + "os_compute_worker": { "management": { "interface": "eth0", "ip": "12.234.32.101", @@ -368,7 +376,7 @@ class TestChefInstaller(unittest2.TestCase): "subnet": "10.0.0.0/24" } }, - "os_compute": { + "os_compute_worker": { "management": { "interface": "eth0", "ip": "12.234.32.103", diff --git a/compass/tests/deployment/installers/test_config_manager.py b/compass/tests/deployment/installers/test_config_manager.py index 07ba89a3..1e771b23 100644 --- a/compass/tests/deployment/installers/test_config_manager.py +++ b/compass/tests/deployment/installers/test_config_manager.py @@ -81,7 +81,7 @@ class TestConfigManager(unittest2.TestCase): "subnet": "172.16.1.0/24" } }, - "os_compute": { + "os_compute_worker": { "management": { "interface": "eth0", "ip": "12.234.32.101", @@ -130,6 +130,12 @@ class TestConfigManager(unittest2.TestCase): output = self.test_config_manager.get_cluster_roles_mapping() self.assertEqual(expected_output, output) + def test_get_all_hosts_roles(self): + expected_output = ['os-compute-worker', 'os-network', 'os-controller'] + output = self.test_config_manager.get_all_hosts_roles() + self.assertEqual(len(expected_output), len(output)) + self.assertEqual(sorted(expected_output), sorted(output)) + def test_get_host_role_mapping(self): expected_output = { "os_network": { @@ -158,7 +164,7 @@ class TestConfigManager(unittest2.TestCase): "subnet": "10.0.0.0/24" } }, - "os_compute": { + "os_compute_worker": { "management": { "interface": "eth0", "ip": "12.234.32.103", diff --git a/compass/tests/deployment/test_data/config_data.py b/compass/tests/deployment/test_data/config_data.py index 48bccf71..3db576ee 100644 --- a/compass/tests/deployment/test_data/config_data.py +++ b/compass/tests/deployment/test_data/config_data.py @@ -287,7 +287,7 @@ hosts_test_config = { "mac": "00:0c:29:3e:60:a1", "name": "server02.test", "hostname": "server02", - "roles": ["os-compute"], + "roles": ["os-compute-worker"], "networks": { "eth0": { "ip": "12.234.32.101", @@ -326,7 +326,7 @@ hosts_test_config = { "mac": "00:0c:29:3e:60:a2", "name": "server03.test", "hostname": "server03", - "roles": ["os-network", "os-compute"], + "roles": ["os-network", "os-compute-worker"], "networks": { "eth0": { "ip": "12.234.32.103", diff --git a/compass/tests/deployment/test_data/templates/chef_installer/openstack_icehouse/environments/multinodes.tmpl b/compass/tests/deployment/test_data/templates/chef_installer/openstack_icehouse/environments/multinodes.tmpl index a1ba6f9b..ab015933 100644 --- a/compass/tests/deployment/test_data/templates/chef_installer/openstack_icehouse/environments/multinodes.tmpl +++ b/compass/tests/deployment/test_data/templates/chef_installer/openstack_icehouse/environments/multinodes.tmpl @@ -1,3 +1,47 @@ +#set controller_role = $get_role('os_compute_controller', $getVar('os_controller', None)) + +## Contoller node management IP/interface +#set controller_ip = $controller_role.management.ip +#set controller_nic = $controller_role.management.interface + +## Compute node management IP/interface +#set compute_role = $getVar('os_compute_worker', None) +#set compute_nic = $compute_role.management.interface + +## Network server/worker node IP/interface +#set network = $getVar('os_network', None) +#set network_server_role = $get_role('os_network_server', [$network, $controller_role]) +#set network_worker_role = $get_role('os_network_worker', [$network, $compute_role]) + +#set network_server_ip = $network_server_role.management.ip +#set network_server_nic = $network_server_role.management.interface + +## Network worker node management IP/interface +#set network_worker_ip = $network_worker_role.management.ip +#set network_worker_nic = $network_worker_role.management.interface +#set network_worker_public_nic = $network_worker_role.public.interface + +## Database node management IP +#set db_role = $get_role('os_ops_database', $controller_role) +#set db_ip = $db_role.management.ip + +#def get_role($role_name, $default_roles=None) + #set target_role = $getVar($role_name, None) + #if $target_role is None and $default_roles is not None: + #if isinstance($default_roles, list) + #for $role in $default_roles + #if $role is not None: + #set target_role = $role + #break + #end if + #end for + #else + #set target_role = $default_roles + #end if + #end if + #return target_role +#end def + #set credentials = $getVar('service_credentials', {}) { "name": "testing", @@ -7,29 +51,32 @@ "json_class": "Chef::Environment", "chef_type": "environment", "default_attributes": { - }, - "override_attributes": { "compute": { "syslog": { "use": false }, "libvirt": { - "bind_interface": "$os_compute.management.interface" + "bind_interface": "$compute_nic" }, "novnc_proxy": { - "bind_interface": "$os_controller.management.interface" + "bind_interface": "$controller_nic" }, "xvpvnc_proxy": { "bind_interface": "eth0" } }, + "network": { + "l3": { + "external_network_bridge_interface": "$network_worker_public_nic" + } + }, "db": { - "bind_interface": "$os_controller.management.interface", + "bind_interface": "$controller_nic", "compute": { - "host": "$os_controller.management.ip" + "host": "$db_ip" }, "identity": { - "host": "$os_controller.management.ip" + "host": "$db_ip" } }, "mq": { diff --git a/compass/tests/deployment/test_data/templates/chef_installer/openstack_icehouse/nodes/os_compute.tmpl b/compass/tests/deployment/test_data/templates/chef_installer/openstack_icehouse/nodes/os_compute_worker.tmpl similarity index 71% rename from compass/tests/deployment/test_data/templates/chef_installer/openstack_icehouse/nodes/os_compute.tmpl rename to compass/tests/deployment/test_data/templates/chef_installer/openstack_icehouse/nodes/os_compute_worker.tmpl index e872525f..8ecbbde9 100644 --- a/compass/tests/deployment/test_data/templates/chef_installer/openstack_icehouse/nodes/os_compute.tmpl +++ b/compass/tests/deployment/test_data/templates/chef_installer/openstack_icehouse/nodes/os_compute_worker.tmpl @@ -3,7 +3,7 @@ "openstack": { "endpoints": { "compute-vnc-bind": { - "host":"$os_compute.management.ip" + "host":"$os_compute_worker.management.ip" } } } diff --git a/conf/flavor/openstack_chef.conf b/conf/flavor/openstack_chef.conf index 1ce5186e..95040a84 100644 --- a/conf/flavor/openstack_chef.conf +++ b/conf/flavor/openstack_chef.conf @@ -5,12 +5,21 @@ FLAVORS = [{ 'template': 'allinone.tmpl', 'roles': ['allinone-compute'] }, { - 'flavor': 'multinodes', - 'display_name': 'Multi-node Cluster', + 'flavor': 'single-contoller-multi-compute', + 'display_name': 'Single controller multi-compute', 'template': 'multinodes.tmpl', 'roles': [ - 'os-compute-worker', 'os-network', 'os-block-storage-worker', - 'os-image', 'os-compute-vncproxy', 'os-controller', - 'os-ops-messaging', 'os-ops-database', 'ha-proxy' + 'os-controller', 'os-compute-worker', 'os-network', + 'os-block-storage-volume' + ] +}, { + 'flavor': 'multinodes', + 'display_name': 'multi-nodes', + 'template': 'multnodes.tmpl', + 'roles': [ + 'os-compute-controller','os-compute-worker', 'os-network-server', + 'os-network-worker', 'os-block-storage-volume', + 'os-block-storage-controller', 'os-image', 'os-dashboard', + 'os-identity', 'os-ops-messaging', 'os-ops-database', 'ha-proxy' ] }] diff --git a/conf/package_installer/chef-icehouse.conf b/conf/package_installer/chef-icehouse.conf index e0cd074c..378117f5 100644 --- a/conf/package_installer/chef-icehouse.conf +++ b/conf/package_installer/chef-icehouse.conf @@ -6,5 +6,5 @@ SETTINGS = { 'chef_server_dns': '$chef_hostname', 'key_dir': '', 'client_name': '', - 'databags': ['user_passwords', 'db_passwords', 'service_passwords', 'secrets'] + 'databags': [] } diff --git a/conf/role/openstack_chef.conf b/conf/role/openstack_chef.conf index 245f4cea..b04951a0 100644 --- a/conf/role/openstack_chef.conf +++ b/conf/role/openstack_chef.conf @@ -6,11 +6,27 @@ ROLES = [{ }, { 'role': 'os-network', 'display_name': 'network node', - 'description': 'network node' + 'description': 'network node including network server' }, { + 'role': 'os-network-server', + 'display_name': 'network server node', + 'description': 'network server node' +}, { + 'role': 'os-network-worker', + 'display_name': 'network node', + 'description': 'network node including network server' +}, { + 'role': 'os-block-storage-controller', + 'display_name': 'storage controller node', + 'description': 'storage controller node' +},{ 'role': 'os-block-storage-worker', 'display_name': 'storage node', 'description': 'storage node' +}, { + 'role': 'os-block-storage-volume', + 'display_name': 'storage node', + 'description': 'storage node' }, { 'role': 'os-image', 'display_name': 'image node', @@ -22,7 +38,11 @@ ROLES = [{ }, { 'role': 'os-controller', 'display_name': 'controller node', - 'description': 'controller node' + 'description': 'controller node including identity, dashboard, network server, and block stroage controller services' +}, { + 'role': 'os-compute-controller', + 'display_name': 'controller-only node', + 'description': 'controller node for nova APIs' }, { 'role': 'os-ops-messaging', 'display_name': 'message queue node', @@ -31,6 +51,14 @@ ROLES = [{ 'role': 'os-ops-database', 'display_name': 'database node', 'description': 'database node' +}, { + 'role': 'os-identity', + 'display_name': 'keystone node', + 'description': 'keystone node' +}, { + 'role': 'os-dashboard', + 'display_name': 'dashboard node', + 'description': 'dashboard node' }, { 'role': 'ha-proxy', 'display_name': 'ha proxy node', diff --git a/conf/templates/chef_installer/openstack_icehouse/databags/db_passwords.tmpl b/conf/templates/chef_installer/openstack_icehouse/databags/db_passwords.tmpl index 427133c4..95c0373b 100644 --- a/conf/templates/chef_installer/openstack_icehouse/databags/db_passwords.tmpl +++ b/conf/templates/chef_installer/openstack_icehouse/databags/db_passwords.tmpl @@ -1,11 +1,29 @@ { "nova": { - "nova": "mypass" + "nova": "nova" }, "horizon": { "horizon": "horizon" }, "keystone": { "identity": "identity" + }, + "glance": { + "glance": "glance" + }, + "ceilometer": { + "ceilometer": "ceilometer" + }, + "neutron": { + "neutron": "neutron" + }, + "cinder": { + "cinder": "cinder" + }, + "heat": { + "heat": "heat" + }, + "dash": { + "dash": "dash" } } diff --git a/conf/templates/chef_installer/openstack_icehouse/databags/secrets.tmpl b/conf/templates/chef_installer/openstack_icehouse/databags/secrets.tmpl index e69de29b..955ee4ae 100644 --- a/conf/templates/chef_installer/openstack_icehouse/databags/secrets.tmpl +++ b/conf/templates/chef_installer/openstack_icehouse/databags/secrets.tmpl @@ -0,0 +1,8 @@ +{ + "openstack_identity_bootstrap_token": { + "openstack_identity_bootstrap_token": "openstack_identity_bootstrap_token" + }, + "neutron_metadata_secret": { + "neutron_metadata_secret": "neutron_metadata_secret" + } +} diff --git a/conf/templates/chef_installer/openstack_icehouse/databags/service_passwords.tmpl b/conf/templates/chef_installer/openstack_icehouse/databags/service_passwords.tmpl index e69de29b..7f381a05 100644 --- a/conf/templates/chef_installer/openstack_icehouse/databags/service_passwords.tmpl +++ b/conf/templates/chef_installer/openstack_icehouse/databags/service_passwords.tmpl @@ -0,0 +1,20 @@ +{ + "openstack-image": { + "openstack-image" : "openstack-image" + }, + "openstack-compute": { + "openstack-compute": "openstack-compute" + }, + "openstack-block-storage": { + "openstack-block-storage": "openstack-block-storage" + }, + "openstack-orchestration": { + "openstack-orchestration": "openstack-orchestration" + }, + "openstack-network": { + "openstack-network": "openstack-network" + }, + "rbd": { + "rbd": "rbd" + } +} diff --git a/conf/templates/chef_installer/openstack_icehouse/databags/user_passwords.tmpl b/conf/templates/chef_installer/openstack_icehouse/databags/user_passwords.tmpl index e69de29b..0ad87cfe 100644 --- a/conf/templates/chef_installer/openstack_icehouse/databags/user_passwords.tmpl +++ b/conf/templates/chef_installer/openstack_icehouse/databags/user_passwords.tmpl @@ -0,0 +1,5 @@ +{ + "admin": { + "admin": "admin" + } +} diff --git a/conf/templates/chef_installer/openstack_icehouse/environments/allinone.tmpl b/conf/templates/chef_installer/openstack_icehouse/environments/allinone.tmpl index 31cec0fc..e25cc493 100644 --- a/conf/templates/chef_installer/openstack_icehouse/environments/allinone.tmpl +++ b/conf/templates/chef_installer/openstack_icehouse/environments/allinone.tmpl @@ -1,4 +1,6 @@ #set credentials = $service_credentials + +## allinone compute management IP/interface #set allinone_compute_mgmt_nic = $allinone_compute.management.interface #set allinone_compute_mgmt_ip = $allinone_compute.management.ip { @@ -275,18 +277,27 @@ "admin" ] } + }, + "demo": { + "password": "demo", + "default_tenant": "demo", + "roles": { + "member": [ + "demo" + ] + } } } }, "image": { "api": { - "bind_interface": "eth0" + "bind_interface": "$allinone_compute_mgmt_nic" }, "debug": true, "identity_service_chef_role": "os-identity", "rabbit_server_chef_role": "os-ops-messaging", "registry": { - "bind_interface": "eth0" + "bind_interface": "$allinone_compute_mgmt_nic" }, "syslog": { "use": false @@ -299,7 +310,7 @@ ] }, "memcached_servers": [ - "$allinone_compute_mgmt_nic:11211" + "$allinone_compute_mgmt_ip:11211" ], "mq": { "user": "$credentials.rabbitmq.username", diff --git a/conf/templates/chef_installer/openstack_icehouse/environments/multinodes.tmpl b/conf/templates/chef_installer/openstack_icehouse/environments/multinodes.tmpl index e96159d7..b4f13f26 100644 --- a/conf/templates/chef_installer/openstack_icehouse/environments/multinodes.tmpl +++ b/conf/templates/chef_installer/openstack_icehouse/environments/multinodes.tmpl @@ -1,4 +1,69 @@ -#set controller_mgmt_ip = $os_controller.management.ip +#set controller_role = $get_role('os_compute_controller', $getVar('os_controller', None)) + +## Contoller node management IP/interface +#set controller_ip = $controller_role.management.ip +#set controller_nic = $controller_role.management.interface + +## Compute node management IP/interface +#set compute_role = $getVar('os_compute_worker', None) +#set compute_nic = $compute_role.management.interface + +## Network server/worker node IP/interface +#set network = $getVar('os_network', None) +#set network_server_role = $get_role('os_network_server', [$network, $controller_role]) +#set network_worker_role = $get_role('os_network_worker', [$network, $compute_role]) + +#set network_server_ip = $network_server_role.management.ip +#set network_server_nic = $network_server_role.management.interface + +## Network worker node management IP/interface +#set network_worker_ip = $network_worker_role.management.ip +#set network_worker_nic = $network_worker_role.management.interface +#set network_worker_public_nic = $network_worker_role.public.interface + +## Database node management IP +#set db_role = $get_role('os_ops_database', $controller_role) +#set db_ip = $db_role.management.ip + +## Message queue node management IP/interface +#set msg_queue_role = $get_role('os_ops_messaging', $controller_role) +#set msg_queue_ip = $msg_queue_role.management.ip + +## Identity (keystone) node IP/interface +#set identity_role = $get_role('os_identity', $controller_role) +#set identity_ip = $identity_role.management.ip +#set identity_nic = $identity_role.management.interface + +## Glance node management IP/interface +#set glance_role = $get_role('os_image', $controller_role) +#set glance_ip = $glance_role.management.ip +#set glance_nic = $glance_role.management.interface + +## Cinder node management IP/interface +#set cinder_role = $get_role('os_block_storage_controller', $controller_role) +#set cinder_controller_ip = $cinder_role.management.ip +#set cinder_controller_nic = $cinder_role.management.interface + +## Dashboard node management IP/interface +#set dash_role = $get_role('os_dashboard', $controller_role) +#set dash_ip = $dash_role.management.ip + +#def get_role($role_name, $default_roles=None) + #set target_role = $getVar($role_name, None) + #if $target_role is None and $default_roles is not None + #if isinstance($default_roles, list) + #for $role in $default_roles + #if $role is not None + #set target_role = $role + #break + #end if + #end for + #else + #set target_role = $default_roles + #end if + #end if + #return $target_role +#end def { "name": "testing", "description": "Environment used in testing the upstream cookbooks and reference Chef repository", @@ -31,18 +96,17 @@ "use_ssl": "false" }, "compute": { - #set compute_mgmt_nic = $os_compute_worker.management.interface "syslog": { "use": false }, "libvirt": { - "bind_interface": "$compute_mgmt_nic" + "bind_interface": "$compute_nic" }, "novnc_proxy": { - "bind_interface": "$compute_mgmt_nic" + "bind_interface": "$compute_nic" }, "xvpvnc_proxy": { - "bind_interface": "$compute_mgmt_nic" + "bind_interface": "$compute_nic" }, "ratelimit": { "api": { @@ -74,96 +138,81 @@ "tunnel_id_ranges": "1:1000" }, "l3": { - "external_network_bridge_interface": "$os_compute_worker.public.interface" + "external_network_bridge_interface": "$network_worker_public_nic" } }, "db": { - "bind_interface": "$os_controller.management.interface", - #set db_role = $getVar('os_ops_database', None) - #set db_mgmt_ip = $os_controller.management.ip - #if db_role is not None: - #set db_mgmt_ip = $db_role.management.ip - #end if + "bind_interface": "$controller_ip", "compute": { - "host": "$db_mgmt_ip" + "host": "$db_ip" }, "identity": { - "host": "$db_mgmt_ip" + "host": "$db_ip" }, "image": { - "host": "$db_mgmt_ip" + "host": "$db_ip" }, "network": { - "host": "$db_mgmt_ip" + "host": "$db_ip" }, "volume": { - "host": "$db_mgmt_ip" + "host": "$db_ip" }, "dashboard": { - "host": "$db_mgmt_ip" + "host": "$db_ip" }, "telemetry": { - "host": "$db_mgmt_ip" + "host": "$db_ip" }, "orchestration": { - "host": "$db_mgmt_ip" + "host": "$db_ip" } }, "developer_mode": true, "endpoints": { "db": { - "host": "$db_mgmt_ip" + "host": "$db_ip" }, "mq": { - #set msg_queue_ip = controller_mgmt_ip - #if $getVar('os_ops_messaging', None) is not None: - #set msg_queue_ip = $os_ops_messaging.management.ip - #end if "host": "$msg_queue_ip" }, "compute-api": { - "host": "$controller_mgmt_ip", + "host": "$controller_ip", "scheme": "http", "port": "8774", "path": "/v2/%(tenant_id)s" }, "compute-api-bind": { - "bind_interface": "$os_controller.management.interface" + "bind_interface": "$controller_nic" }, "compute-ec2-admin": { - "host": "$controller_mgmt_ip", + "host": "$controller_ip", "scheme": "http", "port": "8773", "path": "/services/Admin" }, "compute-ec2-api": { - "host": "$controller_mgmt_ip", + "host": "$controller_ip", "scheme": "http", "port": "8773", "path": "/services/Cloud" }, "compute-novnc": { - "host": "$controller_mgmt_ip", + "host": "$controller_ip", "scheme": "http", "port": "6080", "path": "/vnc_auto.html" }, "compute-novnc-bind": { - "bind_interface": "$os_controller.management.interface" + "bind_interface": "$controller_nic" }, "compute-vnc-bind": { - "bind_interface" : "$os_compute_worker.management.interface" + "bind_interface" : "$compute_nic" }, "vnc_bind": { - "bind_interface": "$os_controller.management.interface" + "bind_interface": "$controller_nic" }, "image-api": { - #set glance_ip = controller_mgmt_ip - #set glance_nic = $os_controller.management.interface - #if $getVar('os_image', None) is not None: - #set glance_ip = $os_image.management.ip - #set glance_nic = $os_image.management.interface - #end if "host": "$glance_ip", "scheme": "http", "port": "9292", @@ -182,55 +231,55 @@ "bind_interface": "$glance_nic" }, "identity-bind": { - "bind_interface": "$os_controller.management.interface" + "bind_interface": "$identity_nic" }, "identity-api": { - "host": "$controller_mgmt_ip", + "host": "$identity_ip", "scheme": "http", "port": "5000", "path": "/v2.0" }, "identity-admin": { - "host": "$controller_mgmt_ip", + "host": "$identity_ip", "scheme": "http", "port": "35357", "path": "/v2.0" }, "block-storage-api": { - "host": "$controller_mgmt_ip", + "host": "$cinder_controller_ip", "scheme": "http", "port": "8776", "path": "/v1/%(tenant_id)s" }, "block-storage-api-bind": { - "bind_interface": "$os_controller.management.interface" + "bind_interface": "$cinder_controller_nic" }, "telemetry-api": { - "host": "$controller_mgmt_ip", + "host": "$controller_ip", "scheme": "http", "port": "8777", "path": "/v1" }, "network-api": { - "host": "$controller_mgmt_ip", + "host": "$network_server_ip", "scheme": "http", "port": "9696", "path": "" }, "network-api-bind": { - "bind_interface": "$os_controller.management.interface" + "bind_interface": "$network_server_nic" }, "network-openvswitch": { - "bind_interface": "$os_controller.management.interface" + "bind_interface": "$network_server_nic" }, "orchestration-api": { - "host": "$controller_mgmt_ip", + "host": "$controller_ip", "scheme": "http", "port": "8004", "path": "/v1/%(tenant_id)s" }, "orchestration-api-cfn": { - "host": "$controller_mgmt_ip", + "host": "$controller_ip", "scheme": "http", "port": "8000", "path": "/v1" @@ -238,7 +287,7 @@ }, "identity": { "admin_user": "admin", - "bind_interface": "$os_controller.management.interface", + "bind_interface": "$identity_nic", "catalog": { "backend": "sql" }, @@ -252,7 +301,8 @@ }, "tenants": [ "admin", - "service" + "service", + "demo" ], "token": { "backend": "sql" @@ -266,6 +316,15 @@ "admin" ] } + }, + "demo": { + "password": "demo", + "default_tenant": "demo", + "roles": { + "member": [ + "demo" + ] + } } } }, @@ -288,7 +347,7 @@ ] }, "memcached_servers": [ - "$controller_mgmt_ip:11211" + "$identity_ip:11211" ], "mq": { "user": "guest",