1 heat_template_version: 2015-04-30
4 OpenStack compute node post deployment for Docker.
11 description: Value which changes if the node configuration may need to be re-applied
14 DockerComputeDataImage:
18 DockerNeutronAgentImage:
20 DockerOpenvswitchImage:
22 DockerOvsVswitchdImage:
24 DockerOpenvswitchDBImage:
30 type: OS::Heat::SoftwareConfig
36 tags: package,file,concat,file_line,nova_config,neutron_config,neutron_agent_ovs,neutron_plugin_ml2
38 - name: tripleo::packages::enable_install
44 get_file: ../puppet/manifests/overcloud_compute.pp
46 ComputePuppetDeployment:
47 type: OS::Heat::SoftwareDeployments
49 servers: {get_param: servers}
50 config: {get_resource: ComputePuppetConfig}
52 update_identifier: {get_param: NodeConfigIdentifiers}
53 tripleo::packages::enable_install: True
56 type: OS::Heat::SoftwareConfig
61 config: {get_file: ./copy-etc.sh}
64 type: OS::Heat::SoftwareDeployments
65 depends_on: ComputePuppetDeployment
67 config: {get_resource: CopyEtcConfig}
68 servers: {get_param: servers}
70 NovaComputeContainersDeploymentOVS:
71 type: OS::Heat::StructuredDeployments
73 config: {get_resource: NovaComputeContainersConfigOVS}
74 servers: {get_param: servers}
76 NovaComputeContainersConfigOVS:
77 type: OS::Heat::StructuredConfig
82 image: {get_param: DockerOvsVswitchdImage}
83 container_name: ovs-vswitchd
89 - /lib/modules:/lib/modules:ro
91 - KOLLA_CONFIG_STRATEGY=CONFIG_EXTERNAL_COPY_ALWAYS
94 image: {get_param: DockerOpenvswitchDBImage}
95 container_name: ovs-db-server
101 - KOLLA_CONFIG_STRATEGY=CONFIG_EXTERNAL_COPY_ALWAYS
103 NovaComputeContainersDeploymentNetconfig:
104 type: OS::Heat::SoftwareDeployments
105 depends_on: NovaComputeContainersDeploymentOVS
107 config: {get_resource: NovaComputeContainersConfigNetconfig}
108 servers: {get_param: servers}
110 # We run os-net-config here because we depend on the ovs containers to be up
111 # and running before we configure the network. This allows explicit timing
112 # of the network configuration.
113 NovaComputeContainersConfigNetconfig:
114 type: OS::Heat::SoftwareConfig
121 /usr/local/bin/run-os-net-config
123 LibvirtContainersDeployment:
124 type: OS::Heat::StructuredDeployments
125 depends_on: [CopyEtcDeployment, ComputePuppetDeployment, NovaComputeContainersDeploymentNetconfig]
127 config: {get_resource: LibvirtContainersConfig}
128 servers: {get_param: servers}
130 LibvirtContainersConfig:
131 type: OS::Heat::StructuredConfig
133 group: docker-compose
136 image: {get_param: DockerComputeDataImage}
137 container_name: computedata
140 image: {get_param: DockerLibvirtImage}
141 container_name: libvirt
148 - /lib/modules:/lib/modules:ro
149 - /var/lib/etc-data/libvirt/libvirtd.conf:/opt/kolla/libvirtd/libvirtd.conf
150 - /var/lib/nova/instances:/var/lib/nova/instances
152 - KOLLA_CONFIG_STRATEGY=CONFIG_EXTERNAL_COPY_ALWAYS
156 NovaComputeContainersDeployment:
157 type: OS::Heat::StructuredDeployments
158 depends_on: [CopyEtcDeployment, ComputePuppetDeployment, NovaComputeContainersDeploymentNetconfig, LibvirtContainersDeployment]
160 config: {get_resource: NovaComputeContainersConfig}
161 servers: {get_param: servers}
163 NovaComputeContainersConfig:
164 type: OS::Heat::StructuredConfig
166 group: docker-compose
169 image: {get_param: DockerOpenvswitchImage}
170 container_name: openvswitch
176 - /lib/modules:/lib/modules:ro
177 - /var/lib/etc-data/neutron/neutron.conf:/etc/kolla/neutron-openvswitch-agent/:ro
178 - /var/lib/etc-data/neutron/plugins/ml2/ml2_conf.ini:/etc/kolla/neutron-openvswitch-agent/:ro
180 - KOLLA_CONFIG_STRATEGY=CONFIG_EXTERNAL_COPY_ALWAYS
183 # FIXME: Kolla now uses a JSON model to run custom commands. We rebuilt a custom container to read in KOLLA_COMMAND_ARGS
185 # FIXME: Here we're subjugating kolla's start scripts because we want our custom run command
187 image: {get_param: DockerOpenvswitchImage}
188 container_name: neutronagent
195 - /lib/modules:/lib/modules:ro
196 - /var/lib/etc-data/neutron/neutron.conf:/etc/neutron/neutron.conf:ro
197 - /var/lib/etc-data/neutron/plugins/ml2/openvswitch_agent.ini:/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini:ro
199 - KOLLA_CONFIG_STRATEGY=CONFIG_EXTERNAL_COPY_ALWAYS
200 # FIXME: Kolla now uses a JSON model to run custom commands. We rebuilt a custom container to read in KOLLA_COMMAND_ARGS
201 - KOLLA_COMMAND_ARGS=--config-file /usr/share/neutron/neutron-dist.conf --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini
206 image: {get_param: DockerComputeImage}
207 container_name: novacompute
213 - /sys/fs/cgroup:/sys/fs/cgroup
214 - /lib/modules:/lib/modules:ro
215 - /var/lib/etc-data/:/etc/:ro
216 - /var/lib/nova/instances:/var/lib/nova/instances
219 # FIXME: this skips the kolla start.sh script and just starts Nova
220 # Ideally we'd have an environment that switched the kolla container
221 # to be externally configured.
222 command: /usr/bin/nova-compute
225 depends_on: NovaComputeContainersDeployment
226 type: OS::TripleO::NodeExtraConfigPost
228 servers: {get_param: servers}