Glance over Cinder support
Change-Id: Ib38a8bd3e5c02ab9214726ab313024fda46cd754
This commit is contained in:
parent
f2138fe7dd
commit
18c7be145d
|
@ -0,0 +1,65 @@
|
|||
# The puppet configures OpenStack glance to use ScaleIO via Cinder.
|
||||
|
||||
define glance_config(
|
||||
$config_file,
|
||||
) {
|
||||
Ini_setting {
|
||||
ensure => 'present',
|
||||
section => 'glance_store',
|
||||
path => $config_file,
|
||||
}
|
||||
ini_setting { "${config_file}: default_store":
|
||||
setting => 'default_store',
|
||||
value => 'cinder',
|
||||
} ->
|
||||
ini_setting { "${config_file}: stores":
|
||||
setting => 'stores',
|
||||
value => 'glance.store.cinder.Store',
|
||||
}
|
||||
}
|
||||
|
||||
$scaleio = hiera('scaleio')
|
||||
if $scaleio['metadata']['enabled'] {
|
||||
$all_nodes = hiera('nodes')
|
||||
$nodes = filter_nodes($all_nodes, 'name', $::hostname)
|
||||
if empty(filter_nodes($nodes, 'role', 'primary-controller')) and empty(filter_nodes($nodes, 'role', 'controller')) {
|
||||
fail("glance task should be run only on controllers, but node ${::hostname} is not controller")
|
||||
}
|
||||
if $scaleio['use_scaleio_for_glance'] {
|
||||
$glance_services = $::osfamily ? {
|
||||
'RedHat' => ['openstack-glance-api', 'openstack-glance-registry', 'openstack-glance-glare'],
|
||||
'Debian' => ['glance-api', 'glance-registry', 'glance-glare'],
|
||||
}
|
||||
$glance_api_config_file = '/etc/glance/glance-api.conf'
|
||||
$glance_glare_config_file = '/etc/glance/glance-glare.conf'
|
||||
package { ['python-cinderclient', 'python-os-brick', 'python-oslo.rootwrap']:
|
||||
ensure => 'present',
|
||||
} ->
|
||||
class {'scaleio_openstack::glance':
|
||||
} ->
|
||||
file { "/etc/glance/rootwrap.conf":
|
||||
ensure => $ensure,
|
||||
source => "puppet:///modules/scaleio_fuel/glance_rootwrap.conf",
|
||||
mode => '0755',
|
||||
owner => 'root',
|
||||
group => 'root',
|
||||
} ->
|
||||
file { "/etc/sudoers.d/glance_sudoers":
|
||||
ensure => $ensure,
|
||||
source => "puppet:///modules/scaleio_fuel/glance_sudoers",
|
||||
mode => '0644',
|
||||
owner => 'root',
|
||||
group => 'root',
|
||||
} ->
|
||||
glance_config {"${glance_api_config_file}":
|
||||
config_file => $glance_api_config_file
|
||||
} ->
|
||||
glance_config {"${glance_glare_config_file}":
|
||||
config_file => $glance_glare_config_file
|
||||
} ~>
|
||||
service { $glance_services:
|
||||
ensure => running,
|
||||
enable => true,
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
# The puppet create new OpenStack Glance's test image.
|
||||
|
||||
$scaleio = hiera('scaleio')
|
||||
if $scaleio['metadata']['enabled'] {
|
||||
$all_nodes = hiera('nodes')
|
||||
$nodes = filter_nodes($all_nodes, 'name', $::hostname)
|
||||
if empty(filter_nodes($nodes, 'role', 'primary-controller')) {
|
||||
fail("create test image task should be run only on primary-controller, but node ${::hostname} is not primary-controller")
|
||||
}
|
||||
if $scaleio['use_scaleio_for_glance'] {
|
||||
$test_vm_image_cfg = hiera('test_vm_image')
|
||||
if $test_vm_image_cfg {
|
||||
$image_name = $test_vm_image_cfg['img_name']
|
||||
$local_path = $test_vm_image_cfg['img_path']
|
||||
$is_public_opts = $test_vm_image_cfg['public'] ? {
|
||||
false => '--private',
|
||||
'false' => '--private',
|
||||
default => '--public',
|
||||
}
|
||||
exec {"test image create":
|
||||
command => "bash -c 'source /root/openrc && openstack image create ${is_public_opts} --file ${local_path} ${image_name}'",
|
||||
unless => "bash -c 'source /root/openrc && openstack image list | grep -qi ${image_name}'",
|
||||
path => '/bin:/usr/bin:/usr/local/bin',
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
# The puppet removes OpenStack Glance's test image if it exists.
|
||||
# It's needed to change default backend for images.
|
||||
|
||||
$scaleio = hiera('scaleio')
|
||||
if $scaleio['metadata']['enabled'] {
|
||||
$all_nodes = hiera('nodes')
|
||||
$nodes = filter_nodes($all_nodes, 'name', $::hostname)
|
||||
if empty(filter_nodes($nodes, 'role', 'primary-controller')) {
|
||||
fail("delete test image task should be run only on primary-controller, but node ${::hostname} is not primary-controller")
|
||||
}
|
||||
if $scaleio['use_scaleio_for_glance'] {
|
||||
$test_vm_image_cfg = hiera('test_vm_image')
|
||||
if $test_vm_image_cfg {
|
||||
$test_image = $test_vm_image_cfg['img_name']
|
||||
exec {"test image delete":
|
||||
command => "bash -c 'source /root/openrc && openstack image delete ${test_image}'",
|
||||
onlyif => "bash -c 'source /root/openrc && openstack image list | grep -qi ${test_image}'",
|
||||
path => '/bin:/usr/bin:/usr/local/bin',
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -6,9 +6,19 @@ if $scaleio['metadata']['enabled'] {
|
|||
if ! $::controller_ips {
|
||||
fail('Empty Controller IPs configuration')
|
||||
}
|
||||
class {'::scaleio::sdc_server':
|
||||
ensure => 'present',
|
||||
mdm_ip => $::controller_ips,
|
||||
$all_nodes = hiera('nodes')
|
||||
$nodes = filter_nodes($all_nodes, 'name', $::hostname)
|
||||
$is_compute = !empty(filter_nodes($nodes, 'role', 'compute'))
|
||||
$is_cinder = !empty(filter_nodes($nodes, 'role', 'cinder'))
|
||||
$is_glance = (!empty(filter_nodes($nodes, 'role', 'primary-controller')) or !empty(filter_nodes($nodes, 'role', 'controller'))) and $scaleio['use_scaleio_for_glance']
|
||||
$need_sdc = $is_compute or $is_cinder or $is_glance
|
||||
if $need_sdc {
|
||||
class {'::scaleio::sdc_server':
|
||||
ensure => 'present',
|
||||
mdm_ip => $::controller_ips,
|
||||
}
|
||||
} else{
|
||||
notify {"Skip SDC server task on the node ${::hostname}": }
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -2,8 +2,18 @@
|
|||
|
||||
$scaleio = hiera('scaleio')
|
||||
if $scaleio['metadata']['enabled'] {
|
||||
class {'::scaleio::sdc_server':
|
||||
ensure => 'present',
|
||||
mdm_ip => undef,
|
||||
$all_nodes = hiera('nodes')
|
||||
$nodes = filter_nodes($all_nodes, 'name', $::hostname)
|
||||
$is_compute = !empty(filter_nodes($nodes, 'role', 'compute'))
|
||||
$is_cinder = !empty(filter_nodes($nodes, 'role', 'cinder'))
|
||||
$is_glance = (!empty(filter_nodes($nodes, 'role', 'primary-controller')) or !empty(filter_nodes($nodes, 'role', 'controller'))) and $scaleio['use_scaleio_for_glance']
|
||||
$need_sdc = $is_compute or $is_cinder or $is_glance
|
||||
if $need_sdc {
|
||||
class {'::scaleio::sdc_server':
|
||||
ensure => 'present',
|
||||
mdm_ip => undef,
|
||||
}
|
||||
} else{
|
||||
notify {"Skip SDC server task on the node ${::hostname}": }
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
# Configuration for glance-rootwrap
|
||||
# This file should be owned by (and only-writeable by) the root user
|
||||
|
||||
[DEFAULT]
|
||||
# List of directories to load filter definitions from (separated by ',').
|
||||
# These directories MUST all be only writeable by root !
|
||||
filters_path=/etc/glance/rootwrap.d
|
||||
|
||||
# List of directories to search executables in, in case filters do not
|
||||
# explicitely specify a full path (separated by ',')
|
||||
# If not specified, defaults to system PATH environment variable.
|
||||
# These directories MUST all be only writeable by root !
|
||||
exec_dirs=/sbin,/usr/sbin,/bin,/usr/bin,/usr/local/bin,/usr/local/sbin
|
||||
|
||||
# Enable logging to syslog
|
||||
# Default value is False
|
||||
use_syslog=False
|
||||
|
||||
# Which syslog facility to use.
|
||||
# Valid values include auth, authpriv, syslog, local0, local1...
|
||||
# Default value is 'syslog'
|
||||
syslog_log_facility=syslog
|
||||
|
||||
# Which messages to log.
|
||||
# INFO means log all usage
|
||||
# ERROR means only log unsuccessful attempts
|
||||
syslog_log_level=ERROR
|
|
@ -0,0 +1,3 @@
|
|||
Defaults:glance !requiretty
|
||||
|
||||
glance ALL = (root) NOPASSWD: /usr/bin/glance-rootwrap /etc/glance/rootwrap.conf *
|
|
@ -130,7 +130,7 @@
|
|||
- id: scaleio-sdc-server
|
||||
required_for: [post_deployment_end]
|
||||
requires: [scaleio-sds-server, scaleio-environment-existing-mdm-ips]
|
||||
role: [compute, cinder]
|
||||
role: [primary-controller, controller, compute, cinder]
|
||||
type: puppet
|
||||
parameters:
|
||||
puppet_manifest: puppet/manifests/sdc_server.pp
|
||||
|
@ -140,7 +140,7 @@
|
|||
- id: scaleio-sdc
|
||||
required_for: [post_deployment_end]
|
||||
requires: [scaleio-sdc-server]
|
||||
role: [compute, cinder]
|
||||
role: [primary-controller, controller, compute, cinder]
|
||||
type: puppet
|
||||
parameters:
|
||||
puppet_manifest: puppet/manifests/sdc.pp
|
||||
|
@ -188,3 +188,38 @@
|
|||
puppet_modules: puppet/modules:/etc/puppet/modules
|
||||
timeout: 600
|
||||
|
||||
- id: scaleio-glance-cleanup
|
||||
required_for: [post_deployment_end]
|
||||
requires: [scaleio-configure-cluster]
|
||||
cross-depends:
|
||||
- name: scaleio-configure-cluster
|
||||
role: [primary-controller]
|
||||
type: puppet
|
||||
parameters:
|
||||
puppet_manifest: puppet/manifests/glance_delete_test_image.pp
|
||||
puppet_modules: puppet/modules:/etc/puppet/modules
|
||||
timeout: 600
|
||||
|
||||
- id: scaleio-glance
|
||||
required_for: [post_deployment_end]
|
||||
requires: [scaleio-glance-cleanup]
|
||||
cross-depends:
|
||||
- name: scaleio-glance-cleanup
|
||||
role: [primary-controller, controller]
|
||||
type: puppet
|
||||
parameters:
|
||||
puppet_manifest: puppet/manifests/glance.pp
|
||||
puppet_modules: puppet/modules:/etc/puppet/modules
|
||||
timeout: 600
|
||||
|
||||
- id: scaleio-glance-test-image
|
||||
required_for: [post_deployment_end]
|
||||
requires: [scaleio-glance]
|
||||
cross-depends:
|
||||
- name: scaleio-glance
|
||||
role: [primary-controller]
|
||||
type: puppet
|
||||
parameters:
|
||||
puppet_manifest: puppet/manifests/glance_create_test_image.pp
|
||||
puppet_modules: puppet/modules:/etc/puppet/modules
|
||||
timeout: 600
|
||||
|
|
|
@ -296,6 +296,16 @@ attributes:
|
|||
- condition: "settings:scaleio.existing_cluster.value == true"
|
||||
action: hide
|
||||
|
||||
use_scaleio_for_glance:
|
||||
type: "checkbox"
|
||||
value: false
|
||||
label: "Glance images on ScaleIO"
|
||||
description: "Glance uses ScaleIO as a backend for images if the option enabled. It uses cinder backend in Glance to store images on ScaleIO."
|
||||
weight: 195
|
||||
restrictions:
|
||||
- condition: "settings:scaleio.existing_cluster.value == true or cluster:fuel_version == '6.1' or cluster:fuel_version == '7.0' or cluster:fuel_version == '8.0'"
|
||||
action: hide
|
||||
|
||||
version:
|
||||
type: "select"
|
||||
weight: 200
|
||||
|
|
Loading…
Reference in New Issue