PSARC/2016/130 Solaris OpenStack Puppet Extensions
22813139 add zfssa cinder puppet modules
22902222 add NFS cinder puppet modules
22918553 update vpnaas and l3 agent puppet modules
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/components/ruby/puppet-modules/openstack-cinder/files/backend/zfs_nfs.pp Mon Mar 21 16:26:40 2016 -0700
@@ -0,0 +1,41 @@
+# == Class: cinder::backend::zfs_nfs
+#
+# Configures Cinder volume ZfsNfsVolumeDriver
+#
+# === Parameters
+#
+# [*nfs_servers*]
+# (Required) Description
+# Defaults to '[]'
+#
+# [*volume_backend_name*]
+# (optional) Allows for the volume_backend_name to be separate of $name.
+# Defaults to: $name
+#
+# [*nfs_round_robin*]
+# (optional) Schedule volumes round robin across NFS shares.
+# Defaults to true
+#
+# [*extra_options*]
+# (optional) Hash of extra options to pass to the backend stanza
+# Defaults to: {}
+# Example :
+# { 'backend_name/nfs_option' => { 'value' => value1 } }
+
+
+define cinder::backend::zfs_nfs(
+ $nfs_servers,
+ $volume_backend_name = $name,
+ $nfs_round_robin = true,
+ $extra_options = {},
+) {
+
+ cinder_config {
+ "${name}/volume_backend_name": value => $volume_backend_name;
+ "${name}/volume_driver": value => 'cinder.volume.drivers.solaris.zfs.ZfsNfsVolumeDriver';
+ "${name}/nfs_servers": value => $nfs_servers;
+ "${name}/nfs_round_robin": value => $nfs_round_robin;
+ }
+
+ create_resources('cinder_config', $extra_options)
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/components/ruby/puppet-modules/openstack-cinder/files/backend/zfssa_iscsi.pp Mon Mar 21 16:26:40 2016 -0700
@@ -0,0 +1,150 @@
+# == Class: cinder::backend::zfssa_iscsi
+#
+# Setup Cinder wth the volume ZFSSA iSCSI driver
+#
+# === Parameters
+#
+# [*volume_backend_name*]
+# (optional) Allows for the volume_backend_name to be separate of $name.
+# Defaults to: $name
+#
+# [*ip*]
+# (required) IP address of ZFS Storage Appliance.
+#
+# [*login*]
+# (required) Username to login to ZFS Storage Appliance.
+#
+# [*password*]
+# (required) Password for user in *login*.
+#
+# [*zfssa_pool*]
+# (required) Storage pool name
+#
+# [*zfssa_project*]
+# (optional) Project name in *zfssa_pool*. Defaults to 'default'.
+#
+# [*zfssa_target_portal*]
+# (required) Address of the iSCSI target portal in IP:port format.
+#
+# [*zfssa_target_interfaces*]
+# (required) Interface names where iSCSI targets are available.
+# Example:
+# "e1000g0,vnic1"
+#
+# [*zfssa_initiator*]
+# (optional) iSCSI initator name. Requires setting *zfssa_initiator_group*
+#
+# [*zfssa_initiator_group*]
+# (optional) iSCSI initiator group name. Required if *zfssa_initiator* is set.
+#
+# [*zfssa_initiator_config*]
+# (optional) iSCSI initator configuration.
+#
+# [*zfssa_initiator_user*]
+# (optional) CHAP user name for the iSCSI initator. Requires setting
+# *zfssa_initiator_password*
+#
+# [*zfssa_initiator_password*]
+# (optional) CHAP password. Required if *zfssa_initiator_user* is set.
+#
+# [*zfssa_target_group*]
+# (optional) iSCSI target group name.
+#
+# [*zfssa_target_user*]
+# (optional) CHAP user name for the iSCSI target. Requires setting
+# *zfssa_target_password*
+#
+# [*zfssa_target_password*]
+# (optional) CHAP password. Required if *zfssa_target_password* is set.
+#
+# [*zfssa_lun_volblocksize*]
+# (optional) Volume block size. Valid sizes are 512, 1k, 2k, 4k, 8k,
+# 16k, 32k, 64k, 128k. Default is 8k
+#
+# [*zfssa_lun_sparse*]
+# (optional) Flag to enable sparse allocation (thin-provisioning).
+# Default is False.
+#
+# [*zfssa_lun_compression*]
+# (optional) Data compression to use on the lun. Valid values are off, lzjb,
+# gzip, gzip-2, gzip-9.
+#
+# [*zfssa_lun_logbias*]
+# (optional) Synchronous log bias. Valid values are latency, throughput.
+#
+# [*extra_options*]
+# (optional) Hash of extra options to pass to the backend stanza
+# Defaults to: {}
+# Example :
+# { 'zfssa_param' => { 'value' => value1 } }
+
+define cinder::backend::zfssa_iscsi(
+ $hostname,
+ $login,
+ $password,
+ $zfssa_pool,
+ $zfssa_target_portal,
+ $zfssa_target_interfaces,
+ $volume_backend_name = $name,
+ $zfssa_project = undef,
+ $zfssa_initiator = undef,
+ $zfssa_initiator_group = undef,
+ $zfssa_initiator_config = undef,
+ $zfssa_initiator_user = undef,
+ $zfssa_initiator_password = undef,
+ $zfssa_target_group = undef,
+ $zfssa_target_user = undef,
+ $zfssa_target_password = undef,
+ $zfssa_lun_volblocksize = undef,
+ $zfssa_lun_sparse = undef,
+ $zfssa_lun_compression = undef,
+ $zfssa_lun_logbias = undef,
+ $zfssa_rest_timeout = undef,
+ $extra_options = {},
+) {
+
+ cinder_config {
+ "${name}/volume_backend_name": value => $volume_backend_name;
+ "${name}/volume_driver": value => 'cinder.volume.drivers.zfssa.zfssaiscsi.ZFSSAISCSIDriver';
+ "${name}/san_ip": value => $hostname;
+ "${name}/san_login": value => $login;
+ "${name}/san_password": value => $zfssa_password, secret => true;
+ "${name}/zfssa_pool": value => $zfssa_pool;
+ "${name}/zfssa_project": value => $zfssa_project;
+ "${name}/zfssa_target_portal": value => $zfssa_target_portal;
+ "${name}/zfssa_target_interfaces": value => $zfssa_target_interfaces;
+ "${name}/zfssa_target_group": value => $zfssa_target_group;
+ "${name}/zfssa_initiator_config": value => $zfssa_initiator_config;
+ "${name}/zfssa_lun_volblocksize": value => $zfssa_lun_volblocksize;
+ "${name}/zfssa_lun_sparse": value => $zfssa_lun_sparse;
+ "${name}/zfssa_lun_compression": value => $zfssa_lun_compression;
+ "${name}/zfssa_lun_logbias": value => $zfssa_lun_logbias;
+ "${name}/zfssa_rest_timeout": value => $zfssa_rest_timeout;
+ }
+
+
+ if ($zfssa_initiator and $zfssa_initiator_group) {
+ cinder_config {
+ "${name}/zfssa_initiator": value => $zfssa_initiator;
+ "${name}/zfssa_initiator_group": value => $zfssa_initiator_group;
+ }
+ }
+
+ if ($zfssa_initiator_user and $zfssa_initiator_password) {
+ cinder_config {
+ "${name}/zfssa_initiator_user": value => $zfssa_initiator_user;
+ "${name}/zfssa_initiator_password": value => $zfssa_initiator_password, secret => true;
+ }
+ }
+
+
+ if ($zfssa_target_user and $zfssa_target_password) {
+ cinder_config {
+ "${name}/zfssa_target_user": value => $zfssa_target_user;
+ "${name}/zfssa_target_password": value => $zfssa_target_password, secret => true;
+ }
+ }
+
+ create_resources('cinder_config', $extra_options)
+
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/components/ruby/puppet-modules/openstack-cinder/files/volume/zfs_nfs.pp Mon Mar 21 16:26:40 2016 -0700
@@ -0,0 +1,35 @@
+# == Class: cinder::volume::zfs_nfs
+#
+# Sets up Cinder with the ZfsNfsVolumeDriver
+#
+# === Parameters
+#
+# [*nfs_servers*]
+# (Required) Description
+#
+# [*volume_backend_name*]
+# (optional) Allows for the volume_backend_name to be separate of $name.
+# Defaults to: $name
+#
+# [*nfs_round_robin*]
+# (optional) Schedule volumes round robin across NFS shares.
+# Defaults to true
+#
+# [*extra_options*]
+# (optional) Hash of extra options to pass to the backend stanza
+# Defaults to: {}
+# Example :
+# { 'DEFAULT/nfs_option' => { 'value' => value1 } }
+
+class cinder::volume::zfs_nfs (
+ $nfs_servers,
+ $nfs_round_robin = true,
+ $extra_options = {},
+) {
+
+ cinder::backend::zfs_nfs { 'DEFAULT':
+ nfs_servers => $nfs_servers,
+ nfs_round_robin => $nfs_round_robin,
+ extra_options => $extra_options,
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/components/ruby/puppet-modules/openstack-cinder/files/volume/zfssa_iscsi.pp Mon Mar 21 16:26:40 2016 -0700
@@ -0,0 +1,125 @@
+# == Class: cinder::volume::zfssa_iscsi
+#
+# Setup Cinder wth the volume ZFSSA iSCSI driver
+#
+# === Parameters
+#
+# [*ip*]
+# (required) IP address of ZFS Storage Appliance.
+#
+# [*login*]
+# (required) Username to login to ZFS Storage Appliance.
+#
+# [*password*]
+# (required) Password for user in *login*.
+#
+# [*zfssa_pool*]
+# (required) Storage pool name
+#
+# [*zfssa_target_portal*]
+# (required) Address of the iSCSI target portal in IP:port format.
+#
+# [*zfssa_target_interfaces*]
+# (required) Interface names where iSCSI targets are available.
+# Example:
+# "e1000g0,vnic1"
+#
+# [*zfssa_project*]
+# (optional) Project name in *zfssa_pool*. Defaults to 'default'.
+#
+# [*zfssa_initiator*]
+# (optional) iSCSI initator name. Requires setting *zfssa_initiator_group*
+#
+# [*zfssa_initiator_group*]
+# (optional) iSCSI initiator group name. Required if *zfssa_initiator* is set.
+#
+# [*zfssa_initiator_config*]
+# (optional) iSCSI initator configuration.
+#
+# [*zfssa_initiator_user*]
+# (optional) CHAP user name for the iSCSI initator. Requires setting
+# *zfssa_initiator_password*
+#
+# [*zfssa_initiator_password*]
+# (optional) CHAP password. Required if *zfssa_initiator_user* is set.
+#
+# [*zfssa_target_group*]
+# (optional) iSCSI target group name.
+#
+# [*zfssa_target_user*]
+# (optional) CHAP user name for the iSCSI target. Requires setting
+# *zfssa_target_password*
+#
+# [*zfssa_target_password*]
+# (optional) CHAP password. Required if *zfssa_target_user* is set.
+#
+# [*zfssa_lun_volblocksize*]
+# (optional) Volume block size. Valid sizes are 512, 1k, 2k, 4k, 8k,
+# 16k, 32k, 64k, 128k. Default is 8k
+#
+# [*zfssa_lun_sparse*]
+# (optional) Flag to enable sparse allocation (thin-provisioning).
+# Default is False.
+#
+# [*zfssa_lun_compression*]
+# (optional) Data compression to use on the lun. Valid values are off, lzjb,
+# gzip, gzip-2, gzip-9.
+#
+# [*zfssa_lun_logbias*]
+# (optional) Synchronous log bias. Valid values are latency, throughput.
+#
+# [*extra_options*]
+# (optional) Hash of extra options to pass to the backend stanza
+# Defaults to: {}
+# Example :
+# { 'zfssa_param' => { 'value' => value1 } }
+
+class cinder::volume::zfssa_iscsi(
+ $hostname,
+ $login,
+ $password,
+ $zfssa_pool,
+ $zfssa_target_portal,
+ $zfssa_target_interfaces,
+ $zfssa_project = undef,
+ $zfssa_initiator = undef,
+ $zfssa_initiator_group = undef,
+ $zfssa_initiator_config = undef,
+ $zfssa_initiator_user = undef,
+ $zfssa_initiator_password = undef,
+ $zfssa_target_group = undef,
+ $zfssa_target_user = undef,
+ $zfssa_target_password = undef,
+ $zfssa_lun_volblocksize = undef,
+ $zfssa_lun_sparse = undef,
+ $zfssa_lun_compression = undef,
+ $zfssa_lun_logbias = undef,
+ $zfssa_rest_timeout = undef,
+ $extra_options = {},
+) {
+
+ cinder::backend::zfssa_iscsi { 'DEFAULT':
+ hostname => $hostname,
+ login => $login,
+ password => $password,
+ zfssa_pool => $zfssa_pool,
+ zfssa_project => $zfssa_project,
+ zfssa_lun_volblocksize => $zfssa_lun_volblocksize,
+ zfssa_lun_sparse => $zfssa_lun_sparse,
+ zfssa_lun_compression => $zfssa_lun_compresssion,
+ zfssa_lun_logbias => $zfssa_lun_logbias,
+ zfssa_initiator_group => $zfssa_initiator_group,
+ zfssa_initiator => $zfssa_initiator,
+ zfssa_initiator_user => $zfssa_initiator_user,
+ zfssa_initiator_password => $zfssa_initiator_password,
+ zfssa_initiator_config => $zfssa_initiator_config,
+ zfssa_target_group => $zfssa_target_group,
+ zfssa_target_user => $zfssa_target_user,
+ zfssa_target_password => $zfssa_target_password,
+ zfssa_target_portal => $zfssa_target_portal,
+ zfssa_target_interfaces => $zfssa_target_interfaces,
+ zfssa_rest_timeout => $zfssa_rest_timeout,
+ extra_options => $extra_options
+ }
+}
+
--- a/components/ruby/puppet-modules/openstack-cinder/openstack-cinder.p5m Tue Mar 22 10:08:31 2016 -0600
+++ b/components/ruby/puppet-modules/openstack-cinder/openstack-cinder.p5m Mon Mar 21 16:26:40 2016 -0700
@@ -20,7 +20,7 @@
#
#
-# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
#
set name=pkg.fmri \
@@ -68,8 +68,12 @@
path=etc/puppet/modules/cinder/manifests/backend/zfs_fc.pp
file files/backend/zfs_iscsi.pp \
path=etc/puppet/modules/cinder/manifests/backend/zfs_iscsi.pp
+file files/backend/zfs_nfs.pp \
+ path=etc/puppet/modules/cinder/manifests/backend/zfs_nfs.pp
file files/backend/zfs_volume.pp \
path=etc/puppet/modules/cinder/manifests/backend/zfs_volume.pp
+file files/backend/zfssa_iscsi.pp \
+ path=etc/puppet/modules/cinder/manifests/backend/zfssa_iscsi.pp
file path=etc/puppet/modules/cinder/manifests/backends.pp
file path=etc/puppet/modules/cinder/manifests/backup.pp
file path=etc/puppet/modules/cinder/manifests/backup/ceph.pp
@@ -116,8 +120,12 @@
path=etc/puppet/modules/cinder/manifests/volume/zfs_fc.pp
file files/volume/zfs_iscsi.pp \
path=etc/puppet/modules/cinder/manifests/volume/zfs_iscsi.pp
+file files/volume/zfs_nfs.pp \
+ path=etc/puppet/modules/cinder/manifests/volume/zfs_nfs.pp
file files/volume/zfs_volume.pp \
path=etc/puppet/modules/cinder/manifests/volume/zfs_volume.pp
+file files/volume/zfssa_iscsi.pp \
+ path=etc/puppet/modules/cinder/manifests/volume/zfssa_iscsi.pp
file path=etc/puppet/modules/cinder/metadata.json
file path=etc/puppet/modules/cinder/spec/acceptance/basic_cinder_spec.rb
file path=etc/puppet/modules/cinder/spec/acceptance/nodesets/default.yml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/components/ruby/puppet-modules/openstack-neutron/patches/04-vpnaas.patch Mon Mar 21 16:26:40 2016 -0700
@@ -0,0 +1,45 @@
+In-house patch to allow the vpnaas agent to configure the Solaris driver properties
+Currently unsuitable for upsteam contribution.
+
+--- openstack-neutron-6.1.0/manifests/agents/vpnaas.pp.orig Thu Oct 15 08:03:13 2015
++++ openstack-neutron-6.1.0/manifests/agents/vpnaas.pp Fri Mar 11 14:46:06 2016
+@@ -43,6 +43,12 @@
+ # [*ipsec_status_check_interval*]
+ # (optional) Status check interval. Defaults to '60'.
+ #
++# [*packet_logging*]
++# (optional) For the Solaris driver, enable logging discarded packets.
++#
++# [*logger_level*]
++# (optional) For the Solaris driver, the level at which to log discarded packets.
++#
+ class neutron::agents::vpnaas (
+ $package_ensure = present,
+ $enabled = true,
+@@ -50,7 +56,9 @@
+ $vpn_device_driver = 'neutron.services.vpn.device_drivers.ipsec.OpenSwanDriver',
+ $interface_driver = 'neutron.agent.linux.interface.OVSInterfaceDriver',
+ $external_network_bridge = undef,
+- $ipsec_status_check_interval = '60'
++ $ipsec_status_check_interval = '60',
++ $packet_logging = undef,
++ $logger_level = undef
+ ) {
+
+ include ::neutron::params
+@@ -66,6 +74,15 @@
+ name => $::neutron::params::openswan_package,
+ }
+ }
++
++ /\.SolarisIPsecDriver$/ {
++ neutron_vpnaas_agent_config {
++ 'solaris/ipsec_status_check_interval': value => $ipsec_status_check_interval;
++ 'solaris/packet_logging': value => $packet_logging;
++ 'solaris/logger_level': value => $logger_level;
++ }
++ }
++
+ default: {
+ fail("Unsupported vpn_device_driver ${vpn_device_driver}")
+ }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/components/ruby/puppet-modules/openstack-neutron/patches/05-l3agent.patch Mon Mar 21 16:26:40 2016 -0700
@@ -0,0 +1,30 @@
+In-house patch for Solaris L3 agent driver configuration variables.
+This patch is not currently suitable for upstream contribution.
+
+--- openstack-neutron-6.1.0/manifests/agents/l3.pp.orig Fri Mar 11 15:26:19 2016
++++ openstack-neutron-6.1.0/manifests/agents/l3.pp Fri Mar 11 15:27:59 2016
+@@ -99,6 +99,14 @@
+ # 'dvr_snat': enable DVR with centralized SNAT support (DVR for single-host, for testing only)
+ # Defaults to 'legacy'
+ #
++# [*ra_confs*]
++# (optional) Path to store IPv6 RA config files.
++# Defaults to undef
++#
++# [*allow_forwarding*]
++# (optional) For the Solaris l3 agent, allow forwarding between tenant's networks.
++# Defaults to undef
++#
+ # [*allow_automatic_l3agent_failover*]
+ # DEPRECATED: Has no effect in this class. Use the same parameter in neutron::server instead.
+ #
+@@ -161,6 +169,9 @@
+ 'DEFAULT/enable_metadata_proxy': value => $enable_metadata_proxy;
+ 'DEFAULT/router_delete_namespaces': value => $router_delete_namespaces;
+ 'DEFAULT/agent_mode': value => $agent_mode;
++ 'DEFAULT/ra_confs': value => $ra_confs;
++ 'DEFAULT/allow_forwarding_between_networks':
++ value => $allow_forwarding;
+ }
+
+ if $network_device_mtu {