From 4f15ac800855ca2b5625ac6e3efbb90f7dc62c16 Mon Sep 17 00:00:00 2001 From: Ryan Hallisey Date: Mon, 28 Sep 2015 15:59:53 -0400 Subject: Neutron Agents json support Neutron Agents is a special case for json support. Since it's a fat container, there will be multiple commnds that will need to be run in the container. In order to account for this, the commands will be hardcoded until the agents are split out to their own containers. The files will be copied the normal way. Co-Authored-By: Steven Dake Change-Id: I9fc226cc7b82c2594db5814d30d453a29a4af8c0 Partially-Implements: blueprint replace-config-external Closes-Bug: #1500566 --- ansible/roles/neutron/tasks/config.yml | 6 ++++ ansible/roles/neutron/tasks/start.yml | 2 +- .../roles/neutron/templates/neutron-agents.json.j2 | 41 ++++++++++++++++++++++ docker/neutron/neutron-agents/Dockerfile.j2 | 4 ++- .../neutron-dhcp-agent/config-external.sh | 13 ------- .../neutron-agents/neutron-dhcp-agent/start.sh | 32 ++--------------- .../neutron-l3-agent/config-external.sh | 23 ------------ .../neutron-agents/neutron-l3-agent/start.sh | 32 ++--------------- .../neutron-metadata-agent/config-external.sh | 13 ------- .../neutron-agents/neutron-metadata-agent/start.sh | 32 ++--------------- docker/neutron/neutron-agents/start.sh | 7 ++++ 11 files changed, 67 insertions(+), 138 deletions(-) create mode 100644 ansible/roles/neutron/templates/neutron-agents.json.j2 delete mode 100755 docker/neutron/neutron-agents/neutron-dhcp-agent/config-external.sh delete mode 100755 docker/neutron/neutron-agents/neutron-l3-agent/config-external.sh delete mode 100755 docker/neutron/neutron-agents/neutron-metadata-agent/config-external.sh create mode 100755 docker/neutron/neutron-agents/start.sh diff --git a/ansible/roles/neutron/tasks/config.yml b/ansible/roles/neutron/tasks/config.yml index f7b5df470..e7cc7b191 100644 --- a/ansible/roles/neutron/tasks/config.yml +++ b/ansible/roles/neutron/tasks/config.yml @@ -137,6 +137,12 @@ config_dest: "{{ node_config_directory }}/{{ service_name }}/ml2_conf.ini" when: (inventory_hostname in groups['compute'] or inventory_hostname in groups['neutron-agents']) +- name: Copying Neutron Agents JSON configuration file + template: + src: "roles/neutron/templates/neutron-agents.json.j2" + dest: "{{ node_config_directory }}/neutron-agents/config.json" + when: inventory_hostname in groups['neutron-server'] + - name: Copying Neutron Server JSON configuration file template: src: "roles/neutron/templates/neutron-server.json.j2" diff --git a/ansible/roles/neutron/tasks/start.yml b/ansible/roles/neutron/tasks/start.yml index 7922aee05..67af9001f 100644 --- a/ansible/roles/neutron/tasks/start.yml +++ b/ansible/roles/neutron/tasks/start.yml @@ -142,7 +142,7 @@ image: "{{ neutron_agents_image_full }}" volumes: - "/run:/run" - - "{{ node_config_directory }}/neutron-agents/:/opt/kolla/neutron-agents/:ro" + - "{{ node_config_directory }}/neutron-agents/:/opt/kolla/config_files/:ro" - "/var/lib/kolla/dev/log:/dev/log" env: KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}" diff --git a/ansible/roles/neutron/templates/neutron-agents.json.j2 b/ansible/roles/neutron/templates/neutron-agents.json.j2 new file mode 100644 index 000000000..4503acbae --- /dev/null +++ b/ansible/roles/neutron/templates/neutron-agents.json.j2 @@ -0,0 +1,41 @@ +{ + "command": "", + "config_files": [ + { + "source": "/opt/kolla/config_files/neutron.conf", + "dest": "/etc/neutron/neutron.conf", + "owner": "neutron", + "perm": "0600" + }, + { + "source": "/opt/kolla/config_files/dhcp_agent.ini", + "dest": "/etc/neutron/dhcp_agent.ini", + "owner": "neutron", + "perm": "0600" + }, + { + "source": "/opt/kolla/config_files/dnsmasq.conf", + "dest": "/etc/neutron/dnsmasq.conf", + "owner": "neutron", + "perm": "0600" + }, + { + "source": "/opt/kolla/config_files/l3_agent.ini", + "dest": "/etc/neutron/l3_agent.ini", + "owner": "neutron", + "perm": "0600" + }, + { + "source": "/opt/kolla/config_files/ml2_conf.ini", + "dest": "/etc/neutron/plugins/ml2/ml2_conf.ini", + "owner": "neutron", + "perm": "0600" + }, + { + "source": "/opt/kolla/config_files/metadata_agent.ini", + "dest": "/etc/neutron/metadata_agent.ini", + "owner": "neutron", + "perm": "0600" + } + ] +} diff --git a/docker/neutron/neutron-agents/Dockerfile.j2 b/docker/neutron/neutron-agents/Dockerfile.j2 index 7eb1a1152..3fb1ffe30 100644 --- a/docker/neutron/neutron-agents/Dockerfile.j2 +++ b/docker/neutron/neutron-agents/Dockerfile.j2 @@ -32,6 +32,8 @@ COPY neutron-dhcp-agent/ /opt/kolla/neutron-dhcp-agent COPY neutron-l3-agent/ /opt/kolla/neutron-l3-agent COPY neutron-metadata-agent/ /opt/kolla/neutron-metadata-agent -CMD ["/usr/bin/supervisord"] +COPY start.sh / + +CMD ["/start.sh"] {{ include_footer }} diff --git a/docker/neutron/neutron-agents/neutron-dhcp-agent/config-external.sh b/docker/neutron/neutron-agents/neutron-dhcp-agent/config-external.sh deleted file mode 100755 index badbd86a1..000000000 --- a/docker/neutron/neutron-agents/neutron-dhcp-agent/config-external.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash -SOURCES="/opt/kolla/neutron-agents/neutron.conf /opt/kolla/neutron-agents/dhcp_agent.ini /opt/kolla/neutron-agents/dnsmasq.conf" -TARGET="/etc/neutron/" -OWNER="neutron" - -for f in $SOURCES; do - if [[ -f "$f" ]]; then - fname=$(basename $f) - cp $f $TARGET - chown ${OWNER}: $TARGET/$fname - chmod 0644 $TARGET/$fname - fi -done diff --git a/docker/neutron/neutron-agents/neutron-dhcp-agent/start.sh b/docker/neutron/neutron-agents/neutron-dhcp-agent/start.sh index 9186a5c90..96ecd80e6 100755 --- a/docker/neutron/neutron-agents/neutron-dhcp-agent/start.sh +++ b/docker/neutron/neutron-agents/neutron-dhcp-agent/start.sh @@ -1,37 +1,11 @@ #!/bin/bash set -o errexit -CMD="/usr/bin/neutron-dhcp-agent" -ARGS="--config-file /etc/neutron/neutron.conf --config-file /etc/neutron/dhcp_agent.ini" - # Loading common functions. -source /opt/kolla/kolla-common.sh source /opt/kolla/config-sudoers.sh -# Override set_configs() here because it doesn't work for fat containers like -# this one. -set_configs() { - case $KOLLA_CONFIG_STRATEGY in - COPY_ALWAYS) - source /opt/kolla/neutron-dhcp-agent/config-external.sh - ;; - COPY_ONCE) - if [[ -f /configured-dhcp ]]; then - echo 'INFO - Neutron-dhcp has already been configured; Refusing to copy new configs' - return - fi - source /opt/kolla/neutron-dhcp-agent/config-external.sh - touch /configured-dhcp - ;; - - *) - echo '$KOLLA_CONFIG_STRATEGY is not set properly' - exit 1 - ;; - esac -} - -# Execute config strategy -set_configs +# Will be removed when neutron-agents is a thin container +CMD="/usr/bin/neutron-dhcp-agent" +ARGS="--config-file /etc/neutron/neutron.conf --config-file /etc/neutron/dhcp_agent.ini" exec $CMD $ARGS diff --git a/docker/neutron/neutron-agents/neutron-l3-agent/config-external.sh b/docker/neutron/neutron-agents/neutron-l3-agent/config-external.sh deleted file mode 100755 index e6eb049a4..000000000 --- a/docker/neutron/neutron-agents/neutron-l3-agent/config-external.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash -SOURCES="/opt/kolla/neutron-agents/neutron.conf /opt/kolla/neutron-agents/l3_agent.ini /opt/kolla/neutron-agents/fwaas_driver.ini" -TARGET="/etc/neutron/" -OWNER="neutron" - -for f in $SOURCES; do - if [[ -f "$f" ]]; then - fname=$(basename $f) - cp $f $TARGET - chown ${OWNER}: $TARGET/$fname - chmod 0644 $TARGET/$fname - fi -done - -SOURCE="/opt/kolla/neutron-agents/ml2_conf.ini" -TARGET="/etc/neutron/plugins/ml2/ml2_conf.ini" -OWNER="neutron" - -if [[ -f "$SOURCE" ]]; then - cp $SOURCE $TARGET - chown ${OWNER}: $TARGET - chmod 0644 $TARGET -fi diff --git a/docker/neutron/neutron-agents/neutron-l3-agent/start.sh b/docker/neutron/neutron-agents/neutron-l3-agent/start.sh index 2a0f18b62..aa73b090b 100755 --- a/docker/neutron/neutron-agents/neutron-l3-agent/start.sh +++ b/docker/neutron/neutron-agents/neutron-l3-agent/start.sh @@ -1,37 +1,11 @@ #!/bin/bash set -o errexit -CMD="/usr/bin/neutron-l3-agent" -ARGS="--config-file /etc/neutron/neutron.conf --config-file /etc/neutron/l3_agent.ini --config-file /etc/neutron/fwaas_driver.ini --config-file /etc/neutron/plugins/ml2/ml2_conf.ini" - # Loading common functions. -source /opt/kolla/kolla-common.sh source /opt/kolla/config-sudoers.sh -# Override set_configs() here because it doesn't work for fat containers like -# this one. -set_configs() { - case $KOLLA_CONFIG_STRATEGY in - COPY_ALWAYS) - source /opt/kolla/neutron-l3-agent/config-external.sh - ;; - COPY_ONCE) - if [[ -f /configured-l3 ]]; then - echo 'INFO - Neutron-l3 has already been configured; Refusing to copy new configs' - return - fi - source /opt/kolla/neutron-l3-agent/config-external.sh - touch /configured-l3 - ;; - - *) - echo '$KOLLA_CONFIG_STRATEGY is not set properly' - exit 1 - ;; - esac -} - -# Execute config strategy -set_configs +# Will be removed when this container is broken out into thin containers +CMD="/usr/bin/neutron-l3-agent" +ARGS="--config-file /etc/neutron/neutron.conf --config-file /etc/neutron/l3_agent.ini --config-file /etc/neutron/fwaas_driver.ini --config-file /etc/neutron/plugins/ml2/ml2_conf.ini" exec $CMD $ARGS diff --git a/docker/neutron/neutron-agents/neutron-metadata-agent/config-external.sh b/docker/neutron/neutron-agents/neutron-metadata-agent/config-external.sh deleted file mode 100755 index 319ee3793..000000000 --- a/docker/neutron/neutron-agents/neutron-metadata-agent/config-external.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash -SOURCES="/opt/kolla/neutron-agents/neutron.conf /opt/kolla/neutron-agents/metadata_agent.ini" -TARGET="/etc/neutron/" -OWNER="neutron" - -for f in $SOURCES; do - if [[ -f "$f" ]]; then - fname=$(basename $f) - cp $f $TARGET - chown ${OWNER}: $TARGET/$fname - chmod 0644 $TARGET/$fname - fi -done diff --git a/docker/neutron/neutron-agents/neutron-metadata-agent/start.sh b/docker/neutron/neutron-agents/neutron-metadata-agent/start.sh index 04c37159a..d94f767e2 100755 --- a/docker/neutron/neutron-agents/neutron-metadata-agent/start.sh +++ b/docker/neutron/neutron-agents/neutron-metadata-agent/start.sh @@ -1,37 +1,11 @@ #!/bin/bash set -o errexit -CMD="/usr/bin/neutron-metadata-agent" -ARGS="--config-file /etc/neutron/neutron.conf --config-file /etc/neutron/metadata_agent.ini" - # Loading common functions. -source /opt/kolla/kolla-common.sh source /opt/kolla/config-sudoers.sh -# Override set_configs() here because it doesn't work for fat containers like -# this one. -set_configs() { - case $KOLLA_CONFIG_STRATEGY in - COPY_ALWAYS) - source /opt/kolla/neutron-metadata-agent/config-external.sh - ;; - COPY_ONCE) - if [[ -f /configured-md ]]; then - echo 'INFO - Neutron-metadata has already been configured; Refusing to copy new configs' - return - fi - source /opt/kolla/neutron-metadata-agent/config-external.sh - touch /configured-md - ;; - - *) - echo '$KOLLA_CONFIG_STRATEGY is not set properly' - exit 1 - ;; - esac -} - -# Execute config strategy -set_configs +# Will be removed when this container is broken out in thin containers +CMD="/usr/bin/neutron-metadata-agent" +ARGS="--config-file /etc/neutron/neutron.conf --config-file /etc/neutron/metadata_agent.ini" exec $CMD $ARGS diff --git a/docker/neutron/neutron-agents/start.sh b/docker/neutron/neutron-agents/start.sh new file mode 100755 index 000000000..8b5f302cf --- /dev/null +++ b/docker/neutron/neutron-agents/start.sh @@ -0,0 +1,7 @@ +#!/bin/bash +set -o errexit + +# Loading common functions. +source /opt/kolla/kolla-common.sh + +exec /usr/bin/supervisord -- cgit v1.2.3