6ab86a3ebe
Use get_attr on the server resource to resolve attribute value from the subnet(s) and pass it to the parameter 'ControlPlaneSubnetCidr' used in the THT/network/config/* templates. As the value is now resolved from resource attributes, this changes the default for 'ControlPlaneSubnetCidr' to '' as well as the comment that these value should be overriden in parameters_defaults. It also removes the parameter from network-environment templates. A conditinal is used in puppet/role.role.j2.yaml so that the parameter value is used whenever it is not '' (the default) to provide backwards compatibility in case the user set a different value (different from the one used in undercloud.conf) for this parameter in network-environment.yaml. When deploying a routed control plane the network config templates would previously need to be updated to carry 'ControlPlaneXSubnetCidr' parameter (in case the subnet mask is not the same for all the routed network leafs). With 8 Leafs in addition to the network local to the undercloud that is 8 parameters less to place in the configuration. By getting the value to pass from the server resource this change reduces the required nic-config template customisation (reduces the risk of user error). Partial: blueprint tripleo-routed-networks-templates Change-Id: I92ee0f9a2107cdf1ca5903d3756a235a79c36c73
170 lines
4.6 KiB
YAML
170 lines
4.6 KiB
YAML
heat_template_version: rocky
|
|
parameters:
|
|
image:
|
|
type: string
|
|
default: unused
|
|
flavor:
|
|
type: string
|
|
default: unused
|
|
key_name:
|
|
type: string
|
|
default: unused
|
|
description: Name of keypair to assign to servers
|
|
security_groups:
|
|
type: json
|
|
default: []
|
|
# Require this so we can validate the parent passes the
|
|
# correct value
|
|
user_data_format:
|
|
type: string
|
|
user_data:
|
|
type: string
|
|
default: ''
|
|
name:
|
|
type: string
|
|
default: 'deployed-server'
|
|
image_update_policy:
|
|
type: string
|
|
default: ''
|
|
networks:
|
|
type: comma_delimited_list
|
|
default: ''
|
|
metadata:
|
|
type: json
|
|
default: {}
|
|
software_config_transport:
|
|
default: POLL_SERVER_CFN
|
|
type: string
|
|
scheduler_hints:
|
|
type: json
|
|
description: Optional scheduler hints to pass to nova
|
|
default: {}
|
|
UpgradeInitCommand:
|
|
type: string
|
|
description: |
|
|
Command or script snippet to run on all overcloud nodes to
|
|
initialize the upgrade process. E.g. a repository switch.
|
|
default: ''
|
|
UpgradeInitCommonCommand:
|
|
type: string
|
|
description: |
|
|
Common commands required by the upgrades process. This should not
|
|
normally be modified by the operator and is set and unset in the
|
|
major-upgrade-composable-steps.yaml and major-upgrade-converge.yaml
|
|
environment files.
|
|
default: ''
|
|
deployment_swift_data:
|
|
type: json
|
|
default: {}
|
|
ControlPlaneSubnet:
|
|
default: ctlplane-subnet
|
|
description: The name of the undercloud Neutron control plane subnet
|
|
type: string
|
|
|
|
resources:
|
|
deployed-server:
|
|
type: OS::Heat::DeployedServer
|
|
properties:
|
|
name: {get_param: name}
|
|
software_config_transport: {get_param: software_config_transport}
|
|
deployment_swift_data: {get_param: deployment_swift_data}
|
|
|
|
UpgradeInitConfig:
|
|
type: OS::Heat::SoftwareConfig
|
|
properties:
|
|
group: script
|
|
config:
|
|
list_join:
|
|
- ''
|
|
- - "#!/bin/bash\n\n"
|
|
- "if [[ -f /etc/resolv.conf.save ]] ; then rm /etc/resolv.conf.save; fi\n\n"
|
|
- get_param: UpgradeInitCommand
|
|
- get_param: UpgradeInitCommonCommand
|
|
|
|
UpgradeInitDeployment:
|
|
type: OS::Heat::SoftwareDeployment
|
|
properties:
|
|
name: UpgradeInitDeployment
|
|
server: {get_resource: deployed-server}
|
|
config: {get_resource: UpgradeInitConfig}
|
|
|
|
|
|
InstanceIdConfig:
|
|
type: OS::Heat::StructuredConfig
|
|
properties:
|
|
group: apply-config
|
|
config:
|
|
instance-id: {get_resource: deployed-server}
|
|
|
|
InstanceIdDeployment:
|
|
type: OS::Heat::StructuredDeployment
|
|
properties:
|
|
name: InstanceIdDeployment
|
|
config: {get_resource: InstanceIdConfig}
|
|
server: {get_resource: deployed-server}
|
|
depends_on: UpgradeInitDeployment
|
|
|
|
HostsEntryConfig:
|
|
type: OS::Heat::SoftwareConfig
|
|
properties:
|
|
group: script
|
|
config: |
|
|
#!/bin/bash
|
|
set -eux
|
|
mkdir -p $heat_outputs_path
|
|
host=$(hostname -s)
|
|
echo -n $host > $heat_outputs_path.hostname
|
|
cat $heat_outputs_path.hostname
|
|
outputs:
|
|
- name: hostname
|
|
description: hostname
|
|
|
|
HostsEntryDeployment:
|
|
type: OS::Heat::SoftwareDeployment
|
|
properties:
|
|
name: HostsEntryDeployment
|
|
config: {get_resource: HostsEntryConfig}
|
|
server: {get_resource: deployed-server}
|
|
|
|
DeployedServerBootstrapConfig:
|
|
type: OS::TripleO::DeployedServer::Bootstrap
|
|
properties:
|
|
server: {get_resource: deployed-server}
|
|
|
|
ControlPlanePort:
|
|
type: OS::TripleO::DeployedServer::ControlPlanePort
|
|
properties:
|
|
network: ctlplane
|
|
fixed_ips: [{subnet: {get_param: ControlPlaneSubnet}}]
|
|
name:
|
|
list_join:
|
|
- '-'
|
|
- - yaql:
|
|
expression: switch(not $.data.hostname.isEmpty() => $.data.hostname, $.data.name=>$.data.name)
|
|
data:
|
|
hostname: {get_attr: [HostsEntryDeployment, hostname]}
|
|
name: {get_param: name}
|
|
- ctlplane
|
|
replacement_policy: AUTO
|
|
|
|
outputs:
|
|
OS::stack_id:
|
|
value: {get_resource: deployed-server}
|
|
networks:
|
|
value:
|
|
ctlplane:
|
|
- {get_attr: [ControlPlanePort, fixed_ips, 0, ip_address]}
|
|
addresses:
|
|
value:
|
|
ctlplane:
|
|
- subnets: {get_attr: [ControlPlanePort, subnets]}
|
|
name:
|
|
value:
|
|
yaql:
|
|
expression: switch(not $.data.hostname.isEmpty() => $.data.hostname, $.data.name=>$.data.name)
|
|
data:
|
|
hostname: {get_attr: [HostsEntryDeployment, hostname]}
|
|
name: {get_param: name}
|
|
os_collect_config:
|
|
value: {get_attr: [deployed-server, os_collect_config]}
|