aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--manifests/profile/base/cinder/volume.pp13
-rw-r--r--manifests/profile/base/cinder/volume/pure.pp65
-rw-r--r--manifests/profile/base/database/mysql/client.pp1
-rw-r--r--manifests/profile/base/keystone.pp3
-rw-r--r--manifests/profile/base/neutron/agents/vpp.pp49
-rw-r--r--manifests/profile/base/neutron/plugins/ml2.pp4
-rw-r--r--manifests/profile/base/neutron/plugins/ml2/vpp.pp49
-rw-r--r--manifests/profile/base/rabbitmq.pp2
-rw-r--r--manifests/profile/pacemaker/database/mysql.pp5
-rw-r--r--releasenotes/notes/add-octavia-auth-to-keystone-d0353544c0e27b57.yaml3
-rw-r--r--releasenotes/notes/add-support-for-pure-cinder-d45e6aaf3e243c91.yaml3
-rw-r--r--releasenotes/notes/vpp-ml2-9c1321fa30f3b172.yaml3
-rw-r--r--spec/classes/tripleo_profile_base_cinder_volume_pure_spec.rb58
-rw-r--r--spec/classes/tripleo_profile_base_cinder_volume_spec.rb38
14 files changed, 285 insertions, 11 deletions
diff --git a/manifests/profile/base/cinder/volume.pp b/manifests/profile/base/cinder/volume.pp
index 9fb1594..e1370a3 100644
--- a/manifests/profile/base/cinder/volume.pp
+++ b/manifests/profile/base/cinder/volume.pp
@@ -18,6 +18,10 @@
#
# === Parameters
#
+# [*cinder_enable_pure_backend*]
+# (Optional) Whether to enable the pure backend
+# Defaults to true
+#
# [*cinder_enable_dellsc_backend*]
# (Optional) Whether to enable the delsc backend
# Defaults to true
@@ -60,6 +64,7 @@
# Defaults to hiera('step')
#
class tripleo::profile::base::cinder::volume (
+ $cinder_enable_pure_backend = false,
$cinder_enable_dellsc_backend = false,
$cinder_enable_hpelefthand_backend = false,
$cinder_enable_dellps_backend = false,
@@ -76,6 +81,13 @@ class tripleo::profile::base::cinder::volume (
if $step >= 4 {
include ::cinder::volume
+ if $cinder_enable_pure_backend {
+ include ::tripleo::profile::base::cinder::volume::pure
+ $cinder_pure_backend_name = hiera('cinder::backend::pure::volume_backend_name', 'tripleo_pure')
+ } else {
+ $cinder_pure_backend_name = undef
+ }
+
if $cinder_enable_dellsc_backend {
include ::tripleo::profile::base::cinder::volume::dellsc
$cinder_dellsc_backend_name = hiera('cinder::backend::dellsc_iscsi::volume_backend_name', 'tripleo_dellsc')
@@ -134,6 +146,7 @@ class tripleo::profile::base::cinder::volume (
$backends = delete_undef_values([$cinder_iscsi_backend_name,
$cinder_rbd_backend_name,
+ $cinder_pure_backend_name,
$cinder_dellps_backend_name,
$cinder_dellsc_backend_name,
$cinder_hpelefthand_backend_name,
diff --git a/manifests/profile/base/cinder/volume/pure.pp b/manifests/profile/base/cinder/volume/pure.pp
new file mode 100644
index 0000000..e524919
--- /dev/null
+++ b/manifests/profile/base/cinder/volume/pure.pp
@@ -0,0 +1,65 @@
+# Copyright 2016 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# == Class: tripleo::profile::base::cinder::volume::pure
+#
+# Cinder Volume pure profile for tripleo
+#
+# === Parameters
+#
+# [*san_ip*]
+# (required) IP address of PureStorage management VIP.
+#
+# [*pure_api_token*]
+# (required) API token for management of PureStorage array.
+#
+# [*backend_name*]
+# (Optional) Name given to the Cinder backend stanza
+# Defaults to 'tripleo_pure'
+#
+# [*pure_storage_protocol*]
+# (optional) Must be either 'iSCSI' or 'FC'. This will determine
+# which Volume Driver will be configured; PureISCSIDriver or PureFCDriver.
+# Defaults to 'iSCSI'
+#
+# [*use_multipath_for_image_xfer*]
+# (optional) .
+# Defaults to True
+#
+# [*use_chap_auth*]
+# (optional) Only affects the PureISCSIDriver.
+# Defaults to False
+#
+# [*step*]
+# (Optional) The current step in deployment. See tripleo-heat-templates
+# for more details.
+# Defaults to hiera('step')
+#
+class tripleo::profile::base::cinder::volume::pure (
+ $backend_name = hiera('cinder::backend::pure::volume_backend_name', 'tripleo_pure'),
+ $step = hiera('step'),
+) {
+ include ::tripleo::profile::base::cinder::volume
+
+ if $step >= 4 {
+ cinder::backend::pure { $backend_name :
+ san_ip => hiera('cinder::backend::pure::san_ip', undef),
+ pure_api_token => hiera('cinder::backend::pure::pure_api_token', undef),
+ pure_storage_protocol => hiera('cinder::backend::pure::pure_storage_protocol', undef),
+ use_chap_auth => hiera('cinder::backend::pure::use_chap_auth', undef),
+ use_multipath_for_image_xfer => hiera('cinder::backend::pure::use_multipath_for_image_xfer', undef),
+ }
+ }
+
+}
diff --git a/manifests/profile/base/database/mysql/client.pp b/manifests/profile/base/database/mysql/client.pp
index 22384a9..014ef35 100644
--- a/manifests/profile/base/database/mysql/client.pp
+++ b/manifests/profile/base/database/mysql/client.pp
@@ -82,6 +82,7 @@ class tripleo::profile::base::database::mysql::client (
# Create /etc/my.cnf.d/tripleo.cnf
exec { 'directory-create-etc-my.cnf.d':
command => 'mkdir -p /etc/my.cnf.d',
+ unless => 'test -d /etc/my.cnf.d',
path => ['/usr/bin', '/usr/sbin', '/bin', '/sbin'],
} ->
augeas { 'tripleo-mysql-client-conf':
diff --git a/manifests/profile/base/keystone.pp b/manifests/profile/base/keystone.pp
index 9f8f48a..ec896e7 100644
--- a/manifests/profile/base/keystone.pp
+++ b/manifests/profile/base/keystone.pp
@@ -312,6 +312,9 @@ class tripleo::profile::base::keystone (
if hiera('nova_placement_enabled', false) {
include ::nova::keystone::auth_placement
}
+ if hiera('octavia_api_enabled', false) {
+ include ::octavia::keystone::auth
+ }
if hiera('panko_api_enabled', false) {
include ::panko::keystone::auth
}
diff --git a/manifests/profile/base/neutron/agents/vpp.pp b/manifests/profile/base/neutron/agents/vpp.pp
new file mode 100644
index 0000000..e961aa7
--- /dev/null
+++ b/manifests/profile/base/neutron/agents/vpp.pp
@@ -0,0 +1,49 @@
+# Copyright 2017 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# == Class: tripleo::profile::base::neutron::agents::vpp
+#
+# Neutron VPP Agent profile for tripleo
+#
+# === Parameters
+#
+# [*step*]
+# (Optional) The current step in deployment. See tripleo-heat-templates
+# for more details.
+# Defaults to hiera('step')
+#
+# [*etcd_host*]
+# (Optional) etcd server VIP.
+# Defaults to hiera('etcd_vip')
+#
+# [*etcd_port*]
+# (Optional) etcd server listening port.
+# Defaults to 2379
+#
+class tripleo::profile::base::neutron::agents::vpp(
+ $step = hiera('step'),
+ $etcd_host = hiera('etcd_vip'),
+ $etcd_port = 2379,
+) {
+ if empty($etcd_host) {
+ fail('etcd_vip not set in hieradata')
+ }
+
+ if $step >= 4 {
+ class { '::neutron::agents::ml2::vpp':
+ etcd_host => $etcd_host,
+ etcd_port => $etcd_port,
+ }
+ }
+}
diff --git a/manifests/profile/base/neutron/plugins/ml2.pp b/manifests/profile/base/neutron/plugins/ml2.pp
index 52d4ca1..1702fed 100644
--- a/manifests/profile/base/neutron/plugins/ml2.pp
+++ b/manifests/profile/base/neutron/plugins/ml2.pp
@@ -81,5 +81,9 @@ class tripleo::profile::base::neutron::plugins::ml2 (
include ::neutron::plugins::ml2::fujitsu
include ::neutron::plugins::ml2::fujitsu::fossw
}
+
+ if 'vpp' in $mechanism_drivers {
+ include ::tripleo::profile::base::neutron::plugins::ml2::vpp
+ }
}
}
diff --git a/manifests/profile/base/neutron/plugins/ml2/vpp.pp b/manifests/profile/base/neutron/plugins/ml2/vpp.pp
new file mode 100644
index 0000000..217e4cf
--- /dev/null
+++ b/manifests/profile/base/neutron/plugins/ml2/vpp.pp
@@ -0,0 +1,49 @@
+# Copyright 2017 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# == Class: tripleo::profile::base::neutron::plugins::ml2::vpp
+#
+# VPP Neutron ML2 profile for tripleo
+#
+# === Parameters
+#
+# [*step*]
+# (Optional) The current step in deployment. See tripleo-heat-templates
+# for more details.
+# Defaults to hiera('step')
+#
+# [*etcd_host*]
+# (Optional) etcd server VIP.
+# Defaults to hiera('etcd_vip')
+#
+# [*etcd_port*]
+# (Optional) etcd server listening port.
+# Defaults to 2379
+#
+class tripleo::profile::base::neutron::plugins::ml2::vpp (
+ $step = hiera('step'),
+ $etcd_host = hiera('etcd_vip'),
+ $etcd_port = 2379,
+) {
+ if empty($etcd_host) {
+ fail('etcd_vip not set in hieradata')
+ }
+
+ if $step >= 4 {
+ class { '::neutron::plugins::ml2::vpp':
+ etcd_host => $etcd_host,
+ etcd_port => $etcd_port,
+ }
+ }
+}
diff --git a/manifests/profile/base/rabbitmq.pp b/manifests/profile/base/rabbitmq.pp
index 9d1417c..8551f19 100644
--- a/manifests/profile/base/rabbitmq.pp
+++ b/manifests/profile/base/rabbitmq.pp
@@ -110,7 +110,7 @@ class tripleo::profile::base::rabbitmq (
if $inet_dist_interface {
$real_kernel_variables = merge(
$kernel_variables,
- { 'inet_dist_use_interface' => ip_to_erl_format($inet_dist_interface) },
+ { 'inet_dist_use_interface' => ip_to_erl_format($inet_dist_interface) }
)
} else {
$real_kernel_variables = $kernel_variables
diff --git a/manifests/profile/pacemaker/database/mysql.pp b/manifests/profile/pacemaker/database/mysql.pp
index bc5e644..031e80c 100644
--- a/manifests/profile/pacemaker/database/mysql.pp
+++ b/manifests/profile/pacemaker/database/mysql.pp
@@ -120,7 +120,7 @@ class tripleo::profile::pacemaker::database::mysql (
if $step >= 1 and $pacemaker_master and hiera('stack_action') == 'UPDATE' {
tripleo::pacemaker::resource_restart_flag { 'galera-master':
subscribe => File['mysql-config-file'],
- }
+ } ~> Exec<| title == 'galera-ready' |>
}
if $step >= 2 {
@@ -145,7 +145,7 @@ class tripleo::profile::pacemaker::database::mysql (
},
require => [Class['::mysql::server'],
Pacemaker::Property['galera-role-node-property']],
- before => Exec['galera-ready'],
+ notify => Exec['galera-ready'],
}
exec { 'galera-ready' :
command => '/usr/bin/clustercheck >/dev/null',
@@ -153,6 +153,7 @@ class tripleo::profile::pacemaker::database::mysql (
tries => 180,
try_sleep => 10,
environment => ['AVAILABLE_WHEN_READONLY=0'],
+ refreshonly => true,
require => Exec['create-root-sysconfig-clustercheck'],
}
# We add a clustercheck db user and we will switch /etc/sysconfig/clustercheck
diff --git a/releasenotes/notes/add-octavia-auth-to-keystone-d0353544c0e27b57.yaml b/releasenotes/notes/add-octavia-auth-to-keystone-d0353544c0e27b57.yaml
new file mode 100644
index 0000000..f2836d5
--- /dev/null
+++ b/releasenotes/notes/add-octavia-auth-to-keystone-d0353544c0e27b57.yaml
@@ -0,0 +1,3 @@
+---
+fixes:
+ - Octavia is now properly registered with keystone when deployed.
diff --git a/releasenotes/notes/add-support-for-pure-cinder-d45e6aaf3e243c91.yaml b/releasenotes/notes/add-support-for-pure-cinder-d45e6aaf3e243c91.yaml
new file mode 100644
index 0000000..da326e4
--- /dev/null
+++ b/releasenotes/notes/add-support-for-pure-cinder-d45e6aaf3e243c91.yaml
@@ -0,0 +1,3 @@
+---
+features:
+ - Added Pure Storage FlashArray iSCSI and FC backend support for cinder
diff --git a/releasenotes/notes/vpp-ml2-9c1321fa30f3b172.yaml b/releasenotes/notes/vpp-ml2-9c1321fa30f3b172.yaml
new file mode 100644
index 0000000..2f8ae14
--- /dev/null
+++ b/releasenotes/notes/vpp-ml2-9c1321fa30f3b172.yaml
@@ -0,0 +1,3 @@
+---
+features:
+ - Adds support for networking-vpp ML2 mechanism driver and agent.
diff --git a/spec/classes/tripleo_profile_base_cinder_volume_pure_spec.rb b/spec/classes/tripleo_profile_base_cinder_volume_pure_spec.rb
new file mode 100644
index 0000000..fa03dac
--- /dev/null
+++ b/spec/classes/tripleo_profile_base_cinder_volume_pure_spec.rb
@@ -0,0 +1,58 @@
+#
+# Copyright (C) 2016 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+
+require 'spec_helper'
+
+describe 'tripleo::profile::base::cinder::volume::pure' do
+ shared_examples_for 'tripleo::profile::base::cinder::volume::pure' do
+ before :each do
+ facts.merge!({ :step => params[:step] })
+ end
+
+ context 'with step less than 4' do
+ let(:params) { { :step => 3 } }
+
+ it 'should do nothing' do
+ is_expected.to contain_class('tripleo::profile::base::cinder::volume::pure')
+ is_expected.to contain_class('tripleo::profile::base::cinder::volume')
+ is_expected.to contain_class('tripleo::profile::base::cinder')
+ is_expected.to_not contain_cinder__backend__pure('tripleo_pure')
+ end
+ end
+
+ context 'with step 4' do
+ let(:params) { {
+ :step => 4,
+ } }
+
+ it 'should trigger complete configuration' do
+ # TODO(aschultz): check hiera parameters
+ is_expected.to contain_cinder__backend__pure('tripleo_pure')
+ end
+ end
+ end
+
+
+ on_supported_os.each do |os, facts|
+ context 'on #{os}' do
+ let(:facts) do
+ facts.merge({ :hostname => 'node.example.com' })
+ end
+
+ it_behaves_like 'tripleo::profile::base::cinder::volume::pure'
+ end
+ end
+end
diff --git a/spec/classes/tripleo_profile_base_cinder_volume_spec.rb b/spec/classes/tripleo_profile_base_cinder_volume_spec.rb
index 1542a49..aa3dd89 100644
--- a/spec/classes/tripleo_profile_base_cinder_volume_spec.rb
+++ b/spec/classes/tripleo_profile_base_cinder_volume_spec.rb
@@ -56,6 +56,25 @@ describe 'tripleo::profile::base::cinder::volume' do
end
end
+ context 'with only pure' do
+ before :each do
+ params.merge!({
+ :cinder_enable_pure_backend => true,
+ :cinder_enable_iscsi_backend => false,
+ })
+ end
+ it 'should configure only pure' do
+ is_expected.to contain_class('tripleo::profile::base::cinder::volume::pure')
+ is_expected.to_not contain_class('tripleo::profile::base::cinder::volume::iscsi')
+ is_expected.to contain_class('tripleo::profile::base::cinder::volume')
+ is_expected.to contain_class('tripleo::profile::base::cinder')
+ is_expected.to contain_class('cinder::volume')
+ is_expected.to contain_class('cinder::backends').with(
+ :enabled_backends => ['tripleo_pure']
+ )
+ end
+ end
+
context 'with only dellsc' do
before :each do
params.merge!({
@@ -116,8 +135,8 @@ describe 'tripleo::profile::base::cinder::volume' do
context 'with only nfs' do
before :each do
params.merge!({
- :cinder_enable_nfs_backend => true,
- :cinder_enable_iscsi_backend => false,
+ :cinder_enable_nfs_backend => true,
+ :cinder_enable_iscsi_backend => false,
})
end
it 'should configure only nfs' do
@@ -135,8 +154,8 @@ describe 'tripleo::profile::base::cinder::volume' do
context 'with only rbd' do
before :each do
params.merge!({
- :cinder_enable_rbd_backend => true,
- :cinder_enable_iscsi_backend => false,
+ :cinder_enable_rbd_backend => true,
+ :cinder_enable_iscsi_backend => false,
})
end
it 'should configure only ceph' do
@@ -160,6 +179,7 @@ describe 'tripleo::profile::base::cinder::volume' do
end
it 'should configure only user backend' do
is_expected.to_not contain_class('tripleo::profile::base::cinder::volume::iscsi')
+ is_expected.to_not contain_class('tripleo::profile::base::cinder::volume::pure')
is_expected.to_not contain_class('tripleo::profile::base::cinder::volume::dellsc')
is_expected.to_not contain_class('tripleo::profile::base::cinder::volume::dellps')
is_expected.to_not contain_class('tripleo::profile::base::cinder::volume::netapp')
@@ -177,16 +197,18 @@ describe 'tripleo::profile::base::cinder::volume' do
context 'with all tripleo backends' do
before :each do
params.merge!({
+ :cinder_enable_nfs_backend => true,
+ :cinder_enable_rbd_backend => true,
:cinder_enable_iscsi_backend => true,
+ :cinder_enable_pure_backend => true,
:cinder_enable_dellsc_backend => true,
:cinder_enable_dellps_backend => true,
:cinder_enable_netapp_backend => true,
- :cinder_enable_nfs_backend => true,
- :cinder_enable_rbd_backend => true,
})
end
it 'should configure all backends' do
is_expected.to contain_class('tripleo::profile::base::cinder::volume::iscsi')
+ is_expected.to contain_class('tripleo::profile::base::cinder::volume::pure')
is_expected.to contain_class('tripleo::profile::base::cinder::volume::dellsc')
is_expected.to contain_class('tripleo::profile::base::cinder::volume::dellps')
is_expected.to contain_class('tripleo::profile::base::cinder::volume::netapp')
@@ -196,7 +218,7 @@ describe 'tripleo::profile::base::cinder::volume' do
is_expected.to contain_class('tripleo::profile::base::cinder')
is_expected.to contain_class('cinder::volume')
is_expected.to contain_class('cinder::backends').with(
- :enabled_backends => ['tripleo_iscsi', 'tripleo_ceph', 'tripleo_dellps',
+ :enabled_backends => ['tripleo_iscsi', 'tripleo_ceph', 'tripleo_pure', 'tripleo_dellps',
'tripleo_dellsc', 'tripleo_netapp','tripleo_nfs']
)
end
@@ -206,7 +228,7 @@ describe 'tripleo::profile::base::cinder::volume' do
on_supported_os.each do |os, facts|
- context "on #{os}" do
+ context 'on #{os}' do
let(:facts) do
facts.merge({ :hostname => 'node.example.com' })
end