Merge "Remove empty metadata_settings from iscsid and multipathd templates"
authorJenkins <jenkins@review.openstack.org>
Wed, 2 Aug 2017 01:30:11 +0000 (01:30 +0000)
committerGerrit Code Review <review@openstack.org>
Wed, 2 Aug 2017 01:30:11 +0000 (01:30 +0000)
60 files changed:
ci/environments/scenario007-multinode.yaml
docker/services/aodh-api.yaml
docker/services/aodh-evaluator.yaml
docker/services/aodh-listener.yaml
docker/services/aodh-notifier.yaml
docker/services/cinder-api.yaml
docker/services/cinder-backup.yaml
docker/services/cinder-scheduler.yaml
docker/services/cinder-volume.yaml
docker/services/congress.yaml
docker/services/database/mysql-client.yaml [deleted file]
docker/services/ec2-api.yaml
docker/services/glance-api.yaml
docker/services/gnocchi-metricd.yaml
docker/services/gnocchi-statsd.yaml
docker/services/haproxy.yaml
docker/services/heat-engine.yaml
docker/services/ironic-api.yaml
docker/services/ironic-conductor.yaml
docker/services/keystone.yaml
docker/services/manila-api.yaml
docker/services/manila-scheduler.yaml
docker/services/manila-share.yaml
docker/services/mistral-api.yaml
docker/services/mistral-engine.yaml
docker/services/mistral-executor.yaml
docker/services/neutron-api.yaml
docker/services/nova-api.yaml
docker/services/nova-compute.yaml
docker/services/nova-conductor.yaml
docker/services/nova-consoleauth.yaml
docker/services/nova-ironic.yaml
docker/services/nova-libvirt.yaml
docker/services/nova-placement.yaml
docker/services/nova-scheduler.yaml
docker/services/nova-vnc-proxy.yaml
docker/services/octavia-api.yaml
docker/services/pacemaker/cinder-backup.yaml
docker/services/pacemaker/cinder-volume.yaml
docker/services/panko-api.yaml
docker/services/sahara-api.yaml
docker/services/sahara-engine.yaml
docker/services/tacker.yaml
docker/services/zaqar.yaml
environments/docker.yaml
environments/hyperconverged-ceph.yaml
environments/neutron-ml2-ovn-ha.yaml
environments/neutron-ml2-ovn.yaml
extraconfig/pre_network/host_config_and_reboot.yaml
extraconfig/tasks/tripleo_upgrade_node.sh
overcloud-resource-registry-puppet.j2.yaml
puppet/services/ovn-controller.yaml [moved from puppet/services/neutron-compute-plugin-ovn.yaml with 73% similarity]
puppet/services/ovn-dbs.yaml
releasenotes/notes/ovs-2-7-support-for-dpdk-fe665cf9c6b0a750.yaml [new file with mode: 0644]
roles/Compute.yaml
roles/ComputeHCI.yaml
roles/Controller.yaml
roles/ControllerOpenstack.yaml
roles_data.yaml
tools/yaml-validate.py

index 6db00ef..dd73f47 100644 (file)
@@ -16,7 +16,8 @@ resource_registry:
   OS::TripleO::Services::NeutronDhcpAgent: OS::Heat::None
   OS::TripleO::Services::ComputeNeutronOvsAgent: OS::Heat::None
   OS::TripleO::Services::NeutronCorePlugin: OS::TripleO::Services::NeutronCorePluginML2OVN
-  OS::TripleO::Services::ComputeNeutronCorePlugin: ../../puppet/services/neutron-compute-plugin-ovn.yaml
+  OS::TripleO::Services::ComputeNeutronCorePlugin: OS::Heat::None
+  OS::TripleO::Services::OVNController: ../../puppet/services/ovn-controller.yaml
   OS::TripleO::Services::OVNDBs: ../../puppet/services/ovn-dbs.yaml
 
 parameter_defaults:
@@ -34,7 +35,7 @@ parameter_defaults:
     - OS::TripleO::Services::NeutronServer
     - OS::TripleO::Services::NeutronCorePlugin
     - OS::TripleO::Services::OVNDBs
-    - OS::TripleO::Services::ComputeNeutronCorePlugin
+    - OS::TripleO::Services::OVNController
     - OS::TripleO::Services::RabbitMQ
     - OS::TripleO::Services::HAproxy
     - OS::TripleO::Services::Keepalived
index 70b43eb..8afb6d2 100644 (file)
@@ -49,6 +49,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   AodhApiPuppetBase:
       type: ../../puppet/services/aodh-api.yaml
       properties:
@@ -68,7 +71,10 @@ outputs:
           - get_attr: [AodhApiPuppetBase, role_data, config_settings]
           - apache::default_vhost: false
       step_config: &step_config
-        get_attr: [AodhApiPuppetBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [AodhApiPuppetBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [AodhApiPuppetBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
index f75c57b..86bdfdf 100644 (file)
@@ -42,6 +42,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   AodhEvaluatorBase:
     type: ../../puppet/services/aodh-evaluator.yaml
     properties:
@@ -61,7 +64,10 @@ outputs:
         map_merge:
           - get_attr: [AodhEvaluatorBase, role_data, config_settings]
       step_config: &step_config
-        get_attr: [AodhEvaluatorBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [AodhEvaluatorBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [AodhEvaluatorBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
index 9db2ffb..3f986ab 100644 (file)
@@ -42,6 +42,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   AodhListenerBase:
     type: ../../puppet/services/aodh-listener.yaml
     properties:
@@ -61,7 +64,10 @@ outputs:
         map_merge:
           - get_attr: [AodhListenerBase, role_data, config_settings]
       step_config: &step_config
-        get_attr: [AodhListenerBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [AodhListenerBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [AodhListenerBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
index c16c016..852120c 100644 (file)
@@ -42,6 +42,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   AodhNotifierBase:
     type: ../../puppet/services/aodh-notifier.yaml
     properties:
@@ -61,7 +64,10 @@ outputs:
         map_merge:
           - get_attr: [AodhNotifierBase, role_data, config_settings]
       step_config: &step_config
-        get_attr: [AodhNotifierBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [AodhNotifierBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [AodhNotifierBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
index 58dec1a..48faaf9 100644 (file)
@@ -49,6 +49,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   CinderBase:
     type: ../../puppet/services/cinder-api.yaml
     properties:
@@ -66,7 +69,10 @@ outputs:
       service_name: {get_attr: [CinderBase, role_data, service_name]}
       config_settings: {get_attr: [CinderBase, role_data, config_settings]}
       step_config: &step_config
-        get_attr: [CinderBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [CinderBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [CinderBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
index de637f3..33147d2 100644 (file)
@@ -43,6 +43,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   CinderBase:
     type: ../../puppet/services/cinder-backup.yaml
     properties:
@@ -60,7 +63,10 @@ outputs:
       service_name: {get_attr: [CinderBase, role_data, service_name]}
       config_settings: {get_attr: [CinderBase, role_data, config_settings]}
       step_config: &step_config
-        get_attr: [CinderBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [CinderBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [CinderBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
index 1bae005..1ac3187 100644 (file)
@@ -43,6 +43,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   CinderBase:
     type: ../../puppet/services/cinder-scheduler.yaml
     properties:
@@ -60,7 +63,10 @@ outputs:
       service_name: {get_attr: [CinderBase, role_data, service_name]}
       config_settings: {get_attr: [CinderBase, role_data, config_settings]}
       step_config: &step_config
-        get_attr: [CinderBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [CinderBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [CinderBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
index ce81fbf..2ead0d5 100644 (file)
@@ -51,6 +51,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   CinderBase:
     type: ../../puppet/services/cinder-volume.yaml
     properties:
@@ -75,6 +78,7 @@ outputs:
           - "\n"
           - - "include ::tripleo::profile::base::lvm"
             - get_attr: [CinderBase, role_data, step_config]
+            - get_attr: [MySQLClient, role_data, step_config]
       service_config_settings: {get_attr: [CinderBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
index e49682f..08170ce 100644 (file)
@@ -42,6 +42,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   CongressBase:
     type: ../../puppet/services/congress.yaml
     properties:
@@ -61,7 +64,10 @@ outputs:
         map_merge:
           - get_attr: [CongressBase, role_data, config_settings]
       step_config: &step_config
-        get_attr: [CongressBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [CongressBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [CongressBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
diff --git a/docker/services/database/mysql-client.yaml b/docker/services/database/mysql-client.yaml
deleted file mode 100644 (file)
index d45d58e..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-heat_template_version: pike
-
-description: >
-  Configuration for containerized MySQL clients
-
-parameters:
-  DockerMysqlClientConfigImage:
-    description: The container image to use for the mysql_client 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
-  EnableInternalTLS:
-    type: boolean
-    default: false
-  InternalTLSCAFile:
-    default: '/etc/ipa/ca.crt'
-    type: string
-    description: Specifies the default CA cert to use if TLS is used for
-                 services in the internal network.
-
-outputs:
-  role_data:
-    description: Role for setting mysql client parameters
-    value:
-      service_name: mysql_client
-      config_settings:
-        tripleo::profile::base::database::mysql::client::mysql_client_bind_address: {get_param: [ServiceNetMap, MysqlNetwork]}
-        tripleo::profile::base::database::mysql::client::enable_ssl: {get_param: EnableInternalTLS}
-        tripleo::profile::base::database::mysql::client::ssl_ca: {get_param: InternalTLSCAFile}
-      # BEGIN DOCKER SETTINGS #
-      step_config: ""
-      puppet_config:
-        config_volume: mysql_client
-        puppet_tags: file # set this even though file is the default
-        step_config: "include ::tripleo::profile::base::database::mysql::client"
-        config_image: {get_param: DockerMysqlClientConfigImage}
-      # no need for a docker config, this service only generates configuration files
-      docker_config: {}
index 9f1ecbc..1d4ddd3 100644 (file)
@@ -42,6 +42,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   Ec2ApiPuppetBase:
       type: ../../puppet/services/ec2-api.yaml
       properties:
@@ -58,7 +61,10 @@ outputs:
       service_name: {get_attr: [Ec2ApiPuppetBase, role_data, service_name]}
       config_settings: {get_attr: [Ec2ApiPuppetBase, role_data, config_settings]}
       step_config: &step_config
-        get_attr: [Ec2ApiPuppetBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [Ec2ApiPuppetBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [Ec2ApiPuppetBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
index f4c724b..044eb28 100644 (file)
@@ -50,6 +50,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   GlanceApiPuppetBase:
     type: ../../puppet/services/glance-api.yaml
     properties:
@@ -70,7 +73,10 @@ outputs:
           - get_attr: [GlanceApiPuppetBase, role_data, config_settings]
           - glance::api::sync_db: false
       step_config: &step_config
-        get_attr: [GlanceApiPuppetBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [GlanceApiPuppetBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [GlanceApiPuppetBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS #
       puppet_config:
index 6778543..5a6958a 100644 (file)
@@ -42,6 +42,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   GnocchiMetricdBase:
     type: ../../puppet/services/gnocchi-metricd.yaml
     properties:
@@ -59,7 +62,10 @@ outputs:
       service_name: {get_attr: [GnocchiMetricdBase, role_data, service_name]}
       config_settings: {get_attr: [GnocchiMetricdBase, role_data, config_settings]}
       step_config: &step_config
-        get_attr: [GnocchiMetricdBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [GnocchiMetricdBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [GnocchiMetricdBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
index 00d218d..19e658c 100644 (file)
@@ -42,6 +42,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   GnocchiStatsdBase:
     type: ../../puppet/services/gnocchi-statsd.yaml
     properties:
@@ -59,7 +62,10 @@ outputs:
       service_name: {get_attr: [GnocchiStatsdBase, role_data, service_name]}
       config_settings: {get_attr: [GnocchiStatsdBase, role_data, config_settings]}
       step_config: &step_config
-        get_attr: [GnocchiStatsdBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [GnocchiStatsdBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [GnocchiStatsdBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
index f080dcb..2f0584e 100644 (file)
@@ -85,6 +85,7 @@ outputs:
         map_merge:
           - get_attr: [HAProxyBase, role_data, config_settings]
           - tripleo::haproxy::haproxy_daemon: false
+            tripleo::haproxy::haproxy_service_manage: false
       step_config: &step_config
         get_attr: [HAProxyBase, role_data, step_config]
       service_config_settings: {get_attr: [HAProxyBase, role_data, service_config_settings]}
@@ -92,7 +93,8 @@ outputs:
       puppet_config:
         config_volume: haproxy
         puppet_tags: haproxy_config
-        step_config: *step_config
+        step_config:
+          "class {'::tripleo::profile::base::haproxy': manage_firewall => false}"
         config_image: {get_param: DockerHAProxyConfigImage}
         volumes: &deployed_cert_mount
           - list_join:
@@ -110,10 +112,44 @@ outputs:
               preserve_properties: true
       docker_config:
         step_1:
+          haproxy_firewall:
+            detach: false
+            image: {get_param: DockerHAProxyImage}
+            net: host
+            user: root
+            privileged: true
+            command:
+              - '/bin/bash'
+              - '-c'
+              - str_replace:
+                  template:
+                    list_join:
+                      - '; '
+                      - - "cp -a /tmp/puppet-etc/* /etc/puppet; echo '{\"step\": 1}' > /etc/puppet/hieradata/docker.json"
+                        - "FACTER_uuid=docker puppet apply --tags TAGS -v -e 'CONFIG'"
+                  params:
+                    TAGS: 'tripleo::firewall::rule'
+                    CONFIG: *step_config
+            volumes:
+              list_concat:
+                - {get_attr: [ContainersCommon, volumes]}
+                - *deployed_cert_mount
+                -
+                  - /var/lib/kolla/config_files/haproxy.json:/var/lib/kolla/config_files/config.json:ro
+                  - /var/lib/config-data/puppet-generated/haproxy/:/var/lib/kolla/config_files/src:ro
+                  # puppet saves iptables rules in /etc/sysconfig
+                  - /etc/sysconfig:/etc/sysconfig:rw
+                  # saving rules require accessing /usr/libexec/iptables/iptables.init, just bind-mount
+                  # the necessary bit and prevent systemd to try to reload the service in the container
+                  - /usr/libexec/iptables:/usr/libexec/iptables:ro
+                  - /usr/libexec/initscripts/legacy-actions:/usr/libexec/initscripts/legacy-actions:ro
+                  - /etc/puppet:/tmp/puppet-etc:ro
+                  - /usr/share/openstack-puppet/modules:/usr/share/openstack-puppet/modules:ro
+            environment:
+              - KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
           haproxy:
             image: {get_param: DockerHAProxyImage}
             net: host
-            privileged: false
             restart: always
             volumes:
               list_concat:
index 789f3f9..a20dc13 100644 (file)
@@ -43,6 +43,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   HeatBase:
     type: ../../puppet/services/heat-engine.yaml
     properties:
@@ -63,7 +66,10 @@ outputs:
           - get_attr: [HeatBase, role_data, config_settings]
           - apache::default_vhost: false
       step_config: &step_config
-        get_attr: [HeatBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [HeatBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [HeatBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
index 90978f3..2a9735b 100644 (file)
@@ -42,6 +42,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   IronicApiBase:
     type: ../../puppet/services/ironic-api.yaml
     properties:
@@ -62,7 +65,10 @@ outputs:
           - get_attr: [IronicApiBase, role_data, config_settings]
           - apache::default_vhost: false
       step_config: &step_config
-        get_attr: [IronicApiBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [IronicApiBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [IronicApiBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
index 6368bd2..37f4d46 100644 (file)
@@ -42,6 +42,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   IronicConductorBase:
     type: ../../puppet/services/ironic-conductor.yaml
     properties:
@@ -69,7 +72,10 @@ outputs:
           - ironic::pxe::http_root: /var/lib/ironic/httpboot
           - ironic::conductor::http_root: /var/lib/ironic/httpboot
       step_config: &step_config
-        get_attr: [IronicConductorBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [IronicConductorBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [IronicConductorBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
index 7ecfc32..c461f97 100644 (file)
@@ -55,6 +55,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   KeystoneBase:
     type: ../../puppet/services/keystone.yaml
     properties:
@@ -83,6 +86,7 @@ outputs:
           - "\n"
           - - "['Keystone_user', 'Keystone_endpoint', 'Keystone_domain', 'Keystone_tenant', 'Keystone_user_role', 'Keystone_role', 'Keystone_service'].each |String $val| { noop_resource($val) }"
             - {get_attr: [KeystoneBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [KeystoneBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
index c33f409..7b2dbfa 100644 (file)
@@ -42,6 +42,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   ManilaApiPuppetBase:
     type: ../../puppet/services/manila-api.yaml
     properties:
@@ -57,7 +60,10 @@ outputs:
       service_name: {get_attr: [ManilaApiPuppetBase, role_data, service_name]}
       config_settings: {get_attr: [ManilaApiPuppetBase, role_data, config_settings]}
       step_config: &step_config
-        {get_attr: [ManilaApiPuppetBase, role_data, step_config]}
+        list_join:
+          - "\n"
+          - - {get_attr: [ManilaApiPuppetBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [ManilaApiPuppetBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS #
       puppet_config:
index 730d33f..7b5dfec 100644 (file)
@@ -42,6 +42,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   ManilaSchedulerPuppetBase:
     type: ../../puppet/services/manila-scheduler.yaml
     properties:
@@ -57,7 +60,10 @@ outputs:
       service_name: {get_attr: [ManilaSchedulerPuppetBase, role_data, service_name]}
       config_settings: {get_attr: [ManilaSchedulerPuppetBase, role_data, config_settings]}
       step_config: &step_config
-        {get_attr: [ManilaSchedulerPuppetBase, role_data, step_config]}
+        list_join:
+          - "\n"
+          - - {get_attr: [ManilaSchedulerPuppetBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [ManilaSchedulerPuppetBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS #
       puppet_config:
index b427815..332ba86 100644 (file)
@@ -42,6 +42,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   ManilaBase:
     type: ../../puppet/services/manila-share.yaml
     properties:
@@ -59,7 +62,10 @@ outputs:
       service_name: {get_attr: [ManilaBase, role_data, service_name]}
       config_settings: {get_attr: [ManilaBase, role_data, config_settings]}
       step_config: &step_config
-        get_attr: [ManilaBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [ManilaBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [ManilaBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
index 73db374..38b97ae 100644 (file)
@@ -42,6 +42,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   MistralApiBase:
     type: ../../puppet/services/mistral-api.yaml
     properties:
@@ -61,7 +64,10 @@ outputs:
         map_merge:
           - get_attr: [MistralApiBase, role_data, config_settings]
       step_config: &step_config
-        get_attr: [MistralApiBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [MistralApiBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [MistralApiBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
index 4c6b300..2b498be 100644 (file)
@@ -43,6 +43,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   MistralBase:
     type: ../../puppet/services/mistral-engine.yaml
     properties:
@@ -62,7 +65,10 @@ outputs:
         map_merge:
           - get_attr: [MistralBase, role_data, config_settings]
       step_config: &step_config
-        get_attr: [MistralBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [MistralBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [MistralBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
index ea54c57..e106fe4 100644 (file)
@@ -43,6 +43,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   MistralBase:
     type: ../../puppet/services/mistral-executor.yaml
     properties:
@@ -62,7 +65,10 @@ outputs:
         map_merge:
           - get_attr: [MistralBase, role_data, config_settings]
       step_config: &step_config
-        get_attr: [MistralBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [MistralBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [MistralBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
index a9125c8..b4fce22 100644 (file)
@@ -49,6 +49,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   NeutronBase:
     type: ../../puppet/services/neutron-api.yaml
     properties:
@@ -68,7 +71,10 @@ outputs:
         map_merge:
           - get_attr: [NeutronBase, role_data, config_settings]
       step_config: &step_config
-        get_attr: [NeutronBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [NeutronBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [NeutronBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
index e830ab9..da46104 100644 (file)
@@ -42,6 +42,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   NovaApiBase:
     type: ../../puppet/services/nova-api.yaml
     properties:
@@ -69,6 +72,7 @@ outputs:
           - "\n"
           - - "['Nova_cell_v2'].each |String $val| { noop_resource($val) }"
             - {get_attr: [NovaApiBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [NovaApiBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
index c6e848a..39d1740 100644 (file)
@@ -47,6 +47,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   NovaComputeBase:
     type: ../../puppet/services/nova-compute.yaml
     properties:
@@ -66,7 +69,10 @@ outputs:
       config_settings:
         get_attr: [NovaComputeBase, role_data, config_settings]
       step_config: &step_config
-        get_attr: [NovaComputeBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [NovaComputeBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       puppet_config:
         config_volume: nova_libvirt
         puppet_tags: nova_config,nova_paste_api_ini
index 9f66657..ae73705 100644 (file)
@@ -43,6 +43,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   NovaConductorBase:
     type: ../../puppet/services/nova-conductor.yaml
     properties:
@@ -60,7 +63,10 @@ outputs:
       service_name: {get_attr: [NovaConductorBase, role_data, service_name]}
       config_settings: {get_attr: [NovaConductorBase, role_data, config_settings]}
       step_config: &step_config
-        get_attr: [NovaConductorBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [NovaConductorBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [NovaConductorBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
index 0d3d1ec..715a861 100644 (file)
@@ -42,6 +42,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   NovaConsoleauthPuppetBase:
     type: ../../puppet/services/nova-consoleauth.yaml
     properties:
@@ -59,7 +62,10 @@ outputs:
       service_name: {get_attr: [NovaConsoleauthPuppetBase, role_data, service_name]}
       config_settings: {get_attr: [NovaConsoleauthPuppetBase, role_data, config_settings]}
       step_config: &step_config
-        get_attr: [NovaConsoleauthPuppetBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [NovaConsoleauthPuppetBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [NovaConsoleauthPuppetBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
index 17068b4..543758a 100644 (file)
@@ -42,6 +42,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   NovaIronicBase:
     type: ../../puppet/services/nova-ironic.yaml
     properties:
@@ -59,7 +62,10 @@ outputs:
       service_name: {get_attr: [NovaIronicBase, role_data, service_name]}
       config_settings: {get_attr: [NovaIronicBase, role_data, config_settings]}
       step_config: &step_config
-        get_attr: [NovaIronicBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [NovaIronicBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       puppet_config:
         config_volume: nova
         puppet_tags: nova_config,nova_paste_api_ini
index 973b0eb..2f3851a 100644 (file)
@@ -74,6 +74,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   NovaLibvirtBase:
     type: ../../puppet/services/nova-libvirt.yaml
     properties:
@@ -93,7 +96,10 @@ outputs:
       config_settings:
         get_attr: [NovaLibvirtBase, role_data, config_settings]
       step_config: &step_config
-        get_attr: [NovaLibvirtBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [NovaLibvirtBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       puppet_config:
         config_volume: nova_libvirt
         puppet_tags: libvirtd_config,nova_config,file,exec
index 4c8fafd..d784ace 100644 (file)
@@ -42,6 +42,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   NovaPlacementBase:
     type: ../../puppet/services/nova-placement.yaml
     properties:
@@ -62,7 +65,10 @@ outputs:
           - get_attr: [NovaPlacementBase, role_data, config_settings]
           - apache::default_vhost: false
       step_config: &step_config
-        get_attr: [NovaPlacementBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [NovaPlacementBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [NovaPlacementBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
index 5c1aa30..8d8a635 100644 (file)
@@ -42,6 +42,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   NovaSchedulerBase:
     type: ../../puppet/services/nova-scheduler.yaml
     properties:
@@ -59,7 +62,10 @@ outputs:
       service_name: {get_attr: [NovaSchedulerBase, role_data, service_name]}
       config_settings: {get_attr: [NovaSchedulerBase, role_data, config_settings]}
       step_config: &step_config
-        get_attr: [NovaSchedulerBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [NovaSchedulerBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [NovaSchedulerBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
index 37831ff..c5f651d 100644 (file)
@@ -42,6 +42,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   NovaVncProxyPuppetBase:
     type: ../../puppet/services/nova-vnc-proxy.yaml
     properties:
@@ -59,7 +62,10 @@ outputs:
       service_name: {get_attr: [NovaVncProxyPuppetBase, role_data, service_name]}
       config_settings: {get_attr: [NovaVncProxyPuppetBase, role_data, config_settings]}
       step_config: &step_config
-        get_attr: [NovaVncProxyPuppetBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [NovaVncProxyPuppetBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [NovaVncProxyPuppetBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
index f5b4bae..86730eb 100644 (file)
@@ -50,6 +50,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   OctaviaApiPuppetBase:
     type: ../../puppet/services/octavia-api.yaml
     properties:
@@ -67,7 +70,10 @@ outputs:
       service_name: {get_attr: [OctaviaApiPuppetBase, role_data, service_name]}
       config_settings: {get_attr: [OctaviaApiPuppetBase, role_data, config_settings]}
       step_config: &step_config
-        get_attr: [OctaviaApiPuppetBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [OctaviaApiPuppetBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [OctaviaApiPuppetBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS #
       puppet_config:
index 26ae9bc..c6a80ef 100644 (file)
@@ -52,6 +52,9 @@ parameters:
 
 resources:
 
+  MySQLClient:
+    type: ../../../puppet/services/database/mysql-client.yaml
+
   CinderBackupBase:
     type: ../../../puppet/services/cinder-backup.yaml
     properties:
@@ -82,7 +85,11 @@ outputs:
       puppet_config:
         config_volume: cinder
         puppet_tags: cinder_config,file,concat,file_line
-        step_config: {get_attr: [CinderBackupBase, role_data, step_config]}
+        step_config:
+          list_join:
+            - "\n"
+            - - {get_attr: [CinderBackupBase, role_data, step_config]}
+              - {get_attr: [MySQLClient, role_data, step_config]}
         config_image: {get_param: DockerCinderConfigImage}
       kolla_config:
         /var/lib/kolla/config_files/cinder_backup.json:
index 262e999..3c1b7a7 100644 (file)
@@ -48,6 +48,9 @@ parameters:
 
 resources:
 
+  MySQLClient:
+    type: ../../../puppet/services/database/mysql-client.yaml
+
   CinderBase:
     type: ../../../puppet/services/cinder-volume.yaml
     properties:
@@ -76,7 +79,11 @@ outputs:
       puppet_config:
         config_volume: cinder
         puppet_tags: cinder_config,file,concat,file_line
-        step_config: {get_attr: [CinderBase, role_data, step_config]}
+        step_config:
+          list_join:
+            - "\n"
+            - - {get_attr: [CinderBase, role_data, step_config]}
+              - {get_attr: [MySQLClient, role_data, step_config]}
         config_image: {get_param: DockerCinderConfigImage}
       kolla_config:
         /var/lib/kolla/config_files/cinder_volume.json:
index ad2fa0f..01c1738 100644 (file)
@@ -51,6 +51,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   PankoApiPuppetBase:
     type: ../../puppet/services/panko-api.yaml
     properties:
@@ -71,7 +74,10 @@ outputs:
           - get_attr: [PankoApiPuppetBase, role_data, config_settings]
           - apache::default_vhost: false
       step_config: &step_config
-        get_attr: [PankoApiPuppetBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [PankoApiPuppetBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [PankoApiPuppetBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS #
       puppet_config:
index bff2fda..b0c3736 100644 (file)
@@ -42,6 +42,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   SaharaApiPuppetBase:
     type: ../../puppet/services/sahara-api.yaml
     properties:
@@ -60,7 +63,10 @@ outputs:
           - get_attr: [SaharaApiPuppetBase, role_data, config_settings]
           - sahara::sync_db: false
       step_config: &step_config
-        get_attr: [SaharaApiPuppetBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [SaharaApiPuppetBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [SaharaApiPuppetBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS #
       puppet_config:
index 01d4bb9..b166029 100644 (file)
@@ -42,6 +42,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   SaharaEnginePuppetBase:
     type: ../../puppet/services/sahara-engine.yaml
     properties:
@@ -60,7 +63,10 @@ outputs:
           - get_attr: [SaharaEnginePuppetBase, role_data, config_settings]
           - sahara::sync_db: false
       step_config: &step_config
-        get_attr: [SaharaEnginePuppetBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [SaharaEnginePuppetBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [SaharaEnginePuppetBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS #
       puppet_config:
index cdcb4d2..1b7d78c 100644 (file)
@@ -42,6 +42,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   TackerBase:
     type: ../../puppet/services/tacker.yaml
     properties:
@@ -61,7 +64,10 @@ outputs:
         map_merge:
           - get_attr: [TackerBase, role_data, config_settings]
       step_config: &step_config
-        get_attr: [TackerBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [TackerBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [TackerBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
index df57ad6..072c675 100644 (file)
@@ -53,6 +53,9 @@ resources:
   ContainersCommon:
     type: ./containers-common.yaml
 
+  MySQLClient:
+    type: ../../puppet/services/database/mysql-client.yaml
+
   ZaqarBase:
     type: ../../puppet/services/zaqar.yaml
     properties:
@@ -71,7 +74,10 @@ outputs:
       service_name: {get_attr: [ZaqarBase, role_data, service_name]}
       config_settings: {get_attr: [ZaqarBase, role_data, config_settings]}
       step_config: &step_config
-       get_attr: [ZaqarBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [ZaqarBase, role_data, step_config]}
+            - {get_attr: [MySQLClient, role_data, step_config]}
       service_config_settings: {get_attr: [ZaqarBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config:
index a750461..0972da6 100644 (file)
@@ -32,8 +32,8 @@ resource_registry:
   OS::TripleO::Services::NeutronOvsAgent: ../docker/services/neutron-ovs-agent.yaml
   OS::TripleO::Services::NeutronDhcpAgent: ../docker/services/neutron-dhcp.yaml
   OS::TripleO::Services::NeutronL3Agent: ../docker/services/neutron-l3.yaml
+  OS::TripleO::Services::HAproxy: ../docker/services/haproxy.yaml
   OS::TripleO::Services::MySQL: ../docker/services/database/mysql.yaml
-  OS::TripleO::Services::MySQLClient: ../docker/services/database/mysql-client.yaml
   OS::TripleO::Services::RabbitMQ: ../docker/services/rabbitmq.yaml
   OS::TripleO::Services::MongoDb: ../docker/services/database/mongodb.yaml
   OS::TripleO::Services::Redis: ../docker/services/database/redis.yaml
index d1970d6..834c4f1 100644 (file)
@@ -39,3 +39,4 @@ parameter_defaults:
     - OS::TripleO::Services::MySQLClient
     - OS::TripleO::Services::Docker
     - OS::TripleO::Services::Iscsid
+    - OS::TripleO::Services::OVNController
index c592d57..a9f732b 100644 (file)
@@ -2,14 +2,15 @@
 # extensions, configured via puppet
 resource_registry:
   OS::TripleO::Services::NeutronCorePlugin: OS::TripleO::Services::NeutronCorePluginML2OVN
-  OS::TripleO::Services::ComputeNeutronCorePlugin: ../puppet/services/neutron-compute-plugin-ovn.yaml
+  OS::TripleO::Services::OVNController: ../puppet/services/ovn-controller.yaml
   OS::TripleO::Services::OVNDBs: ../puppet/services/pacemaker/ovn-dbs.yaml
 # Disabling Neutron services that overlap with OVN
-  OS::TripleO::Services::NeutronL3Agent: OS::Heat::None
   OS::TripleO::Services::NeutronOvsAgent: OS::Heat::None
+  OS::TripleO::Services::ComputeNeutronOvsAgent: OS::Heat::None
+  OS::TripleO::Services::NeutronL3Agent: OS::Heat::None
   OS::TripleO::Services::NeutronMetadataAgent: OS::Heat::None
   OS::TripleO::Services::NeutronDhcpAgent: OS::Heat::None
-  OS::TripleO::Services::ComputeNeutronOvsAgent: OS::Heat::None
+  OS::TripleO::Services::ComputeNeutronCorePlugin: OS::Heat::None
 
 parameter_defaults:
   NeutronMechanismDrivers: ovn
index 7483bdb..7322b05 100644 (file)
@@ -1,15 +1,16 @@
 # A Heat environment file which can be used to enable OVN
 # extensions, configured via puppet
 resource_registry:
-  OS::TripleO::Services::NeutronL3Agent: OS::Heat::None
-  OS::TripleO::Services::NeutronOvsAgent: OS::Heat::None
-  OS::TripleO::Services::NeutronMetadataAgent: OS::Heat::None
   OS::TripleO::Services::NeutronCorePlugin: OS::TripleO::Services::NeutronCorePluginML2OVN
-  OS::TripleO::Services::ComputeNeutronCorePlugin: ../puppet/services/neutron-compute-plugin-ovn.yaml
+  OS::TripleO::Services::OVNController: ../puppet/services/ovn-controller.yaml
+  OS::TripleO::Services::OVNDBs: ../puppet/services/ovn-dbs.yaml
 # Disabling Neutron services that overlap with OVN
-  OS::TripleO::Services::NeutronDhcpAgent: OS::Heat::None
+  OS::TripleO::Services::NeutronOvsAgent: OS::Heat::None
   OS::TripleO::Services::ComputeNeutronOvsAgent: OS::Heat::None
-  OS::TripleO::Services::OVNDBs: ../puppet/services/ovn-dbs.yaml
+  OS::TripleO::Services::NeutronDhcpAgent: OS::Heat::None
+  OS::TripleO::Services::NeutronL3Agent: OS::Heat::None
+  OS::TripleO::Services::NeutronMetadataAgent: OS::Heat::None
+  OS::TripleO::Services::ComputeNeutronCorePlugin: OS::Heat::None
 
 parameter_defaults:
   NeutronMechanismDrivers: ovn
index 2f5fcdf..5c7cc27 100644 (file)
@@ -55,6 +55,21 @@ parameters:
       - allowed_pattern: "[0-9,-]*"
     type: string
     default: ""
+  deployment_actions:
+    default: ['CREATE', 'UPDATE']
+    type: comma_delimited_list
+    description: >
+      List of stack actions that will trigger any deployments in this
+      templates. The actions will be an empty list of the server is in the
+      toplevel DeploymentServerBlacklist parameter's value.
+  EnableDpdkDeploymentActions:
+    default: ['CREATE']
+    type: comma_delimited_list
+    description: >
+      Exposing the DPDK deployment action, it may be required to run DPDK
+      config during an upgrade. By default DPDK will be enabled during the
+      CREATE action only. But on cases when it requires for certain migration,
+      it may be required to run it for UPDATE action too.
   # DEPRECATED: the following options are deprecated and are currently maintained
   # for backwards compatibility. They will be removed in the Queens cycle.
   HostCpusList:
@@ -79,13 +94,6 @@ parameters:
     default: ''
     description: Memory allocated for each socket
     type: string
-  deployment_actions:
-    default: ['CREATE', 'UPDATE']
-    type: comma_delimited_list
-    description: >
-      List of stack actions that will trigger any deployments in this
-      templates. The actions will be an empty list of the server is in the
-      toplevel DeploymentServerBlacklist parameter's value.
 
 conditions:
   is_host_config_required: {not: {equals: [{get_param: [RoleParameters, KernelArgs]}, ""]}}
@@ -159,6 +167,40 @@ resources:
         _TUNED_PROFILE_NAME_: {get_param: [RoleParameters, TunedProfileName]}
         _TUNED_CORES_: {get_param: [RoleParameters, IsolCpusList]}
 
+  RebootConfig:
+    type: OS::Heat::SoftwareConfig
+    condition: is_reboot_config_required
+    properties:
+      group: script
+      config: |
+        #!/bin/bash
+        # Stop os-collect-config to avoid any race collecting another
+        # deployment before reboot happens
+        systemctl stop os-collect-config.service
+        /sbin/reboot
+
+  RebootDeployment:
+    type: OS::Heat::SoftwareDeployment
+    depends_on: HostParametersDeployment
+    condition: is_reboot_config_required
+    properties:
+      name: RebootDeployment
+      server:  {get_param: server}
+      config: {get_resource: RebootConfig}
+      actions:
+        if:
+          - deployment_actions_empty
+          - []
+          - ['CREATE'] # Only do this on CREATE
+      signal_transport: NO_SIGNAL
+
+  # With OvS2.7 (which is default with pike), ovs-vswitchd will start dpdk
+  # immediately after setting dpdk-init (behaviour change from ovs2.6).
+  # Starting of DPDK require the huge page configuration to be enabled. So
+  # reboot will happen before DPDK config and we don't need an explicity
+  # restart after dpdk-init as true because of the behavior change.
+  # TODO(skramaja): Dependency is that till the service file workaround, is
+  # maintained, restart of ovs is required.
   EnableDpdkConfig:
     type: OS::Heat::SoftwareConfig
     condition: is_dpdk_config_required
@@ -194,6 +236,8 @@ resources:
               sed -i 's/start_daemon \"\$OVS_VSWITCHD_PRIORITY\"/umask 0002 \&\& start_daemon \"$OVS_VSWITCHD_PRIORITY\"/' $ovs_ctl_path
             fi
 
+            systemctl daemon-reload
+            systemctl restart openvswitch
 
             # DO NOT use --detailed-exitcodes
             puppet apply --logdest console \
@@ -215,6 +259,7 @@ resources:
   EnableDpdkDeployment:
     type: OS::Heat::SoftwareDeployment
     condition: is_dpdk_config_required
+    depends_on: RebootDeployment
     properties:
       name: EnableDpdkDeployment
       server:  {get_param: server}
@@ -223,34 +268,7 @@ resources:
         if:
           - deployment_actions_empty
           - []
-          - ['CREATE'] # Only do this on CREATE
-
-  RebootConfig:
-    type: OS::Heat::SoftwareConfig
-    condition: is_reboot_config_required
-    properties:
-      group: script
-      config: |
-        #!/bin/bash
-        # Stop os-collect-config to avoid any race collecting another
-        # deployment before reboot happens
-        systemctl stop os-collect-config.service
-        /sbin/reboot
-
-  RebootDeployment:
-    type: OS::Heat::SoftwareDeployment
-    depends_on: HostParametersDeployment
-    condition: is_reboot_config_required
-    properties:
-      name: RebootDeployment
-      server:  {get_param: server}
-      config: {get_resource: RebootConfig}
-      actions:
-        if:
-          - deployment_actions_empty
-          - []
-          - ['CREATE'] # Only do this on CREATE
-      signal_transport: NO_SIGNAL
+          - {get_param: EnableDpdkDeploymentActions}
 
 outputs:
   result:
index 1114897..af49d49 100644 (file)
@@ -51,6 +51,10 @@ if [[ -n \$NOVA_COMPUTE ]]; then
     log_debug "Restarting openstack ceilometer agent compute"
     systemctl restart openstack-ceilometer-compute
     yum install -y openstack-nova-migration
+    # https://bugs.launchpad.net/tripleo/+bug/1707926 stop&disable libvirtd
+    log_debug "Stop and disable libvirtd service for upgrade to containers"
+    systemctl stop libvirtd
+    systemctl disable libvirtd
 fi
 
 # Apply puppet manifest to converge just right after the ${ROLE} upgrade
index 2dcc7f0..0d3b875 100644 (file)
@@ -156,6 +156,7 @@ resource_registry:
   OS::TripleO::Services::NeutronCorePluginNuage: puppet/services/neutron-plugin-nuage.yaml
   OS::TripleO::Services::NeutronCorePluginNSX: puppet/services/neutron-plugin-nsx.yaml
   OS::TripleO::Services::OVNDBs: OS::Heat::None
+  OS::TripleO::Services::OVNController: OS::Heat::None
 
   OS::TripleO::Services::NeutronCorePluginMidonet: puppet/services/neutron-midonet.yaml
   OS::TripleO::Services::NeutronOvsAgent: puppet/services/neutron-ovs-agent.yaml
similarity index 73%
rename from puppet/services/neutron-compute-plugin-ovn.yaml
rename to puppet/services/ovn-controller.yaml
index dfd87ed..fbc5559 100644 (file)
@@ -1,7 +1,7 @@
 heat_template_version: pike
 
 description: >
-  OpenStack Neutron Compute OVN agent
+  OpenStack OVN Controller agent
 
 parameters:
   EndpointMap:
@@ -52,16 +52,16 @@ parameters:
 
 outputs:
   role_data:
-    description: Role data for the Neutron Compute OVN agent
+    description: Role data for the OVN Controller agent
     value:
-      service_name: neutron_compute_plugin_ovn
+      service_name: ovn_controller
       config_settings:
         ovn::southbound::port: {get_param: OVNSouthboundServerPort}
         ovn::controller::ovn_encap_type: {get_param: OVNTunnelEncapType}
         ovn::controller::ovn_encap_ip: {get_param: [ServiceNetMap, NeutronApiNetwork]}
         ovn::controller::ovn_bridge_mappings: {get_param: NeutronBridgeMappings}
         nova::compute::force_config_drive: true
-        tripleo.neutron_compute_plugin_ovn.firewall_rules:
+        tripleo.ovn_controller.firewall_rules:
           '118 neutron vxlan networks':
                 proto: 'udp'
                 dport: 4789
@@ -70,3 +70,17 @@ outputs:
             dport: 6081
       step_config: |
         include ::tripleo::profile::base::neutron::agents::ovn
+      upgrade_tasks:
+        - name: Check if ovn_controller is deployed
+          command: systemctl is-enabled ovn-controller
+          tags: common
+          ignore_errors: True
+          register: ovn_controller_enabled
+        - name: "PreUpgrade step0,validation: Check service ovn-controller is running"
+          shell: /usr/bin/systemctl show 'ovn-controller' --property ActiveState | grep '\bactive\b'
+          when: ovn_controller_enabled.rc == 0
+          tags: step0,validation
+        - name: Stop ovn-controller service
+          tags: step1
+          when: ovn_controller_enabled.rc == 0
+          service: name=ovn-controller state=stopped
index f6f3e3c..2b98008 100644 (file)
@@ -57,3 +57,17 @@ outputs:
                 - {get_param: OVNSouthboundServerPort}
       step_config: |
         include ::tripleo::profile::base::neutron::ovn_northd
+      upgrade_tasks:
+        - name: Check if ovn_northd is deployed
+          command: systemctl is-enabled ovn-northd
+          tags: common
+          ignore_errors: True
+          register: ovn_northd_enabled
+        - name: "PreUpgrade step0,validation: Check service ovn-northd is running"
+          shell: /usr/bin/systemctl show 'ovn-northd' --property ActiveState | grep '\bactive\b'
+          when: ovn_northd_enabled.rc == 0
+          tags: step0,validation
+        - name: Stop ovn-northd service
+          tags: step1
+          when: ovn_northd_enabled.rc == 0
+          service: name=ovn-northd state=stopped
diff --git a/releasenotes/notes/ovs-2-7-support-for-dpdk-fe665cf9c6b0a750.yaml b/releasenotes/notes/ovs-2-7-support-for-dpdk-fe665cf9c6b0a750.yaml
new file mode 100644 (file)
index 0000000..23f482a
--- /dev/null
@@ -0,0 +1,5 @@
+---
+features:
+  - Added support for DPDK with OvS2.7, which requires huge page
+    configuration (with reboot) to be available before enabling DPDK.
+
index ec9e369..56daa86 100644 (file)
@@ -45,3 +45,4 @@
     - OS::TripleO::Services::TripleoPackages
     - OS::TripleO::Services::Tuned
     - OS::TripleO::Services::Vpp
+    - OS::TripleO::Services::OVNController
index a1342dc..0e8a90b 100644 (file)
@@ -45,3 +45,4 @@
     - OS::TripleO::Services::TripleoPackages
     - OS::TripleO::Services::Tuned
     - OS::TripleO::Services::Vpp
+    - OS::TripleO::Services::OVNController
index c97f7a7..d702a63 100644 (file)
     - OS::TripleO::Services::OpenDaylightApi
     - OS::TripleO::Services::OpenDaylightOvs
     - OS::TripleO::Services::OVNDBs
+    - OS::TripleO::Services::OVNController
     - OS::TripleO::Services::Pacemaker
     - OS::TripleO::Services::PankoApi
     - OS::TripleO::Services::RabbitMQ
index 398736a..10d76dd 100644 (file)
@@ -86,6 +86,7 @@
     - OS::TripleO::Services::OpenDaylightApi
     - OS::TripleO::Services::OpenDaylightOvs
     - OS::TripleO::Services::OVNDBs
+    - OS::TripleO::Services::OVNController
     - OS::TripleO::Services::Pacemaker
     - OS::TripleO::Services::PankoApi
     - OS::TripleO::Services::Redis
index 5918718..0d6c803 100644 (file)
     - OS::TripleO::Services::OpenDaylightApi
     - OS::TripleO::Services::OpenDaylightOvs
     - OS::TripleO::Services::OVNDBs
+    - OS::TripleO::Services::OVNController
     - OS::TripleO::Services::Pacemaker
     - OS::TripleO::Services::PankoApi
     - OS::TripleO::Services::RabbitMQ
     - OS::TripleO::Services::TripleoPackages
     - OS::TripleO::Services::Tuned
     - OS::TripleO::Services::Vpp
+    - OS::TripleO::Services::OVNController
 ###############################################################################
 # Role: BlockStorage                                                          #
 ###############################################################################
index 374cd6e..3a2691d 100755 (executable)
@@ -207,6 +207,22 @@ def validate_hci_computehci_role(hci_role_filename, hci_role_tpl):
     return 0
 
 
+def search(item, check_item, check_key):
+    if check_item(item):
+        return True
+    elif isinstance(item, list):
+        for i in item:
+            if search(i, check_item, check_key):
+                return True
+    elif isinstance(item, dict):
+        for k in item.keys():
+            if check_key(k, item[k]):
+                return True
+            elif search(item[k], check_item, check_key):
+                return True
+    return False
+
+
 def validate_mysql_connection(settings):
     no_op = lambda *args: False
     error_status = [0]
@@ -228,25 +244,69 @@ def validate_mysql_connection(settings):
                 error_status[0] = 1
         return False
 
-    def search(item, check_item, check_key):
-        if check_item(item):
-            return True
-        elif isinstance(item, list):
-            for i in item:
-                if search(i, check_item, check_key):
-                    return True
-        elif isinstance(item, dict):
-            for k in item.keys():
-                if check_key(k, item[k]):
-                    return True
-                elif search(item[k], check_item, check_key):
-                    return True
-        return False
-
     search(settings, no_op, validate_mysql_uri)
     return error_status[0]
 
 
+def validate_docker_service_mysql_usage(filename, tpl):
+    no_op = lambda *args: False
+    included_res = []
+
+    def match_included_res(item):
+        is_config_setting = isinstance(item, list) and len(item) > 1 and \
+            item[1:] == ['role_data', 'config_settings']
+        if is_config_setting:
+            included_res.append(item[0])
+        return is_config_setting
+
+    def match_use_mysql_protocol(items):
+        return items == ['EndpointMap', 'MysqlInternal', 'protocol']
+
+    all_content = []
+
+    def read_all(incfile, inctpl):
+        # search for included content
+        content = inctpl['outputs']['role_data']['value'].get('config_settings',{})
+        all_content.append(content)
+        included_res[:] = []
+        if search(content, match_included_res, no_op):
+            files = [inctpl['resources'][x]['type'] for x in included_res]
+            # parse included content
+            for r, f in zip(included_res, files):
+                # disregard class names, only consider file names
+                if 'OS::' in f:
+                    continue
+                newfile = os.path.normpath(os.path.dirname(incfile)+'/'+f)
+                newtmp = yaml.load(open(newfile).read())
+                read_all(newfile, newtmp)
+
+    read_all(filename, tpl)
+    if search(all_content, match_use_mysql_protocol, no_op):
+        # ensure this service includes the mysqlclient service
+        resources = tpl['resources']
+        mysqlclient = [x for x in resources
+                       if resources[x]['type'].endswith('mysql-client.yaml')]
+        if len(mysqlclient) == 0:
+            print("ERROR: containerized service %s uses mysql but "
+                  "resource mysql-client.yaml is not used"
+                  % filename)
+            return 1
+
+        # and that mysql::client puppet module is included in puppet-config
+        match_mysqlclient = \
+            lambda x: x == [mysqlclient[0], 'role_data', 'step_config']
+        role_data = tpl['outputs']['role_data']
+        puppet_config = role_data['value']['puppet_config']['step_config']
+        if not search(puppet_config, match_mysqlclient, no_op):
+            print("ERROR: containerized service %s uses mysql but "
+                  "puppet_config section does not include "
+                  "::tripleo::profile::base::database::mysql::client"
+                  % filename)
+            return 1
+
+    return 0
+
+
 def validate_docker_service(filename, tpl):
     if 'outputs' in tpl and 'role_data' in tpl['outputs']:
         if 'value' not in tpl['outputs']['role_data']:
@@ -275,6 +335,10 @@ def validate_docker_service(filename, tpl):
                     return 1
 
         if 'puppet_config' in role_data:
+            if validate_docker_service_mysql_usage(filename, tpl):
+                print('ERROR: could not validate use of mysql service for %s.'
+                      % filename)
+                return 1
             puppet_config = role_data['puppet_config']
             for key in puppet_config:
                 if key in REQUIRED_DOCKER_PUPPET_CONFIG_SECTIONS: