Drop os-apply-config. No longer maintained.
Change-Id: I29e2a8f1b0c66f3cf88f40244d6da49f3d7420be
This commit is contained in:
parent
3ec35a3f2f
commit
5a6907f2b8
@ -15,8 +15,7 @@ Features
|
||||
The ability to deploy a multi-node, role based OpenStack deployment using
|
||||
OpenStack Heat. Notable features include:
|
||||
|
||||
* Choice of deployment/configuration tooling: puppet, os-apply-config, and
|
||||
(soon) docker
|
||||
* Choice of deployment/configuration tooling: puppet, (soon) docker
|
||||
|
||||
* Role based deployment: roles for the controller, compute, ceph, swift,
|
||||
and cinder storage
|
||||
@ -43,11 +42,5 @@ A description of the directory layout in TripleO Heat Templates.
|
||||
* puppet: templates mostly driven by configuration with puppet. To use these
|
||||
templates you can use the overcloud-resource-registry-puppet.yaml.
|
||||
|
||||
* os-apply-config: templates mostly driven by configuration w/
|
||||
os-collect-config and bash based
|
||||
elements (which use the Heat os-apply-config group).
|
||||
These will soon be deprecated and are no longer part
|
||||
of the upstream CI testing efforts.
|
||||
|
||||
* validation-scripts: validation scripts useful to all deployment
|
||||
configurations
|
||||
|
@ -1,93 +0,0 @@
|
||||
heat_template_version: 2015-04-30
|
||||
description: 'All Nodes Config'
|
||||
|
||||
parameters:
|
||||
compute_hosts:
|
||||
type: comma_delimited_list
|
||||
controller_hosts:
|
||||
type: comma_delimited_list
|
||||
controller_ips:
|
||||
type: comma_delimited_list
|
||||
block_storage_hosts:
|
||||
type: comma_delimited_list
|
||||
object_storage_hosts:
|
||||
type: comma_delimited_list
|
||||
ceph_storage_hosts:
|
||||
type: comma_delimited_list
|
||||
controller_names:
|
||||
type: comma_delimited_list
|
||||
rabbit_node_ips:
|
||||
type: comma_delimited_list
|
||||
mongo_node_ips:
|
||||
type: comma_delimited_list
|
||||
redis_node_ips:
|
||||
type: comma_delimited_list
|
||||
memcache_node_ips:
|
||||
type: comma_delimited_list
|
||||
mysql_node_ips:
|
||||
type: comma_delimited_list
|
||||
horizon_node_ips:
|
||||
type: comma_delimited_list
|
||||
heat_api_node_ips:
|
||||
type: comma_delimited_list
|
||||
swift_proxy_node_ips:
|
||||
type: comma_delimited_list
|
||||
ceilometer_api_node_ips:
|
||||
type: comma_delimited_list
|
||||
nova_api_node_ips:
|
||||
type: comma_delimited_list
|
||||
nova_metadata_node_ips:
|
||||
type: comma_delimited_list
|
||||
glance_api_node_ips:
|
||||
type: comma_delimited_list
|
||||
glance_registry_node_ips:
|
||||
type: comma_delimited_list
|
||||
cinder_api_node_ips:
|
||||
type: comma_delimited_list
|
||||
neutron_api_node_ips:
|
||||
type: comma_delimited_list
|
||||
keystone_public_api_node_ips:
|
||||
type: comma_delimited_list
|
||||
keystone_admin_api_node_ips:
|
||||
type: comma_delimited_list
|
||||
|
||||
resources:
|
||||
|
||||
allNodesConfigImpl:
|
||||
type: OS::Heat::StructuredConfig
|
||||
properties:
|
||||
config:
|
||||
completion-signal: {get_input: deploy_signal_id}
|
||||
hosts:
|
||||
list_join:
|
||||
- "\n"
|
||||
- - list_join:
|
||||
- "\n"
|
||||
- {get_param: compute_hosts}
|
||||
- list_join:
|
||||
- "\n"
|
||||
- {get_param: controller_hosts}
|
||||
- list_join:
|
||||
- "\n"
|
||||
- {get_param: block_storage_hosts}
|
||||
- list_join:
|
||||
- "\n"
|
||||
- {get_param: object_storage_hosts}
|
||||
- list_join:
|
||||
- "\n"
|
||||
- {get_param: ceph_storage_hosts}
|
||||
rabbit:
|
||||
nodes:
|
||||
list_join:
|
||||
- ','
|
||||
- {get_param: controller_names}
|
||||
sysctl:
|
||||
net.ipv4.tcp_keepalive_time: 5
|
||||
net.ipv4.tcp_keepalive_probes: 5
|
||||
net.ipv4.tcp_keepalive_intvl: 1
|
||||
|
||||
outputs:
|
||||
config_id:
|
||||
description: The ID of the allNodesConfigImpl resource.
|
||||
value:
|
||||
{get_resource: allNodesConfigImpl}
|
@ -1,69 +0,0 @@
|
||||
heat_template_version: 2015-04-30
|
||||
description: 'Ceph Cluster config data'
|
||||
|
||||
parameters:
|
||||
ceph_storage_count:
|
||||
default: 0
|
||||
type: number
|
||||
description: Number of Ceph storage nodes. Used to enable/disable managed Ceph installation.
|
||||
ceph_external_mon_ips:
|
||||
default: ''
|
||||
type: string
|
||||
description: List of external Ceph Mon host IPs.
|
||||
ceph_client_key:
|
||||
default: ''
|
||||
type: string
|
||||
description: Ceph key used to create the client user keyring.
|
||||
ceph_fsid:
|
||||
default: ''
|
||||
type: string
|
||||
ceph_admin_key:
|
||||
default: ''
|
||||
type: string
|
||||
ceph_mon_key:
|
||||
default: ''
|
||||
type: string
|
||||
ceph_mon_names:
|
||||
type: comma_delimited_list
|
||||
ceph_mon_ips:
|
||||
type: comma_delimited_list
|
||||
NovaRbdPoolName:
|
||||
default: vms
|
||||
type: string
|
||||
CinderRbdPoolName:
|
||||
default: volumes
|
||||
type: string
|
||||
GlanceRbdPoolName:
|
||||
default: images
|
||||
type: string
|
||||
CephClientUserName:
|
||||
default: openstack
|
||||
type: string
|
||||
|
||||
resources:
|
||||
CephClusterConfigImpl:
|
||||
type: OS::Heat::StructuredConfig
|
||||
properties:
|
||||
group: os-apply-config
|
||||
config:
|
||||
ceph_cluster:
|
||||
mon_initial_members:
|
||||
list_join:
|
||||
- ','
|
||||
- {get_param: ceph_mon_names}
|
||||
mon_host:
|
||||
list_join:
|
||||
- ','
|
||||
- {get_param: ceph_mon_ips}
|
||||
fsid: {get_param: ceph_fsid}
|
||||
admin_key: {get_param: ceph_admin_key}
|
||||
mon_key: {get_param: ceph_mon_key}
|
||||
# We would need a dedicated key for OSD bootstrap
|
||||
bootstrap_osd_key: {get_param: ceph_mon_key}
|
||||
osds: '{"/srv/data": {}}'
|
||||
|
||||
outputs:
|
||||
config_id:
|
||||
description: The ID of the CephClusterConfigImpl resource.
|
||||
value:
|
||||
{get_resource: CephClusterConfigImpl}
|
@ -1,21 +0,0 @@
|
||||
heat_template_version: 2015-04-30
|
||||
description: 'Ceph Storage Post Deployment'
|
||||
# NOTE: this is a noop for os-apply-config style deployments because
|
||||
# post deployment ordering is controlled by tripleo-image-elements
|
||||
|
||||
parameters:
|
||||
servers:
|
||||
type: json
|
||||
NodeConfigIdentifiers:
|
||||
type: json
|
||||
description: Value which changes if the node configuration may need to be re-applied
|
||||
|
||||
resources:
|
||||
|
||||
# Note, this should come last, so use depends_on to ensure
|
||||
# this is created after any other resources.
|
||||
ExtraConfig:
|
||||
type: OS::TripleO::NodeExtraConfigPost
|
||||
properties:
|
||||
servers: {get_param: servers}
|
||||
|
@ -1,172 +0,0 @@
|
||||
heat_template_version: 2015-04-30
|
||||
description: 'Common Ceph Storage Configuration'
|
||||
parameters:
|
||||
Image:
|
||||
type: string
|
||||
default: overcloud-ceph-storage
|
||||
KeyName:
|
||||
default: default
|
||||
description: Name of an existing EC2 KeyPair to enable SSH access to the instances
|
||||
type: string
|
||||
Flavor:
|
||||
default: baremetal
|
||||
description: Flavor for block storage nodes to request when deploying.
|
||||
type: string
|
||||
CephClusterFSID:
|
||||
default: ''
|
||||
type: string
|
||||
description: The Ceph cluster FSID. Must be a UUID.
|
||||
CephMonKey:
|
||||
default: ''
|
||||
description: The Ceph monitors key. Can be created with ceph-authtool --gen-print-key.
|
||||
type: string
|
||||
hidden: true
|
||||
CephAdminKey:
|
||||
default: ''
|
||||
description: The Ceph admin client key. Can be created with ceph-authtool --gen-print-key.
|
||||
type: string
|
||||
hidden: true
|
||||
CephMonitors:
|
||||
default: ''
|
||||
description: The list of ip/names to use as Ceph monitors
|
||||
type: json
|
||||
ServiceNetMap:
|
||||
default: {}
|
||||
description: Mapping of service_name -> network name. Typically set
|
||||
via parameter_defaults in the resource registry.
|
||||
type: json
|
||||
UpdateIdentifier:
|
||||
default: ''
|
||||
type: string
|
||||
description: >
|
||||
Setting to a previously unused value during stack-update will trigger
|
||||
package update on all nodes
|
||||
Hostname:
|
||||
type: string
|
||||
default: '' # Defaults to Heat created hostname
|
||||
ExtraConfig:
|
||||
default: {}
|
||||
description: |
|
||||
Additional configuration to inject into the cluster. Note
|
||||
that CephStorageExtraConfig takes precedence over ExtraConfig.
|
||||
type: json
|
||||
CephStorageExtraConfig:
|
||||
default: {}
|
||||
description: |
|
||||
Role specific additional configuration to inject into the cluster.
|
||||
type: json
|
||||
|
||||
|
||||
resources:
|
||||
CephStorage:
|
||||
type: OS::Nova::Server
|
||||
properties:
|
||||
image:
|
||||
{get_param: Image}
|
||||
flavor: {get_param: OvercloudCephStorageFlavor}
|
||||
key_name: {get_param: KeyName}
|
||||
networks:
|
||||
- network: ctlplane
|
||||
user_data_format: SOFTWARE_CONFIG
|
||||
user_data: {get_resource: NodeUserData}
|
||||
name: {get_param: Hostname}
|
||||
|
||||
NodeUserData:
|
||||
type: OS::TripleO::NodeUserData
|
||||
|
||||
StoragePort:
|
||||
type: OS::TripleO::CephStorage::Ports::StoragePort
|
||||
properties:
|
||||
ControlPlaneIP: {get_attr: [CephStorage, networks, ctlplane, 0]}
|
||||
|
||||
StorageMgmtPort:
|
||||
type: OS::TripleO::CephStorage::Ports::StorageMgmtPort
|
||||
properties:
|
||||
ControlPlaneIP: {get_attr: [CephStorage, networks, ctlplane, 0]}
|
||||
|
||||
NetworkConfig:
|
||||
type: OS::TripleO::CephStorage::Net::SoftwareConfig
|
||||
properties:
|
||||
ControlPlaneIp: {get_attr: [CephStorage, networks, ctlplane, 0]}
|
||||
StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
|
||||
StorageMgmtIpSubnet: {get_attr: [StorageMgmtPort, ip_subnet]}
|
||||
|
||||
NetworkDeployment:
|
||||
type: OS::TripleO::SoftwareDeployment
|
||||
properties:
|
||||
config: {get_resource: NetworkConfig}
|
||||
server: {get_resource: CephStorage}
|
||||
|
||||
CephStorageDeployment:
|
||||
type: OS::Heat::StructuredDeployment
|
||||
properties:
|
||||
server: {get_resource: CephStorage}
|
||||
config: {get_resource: CephStorageConfig}
|
||||
signal_transport: NO_SIGNAL
|
||||
CephStorageConfig:
|
||||
type: OS::Heat::StructuredConfig
|
||||
properties:
|
||||
group: os-apply-config
|
||||
config:
|
||||
ceph:
|
||||
fsid: {get_param: CephClusterFSID}
|
||||
keyrings:
|
||||
admin:
|
||||
key: {get_param: CephAdminKey}
|
||||
mon_nodes: {get_param: CephMonitors}
|
||||
ControllerCephDeployment:
|
||||
type: OS::Heat::StructuredDeployment
|
||||
properties:
|
||||
server: {get_resource: Controller}
|
||||
config: {get_resource: ControllerCephConfig}
|
||||
signal_transport: NO_SIGNAL
|
||||
ControllerCephConfig:
|
||||
type: OS::Heat::StructuredConfig
|
||||
properties:
|
||||
group: os-apply-config
|
||||
config:
|
||||
cinder:
|
||||
include_ceph_backend: true
|
||||
ceph:
|
||||
fsid: {get_param: CephClusterFSID}
|
||||
keyrings:
|
||||
mon:
|
||||
key: {get_param: CephMonKey}
|
||||
admin:
|
||||
key: {get_param: CephAdminKey}
|
||||
mon_nodes: {get_param: CephMonitors}
|
||||
NovaComputeCephDeployment:
|
||||
depends_on: [ControllerCephDeployment]
|
||||
type: OS::Heat::StructuredDeployment
|
||||
properties:
|
||||
server: {get_resource: NovaCompute}
|
||||
config: {get_resource: NovaComputeCephConfig}
|
||||
signal_transport: NO_SIGNAL
|
||||
NovaComputeCephConfig:
|
||||
type: OS::Heat::StructuredConfig
|
||||
properties:
|
||||
group: os-apply-config
|
||||
config:
|
||||
ceph:
|
||||
fsid: {get_param: CephClusterFSID}
|
||||
keyrings:
|
||||
admin:
|
||||
key: {get_param: CephAdminKey}
|
||||
mon_nodes: {get_param: CephMonitors}
|
||||
outputs:
|
||||
hosts_entry:
|
||||
value:
|
||||
str_replace:
|
||||
template: "IP HOST"
|
||||
params:
|
||||
IP: {get_attr: [CephStorage, networks, ctlplane, 0]}
|
||||
HOST: {get_attr: [CephStorage, name]}
|
||||
storage_ip_address:
|
||||
description: IP address of the server in the storage network
|
||||
value: {get_attr: [StoragePort, ip_address]}
|
||||
storage_mgmt_ip_address:
|
||||
description: IP address of the server in the storage_mgmt network
|
||||
value: {get_attr: [StorageMgmtPort, ip_address]}
|
||||
config_identifier:
|
||||
description: identifier which changes if the node configuration may need re-applying
|
||||
value: "None - NO_SIGNAL"
|
@ -1,21 +0,0 @@
|
||||
heat_template_version: 2015-04-30
|
||||
description: 'Common Block Storage Post Deployment'
|
||||
# NOTE: this is a noop for os-apply-config style deployments because
|
||||
# post deployment ordering is controlled by tripleo-image-elements
|
||||
|
||||
parameters:
|
||||
servers:
|
||||
type: json
|
||||
NodeConfigIdentifiers:
|
||||
type: json
|
||||
description: Value which changes if the node configuration may need to be re-applied
|
||||
|
||||
resources:
|
||||
|
||||
# Note, this should come last, so use depends_on to ensure
|
||||
# this is created after any other resources.
|
||||
ExtraConfig:
|
||||
type: OS::TripleO::NodeExtraConfigPost
|
||||
properties:
|
||||
servers: {get_param: servers}
|
||||
|
@ -1,234 +0,0 @@
|
||||
heat_template_version: 2015-04-30
|
||||
description: 'Common Block Storage Configuration'
|
||||
parameters:
|
||||
Image:
|
||||
default: overcloud-cinder-volume
|
||||
type: string
|
||||
CinderEnableIscsiBackend:
|
||||
default: true
|
||||
description: Whether to enable or not the Iscsi backend for Cinder
|
||||
type: boolean
|
||||
CinderISCSIHelper:
|
||||
default: tgtadm
|
||||
description: The iSCSI helper to use with cinder.
|
||||
type: string
|
||||
CinderLVMLoopDeviceSize:
|
||||
default: 5000
|
||||
description: The size of the loopback file used by the cinder LVM driver.
|
||||
type: number
|
||||
CinderPassword:
|
||||
default: unset
|
||||
description: The password for the cinder service and db account, used by cinder-api.
|
||||
type: string
|
||||
hidden: true
|
||||
VirtualIP:
|
||||
default: ''
|
||||
type: string
|
||||
ExtraConfig:
|
||||
default: {}
|
||||
description: |
|
||||
Additional configuration to inject into the cluster. The JSON should have
|
||||
the following structure:
|
||||
{"FILEKEY":
|
||||
{"config":
|
||||
[{"section": "SECTIONNAME",
|
||||
"values":
|
||||
[{"option": "OPTIONNAME",
|
||||
"value": "VALUENAME"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
For instance:
|
||||
{"nova":
|
||||
{"config":
|
||||
[{"section": "default",
|
||||
"values":
|
||||
[{"option": "force_config_drive",
|
||||
"value": "always"
|
||||
}
|
||||
]
|
||||
},
|
||||
{"section": "cells",
|
||||
"values":
|
||||
[{"option": "driver",
|
||||
"value": "nova.cells.rpc_driver.CellsRPCDriver"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
type: json
|
||||
BlockStorageExtraConfig:
|
||||
default: {}
|
||||
description: |
|
||||
Role specific additional configuration to inject into the cluster.
|
||||
type: json
|
||||
Flavor:
|
||||
description: Flavor for block storage nodes to request when deploying.
|
||||
type: string
|
||||
constraints:
|
||||
- custom_constraint: nova.flavor
|
||||
GlancePort:
|
||||
default: "9292"
|
||||
description: Glance port.
|
||||
type: string
|
||||
GlanceProtocol:
|
||||
default: http
|
||||
description: Protocol to use when connecting to glance, set to https for SSL.
|
||||
type: string
|
||||
KeyName:
|
||||
default: default
|
||||
description: Name of an existing EC2 KeyPair to enable SSH access to the instances
|
||||
type: string
|
||||
RabbitPassword:
|
||||
default: 'guest'
|
||||
type: string
|
||||
hidden: true
|
||||
RabbitUserName:
|
||||
default: 'guest'
|
||||
type: string
|
||||
RabbitClientUseSSL:
|
||||
default: false
|
||||
description: >
|
||||
Rabbit client subscriber parameter to specify
|
||||
an SSL connection to the RabbitMQ host.
|
||||
type: string
|
||||
RabbitClientPort:
|
||||
default: 5672
|
||||
description: Set rabbit subscriber port, change this if using SSL
|
||||
type: number
|
||||
SnmpdReadonlyUserName:
|
||||
default: ro_snmp_user
|
||||
description: The user name for SNMPd with readonly rights running on all Overcloud nodes
|
||||
type: string
|
||||
SnmpdReadonlyUserPassword:
|
||||
default: unset
|
||||
description: The user password for SNMPd with readonly rights running on all Overcloud nodes
|
||||
type: string
|
||||
hidden: true
|
||||
UpdateIdentifier:
|
||||
default: ''
|
||||
type: string
|
||||
description: >
|
||||
Setting to a previously unused value during stack-update will trigger
|
||||
package update on all nodes
|
||||
Hostname:
|
||||
type: string
|
||||
default: '' # Defaults to Heat created hostname
|
||||
ServiceNetMap:
|
||||
default: {}
|
||||
description: Mapping of service_name -> network name. Typically set
|
||||
via parameter_defaults in the resource registry.
|
||||
type: json
|
||||
GlanceApiVirtualIP:
|
||||
type: string
|
||||
default: ''
|
||||
MysqlVirtualIP:
|
||||
type: string
|
||||
default: ''
|
||||
|
||||
resources:
|
||||
BlockStorage:
|
||||
type: OS::Nova::Server
|
||||
properties:
|
||||
image:
|
||||
{get_param: Image}
|
||||
flavor: {get_param: Flavor}
|
||||
key_name: {get_param: KeyName}
|
||||
networks:
|
||||
- network: ctlplane
|
||||
user_data_format: SOFTWARE_CONFIG
|
||||
user_data: {get_resource: NodeUserData}
|
||||
name: {get_param: Hostname}
|
||||
|
||||
NodeUserData:
|
||||
type: OS::TripleO::NodeUserData
|
||||
|
||||
InternalApiPort:
|
||||
type: OS::TripleO::BlockStorage::Ports::InternalApiPort
|
||||
properties:
|
||||
ControlPlaneIP: {get_attr: [BlockStorage, networks, ctlplane, 0]}
|
||||
|
||||
StoragePort:
|
||||
type: OS::TripleO::BlockStorage::Ports::StoragePort
|
||||
properties:
|
||||
ControlPlaneIP: {get_attr: [BlockStorage, networks, ctlplane, 0]}
|
||||
|
||||
StorageMgmtPort:
|
||||
type: OS::TripleO::BlockStorage::Ports::StorageMgmtPort
|
||||
properties:
|
||||
ControlPlaneIP: {get_attr: [BlockStorage, networks, ctlplane, 0]}
|
||||
|
||||
NetworkConfig:
|
||||
type: OS::TripleO::BlockStorage::Net::SoftwareConfig
|
||||
properties:
|
||||
ControlPlaneIp: {get_attr: [BlockStorage, networks, ctlplane, 0]}
|
||||
InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
|
||||
StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
|
||||
StorageMgmtIpSubnet: {get_attr: [StorageMgmtPort, ip_subnet]}
|
||||
|
||||
NetworkDeployment:
|
||||
type: OS::TripleO::SoftwareDeployment
|
||||
properties:
|
||||
config: {get_resource: NetworkConfig}
|
||||
server: {get_resource: BlockStorage}
|
||||
|
||||
BlockStorageDeployment:
|
||||
type: OS::Heat::StructuredDeployment
|
||||
properties:
|
||||
server: {get_resource: BlockStorage}
|
||||
config: {get_resource: BlockStorageConfig}
|
||||
input_values:
|
||||
controller_virtual_ip: {get_param: VirtualIP}
|
||||
cinder_dsn: {list_join: ['', ['mysql://cinder:', {get_param: CinderPassword}, '@', {get_param: VirtualIP} , '/cinder']]}
|
||||
snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
|
||||
snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
|
||||
signal_transport: NO_SIGNAL
|
||||
BlockStorageConfig:
|
||||
type: OS::Heat::StructuredConfig
|
||||
properties:
|
||||
group: os-apply-config
|
||||
config:
|
||||
keystone:
|
||||
host: {get_input: controller_virtual_ip}
|
||||
cinder:
|
||||
db: {get_input: cinder_dsn}
|
||||
volume_size_mb:
|
||||
get_param: CinderLVMLoopDeviceSize
|
||||
iscsi-helper:
|
||||
get_param: CinderISCSIHelper
|
||||
snmpd:
|
||||
export_MIB: UCD-SNMP-MIB
|
||||
readonly_user_name: {get_input: snmpd_readonly_user_name}
|
||||
readonly_user_password: {get_input: snmpd_readonly_user_password}
|
||||
rabbit:
|
||||
host: {get_input: controller_virtual_ip}
|
||||
username: {get_param: RabbitUserName}
|
||||
password: {get_param: RabbitPassword}
|
||||
glance:
|
||||
host: {get_input: controller_virtual_ip}
|
||||
port: {get_param: GlancePort}
|
||||
outputs:
|
||||
hosts_entry:
|
||||
value:
|
||||
str_replace:
|
||||
template: "IP HOST"
|
||||
params:
|
||||
IP: {get_attr: [BlockStorage, networks, ctlplane, 0]}
|
||||
HOST: {get_attr: [BlockStorage, name]}
|
||||
internal_api_ip_address:
|
||||
description: IP address of the server in the internal_api network
|
||||
value: {get_attr: [InternalApiPort, ip_address]}
|
||||
storage_ip_address:
|
||||
description: IP address of the server in the storage network
|
||||
value: {get_attr: [StoragePort, ip_address]}
|
||||
storage_mgmt_ip_address:
|
||||
description: IP address of the server in the storage_mgmt network
|
||||
value: {get_attr: [StorageMgmtPort, ip_address]}
|
||||
config_identifier:
|
||||
description: identifier which changes if the node configuration may need re-applying
|
||||
value: "None - NO_SIGNAL"
|
@ -1,22 +0,0 @@
|
||||
heat_template_version: 2015-04-30
|
||||
description: 'Compute Post Deployment'
|
||||
# NOTE: this is a noop for os-apply-config style deployments because
|
||||
# post deployment ordering is controlled by tripleo-image-elements
|
||||
|
||||
parameters:
|
||||
servers:
|
||||
type: json
|
||||
NodeConfigIdentifiers:
|
||||
type: json
|
||||
description: Value which changes if the node configuration may need to be re-applied
|
||||
|
||||
resources:
|
||||
|
||||
|
||||
# Note, this should come last, so use depends_on to ensure
|
||||
# this is created after any other resources.
|
||||
ExtraConfig:
|
||||
type: OS::TripleO::NodeExtraConfigPost
|
||||
properties:
|
||||
servers: {get_param: servers}
|
||||
|
@ -1,569 +0,0 @@
|
||||
heat_template_version: 2015-04-30
|
||||
|
||||
description: >
|
||||
OpenStack hypervisor node. Can be wrapped in a ResourceGroup for scaling.
|
||||
|
||||
parameters:
|
||||
AdminPassword:
|
||||
default: unset
|
||||
description: The password for the keystone admin account, used for monitoring, querying neutron etc.
|
||||
type: string
|
||||
hidden: true
|
||||
CeilometerComputeAgent:
|
||||
description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
|
||||
type: string
|
||||
default: ''
|
||||
constraints:
|
||||
- allowed_values: ['', Present]
|
||||
CeilometerMeteringSecret:
|
||||
default: unset
|
||||
description: Secret shared by the ceilometer services.
|
||||
type: string
|
||||
hidden: true
|
||||
CeilometerPassword:
|
||||
default: unset
|
||||
description: The password for the ceilometer service account.
|
||||
type: string
|
||||
hidden: true
|
||||
CinderEnableNfsBackend:
|
||||
default: false
|
||||
description: Whether to enable or not the NFS backend for Cinder
|
||||
type: boolean
|
||||
CinderEnableRbdBackend:
|
||||
default: false
|
||||
description: Whether to enable or not the Rbd backend for Cinder
|
||||
type: boolean
|
||||
Debug:
|
||||
default: ''
|
||||
description: Set to True to enable debugging on all services.
|
||||
type: string
|
||||
ExtraConfig:
|
||||
default: {}
|
||||
description: |
|
||||
Additional configuration to inject into the cluster. The JSON should have
|
||||
the following structure:
|
||||
{"FILEKEY":
|
||||
{"config":
|
||||
[{"section": "SECTIONNAME",
|
||||
"values":
|
||||
[{"option": "OPTIONNAME",
|
||||
"value": "VALUENAME"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
For instance:
|
||||
{"nova":
|
||||
{"config":
|
||||
[{"section": "default",
|
||||
"values":
|
||||
[{"option": "force_config_drive",
|
||||
"value": "always"
|
||||
}
|
||||
]
|
||||
},
|
||||
{"section": "cells",
|
||||
"values":
|
||||
[{"option": "driver",
|
||||
"value": "nova.cells.rpc_driver.CellsRPCDriver"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
type: json
|
||||
Flavor:
|
||||
description: Flavor for the nova compute node
|
||||
type: string
|
||||
constraints:
|
||||
- custom_constraint: nova.flavor
|
||||
GlanceHost:
|
||||
type: string
|
||||
default: '' # Has to be here because of the ignored empty value bug
|
||||
GlancePort:
|
||||
default: "9292"
|
||||
description: Glance port.
|
||||
type: string
|
||||
GlanceProtocol:
|
||||
default: http
|
||||
description: Protocol to use when connecting to glance, set to https for SSL.
|
||||
type: string
|
||||
Image:
|
||||
type: string
|
||||
default: overcloud-compute
|
||||
constraints:
|
||||
- custom_constraint: glance.image
|
||||
ImageUpdatePolicy:
|
||||
default: 'REBUILD_PRESERVE_EPHEMERAL'
|
||||
description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
|
||||
type: string
|
||||
KeyName:
|
||||
description: Name of an existing EC2 KeyPair to enable SSH access to the instances
|
||||
type: string
|
||||
default: default
|
||||
constraints:
|
||||
- custom_constraint: nova.keypair
|
||||
KeystoneAdminApiVirtualIP:
|
||||
type: string
|
||||
default: ''
|
||||
KeystonePublicApiVirtualIP:
|
||||
type: string
|
||||
default: ''
|
||||
NeutronBridgeMappings:
|
||||
description: >
|
||||
The OVS logical->physical bridge mappings to use. See the Neutron
|
||||
documentation for details. Defaults to mapping br-ex - the external
|
||||
bridge on hosts - to a physical name 'datacentre' which can be used
|
||||
to create provider networks (and we use this for the default floating
|
||||
network) - if changing this either use different post-install network
|
||||
scripts or be sure to keep 'datacentre' as a mapping network name.
|
||||
type: string
|
||||
default: "datacentre:br-ex"
|
||||
NeutronEnableTunnelling:
|
||||
type: string
|
||||
default: "True"
|
||||
NeutronEnableL2Pop:
|
||||
type: string
|
||||
description: >
|
||||
Enable/disable the L2 population feature in the Neutron agents.
|
||||
default: "False"
|
||||
NeutronFlatNetworks:
|
||||
type: string
|
||||
default: 'datacentre'
|
||||
description: >
|
||||
If set, flat networks to configure in neutron plugins.
|
||||
NeutronHost:
|
||||
type: string
|
||||
default: '' # Has to be here because of the ignored empty value bug
|
||||
NeutronNetworkType:
|
||||
type: string
|
||||
description: The tenant network type for Neutron, either gre or vxlan.
|
||||
default: 'vxlan'
|
||||
NeutronNetworkVLANRanges:
|
||||
default: 'datacentre'
|
||||
description: >
|
||||
The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
|
||||
Neutron documentation for permitted values. Defaults to permitting any
|
||||
VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
|
||||
type: comma_delimited_list
|
||||
NeutronPassword:
|
||||
default: unset
|
||||
description: The password for the neutron service account, used by neutron agents.
|
||||
type: string
|
||||
hidden: true
|
||||
NeutronPhysicalBridge:
|
||||
default: ''
|
||||
description: An OVS bridge to create for accessing external networks.
|
||||
type: string
|
||||
NeutronPublicInterface:
|
||||
default: nic1
|
||||
description: A port to add to the NeutronPhysicalBridge.
|
||||
type: string
|
||||
NeutronTunnelTypes:
|
||||
type: string
|
||||
description: |
|
||||
The tunnel types for the Neutron tenant network. To specify multiple
|
||||
values, use a comma separated string, like so: 'gre,vxlan'
|
||||
default: 'vxlan'
|
||||
NeutronTunnelIdRanges:
|
||||
description: |
|
||||
Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
|
||||
of GRE tunnel IDs that are available for tenant network allocation
|
||||
default: ["1:1000", ]
|
||||
type: comma_delimited_list
|
||||
NeutronVniRanges:
|
||||
description: |
|
||||
Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
|
||||
of VXLAN VNI IDs that are available for tenant network allocation
|
||||
default: ["1:1000", ]
|
||||
type: comma_delimited_list
|
||||
NeutronPublicInterfaceRawDevice:
|
||||
default: ''
|
||||
type: string
|
||||
NeutronDVR:
|
||||
default: 'False'
|
||||
type: string
|
||||
NeutronMetadataProxySharedSecret:
|
||||
default: 'unset'
|
||||
description: Shared secret to prevent spoofing
|
||||
type: string
|
||||
hidden: true
|
||||
NeutronCorePlugin:
|
||||
default: "ml2"
|
||||
description: |
|
||||
The core plugin for Neutron. The value should be the entrypoint to be loaded
|
||||
from neutron.core_plugins namespace.
|
||||
type: string
|
||||
NeutronServicePlugins:
|
||||
default: "router"
|
||||
description: |
|
||||
Comma-separated list of service plugin entrypoints to be loaded from the
|
||||
neutron.service_plugins namespace.
|
||||
type: comma_delimited_list
|
||||
NeutronTypeDrivers:
|
||||
default: "vxlan,vlan,flat,gre"
|
||||
description: |
|
||||
Comma-separated list of network type driver entrypoints to be loaded.
|
||||
type: comma_delimited_list
|
||||
NeutronMechanismDrivers:
|
||||
default: 'openvswitch'
|
||||
description: |
|
||||
The mechanism drivers for the Neutron tenant network. To specify multiple
|
||||
values, use a comma separated string, like so: 'openvswitch,l2_population'
|
||||
type: string
|
||||
# Not relevant for Computes, should be removed
|
||||
NeutronAllowL3AgentFailover:
|
||||
default: 'True'
|
||||
description: Allow automatic l3-agent failover
|
||||
type: string
|
||||
# Not relevant for Computes, should be removed
|
||||
NeutronL3HA:
|
||||
default: 'False'
|
||||
description: Whether to enable l3-agent HA
|
||||
type: string
|
||||
NeutronAgentMode:
|
||||
default: 'dvr_snat'
|
||||
description: Agent mode for the neutron-l3-agent on the controller hosts
|
||||
type: string
|
||||
NovaApiHost:
|
||||
type: string
|
||||
default: '' # Has to be here because of the ignored empty value bug
|
||||
NovaComputeDriver:
|
||||
type: string
|
||||
default: libvirt.LibvirtDriver
|
||||
NovaComputeExtraConfig:
|
||||
default: {}
|
||||
description: |
|
||||
NovaCompute specific configuration to inject into the cluster. Same
|
||||
structure as ExtraConfig.
|
||||
type: json
|
||||
NovaComputeLibvirtType:
|
||||
type: string
|
||||
default: ''
|
||||
NovaEnableRbdBackend:
|
||||
default: false
|
||||
description: Whether to enable or not the Rbd backend for Nova
|
||||
type: boolean
|
||||
NovaPassword:
|
||||
default: unset
|
||||
description: The password for the nova service account, used by nova-api.
|
||||
type: string
|
||||
hidden: true
|
||||
NovaPublicIP:
|
||||
type: string
|
||||
default: '' # Has to be here because of the ignored empty value bug
|
||||
NtpServer:
|
||||
type: string
|
||||
default: ''
|
||||
RabbitHost:
|
||||
type: string
|
||||
default: '' # Has to be here because of the ignored empty value bug
|
||||
RabbitPassword:
|
||||
default: guest
|
||||
description: The password for RabbitMQ
|
||||
type: string
|
||||
hidden: true
|
||||
RabbitUserName:
|
||||
default: guest
|
||||
description: The username for RabbitMQ
|
||||
type: string
|
||||
RabbitClientUseSSL:
|
||||
default: false
|
||||
description: >
|
||||
Rabbit client subscriber parameter to specify
|
||||
an SSL connection to the RabbitMQ host.
|
||||
type: string
|
||||
RabbitClientPort:
|
||||
default: 5672
|
||||
description: Set rabbit subscriber port, change this if using SSL
|
||||
type: number
|
||||
SnmpdReadonlyUserName:
|
||||
default: ro_snmp_user
|
||||
description: The user name for SNMPd with readonly rights running on all Overcloud nodes
|
||||
type: string
|
||||
SnmpdReadonlyUserPassword:
|
||||
default: unset
|
||||
description: The user password for SNMPd with readonly rights running on all Overcloud nodes
|
||||
type: string
|
||||
hidden: true
|
||||
ServiceNetMap:
|
||||
default: {}
|
||||
description: Mapping of service_name -> network name. Typically set
|
||||
via parameter_defaults in the resource registry.
|
||||
type: json
|
||||
UpdateIdentifier:
|
||||
default: ''
|
||||
type: string
|
||||
description: >
|
||||
Setting to a previously unused value during stack-update will trigger
|
||||
package update on all nodes
|
||||
Hostname:
|
||||
type: string
|
||||
default: '' # Defaults to Heat created hostname
|
||||
|
||||
resources:
|
||||
|
||||
NovaCompute:
|
||||
type: OS::Nova::Server
|
||||
properties:
|
||||
image:
|
||||
{get_param: Image}
|
||||
image_update_policy:
|
||||
get_param: ImageUpdatePolicy
|
||||
flavor: {get_param: Flavor}
|
||||
key_name: {get_param: KeyName}
|
||||
networks:
|
||||
- network: ctlplane
|
||||
user_data_format: SOFTWARE_CONFIG
|
||||
user_data: {get_resource: NodeUserData}
|
||||
name: {get_param: Hostname}
|
||||
|
||||
NodeUserData:
|
||||
type: OS::TripleO::NodeUserData
|
||||
|
||||
InternalApiPort:
|
||||
type: OS::TripleO::Compute::Ports::InternalApiPort
|
||||
properties:
|
||||
ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
|
||||
|
||||
StoragePort:
|
||||
type: OS::TripleO::Compute::Ports::StoragePort
|
||||
properties:
|
||||
ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
|
||||
|
||||
TenantPort:
|
||||
type: OS::TripleO::Compute::Ports::TenantPort
|
||||
properties:
|
||||
ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
|
||||
|
||||
NetworkConfig:
|
||||
type: OS::TripleO::Compute::Net::SoftwareConfig
|
||||
properties:
|
||||
ControlPlaneIp: {get_attr: [NovaCompute, networks, ctlplane, 0]}
|
||||
InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
|
||||
StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
|
||||
TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
|
||||
|
||||
NetworkDeployment:
|
||||
type: OS::TripleO::SoftwareDeployment
|
||||
properties:
|
||||
signal_transport: NO_SIGNAL
|
||||
config: {get_resource: NetworkConfig}
|
||||
server: {get_resource: NovaCompute}
|
||||
input_values:
|
||||
bridge_name: {get_param: NeutronPhysicalBridge}
|
||||
interface_name: {get_param: NeutronPublicInterface}
|
||||
|
||||
NovaComputeConfig:
|
||||
type: OS::Heat::StructuredConfig
|
||||
properties:
|
||||
group: os-apply-config
|
||||
config:
|
||||
nova:
|
||||
compute_driver: { get_input: nova_compute_driver }
|
||||
compute_libvirt_type: { get_input: nova_compute_libvirt_type }
|
||||
debug: {get_input: debug}
|
||||
host: {get_input: nova_api_host}
|
||||
public_ip: {get_input: nova_public_ip}
|
||||
service-password: {get_input: nova_password}
|
||||
ceilometer:
|
||||
debug: {get_input: debug}
|
||||
metering_secret: {get_input: ceilometer_metering_secret}
|
||||
service-password: {get_input: ceilometer_password}
|
||||
compute_agent: {get_input: ceilometer_compute_agent}
|
||||
snmpd:
|
||||
export_MIB: UCD-SNMP-MIB
|
||||
readonly_user_name: {get_input: snmpd_readonly_user_name}
|
||||
readonly_user_password: {get_input: snmpd_readonly_user_password}
|
||||
glance:
|
||||
debug: {get_input: debug}
|
||||
host: {get_input: glance_host}
|
||||
port: {get_input: glance_port}
|
||||
protocol: {get_input: glance_protocol}
|
||||
keystone:
|
||||
debug: {get_input: debug}
|
||||
host: {get_input: keystone_host}
|
||||
neutron:
|
||||
debug: {get_input: debug}
|
||||
flat-networks: {get_input: neutron_flat_networks}
|
||||
host: {get_input: neutron_host}
|
||||
router_distributed: {get_input: neutron_router_distributed}
|
||||
agent_mode: {get_input: neutron_agent_mode}
|
||||
ovs_db: {get_input: neutron_dsn}
|
||||
metadata_proxy_shared_secret: {get_input: neutron_metadata_proxy_shared_secret}
|
||||
core_plugin: {get_input: neutron_core_plugin}
|
||||
service_plugins: {get_input: neutron_service_plugins}
|
||||
type_drivers: {get_input: neutron_type_drivers}
|
||||
mechanism_drivers: {get_input: neutron_mechanism_drivers}
|
||||
allow_automatic_l3agent_failover: {get_input: neutron_allow_l3agent_failover}
|
||||
l3_ha: {get_input: neutron_l3_ha}
|
||||
ovs:
|
||||
local_ip: {get_input: neutron_local_ip}
|
||||
tenant_network_type: {get_input: neutron_tenant_network_type}
|
||||
tunnel_types: {get_input: neutron_tunnel_types}
|
||||
network_vlan_ranges: {get_input: neutron_network_vlan_ranges}
|
||||
tunnel_id_ranges: {get_input: neutron_tunnel_id_ranges}
|
||||
vni_ranges: {get_input: neutron_vni_ranges}
|
||||
bridge_mappings: {get_input: neutron_bridge_mappings}
|
||||
enable_tunneling: {get_input: neutron_enable_tunneling}
|
||||
l2_population: {get_input: neutron_enable_l2pop}
|
||||
physical_bridge: {get_input: neutron_physical_bridge}
|
||||
public_interface: {get_input: neutron_public_interface}
|
||||
public_interface_raw_device: {get_input: neutron_public_interface_raw_device}
|
||||
service-password: {get_input: neutron_password}
|
||||
admin-password: {get_input: admin_password}
|
||||
rabbit:
|
||||
host: {get_input: rabbit_host}
|
||||
username: {get_input: rabbit_username}
|
||||
password: {get_input: rabbit_password}
|
||||
ntp:
|
||||
servers:
|
||||
- {server: {get_input: ntp_server}}
|
||||
|
||||
NovaComputeDeployment:
|
||||
type: OS::TripleO::SoftwareDeployment
|
||||
properties:
|
||||
signal_transport: NO_SIGNAL
|
||||
config: {get_resource: NovaComputeConfig}
|
||||
server: {get_resource: NovaCompute}
|
||||
input_values:
|
||||
debug: {get_param: Debug}
|
||||
nova_compute_driver: {get_param: NovaComputeDriver}
|
||||
nova_compute_libvirt_type: {get_param: NovaComputeLibvirtType}
|
||||
nova_public_ip: {get_param: NovaPublicIP}
|
||||
nova_api_host: {get_param: NovaApiHost}
|
||||
nova_password: {get_param: NovaPassword}
|
||||
ceilometer_metering_secret: {get_param: CeilometerMeteringSecret}
|
||||
ceilometer_password: {get_param: CeilometerPassword}
|
||||
ceilometer_compute_agent: {get_param: CeilometerComputeAgent}
|
||||
snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
|
||||
snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
|
||||
glance_host: {get_param: GlanceHost}
|
||||
glance_port: {get_param: GlancePort}
|
||||
glance_protocol: {get_param: GlanceProtocol}
|
||||
keystone_host: {get_param: KeystonePublicApiVirtualIP}
|
||||
neutron_flat_networks: {get_param: NeutronFlatNetworks}
|
||||
neutron_host: {get_param: NeutronHost}
|
||||
neutron_local_ip: {get_attr: [NovaCompute, networks, ctlplane, 0]}
|
||||
neutron_tenant_network_type: {get_param: NeutronNetworkType}
|
||||
neutron_tunnel_types: {get_param: NeutronTunnelTypes}
|
||||
neutron_tunnel_id_ranges:
|
||||
str_replace:
|
||||
template: "['RANGES']"
|
||||
params:
|
||||
RANGES:
|
||||
list_join:
|
||||
- "','"
|
||||
- {get_param: NeutronTunnelIdRanges}
|
||||
neutron_vni_ranges:
|
||||
str_replace:
|
||||
template: "['RANGES']"
|
||||
params:
|
||||
RANGES:
|
||||
list_join:
|
||||
- "','"
|
||||
- {get_param: NeutronVniRanges}
|
||||
neutron_network_vlan_ranges: {get_param: NeutronNetworkVLANRanges}
|
||||
neutron_bridge_mappings: {get_param: NeutronBridgeMappings}
|
||||
neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
|
||||
neutron_enable_l2pop: {get_param: NeutronEnableL2Pop}
|
||||
neutron_physical_bridge: {get_param: NeutronPhysicalBridge}
|
||||
neutron_public_interface: {get_param: NeutronPublicInterface}
|
||||
neutron_password: {get_param: NeutronPassword}
|
||||
neutron_agent_mode: {get_param: NeutronAgentMode}
|
||||
neutron_router_distributed: {get_param: NeutronDVR}
|
||||
neutron_metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
|
||||
neutron_core_plugin: {get_param: NeutronCorePlugin}
|
||||
neutron_service_plugins:
|
||||
str_replace:
|
||||
template: "['PLUGINS']"
|
||||
params:
|
||||
PLUGINS:
|
||||
list_join:
|
||||
- "','"
|
||||
- {get_param: NeutronServicePlugins}
|
||||
neutron_type_drivers:
|
||||
str_replace:
|
||||
template: "['DRIVERS']"
|
||||
params:
|
||||
DRIVERS:
|
||||
list_join:
|
||||
- "','"
|
||||
- {get_param: NeutronTypeDrivers}
|
||||
neutron_mechanism_drivers: {get_param: NeutronMechanismDrivers}
|
||||
neutron_allow_l3agent_failover: {get_param: NeutronAllowL3AgentFailover}
|
||||
neutron_l3_ha: {get_param: NeutronL3HA}
|
||||
neutron_public_interface_raw_device: {get_param: NeutronPublicInterfaceRawDevice}
|
||||
admin_password: {get_param: AdminPassword}
|
||||
rabbit_host: {get_param: RabbitHost}
|
||||
rabbit_username: {get_param: RabbitUserName}
|
||||
rabbit_password: {get_param: RabbitPassword}
|
||||
ntp_server: {get_param: NtpServer}
|
||||
|
||||
NovaComputePassthrough:
|
||||
type: OS::Heat::StructuredConfig
|
||||
properties:
|
||||
group: os-apply-config
|
||||
config: {get_input: passthrough_config}
|
||||
|
||||
NovaComputePassthroughSpecific:
|
||||
type: OS::Heat::StructuredConfig
|
||||
properties:
|
||||
group: os-apply-config
|
||||
config: {get_input: passthrough_config_specific}
|
||||
|
||||
NovaComputePassthroughDeployment:
|
||||
depends_on: [NovaComputeDeployment]
|
||||
type: OS::Heat::StructuredDeployment
|
||||
properties:
|
||||
config: {get_resource: NovaComputePassthrough}
|
||||
server: {get_resource: NovaCompute}
|
||||
signal_transport: NO_SIGNAL
|
||||
input_values:
|
||||
passthrough_config: {get_param: ExtraConfig}
|
||||
|
||||
NovaComputePassthroughDeploymentSpecific:
|
||||
depends_on: [NovaComputePassthroughDeployment]
|
||||
type: OS::Heat::StructuredDeployment
|
||||
properties:
|
||||
config: {get_resource: NovaComputePassthroughSpecific}
|
||||
server: {get_resource: NovaCompute}
|
||||
signal_transport: NO_SIGNAL
|
||||
input_values:
|
||||
passthrough_config_specific: {get_param: NovaComputeExtraConfig}
|
||||
|
||||
outputs:
|
||||
ip_address:
|
||||
description: IP address of the server in the ctlplane network
|
||||
value: {get_attr: [NovaCompute, networks, ctlplane, 0]}
|
||||
internal_api_ip_address:
|
||||
description: IP address of the server in the internal_api network
|
||||
value: {get_attr: [InternalApiPort, ip_address]}
|
||||
storage_ip_address:
|
||||
description: IP address of the server in the storage network
|
||||
value: {get_attr: [StoragePort, ip_address]}
|
||||
tenant_ip_address:
|
||||
description: IP address of the server in the tenant network
|
||||
value: {get_attr: [TenantPort, ip_address]}
|
||||
hostname:
|
||||
description: Hostname of the server
|
||||
value: {get_attr: [NovaCompute, name]}
|
||||
hosts_entry:
|
||||
description: >
|
||||
Server's IP address and hostname in the /etc/hosts format
|
||||
value:
|
||||
str_replace:
|
||||
template: "IP HOST"
|
||||
params:
|
||||
IP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
|
||||
HOST: {get_attr: [NovaCompute, name]}
|
||||
nova_server_resource:
|
||||
description: Heat resource handle for the Nova compute server
|
||||
value:
|
||||
{get_resource: NovaCompute}
|
||||
config_identifier:
|
||||
description: identifier which changes if the node configuration may need re-applying
|
||||
value: "None - NO_SIGNAL"
|
@ -1,20 +0,0 @@
|
||||
heat_template_version: 2015-04-30
|
||||
description: 'Controller Post Deployment'
|
||||
# NOTE: this is a noop for os-apply-config style deployments because
|
||||
# post deployment ordering is controlled by tripleo-image-elements
|
||||
|
||||
parameters:
|
||||
servers:
|
||||
type: json
|
||||
NodeConfigIdentifiers:
|
||||
type: json
|
||||
description: Value which changes if the node configuration may need to be re-applied
|
||||
|
||||
resources:
|
||||
|
||||
# Note, this should come last, so use depends_on to ensure
|
||||
# this is created after any other resources.
|
||||
ExtraConfig:
|
||||
type: OS::TripleO::NodeExtraConfigPost
|
||||
properties:
|
||||
servers: {get_param: servers}
|
File diff suppressed because it is too large
Load Diff
@ -1,38 +0,0 @@
|
||||
heat_template_version: 2015-04-30
|
||||
description: 'Swift Devices and Proxy Config'
|
||||
|
||||
parameters:
|
||||
controller_swift_devices:
|
||||
type: comma_delimited_list
|
||||
object_store_swift_devices:
|
||||
type: comma_delimited_list
|
||||
controller_swift_proxy_memcaches:
|
||||
type: comma_delimited_list
|
||||
|
||||
resources:
|
||||
|
||||
SwiftDevicesAndProxyConfigImpl:
|
||||
type: OS::Heat::StructuredConfig
|
||||
properties:
|
||||
group: os-apply-config
|
||||
config:
|
||||
swift:
|
||||
devices:
|
||||
list_join:
|
||||
- ", "
|
||||
- - list_join:
|
||||
- ", "
|
||||
- {get_param: controller_swift_devices}
|
||||
- list_join:
|
||||
- ", "
|
||||
- {get_param: object_store_swift_devices}
|
||||
proxy-memcache:
|
||||
list_join:
|
||||
- ","
|
||||
- {get_param: controller_swift_proxy_memcaches}
|
||||
|
||||
outputs:
|
||||
config_id:
|
||||
description: The ID of the SwiftDevicesAndProxyConfigImpl resource.
|
||||
value:
|
||||
{get_resource: SwiftDevicesAndProxyConfigImpl}
|
@ -1,21 +0,0 @@
|
||||
heat_template_version: 2015-04-30
|
||||
description: 'Swift Storage Post Deployment'
|
||||
# NOTE: this is a noop for os-apply-config style deployments because
|
||||
# post deployment ordering is controlled by tripleo-image-elements
|
||||
|
||||
parameters:
|
||||
servers:
|
||||
type: json
|
||||
NodeConfigIdentifiers:
|
||||
type: json
|
||||
description: Value which changes if the node configuration may need to be re-applied
|
||||
|
||||
resources:
|
||||
|
||||
# Note, this should come last, so use depends_on to ensure
|
||||
# this is created after any other resources.
|
||||
ExtraConfig:
|
||||
type: OS::TripleO::NodeExtraConfigPost
|
||||
properties:
|
||||
servers: {get_param: servers}
|
||||
|
@ -1,209 +0,0 @@
|
||||
heat_template_version: 2015-04-30
|
||||
description: 'Common Swift Storage Configuration'
|
||||
parameters:
|
||||
ExtraConfig:
|
||||
default: {}
|
||||
description: |
|
||||
Additional configuration to inject into the cluster. The JSON should have
|
||||
the following structure:
|
||||
{"FILEKEY":
|
||||
{"config":
|
||||
[{"section": "SECTIONNAME",
|
||||
"values":
|
||||
[{"option": "OPTIONNAME",
|
||||
"value": "VALUENAME"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
For instance:
|
||||
{"nova":
|
||||
{"config":
|
||||
[{"section": "default",
|
||||
"values":
|
||||
[{"option": "force_config_drive",
|
||||
"value": "always"
|
||||
}
|
||||
]
|
||||
},
|
||||
{"section": "cells",
|
||||
"values":
|
||||
[{"option": "driver",
|
||||
"value": "nova.cells.rpc_driver.CellsRPCDriver"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
type: json
|
||||
ObjectStorageExtraConfig:
|
||||
default: {}
|
||||
description: |
|
||||
Role specific additional configuration to inject into the cluster.
|
||||
type: json
|
||||
Flavor:
|
||||
description: Flavor for Swift storage nodes to request when deploying.
|
||||
type: string
|
||||
constraints:
|
||||
- custom_constraint: nova.flavor
|
||||
HashSuffix:
|
||||
default: unset
|
||||
description: A random string to be used as a salt when hashing to determine mappings
|
||||
in the ring.
|
||||
hidden: true
|
||||
type: string
|
||||
Image:
|
||||
default: overcloud-swift-storage
|
||||
type: string
|
||||
KeyName:
|
||||
default: default
|
||||
description: Name of an existing EC2 KeyPair to enable SSH access to the instances
|
||||
type: string
|
||||
MountCheck:
|
||||
default: 'false'
|
||||
description: Value of mount_check in Swift account/container/object -server.conf
|
||||
type: boolean
|
||||
MinPartHours:
|
||||
type: number
|
||||
default: 1
|
||||
description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
|
||||
PartPower:
|
||||
default: 10
|
||||
description: Partition Power to use when building Swift rings
|
||||
type: number
|
||||
Replicas:
|
||||
type: number
|
||||
default: 3
|
||||
description: How many replicas to use in the swift rings.
|
||||
SnmpdReadonlyUserName:
|
||||
default: ro_snmp_user
|
||||
description: The user name for SNMPd with readonly rights running on all Overcloud nodes
|
||||
type: string
|
||||
SnmpdReadonlyUserPassword:
|
||||
default: unset
|
||||
description: The user password for SNMPd with readonly rights running on all Overcloud nodes
|
||||
type: string
|
||||
hidden: true
|
||||
UpdateIdentifier:
|
||||
default: ''
|
||||
type: string
|
||||
description: >
|
||||
Setting to a previously unused value during stack-update will trigger
|
||||
package update on all nodes
|
||||
Hostname:
|
||||
type: string
|
||||
default: '' # Defaults to Heat created hostname
|
||||
|
||||
resources:
|
||||
SwiftConfig:
|
||||
type: OS::Heat::StructuredConfig
|
||||
properties:
|
||||
group: os-apply-config
|
||||
config:
|
||||
snmpd:
|
||||
export_MIB: UCD-SNMP-MIB
|
||||
readonly_user_name: {get_input: snmpd_readonly_user_name}
|
||||
readonly_user_password: {get_input: snmpd_readonly_user_password}
|
||||
swift:
|
||||
hash: { get_input: swift_hash_suffix }
|
||||
part-power: { get_input: swift_part_power }
|
||||
min-part-hours: { get_input: swift_min_part_hours }
|
||||
mount-check: { get_input: swift_mount_check }
|
||||
replicas: {get_input: swift_replicas }
|
||||
neutron:
|
||||
ovs:
|
||||
local_ip: { get_input: neutron_local_ip }
|
||||
SwiftStorage:
|
||||
type: OS::Nova::Server
|
||||
properties:
|
||||
image: {get_param: Image}
|
||||
flavor: {get_param: Flavor}
|
||||
key_name: {get_param: KeyName}
|
||||
networks:
|
||||
- network: ctlplane
|
||||
user_data_format: SOFTWARE_CONFIG
|
||||
user_data: {get_resource: NodeUserData}
|
||||
name: {get_param: Hostname}
|
||||
|
||||
NodeUserData:
|
||||
type: OS::TripleO::NodeUserData
|
||||
|
||||
InternalApiPort:
|
||||
type: OS::TripleO::SwiftStorage::Ports::InternalApiPort
|
||||
properties:
|
||||
ControlPlaneIP: {get_attr: [SwiftStorage, networks, ctlplane, 0]}
|
||||
|
||||
StoragePort:
|
||||
type: OS::TripleO::SwiftStorage::Ports::StoragePort
|
||||
properties:
|
||||
ControlPlaneIP: {get_attr: [SwiftStorage, networks, ctlplane, 0]}
|
||||
|
||||
StorageMgmtPort:
|
||||
type: OS::TripleO::SwiftStorage::Ports::StorageMgmtPort
|
||||
properties:
|
||||
ControlPlaneIP: {get_attr: [SwiftStorage, networks, ctlplane, 0]}
|
||||
|
||||
NetworkConfig:
|
||||
type: OS::TripleO::ObjectStorage::Net::SoftwareConfig
|
||||
properties:
|
||||
ControlPlaneIp: {get_attr: [SwiftStorage, networks, ctlplane, 0]}
|
||||
InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
|
||||
StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
|
||||
StorageMgmtIpSubnet: {get_attr: [StorageMgmtPort, ip_subnet]}
|
||||
|
||||
NetworkDeployment:
|
||||
type: OS::TripleO::SoftwareDeployment
|
||||
properties:
|
||||
config: {get_resource: NetworkConfig}
|
||||
server: {get_resource: SwiftStorage}
|
||||
|
||||
SwiftStorageDeploy:
|
||||
type: OS::Heat::StructuredDeployment
|
||||
properties:
|
||||
server: {get_resource: SwiftStorage}
|
||||
config: {get_resource: SwiftConfig}
|
||||
signal_transport: NO_SIGNAL
|
||||
input_values:
|
||||
neutron_local_ip: {get_attr: [SwiftStorage, networks, ctlplane, 0]}
|
||||
snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
|
||||
snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
|
||||
swift_hash_suffix: {get_param: HashSuffix}
|
||||
swift_mount_check: {get_param: MountCheck}
|
||||
swift_min_part_hours: {get_param: MinPartHours}
|
||||
swift_part_power: {get_param: PartPower}
|
||||
swift_replicas: { get_param: Replicas}
|
||||
|
||||
outputs:
|
||||
hosts_entry:
|
||||
value:
|
||||
str_replace:
|
||||
template: "IP HOST"
|
||||
params:
|
||||
IP: {get_attr: [SwiftStorage, networks, ctlplane, 0]}
|
||||
HOST: {get_attr: [SwiftStorage, name]}
|
||||
nova_server_resource:
|
||||
description: Heat resource handle for the swift storage server
|
||||
value:
|
||||
{get_resource: SwiftStorage}
|
||||
swift_device:
|
||||
description: Swift device formatted for swift-ring-builder
|
||||
value:
|
||||
str_replace:
|
||||
template: 'r1z1-IP:%PORT%/d1'
|
||||
params:
|
||||
IP: {get_attr: [SwiftStorage, networks, ctlplane, 0]}
|
||||
internal_api_ip_address:
|
||||
description: IP address of the server in the internal_api network
|
||||
value: {get_attr: [InternalApiPort, ip_address]}
|
||||
storage_ip_address:
|
||||
description: IP address of the server in the storage network
|
||||
value: {get_attr: [StoragePort, ip_address]}
|
||||
storage_mgmt_ip_address:
|
||||
description: IP address of the server in the storage_mgmt network
|
||||
value: {get_attr: [StorageMgmtPort, ip_address]}
|
||||
config_identifier:
|
||||
description: identifier which changes if the node configuration may need re-applying
|
||||