Merge "Add support for installing Ceph rbd-mirror"
This commit is contained in:
commit
fd5cf462c6
72
manifests/mirror.pp
Normal file
72
manifests/mirror.pp
Normal file
@ -0,0 +1,72 @@
|
||||
#
|
||||
# Copyright (C) 2016 Keith Schincke
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
# Author: Keith Schincke <keith.schincke@gmail.com>
|
||||
#
|
||||
# Configures a ceph rbd mirroring
|
||||
#
|
||||
# == Define: ceph::mirror
|
||||
#
|
||||
# === Parameters:
|
||||
#
|
||||
# [*pkg_mirror*] Package name for RBD mirroring
|
||||
# Optional. Default is 'rbd-mirror'
|
||||
#
|
||||
# [*rbd_mirror_ensure*] Ensure RBD mirror is running
|
||||
# Optional. Default is 'running'
|
||||
#
|
||||
# [*rbd_mirror_enable*] Enable the RBD mirror service on boot
|
||||
# Optional. Default is true
|
||||
|
||||
define ceph::mirror (
|
||||
$pkg_mirror = 'rbd-mirror',
|
||||
$rbd_mirror_ensure = 'running',
|
||||
$rbd_mirror_enable = true,
|
||||
) {
|
||||
|
||||
include ::stdlib
|
||||
|
||||
ensure_resource( 'package',
|
||||
$pkg_mirror,
|
||||
{
|
||||
ensure => present,
|
||||
tag => [ 'ceph' ],
|
||||
}
|
||||
)
|
||||
|
||||
$service_name = "ceph-rbd-mirror@${name}"
|
||||
|
||||
#Xenial reports 'debian' as the service provider
|
||||
#'systemd' should cover supported RHEL type systems
|
||||
if( ( $::service_provider == 'systemd' ) or
|
||||
( $::operatingsystemrelease == '16.04' ) )
|
||||
{
|
||||
Service{
|
||||
name => $service_name,
|
||||
enable => $rbd_mirror_enable,
|
||||
}
|
||||
}
|
||||
else {
|
||||
fail( 'Unsupported operating system. Ubuntu 16.04 and RedHat/CentOS 7 are supported' )
|
||||
}
|
||||
|
||||
service { $service_name:
|
||||
ensure => $rbd_mirror_ensure,
|
||||
tag => ['ceph-rbd-mirror']
|
||||
}
|
||||
|
||||
Ceph_config<||> ~> Service<| tag == 'ceph-rbd-mirror' |>
|
||||
Package<| tag == 'ceph'|> -> Service<| tag == 'ceph-rbd-mirror' |>
|
||||
}
|
30
manifests/profile/mirror.pp
Normal file
30
manifests/profile/mirror.pp
Normal file
@ -0,0 +1,30 @@
|
||||
#
|
||||
# Copyright (C) 2016 Keith Schincke
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
# Author: Keith Schincke <keith.schincke@gmail.com>
|
||||
#
|
||||
# == Class: ceph::profile::mirror
|
||||
#
|
||||
# Profile for Ceph rbd mirror
|
||||
#
|
||||
class ceph::profile::mirror {
|
||||
require ::ceph::profile::base
|
||||
$rbd_name = $::ceph::profile::params::rbd_mirror_client_name ? {
|
||||
undef => 'openstack',
|
||||
default => $::ceph::profile::params::rbd_mirror_client_name,
|
||||
}
|
||||
ceph::mirror { $rbd_name:
|
||||
}
|
||||
}
|
@ -172,6 +172,9 @@
|
||||
#
|
||||
# [*rgw_keystone_admin_password*] The password for OpenStack admin user
|
||||
# Required if is 'v3'.
|
||||
#
|
||||
# [*rbd_mirror_client_name*] Name of the cephx client key used for rbd mirroring
|
||||
# Optional. Default is undef
|
||||
|
||||
|
||||
class ceph::profile::params (
|
||||
@ -215,6 +218,7 @@ class ceph::profile::params (
|
||||
$rgw_keystone_admin_project = undef,
|
||||
$rgw_keystone_admin_user = undef,
|
||||
$rgw_keystone_admin_password = undef,
|
||||
$rbd_mirror_client_name = undef,
|
||||
|
||||
) {
|
||||
validate_hash($client_keys)
|
||||
|
@ -13,7 +13,7 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
# Author: Keith Schincke <keith.schincke@gmail.com.>
|
||||
# Author: Keith Schincke <keith.schincke@gmail.com>
|
||||
#
|
||||
# == Class: ceph::profile::rgw
|
||||
#
|
||||
|
@ -13,7 +13,7 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
# Author: Keith Schincke <keith.schincke@gmail.com.>
|
||||
# Author: Keith Schincke <keith.schincke@gmail.com>
|
||||
#
|
||||
# Configures a ceph radosgw using civetweb.
|
||||
#
|
||||
|
7
releasenotes/notes/rbd-mirror-e8c13699bb0e71d8.yaml
Normal file
7
releasenotes/notes/rbd-mirror-e8c13699bb0e71d8.yaml
Normal file
@ -0,0 +1,7 @@
|
||||
---
|
||||
features:
|
||||
- Adds support for the rbd-mirror service including
|
||||
package inistallation, service enable and service
|
||||
start. Does not include support for generating the
|
||||
client see as ceph::key or other processes creates
|
||||
this key
|
64
spec/defines/ceph_rbd_mirror_spec.rb
Normal file
64
spec/defines/ceph_rbd_mirror_spec.rb
Normal file
@ -0,0 +1,64 @@
|
||||
# Copyright (C) 2016 Keith Schincke
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
# Author: Keith Schincke <keith.schincke@gmail.com>
|
||||
#
|
||||
require 'spec_helper'
|
||||
|
||||
describe 'ceph::mirror' do
|
||||
|
||||
context 'Ubuntu 16.04' do
|
||||
|
||||
let :facts do
|
||||
{
|
||||
:osfamily => 'Debian',
|
||||
:operatingsystem => 'Ubuntu',
|
||||
:operatingsystemrelease => '16.04',
|
||||
:service_provider => 'systemd',
|
||||
}
|
||||
end
|
||||
|
||||
describe 'with default params' do
|
||||
let :title do
|
||||
'A'
|
||||
end
|
||||
|
||||
it { is_expected.to contain_service('ceph-rbd-mirror@A').with('ensure' => 'running') }
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
context 'RHEL 7' do
|
||||
|
||||
let :facts do
|
||||
{
|
||||
:osfamily => 'RedHat',
|
||||
:operatingsystem => 'RedHat',
|
||||
:operatingsystemrelease => '7.2',
|
||||
:operatingsystemmajrelease => '7',
|
||||
:service_provider => 'systemd',
|
||||
}
|
||||
end
|
||||
|
||||
describe 'with default params' do
|
||||
|
||||
let :title do
|
||||
'A'
|
||||
end
|
||||
|
||||
it { is_expected.to contain_service('ceph-rbd-mirror@A').with('ensure' => 'running') }
|
||||
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue
Block a user