#!/bin/bash set -e . /opt/kolla/kolla-common.sh check_required_vars KEYSTONE_PUBLIC_SERVICE_HOST \ NEUTRON_API_PASTE_CONFIG \ NEUTRON_KEYSTONE_PASSWORD \ RABBITMQ_SERVICE_HOST core_cfg=/etc/neutron/neutron.conf ml2_cfg=/etc/neutron/plugins/ml2/ml2_conf.ini # Logging crudini --set $core_cfg \ DEFAULT \ log_dir \ "${NEUTRON_LOG_DIR}" crudini --set $core_cfg \ DEFAULT \ verbose \ "${VERBOSE_LOGGING}" crudini --set $core_cfg \ DEFAULT \ debug \ "${DEBUG_LOGGING}" # Paste config crudini --set $core_cfg \ DEFAULT \ api_paste_config \ "${NEUTRON_API_PASTE_CONFIG}" # Rabbit crudini --set $core_cfg \ DEFAULT \ rabbit_host \ "${RABBIT_HOST}" crudini --set $core_cfg \ DEFAULT \ rabbit_userid \ "${RABBIT_USER}" crudini --set $core_cfg \ DEFAULT \ rabbit_password \ "${RABBIT_PASSWORD}" # Locking crudini --set $core_cfg \ DEFAULT \ lock_path \ "/var/lock/neutron" # Keystone crudini --set $core_cfg \ DEFAULT \ auth_strategy \ "keystone" crudini --set $core_cfg \ keystone_authtoken \ auth_uri \ "${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_PUBLIC_SERVICE_HOST}:${KEYSTONE_PUBLIC_SERVICE_PORT}/v2.0" crudini --set $core_cfg \ keystone_authtoken \ identity_uri \ "${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:${KEYSTONE_ADMIN_SERVICE_PORT}" crudini --set $core_cfg \ keystone_authtoken \ admin_tenant_name \ "${ADMIN_TENANT_NAME}" crudini --set $core_cfg \ keystone_authtoken \ admin_user \ "${NEUTRON_KEYSTONE_USER}" crudini --set $core_cfg \ keystone_authtoken \ admin_password \ "${NEUTRON_KEYSTONE_PASSWORD}" # Rootwrap crudini --set $core_cfg \ agent \ root_helper \ "sudo neutron-rootwrap /etc/neutron/rootwrap.conf" # neutron.conf ml2 configuration crudini --set $core_cfg \ DEFAULT \ core_plugin \ "neutron.plugins.ml2.plugin.Ml2Plugin" crudini --set $core_cfg \ DEFAULT \ service_plugins \ "neutron.services.l3_router.l3_router_plugin.L3RouterPlugin" crudini --set $core_cfg \ DEFAULT \ allow_overlapping_ips \ "True" # Configure ml2_conf.ini crudini --set $ml2_cfg \ ml2 \ type_drivers \ "${TYPE_DRIVERS}" crudini --set $ml2_cfg \ ml2 \ tenant_network_types \ "${TENANT_NETWORK_TYPES}" crudini --set $ml2_cfg \ ml2 \ mechanism_drivers \ "${MECHANISM_DRIVERS}" if [[ ${TYPE_DRIVERS} =~ .*flat.* ]]; then crudini --set $ml2_cfg \ ml2_type_flat \ flat_networks \ ${NEUTRON_FLAT_NETWORK_NAME} fi if [[ ${TYPE_DRIVERS} =~ .*vxlan.* ]]; then crudini --set $ml2_cfg \ ml2_type_vxlan \ vxlan_group \ "" crudini --set $ml2_cfg \ ml2_type_vxlan \ vni_ranges \ "1:1000" crudini --set $ml2_cfg \ vxlan \ enable_vxlan \ "True" crudini --set $ml2_cfg \ vxlan \ vxlan_group \ "" crudini --set $ml2_cfg \ vxlan \ l2_population \ "True" crudini --set $ml2_cfg \ agent \ tunnel_types \ "vxlan" crudini --set $ml2_cfg \ agent \ vxlan_udp_port \ "4789" crudini --set $core_cfg \ DEFAULT \ network_device_mtu \ "1450" fi crudini --set $ml2_cfg \ l2pop \ agent_boot_time \ "180" crudini --set $ml2_cfg \ securitygroup \ enable_security_group \ "True" crudini --set $ml2_cfg \ securitygroup \ enable_ipset \ "True" if [[ ${MECHANISM_DRIVERS} =~ linuxbridge ]]; then firewall_driver="neutron.agent.linux.iptables_firewall.IptablesFirewallDriver" elif [[ ${MECHANISM_DRIVERS} == "openvswitch" ]]; then firewall_driver="neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver" fi crudini --set $ml2_cfg \ securitygroup \ firewall_driver \ "$firewall_driver" cat > /openrc <