def basic_overcloud_network(limit_gws=None): """Run setup for neutron networking. Configure the following: The overcloud network using subnet pools :param limit_gws: Limit the number of gateways that get a port attached :type limit_gws: int """ cli_utils.setup_logging() # Get network configuration settings network_config = {} # Declared overcloud settings network_config.update(OVERCLOUD_NETWORK_CONFIG) # Default undercloud settings network_config.update(DEFAULT_UNDERCLOUD_NETWORK_CONFIG) # Environment specific settings network_config.update(generic_utils.get_undercloud_env_vars()) # Get keystone session keystone_session = openstack_utils.get_overcloud_keystone_session() # Perform undercloud and charm setup for network plumbing undercloud_and_charm_setup(limit_gws=limit_gws) # Configure the overcloud network network.setup_sdn(network_config, keystone_session=keystone_session)
def basic_overcloud_network(): """Run setup for neutron networking. Configure the following: The overcloud network using subnet pools """ cli_utils.setup_logging() # Get network configuration settings network_config = {} # Declared overcloud settings network_config.update(OVERCLOUD_NETWORK_CONFIG) # Default undercloud settings network_config.update(DEFAULT_UNDERCLOUD_NETWORK_CONFIG) # Environment specific settings network_config.update(generic_utils.get_undercloud_env_vars()) # Deployed model settings if (model.get_application_config('neutron-api').get('enable-dvr').get( 'value')): network_config.update({"dvr_enabled": True}) # Get keystone session keystone_session = openstack_utils.get_overcloud_keystone_session() # Handle network for Openstack-on-Openstack scenarios if juju_utils.get_provider_type() == "openstack": undercloud_ks_sess = openstack_utils.get_undercloud_keystone_session() network.setup_gateway_ext_port(network_config, keystone_session=undercloud_ks_sess) # Confugre the overcloud network network.setup_sdn(network_config, keystone_session=keystone_session)
def basic_overcloud_network(limit_gws=None): """Run setup for neutron networking. Configure the following: The overcloud network using subnet pools :param limit_gws: Limit the number of gateways that get a port attached :type limit_gws: int """ cli_utils.setup_logging() # Get network configuration settings network_config = {} # Declared overcloud settings network_config.update(OVERCLOUD_NETWORK_CONFIG) # Default undercloud settings network_config.update(DEFAULT_UNDERCLOUD_NETWORK_CONFIG) # Environment specific settings network_config.update(generic_utils.get_undercloud_env_vars()) # Get keystone session keystone_session = openstack_utils.get_overcloud_keystone_session() # Handle network for Openstack-on-Openstack scenarios if juju_utils.get_provider_type() == "openstack": undercloud_ks_sess = openstack_utils.get_undercloud_keystone_session() network.setup_gateway_ext_port(network_config, keystone_session=undercloud_ks_sess, limit_gws=None) # Confugre the overcloud network network.setup_sdn(network_config, keystone_session=keystone_session)
def test_get_undercloud_env_vars(self): self.patch_object(generic_utils.os.environ, "get") def _get_env(key): return _env.get(key) self.get.side_effect = _get_env # Prefered OSCI TEST_ env vars _env = { "NET_ID": "netid", "NAME_SERVER": "10.0.0.10", "GATEWAY": "10.0.0.1", "CIDR_EXT": "10.0.0.0/24", "FIP_RANGE": "10.0.200.0:10.0.200.254", "TEST_NET_ID": "test_netid", "TEST_NAME_SERVER": "10.9.0.10", "TEST_GATEWAY": "10.9.0.1", "TEST_CIDR_EXT": "10.9.0.0/24", "TEST_FIP_RANGE": "10.9.200.0:10.0.200.254" } _expected_result = {} _expected_result["net_id"] = _env["TEST_NET_ID"] _expected_result["external_dns"] = _env["TEST_NAME_SERVER"] _expected_result["default_gateway"] = _env["TEST_GATEWAY"] _expected_result["external_net_cidr"] = _env["TEST_CIDR_EXT"] _expected_result["start_floating_ip"] = _env["TEST_FIP_RANGE"].split( ":")[0] _expected_result["end_floating_ip"] = _env["TEST_FIP_RANGE"].split( ":")[1] self.assertEqual(generic_utils.get_undercloud_env_vars(), _expected_result) # Overriding local configure.network named variables _override = { "start_floating_ip": "10.100.50.0", "end_floating_ip": "10.100.50.254", "default_gateway": "10.100.0.1", "external_net_cidr": "10.100.0.0/16" } _env.update(_override) _expected_result.update(_override) self.assertEqual(generic_utils.get_undercloud_env_vars(), _expected_result)
def basic_overcloud_network(limit_gws=None): """Run setup for neutron networking. Configure the following: The overcloud network using subnet pools :param limit_gws: Limit the number of gateways that get a port attached :type limit_gws: int """ cli_utils.setup_logging() # Get network configuration settings network_config = {} # Declared overcloud settings network_config.update(OVERCLOUD_NETWORK_CONFIG) # Default undercloud settings network_config.update(DEFAULT_UNDERCLOUD_NETWORK_CONFIG) # Environment specific settings network_config.update(generic_utils.get_undercloud_env_vars()) # Get keystone session keystone_session = openstack_utils.get_overcloud_keystone_session() # Get optional use_juju_wait for netw ork option options = (lifecycle_utils .get_charm_config(fatal=False) .get('configure_options', {})) use_juju_wait = options.get( 'configure_gateway_ext_port_use_juju_wait', True) # Handle network for OpenStack-on-OpenStack scenarios provider_type = juju_utils.get_provider_type() if provider_type == "openstack": undercloud_ks_sess = openstack_utils.get_undercloud_keystone_session() network.setup_gateway_ext_port(network_config, keystone_session=undercloud_ks_sess, limit_gws=limit_gws, use_juju_wait=use_juju_wait) elif provider_type == "maas": # NOTE(fnordahl): After validation of the MAAS+Netplan Open vSwitch # integration support, we would most likely want to add multiple modes # of operation with MAAS. # # Perform charm based OVS configuration openstack_utils.configure_charmed_openstack_on_maas( network_config, limit_gws=limit_gws) else: logging.warning('Unknown Juju provider type, "{}", will not perform' ' charm network configuration.' .format(provider_type)) # Confugre the overcloud network network.setup_sdn(network_config, keystone_session=keystone_session)
def vlan_provider_overcloud_network(): """Run setup to create a VLAN provider network.""" cli_utils.setup_logging() # Get network configuration settings network_config = {} # Declared overcloud settings network_config.update(OVERCLOUD_NETWORK_CONFIG) # Declared provider vlan overcloud settings network_config.update(OVERCLOUD_PROVIDER_VLAN_NETWORK_CONFIG) # Environment specific settings network_config.update(generic_utils.get_undercloud_env_vars()) # Get keystone session keystone_session = openstack_utils.get_overcloud_keystone_session() # Configure the overcloud network network.setup_sdn_provider_vlan(network_config, keystone_session=keystone_session)
def setup(): """Run setup for BGP networking. Configure the following: The overcloud network using subnet pools The overcloud BGP speaker The BGP peer Advertising of the FIPs via BGP Advertising of the project network(s) via BGP :returns: None :rtype: None """ cli_utils.setup_logging() # Get network configuration settings network_config = {} # Declared overcloud settings network_config.update(OVERCLOUD_NETWORK_CONFIG) # Default undercloud settings network_config.update(DEFAULT_UNDERCLOUD_NETWORK_CONFIG) # Environment specific settings network_config.update(generic_utils.get_undercloud_env_vars()) # Get keystone session keystone_session = openstack_utils.get_overcloud_keystone_session() # Confugre the overcloud network network.setup_sdn(network_config, keystone_session=keystone_session) # LP Bugs #1784083 and #1841459, require a late restart of the # neutron-bgp-dragent service logging.warning("Due to LP Bugs #1784083 and #1841459, we require a late " "restart of the neutron-bgp-dragent service before " "setting up BGP.") for unit in zaza.model.get_units("neutron-dynamic-routing"): generic_utils.systemctl(unit, "neutron-bgp-dragent", command="restart") # Configure BGP bgp_speaker.setup_bgp_speaker( peer_application_name=DEFAULT_PEER_APPLICATION_NAME, keystone_session=keystone_session)