Add Cinder API/Scheduler/Volume roles
Includes both the base and the pacemaker roles. Change-Id: I3c6d5226eed5f0f852b0ad9476c7cd9a959fda69
This commit is contained in:
parent
df484b57db
commit
f75502475d
|
@ -0,0 +1,52 @@
|
|||
# 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
|
||||
#
|
||||
# Cinder common profile for tripleo
|
||||
#
|
||||
# === Parameters
|
||||
#
|
||||
# [*cinder_enable_db_purge*]
|
||||
# (Optional) Wheter to enable db purging
|
||||
# Defaults to true
|
||||
#
|
||||
# [*pacemaker_master*]
|
||||
# (Optional) The master node runs some tasks
|
||||
# one step earlier than others; disable to
|
||||
# the node is not the master.
|
||||
# Defaults to true
|
||||
#
|
||||
# [*step*]
|
||||
# (Optional) The current step of the deployment
|
||||
# Defaults to hiera('step')
|
||||
#
|
||||
class tripleo::profile::base::cinder (
|
||||
$cinder_enable_db_purge = true,
|
||||
$pacemaker_master = true,
|
||||
$step = hiera('step'),
|
||||
) {
|
||||
|
||||
if $step >= 4 or ($step >= 3 and $pacemaker_master) {
|
||||
include ::cinder
|
||||
include ::cinder::config
|
||||
}
|
||||
|
||||
if $step >= 5 {
|
||||
if $cinder_enable_db_purge {
|
||||
include ::cinder::cron::db_purge
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,49 @@
|
|||
# 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::api
|
||||
#
|
||||
# Cinder API profile for tripleo
|
||||
#
|
||||
# === Parameters
|
||||
#
|
||||
# [*sync_db*]
|
||||
# (Optional) Whether to run db sync
|
||||
# Defaults to true
|
||||
#
|
||||
# [*step*]
|
||||
# (Optional) The current step in deployment. See tripleo-heat-templates
|
||||
# for more details.
|
||||
# Defaults to hiera('step')
|
||||
#
|
||||
class tripleo::profile::base::cinder::api (
|
||||
$sync_db = true,
|
||||
$step = hiera('step'),
|
||||
) {
|
||||
|
||||
class { '::tripleo::profile::base::cinder':
|
||||
pacemaker_master => $sync_db,
|
||||
}
|
||||
|
||||
if $step >= 3 and $sync_db {
|
||||
include ::cinder::db::mysql
|
||||
}
|
||||
|
||||
if $step >= 4 or ($step >= 3 and $sync_db) {
|
||||
include ::cinder::api
|
||||
include ::cinder::ceilometer
|
||||
include ::cinder::glance
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,36 @@
|
|||
# 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::scheduler
|
||||
#
|
||||
# Cinder Scheduler profile for tripleo
|
||||
#
|
||||
# === Parameters
|
||||
#
|
||||
# [*step*]
|
||||
# (Optional) The current step in deployment. See tripleo-heat-templates
|
||||
# for more details.
|
||||
# Defaults to hiera('step')
|
||||
#
|
||||
class tripleo::profile::base::cinder::scheduler (
|
||||
$step = hiera('step'),
|
||||
) {
|
||||
|
||||
include ::tripleo::profile::base::cinder
|
||||
|
||||
if $step >= 4 {
|
||||
include ::cinder::scheduler
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,118 @@
|
|||
# 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
|
||||
#
|
||||
# Cinder Volume profile for tripleo
|
||||
#
|
||||
# === Parameters
|
||||
#
|
||||
# [*cinder_enable_dellsc_backend*]
|
||||
# (Optional) Whether to enable the delsc backend
|
||||
# Defaults to true
|
||||
#
|
||||
# [*cinder_enable_eqlx_backend*]
|
||||
# (Optional) Whether to enable the eqlx backend
|
||||
# Defaults to true
|
||||
#
|
||||
# [*cinder_enable_iscsi_backend*]
|
||||
# (Optional) Whether to enable the iscsi backend
|
||||
# Defaults to true
|
||||
#
|
||||
# [*cinder_enable_netapp_backend*]
|
||||
# (Optional) Whether to enable the netapp backend
|
||||
# Defaults to true
|
||||
#
|
||||
# [*cinder_enable_nfs_backend*]
|
||||
# (Optional) Whether to enable the nfs backend
|
||||
# Defaults to true
|
||||
#
|
||||
# [*cinder_enable_rbd_backend*]
|
||||
# (Optional) Whether to enable the rbd backend
|
||||
# Defaults to true
|
||||
#
|
||||
# [*cinder_user_enabled_backends*]
|
||||
# (Optional) List of additional backend stanzas to activate
|
||||
# Defaults to hiera('cinder_user_enabled_backends')
|
||||
#
|
||||
# [*step*]
|
||||
# (Optional) The current step in deployment. See tripleo-heat-templates
|
||||
# for more details.
|
||||
# Defaults to hiera('step')
|
||||
#
|
||||
class tripleo::profile::base::cinder::volume (
|
||||
$cinder_enable_dellsc_backend = false,
|
||||
$cinder_enable_eqlx_backend = false,
|
||||
$cinder_enable_iscsi_backend = true,
|
||||
$cinder_enable_netapp_backend = false,
|
||||
$cinder_enable_nfs_backend = false,
|
||||
$cinder_enable_rbd_backend = false,
|
||||
$cinder_user_enabled_backends = hiera('cinder_user_enabled_backends', undef),
|
||||
$step = hiera('step'),
|
||||
) {
|
||||
|
||||
include ::tripleo::profile::base::cinder
|
||||
|
||||
if $step >= 4 {
|
||||
include ::cinder::volume
|
||||
|
||||
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')
|
||||
} else {
|
||||
$cinder_dellsc_backend_name = undef
|
||||
}
|
||||
|
||||
if $cinder_enable_eqlx_backend {
|
||||
include ::tripleo::profile::base::cinder::volume::eqlx
|
||||
$cinder_eqlx_backend_name = hiera('cinder::backend::eqlx::volume_backend_name', 'tripleo_eqlx')
|
||||
} else {
|
||||
$cinder_eqlx_backend_name = undef
|
||||
}
|
||||
|
||||
if $cinder_enable_iscsi_backend {
|
||||
include ::tripleo::profile::base::cinder::volume::iscsi
|
||||
$cinder_iscsi_backend_name = hiera('cinder::backend::iscsi::volume_backend_name', 'tripleo_iscsi')
|
||||
} else {
|
||||
$cinder_iscsi_backend_name = undef
|
||||
}
|
||||
|
||||
if $cinder_enable_netapp_backend {
|
||||
include ::tripleo::profile::base::cinder::volume::netapp
|
||||
$cinder_netapp_backend_name = hiera('cinder::backend::netapp::volume_backend_name', 'tripleo_netapp')
|
||||
} else {
|
||||
$cinder_netapp_backend_name = undef
|
||||
}
|
||||
|
||||
if $cinder_enable_nfs_backend {
|
||||
include ::tripleo::profile::base::cinder::volume::nfs
|
||||
$cinder_nfs_backend_name = hiera('cinder::backend::nfs::volume_backend_name', 'tripleo_nfs')
|
||||
} else {
|
||||
$cinder_nfs_backend_name = undef
|
||||
}
|
||||
|
||||
if $cinder_enable_rbd_backend {
|
||||
include ::tripleo::profile::base::cinder::volume::rbd
|
||||
$cinder_rbd_backend_name = hiera('cinder::backend::rbd::volume_backend_name', 'tripleo_ceph')
|
||||
} else {
|
||||
$cinder_rbd_backend_name = undef
|
||||
}
|
||||
|
||||
$cinder_enabled_backends = delete_undef_values([$cinder_iscsi_backend_name, $cinder_rbd_backend_name, $cinder_eqlx_backend_name, $cinder_dellsc_backend_name, $cinder_netapp_backend_name, $cinder_nfs_backend_name, $cinder_user_enabled_backends])
|
||||
class { '::cinder::backends' :
|
||||
enabled_backends => $cinder_enabled_backends,
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,51 @@
|
|||
# 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::dellsc
|
||||
#
|
||||
# Cinder Volume dellsc profile for tripleo
|
||||
#
|
||||
# === Parameters
|
||||
#
|
||||
# [*backend_name*]
|
||||
# (Optional) Name given to the Cinder backend stanza
|
||||
# Defaults to 'tripleo_dellsc'
|
||||
#
|
||||
# [*step*]
|
||||
# (Optional) The current step in deployment. See tripleo-heat-templates
|
||||
# for more details.
|
||||
# Defaults to hiera('step')
|
||||
#
|
||||
class tripleo::profile::base::cinder::volume::dellsc (
|
||||
$backend_name = hiera('cinder::backend::dellsc_iscsi::volume_backend_name', 'tripleo_dellsc'),
|
||||
$step = hiera('step'),
|
||||
) {
|
||||
|
||||
include ::tripleo::profile::base::cinder::volume
|
||||
|
||||
if $step >= 4 {
|
||||
cinder::backend::dellsc_iscsi { $backend_name :
|
||||
san_ip => hiera('cinder::backend::dellsc_iscsi::san_ip', undef),
|
||||
san_login => hiera('cinder::backend::dellsc_iscsi::san_login', undef),
|
||||
san_password => hiera('cinder::backend::dellsc_iscsi::san_password', undef),
|
||||
dell_sc_ssn => hiera('cinder::backend::dellsc_iscsi::dell_sc_ssn', undef),
|
||||
iscsi_ip_address => hiera('cinder::backend::dellsc_iscsi::iscsi_ip_address', undef),
|
||||
iscsi_port => hiera('cinder::backend::dellsc_iscsi::iscsi_port', undef),
|
||||
dell_sc_api_port => hiera('cinder::backend::dellsc_iscsi::dell_sc_api_port', undef),
|
||||
dell_sc_server_folder => hiera('cinder::backend::dellsc_iscsi::dell_sc_server_folder', undef),
|
||||
dell_sc_volume_folder => hiera('cinder::backend::dellsc_iscsi::dell_sc_volume_folder', undef),
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,51 @@
|
|||
# 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::eqlx
|
||||
#
|
||||
# Cinder Volume eqlx profile for tripleo
|
||||
#
|
||||
# === Parameters
|
||||
#
|
||||
# [*backend_name*]
|
||||
# (Optional) Name given to the Cinder backend stanza
|
||||
# Defaults to 'tripleo_eqlx'
|
||||
#
|
||||
# [*step*]
|
||||
# (Optional) The current step in deployment. See tripleo-heat-templates
|
||||
# for more details.
|
||||
# Defaults to hiera('step')
|
||||
#
|
||||
class tripleo::profile::base::cinder::volume::eqlx (
|
||||
$backend_name = hiera('cinder::backend::eqlx::volume_backend_name', 'tripleo_eqlx'),
|
||||
$step = hiera('step'),
|
||||
) {
|
||||
|
||||
include ::tripleo::profile::base::cinder::volume
|
||||
|
||||
if $step >= 4 {
|
||||
cinder::backend::eqlx { $backend_name :
|
||||
san_ip => hiera('cinder::backend::eqlx::san_ip', undef),
|
||||
san_login => hiera('cinder::backend::eqlx::san_login', undef),
|
||||
san_password => hiera('cinder::backend::eqlx::san_password', undef),
|
||||
san_thin_provision => hiera('cinder::backend::eqlx::san_thin_provision', undef),
|
||||
eqlx_group_name => hiera('cinder::backend::eqlx::eqlx_group_name', undef),
|
||||
eqlx_pool => hiera('cinder::backend::eqlx::eqlx_pool', undef),
|
||||
eqlx_use_chap => hiera('cinder::backend::eqlx::eqlx_use_chap', undef),
|
||||
eqlx_chap_login => hiera('cinder::backend::eqlx::eqlx_chap_login', undef),
|
||||
eqlx_chap_password => hiera('cinder::backend::eqlx::eqlx_san_password', undef),
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,62 @@
|
|||
# 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::iscsi
|
||||
#
|
||||
# Cinder Volume iscsi profile for tripleo
|
||||
#
|
||||
# === Parameters
|
||||
#
|
||||
# [*cinder_iscsi_address*]
|
||||
# The address where to bind the iscsi targets daemon
|
||||
#
|
||||
# [*cinder_iscsi_helper*]
|
||||
# (Optional) The iscsi helper to use
|
||||
# Defaults to 'tgtadm'
|
||||
#
|
||||
# [*cinder_lvm_loop_device_size*]
|
||||
# (Optional) The size (in MB) of the LVM loopback volume
|
||||
# Defaults to '10280'
|
||||
#
|
||||
# [*backend_name*]
|
||||
# (Optional) Name given to the Cinder backend stanza
|
||||
# Defaults to 'tripleo_iscsi'
|
||||
#
|
||||
# [*step*]
|
||||
# (Optional) The current step in deployment. See tripleo-heat-templates
|
||||
# for more details.
|
||||
# Defaults to hiera('step')
|
||||
#
|
||||
class tripleo::profile::base::cinder::volume::iscsi (
|
||||
$cinder_iscsi_address,
|
||||
$cinder_iscsi_helper = 'tgtadm',
|
||||
$cinder_lvm_loop_device_size = '10280',
|
||||
$backend_name = hiera('cinder::backend::iscsi::volume_backend_name', 'tripleo_iscsi'),
|
||||
$step = hiera('step'),
|
||||
) {
|
||||
|
||||
include ::tripleo::profile::base::cinder::volume
|
||||
|
||||
if $step >= 4 {
|
||||
class { '::cinder::setup_test_volume':
|
||||
size => join([$cinder_lvm_loop_device_size, 'M']),
|
||||
}
|
||||
|
||||
cinder::backend::iscsi { $backend_name :
|
||||
iscsi_ip_address => $cinder_iscsi_address,
|
||||
iscsi_helper => $cinder_iscsi_helper,
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,66 @@
|
|||
# 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::netapp
|
||||
#
|
||||
# Cinder Volume netapp profile for tripleo
|
||||
#
|
||||
# === Parameters
|
||||
#
|
||||
# [*backend_name*]
|
||||
# (Optional) Name given to the Cinder backend stanza
|
||||
# Defaults to 'tripleo_netapp'
|
||||
#
|
||||
# [*step*]
|
||||
# (Optional) The current step in deployment. See tripleo-heat-templates
|
||||
# for more details.
|
||||
# Defaults to hiera('step')
|
||||
#
|
||||
class tripleo::profile::base::cinder::volume::netapp (
|
||||
$backend_name = hiera('cinder::backend::netapp::volume_backend_name', 'tripleo_netapp'),
|
||||
$step = hiera('step'),
|
||||
) {
|
||||
|
||||
include ::tripleo::profile::base::cinder::volume
|
||||
|
||||
if $step >= 4 {
|
||||
if hiera('cinder::backend::netapp::nfs_shares', undef) {
|
||||
$cinder_netapp_nfs_shares = split(hiera('cinder::backend::netapp::nfs_shares', undef), ',')
|
||||
}
|
||||
|
||||
cinder::backend::netapp { $backend_name :
|
||||
netapp_login => hiera('cinder::backend::netapp::netapp_login', undef),
|
||||
netapp_password => hiera('cinder::backend::netapp::netapp_password', undef),
|
||||
netapp_server_hostname => hiera('cinder::backend::netapp::netapp_server_hostname', undef),
|
||||
netapp_server_port => hiera('cinder::backend::netapp::netapp_server_port', undef),
|
||||
netapp_size_multiplier => hiera('cinder::backend::netapp::netapp_size_multiplier', undef),
|
||||
netapp_storage_family => hiera('cinder::backend::netapp::netapp_storage_family', undef),
|
||||
netapp_storage_protocol => hiera('cinder::backend::netapp::netapp_storage_protocol', undef),
|
||||
netapp_transport_type => hiera('cinder::backend::netapp::netapp_transport_type', undef),
|
||||
netapp_vfiler => hiera('cinder::backend::netapp::netapp_vfiler', undef),
|
||||
netapp_volume_list => hiera('cinder::backend::netapp::netapp_volume_list', undef),
|
||||
netapp_vserver => hiera('cinder::backend::netapp::netapp_vserver', undef),
|
||||
netapp_partner_backend_name => hiera('cinder::backend::netapp::netapp_partner_backend_name', undef),
|
||||
nfs_shares => $cinder_netapp_nfs_shares,
|
||||
nfs_shares_config => hiera('cinder::backend::netapp::nfs_shares_config', undef),
|
||||
netapp_copyoffload_tool_path => hiera('cinder::backend::netapp::netapp_copyoffload_tool_path', undef),
|
||||
netapp_controller_ips => hiera('cinder::backend::netapp::netapp_controller_ips', undef),
|
||||
netapp_sa_password => hiera('cinder::backend::netapp::netapp_sa_password', undef),
|
||||
netapp_storage_pools => hiera('cinder::backend::netapp::netapp_storage_pools', undef),
|
||||
netapp_eseries_host_type => hiera('cinder::backend::netapp::netapp_eseries_host_type', undef),
|
||||
netapp_webservice_path => hiera('cinder::backend::netapp::netapp_webservice_path', undef),
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,62 @@
|
|||
# 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::nfs
|
||||
#
|
||||
# Cinder Volume nfs profile for tripleo
|
||||
#
|
||||
# === Parameters
|
||||
#
|
||||
# [*cinder_nfs_mount_options*]
|
||||
# (Optional) List of mount options for the NFS share
|
||||
# Defaults to ''
|
||||
#
|
||||
# [*cinder_nfs_servers*]
|
||||
# List of NFS shares to mount
|
||||
#
|
||||
# [*backend_name*]
|
||||
# (Optional) Name given to the Cinder backend stanza
|
||||
# Defaults to 'tripleo_nfs'
|
||||
#
|
||||
# [*step*]
|
||||
# (Optional) The current step in deployment. See tripleo-heat-templates
|
||||
# for more details.
|
||||
# Defaults to hiera('step')
|
||||
#
|
||||
class tripleo::profile::base::cinder::volume::nfs (
|
||||
$cinder_nfs_mount_options = '',
|
||||
$cinder_nfs_servers,
|
||||
$backend_name = hiera('cinder::backend::nfs::volume_backend_name', 'tripleo_nfs'),
|
||||
$step = hiera('step'),
|
||||
) {
|
||||
|
||||
include ::tripleo::profile::base::cinder::volume
|
||||
|
||||
if $step >= 4 {
|
||||
if str2bool($::selinux) {
|
||||
selboolean { 'virt_use_nfs':
|
||||
value => on,
|
||||
persistent => true,
|
||||
} -> Package['nfs-utils']
|
||||
}
|
||||
|
||||
package {'nfs-utils': } ->
|
||||
cinder::backend::nfs { $backend_name :
|
||||
nfs_servers => $cinder_nfs_servers,
|
||||
nfs_mount_options => $cinder_nfs_mount_options,
|
||||
nfs_shares_config => '/etc/cinder/shares-nfs.conf',
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,66 @@
|
|||
# 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::rbd
|
||||
#
|
||||
# Cinder Volume rbd profile for tripleo
|
||||
#
|
||||
# === Parameters
|
||||
#
|
||||
# [*cinder_rbd_backend_host*]
|
||||
# (Optional) String to use as backend_host in the backend stanza
|
||||
# Defaults to 'cinder::host'
|
||||
#
|
||||
# [*cinder_rbd_pool_name*]
|
||||
# (Optional) The name of the RBD pool to use
|
||||
# Defaults to 'volumes'
|
||||
#
|
||||
# [*cinder_rbd_secret_uuid*]
|
||||
# (Optional) UUID of the of the libvirt secret storing the Cephx key
|
||||
# Defaults to 'ceph::profile::params::fsid'
|
||||
#
|
||||
# [*cinder_rbd_user_name*]
|
||||
# (Optional) The user name for the RBD client
|
||||
# Defaults to 'openstack'
|
||||
#
|
||||
# [*backend_name*]
|
||||
# (Optional) Name given to the Cinder backend stanza
|
||||
# Defaults to 'tripleo_ceph'
|
||||
#
|
||||
# [*step*]
|
||||
# (Optional) The current step in deployment. See tripleo-heat-templates
|
||||
# for more details.
|
||||
# Defaults to hiera('step')
|
||||
#
|
||||
class tripleo::profile::base::cinder::volume::rbd (
|
||||
$cinder_rbd_backend_host = hiera('cinder::host', 'hostgroup'),
|
||||
$cinder_rbd_pool_name = 'volumes',
|
||||
$cinder_rbd_secret_uuid = hiera('ceph::profile::params::fsid', undef),
|
||||
$cinder_rbd_user_name = 'openstack',
|
||||
$backend_name = hiera('cinder::backend::rbd::volume_backend_name', 'tripleo_ceph'),
|
||||
$step = hiera('step'),
|
||||
) {
|
||||
|
||||
include ::tripleo::profile::base::cinder::volume
|
||||
|
||||
if $step >= 4 {
|
||||
cinder::backend::rbd { $backend_name :
|
||||
backend_host => $cinder_rbd_backend_host,
|
||||
rbd_pool => $cinder_rbd_pool_name,
|
||||
rbd_user => $cinder_rbd_user_name,
|
||||
rbd_secret_uuid => $cinder_rbd_secret_uuid,
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,67 @@
|
|||
# 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::pacemaker::cinder::api
|
||||
#
|
||||
# Cinder API Pacemaker HA profile for tripleo
|
||||
#
|
||||
# === Parameters
|
||||
#
|
||||
# [*bootstrap_node*]
|
||||
# (Optional) The hostname of the node responsible for bootstrapping tasks
|
||||
# Defaults to hiera('bootstrap_nodeid')
|
||||
#
|
||||
# [*step*]
|
||||
# (Optional) The current step in deployment. See tripleo-heat-templates
|
||||
# for more details.
|
||||
# Defaults to hiera('step')
|
||||
#
|
||||
class tripleo::profile::pacemaker::cinder::api (
|
||||
$bootstrap_node = hiera('bootstrap_nodeid'),
|
||||
$step = hiera('step'),
|
||||
) {
|
||||
|
||||
Service <| tag == 'cinder-service' |> {
|
||||
hasrestart => true,
|
||||
restart => '/bin/true',
|
||||
start => '/bin/true',
|
||||
stop => '/bin/true',
|
||||
}
|
||||
|
||||
if $::hostname == downcase($bootstrap_node) {
|
||||
$pacemaker_master = true
|
||||
} else {
|
||||
$pacemaker_master = false
|
||||
}
|
||||
|
||||
class { '::tripleo::profile::base::cinder::api':
|
||||
sync_db => $pacemaker_master,
|
||||
}
|
||||
|
||||
if $step >= 5 and $pacemaker_master {
|
||||
pacemaker::resource::service { $::cinder::params::api_service :
|
||||
clone_params => 'interleave=true',
|
||||
require => Pacemaker::Resource::Ocf['openstack-core'],
|
||||
}
|
||||
pacemaker::constraint::base { 'keystone-then-cinder-api-constraint':
|
||||
constraint_type => 'order',
|
||||
first_resource => 'openstack-core-clone',
|
||||
second_resource => "${::cinder::params::api_service}-clone",
|
||||
first_action => 'start',
|
||||
second_action => 'start',
|
||||
require => [Pacemaker::Resource::Ocf['openstack-core'],
|
||||
Pacemaker::Resource::Service[$::cinder::params::api_service]],
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,72 @@
|
|||
# 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::pacemaker::cinder::scheduler
|
||||
#
|
||||
# Cinder Scheduler Pacemaker HA profile for tripleo
|
||||
#
|
||||
# === Parameters
|
||||
#
|
||||
# [*bootstrap_node*]
|
||||
# (Optional) The hostname of the node responsible for bootstrapping tasks
|
||||
# Defaults to hiera('bootstrap_nodeid')
|
||||
#
|
||||
# [*step*]
|
||||
# (Optional) The current step in deployment. See tripleo-heat-templates
|
||||
# for more details.
|
||||
# Defaults to hiera('step')
|
||||
#
|
||||
class tripleo::profile::pacemaker::cinder::scheduler (
|
||||
$bootstrap_node = hiera('bootstrap_nodeid'),
|
||||
$step = hiera('step'),
|
||||
) {
|
||||
|
||||
Service <| tag == 'cinder-service' |> {
|
||||
hasrestart => true,
|
||||
restart => '/bin/true',
|
||||
start => '/bin/true',
|
||||
stop => '/bin/true',
|
||||
}
|
||||
|
||||
if $::hostname == downcase($bootstrap_node) {
|
||||
$pacemaker_master = true
|
||||
} else {
|
||||
$pacemaker_master = false
|
||||
}
|
||||
|
||||
include ::tripleo::profile::base::cinder::scheduler
|
||||
|
||||
if $step >= 5 and $pacemaker_master {
|
||||
pacemaker::resource::service { $::cinder::params::scheduler_service :
|
||||
clone_params => 'interleave=true',
|
||||
}
|
||||
pacemaker::constraint::base { 'cinder-api-then-cinder-scheduler-constraint':
|
||||
constraint_type => 'order',
|
||||
first_resource => "${::cinder::params::api_service}-clone",
|
||||
second_resource => "${::cinder::params::scheduler_service}-clone",
|
||||
first_action => 'start',
|
||||
second_action => 'start',
|
||||
require => [Pacemaker::Resource::Service[$::cinder::params::api_service],
|
||||
Pacemaker::Resource::Service[$::cinder::params::scheduler_service]],
|
||||
}
|
||||
pacemaker::constraint::colocation { 'cinder-scheduler-with-cinder-api-colocation':
|
||||
source => "${::cinder::params::scheduler_service}-clone",
|
||||
target => "${::cinder::params::api_service}-clone",
|
||||
score => 'INFINITY',
|
||||
require => [Pacemaker::Resource::Service[$::cinder::params::api_service],
|
||||
Pacemaker::Resource::Service[$::cinder::params::scheduler_service]],
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,70 @@
|
|||
# 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::pacemaker::cinder::volume
|
||||
#
|
||||
# Cinder Volume Pacemaker HA profile for tripleo
|
||||
#
|
||||
# === Parameters
|
||||
#
|
||||
# [*bootstrap_node*]
|
||||
# (Optional) The hostname of the node responsible for bootstrapping tasks
|
||||
# Defaults to hiera('bootstrap_nodeid')
|
||||
#
|
||||
# [*step*]
|
||||
# (Optional) The current step in deployment. See tripleo-heat-templates
|
||||
# for more details.
|
||||
# Defaults to hiera('step')
|
||||
#
|
||||
class tripleo::profile::pacemaker::cinder::volume (
|
||||
$bootstrap_node = hiera('bootstrap_nodeid'),
|
||||
$step = hiera('step'),
|
||||
) {
|
||||
|
||||
Service <| tag == 'cinder-service' |> {
|
||||
hasrestart => true,
|
||||
restart => '/bin/true',
|
||||
start => '/bin/true',
|
||||
stop => '/bin/true',
|
||||
}
|
||||
|
||||
if $::hostname == downcase($bootstrap_node) {
|
||||
$pacemaker_master = true
|
||||
} else {
|
||||
$pacemaker_master = false
|
||||
}
|
||||
|
||||
include ::tripleo::profile::base::cinder::volume
|
||||
|
||||
if $step >= 5 and $pacemaker_master {
|
||||
pacemaker::resource::service { $::cinder::params::volume_service : }
|
||||
pacemaker::constraint::base { 'cinder-scheduler-then-cinder-volume-constraint':
|
||||
constraint_type => 'order',
|
||||
first_resource => "${::cinder::params::scheduler_service}-clone",
|
||||
second_resource => $::cinder::params::volume_service,
|
||||
first_action => 'start',
|
||||
second_action => 'start',
|
||||
require => [Pacemaker::Resource::Service[$::cinder::params::scheduler_service],
|
||||
Pacemaker::Resource::Service[$::cinder::params::volume_service]],
|
||||
}
|
||||
pacemaker::constraint::colocation { 'cinder-volume-with-cinder-scheduler-colocation':
|
||||
source => $::cinder::params::volume_service,
|
||||
target => "${::cinder::params::scheduler_service}-clone",
|
||||
score => 'INFINITY',
|
||||
require => [Pacemaker::Resource::Service[$::cinder::params::scheduler_service],
|
||||
Pacemaker::Resource::Service[$::cinder::params::volume_service]],
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue