Merge "Use a single configuration file for specifying docker containers."
[apex-tripleo-heat-templates.git] / docker / services / ironic-pxe.yaml
1 heat_template_version: pike
2
3 description: >
4   OpenStack containerized Ironic PXE service
5
6 parameters:
7   DockerIronicPxeImage:
8     description: image
9     type: string
10   DockerIronicConfigImage:
11     description: The container image to use for the ironic config_volume
12     type: string
13   EndpointMap:
14     default: {}
15     description: Mapping of service endpoint -> protocol. Typically set
16                  via parameter_defaults in the resource registry.
17     type: json
18   ServiceData:
19     default: {}
20     description: Dictionary packing service data
21     type: json
22   ServiceNetMap:
23     default: {}
24     description: Mapping of service_name -> network name. Typically set
25                  via parameter_defaults in the resource registry.  This
26                  mapping overrides those in ServiceNetMapDefaults.
27     type: json
28   DefaultPasswords:
29     default: {}
30     type: json
31   RoleName:
32     default: ''
33     description: Role name on which the service is applied
34     type: string
35   RoleParameters:
36     default: {}
37     description: Parameters specific to the role
38     type: json
39
40 resources:
41
42   ContainersCommon:
43     type: ./containers-common.yaml
44
45 outputs:
46   role_data:
47     description: Role data for the Ironic PXE role.
48     value:
49       service_name: ironic_pxe
50       config_settings: {}
51       step_config: &step_config ''
52       service_config_settings: {}
53       # BEGIN DOCKER SETTINGS
54       puppet_config:
55         config_volume: ironic
56         puppet_tags: ironic_config
57         step_config: *step_config
58         config_image: {get_param: DockerIronicConfigImage}
59       kolla_config:
60         /var/lib/kolla/config_files/ironic_pxe_http.json:
61           command: /usr/sbin/httpd -DFOREGROUND
62           config_files:
63             - source: "/var/lib/kolla/config_files/src/*"
64               dest: "/"
65               merge: true
66               preserve_properties: true
67         /var/lib/kolla/config_files/ironic_pxe_tftp.json:
68           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
69           config_files:
70             - source: "/var/lib/kolla/config_files/src/*"
71               dest: "/"
72               merge: true
73               preserve_properties: true
74           permissions:
75             - path: /var/log/ironic
76               owner: ironic:ironic
77               recurse: true
78       docker_config:
79         step_4:
80           ironic_pxe_tftp:
81             start_order: 90
82             image: &ironic_pxe_image {get_param: DockerIronicPxeImage}
83             net: host
84             privileged: false
85             restart: always
86             volumes:
87               list_concat:
88                 - {get_attr: [ContainersCommon, volumes]}
89                 -
90                   - /var/lib/kolla/config_files/ironic_pxe_tftp.json:/var/lib/kolla/config_files/config.json:ro
91                   - /var/lib/config-data/puppet-generated/ironic/:/var/lib/kolla/config_files/src:ro
92                   - /var/lib/ironic:/var/lib/ironic/
93                   - /dev/log:/dev/log
94                   - /var/log/containers/ironic:/var/log/ironic
95             environment:
96               - KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
97           ironic_pxe_http:
98             start_order: 91
99             image: *ironic_pxe_image
100             net: host
101             privileged: false
102             restart: always
103             volumes:
104               list_concat:
105                 - {get_attr: [ContainersCommon, volumes]}
106                 -
107                   - /var/lib/kolla/config_files/ironic_pxe_http.json:/var/lib/kolla/config_files/config.json:ro
108                   - /var/lib/config-data/puppet-generated/ironic/:/var/lib/kolla/config_files/src:ro
109                   - /var/lib/ironic:/var/lib/ironic/
110                   - /var/log/containers/ironic:/var/log/ironic
111             environment:
112               - KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
113       host_prep_tasks:
114         - name: create persistent directories
115           file:
116             path: "{{ item }}"
117             state: directory
118           with_items:
119             - /var/lib/ironic
120             - /var/log/containers/ironic