puppet-tripleo/manifests/profile/pacemaker/manila.pp

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 : }
}
}