91e7a548cb
Simplify the config of the containerized services by bind mounting in the configurations instead of specifying them all in kolla config. This is change is useful to limit the side effects of generating the config files and running the container is two separate steps as config directories are now bind-mounted inside the container instead of having files being copied to the container. We've seen examples of Apache's mod_ssl configuration file present on the container preventing it to start when puppet configured apache not to load the ssl module (in case TLS is disabled). Co-Authored-By: Ian Main <imain@redhat.com> Change-Id: I4ec5dd8b360faea71a044894a61790997f54d48a
89 lines
2.9 KiB
YAML
89 lines
2.9 KiB
YAML
heat_template_version: ocata
|
|
|
|
description: >
|
|
OpenStack containerized Nova Compute service
|
|
|
|
parameters:
|
|
DockerNamespace:
|
|
description: namespace
|
|
default: 'tripleoupstream'
|
|
type: string
|
|
DockerNovaComputeImage:
|
|
description: image
|
|
default: 'centos-binary-nova-compute:latest'
|
|
type: string
|
|
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
|
|
EndpointMap:
|
|
default: {}
|
|
description: Mapping of service endpoint -> protocol. Typically set
|
|
via parameter_defaults in the resource registry.
|
|
type: json
|
|
|
|
resources:
|
|
|
|
|
|
NovaComputeBase:
|
|
type: ../../puppet/services/nova-compute.yaml
|
|
properties:
|
|
EndpointMap: {get_param: EndpointMap}
|
|
ServiceNetMap: {get_param: ServiceNetMap}
|
|
DefaultPasswords: {get_param: DefaultPasswords}
|
|
|
|
outputs:
|
|
role_data:
|
|
description: Role data for the Nova Compute service.
|
|
value:
|
|
service_name: {get_attr: [NovaComputeBase, role_data, service_name]}
|
|
config_settings: {get_attr: [NovaComputeBase, role_data, config_settings]}
|
|
step_config: &step_config
|
|
get_attr: [NovaComputeBase, role_data, step_config]
|
|
puppet_config:
|
|
config_volume: nova_libvirt
|
|
puppet_tags: nova_config,nova_paste_api_ini
|
|
step_config: *step_config
|
|
config_image: &nova_compute_image
|
|
list_join:
|
|
- '/'
|
|
- [ {get_param: DockerNamespace}, {get_param: DockerNovaComputeImage} ]
|
|
kolla_config:
|
|
/var/lib/kolla/config_files/nova-compute.json:
|
|
command: /usr/bin/nova-compute --config-file /etc/nova/nova.conf --config-file /etc/nova/rootwrap.conf
|
|
docker_config:
|
|
# FIXME: run discover hosts here
|
|
step_4:
|
|
novacompute:
|
|
image: *nova_compute_image
|
|
net: host
|
|
privileged: true
|
|
user: root
|
|
restart: always
|
|
volumes:
|
|
- /var/lib/kolla/config_files/nova-compute.json:/var/lib/kolla/config_files/config.json:ro
|
|
- /var/lib/config-data/nova_libvirt/etc/nova/:/etc/nova/:ro
|
|
- /dev:/dev
|
|
- /etc/iscsi:/etc/iscsi
|
|
- /etc/localtime:/etc/localtime:ro
|
|
- /lib/modules:/lib/modules:ro
|
|
- /run:/run
|
|
- /var/lib/nova:/var/lib/nova
|
|
- /var/lib/libvirt:/var/lib/libvirt
|
|
environment:
|
|
- KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
|
|
host_prep_tasks:
|
|
- name: create /var/lib/libvirt
|
|
file:
|
|
path: /var/lib/libvirt
|
|
state: directory
|
|
upgrade_tasks:
|
|
- name: Stop and disable nova-compute service
|
|
tags: step2
|
|
service: name=nova-compute state=stopped enabled=no
|