docker: add logging(source & groups)
[apex-tripleo-heat-templates.git] / docker / services / neutron-ovs-agent.yaml
index c40ef8b..246008c 100644 (file)
@@ -1,17 +1,19 @@
-heat_template_version: ocata
+heat_template_version: pike
 
 description: >
   OpenStack Neutron openvswitch service
 
 parameters:
-  DockerNamespace:
-    description: namespace
-    default: 'tripleoupstream'
-    type: string
   DockerOpenvswitchImage:
     description: image
-    default: 'centos-binary-neutron-openvswitch-agent:latest'
     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
@@ -21,6 +23,14 @@ parameters:
   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
@@ -36,8 +46,11 @@ resources:
     type: ../../puppet/services/neutron-ovs-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:
@@ -45,39 +58,82 @@ outputs:
     value:
       service_name: {get_attr: [NeutronOvsAgentBase, role_data, service_name]}
       config_settings: {get_attr: [NeutronOvsAgentBase, role_data, config_settings]}
+      logging_source: {get_attr: [NeutronOvsAgentBase, role_data, logging_source]}
+      logging_groups: {get_attr: [NeutronOvsAgentBase, role_data, logging_groups]}
       step_config: &step_config
         get_attr: [NeutronOvsAgentBase, role_data, step_config]
       puppet_config:
         config_volume: neutron
         puppet_tags: neutron_config,neutron_agent_ovs,neutron_plugin_ml2
         step_config: *step_config
-        config_image: &neutron_ovs_agent_image
-          list_join:
-          - '/'
-          - [ {get_param: DockerNamespace}, {get_param: DockerOpenvswitchImage} ]
+        config_image: {get_param: DockerNeutronConfigImage}
       kolla_config:
-        /var/lib/kolla/config_files/neutron-openvswitch-agent.json:
-           command: /usr/bin/neutron-openvswitch-agent --config-file /usr/share/neutron/neutron-dist.conf --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/openvswitch_agent.ini --config-file /etc/neutron/plugins/ml2/ml2_conf.ini
+        /var/lib/kolla/config_files/neutron_ovs_agent.json:
+          command: /usr/bin/neutron-openvswitch-agent --config-file /usr/share/neutron/neutron-dist.conf --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/openvswitch_agent.ini --config-file /etc/neutron/plugins/ml2/ml2_conf.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_3:
+          neutron_ovs_bridge:
+            detach: false
+            image: {get_param: DockerNeutronConfigImage}
+            net: host
+            pid: host
+            user: root
+            privileged: true
+            command:
+              - puppet
+              - apply
+              - --modulepath
+              - /etc/puppet/modules:/usr/share/openstack-puppet/modules
+              - --tags
+              - file,file_line,concat,augeas,neutron::plugins::ovs::bridge
+              - -v
+              - -e
+              - include neutron::agents::ml2::ovs
+            volumes:
+              list_concat:
+                - {get_attr: [ContainersCommon, volumes]}
+                -
+                  - /var/lib/kolla/config_files/neutron_ovs_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
+                  - /etc/puppet:/etc/puppet:ro
+                  - /usr/share/openstack-puppet/modules/:/usr/share/openstack-puppet/modules/:ro
+                  - /var/run/openvswitch/db.sock:/var/run/openvswitch/db.sock
+            environment:
+              - KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
         step_4:
-          neutronovsagent:
-            image: *neutron_ovs_agent_image
+          neutron_ovs_agent:
+            image: {get_param: DockerOpenvswitchImage}
             net: host
             pid: host
             privileged: true
             restart: always
             volumes:
-              yaql:
-                expression: $.data.common.concat($.data.service)
-                data:
-                  common: {get_attr: [ContainersCommon, volumes]}
-                  service:
-                    - /var/lib/kolla/config_files/neutron-openvswitch-agent.json:/var/lib/kolla/config_files/config.json:ro
-                    - /var/lib/config-data/neutron/etc/neutron/:/etc/neutron/:ro
-                    - /lib/modules:/lib/modules:ro
-                    - /run:/run
+              list_concat:
+                - {get_attr: [ContainersCommon, volumes]}
+                -
+                  - /var/lib/kolla/config_files/neutron_ovs_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
             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_ovs_agent service
           tags: step2