53924336a2
Adds support for global (ExtraConfig) and role-specific (CephStorageExtraConfig) hiera overrides, similar to those added for the Controller, NovaCompute, BlockStorage, ObjectStorage roles. Change-Id: Idbe73b86a772491cd3c55ba69b5a95cc291d2598
170 lines
5.1 KiB
YAML
170 lines
5.1 KiB
YAML
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
|
|
CephAdminKey:
|
|
default: ''
|
|
description: The Ceph admin client key. Can be created with ceph-authtool --gen-print-key.
|
|
type: string
|
|
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:
|
|
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"
|