1 heat_template_version: pike
4 OpenStack Libvirt Service
7 DockerNovaLibvirtImage:
10 # we configure libvirt via the nova-compute container due to coupling
11 # in the puppet modules
12 DockerNovaLibvirtConfigImage:
13 description: The container image to use for the nova_libvirt config_volume
17 description: Set to true to enable package installation at deploy time
21 description: Dictionary packing service data
25 description: Mapping of service_name -> network name. Typically set
26 via parameter_defaults in the resource registry. This
27 mapping overrides those in ServiceNetMapDefaults.
34 description: Role name on which the service is applied
38 description: Parameters specific to the role
42 description: Mapping of service endpoint -> protocol. Typically set
43 via parameter_defaults in the resource registry.
48 UseTLSTransportForLiveMigration:
51 description: If set to true and if EnableInternalTLS is enabled, it will
52 set the libvirt URI's transport to tls and configure the
53 relevant keys for libvirt.
57 use_tls_for_live_migration:
60 - {get_param: EnableInternalTLS}
63 - {get_param: UseTLSTransportForLiveMigration}
69 type: ./containers-common.yaml
72 type: ../../puppet/services/nova-libvirt.yaml
74 EndpointMap: {get_param: EndpointMap}
75 ServiceData: {get_param: ServiceData}
76 ServiceNetMap: {get_param: ServiceNetMap}
77 DefaultPasswords: {get_param: DefaultPasswords}
78 RoleName: {get_param: RoleName}
79 RoleParameters: {get_param: RoleParameters}
83 description: Role data for the Libvirt service.
85 service_name: {get_attr: [NovaLibvirtBase, role_data, service_name]}
88 - get_attr: [NovaLibvirtBase, role_data, config_settings]
89 # FIXME: we need to disable migration for now as the
90 # hieradata is common for all services, and this means nova
91 # and nova_placement puppet runs also try to configure
92 # libvirt, and they fail. We can remove this override when
93 # we have hieradata separation between containers.
94 - tripleo::profile::base::nova::manage_migration: false
95 step_config: &step_config
96 get_attr: [NovaLibvirtBase, role_data, step_config]
98 config_volume: nova_libvirt
99 puppet_tags: nova_config,file,exec
100 step_config: *step_config
101 config_image: {get_param: DockerNovaLibvirtConfigImage}
103 /var/lib/kolla/config_files/nova_libvirt.json:
106 - use_tls_for_live_migration
107 - /usr/sbin/libvirtd --listen --config /etc/libvirt/libvirtd.conf
108 - /usr/sbin/libvirtd --config /etc/libvirt/libvirtd.conf
110 - source: "/var/lib/kolla/config_files/src/*"
113 preserve_properties: true
115 - path: /var/log/nova
121 image: {get_param: DockerNovaLibvirtImage}
128 - {get_attr: [ContainersCommon, volumes]}
130 - /var/lib/kolla/config_files/nova_libvirt.json:/var/lib/kolla/config_files/config.json:ro
131 - /var/lib/config-data/puppet-generated/nova_libvirt/:/var/lib/kolla/config_files/src:ro
132 - /lib/modules:/lib/modules:ro
135 - /sys/fs/cgroup:/sys/fs/cgroup
136 - /var/lib/nova:/var/lib/nova
137 - /etc/libvirt/secrets:/etc/libvirt/secrets
138 # Needed to use host's virtlogd
139 - /var/run/libvirt:/var/run/libvirt
140 - /var/lib/libvirt:/var/lib/libvirt
141 - /etc/libvirt/qemu:/etc/libvirt/qemu
142 - /var/log/libvirt/qemu:/var/log/libvirt/qemu:ro
143 - /var/log/containers/nova:/var/log/nova
145 - KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
147 - name: create libvirt persistent data directories
152 - /etc/libvirt/secrets
155 - /var/log/containers/nova
156 - name: set enable_package_install fact
158 enable_package_install: {get_param: EnablePackageInstall}
159 # We use virtlogd on host, so when using Deployed Server
160 # feature, we need to ensure libvirt is installed.
161 - name: install libvirt-daemon
165 when: enable_package_install
166 - name: start virtlogd socket
168 name: virtlogd.socket
171 when: enable_package_install
173 - name: Stop and disable libvirtd service
175 service: name=libvirtd state=stopped enabled=no