aboutsummaryrefslogtreecommitdiffstats
path: root/puppet
diff options
context:
space:
mode:
Diffstat (limited to 'puppet')
-rw-r--r--puppet/all-nodes-config.yaml1
-rw-r--r--puppet/ceph-cluster-config.yaml13
-rw-r--r--puppet/ceph-storage-puppet.yaml31
-rw-r--r--puppet/cinder-storage-puppet.yaml20
-rw-r--r--puppet/compute-puppet.yaml29
-rw-r--r--puppet/controller-puppet.yaml62
-rw-r--r--puppet/extraconfig/ceph/ceph-external-config.yaml65
-rw-r--r--puppet/hieradata/common.yaml1
-rw-r--r--puppet/hieradata/controller.yaml1
-rw-r--r--puppet/manifests/overcloud_controller.pp23
-rw-r--r--puppet/manifests/overcloud_controller_pacemaker.pp23
-rw-r--r--puppet/swift-storage-puppet.yaml20
12 files changed, 248 insertions, 41 deletions
diff --git a/puppet/all-nodes-config.yaml b/puppet/all-nodes-config.yaml
index 060f4c81..2bc519bb 100644
--- a/puppet/all-nodes-config.yaml
+++ b/puppet/all-nodes-config.yaml
@@ -238,6 +238,7 @@ resources:
heat::rabbit_hosts: *rabbit_nodes_array
neutron::rabbit_hosts: *rabbit_nodes_array
nova::rabbit_hosts: *rabbit_nodes_array
+ keystone::rabbit_hosts: *rabbit_nodes_array
outputs:
config_id:
diff --git a/puppet/ceph-cluster-config.yaml b/puppet/ceph-cluster-config.yaml
index 33b18574..99265493 100644
--- a/puppet/ceph-cluster-config.yaml
+++ b/puppet/ceph-cluster-config.yaml
@@ -2,6 +2,18 @@ heat_template_version: 2015-04-30
description: 'Ceph Cluster config data for Puppet'
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 'openstack' user keyring.
ceph_fsid:
default: ''
type: string
@@ -26,6 +38,7 @@ resources:
datafiles:
ceph_cluster:
mapped_data:
+ ceph_storage_count: {get_param: ceph_storage_count}
ceph_mon_initial_members:
list_join:
- ','
diff --git a/puppet/ceph-storage-puppet.yaml b/puppet/ceph-storage-puppet.yaml
index fcf4259f..f08b83cd 100644
--- a/puppet/ceph-storage-puppet.yaml
+++ b/puppet/ceph-storage-puppet.yaml
@@ -66,9 +66,26 @@ resources:
networks:
- network: ctlplane
user_data_format: SOFTWARE_CONFIG
- user_data: {get_resource: NodeUserData}
+ user_data: {get_resource: UserData}
name: {get_param: Hostname}
+ # Combine the NodeAdminUserData and NodeUserData mime archives
+ UserData:
+ type: OS::Heat::MultipartMime
+ properties:
+ parts:
+ - config: {get_resource: NodeAdminUserData}
+ type: multipart
+ - config: {get_resource: NodeUserData}
+ type: multipart
+
+ # Creates the "heat-admin" user if configured via the environment
+ # Should return a OS::Heat::MultipartMime reference via OS::stack_id
+ NodeAdminUserData:
+ type: OS::TripleO::NodeAdminUserData
+
+ # For optional operator additional userdata
+ # Should return a OS::Heat::MultipartMime reference via OS::stack_id
NodeUserData:
type: OS::TripleO::NodeUserData
@@ -91,14 +108,16 @@ resources:
NetIpMap:
type: OS::TripleO::Network::Ports::NetIpMap
properties:
+ ControlPlaneIp: {get_attr: [CephStorage, networks, ctlplane, 0]}
StorageIp: {get_attr: [StoragePort, ip_address]}
StorageMgmtIp: {get_attr: [StorageMgmtPort, ip_address]}
NetIpSubnetMap:
- type: OS::TripleO::Network::Ports::NetIpMap
+ type: OS::TripleO::Network::Ports::NetIpSubnetMap
properties:
- StorageIp: {get_attr: [StoragePort, ip_subnet]}
- StorageMgmtIp: {get_attr: [StorageMgmtPort, ip_subnet]}
+ ControlPlaneIp: {get_attr: [CephStorage, networks, ctlplane, 0]}
+ StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
+ StorageMgmtIpSubnet: {get_attr: [StorageMgmtPort, ip_subnet]}
NetworkDeployment:
type: OS::TripleO::SoftwareDeployment
@@ -119,8 +138,8 @@ resources:
params:
server: {get_param: NtpServer}
enable_package_install: {get_param: EnablePackageInstall}
- ceph_cluster_network: {get_attr: [NetIpSubnetMap, net_ip_map, {get_param: [ServiceNetMap, CephClusterNetwork]}]}
- ceph_public_network: {get_attr: [NetIpSubnetMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
+ ceph_cluster_network: {get_attr: [NetIpSubnetMap, net_ip_subnet_map, {get_param: [ServiceNetMap, CephClusterNetwork]}]}
+ ceph_public_network: {get_attr: [NetIpSubnetMap, net_ip_subnet_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
CephStorageConfig:
type: OS::Heat::StructuredConfig
diff --git a/puppet/cinder-storage-puppet.yaml b/puppet/cinder-storage-puppet.yaml
index 091d1f1b..d764c6f7 100644
--- a/puppet/cinder-storage-puppet.yaml
+++ b/puppet/cinder-storage-puppet.yaml
@@ -120,9 +120,26 @@ resources:
networks:
- network: ctlplane
user_data_format: SOFTWARE_CONFIG
- user_data: {get_resource: NodeUserData}
+ user_data: {get_resource: UserData}
name: {get_param: Hostname}
+ # Combine the NodeAdminUserData and NodeUserData mime archives
+ UserData:
+ type: OS::Heat::MultipartMime
+ properties:
+ parts:
+ - config: {get_resource: NodeAdminUserData}
+ type: multipart
+ - config: {get_resource: NodeUserData}
+ type: multipart
+
+ # Creates the "heat-admin" user if configured via the environment
+ # Should return a OS::Heat::MultipartMime reference via OS::stack_id
+ NodeAdminUserData:
+ type: OS::TripleO::NodeAdminUserData
+
+ # For optional operator additional userdata
+ # Should return a OS::Heat::MultipartMime reference via OS::stack_id
NodeUserData:
type: OS::TripleO::NodeUserData
@@ -151,6 +168,7 @@ resources:
NetIpMap:
type: OS::TripleO::Network::Ports::NetIpMap
properties:
+ ControlPlaneIp: {get_attr: [BlockStorage, networks, ctlplane, 0]}
InternalApiIp: {get_attr: [InternalApiPort, ip_address]}
StorageIp: {get_attr: [StoragePort, ip_address]}
StorageMgmtIp: {get_attr: [StorageMgmtPort, ip_address]}
diff --git a/puppet/compute-puppet.yaml b/puppet/compute-puppet.yaml
index c46af07c..74e9b63e 100644
--- a/puppet/compute-puppet.yaml
+++ b/puppet/compute-puppet.yaml
@@ -70,9 +70,12 @@ parameters:
default: default
constraints:
- custom_constraint: nova.keypair
- KeystoneHost:
+ KeystoneAdminApiVirtualIP:
type: string
default: ''
+ KeystonePublicApiVirtualIP:
+ type: string
+ default: ''
NeutronBridgeMappings:
description: >
The OVS logical->physical bridge mappings to use. See the Neutron
@@ -260,9 +263,26 @@ resources:
networks:
- network: ctlplane
user_data_format: SOFTWARE_CONFIG
- user_data: {get_resource: NodeUserData}
+ user_data: {get_resource: UserData}
name: {get_param: Hostname}
+ # Combine the NodeAdminUserData and NodeUserData mime archives
+ UserData:
+ type: OS::Heat::MultipartMime
+ properties:
+ parts:
+ - config: {get_resource: NodeAdminUserData}
+ type: multipart
+ - config: {get_resource: NodeUserData}
+ type: multipart
+
+ # Creates the "heat-admin" user if configured via the environment
+ # Should return a OS::Heat::MultipartMime reference via OS::stack_id
+ NodeAdminUserData:
+ type: OS::TripleO::NodeAdminUserData
+
+ # For optional operator additional userdata
+ # Should return a OS::Heat::MultipartMime reference via OS::stack_id
NodeUserData:
type: OS::TripleO::NodeUserData
@@ -284,6 +304,7 @@ resources:
NetIpMap:
type: OS::TripleO::Network::Ports::NetIpMap
properties:
+ ControlPlaneIp: {get_attr: [NovaCompute, networks, ctlplane, 0]}
InternalApiIp: {get_attr: [InternalApiPort, ip_address]}
StorageIp: {get_attr: [StoragePort, ip_address]}
TenantIp: {get_attr: [TenantPort, ip_address]}
@@ -410,7 +431,7 @@ resources:
list_join:
- ''
- - 'http://'
- - {get_param: KeystoneHost}
+ - {get_param: KeystonePublicApiVirtualIP}
- ':5000/v2.0'
snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
@@ -471,7 +492,7 @@ resources:
list_join:
- ''
- - 'http://'
- - {get_param: NeutronHost}
+ - {get_param: KeystoneAdminApiVirtualIP}
- ':35357/v2.0'
admin_password: {get_param: AdminPassword}
rabbit_username: {get_param: RabbitUserName}
diff --git a/puppet/controller-puppet.yaml b/puppet/controller-puppet.yaml
index d61db429..f1849e3e 100644
--- a/puppet/controller-puppet.yaml
+++ b/puppet/controller-puppet.yaml
@@ -227,6 +227,16 @@ parameters:
description: Keystone key for signing tokens.
type: string
hidden: true
+ KeystoneNotificationDriver:
+ description: Comma-separated list of Oslo notification drivers used by Keystone
+ default: ['messaging']
+ type: comma_delimited_list
+ KeystoneNotificationFormat:
+ description: The Keystone notification format
+ default: 'basic'
+ type: string
+ constraints:
+ - allowed_values: [ 'basic', 'cadf' ]
MysqlClusterUniquePart:
description: A unique identifier of the MySQL cluster the controller is in.
type: string
@@ -481,6 +491,9 @@ parameters:
MysqlVirtualIP:
type: string
default: ''
+ KeystoneAdminApiVirtualIP:
+ type: string
+ default: ''
KeystonePublicApiVirtualIP:
type: string
default: ''
@@ -518,9 +531,26 @@ resources:
networks:
- network: ctlplane
user_data_format: SOFTWARE_CONFIG
- user_data: {get_resource: NodeUserData}
+ user_data: {get_resource: UserData}
name: {get_param: Hostname}
+ # Combine the NodeAdminUserData and NodeUserData mime archives
+ UserData:
+ type: OS::Heat::MultipartMime
+ properties:
+ parts:
+ - config: {get_resource: NodeAdminUserData}
+ type: multipart
+ - config: {get_resource: NodeUserData}
+ type: multipart
+
+ # Creates the "heat-admin" user if configured via the environment
+ # Should return a OS::Heat::MultipartMime reference via OS::stack_id
+ NodeAdminUserData:
+ type: OS::TripleO::NodeAdminUserData
+
+ # For optional operator additional userdata
+ # Should return a OS::Heat::MultipartMime reference via OS::stack_id
NodeUserData:
type: OS::TripleO::NodeUserData
@@ -552,6 +582,7 @@ resources:
NetIpMap:
type: OS::TripleO::Network::Ports::NetIpMap
properties:
+ ControlPlaneIp: {get_attr: [Controller, networks, ctlplane, 0]}
ExternalIp: {get_attr: [ExternalPort, ip_address]}
InternalApiIp: {get_attr: [InternalApiPort, ip_address]}
StorageIp: {get_attr: [StoragePort, ip_address]}
@@ -559,13 +590,14 @@ resources:
TenantIp: {get_attr: [TenantPort, ip_address]}
NetIpSubnetMap:
- type: OS::TripleO::Network::Ports::NetIpMap
+ type: OS::TripleO::Network::Ports::NetIpSubnetMap
properties:
- ExternalIp: {get_attr: [ExternalPort, ip_subnet]}
- InternalApiIp: {get_attr: [InternalApiPort, ip_subnet]}
- StorageIp: {get_attr: [StoragePort, ip_subnet]}
- StorageMgmtIp: {get_attr: [StorageMgmtPort, ip_subnet]}
- TenantIp: {get_attr: [TenantPort, ip_subnet]}
+ ControlPlaneIp: {get_attr: [Controller, networks, ctlplane, 0]}
+ ExternalIpSubnet: {get_attr: [ExternalPort, ip_subnet]}
+ InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
+ StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
+ StorageMgmtIpSubnet: {get_attr: [StorageMgmtPort, ip_subnet]}
+ TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
NetworkConfig:
type: OS::TripleO::Controller::Net::SoftwareConfig
@@ -671,6 +703,8 @@ resources:
keystone_signing_certificate: {get_param: KeystoneSigningCertificate}
keystone_ssl_certificate: {get_param: KeystoneSSLCertificate}
keystone_ssl_certificate_key: {get_param: KeystoneSSLCertificateKey}
+ keystone_notification_driver: {get_param: KeystoneNotificationDriver}
+ keystone_notification_format: {get_param: KeystoneNotificationFormat}
keystone_dsn:
list_join:
- ''
@@ -683,7 +717,7 @@ resources:
list_join:
- ''
- - 'http://'
- - {get_param: KeystonePublicApiVirtualIP}
+ - {get_param: KeystoneAdminApiVirtualIP}
- ':35357/'
keystone_auth_uri:
list_join:
@@ -769,7 +803,7 @@ resources:
list_join:
- ''
- - 'http://'
- - {get_param: KeystonePublicApiVirtualIP}
+ - {get_param: KeystoneAdminApiVirtualIP}
- ':35357/v2.0'
ceilometer_backend: {get_param: CeilometerBackend}
ceilometer_metering_secret: {get_param: CeilometerMeteringSecret}
@@ -849,8 +883,8 @@ resources:
memcached_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
mysql_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
mysql_virtual_ip: {get_param: MysqlVirtualIP}
- ceph_cluster_network: {get_attr: [NetIpSubnetMap, net_ip_map, {get_param: [ServiceNetMap, CephClusterNetwork]}]}
- ceph_public_network: {get_attr: [NetIpSubnetMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
+ ceph_cluster_network: {get_attr: [NetIpSubnetMap, net_ip_subnet_map, {get_param: [ServiceNetMap, CephClusterNetwork]}]}
+ ceph_public_network: {get_attr: [NetIpSubnetMap, net_ip_subnet_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
ceph_public_ip: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
# Map heat metadata into hiera datafiles
@@ -999,6 +1033,12 @@ resources:
keystone::admin_bind_host: {get_input: keystone_admin_api_network}
keystone::debug: {get_input: debug}
keystone::db::mysql::password: {get_input: admin_token}
+ keystone::rabbit_userid: {get_input: rabbit_username}
+ keystone::rabbit_password: {get_input: rabbit_password}
+ keystone::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
+ keystone::rabbit_port: {get_input: rabbit_client_port}
+ keystone::notification_driver: {get_input: keystone_notification_driver}
+ keystone::notification_format: {get_input: keystone_notification_format}
# MongoDB
mongodb::server::bind_ip: {get_input: mongo_db_network}
mongodb::server::nojournal: {get_input: mongodb_no_journal}
diff --git a/puppet/extraconfig/ceph/ceph-external-config.yaml b/puppet/extraconfig/ceph/ceph-external-config.yaml
new file mode 100644
index 00000000..62907104
--- /dev/null
+++ b/puppet/extraconfig/ceph/ceph-external-config.yaml
@@ -0,0 +1,65 @@
+heat_template_version: 2015-04-30
+description: 'Configure parameters for an external Ceph cluster via Puppet.'
+
+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 'openstack' user keyring.
+ ceph_fsid:
+ default: ''
+ type: string
+ # The following parameters are unused for external Ceph clusters and
+ # are here and exist for compatibility
+ 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
+
+resources:
+ CephClusterConfigImpl:
+ type: OS::Heat::StructuredConfig
+ properties:
+ group: os-apply-config
+ config:
+ hiera:
+ datafiles:
+ ceph_cluster:
+ mapped_data:
+ ceph_storage_count: {get_param: ceph_storage_count}
+ enable_external_ceph: true
+ ceph::profile::params::mon_host: {get_param: ceph_external_mon_ips}
+ ceph::profile::params::fsid: {get_param: ceph_fsid}
+ ceph::profile::params::client_keys:
+ str_replace:
+ template: "{
+ client.openstack: {
+ secret: 'CLIENT_KEY',
+ mode: '0644',
+ cap_mon: 'allow r',
+ cap_osd: 'allow class-read object_prefix rbd_children, allow rwx pool=volumes, allow rwx pool=vms, allow rwx pool=images'
+ }
+ }"
+ params:
+ CLIENT_KEY: {get_param: ceph_client_key}
+
+
+outputs:
+ config_id:
+ description: The ID of the CephClusterConfigImpl resource.
+ value:
+ {get_resource: CephClusterConfigImpl}
diff --git a/puppet/hieradata/common.yaml b/puppet/hieradata/common.yaml
index ab88a69a..455f7f22 100644
--- a/puppet/hieradata/common.yaml
+++ b/puppet/hieradata/common.yaml
@@ -33,3 +33,4 @@ neutron::rabbit_heartbeat_timeout_threshold: 60
cinder::rabbit_heartbeat_timeout_threshold: 60
ceilometer::rabbit_heartbeat_timeout_threshold: 60
heat::rabbit_heartbeat_timeout_threshold: 60
+keystone::rabbit_heartbeat_timeout_threshold: 60
diff --git a/puppet/hieradata/controller.yaml b/puppet/hieradata/controller.yaml
index 1ae076d2..08ea3ebc 100644
--- a/puppet/hieradata/controller.yaml
+++ b/puppet/hieradata/controller.yaml
@@ -75,6 +75,7 @@ neutron::agents::dhcp::dnsmasq_config_file: /etc/neutron/dnsmasq-neutron.conf
# nova
nova::notify_on_state_change: 'vm_and_task_state'
nova::api::osapi_v3: true
+nova::scheduler::filter::ram_allocation_ratio: '1.0'
nova::config::nova_config:
DEFAULT/default_floating_pool:
diff --git a/puppet/manifests/overcloud_controller.pp b/puppet/manifests/overcloud_controller.pp
index b001d667..6cf01826 100644
--- a/puppet/manifests/overcloud_controller.pp
+++ b/puppet/manifests/overcloud_controller.pp
@@ -122,8 +122,7 @@ if hiera('step') >= 2 {
# pre-install swift here so we can build rings
include ::swift
- $cinder_enable_rbd_backend = hiera('cinder_enable_rbd_backend', false)
- $enable_ceph = $cinder_enable_rbd_backend
+ $enable_ceph = hiera('ceph_storage_count', 0) > 0
if $enable_ceph {
class { 'ceph::profile::params':
@@ -147,10 +146,13 @@ if hiera('step') >= 2 {
} -> Class['ceph::profile::osd']
}
- include ::ceph::profile::client
include ::ceph::profile::osd
}
+ if str2bool(hiera('enable_external_ceph', 'false')) {
+ include ::ceph::profile::client
+ }
+
} #END STEP 2
if hiera('step') >= 3 {
@@ -218,6 +220,7 @@ if hiera('step') >= 3 {
include ::nova::network::neutron
include ::nova::vncproxy
include ::nova::scheduler
+ include ::nova::scheduler::filter
include ::neutron
include ::neutron::server
@@ -236,6 +239,7 @@ if hiera('step') >= 3 {
class { 'neutron::plugins::ml2':
flat_networks => split(hiera('neutron_flat_networks'), ','),
tenant_network_types => [hiera('neutron_tenant_network_type')],
+ mechanism_drivers => [hiera('neutron_mechanism_drivers')],
}
class { 'neutron::agents::ml2::ovs':
bridge_mappings => split(hiera('neutron_bridge_mappings'), ','),
@@ -276,20 +280,21 @@ if hiera('step') >= 3 {
$ceph_pools = hiera('ceph_pools')
ceph::pool { $ceph_pools : }
+
+ $cinder_pool_requires = [Ceph::Pool['volumes']]
+
+ } else {
+ $cinder_pool_requires = []
}
- if $cinder_enable_rbd_backend {
+ if hiera('cinder_enable_rbd_backend', false) {
$cinder_rbd_backend = 'tripleo_ceph'
- cinder_config {
- "${cinder_rbd_backend}/host": value => 'hostgroup';
- }
-
cinder::backend::rbd { $cinder_rbd_backend :
rbd_pool => 'volumes',
rbd_user => 'openstack',
rbd_secret_uuid => hiera('ceph::profile::params::fsid'),
- require => Ceph::Pool['volumes'],
+ require => $cinder_pool_requires,
}
}
diff --git a/puppet/manifests/overcloud_controller_pacemaker.pp b/puppet/manifests/overcloud_controller_pacemaker.pp
index cfd30f13..14c01788 100644
--- a/puppet/manifests/overcloud_controller_pacemaker.pp
+++ b/puppet/manifests/overcloud_controller_pacemaker.pp
@@ -438,8 +438,7 @@ MYSQL_HOST=localhost\n",
include ::swift
# Ceph
- $cinder_enable_rbd_backend = hiera('cinder_enable_rbd_backend', false)
- $enable_ceph = $cinder_enable_rbd_backend
+ $enable_ceph = hiera('ceph_storage_count', 0) > 0
if $enable_ceph {
class { 'ceph::profile::params':
@@ -463,10 +462,13 @@ MYSQL_HOST=localhost\n",
} -> Class['ceph::profile::osd']
}
- include ::ceph::profile::client
include ::ceph::profile::osd
}
+ if str2bool(hiera('enable_external_ceph', 'false')) {
+ include ::ceph::profile::client
+ }
+
} #END STEP 2
@@ -561,6 +563,7 @@ if hiera('step') >= 3 {
manage_service => false,
enabled => false,
}
+ include ::nova::scheduler::filter
class { '::nova::scheduler' :
manage_service => false,
enabled => false,
@@ -596,6 +599,7 @@ if hiera('step') >= 3 {
class { 'neutron::plugins::ml2':
flat_networks => split(hiera('neutron_flat_networks'), ','),
tenant_network_types => [hiera('neutron_tenant_network_type')],
+ mechanism_drivers => [hiera('neutron_mechanism_drivers')],
}
class { 'neutron::agents::ml2::ovs':
manage_service => false,
@@ -643,20 +647,21 @@ if hiera('step') >= 3 {
$ceph_pools = hiera('ceph_pools')
ceph::pool { $ceph_pools : }
+
+ $cinder_pool_requires = [Ceph::Pool['volumes']]
+
+ } else {
+ $cinder_pool_requires = []
}
- if $cinder_enable_rbd_backend {
+ if hiera('cinder_enable_rbd_backend', false) {
$cinder_rbd_backend = 'tripleo_ceph'
- cinder_config {
- "${cinder_rbd_backend}/host": value => 'hostgroup';
- }
-
cinder::backend::rbd { $cinder_rbd_backend :
rbd_pool => 'volumes',
rbd_user => 'openstack',
rbd_secret_uuid => hiera('ceph::profile::params::fsid'),
- require => Ceph::Pool['volumes'],
+ require => $cinder_pool_requires,
}
}
diff --git a/puppet/swift-storage-puppet.yaml b/puppet/swift-storage-puppet.yaml
index b3579429..5c4ff5a1 100644
--- a/puppet/swift-storage-puppet.yaml
+++ b/puppet/swift-storage-puppet.yaml
@@ -89,9 +89,26 @@ resources:
networks:
- network: ctlplane
user_data_format: SOFTWARE_CONFIG
- user_data: {get_resource: NodeUserData}
+ user_data: {get_resource: UserData}
name: {get_param: Hostname}
+ # Combine the NodeAdminUserData and NodeUserData mime archives
+ UserData:
+ type: OS::Heat::MultipartMime
+ properties:
+ parts:
+ - config: {get_resource: NodeAdminUserData}
+ type: multipart
+ - config: {get_resource: NodeUserData}
+ type: multipart
+
+ # Creates the "heat-admin" user if configured via the environment
+ # Should return a OS::Heat::MultipartMime reference via OS::stack_id
+ NodeAdminUserData:
+ type: OS::TripleO::NodeAdminUserData
+
+ # For optional operator additional userdata
+ # Should return a OS::Heat::MultipartMime reference via OS::stack_id
NodeUserData:
type: OS::TripleO::NodeUserData
@@ -120,6 +137,7 @@ resources:
NetIpMap:
type: OS::TripleO::Network::Ports::NetIpMap
properties:
+ ControlPlaneIp: {get_attr: [SwiftStorage, networks, ctlplane, 0]}
InternalApiIp: {get_attr: [InternalApiPort, ip_address]}
StorageIp: {get_attr: [StoragePort, ip_address]}
StorageMgmtIp: {get_attr: [StorageMgmtPort, ip_address]}