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
105 lines
4.1 KiB
YAML
105 lines
4.1 KiB
YAML
heat_template_version: ocata
|
|
|
|
description: >
|
|
OpenStack containerized Ironic PXE service
|
|
|
|
parameters:
|
|
DockerNamespace:
|
|
description: namespace
|
|
default: 'tripleoupstream'
|
|
type: string
|
|
DockerIronicPxeImage:
|
|
description: image
|
|
default: 'centos-binary-ironic-pxe:latest'
|
|
type: string
|
|
DockerIronicConfigImage:
|
|
description: image
|
|
default: 'centos-binary-ironic-pxe:latest'
|
|
type: string
|
|
EndpointMap:
|
|
default: {}
|
|
description: Mapping of service endpoint -> protocol. Typically set
|
|
via parameter_defaults in the resource registry.
|
|
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
|
|
|
|
outputs:
|
|
role_data:
|
|
description: Role data for the Ironic PXE role.
|
|
value:
|
|
service_name: ironic_pxe
|
|
config_settings: {}
|
|
step_config: &step_config ''
|
|
service_config_settings: {}
|
|
# BEGIN DOCKER SETTINGS
|
|
puppet_config:
|
|
config_volume: ironic
|
|
puppet_tags: ironic_config
|
|
step_config: *step_config
|
|
config_image:
|
|
list_join:
|
|
- '/'
|
|
- [ {get_param: DockerNamespace}, {get_param: DockerIronicConfigImage} ]
|
|
kolla_config:
|
|
/var/lib/kolla/config_files/ironic_pxe_http.json:
|
|
command: /usr/sbin/httpd -DFOREGROUND
|
|
/var/lib/kolla/config_files/ironic_pxe_tftp.json:
|
|
command: /usr/sbin/in.tftpd --foreground --user root --address 0.0.0.0:69 --map-file /var/lib/ironic/tftpboot/map-file /var/lib/ironic/tftpboot
|
|
docker_config:
|
|
step_4:
|
|
ironic_pxe_tftp:
|
|
start_order: 90
|
|
image: &ironic_pxe_image
|
|
list_join:
|
|
- '/'
|
|
- [ {get_param: DockerNamespace}, {get_param: DockerIronicPxeImage} ]
|
|
net: host
|
|
privileged: false
|
|
restart: always
|
|
volumes:
|
|
- /var/lib/kolla/config_files/ironic_pxe_tftp.json:/var/lib/kolla/config_files/config.json:ro
|
|
- /var/lib/config-data/ironic/etc/ironic/:/etc/ironic/:ro
|
|
# TODO(mandre) check how docker like mounting in a bind-mounted tree
|
|
# This directory may contain migrated data from BM
|
|
- /var/lib/ironic:/var/lib/ironic/
|
|
# These files were generated by puppet inside the config container
|
|
# TODO(mandre) check the mount permission (ro/rw)
|
|
- /var/lib/config-data/ironic/var/lib/ironic/tftpboot/chain.c32:/var/lib/ironic/tftpboot/chain.c32
|
|
- /var/lib/config-data/ironic/var/lib/ironic/tftpboot/pxelinux.0:/var/lib/ironic/tftpboot/pxelinux.0
|
|
- /var/lib/config-data/ironic/var/lib/ironic/tftpboot/ipxe.efi:/var/lib/ironic/tftpboot/ipxe.efi
|
|
- /var/lib/config-data/ironic/var/lib/ironic/tftpboot/undionly.kpxe:/var/lib/ironic/tftpboot/undionly.kpxe
|
|
- /var/lib/config-data/ironic/var/lib/ironic/tftpboot/map-file:/var/lib/ironic/tftpboot/map-file
|
|
- /etc/hosts:/etc/hosts:ro
|
|
- /etc/localtime:/etc/localtime:ro
|
|
- /dev/log:/dev/log
|
|
environment:
|
|
- KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
|
|
ironic_pxe_http:
|
|
start_order: 91
|
|
image: *ironic_pxe_image
|
|
net: host
|
|
privileged: false
|
|
restart: always
|
|
volumes:
|
|
- /var/lib/kolla/config_files/ironic_pxe_http.json:/var/lib/kolla/config_files/config.json:ro
|
|
- /var/lib/config-data/ironic/etc/ironic/:/etc/ironic/:ro
|
|
- /var/lib/config-data/ironic/etc/httpd/:/etc/httpd/:ro
|
|
- /etc/hosts:/etc/hosts:ro
|
|
- /etc/localtime:/etc/localtime:ro
|
|
- /var/lib/ironic:/var/lib/ironic/
|
|
environment:
|
|
- KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
|
|
host_prep_tasks:
|
|
- name: create ironic persistent data directory
|
|
file:
|
|
path: /var/lib/ironic
|
|
state: directory
|