aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--deployed-server/deployed-server-roles-data.yaml1
-rwxr-xr-xdocker/docker-puppet.py22
-rw-r--r--docker/services/aodh-api.yaml10
-rw-r--r--docker/services/ceilometer-agent-central.yaml7
-rw-r--r--docker/services/ceilometer-agent-compute.yaml14
-rw-r--r--docker/services/ceilometer-agent-notification.yaml8
-rw-r--r--docker/services/cinder-api.yaml9
-rw-r--r--docker/services/glance-api.yaml7
-rw-r--r--docker/services/gnocchi-api.yaml10
-rw-r--r--docker/services/heat-api-cfn.yaml6
-rw-r--r--docker/services/heat-api.yaml7
-rw-r--r--docker/services/horizon.yaml7
-rw-r--r--docker/services/ironic-api.yaml8
-rw-r--r--docker/services/ironic-pxe.yaml3
-rw-r--r--docker/services/keystone.yaml10
-rw-r--r--docker/services/manila-api.yaml10
-rw-r--r--docker/services/neutron-api.yaml8
-rw-r--r--docker/services/neutron-sriov-agent.yaml108
-rw-r--r--docker/services/nova-api.yaml11
-rw-r--r--docker/services/nova-libvirt.yaml25
-rw-r--r--docker/services/nova-placement.yaml6
-rw-r--r--docker/services/octavia-api.yaml8
-rw-r--r--docker/services/panko-api.yaml10
-rw-r--r--docker/services/swift-proxy.yaml2
-rw-r--r--docker/services/zaqar.yaml8
-rw-r--r--environments/docker.yaml4
-rw-r--r--environments/hyperconverged-ceph.yaml1
-rw-r--r--environments/neutron-opendaylight-dpdk.yaml3
-rw-r--r--environments/neutron-opendaylight-sriov.yaml1
-rw-r--r--environments/neutron-opendaylight.yaml1
-rwxr-xr-xenvironments/neutron-sriov.yaml15
-rw-r--r--environments/services-docker/neutron-opendaylight.yaml1
-rw-r--r--environments/services-docker/neutron-sriov.yaml12
-rw-r--r--overcloud-resource-registry-puppet.j2.yaml1
-rw-r--r--puppet/services/neutron-base.yaml5
-rw-r--r--puppet/services/neutron-sriov-agent.yaml14
-rw-r--r--puppet/services/neutron-sriov-host-config.yaml78
-rw-r--r--releasenotes/notes/containerized-services-logs-0dc652513870f46d.yaml11
-rw-r--r--releasenotes/notes/odl-qos-48b70c804755e3a5.yaml4
-rw-r--r--roles/Compute.yaml1
-rw-r--r--roles/ComputeHCI.yaml1
-rw-r--r--roles/ControllerOpenstack.yaml1
-rw-r--r--roles/Database.yaml1
-rw-r--r--roles_data.yaml1
44 files changed, 434 insertions, 47 deletions
diff --git a/deployed-server/deployed-server-roles-data.yaml b/deployed-server/deployed-server-roles-data.yaml
index 7623eda6..73dc9099 100644
--- a/deployed-server/deployed-server-roles-data.yaml
+++ b/deployed-server/deployed-server-roles-data.yaml
@@ -133,6 +133,7 @@
- OS::TripleO::Services::TripleoPackages
- OS::TripleO::Services::TripleoFirewall
- OS::TripleO::Services::NeutronSriovAgent
+ - OS::TripleO::Services::NeutronSriovHostConfig
- OS::TripleO::Services::OpenDaylightOvs
- OS::TripleO::Services::SensuClient
- OS::TripleO::Services::FluentdClient
diff --git a/docker/docker-puppet.py b/docker/docker-puppet.py
index 0451ed51..cc247031 100755
--- a/docker/docker-puppet.py
+++ b/docker/docker-puppet.py
@@ -26,6 +26,7 @@ import sys
import subprocess
import sys
import tempfile
+import time
import multiprocessing
logger = None
@@ -59,10 +60,23 @@ def short_hostname():
def pull_image(name):
log.info('Pulling image: %s' % name)
- subproc = subprocess.Popen(['/usr/bin/docker', 'pull', name],
- stdout=subprocess.PIPE,
- stderr=subprocess.PIPE)
- cmd_stdout, cmd_stderr = subproc.communicate()
+ retval = -1
+ count = 0
+ while retval != 0:
+ count += 1
+ subproc = subprocess.Popen(['/usr/bin/docker', 'pull', name],
+ stdout=subprocess.PIPE,
+ stderr=subprocess.PIPE)
+
+ cmd_stdout, cmd_stderr = subproc.communicate()
+ retval = subproc.returncode
+ if retval != 0:
+ time.sleep(3)
+ log.warning('docker pull failed: %s' % cmd_stderr)
+ log.warning('retrying pulling image: %s' % name)
+ if count >= 5:
+ log.error('Failed to pull image: %s' % name)
+ break
if cmd_stdout:
log.debug(cmd_stdout)
if cmd_stderr:
diff --git a/docker/services/aodh-api.yaml b/docker/services/aodh-api.yaml
index da4b981c..49c5f9c5 100644
--- a/docker/services/aodh-api.yaml
+++ b/docker/services/aodh-api.yaml
@@ -102,7 +102,8 @@ outputs:
user: root
volumes:
- /var/log/containers/aodh:/var/log/aodh
- command: ['/bin/bash', '-c', 'mkdir -p /var/log/httpd; chown -R aodh:aodh /var/log/aodh']
+ - /var/log/containers/httpd/aodh-api:/var/log/httpd
+ command: ['/bin/bash', '-c', 'chown -R aodh:aodh /var/log/aodh']
step_3:
aodh_db_sync:
image: *aodh_api_image
@@ -117,6 +118,7 @@ outputs:
- /var/lib/config-data/aodh/etc/my.cnf.d/tripleo.cnf:/etc/my.cnf.d/tripleo.cnf:ro
- /var/lib/config-data/aodh/etc/aodh/:/etc/aodh/:ro
- /var/log/containers/aodh:/var/log/aodh
+ - /var/log/containers/httpd/aodh-api:/var/log/httpd
command: "/usr/bin/bootstrap_host_exec aodh_api su aodh -s /bin/bash -c /usr/bin/aodh-dbsync"
step_4:
aodh_api:
@@ -131,6 +133,7 @@ outputs:
- /var/lib/kolla/config_files/aodh_api.json:/var/lib/kolla/config_files/config.json:ro
- /var/lib/config-data/puppet-generated/aodh/:/var/lib/kolla/config_files/src:ro
- /var/log/containers/aodh:/var/log/aodh
+ - /var/log/containers/httpd/aodh-api:/var/log/httpd
-
if:
- internal_tls_enabled
@@ -146,8 +149,11 @@ outputs:
host_prep_tasks:
- name: create persistent logs directory
file:
- path: /var/log/containers/aodh
+ path: "{{ item }}"
state: directory
+ with_items:
+ - /var/log/containers/aodh
+ - /var/log/containers/httpd/aodh-api
upgrade_tasks:
- name: Stop and disable aodh service (running under httpd)
tags: step2
diff --git a/docker/services/ceilometer-agent-central.yaml b/docker/services/ceilometer-agent-central.yaml
index 424c316f..d772462d 100644
--- a/docker/services/ceilometer-agent-central.yaml
+++ b/docker/services/ceilometer-agent-central.yaml
@@ -69,7 +69,7 @@ outputs:
config_image: {get_param: DockerCeilometerConfigImage}
kolla_config:
/var/lib/kolla/config_files/ceilometer_agent_central.json:
- command: /usr/bin/ceilometer-polling --polling-namespaces central
+ command: /usr/bin/ceilometer-polling --polling-namespaces central --logfile /var/log/ceilometer/central.log
config_files:
- source: "/var/lib/kolla/config_files/src/*"
dest: "/"
@@ -116,6 +116,11 @@ outputs:
- '/usr/bin/bootstrap_host_exec'
- 'ceilometer_agent_central'
- "su ceilometer -s /bin/bash -c 'for n in {1..10}; do /usr/bin/ceilometer-upgrade --skip-metering-database && exit 0 || sleep 5; done; exit 1'"
+ host_prep_tasks:
+ - name: create persistent logs directory
+ file:
+ path: /var/log/containers/ceilometer
+ state: directory
upgrade_tasks:
- name: Stop and disable ceilometer agent central service
tags: step2
diff --git a/docker/services/ceilometer-agent-compute.yaml b/docker/services/ceilometer-agent-compute.yaml
index 535b1693..90b30d46 100644
--- a/docker/services/ceilometer-agent-compute.yaml
+++ b/docker/services/ceilometer-agent-compute.yaml
@@ -69,7 +69,7 @@ outputs:
config_image: {get_param: DockerCeilometerConfigImage}
kolla_config:
/var/lib/kolla/config_files/ceilometer_agent_compute.json:
- command: /usr/bin/ceilometer-polling --polling-namespaces compute
+ command: /usr/bin/ceilometer-polling --polling-namespaces compute --logfile /var/log/ceilometer/compute.log
config_files:
- source: "/var/lib/kolla/config_files/src/*"
dest: "/"
@@ -89,8 +89,14 @@ outputs:
- /var/lib/kolla/config_files/ceilometer_agent_compute.json:/var/lib/kolla/config_files/config.json:ro
- /var/lib/config-data/puppet-generated/ceilometer/:/var/lib/kolla/config_files/src:ro
- /var/run/libvirt:/var/run/libvirt:ro
+ - /var/log/containers/ceilometer:/var/log/ceilometer
environment:
- KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
+ host_prep_tasks:
+ - name: create persistent logs directory
+ file:
+ path: /var/log/containers/ceilometer
+ state: directory
upgrade_tasks:
- name: Check if openstack-ceilometer-compute is deployed
command: systemctl is-enabled openstack-ceilometer-compute
@@ -99,14 +105,14 @@ outputs:
register: openstack_ceilometer_compute_enabled
- name: Check if openstack-ceilometer-polling is deployed
command: systemctl is-enabled openstack-ceilometer-polling
- tags: step2
+ tags: step2
ignore_errors: True
register: openstack_ceilometer_polling_enabled
- name: Stop and disable ceilometer compute agent
tags: step2
service: name=openstack-ceilometer-compute state=stopped enabled=no
- when: openstack_ceilometer_compute_enabled.rc == 0
+ when: openstack_ceilometer_compute_enabled.rc|default('') == 0
- name: Stop and disable ceilometer polling agent
tags: step2
service: name=openstack-ceilometer-polling state=stopped enabled=no
- when: openstack_ceilometer_polling_enabled.rc == 0
+ when: openstack_ceilometer_polling_enabled.rc|default('') == 0
diff --git a/docker/services/ceilometer-agent-notification.yaml b/docker/services/ceilometer-agent-notification.yaml
index 7f1d442a..d8afe695 100644
--- a/docker/services/ceilometer-agent-notification.yaml
+++ b/docker/services/ceilometer-agent-notification.yaml
@@ -69,7 +69,7 @@ outputs:
config_image: {get_param: DockerCeilometerConfigImage}
kolla_config:
/var/lib/kolla/config_files/ceilometer_agent_notification.json:
- command: /usr/bin/ceilometer-agent-notification
+ command: /usr/bin/ceilometer-agent-notification --logfile /var/log/ceilometer/agent-notification.log
config_files:
- source: "/var/lib/kolla/config_files/src/*"
dest: "/"
@@ -96,8 +96,14 @@ outputs:
-
- /var/lib/kolla/config_files/ceilometer_agent_notification.json:/var/lib/kolla/config_files/config.json:ro
- /var/lib/config-data/puppet-generated/ceilometer/:/var/lib/kolla/config_files/src:ro
+ - /var/log/containers/ceilometer:/var/log/ceilometer
environment:
- KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
+ host_prep_tasks:
+ - name: create persistent logs directory
+ file:
+ path: /var/log/containers/ceilometer
+ state: directory
upgrade_tasks:
- name: Stop and disable ceilometer agent notification service
tags: step2
diff --git a/docker/services/cinder-api.yaml b/docker/services/cinder-api.yaml
index 93d09ca0..06705309 100644
--- a/docker/services/cinder-api.yaml
+++ b/docker/services/cinder-api.yaml
@@ -111,6 +111,7 @@ outputs:
user: root
volumes:
- /var/log/containers/cinder:/var/log/cinder
+ - /var/log/containers/httpd/cinder-api:/var/log/httpd
command: ['/bin/bash', '-c', 'chown -R cinder:cinder /var/log/cinder']
step_3:
cinder_api_db_sync:
@@ -125,6 +126,7 @@ outputs:
-
- /var/lib/config-data/cinder/etc/cinder/:/etc/cinder/:ro
- /var/log/containers/cinder:/var/log/cinder
+ - /var/log/containers/httpd/cinder-api:/var/log/httpd
command:
- '/usr/bin/bootstrap_host_exec'
- 'cinder_api'
@@ -145,6 +147,7 @@ outputs:
- /var/lib/kolla/config_files/cinder_api.json:/var/lib/kolla/config_files/config.json:ro
- /var/lib/config-data/puppet-generated/cinder/:/var/lib/kolla/config_files/src:ro
- /var/log/containers/cinder:/var/log/cinder
+ - /var/log/containers/httpd/cinder-api:/var/log/httpd
-
if:
- internal_tls_enabled
@@ -172,6 +175,7 @@ outputs:
- /var/lib/kolla/config_files/cinder_api_cron.json:/var/lib/kolla/config_files/config.json:ro
- /var/lib/config-data/puppet-generated/cinder/:/var/lib/kolla/config_files/src:ro
- /var/log/containers/cinder:/var/log/cinder
+ - /var/log/containers/httpd/cinder-api:/var/log/httpd
environment:
- KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
@@ -180,8 +184,11 @@ outputs:
host_prep_tasks:
- name: create persistent logs directory
file:
- path: /var/log/containers/cinder
+ path: "{{ item }}"
state: directory
+ with_items:
+ - /var/log/containers/cinder
+ - /var/log/containers/httpd/cinder-api
upgrade_tasks:
- name: Stop and disable cinder_api service
tags: step2
diff --git a/docker/services/glance-api.yaml b/docker/services/glance-api.yaml
index df226b15..8f2bd604 100644
--- a/docker/services/glance-api.yaml
+++ b/docker/services/glance-api.yaml
@@ -118,6 +118,7 @@ outputs:
user: root
volumes:
- /var/log/containers/glance:/var/log/glance
+ - /var/log/containers/httpd/glance-api:/var/log/httpd
command: ['/bin/bash', '-c', 'chown -R glance:glance /var/log/glance']
step_3:
glance_api_db_sync:
@@ -133,6 +134,7 @@ outputs:
- /var/lib/kolla/config_files/glance_api.json:/var/lib/kolla/config_files/config.json
- /var/lib/config-data/puppet-generated/glance_api/:/var/lib/kolla/config_files/src:ro
- /var/log/containers/glance:/var/log/glance
+ - /var/log/containers/httpd/glance-api:/var/log/httpd
- /etc/ceph:/var/lib/kolla/config_files/src-ceph:ro
-
if:
@@ -176,8 +178,11 @@ outputs:
host_prep_tasks:
- name: create persistent logs directory
file:
- path: /var/log/containers/glance
+ path: "{{ item }}"
state: directory
+ with_items:
+ - /var/log/containers/glance
+ - /var/log/containers/httpd/glance-api
- name: ensure ceph configurations exist
file:
path: /etc/ceph
diff --git a/docker/services/gnocchi-api.yaml b/docker/services/gnocchi-api.yaml
index 1443da40..47b3b811 100644
--- a/docker/services/gnocchi-api.yaml
+++ b/docker/services/gnocchi-api.yaml
@@ -104,7 +104,8 @@ outputs:
user: root
volumes:
- /var/log/containers/gnocchi:/var/log/gnocchi
- command: ['/bin/bash', '-c', 'mkdir -p /var/log/httpd; chown -R gnocchi:gnocchi /var/log/gnocchi']
+ - /var/log/containers/httpd/gnocchi-api:/var/log/httpd
+ command: ['/bin/bash', '-c', 'chown -R gnocchi:gnocchi /var/log/gnocchi']
step_4:
gnocchi_db_sync:
image: *gnocchi_api_image
@@ -119,6 +120,7 @@ outputs:
- /var/lib/config-data/gnocchi/etc/my.cnf.d/tripleo.cnf:/etc/my.cnf.d/tripleo.cnf:ro
- /var/lib/config-data/gnocchi/etc/gnocchi/:/etc/gnocchi/:ro
- /var/log/containers/gnocchi:/var/log/gnocchi
+ - /var/log/containers/httpd/gnocchi-api:/var/log/httpd
- /etc/ceph:/etc/ceph:ro
command:
str_replace:
@@ -138,6 +140,7 @@ outputs:
- /var/lib/kolla/config_files/gnocchi_api.json:/var/lib/kolla/config_files/config.json:ro
- /var/lib/config-data/puppet-generated/gnocchi/:/var/lib/kolla/config_files/src:ro
- /var/log/containers/gnocchi:/var/log/gnocchi
+ - /var/log/containers/httpd/gnocchi-api:/var/log/httpd
- /etc/ceph:/var/lib/kolla/config_files/src-ceph:ro
-
if:
@@ -154,8 +157,11 @@ outputs:
host_prep_tasks:
- name: create persistent logs directory
file:
- path: /var/log/containers/gnocchi
+ path: "{{ item }}"
state: directory
+ with_items:
+ - /var/log/containers/gnocchi
+ - /var/log/containers/httpd/gnocchi-api
- name: ensure ceph configurations exist
file:
path: /etc/ceph
diff --git a/docker/services/heat-api-cfn.yaml b/docker/services/heat-api-cfn.yaml
index 70612899..cfe11cd6 100644
--- a/docker/services/heat-api-cfn.yaml
+++ b/docker/services/heat-api-cfn.yaml
@@ -107,6 +107,7 @@ outputs:
- /var/lib/kolla/config_files/heat_api_cfn.json:/var/lib/kolla/config_files/config.json:ro
- /var/lib/config-data/puppet-generated/heat_api_cfn/:/var/lib/kolla/config_files/src:ro
- /var/log/containers/heat:/var/log/heat
+ - /var/log/containers/httpd/heat-api-cfn:/var/log/httpd
-
if:
- internal_tls_enabled
@@ -122,8 +123,11 @@ outputs:
host_prep_tasks:
- name: create persistent logs directory
file:
- path: /var/log/containers/heat
+ path: "{{ item }}"
state: directory
+ with_items:
+ - /var/log/containers/heat
+ - /var/log/containers/httpd/heat-api-cfn
upgrade_tasks:
- name: Check if heat_api_cfn is deployed
command: systemctl is-enabled openstack-heat-api-cfn
diff --git a/docker/services/heat-api.yaml b/docker/services/heat-api.yaml
index 6c1621f1..2bb588de 100644
--- a/docker/services/heat-api.yaml
+++ b/docker/services/heat-api.yaml
@@ -118,6 +118,7 @@ outputs:
- /var/lib/kolla/config_files/heat_api.json:/var/lib/kolla/config_files/config.json:ro
- /var/lib/config-data/puppet-generated/heat_api/:/var/lib/kolla/config_files/src:ro
- /var/log/containers/heat:/var/log/heat
+ - /var/log/containers/httpd/heat-api:/var/log/httpd
-
if:
- internal_tls_enabled
@@ -145,13 +146,17 @@ outputs:
- /var/lib/kolla/config_files/heat_api_cron.json:/var/lib/kolla/config_files/config.json:ro
- /var/lib/config-data/puppet-generated/heat_api/:/var/lib/kolla/config_files/src:ro
- /var/log/containers/heat:/var/log/heat
+ - /var/log/containers/httpd/heat-api:/var/log/httpd
environment:
- KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
host_prep_tasks:
- name: create persistent logs directory
file:
- path: /var/log/containers/heat
+ path: "{{ item }}"
state: directory
+ with_items:
+ - /var/log/containers/heat
+ - /var/log/containers/httpd/heat-api
upgrade_tasks:
- name: Check is heat_api is deployed
command: systemctl is-enabled openstack-heat-api
diff --git a/docker/services/horizon.yaml b/docker/services/horizon.yaml
index f2f2b8dc..9a2c8bad 100644
--- a/docker/services/horizon.yaml
+++ b/docker/services/horizon.yaml
@@ -110,6 +110,7 @@ outputs:
command: ['/bin/bash', '-c', 'touch /var/log/horizon/horizon.log && chown -R apache:apache /var/log/horizon && chmod -R a+rx /etc/openstack-dashboard']
volumes:
- /var/log/containers/horizon:/var/log/horizon
+ - /var/log/containers/httpd/horizon:/var/log/httpd
- /var/lib/config-data/horizon/etc/:/etc/
step_3:
horizon:
@@ -124,6 +125,7 @@ outputs:
- /var/lib/kolla/config_files/horizon.json:/var/lib/kolla/config_files/config.json:ro
- /var/lib/config-data/puppet-generated/horizon/:/var/lib/kolla/config_files/src:ro
- /var/log/containers/horizon:/var/log/horizon
+ - /var/log/containers/httpd/horizon:/var/log/httpd
-
if:
- internal_tls_enabled
@@ -139,8 +141,11 @@ outputs:
host_prep_tasks:
- name: create persistent logs directory
file:
- path: /var/log/containers/horizon
+ path: "{{ item }}"
state: directory
+ with_items:
+ - /var/log/containers/horizon
+ - /var/log/containers/httpd/horizon
upgrade_tasks:
- name: Stop and disable horizon service (running under httpd)
tags: step2
diff --git a/docker/services/ironic-api.yaml b/docker/services/ironic-api.yaml
index 2a9735b5..38710f3b 100644
--- a/docker/services/ironic-api.yaml
+++ b/docker/services/ironic-api.yaml
@@ -97,6 +97,7 @@ outputs:
user: root
volumes:
- /var/log/containers/ironic:/var/log/ironic
+ - /var/log/containers/httpd/ironic-api:/var/log/httpd
command: ['/bin/bash', '-c', 'chown -R ironic:ironic /var/log/ironic']
step_3:
ironic_db_sync:
@@ -112,6 +113,7 @@ outputs:
-
- /var/lib/config-data/ironic_api/etc/ironic:/etc/ironic:ro
- /var/log/containers/ironic:/var/log/ironic
+ - /var/log/containers/httpd/ironic-api:/var/log/httpd
command: "/usr/bin/bootstrap_host_exec ironic_api su ironic -s /bin/bash -c 'ironic-dbsync --config-file /etc/ironic/ironic.conf'"
step_4:
ironic_api:
@@ -127,13 +129,17 @@ outputs:
- /var/lib/kolla/config_files/ironic_api.json:/var/lib/kolla/config_files/config.json:ro
- /var/lib/config-data/puppet-generated/ironic_api/:/var/lib/kolla/config_files/src:ro
- /var/log/containers/ironic:/var/log/ironic
+ - /var/log/containers/httpd/ironic-api:/var/log/httpd
environment:
- KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
host_prep_tasks:
- name: create persistent logs directory
file:
- path: /var/log/containers/ironic
+ path: "{{ item }}"
state: directory
+ with_items:
+ - /var/log/containers/ironic
+ - /var/log/containers/httpd/ironic-api
upgrade_tasks:
- name: Stop and disable ironic_api service
tags: step2
diff --git a/docker/services/ironic-pxe.yaml b/docker/services/ironic-pxe.yaml
index 48d2e1ee..878eef63 100644
--- a/docker/services/ironic-pxe.yaml
+++ b/docker/services/ironic-pxe.yaml
@@ -92,6 +92,7 @@ outputs:
- /var/lib/ironic:/var/lib/ironic/
- /dev/log:/dev/log
- /var/log/containers/ironic:/var/log/ironic
+ - /var/log/containers/httpd/ironic-pxe:/var/log/httpd
environment:
- KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
ironic_pxe_http:
@@ -108,6 +109,7 @@ outputs:
- /var/lib/config-data/puppet-generated/ironic/:/var/lib/kolla/config_files/src:ro
- /var/lib/ironic:/var/lib/ironic/
- /var/log/containers/ironic:/var/log/ironic
+ - /var/log/containers/httpd/ironic-pxe:/var/log/httpd
environment:
- KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
host_prep_tasks:
@@ -118,3 +120,4 @@ outputs:
with_items:
- /var/lib/ironic
- /var/log/containers/ironic
+ - /var/log/containers/httpd/ironic-pxe
diff --git a/docker/services/keystone.yaml b/docker/services/keystone.yaml
index 97b4c5d5..8f4a2014 100644
--- a/docker/services/keystone.yaml
+++ b/docker/services/keystone.yaml
@@ -121,9 +121,10 @@ outputs:
keystone_init_log:
image: &keystone_image {get_param: DockerKeystoneImage}
user: root
- command: ['/bin/bash', '-c', 'mkdir -p /var/log/httpd; chown -R keystone:keystone /var/log/keystone']
+ command: ['/bin/bash', '-c', 'chown -R keystone:keystone /var/log/keystone']
volumes:
- /var/log/containers/keystone:/var/log/keystone
+ - /var/log/containers/httpd/keystone:/var/log/httpd
step_3:
keystone_db_sync:
image: *keystone_image
@@ -138,6 +139,7 @@ outputs:
- /var/lib/kolla/config_files/keystone.json:/var/lib/kolla/config_files/config.json:ro
- /var/lib/config-data/puppet-generated/keystone/:/var/lib/kolla/config_files/src:ro
- /var/log/containers/keystone:/var/log/keystone
+ - /var/log/containers/httpd/keystone:/var/log/httpd
-
if:
- internal_tls_enabled
@@ -184,6 +186,7 @@ outputs:
- /var/lib/kolla/config_files/keystone_cron.json:/var/lib/kolla/config_files/config.json:ro
- /var/lib/config-data/puppet-generated/keystone/:/var/lib/kolla/config_files/src:ro
- /var/log/containers/keystone:/var/log/keystone
+ - /var/log/containers/httpd/keystone:/var/log/httpd
environment:
- KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
docker_puppet_tasks:
@@ -196,8 +199,11 @@ outputs:
host_prep_tasks:
- name: create persistent logs directory
file:
- path: /var/log/containers/keystone
+ path: "{{ item }}"
state: directory
+ with_items:
+ - /var/log/containers/keystone
+ - /var/log/containers/httpd/keystone
upgrade_tasks:
- name: Stop and disable keystone service (running under httpd)
tags: step2
diff --git a/docker/services/manila-api.yaml b/docker/services/manila-api.yaml
index 7b2dbfaf..a0e501ec 100644
--- a/docker/services/manila-api.yaml
+++ b/docker/services/manila-api.yaml
@@ -90,7 +90,8 @@ outputs:
user: root
volumes:
- /var/log/containers/manila:/var/log/manila
- command: ['/bin/bash', '-c', 'mkdir -p /var/log/httpd; chown -R manila:manila /var/log/manila']
+ - /var/log/containers/httpd/manila-api:/var/log/httpd
+ command: ['/bin/bash', '-c', 'chown -R manila:manila /var/log/manila']
step_3:
manila_api_db_sync:
user: root
@@ -103,6 +104,7 @@ outputs:
-
- /var/lib/config-data/manila/etc/manila/:/etc/manila/:ro
- /var/log/containers/manila:/var/log/manila
+ - /var/log/containers/httpd/manila-api:/var/log/httpd
command: "/usr/bin/bootstrap_host_exec manila_api su manila -s /bin/bash -c '/usr/bin/manila-manage db sync'"
step_4:
manila_api:
@@ -116,13 +118,17 @@ outputs:
- /var/lib/kolla/config_files/manila_api.json:/var/lib/kolla/config_files/config.json:ro
- /var/lib/config-data/puppet-generated/manila/:/var/lib/kolla/config_files/src:ro
- /var/log/containers/manila:/var/log/manila
+ - /var/log/containers/httpd/manila-api:/var/log/httpd
environment:
- KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
host_prep_tasks:
- name: Create persistent manila logs directory
file:
- path: /var/log/containers/manila
+ path: "{{ item }}"
state: directory
+ with_items:
+ - /var/log/containers/manila
+ - /var/log/containers/httpd/manila-api
upgrade_tasks:
- name: Stop and disable manila_api service
tags: step2
diff --git a/docker/services/neutron-api.yaml b/docker/services/neutron-api.yaml
index 85a07128..c028fc28 100644
--- a/docker/services/neutron-api.yaml
+++ b/docker/services/neutron-api.yaml
@@ -110,6 +110,7 @@ outputs:
user: root
volumes:
- /var/log/containers/neutron:/var/log/neutron
+ - /var/log/containers/httpd/neutron-api:/var/log/httpd
command: ['/bin/bash', '-c', 'chown -R neutron:neutron /var/log/neutron']
step_3:
neutron_db_sync:
@@ -126,6 +127,7 @@ outputs:
- /var/lib/config-data/neutron/etc/neutron:/etc/neutron:ro
- /var/lib/config-data/neutron/usr/share/neutron:/usr/share/neutron:ro
- /var/log/containers/neutron:/var/log/neutron
+ - /var/log/containers/httpd/neutron-api:/var/log/httpd
command: ['/usr/bin/bootstrap_host_exec', 'neutron_api', 'neutron-db-manage', 'upgrade', 'heads']
# FIXME: we should make config file permissions right
# and run as neutron user
@@ -144,6 +146,7 @@ outputs:
- /var/lib/kolla/config_files/neutron_api.json:/var/lib/kolla/config_files/config.json:ro
- /var/lib/config-data/puppet-generated/neutron/:/var/lib/kolla/config_files/src:ro
- /var/log/containers/neutron:/var/log/neutron
+ - /var/log/containers/httpd/neutron-api:/var/log/httpd
environment:
- KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
- if:
@@ -167,8 +170,11 @@ outputs:
host_prep_tasks:
- name: create persistent logs directory
file:
- path: /var/log/containers/neutron
+ path: "{{ item }}"
state: directory
+ with_items:
+ - /var/log/containers/neutron
+ - /var/log/containers/httpd/neutron-api
upgrade_tasks:
- name: Check if neutron_server is deployed
command: systemctl is-enabled neutron-server
diff --git a/docker/services/neutron-sriov-agent.yaml b/docker/services/neutron-sriov-agent.yaml
new file mode 100644
index 00000000..a9914987
--- /dev/null
+++ b/docker/services/neutron-sriov-agent.yaml
@@ -0,0 +1,108 @@
+heat_template_version: pike
+
+description: >
+ OpenStack Neutron SR-IOV service
+
+parameters:
+ DockerNeutronSriovImage:
+ description: The container image to use for the Neutron SR-IOV agent
+ type: string
+ DockerNeutronConfigImage:
+ description: The container image to use for the neutron config_volume
+ type: string
+ ServiceData:
+ default: {}
+ description: Dictionary packing service data
+ type: json
+ ServiceNetMap:
+ default: {}
+ description: Mapping of service_name -> network name. Typically set
+ via parameter_defaults in the resource registry. This
+ mapping overrides those in ServiceNetMapDefaults.
+ type: json
+ DefaultPasswords:
+ default: {}
+ type: json
+ RoleName:
+ default: ''
+ description: Role name on which the service is applied
+ type: string
+ RoleParameters:
+ default: {}
+ description: Parameters specific to the role
+ type: json
+ EndpointMap:
+ default: {}
+ description: Mapping of service endpoint -> protocol. Typically set
+ via parameter_defaults in the resource registry.
+ type: json
+
+resources:
+
+ ContainersCommon:
+ type: ./containers-common.yaml
+
+ NeutronSriovAgentBase:
+ type: ../../puppet/services/neutron-sriov-agent.yaml
+ properties:
+ EndpointMap: {get_param: EndpointMap}
+ ServiceData: {get_param: ServiceData}
+ ServiceNetMap: {get_param: ServiceNetMap}
+ DefaultPasswords: {get_param: DefaultPasswords}
+ RoleName: {get_param: RoleName}
+ RoleParameters: {get_param: RoleParameters}
+
+outputs:
+ role_data:
+ description: Role data for Neutron sriov service
+ value:
+ service_name: {get_attr: [NeutronSriovAgentBase, role_data, service_name]}
+ config_settings: {get_attr: [NeutronSriovAgentBase, role_data, config_settings]}
+ step_config: &step_config
+ get_attr: [NeutronSriovAgentBase, role_data, step_config]
+ puppet_config:
+ config_volume: neutron
+ puppet_tags: neutron_config,neutron_agent_sriov_numvfs,neutron_sriov_agent_config
+ step_config: *step_config
+ config_image: {get_param: DockerNeutronConfigImage}
+ kolla_config:
+ /var/lib/kolla/config_files/neutron_sriov_agent.json:
+ command: /usr/bin/neutron-sriov-nic-agent --config-file /usr/share/neutron/neutron-dist.conf --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/sriov_agent.ini --config-dir /etc/neutron/conf.d/common
+ config_files:
+ - source: "/var/lib/kolla/config_files/src/*"
+ dest: "/"
+ merge: true
+ preserve_properties: true
+ permissions:
+ - path: /var/log/neutron
+ owner: neutron:neutron
+ recurse: true
+ docker_config:
+ step_4:
+ neutron_sriov_agent:
+ image: {get_param: DockerNeutronSriovImage}
+ net: host
+ pid: host
+ privileged: true
+ restart: always
+ volumes:
+ list_concat:
+ - {get_attr: [ContainersCommon, volumes]}
+ -
+ - /var/lib/kolla/config_files/neutron_sriov_agent.json:/var/lib/kolla/config_files/config.json:ro
+ - /var/lib/config-data/puppet-generated/neutron/:/var/lib/kolla/config_files/src:ro
+ - /lib/modules:/lib/modules:ro
+ - /run:/run
+ - /var/log/containers/neutron:/var/log/neutron
+ - /sys/class/net:/sys/class/net:rw
+ environment:
+ - KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
+ host_prep_tasks:
+ - name: create persistent logs directory
+ file:
+ path: /var/log/containers/neutron
+ state: directory
+ upgrade_tasks:
+ - name: Stop and disable neutron_sriov_agent service
+ tags: step2
+ service: name=neutron-sriov-nic-agent state=stopped enabled=no
diff --git a/docker/services/nova-api.yaml b/docker/services/nova-api.yaml
index 7142b70e..f46e27c0 100644
--- a/docker/services/nova-api.yaml
+++ b/docker/services/nova-api.yaml
@@ -116,7 +116,8 @@ outputs:
user: root
volumes:
- /var/log/containers/nova:/var/log/nova
- command: ['/bin/bash', '-c', 'mkdir -p /var/log/httpd; chown -R nova:nova /var/log/nova']
+ - /var/log/containers/httpd/nova-api:/var/log/httpd
+ command: ['/bin/bash', '-c', 'chown -R nova:nova /var/log/nova']
step_3:
nova_api_db_sync:
start_order: 0
@@ -131,6 +132,7 @@ outputs:
- /var/lib/config-data/nova/etc/my.cnf.d/tripleo.cnf:/etc/my.cnf.d/tripleo.cnf:ro
- /var/lib/config-data/nova/etc/nova/:/etc/nova/:ro
- /var/log/containers/nova:/var/log/nova
+ - /var/log/containers/httpd/nova-api:/var/log/httpd
command: "/usr/bin/bootstrap_host_exec nova_api su nova -s /bin/bash -c '/usr/bin/nova-manage api_db sync'"
# FIXME: we probably want to wait on the 'cell_v2 update' in order for this
# to be capable of upgrading a baremetal setup. This is to ensure the name
@@ -178,6 +180,7 @@ outputs:
- /var/lib/kolla/config_files/nova_api.json:/var/lib/kolla/config_files/config.json:ro
- /var/lib/config-data/puppet-generated/nova/:/var/lib/kolla/config_files/src:ro
- /var/log/containers/nova:/var/log/nova
+ - /var/log/containers/httpd/nova-api:/var/log/httpd
-
if:
- internal_tls_enabled
@@ -205,6 +208,7 @@ outputs:
- /var/lib/kolla/config_files/nova_api_cron.json:/var/lib/kolla/config_files/config.json:ro
- /var/lib/config-data/puppet-generated/nova/:/var/lib/kolla/config_files/src:ro
- /var/log/containers/nova:/var/log/nova
+ - /var/log/containers/httpd/nova-api:/var/log/httpd
environment:
- KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
step_5:
@@ -221,8 +225,11 @@ outputs:
host_prep_tasks:
- name: create persistent logs directory
file:
- path: /var/log/containers/nova
+ path: "{{ item }}"
state: directory
+ with_items:
+ - /var/log/containers/nova
+ - /var/log/containers/httpd/nova-api
upgrade_tasks:
- name: Stop and disable nova_api service
tags: step2
diff --git a/docker/services/nova-libvirt.yaml b/docker/services/nova-libvirt.yaml
index 8f151cfe..d20c093d 100644
--- a/docker/services/nova-libvirt.yaml
+++ b/docker/services/nova-libvirt.yaml
@@ -204,6 +204,7 @@ outputs:
- /var/lib/libvirt:/var/lib/libvirt
- /var/log/libvirt/qemu:/var/log/libvirt/qemu:ro
- /var/log/containers/nova:/var/log/nova
+ - /var/lib/vhost_sockets:/var/lib/vhost_sockets
-
if:
- use_tls_for_live_migration
@@ -252,6 +253,30 @@ outputs:
- /etc/libvirt/qemu
- /var/lib/libvirt
- /var/log/containers/nova
+ # qemu user on host will be cretaed by libvirt package install, ensure
+ # the qemu user created with same uid/gid as like libvirt package.
+ # These specific values are required since ovs is running on host.
+ # Once ovs with DPDK is containerized, we could modify this uid/gid
+ # to match with kolla config values.
+ - name: ensure qemu group is present on the host
+ group:
+ name: qemu
+ gid: 107
+ state: present
+ - name: ensure qemu user is present on the host
+ user:
+ name: qemu
+ uid: 107
+ group: qemu
+ state: present
+ shell: /sbin/nologin
+ comment: qemu user
+ - name: create directory for vhost-user sockets with qemu ownership
+ file:
+ path: /var/lib/vhost_sockets
+ state: directory
+ owner: qemu
+ group: qemu
- name: ensure ceph configurations exist
file:
path: /etc/ceph
diff --git a/docker/services/nova-placement.yaml b/docker/services/nova-placement.yaml
index 26d17560..d66a6fb8 100644
--- a/docker/services/nova-placement.yaml
+++ b/docker/services/nova-placement.yaml
@@ -111,6 +111,7 @@ outputs:
- /var/lib/kolla/config_files/nova_placement.json:/var/lib/kolla/config_files/config.json:ro
- /var/lib/config-data/puppet-generated/nova_placement/:/var/lib/kolla/config_files/src:ro
- /var/log/containers/nova:/var/log/nova
+ - /var/log/containers/httpd/nova-placement:/var/log/httpd
-
if:
- internal_tls_enabled
@@ -128,8 +129,11 @@ outputs:
host_prep_tasks:
- name: create persistent logs directory
file:
- path: /var/log/containers/nova
+ path: "{{ item }}"
state: directory
+ with_items:
+ - /var/log/containers/nova
+ - /var/log/containers/httpd/nova-placement
upgrade_tasks:
- name: Stop and disable nova_placement service (running under httpd)
tags: step2
diff --git a/docker/services/octavia-api.yaml b/docker/services/octavia-api.yaml
index 86730ebc..da698991 100644
--- a/docker/services/octavia-api.yaml
+++ b/docker/services/octavia-api.yaml
@@ -111,6 +111,7 @@ outputs:
# configuration.
- /var/lib/config-data/puppet-generated/octavia/etc/octavia:/etc/octavia/
- /var/log/containers/octavia:/var/log/octavia
+ - /var/log/containers/httpd/octavia-api:/var/log/httpd
command: ['/bin/bash', '-c', 'mkdir -p /etc/octavia/conf.d/octavia-api; chown -R octavia:octavia /etc/octavia/conf.d/octavia-api; chown -R octavia:octavia /var/log/octavia']
step_3:
octavia_db_sync:
@@ -126,6 +127,7 @@ outputs:
-
- /var/lib/config-data/octavia/etc/octavia/:/etc/octavia/:ro
- /var/log/containers/octavia:/var/log/octavia
+ - /var/log/containers/httpd/octavia-api:/var/log/httpd
command: "/usr/bin/bootstrap_host_exec octavia_api su octavia -s /bin/bash -c '/usr/bin/octavia-db-manage upgrade head'"
step_4:
map_merge:
@@ -142,6 +144,7 @@ outputs:
- /var/lib/kolla/config_files/octavia_api.json:/var/lib/kolla/config_files/config.json:ro
- /var/lib/config-data/puppet-generated/octavia/:/var/lib/kolla/config_files/src:ro
- /var/log/containers/octavia:/var/log/octavia
+ - /var/log/containers/httpd/octavia-api:/var/log/httpd
environment:
- KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
- if:
@@ -166,8 +169,11 @@ outputs:
host_prep_tasks:
- name: create persistent logs directory
file:
- path: /var/log/containers/octavia
+ path: "{{ item }}"
state: directory
+ with_items:
+ - /var/log/containers/octavia
+ - /var/log/containers/httpd/octavia-api
upgrade_tasks:
- name: Stop and disable octavia_api service
tags: step2
diff --git a/docker/services/panko-api.yaml b/docker/services/panko-api.yaml
index 626d9176..3edd9049 100644
--- a/docker/services/panko-api.yaml
+++ b/docker/services/panko-api.yaml
@@ -104,7 +104,8 @@ outputs:
user: root
volumes:
- /var/log/containers/panko:/var/log/panko
- command: ['/bin/bash', '-c', 'mkdir -p /var/log/httpd; chown -R panko:panko /var/log/panko']
+ - /var/log/containers/httpd/panko-api:/var/log/httpd
+ command: ['/bin/bash', '-c', 'chown -R panko:panko /var/log/panko']
step_3:
panko_db_sync:
image: *panko_api_image
@@ -119,6 +120,7 @@ outputs:
- /var/lib/config-data/panko/etc/my.cnf.d/tripleo.cnf:/etc/my.cnf.d/tripleo.cnf:ro
- /var/lib/config-data/panko/etc/panko:/etc/panko:ro
- /var/log/containers/panko:/var/log/panko
+ - /var/log/containers/httpd/panko-api:/var/log/httpd
command: "/usr/bin/bootstrap_host_exec panko_api su panko -s /bin/bash -c '/usr/bin/panko-dbsync'"
step_4:
panko_api:
@@ -134,6 +136,7 @@ outputs:
- /var/lib/kolla/config_files/panko_api.json:/var/lib/kolla/config_files/config.json:ro
- /var/lib/config-data/puppet-generated/panko/:/var/lib/kolla/config_files/src:ro
- /var/log/containers/panko:/var/log/panko
+ - /var/log/containers/httpd/panko-api:/var/log/httpd
-
if:
- internal_tls_enabled
@@ -149,7 +152,10 @@ outputs:
host_prep_tasks:
- name: create persistent logs directory
file:
- path: /var/log/containers/panko
+ path: "{{ item }}"
state: directory
+ with_items:
+ - /var/log/containers/panko
+ - /var/log/containers/httpd/panko-api
metadata_settings:
get_attr: [PankoApiPuppetBase, role_data, metadata_settings]
diff --git a/docker/services/swift-proxy.yaml b/docker/services/swift-proxy.yaml
index 374db250..86871210 100644
--- a/docker/services/swift-proxy.yaml
+++ b/docker/services/swift-proxy.yaml
@@ -111,6 +111,7 @@ outputs:
- /srv/node:/srv/node
- /dev:/dev
- /var/log/containers/swift:/var/log/swift
+ - /var/log/containers/httpd/swift-proxy:/var/log/httpd
environment:
- KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
- if:
@@ -138,6 +139,7 @@ outputs:
state: directory
with_items:
- /var/log/containers/swift
+ - /var/log/containers/httpd/swift-proxy
- /srv/node
upgrade_tasks:
- name: Stop and disable swift_proxy service
diff --git a/docker/services/zaqar.yaml b/docker/services/zaqar.yaml
index 34f2e439..ab30ab5a 100644
--- a/docker/services/zaqar.yaml
+++ b/docker/services/zaqar.yaml
@@ -116,6 +116,7 @@ outputs:
user: root
volumes:
- /var/log/containers/zaqar:/var/log/zaqar
+ - /var/log/containers/httpd/zaqar:/var/log/httpd
command: ['/bin/bash', '-c', 'chown -R zaqar:zaqar /var/log/zaqar']
step_3:
zaqar_db_sync:
@@ -149,6 +150,7 @@ outputs:
- /var/lib/kolla/config_files/zaqar.json:/var/lib/kolla/config_files/config.json:ro
- /var/lib/config-data/puppet-generated/zaqar/:/var/lib/kolla/config_files/src:ro
- /var/log/containers/zaqar:/var/log/zaqar
+ - /var/log/containers/httpd/zaqar:/var/log/httpd
-
if:
- internal_tls_enabled
@@ -173,13 +175,17 @@ outputs:
- /var/lib/kolla/config_files/zaqar_websocket.json:/var/lib/kolla/config_files/config.json:ro
- /var/lib/config-data/puppet-generated/zaqar/:/var/lib/kolla/config_files/src:ro
- /var/log/containers/zaqar:/var/log/zaqar
+ - /var/log/containers/httpd/zaqar:/var/log/httpd
environment:
- KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
host_prep_tasks:
- name: create persistent logs directory
file:
- path: /var/log/containers/zaqar
+ path: "{{ item }}"
state: directory
+ with_items:
+ - /var/log/containers/zaqar
+ - /var/log/containers/httpd/zaqar
upgrade_tasks:
- name: Stop and disable zaqar service
tags: step2
diff --git a/environments/docker.yaml b/environments/docker.yaml
index 67e8a496..06e3d3ab 100644
--- a/environments/docker.yaml
+++ b/environments/docker.yaml
@@ -56,3 +56,7 @@ resource_registry:
# OS::TripleO::Services::CinderScheduler: ../docker/services/cinder-scheduler.yaml
# OS::TripleO::Services::CinderBackup: ../docker/services/cinder-backup.yaml
# OS::TripleO::Services::CinderVolume: ../docker/services/cinder-volume.yaml
+ #
+ # If SR-IOV is enabled on the compute nodes, it will need the SR-IOV
+ # host configuration.
+ OS::TripleO::Services::NeutronSriovHostConfig: OS::Heat::None
diff --git a/environments/hyperconverged-ceph.yaml b/environments/hyperconverged-ceph.yaml
index 81044170..e674dc64 100644
--- a/environments/hyperconverged-ceph.yaml
+++ b/environments/hyperconverged-ceph.yaml
@@ -29,6 +29,7 @@ parameter_defaults:
- OS::TripleO::Services::TripleoFirewall
- OS::TripleO::Services::Tuned
- OS::TripleO::Services::NeutronSriovAgent
+ - OS::TripleO::Services::NeutronSriovHostConfig
- OS::TripleO::Services::OpenDaylightOvs
- OS::TripleO::Services::SensuClient
- OS::TripleO::Services::FluentdClient
diff --git a/environments/neutron-opendaylight-dpdk.yaml b/environments/neutron-opendaylight-dpdk.yaml
index 236b2fb9..0d598980 100644
--- a/environments/neutron-opendaylight-dpdk.yaml
+++ b/environments/neutron-opendaylight-dpdk.yaml
@@ -9,8 +9,9 @@ resource_registry:
parameter_defaults:
NeutronEnableForceMetadata: true
+ NeutronPluginExtensions: 'port_security'
NeutronMechanismDrivers: 'opendaylight_v2'
- NeutronServicePlugins: 'odl-router_v2'
+ NeutronServicePlugins: 'odl-router_v2,trunk'
NovaSchedulerDefaultFilters: "RamFilter,ComputeFilter,AvailabilityZoneFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,NUMATopologyFilter"
OpenDaylightSNATMechanism: 'controller'
diff --git a/environments/neutron-opendaylight-sriov.yaml b/environments/neutron-opendaylight-sriov.yaml
index 5c0a0350..3a212ed3 100644
--- a/environments/neutron-opendaylight-sriov.yaml
+++ b/environments/neutron-opendaylight-sriov.yaml
@@ -11,6 +11,7 @@ resource_registry:
parameter_defaults:
NeutronEnableForceMetadata: true
+ NeutronPluginExtensions: 'port_security'
NeutronMechanismDrivers: ['sriovnicswitch','opendaylight_v2']
NeutronServicePlugins: 'odl-router_v2,trunk'
diff --git a/environments/neutron-opendaylight.yaml b/environments/neutron-opendaylight.yaml
index 4644725d..e9b1ac11 100644
--- a/environments/neutron-opendaylight.yaml
+++ b/environments/neutron-opendaylight.yaml
@@ -12,3 +12,4 @@ parameter_defaults:
NeutronEnableForceMetadata: true
NeutronMechanismDrivers: 'opendaylight_v2'
NeutronServicePlugins: 'odl-router_v2,trunk'
+ NeutronPluginExtensions: 'port_security'
diff --git a/environments/neutron-sriov.yaml b/environments/neutron-sriov.yaml
index 591e2260..26c28d28 100755
--- a/environments/neutron-sriov.yaml
+++ b/environments/neutron-sriov.yaml
@@ -4,16 +4,5 @@ resource_registry:
parameter_defaults:
NeutronMechanismDrivers: ['sriovnicswitch', 'openvswitch']
-
- # Add PciPassthroughFilter to the scheduler default filters
- #NovaSchedulerDefaultFilters: ['RetryFilter','AvailabilityZoneFilter','RamFilter','ComputeFilter','ComputeCapabilitiesFilter','ImagePropertiesFilter','ServerGroupAntiAffinityFilter','ServerGroupAffinityFilter','PciPassthroughFilter']
- #NovaSchedulerAvailableFilters: ["nova.scheduler.filters.all_filters","nova.scheduler.filters.pci_passthrough_filter.PciPassthroughFilter"]
-
- #NeutronPhysicalDevMappings: "datacentre:ens20f2"
-
- # Number of VFs that needs to be configured for a physical interface
- #NeutronSriovNumVFs: "ens20f2:5"
-
- #NovaPCIPassthrough:
- # - devname: "ens20f2"
- # physical_network: "datacentre"
+ NovaSchedulerDefaultFilters: ['RetryFilter','AvailabilityZoneFilter','RamFilter','ComputeFilter','ComputeCapabilitiesFilter','ImagePropertiesFilter','ServerGroupAntiAffinityFilter','ServerGroupAffinityFilter','PciPassthroughFilter']
+ NovaSchedulerAvailableFilters: ["nova.scheduler.filters.all_filters","nova.scheduler.filters.pci_passthrough_filter.PciPassthroughFilter"]
diff --git a/environments/services-docker/neutron-opendaylight.yaml b/environments/services-docker/neutron-opendaylight.yaml
index 31d5790e..873957ae 100644
--- a/environments/services-docker/neutron-opendaylight.yaml
+++ b/environments/services-docker/neutron-opendaylight.yaml
@@ -10,5 +10,6 @@ resource_registry:
parameter_defaults:
NeutronEnableForceMetadata: true
+ NeutronPluginExtensions: 'port_security'
NeutronMechanismDrivers: 'opendaylight_v2'
NeutronServicePlugins: 'odl-router_v2,trunk'
diff --git a/environments/services-docker/neutron-sriov.yaml b/environments/services-docker/neutron-sriov.yaml
new file mode 100644
index 00000000..91725868
--- /dev/null
+++ b/environments/services-docker/neutron-sriov.yaml
@@ -0,0 +1,12 @@
+# EXPERIMENTAL: The configuration enabled by this environment is not considered
+# production-ready.
+#
+# A Heat environment that can be used to enable SR-IOV support in neutron.
+resource_registry:
+ OS::TripleO::Services::NeutronSriovAgent: ../../docker/services/neutron-sriov-agent.yaml
+ OS::TripleO::Services::NeutronSriovHostConfig: ../../puppet/services/neutron-sriov-host-config.yaml
+
+parameter_defaults:
+ NeutronMechanismDrivers: ['sriovnicswitch','openvswitch']
+ NovaSchedulerDefaultFilters: ['RetryFilter','AvailabilityZoneFilter','RamFilter','ComputeFilter','ComputeCapabilitiesFilter','ImagePropertiesFilter','ServerGroupAntiAffinityFilter','ServerGroupAffinityFilter','PciPassthroughFilter']
+ NovaSchedulerAvailableFilters: ["nova.scheduler.filters.all_filters","nova.scheduler.filters.pci_passthrough_filter.PciPassthroughFilter"]
diff --git a/overcloud-resource-registry-puppet.j2.yaml b/overcloud-resource-registry-puppet.j2.yaml
index 8f4b4b48..e5ae5279 100644
--- a/overcloud-resource-registry-puppet.j2.yaml
+++ b/overcloud-resource-registry-puppet.j2.yaml
@@ -169,6 +169,7 @@ resource_registry:
OS::TripleO::Services::Pacemaker: OS::Heat::None
OS::TripleO::Services::PacemakerRemote: OS::Heat::None
OS::TripleO::Services::NeutronSriovAgent: OS::Heat::None
+ OS::TripleO::Services::NeutronSriovHostConfig: OS::Heat::None
OS::TripleO::Services::RabbitMQ: puppet/services/rabbitmq.yaml
OS::TripleO::Services::Qdr: OS::Heat::None
OS::TripleO::Services::HAproxy: puppet/services/haproxy.yaml
diff --git a/puppet/services/neutron-base.yaml b/puppet/services/neutron-base.yaml
index b6980045..af3f8637 100644
--- a/puppet/services/neutron-base.yaml
+++ b/puppet/services/neutron-base.yaml
@@ -30,6 +30,10 @@ parameters:
type: number
default: 0
description: The number of neutron dhcp agents to schedule per network
+ DhcpAgentNotification:
+ default: true
+ description: Whether or not to enable DHCP agent notifications.
+ type: string
NeutronDnsDomain:
type: string
default: openstacklocal
@@ -133,6 +137,7 @@ outputs:
- {get_param: NeutronDebug }
neutron::purge_config: {get_param: EnableConfigPurge}
neutron::allow_overlapping_ips: true
+ neutron::dhcp_agent_notification: {get_param: DhcpAgentNotification}
neutron::dns_domain: {get_param: NeutronDnsDomain}
neutron::rabbit_heartbeat_timeout_threshold: 60
neutron::host: '%{::fqdn}'
diff --git a/puppet/services/neutron-sriov-agent.yaml b/puppet/services/neutron-sriov-agent.yaml
index 3c18209c..5c52ecfc 100644
--- a/puppet/services/neutron-sriov-agent.yaml
+++ b/puppet/services/neutron-sriov-agent.yaml
@@ -99,3 +99,17 @@ outputs:
- get_attr: [RoleParametersValue, value]
step_config: |
include ::tripleo::profile::base::neutron::sriov
+ upgrade_tasks:
+ - name: Check if neutron_sriov_agent is deployed
+ command: systemctl is-enabled neutron-sriov-nic-agent
+ tags: common
+ ignore_errors: True
+ register: neutron_sriov_nic_agent_enabled
+ - name: "PreUpgrade step0,validation: Check service neutron-server is running"
+ shell: /usr/bin/systemctl show 'neutron-sriov-nic-agent' --property ActiveState | grep '\bactive\b'
+ when: neutron_sriov_nic_agent_enabled.rc == 0
+ tags: step0,validation
+ - name: Stop neutron_sriov_nic_agent service
+ tags: step1
+ when: neutron_sriov_nic_agent_enabled.rc == 0
+ service: name=neutron-sriov-nic-agent state=stopped
diff --git a/puppet/services/neutron-sriov-host-config.yaml b/puppet/services/neutron-sriov-host-config.yaml
new file mode 100644
index 00000000..987b96f9
--- /dev/null
+++ b/puppet/services/neutron-sriov-host-config.yaml
@@ -0,0 +1,78 @@
+heat_template_version: pike
+
+description: >
+ OpenStack Neutron SR-IOV host configuration
+
+parameters:
+ ServiceData:
+ default: {}
+ description: Dictionary packing service data
+ type: json
+ ServiceNetMap:
+ default: {}
+ description: >
+ Mapping of service_name -> network name. Typically set via
+ parameter_defaults in the resource registry. This mapping overrides those
+ in ServiceNetMapDefaults.
+ type: json
+ DefaultPasswords:
+ default: {}
+ type: json
+ RoleName:
+ default: ''
+ description: Role name on which the service is applied
+ type: string
+ RoleParameters:
+ default: {}
+ description: Parameters specific to the role
+ type: json
+ EndpointMap:
+ default: {}
+ description: Mapping of service endpoint -> protocol. Typically set
+ via parameter_defaults in the resource registry.
+ type: json
+ NeutronSriovNumVFs:
+ description: >
+ Provide the list of VFs to be reserved for each SR-IOV interface.
+ Format "<interface_name1>:<numvfs1>,<interface_name2>:<numvfs2>"
+ Example "eth1:4096,eth2:128"
+ type: comma_delimited_list
+ default: ""
+
+resources:
+
+ NeutronBase:
+ type: ./neutron-base.yaml
+ properties:
+ ServiceData: {get_param: ServiceData}
+ ServiceNetMap: {get_param: ServiceNetMap}
+ DefaultPasswords: {get_param: DefaultPasswords}
+ EndpointMap: {get_param: EndpointMap}
+ RoleName: {get_param: RoleName}
+ RoleParameters: {get_param: RoleParameters}
+
+ # Merging role-specific parameters (RoleParameters) with the default parameters.
+ # RoleParameters will have the precedence over the default parameters.
+ RoleParametersValue:
+ type: OS::Heat::Value
+ properties:
+ type: json
+ value:
+ map_replace:
+ - map_replace:
+ - tripleo::host::sriov::number_of_vfs: NeutronSriovNumVFs
+ - values: {get_param: [RoleParameters]}
+ - values:
+ NeutronSriovNumVFs: {get_param: NeutronSriovNumVFs}
+
+outputs:
+ role_data:
+ description: Role data for the Neutron SR-IOV nic agent service.
+ value:
+ service_name: neutron_sriov_host_config
+ config_settings:
+ map_merge:
+ - get_attr: [NeutronBase, role_data, config_settings]
+ - get_attr: [RoleParametersValue, value]
+ step_config: |
+ include ::tripleo::host::sriov
diff --git a/releasenotes/notes/containerized-services-logs-0dc652513870f46d.yaml b/releasenotes/notes/containerized-services-logs-0dc652513870f46d.yaml
new file mode 100644
index 00000000..5ce8b7df
--- /dev/null
+++ b/releasenotes/notes/containerized-services-logs-0dc652513870f46d.yaml
@@ -0,0 +1,11 @@
+---
+upgrade:
+ - |
+ Containerized services logs can be found under updated paths.
+ Pacemaker-managed resources write logs to `/var/log/pacemaker/bundles/*`.
+ Docker-daemon managed openstack services bind-mount their log files to the
+ `/var/log/containers/<foo>/*` sub-directories. Services running under
+ Apache2 WSGI use the `/var/log/containers/httpd/<foo-api>/*` destinations.
+ Additional tools or commands that log to syslog, end up placing log records
+ into the hosts journalctl and `/var/log/messages`.
+
diff --git a/releasenotes/notes/odl-qos-48b70c804755e3a5.yaml b/releasenotes/notes/odl-qos-48b70c804755e3a5.yaml
new file mode 100644
index 00000000..380ef7ff
--- /dev/null
+++ b/releasenotes/notes/odl-qos-48b70c804755e3a5.yaml
@@ -0,0 +1,4 @@
+---
+fixes:
+ - Disables QoS with OpenDaylight until officially
+ supported.
diff --git a/roles/Compute.yaml b/roles/Compute.yaml
index 9d2c8189..892bed8f 100644
--- a/roles/Compute.yaml
+++ b/roles/Compute.yaml
@@ -39,6 +39,7 @@
- OS::TripleO::Services::MySQLClient
- OS::TripleO::Services::NeutronLinuxbridgeAgent
- OS::TripleO::Services::NeutronSriovAgent
+ - OS::TripleO::Services::NeutronSriovHostConfig
- OS::TripleO::Services::NeutronVppAgent
- OS::TripleO::Services::NovaCompute
- OS::TripleO::Services::NovaLibvirt
diff --git a/roles/ComputeHCI.yaml b/roles/ComputeHCI.yaml
index 0216b04a..4632dff2 100644
--- a/roles/ComputeHCI.yaml
+++ b/roles/ComputeHCI.yaml
@@ -30,6 +30,7 @@
- OS::TripleO::Services::MySQLClient
- OS::TripleO::Services::NeutronLinuxbridgeAgent
- OS::TripleO::Services::NeutronSriovAgent
+ - OS::TripleO::Services::NeutronSriovHostConfig
- OS::TripleO::Services::NeutronVppAgent
- OS::TripleO::Services::NovaCompute
- OS::TripleO::Services::NovaLibvirt
diff --git a/roles/ControllerOpenstack.yaml b/roles/ControllerOpenstack.yaml
index cc497822..066962c1 100644
--- a/roles/ControllerOpenstack.yaml
+++ b/roles/ControllerOpenstack.yaml
@@ -42,7 +42,6 @@
- OS::TripleO::Services::CinderVolume
- OS::TripleO::Services::Collectd
- OS::TripleO::Services::Congress
- - OS::TripleO::Services::Clustercheck
- OS::TripleO::Services::Docker
- OS::TripleO::Services::Ec2Api
- OS::TripleO::Services::Etcd
diff --git a/roles/Database.yaml b/roles/Database.yaml
index 689b1617..e5c6b4d2 100644
--- a/roles/Database.yaml
+++ b/roles/Database.yaml
@@ -12,6 +12,7 @@
- OS::TripleO::Services::CACerts
- OS::TripleO::Services::CertmongerUser
- OS::TripleO::Services::Collectd
+ - OS::TripleO::Services::Clustercheck
- OS::TripleO::Services::Docker
- OS::TripleO::Services::FluentdClient
- OS::TripleO::Services::Kernel
diff --git a/roles_data.yaml b/roles_data.yaml
index 1cdaf262..a1adc5ee 100644
--- a/roles_data.yaml
+++ b/roles_data.yaml
@@ -189,6 +189,7 @@
- OS::TripleO::Services::MySQLClient
- OS::TripleO::Services::NeutronLinuxbridgeAgent
- OS::TripleO::Services::NeutronSriovAgent
+ - OS::TripleO::Services::NeutronSriovHostConfig
- OS::TripleO::Services::NeutronVppAgent
- OS::TripleO::Services::NovaCompute
- OS::TripleO::Services::NovaLibvirt