162 lines
6.3 KiB
Puppet
162 lines
6.3 KiB
Puppet
# 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::manila
|
|
#
|
|
# Manila 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')
|
|
#
|
|
# [*manila_generic_enable*]
|
|
# (Optional) Enable the generic backend.
|
|
# Defaults to hiera('manila_generic_enable_backend', 'false')
|
|
#
|
|
# [*driver_handles_share_servers*]
|
|
# (Optional)
|
|
# Defaults to hiera('manila::backend::generic::driver_handles_share_servers')
|
|
#
|
|
# [*smb_template_config_path*]
|
|
# (Optional)
|
|
# Defaults to hiera('manila::backend::generic::smb_template_config_path')
|
|
#
|
|
# [*volume_name_template*]
|
|
# (Optional)
|
|
# Defaults to hiera('manila::backend::generic::volume_name_template')
|
|
|
|
# [*volume_snapshot_name_template*]
|
|
# (Optional)
|
|
# Defaults to hiera('manila::backend::generic::volume_snapshot_name_template')
|
|
#
|
|
# [*share_mount_path*]
|
|
# (Optional)
|
|
# Defaults to hiera('manila::backend::generic::share_mount_path')
|
|
#
|
|
# [*max_time_to_create_volume*]
|
|
# (Optional)
|
|
# Defaults to hiera('manila::backend::generic::max_time_to_create_volume')
|
|
#
|
|
# [*max_time_to_attach*]
|
|
# (Optional)
|
|
# Defaults to hiera('manila::backend::generic::max_time_to_attach')
|
|
#
|
|
# [*service_instance_smb_config_path*]
|
|
# (Optional)
|
|
# Defaults to downcase(hiera('manila::backend::generic::service_instance_smb_config_path'))
|
|
#
|
|
# [*share_volume_fstype*]
|
|
# (Optional)
|
|
# Defaults to hiera('manila::backend::generic::share_volume_fstype')
|
|
#
|
|
# [*cinder_volume_type*]
|
|
# (Optional)
|
|
# Defaults to hiera('manila::backend::generic::cinder_volume_type', '')
|
|
#
|
|
# [*service_instance_user*]
|
|
# (Optional)
|
|
# Defaults to hiera('manila::service_instance::service_instance_user')
|
|
|
|
# [*service_instance_password*]
|
|
# (Optional)
|
|
# Defaults to hiera('manila::service_instance::service_instance_password')
|
|
|
|
# [*service_instance_flavor_id*]
|
|
# (Optional)
|
|
# Defaults to hiera('manila::service_instance::service_instance_flavor_id')
|
|
#
|
|
class tripleo::profile::pacemaker::manila (
|
|
$bootstrap_node = hiera('bootstrap_nodeid'),
|
|
$step = hiera('step'),
|
|
$manila_generic_enable = hiera('manila_generic_enable_backend', false),
|
|
$driver_handles_share_servers = hiera('manila::backend::generic::driver_handles_share_servers'),
|
|
$smb_template_config_path = hiera('manila::backend::generic::smb_template_config_path'),
|
|
$volume_name_template = hiera('manila::backend::generic::volume_name_template'),
|
|
$volume_snapshot_name_template = hiera('manila::backend::generic::volume_snapshot_name_template'),
|
|
$share_mount_path = hiera('manila::backend::generic::share_mount_path'),
|
|
$max_time_to_create_volume = hiera('manila::backend::generic::max_time_to_create_volume'),
|
|
$max_time_to_attach = hiera('manila::backend::generic::max_time_to_attach'),
|
|
$service_instance_smb_config_path = hiera('manila::backend::generic::service_instance_smb_config_path'),
|
|
$share_volume_fstype = hiera('manila::backend::generic::share_volume_fstype'),
|
|
$cinder_volume_type = hiera('manila::backend::generic::cinder_volume_type', ''),
|
|
$service_instance_user = hiera('manila::service_instance::service_instance_user'),
|
|
$service_instance_password = hiera('manila::service_instance::service_instance_password'),
|
|
$service_instance_flavor_id = hiera('manila::service_instance::service_instance_flavor_id'),
|
|
) {
|
|
|
|
if $::hostname == downcase($bootstrap_node) {
|
|
$pacemaker_master = true
|
|
} else {
|
|
$pacemaker_master = false
|
|
}
|
|
|
|
# make it so puppet can't restart the manila-share service, since that is
|
|
# the only pacemaker managed one
|
|
Service <| tag == 'manila-share' |> {
|
|
hasrestart => true,
|
|
restart => '/bin/true',
|
|
start => '/bin/true',
|
|
stop => '/bin/true',
|
|
}
|
|
|
|
if $step >= 4 {
|
|
include ::tripleo::profile::base::manila::api
|
|
include ::tripleo::profile::base::manila::scheduler
|
|
include ::tripleo::profile::base::manila::share
|
|
|
|
if $manila_generic_enable {
|
|
$manila_generic_backend = hiera('manila::backend::generic::title')
|
|
manila::backend::generic { $manila_generic_backend :
|
|
driver_handles_share_servers => $driver_handles_share_servers,
|
|
smb_template_config_path => $smb_template_config_path,
|
|
volume_name_template => $volume_name_template ,
|
|
volume_snapshot_name_template => $volume_snapshot_name_template,
|
|
share_mount_path => $share_mount_path,
|
|
max_time_to_create_volume => $max_time_to_create_volume,
|
|
max_time_to_attach => $max_time_to_attach,
|
|
service_instance_smb_config_path => $service_instance_smb_config_path,
|
|
share_volume_fstype => $share_volume_fstype,
|
|
cinder_volume_type => $cinder_volume_type,
|
|
}
|
|
|
|
manila_config {
|
|
"${manila_generic_backend}/service_instance_user": value => $service_instance_user;
|
|
"${manila_generic_backend}/service_instance_password": value => $service_instance_password;
|
|
"${manila_generic_backend}/service_instance_flavor_id": value => $service_instance_flavor_id;
|
|
}
|
|
|
|
include ::manila::volume::cinder
|
|
}
|
|
|
|
$manila_enabled_backends = delete_undef_values([$manila_generic_backend])
|
|
class { '::manila::backends' :
|
|
enabled_share_backends => $manila_enabled_backends,
|
|
}
|
|
}
|
|
|
|
if $step >= 5 and $pacemaker_master {
|
|
|
|
# only manila-share is pacemaker managed, and in a/p
|
|
pacemaker::resource::service { $::manila::params::share_service : }
|
|
|
|
}
|
|
}
|