Merge "Introduce common resources for docker templates"
[apex-tripleo-heat-templates.git] / docker / services / nova-libvirt.yaml
index e25b201..ba63760 100644 (file)
@@ -14,7 +14,7 @@ parameters:
     type: string
   # we configure libvirt via the nova-compute container due to coupling
   # in the puppet modules
-  DockerNovaComputeImage:
+  DockerNovaConfigImage:
     description: image
     default: 'centos-binary-nova-compute:latest'
     type: string
@@ -35,6 +35,9 @@ parameters:
 
 resources:
 
+  ContainersCommon:
+    type: ./containers-common.yaml
+
   NovaLibvirtBase:
     type: ../../puppet/services/nova-libvirt.yaml
     properties:
@@ -57,15 +60,10 @@ outputs:
         config_image:
           list_join:
           - '/'
-          - [ {get_param: DockerNamespace}, {get_param: DockerNovaComputeImage} ]
+          - [ {get_param: DockerNamespace}, {get_param: DockerNovaConfigImage} ]
       kolla_config:
         /var/lib/kolla/config_files/nova-libvirt.json:
-           command: /usr/sbin/libvirtd --config /etc/libvirt/libvirtd.conf
-           config_files:
-           - dest: /etc/libvirt/libvirtd.conf
-             owner: root
-             perm: '0644'
-             source: /var/lib/kolla/config_files/src/etc/libvirt/libvirtd.conf
+          command: /usr/sbin/libvirtd --config /etc/libvirt/libvirtd.conf
       docker_config:
         step_3:
           nova_libvirt:
@@ -78,17 +76,33 @@ outputs:
             privileged: true
             restart: always
             volumes:
-              - /var/lib/kolla/config_files/nova-libvirt.json:/var/lib/kolla/config_files/config.json:ro
-              - /var/lib/config-data/nova_libvirt:/var/lib/kolla/config_files/src:ro
-              - /dev:/dev
-              - /etc/localtime:/etc/localtime:ro
-              - /lib/modules:/lib/modules:ro
-              - /run:/run
-              - /sys/fs/cgroup:/sys/fs/cgroup
-              - /var/lib/nova:/var/lib/nova
-              # Needed to use host's virtlogd
-              - /var/run/libvirt:/var/run/libvirt
-              - libvirtd:/var/lib/libvirt
-              - nova_libvirt_qemu:/etc/libvirt/qemu
+              yaql:
+                expression: $.data.common.concat($.data.service)
+                data:
+                  common: {get_attr: [ContainersCommon, volumes]}
+                  service:
+                    - /var/lib/kolla/config_files/nova-libvirt.json:/var/lib/kolla/config_files/config.json:ro
+                    - /var/lib/config-data/nova_libvirt/etc/libvirt/:/etc/libvirt/:ro
+                    - /lib/modules:/lib/modules:ro
+                    - /dev:/dev
+                    - /run:/run
+                    - /sys/fs/cgroup:/sys/fs/cgroup
+                    - /var/lib/nova:/var/lib/nova
+                    # Needed to use host's virtlogd
+                    - /var/run/libvirt:/var/run/libvirt
+                    - /var/lib/libvirt:/var/lib/libvirt
+                    - /etc/libvirt/qemu:/etc/libvirt/qemu
             environment:
               - KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
+      host_prep_tasks:
+        - name: create libvirt persistent data directories
+          file:
+            path: "{{ item }}"
+            state: directory
+          with_items:
+            - /etc/libvirt/qemu
+            - /var/lib/libvirt
+      upgrade_tasks:
+        - name: Stop and disable libvirtd service
+          tags: step2
+          service: name=libvirtd state=stopped enabled=no