From 509875734bb5e935436d2b09192e8b5e4c1500cb Mon Sep 17 00:00:00 2001 From: Mark Asselstine Date: Tue, 25 Mar 2014 14:12:04 -0400 Subject: python-neutron: cleanup dhcp agent packaging Cleanup packaging to get the necessary .ini and related files into the dhcp-agent package. Add a cron job to keep things clean. Signed-off-by: Mark Asselstine --- .../python/python-neutron/dhcp_agent.ini | 72 ++++++++++++++++++++++ .../neutron-dhcp-agent-netns-cleanup.cron | 2 + .../recipes-devtools/python/python-neutron_git.bb | 20 +++++- 3 files changed, 92 insertions(+), 2 deletions(-) create mode 100644 meta-openstack/recipes-devtools/python/python-neutron/dhcp_agent.ini create mode 100644 meta-openstack/recipes-devtools/python/python-neutron/neutron-dhcp-agent-netns-cleanup.cron (limited to 'meta-openstack/recipes-devtools/python') diff --git a/meta-openstack/recipes-devtools/python/python-neutron/dhcp_agent.ini b/meta-openstack/recipes-devtools/python/python-neutron/dhcp_agent.ini new file mode 100644 index 0000000..f9b1523 --- /dev/null +++ b/meta-openstack/recipes-devtools/python/python-neutron/dhcp_agent.ini @@ -0,0 +1,72 @@ +[DEFAULT] +# Show debugging output in log (sets DEBUG log level output) +# debug = False + +# The DHCP agent will resync its state with Neutron to recover from any +# transient notification or rpc errors. The interval is number of +# seconds between attempts. +# resync_interval = 5 + +# The DHCP agent requires an interface driver be set. Choose the one that best +# matches your plugin. +# interface_driver = + +# Example of interface_driver option for OVS based plugins(OVS, Ryu, NEC, NVP, +# BigSwitch/Floodlight) +interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver + +# Use veth for an OVS interface or not. +# Support kernels with limited namespace support +# (e.g. RHEL 6.5) so long as ovs_use_veth is set to True. +# ovs_use_veth = False + +# Example of interface_driver option for LinuxBridge +# interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver + +# The agent can use other DHCP drivers. Dnsmasq is the simplest and requires +# no additional setup of the DHCP server. +# dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq + +# Allow overlapping IP (Must have kernel build with CONFIG_NET_NS=y and +# iproute2 package that supports namespaces). +# use_namespaces = True + +# The DHCP server can assist with providing metadata support on isolated +# networks. Setting this value to True will cause the DHCP server to append +# specific host routes to the DHCP request. The metadata service will only +# be activated when the subnet does not contain any router port. The guest +# instance must be configured to request host routes via DHCP (Option 121). +# enable_isolated_metadata = False + +# Allows for serving metadata requests coming from a dedicated metadata +# access network whose cidr is 169.254.169.254/16 (or larger prefix), and +# is connected to a Neutron router from which the VMs send metadata +# request. In this case DHCP Option 121 will not be injected in VMs, as +# they will be able to reach 169.254.169.254 through a router. +# This option requires enable_isolated_metadata = True +# enable_metadata_network = False + +# Number of threads to use during sync process. Should not exceed connection +# pool size configured on server. +# num_sync_threads = 4 + +# Location to store DHCP server config files +# dhcp_confs = $state_path/dhcp + +# Domain to use for building the hostnames +# dhcp_domain = openstacklocal + +# Override the default dnsmasq settings with this file +# dnsmasq_config_file = + +# Use another DNS server before any in /etc/resolv.conf. +# dnsmasq_dns_server = + +# Limit number of leases to prevent a denial-of-service. +# dnsmasq_lease_max = 16777216 + +# Location to DHCP lease relay UNIX domain socket +# dhcp_lease_relay_socket = $state_path/dhcp/lease_relay + +# Location of Metadata Proxy UNIX domain socket +# metadata_proxy_socket = $state_path/metadata_proxy diff --git a/meta-openstack/recipes-devtools/python/python-neutron/neutron-dhcp-agent-netns-cleanup.cron b/meta-openstack/recipes-devtools/python/python-neutron/neutron-dhcp-agent-netns-cleanup.cron new file mode 100644 index 0000000..0ebd6c5 --- /dev/null +++ b/meta-openstack/recipes-devtools/python/python-neutron/neutron-dhcp-agent-netns-cleanup.cron @@ -0,0 +1,2 @@ +# Periodically cleans Neutron's network namespaces on behalf of the Neutron DHCP agent. +30 * * * * neutron if [ -x @bindir@/neutron-netns-cleanup ] ; then @bindir@/neutron-netns-cleanup --config-file=@confdir@/neutron/neutron.conf --config-file=@confdir@/neutron/dhcp_agent.ini >/dev/null 2>&1; fi diff --git a/meta-openstack/recipes-devtools/python/python-neutron_git.bb b/meta-openstack/recipes-devtools/python/python-neutron_git.bb index b256c79..1621923 100644 --- a/meta-openstack/recipes-devtools/python/python-neutron_git.bb +++ b/meta-openstack/recipes-devtools/python/python-neutron_git.bb @@ -13,6 +13,8 @@ SRC_URI = "git://github.com/openstack/${SRCNAME}.git;branch=stable/havana \ file://neutron-server.init \ file://neutron-agent.init \ file://l3_agent.ini \ + file://dhcp_agent.ini \ + file://neutron-dhcp-agent-netns-cleanup.cron \ " SRCREV="8cb9d895675f2a89c6b741da4b594f416fbeee5a" PV="2013.2.2+git${SRCPV}" @@ -64,6 +66,17 @@ do_install_append() { install -m 0755 ${WORKDIR}/neutron-$PLUGIN.init.sh ${D}${sysconfdir}/init.d/neutron-$PLUGIN-agent fi + AGENT=dhcp + ARGS="--config-file=${sysconfdir}/${SRCNAME}/neutron.conf --config-file=${sysconfdir}/${SRCNAME}/dhcp_agent.ini" + if ${@base_contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then + sed "s:@suffix@:$AGENT:;s:@args@:$ARGS:" < ${WORKDIR}/neutron-agent.init >${WORKDIR}/neutron-$AGENT.init.sh + install -m 0755 ${WORKDIR}/neutron-$AGENT.init.sh ${D}${sysconfdir}/init.d/neutron-$AGENT-agent + install -m 600 ${WORKDIR}/${AGENT}_agent.ini ${NEUTRON_CONF_DIR}/ + sed "s:@bindir@:${bindir}:g;s:@confdir@:${sysconfdir}:g" < ${WORKDIR}/neutron-dhcp-agent-netns-cleanup.cron >${WORKDIR}/neutron-dhcp-agent-netns-cleanup + install -d ${D}${sysconfdir}/cron.d + install -m 644 ${WORKDIR}/neutron-dhcp-agent-netns-cleanup ${D}${sysconfdir}/cron.d/ + fi + AGENT=l3 ARGS="--config-file=${sysconfdir}/${SRCNAME}/neutron.conf --config-file=${sysconfdir}/${SRCNAME}/l3_agent.ini" if ${@base_contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then @@ -152,7 +165,8 @@ FILES_${SRCNAME}-plugin-linuxbridge = " \ FILES_${SRCNAME}-dhcp-agent = "${bindir}/neutron-dhcp-agent \ ${bindir}/neutron-dhcp-agent-dnsmasq-lease-update \ ${sysconfdir}/${SRCNAME}/dhcp_agent.ini \ - ${sysconfdir}/init.d/dhcp_agent \ + ${sysconfdir}/init.d/neutron-dhcp-agent \ + ${sysconfdir}/cron.d/neutron-dhcp-agent-netns-cleanup \ " FILES_${SRCNAME}-l3-agent = "${bindir}/neutron-l3-agent \ @@ -212,12 +226,14 @@ RDEPENDS_${SRCNAME}-setup = "postgresql sudo" RRECOMMENDS_${SRCNAME}-server = "${SRCNAME}-plugin-openvswitch" -INITSCRIPT_PACKAGES = "${SRCNAME}-server ${SRCNAME}-plugin-openvswitch ${SRCNAME}-plugin-linuxbridge ${SRCNAME}-l3-agent" +INITSCRIPT_PACKAGES = "${SRCNAME}-server ${SRCNAME}-plugin-openvswitch ${SRCNAME}-plugin-linuxbridge ${SRCNAME}-dhcp-agent ${SRCNAME}-l3-agent" INITSCRIPT_NAME_${SRCNAME}-server = "neutron-server" INITSCRIPT_PARAMS_${SRCNAME}-server = "${OS_DEFAULT_INITSCRIPT_PARAMS}" INITSCRIPT_NAME_${SRCNAME}-plugin-openvswitch = "neutron-openvswitch-agent" INITSCRIPT_PARAMS_${SRCNAME}-plugin-openvswitch = "${OS_DEFAULT_INITSCRIPT_PARAMS}" INITSCRIPT_NAME_${SRCNAME}-plugin-linuxbridge = "neutron-linuxbridge-agent" INITSCRIPT_PARAMS_${SRCNAME}-plugin-linuxbridge = "${OS_DEFAULT_INITSCRIPT_PARAMS}" +INITSCRIPT_NAME_${SRCNAME}-dhcp-agent = "neutron-dhcp-agent" +INITSCRIPT_PARAMS_${SRCNAME}-dhcp-agent = "${OS_DEFAULT_INITSCRIPT_PARAMS}" INITSCRIPT_NAME_${SRCNAME}-l3-agent = "neutron-l3-agent" INITSCRIPT_PARAMS_${SRCNAME}-l3-agent = "${OS_DEFAULT_INITSCRIPT_PARAMS}" -- cgit v1.2.3-54-g00ecf