aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ceph-storage.yaml6
-rw-r--r--cinder-storage.yaml7
-rw-r--r--compute.yaml6
-rw-r--r--controller.yaml6
-rw-r--r--environments/cinder-netapp-config.yaml30
-rw-r--r--extraconfig/controller/cinder-netapp.yaml38
-rw-r--r--extraconfig/controller/noop.yaml3
-rwxr-xr-xextraconfig/tasks/yum_update.sh41
-rw-r--r--extraconfig/tasks/yum_update.yaml26
-rw-r--r--overcloud-resource-registry-puppet.yaml4
-rw-r--r--overcloud-resource-registry.yaml1
-rw-r--r--overcloud-without-mergepy.yaml13
-rw-r--r--puppet/ceph-storage-puppet.yaml18
-rw-r--r--puppet/cinder-storage-puppet.yaml18
-rw-r--r--puppet/compute-puppet.yaml18
-rw-r--r--puppet/controller-puppet.yaml25
-rw-r--r--puppet/manifests/overcloud_controller.pp18
-rw-r--r--puppet/manifests/overcloud_controller_pacemaker.pp36
-rw-r--r--puppet/swift-storage-puppet.yaml18
-rw-r--r--swift-storage.yaml6
20 files changed, 323 insertions, 15 deletions
diff --git a/ceph-storage.yaml b/ceph-storage.yaml
index 05d80927..138e6ea5 100644
--- a/ceph-storage.yaml
+++ b/ceph-storage.yaml
@@ -33,6 +33,12 @@ parameters:
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
resources:
CephStorage:
diff --git a/cinder-storage.yaml b/cinder-storage.yaml
index aee67c9d..9541ed1c 100644
--- a/cinder-storage.yaml
+++ b/cinder-storage.yaml
@@ -100,6 +100,13 @@ parameters:
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
+
resources:
BlockStorage:
type: OS::Nova::Server
diff --git a/compute.yaml b/compute.yaml
index f434c277..abd59103 100644
--- a/compute.yaml
+++ b/compute.yaml
@@ -248,6 +248,12 @@ parameters:
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
resources:
diff --git a/controller.yaml b/controller.yaml
index efd73da8..9fc91562 100644
--- a/controller.yaml
+++ b/controller.yaml
@@ -441,6 +441,12 @@ parameters:
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
resources:
diff --git a/environments/cinder-netapp-config.yaml b/environments/cinder-netapp-config.yaml
new file mode 100644
index 00000000..4dd9eed7
--- /dev/null
+++ b/environments/cinder-netapp-config.yaml
@@ -0,0 +1,30 @@
+# A Heat environment file which can be used to enable a
+# a Cinder NetApp backend.
+resource_registry:
+ OS::TripleO::Controller::CinderBackend: extraconfig/controller/cinder-netapp.yaml
+
+parameter_defaults:
+ CinderBackendConfig:
+ CinderEnableNetappBackend: false
+ CinderNetappBackendName: 'tripleo_netapp'
+ CinderNetappLogin: ''
+ CinderNetappPassword: ''
+ CinderNetappServerHostname: ''
+ CinderNetappServerPort: '80'
+ CinderNetappSizeMultiplier: '1.2'
+ CinderNetappStorageFamily: 'ontap_cluster'
+ CinderNetappStorageProtocol: 'nfs'
+ CinderNetappTransportType: 'http'
+ CinderNetappVfiler: ''
+ CinderNetappVolumeList: ''
+ CinderNetappVserver: ''
+ CinderNetappPartnerBackendName: ''
+ CinderNetappNfsShares: ''
+ CinderNetappNfsSharesConfig: '/etc/cinder/shares.conf'
+ CinderNetappNfsMountOptions: ''
+ CinderNetappCopyOffloadToolPath: ''
+ CinderNetappControllerIps: ''
+ CinderNetappSaPassword: ''
+ CinderNetappStoragePools: ''
+ CinderNetappEseriesHostType: 'linux_dm_mp'
+ CinderNetappWebservicePath: '/devmgr/v2'
diff --git a/extraconfig/controller/cinder-netapp.yaml b/extraconfig/controller/cinder-netapp.yaml
new file mode 100644
index 00000000..223ceacd
--- /dev/null
+++ b/extraconfig/controller/cinder-netapp.yaml
@@ -0,0 +1,38 @@
+heat_template_version: 2015-04-30
+
+description: >
+ Configure hieradata for Cinder Netapp configuration
+
+resources:
+ CinderNetappConfig:
+ type: OS::Heat::StructuredConfig
+ properties:
+ group: os-apply-config
+ config:
+ hiera:
+ datafiles:
+ cinder_netapp_data:
+ mapped_data:
+ cinder_enable_netapp_backend: {get_param: CinderEnableNetappBackend}
+ cinder::backend::netapp::title: {get_param: CinderNetappBackendName}
+ cinder::backend::netapp::netapp_login: {get_param: CinderNetappLogin}
+ cinder::backend::netapp::netapp_password: {get_param: CinderNetappPassword}
+ cinder::backend::netapp::netapp_hostname: {get_param: CinderNetappServerHostname}
+ cinder::backend::netapp::netapp_server_port: {get_param: CinderNetappServerPort}
+ cinder::backend::netapp::netapp_size_multiplier: {get_param: CinderNetappSizeMultiplier}
+ cinder::backend::netapp::netapp_storage_family: {get_param: CinderNetappStorageFamily}
+ cinder::backend::netapp::netapp_storage_protocol: {get_param: CinderNetappStorageProtocol}
+ cinder::backend::netapp::netapp_transport_type: {get_param: CinderNetappTransportType}
+ cinder::backend::netapp::netapp_vfiler: {get_param: CinderNetappVfiler}
+ cinder::backend::netapp::netapp_volume_list: {get_param: CinderNetappVolumeList}
+ cinder::backend::netapp::netapp_vserver: {get_param: CinderNetappVserver}
+ cinder::backend::netapp::netapp_partner_backend_name: {get_param: CinderNetappPartnerBackendName}
+ cinder::backend::netapp::nfs_shares: {get_param: CinderNetappNfsShares}
+ cinder::backend::netapp::nfs_shares_config: {get_param: CinderNetappNfsSharesConfig}
+ cinder::backend::netapp::nfs_mount_options: {get_param: CinderNetappNfsMountOptions}
+ cinder::backend::netapp::netapp_copyoffload_tool_path: {get_param: CinderNetappCopyOffloadToolPath}
+ cinder::backend::netapp::netapp_controller_ips: {get_param: CinderNetappControllerIps}
+ cinder::backend::netapp::netapp_sa_password: {get_param: CinderNetappSaPassword}
+ cinder::backend::netapp::netapp_storage_pools: {get_param: CinderNetappStoragePools}
+ cinder::backend::netapp::netapp_eseries_host_type: {get_param: CinderNetappEseriesHostType}
+ cinder::backend::netapp::netapp_webservice_path: {get_param: CinderNetappWebservicePath}
diff --git a/extraconfig/controller/noop.yaml b/extraconfig/controller/noop.yaml
new file mode 100644
index 00000000..2eb35763
--- /dev/null
+++ b/extraconfig/controller/noop.yaml
@@ -0,0 +1,3 @@
+heat_template_version: 2015-04-30
+
+description: A stack which doesn't configure anything.
diff --git a/extraconfig/tasks/yum_update.sh b/extraconfig/tasks/yum_update.sh
new file mode 100755
index 00000000..3d4c772b
--- /dev/null
+++ b/extraconfig/tasks/yum_update.sh
@@ -0,0 +1,41 @@
+#!/bin/bash
+
+# A heat-config-script which runs yum update during a stack-update.
+# Inputs:
+# deploy_action - yum will only be run if this is UPDATE
+# update_identifier - yum will only run for previously unused values of update_identifier
+# command - yum sub-command to run, defaults to "update"
+# command_arguments - yum command arguments, defaults to ""
+
+echo "Started yum_update.sh on server $deploy_server_id at `date`"
+
+if [[ -z "$update_identifier" ]]; then
+ echo "Not running due to unset update_identifier"
+ exit 0
+fi
+
+timestamp_dir=/var/lib/overcloud-yum-update
+mkdir -p $timestamp_dir
+
+# sanitise to remove unusual characters
+update_identifier=${update_identifier//[^a-zA-Z0-9-_]/}
+
+timestamp_file="$timestamp_dir/$update_identifier"
+if [[ -a "$timestamp_file" ]]; then
+ echo "Not running for already-run timestamp \"$update_identifier\""
+ exit 0
+fi
+touch "$timestamp_file"
+
+command=${command:-update}
+full_command="yum -y $command $command_arguments"
+echo "Running: $full_command"
+
+result=$($full_command)
+return_code=$?
+echo "$result"
+echo "yum return code: $return_code"
+
+echo "Finished yum_update.sh on server $deploy_server_id at `date`"
+
+exit $return_code
diff --git a/extraconfig/tasks/yum_update.yaml b/extraconfig/tasks/yum_update.yaml
new file mode 100644
index 00000000..e918149e
--- /dev/null
+++ b/extraconfig/tasks/yum_update.yaml
@@ -0,0 +1,26 @@
+heat_template_version: 2014-10-16
+
+description: >
+ Software-config for performing package updates using yum
+
+resources:
+
+ config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ group: script
+ config: {get_file: yum_update.sh}
+ inputs:
+ - name: update_identifier
+ description: yum will only run for previously unused values of update_identifier
+ default: ''
+ - name: command
+ description: yum sub-command to run, defaults to "update"
+ default: update
+ - name: command_arguments
+ description: yum command arguments, defaults to ""
+ default: ''
+
+outputs:
+ OS::stack_id:
+ value: {get_resource: config} \ No newline at end of file
diff --git a/overcloud-resource-registry-puppet.yaml b/overcloud-resource-registry-puppet.yaml
index b7e0c1f8..6e423048 100644
--- a/overcloud-resource-registry-puppet.yaml
+++ b/overcloud-resource-registry-puppet.yaml
@@ -23,6 +23,7 @@ resource_registry:
OS::TripleO::BootstrapNode::SoftwareConfig: puppet/bootstrap-config.yaml
OS::TripleO::NodeUserData: firstboot/userdata_default.yaml
OS::TripleO::NodeExtraConfigPost: extraconfig/post_deploy/default.yaml
+ OS::TripleO::Tasks::PackageUpdate: extraconfig/tasks/yum_update.yaml
# TripleO overcloud networks
OS::TripleO::Network: network/networks.yaml
@@ -64,5 +65,8 @@ resource_registry:
OS::TripleO::BlockStorage::Ports::StoragePort: network/ports/noop.yaml
OS::TripleO::BlockStorage::Ports::StorageMgmtPort: network/ports/noop.yaml
+ # Cinder backend config for the controller role
+ OS::TripleO::Controller::CinderBackend: extraconfig/controller/noop.yaml
+
parameter_defaults:
EnablePackageInstall: false
diff --git a/overcloud-resource-registry.yaml b/overcloud-resource-registry.yaml
index 3d92082c..7be199da 100644
--- a/overcloud-resource-registry.yaml
+++ b/overcloud-resource-registry.yaml
@@ -21,6 +21,7 @@ resource_registry:
OS::TripleO::BootstrapNode::SoftwareConfig: bootstrap-config.yaml
OS::TripleO::NodeUserData: firstboot/userdata_default.yaml
OS::TripleO::NodeExtraConfigPost: extraconfig/post_deploy/default.yaml
+ OS::TripleO::Tasks::PackageUpdate: extraconfig/tasks/yum_update.yaml
# TripleO overcloud networks
OS::TripleO::Network: network/networks.yaml
diff --git a/overcloud-without-mergepy.yaml b/overcloud-without-mergepy.yaml
index 8c2c86e1..661497ce 100644
--- a/overcloud-without-mergepy.yaml
+++ b/overcloud-without-mergepy.yaml
@@ -565,6 +565,14 @@ parameters:
constraints:
- custom_constraint: nova.flavor
+# Identifiers to trigger tasks on nodes
+ UpdateIdentifier:
+ default: ''
+ type: string
+ description: >
+ Setting to a previously unused value during stack-update will trigger
+ package update on all nodes
+
resources:
HeatAuthEncryptionKey:
@@ -676,6 +684,7 @@ resources:
MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
+ UpdateIdentifier: {get_param: UpdateIdentifier}
Compute:
type: OS::Heat::ResourceGroup
@@ -733,6 +742,7 @@ resources:
SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
ServiceNetMap: {get_param: ServiceNetMap}
+ UpdateIdentifier: {get_param: UpdateIdentifier}
BlockStorage:
type: OS::Heat::ResourceGroup
@@ -757,6 +767,7 @@ resources:
RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
RabbitClientPort: {get_param: RabbitClientPort}
NtpServer: {get_param: NtpServer}
+ UpdateIdentifier: {get_param: UpdateIdentifier}
ObjectStorage:
type: OS::Heat::ResourceGroup
@@ -775,6 +786,7 @@ resources:
Image: {get_param: SwiftStorageImage}
Replicas: { get_param: SwiftReplicas}
NtpServer: {get_param: NtpServer}
+ UpdateIdentifier: {get_param: UpdateIdentifier}
CephStorage:
type: OS::Heat::ResourceGroup
@@ -789,6 +801,7 @@ resources:
Flavor: {get_param: OvercloudCephStorageFlavor}
NtpServer: {get_param: NtpServer}
ServiceNetMap: {get_param: ServiceNetMap}
+ UpdateIdentifier: {get_param: UpdateIdentifier}
ControllerIpListMap:
type: OS::TripleO::Network::Ports::NetIpListMap
diff --git a/puppet/ceph-storage-puppet.yaml b/puppet/ceph-storage-puppet.yaml
index e3fa56b9..1ab381af 100644
--- a/puppet/ceph-storage-puppet.yaml
+++ b/puppet/ceph-storage-puppet.yaml
@@ -33,6 +33,12 @@ parameters:
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
resources:
CephStorage:
@@ -116,6 +122,18 @@ resources:
ceph::profile::params::cluster_network: {get_input: ceph_cluster_network}
ceph::profile::params::public_network: {get_input: ceph_public_network}
+ UpdateConfig:
+ type: OS::TripleO::Tasks::PackageUpdate
+
+ UpdateDeployment:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config: {get_resource: UpdateConfig}
+ server: {get_resource: CephStorage}
+ input_values:
+ update_identifier:
+ get_param: UpdateIdentifier
+
outputs:
hosts_entry:
value:
diff --git a/puppet/cinder-storage-puppet.yaml b/puppet/cinder-storage-puppet.yaml
index 007a489c..74df116a 100644
--- a/puppet/cinder-storage-puppet.yaml
+++ b/puppet/cinder-storage-puppet.yaml
@@ -111,6 +111,12 @@ parameters:
default: 'false'
description: Set to true to enable package installation via Puppet
type: boolean
+ UpdateIdentifier:
+ default: ''
+ type: string
+ description: >
+ Setting to a previously unused value during stack-update will trigger
+ package update on all nodes
resources:
BlockStorage:
@@ -221,6 +227,18 @@ resources:
snmpd_readonly_user_name: {get_input: snmpd_readonly_user_name}
snmpd_readonly_user_password: {get_input: snmpd_readonly_user_password}
+ UpdateConfig:
+ type: OS::TripleO::Tasks::PackageUpdate
+
+ UpdateDeployment:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config: {get_resource: UpdateConfig}
+ server: {get_resource: BlockStorage}
+ input_values:
+ update_identifier:
+ get_param: UpdateIdentifier
+
outputs:
hosts_entry:
value:
diff --git a/puppet/compute-puppet.yaml b/puppet/compute-puppet.yaml
index de888c7f..12e701dd 100644
--- a/puppet/compute-puppet.yaml
+++ b/puppet/compute-puppet.yaml
@@ -252,6 +252,12 @@ parameters:
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
resources:
@@ -466,6 +472,18 @@ resources:
server: {get_param: NtpServer}
enable_package_install: {get_param: EnablePackageInstall}
+ UpdateConfig:
+ type: OS::TripleO::Tasks::PackageUpdate
+
+ UpdateDeployment:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config: {get_resource: UpdateConfig}
+ server: {get_resource: NovaCompute}
+ input_values:
+ update_identifier:
+ get_param: UpdateIdentifier
+
outputs:
ip_address:
description: IP address of the server in the ctlplane network
diff --git a/puppet/controller-puppet.yaml b/puppet/controller-puppet.yaml
index c5ade57d..05bd27ab 100644
--- a/puppet/controller-puppet.yaml
+++ b/puppet/controller-puppet.yaml
@@ -49,6 +49,11 @@ parameters:
description: The password for the cinder service and db account, used by cinder-api.
type: string
hidden: true
+ CinderBackendConfig:
+ default: {}
+ description: Contains parameters to configure Cinder backends. Typically
+ set via parameter_defaults in the resource registry.
+ type: json
CloudName:
default: ''
description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
@@ -449,6 +454,12 @@ parameters:
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
resources:
@@ -567,6 +578,7 @@ resources:
cinder_password: {get_param: CinderPassword}
cinder_enable_iscsi_backend: {get_param: CinderEnableIscsiBackend}
cinder_iscsi_helper: {get_param: CinderISCSIHelper}
+ cinder_backend_config: {get_param: CinderBackendConfig}
cinder_dsn:
list_join:
- ''
@@ -822,6 +834,7 @@ resources:
cinder::debug: {get_input: debug}
cinder_enable_iscsi_backend: {get_input: cinder_enable_iscsi_backend}
cinder::glance::glance_api_servers: {get_input: glance_api_servers}
+ cinder_backend_config: {get_input: CinderBackendConfig}
# Glance
glance::api::bind_port: {get_input: glance_port}
@@ -981,6 +994,18 @@ resources:
tripleo::loadbalancer::public_virtual_interface: {get_input: public_virtual_interface}
enable_package_install: {get_input: enable_package_install}
+ UpdateConfig:
+ type: OS::TripleO::Tasks::PackageUpdate
+
+ UpdateDeployment:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config: {get_resource: UpdateConfig}
+ server: {get_resource: Controller}
+ input_values:
+ update_identifier:
+ get_param: UpdateIdentifier
+
outputs:
ip_address:
description: IP address of the server in the ctlplane network
diff --git a/puppet/manifests/overcloud_controller.pp b/puppet/manifests/overcloud_controller.pp
index 52df94fc..19ed97fb 100644
--- a/puppet/manifests/overcloud_controller.pp
+++ b/puppet/manifests/overcloud_controller.pp
@@ -334,7 +334,23 @@ if hiera('step') >= 3 {
}
}
- $cinder_enabled_backends = delete_undef_values([$cinder_iscsi_backend, $cinder_rbd_backend])
+ if hiera('cinder_enable_netapp_backend', false) {
+ $cinder_netapp_backend = hiera('cinder::backend::netapp::title')
+
+ cinder_config {
+ "${cinder_netapp_backend}/host": value => 'hostgroup';
+ }
+
+ if hiera('cinder_netapp_nfs_shares', undef) {
+ $cinder_netapp_nfs_shares = split(hiera('cinder_netapp_nfs_shares', undef), ',')
+ }
+
+ cinder::backend::netapp { $cinder_netapp_backend :
+ nfs_shares => $cinder_netapp_nfs_shares,
+ }
+ }
+
+ $cinder_enabled_backends = delete_undef_values([$cinder_iscsi_backend, $cinder_rbd_backend, $cinder_netapp_backend])
class { '::cinder::backends' :
enabled_backends => $cinder_enabled_backends,
}
diff --git a/puppet/manifests/overcloud_controller_pacemaker.pp b/puppet/manifests/overcloud_controller_pacemaker.pp
index 48e625a5..9642fc2e 100644
--- a/puppet/manifests/overcloud_controller_pacemaker.pp
+++ b/puppet/manifests/overcloud_controller_pacemaker.pp
@@ -97,11 +97,8 @@ if hiera('step') >= 1 {
if downcase(hiera('ceilometer_backend')) == 'mongodb' {
include ::mongodb::globals
- # FIXME: replace with service_manage => false on ::mongodb::server
- # when this is merged: https://github.com/puppetlabs/pupp etlabs-mongodb/pull/198
class { '::mongodb::server' :
- service_ensure => undef,
- service_enable => false,
+ service_manage => false,
}
}
@@ -223,25 +220,20 @@ if hiera('step') >= 2 {
op_params => 'start timeout=120s',
clone_params => true,
require => Class['::mongodb::server'],
- before => Exec['mongodb-ready'],
}
# NOTE (spredzy) : The replset can only be run
# once all the nodes have joined the cluster.
$mongo_node_ips = hiera('mongo_node_ips')
$mongo_node_ips_with_port = suffix($mongo_node_ips, ':27017')
$mongo_node_string = join($mongo_node_ips_with_port, ',')
- $mongodb_replset = hiera('mongodb::server::replset')
- $mongodb_cluster_ready_command = join(suffix(prefix($mongo_node_ips, '/bin/nc -w1 '), ' 27017 < /dev/null'), ' && ')
$mongodb_pacemaker_resource = Pacemaker::Resource::Service[$::mongodb::params::service_name]
- exec { 'mongodb-ready' :
- command => $mongodb_cluster_ready_command,
- timeout => 30,
- tries => 180,
- try_sleep => 10,
+ $mongodb_replset = hiera('mongodb::server::replset')
+ mongodb_conn_validator { $mongo_node_ips_with_port :
+ require => Pacemaker::Resource::Service[$::mongodb::params::service_name],
+ before => Mongodb_replset[$mongodb_replset],
}
mongodb_replset { $mongodb_replset :
members => $mongo_node_ips_with_port,
- require => Exec['mongodb-ready'],
}
}
@@ -591,7 +583,23 @@ if hiera('step') >= 3 {
}
}
- $cinder_enabled_backends = delete_undef_values([$cinder_iscsi_backend, $cinder_rbd_backend])
+ if hiera('cinder_enable_netapp_backend', false) {
+ $cinder_netapp_backend = hiera('cinder::backend::netapp::title')
+
+ cinder_config {
+ "${cinder_netapp_backend}/host": value => 'hostgroup';
+ }
+
+ if hiera('cinder_netapp_nfs_shares', undef) {
+ $cinder_netapp_nfs_shares = split(hiera('cinder_netapp_nfs_shares', undef), ',')
+ }
+
+ cinder::backend::netapp { $cinder_netapp_backend :
+ nfs_shares => $cinder_netapp_nfs_shares,
+ }
+ }
+
+ $cinder_enabled_backends = delete_undef_values([$cinder_iscsi_backend, $cinder_rbd_backend, $cinder_netapp_backend])
class { '::cinder::backends' :
enabled_backends => $cinder_enabled_backends,
}
diff --git a/puppet/swift-storage-puppet.yaml b/puppet/swift-storage-puppet.yaml
index 12292dec..2268f41f 100644
--- a/puppet/swift-storage-puppet.yaml
+++ b/puppet/swift-storage-puppet.yaml
@@ -51,6 +51,12 @@ parameters:
default: 'false'
description: Set to true to enable package installation via Puppet
type: boolean
+ UpdateIdentifier:
+ default: ''
+ type: string
+ description: >
+ Setting to a previously unused value during stack-update will trigger
+ package update on all nodes
resources:
@@ -151,6 +157,18 @@ resources:
server: {get_param: NtpServer}
enable_package_install: {get_param: EnablePackageInstall}
+ UpdateConfig:
+ type: OS::TripleO::Tasks::PackageUpdate
+
+ UpdateDeployment:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config: {get_resource: UpdateConfig}
+ server: {get_resource: SwiftStorage}
+ input_values:
+ update_identifier:
+ get_param: UpdateIdentifier
+
outputs:
hosts_entry:
value:
diff --git a/swift-storage.yaml b/swift-storage.yaml
index 68923eef..c2819349 100644
--- a/swift-storage.yaml
+++ b/swift-storage.yaml
@@ -82,6 +82,12 @@ parameters:
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
resources:
SwiftConfig: