Use OS::Heat::DeployedServer

The new DeployedServer resource in Heat will provide a native resource
for Server resources that are not orchestrated via Nova. This will allow
associating SoftwareDeployment's with servers that have not been
launched with Nova with Heat directly.

With the new resource, all of the SoftwareConfigTransport methods are
available, including POLL_TEMP_URL. This patch also updates the
get-occ-config.sh script to configure the requests collector in
os-collect-config.conf on the deployed servers.

Change-Id: I4b80421088acca709fe3f92741c5c052be483131
Partially-implements: blueprint split-stack-software-configuration
Depends-On: I07b9a053ecd3ef4411b602bbc6ef985224834cf8
This commit is contained in:
James Slagle 2016-12-05 16:19:55 -05:00
parent 1e88f87523
commit 0097da7710
4 changed files with 10 additions and 42 deletions

View File

@ -1,22 +0,0 @@
heat_template_version: 2014-10-16
parameters:
user_data_format:
type: string
default: SOFTWARE_CONFIG
resources:
# We just need something which returns a unique ID, but we can't
# use RandomString because RefId returns the value, not the physical
# resource ID, SoftwareConfig should work as it returns a UUID
deployed-server-config:
type: OS::Heat::SoftwareConfig
outputs:
# FIXME(shardy) this is needed because TemplateResource returns an
# ARN not a UUID, which overflows the Deployment server_id column..
user_data_format:
value: SOFTWARE_CONFIG
OS::stack_id:
value: {get_resource: deployed-server-config}

View File

@ -21,7 +21,7 @@ parameters:
default: ''
name:
type: string
default: ''
default: 'deployed-server'
image_update_policy:
type: string
default: ''
@ -40,20 +40,18 @@ parameters:
default: {}
resources:
# We just need something which returns a unique ID, but we can't
# use RandomString because RefId returns the value, not the physical
# resource ID, SoftwareConfig should work as it returns a UUID
deployed-server:
type: OS::TripleO::DeployedServerConfig
type: OS::Heat::DeployedServer
properties:
user_data_format: SOFTWARE_CONFIG
name: {get_param: name}
software_config_transport: {get_param: software_config_transport}
InstanceIdConfig:
type: OS::Heat::StructuredConfig
properties:
group: os-apply-config
config:
instance-id: {get_attr: [deployed-server, "OS::stack_id"]}
instance-id: {get_resource: deployed-server}
InstanceIdDeployment:
type: OS::Heat::StructuredDeployment
@ -88,10 +86,8 @@ resources:
Hostname: {get_attr: [HostsEntryDeployment, hostname]}
outputs:
# FIXME(shardy) this is needed because TemplateResource returns an
# ARN not a UUID, which overflows the Deployment server_id column..
OS::stack_id:
value: {get_attr: [deployed-server, "OS::stack_id"]}
value: {get_resource: deployed-server}
networks:
value:
ctlplane:

View File

@ -79,24 +79,19 @@ for role in $OVERCLOUD_ROLES; do
server_stack=$(openstack stack resource show $stack $server_resource_name -c physical_resource_id -f value)
done
deployed_server_stack=$(openstack stack resource show $server_stack deployed-server -c physical_resource_id -f value)
deployed_server_metadata_url=$(openstack stack resource metadata $server_stack deployed-server | jq -r '.["os-collect-config"].request.metadata_url')
echo "======================"
echo "$role$i os-collect-config.conf configuration:"
config="
[DEFAULT]
collectors=heat
collectors=request
command=os-refresh-config
polling_interval=30
[heat]
user_id=$admin_user_id
password=$OS_PASSWORD
auth_url=$OS_AUTH_URL
project_id=$admin_project_id
stack_id=$deployed_server_stack
resource_name=deployed-server-config"
[request]
metadata_url=$deployed_server_metadata_url"
echo "$config"
echo "======================"

View File

@ -1,4 +1,3 @@
resource_registry:
OS::TripleO::Server: ../deployed-server/deployed-server.yaml
OS::TripleO::DeployedServerConfig: ../deployed-server/deployed-server-config.yaml
OS::TripleO::DeployedServer::ControlPlanePort: ../deployed-server/ctlplane-port.yaml