diff options
| author | Ryan Hallisey <rhallise@redhat.com> | 2015-09-28 15:59:53 -0400 |
|---|---|---|
| committer | Steven Dake <stdake@cisco.com> | 2015-09-28 23:45:03 -0700 |
| commit | 4f15ac800855ca2b5625ac6e3efbb90f7dc62c16 (patch) | |
| tree | 41bf39af33cc39ab292535330865e984ac9109c8 | |
| parent | 00151b23100daa944d3e78dbed38958aa4f7e991 (diff) | |
| download | kolla-4f15ac800855ca2b5625ac6e3efbb90f7dc62c16.tar.gz kolla-4f15ac800855ca2b5625ac6e3efbb90f7dc62c16.zip | |
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 <stdake@cisco.com>
Change-Id: I9fc226cc7b82c2594db5814d30d453a29a4af8c0
Partially-Implements: blueprint replace-config-external
Closes-Bug: #1500566
11 files changed, 67 insertions, 138 deletions
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 |
