You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
91 lines
3.1 KiB
91 lines
3.1 KiB
heat_template_version: rocky |
|
|
|
description: > |
|
Configuration of Nova Availability Zones in the overcloud |
|
|
|
parameters: |
|
ServiceData: |
|
default: {} |
|
description: Dictionary packing service data |
|
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 |
|
RoleName: |
|
default: '' |
|
description: Role name on which the service is applied |
|
type: string |
|
RoleParameters: |
|
default: {} |
|
description: Parameters specific to the role |
|
type: json |
|
EndpointMap: |
|
default: {} |
|
description: Mapping of service endpoint -> protocol. Typically set |
|
via parameter_defaults in the resource registry. |
|
type: json |
|
AdminPassword: |
|
description: The password for the keystone admin account, used for monitoring, querying neutron etc. |
|
type: string |
|
hidden: true |
|
NovaComputeAvailabilityZone: |
|
description: The availability zone where new Nova compute nodes will be |
|
added. If the zone does not already exist, it will be created. |
|
default: "" |
|
type: string |
|
RootStackName: |
|
description: The name of the stack/plan. |
|
type: string |
|
|
|
resources: |
|
|
|
NovaComputeAvailabilityZoneValue: |
|
type: OS::Heat::Value |
|
properties: |
|
value: |
|
if: |
|
- equals: |
|
- {get_param: NovaComputeAvailabilityZone} |
|
- "" |
|
- {get_param: RootStackName} |
|
- {get_param: NovaComputeAvailabilityZone} |
|
|
|
outputs: |
|
role_data: |
|
description: Role data for the Nova Availability Zone configuration service |
|
value: |
|
service_name: nova_az_config |
|
deploy_steps_tasks: |
|
# Step0: Set the hieradata nova::host as a ansible fact so that we can |
|
# use it later in the tasks in external_post_deploy_tasks |
|
- name: Get nova::host value |
|
shell: hiera -c /etc/puppet/hiera.yaml nova::host |
|
register: nova_host_result |
|
when: "step|int == 1" |
|
- name: Set nova_host fact |
|
set_fact: |
|
nova_host: "{{ nova_host_result.stdout }}" |
|
when: "step|int == 1" |
|
external_post_deploy_tasks: |
|
- name: "Nova: Manage aggregate and availability zone and add hosts to the zone" |
|
environment: |
|
# Force openstackclient to not try and read a clouds.yaml as none |
|
# exists for the tripleo-admin user. |
|
OS_CLIENT_CONFIG_FILE: /dev/null |
|
os_nova_host_aggregate: |
|
name: {get_attr: [NovaComputeAvailabilityZoneValue, value]} |
|
availability_zone: {get_attr: [NovaComputeAvailabilityZoneValue, value]} |
|
hosts: "{{ groups['nova_compute'] | default([]) | map('extract', hostvars, 'nova_host') | list }}" |
|
auth: |
|
username: admin |
|
password: {get_param: AdminPassword} |
|
project_name: admin |
|
project_domain_name: Default |
|
user_domain_name: Default |
|
auth_url: { get_param: [EndpointMap, KeystoneV3Public, uri] }
|
|
|