Introduce role-specific NodeUserData, use for docker

Currently when the docker environments are invoked, every node has the
boot script run which replaces os-collect-config with the heat-agents
container. This should only be happening on Compute nodes currently,
and each role will be converted to heat-agents one at a time.

This change implements a role-specific NodeUserData resource and uses
that mechanism to run docker/firstboot/install_docker_agents.yaml only
on Compute nodes.

Change-Id: Id81811dbcaf0e661c3980aa25f3ca80db5ef0954
This commit is contained in:
Steve Baker 2016-12-08 14:44:35 +13:00 committed by Flavio Percoco
parent e6bc520581
commit d5cd18d3c5
8 changed files with 47 additions and 1 deletions

View File

@ -1,6 +1,6 @@
resource_registry:
# Docker container with heat agents for containerized compute node.
OS::TripleO::NodeUserData: ../docker/firstboot/install_docker_agents.yaml
OS::TripleO::Compute::NodeUserData: ../docker/firstboot/install_docker_agents.yaml
OS::TripleO::Services::NovaLibvirt: ../docker/services/nova-libvirt.yaml
OS::TripleO::Services::ComputeNeutronOvsAgent: ../docker/services/neutron-ovs-agent.yaml
OS::TripleO::Services::NovaCompute: ../docker/services/nova-compute.yaml

View File

@ -49,10 +49,14 @@ resource_registry:
# Hooks for operator extra config
# NodeUserData == Cloud-init additional user-data, e.g cloud-config
# role::NodeUserData == Role specific cloud-init additional user-data
# ControllerExtraConfigPre == Controller configuration pre service deployment
# NodeExtraConfig == All nodes configuration pre service deployment
# NodeExtraConfigPost == All nodes configuration post service deployment
OS::TripleO::NodeUserData: firstboot/userdata_default.yaml
{% for role in roles %}
OS::TripleO::{{role.name}}::NodeUserData: firstboot/userdata_default.yaml
{% endfor %}
OS::TripleO::NodeTLSCAData: OS::Heat::None
OS::TripleO::NodeTLSData: OS::Heat::None
OS::TripleO::NodeExtraConfig: puppet/extraconfig/pre_deploy/default.yaml

View File

@ -142,6 +142,8 @@ resources:
type: multipart
- config: {get_resource: NodeUserData}
type: multipart
- config: {get_resource: RoleUserData}
type: multipart
# Creates the "heat-admin" user if configured via the environment
# Should return a OS::Heat::MultipartMime reference via OS::stack_id
@ -153,6 +155,11 @@ resources:
NodeUserData:
type: OS::TripleO::NodeUserData
# For optional operator role-specific userdata
# Should return a OS::Heat::MultipartMime reference via OS::stack_id
RoleUserData:
type: OS::TripleO::BlockStorage::NodeUserData
ExternalPort:
type: OS::TripleO::BlockStorage::Ports::ExternalPort
properties:

View File

@ -148,6 +148,8 @@ resources:
type: multipart
- config: {get_resource: NodeUserData}
type: multipart
- config: {get_resource: RoleUserData}
type: multipart
# Creates the "heat-admin" user if configured via the environment
# Should return a OS::Heat::MultipartMime reference via OS::stack_id
@ -159,6 +161,11 @@ resources:
NodeUserData:
type: OS::TripleO::NodeUserData
# For optional operator role-specific userdata
# Should return a OS::Heat::MultipartMime reference via OS::stack_id
RoleUserData:
type: OS::TripleO::CephStorage::NodeUserData
ExternalPort:
type: OS::TripleO::CephStorage::Ports::ExternalPort
properties:

View File

@ -162,6 +162,8 @@ resources:
type: multipart
- config: {get_resource: NodeUserData}
type: multipart
- config: {get_resource: RoleUserData}
type: multipart
# Creates the "heat-admin" user if configured via the environment
# Should return a OS::Heat::MultipartMime reference via OS::stack_id
@ -173,6 +175,11 @@ resources:
NodeUserData:
type: OS::TripleO::NodeUserData
# For optional operator role-specific userdata
# Should return a OS::Heat::MultipartMime reference via OS::stack_id
RoleUserData:
type: OS::TripleO::Compute::NodeUserData
ExternalPort:
type: OS::TripleO::Compute::Ports::ExternalPort
properties:

View File

@ -181,6 +181,8 @@ resources:
type: multipart
- config: {get_resource: NodeUserData}
type: multipart
- config: {get_resource: RoleUserData}
type: multipart
# Creates the "heat-admin" user if configured via the environment
# Should return a OS::Heat::MultipartMime reference via OS::stack_id
@ -192,6 +194,11 @@ resources:
NodeUserData:
type: OS::TripleO::NodeUserData
# For optional operator role-specific userdata
# Should return a OS::Heat::MultipartMime reference via OS::stack_id
RoleUserData:
type: OS::TripleO::Controller::NodeUserData
ExternalPort:
type: OS::TripleO::Controller::Ports::ExternalPort
properties:

View File

@ -142,6 +142,8 @@ resources:
type: multipart
- config: {get_resource: NodeUserData}
type: multipart
- config: {get_resource: RoleUserData}
type: multipart
# Creates the "heat-admin" user if configured via the environment
# Should return a OS::Heat::MultipartMime reference via OS::stack_id
@ -153,6 +155,11 @@ resources:
NodeUserData:
type: OS::TripleO::NodeUserData
# For optional operator role-specific userdata
# Should return a OS::Heat::MultipartMime reference via OS::stack_id
RoleUserData:
type: OS::TripleO::ObjectStorage::NodeUserData
ExternalPort:
type: OS::TripleO::SwiftStorage::Ports::ExternalPort
properties:

View File

@ -160,6 +160,8 @@ resources:
type: multipart
- config: {get_resource: NodeUserData}
type: multipart
- config: {get_resource: RoleUserData}
type: multipart
# Creates the "heat-admin" user if configured via the environment
# Should return a OS::Heat::MultipartMime reference via OS::stack_id
@ -171,6 +173,11 @@ resources:
NodeUserData:
type: OS::TripleO::NodeUserData
# For optional operator role-specific userdata
# Should return a OS::Heat::MultipartMime reference via OS::stack_id
RoleUserData:
type: OS::TripleO::{{role}}::NodeUserData
ExternalPort:
type: OS::TripleO::{{role}}::Ports::ExternalPort
properties: