Docker runtime integration.
Provision 10G logical volume in cgts_vg for docker usage. puppet changes to configure and start docker if --kubernetes config_controller option specified. Change-Id: I6820025e34564283981798a53ad2f3d42162e804
This commit is contained in:
parent
e20fe15095
commit
4599d7567d
@ -30,6 +30,7 @@ include ::platform::amqp::rabbitmq
|
||||
include ::platform::postgresql::server
|
||||
include ::platform::haproxy::server
|
||||
include ::platform::grub
|
||||
include ::platform::docker
|
||||
include ::platform::kubernetes::master
|
||||
|
||||
include ::platform::patching
|
||||
|
@ -5,6 +5,8 @@ class platform::ceph::params(
|
||||
$authentication_type = 'none',
|
||||
$mon_lv_name = 'ceph-mon-lv',
|
||||
$mon_lv_size = 0,
|
||||
$mon_fs_type = 'ext4',
|
||||
$mon_fs_options = ' ',
|
||||
$mon_mountpoint = '/var/lib/ceph/mon',
|
||||
$mon_0_host = undef,
|
||||
$mon_0_ip = undef,
|
||||
@ -88,6 +90,8 @@ class platform::ceph::monitor
|
||||
lv_name => $mon_lv_name,
|
||||
lv_size => $mon_lv_size,
|
||||
mountpoint => $mon_mountpoint,
|
||||
fs_type => $mon_fs_type,
|
||||
fs_options => $mon_fs_options,
|
||||
} -> Class['::ceph']
|
||||
|
||||
file { "/etc/pmon.d/ceph.conf":
|
||||
|
39
puppet-manifests/src/modules/platform/manifests/docker.pp
Normal file
39
puppet-manifests/src/modules/platform/manifests/docker.pp
Normal file
@ -0,0 +1,39 @@
|
||||
class platform::docker::params (
|
||||
$package_name = 'docker-ce',
|
||||
) { }
|
||||
|
||||
class platform::docker::config
|
||||
inherits ::platform::docker::params {
|
||||
|
||||
include ::platform::kubernetes::params
|
||||
|
||||
if $::platform::kubernetes::params::enabled {
|
||||
|
||||
Class['::platform::filesystem::docker'] ~> Class[$name]
|
||||
|
||||
service { 'docker':
|
||||
ensure => 'running',
|
||||
name => 'docker',
|
||||
enable => true,
|
||||
require => Package['docker']
|
||||
} ->
|
||||
exec { 'enable-docker':
|
||||
command => '/usr/bin/systemctl enable docker.service',
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class platform::docker::install
|
||||
inherits ::platform::docker::params {
|
||||
|
||||
package { 'docker':
|
||||
ensure => 'installed',
|
||||
name => $package_name,
|
||||
}
|
||||
}
|
||||
|
||||
class platform::docker
|
||||
{
|
||||
include ::platform::docker::install
|
||||
include ::platform::docker::config
|
||||
}
|
@ -1,5 +1,4 @@
|
||||
class platform::filesystem::params (
|
||||
$fs_type = 'ext4',
|
||||
$vg_name = 'cgts-vg',
|
||||
) {}
|
||||
|
||||
@ -8,6 +7,8 @@ define platform::filesystem (
|
||||
$lv_name,
|
||||
$lv_size,
|
||||
$mountpoint,
|
||||
$fs_type,
|
||||
$fs_options
|
||||
) {
|
||||
include ::platform::filesystem::params
|
||||
$vg_name = $::platform::filesystem::params::vg_name
|
||||
@ -25,7 +26,8 @@ define platform::filesystem (
|
||||
# create filesystem
|
||||
filesystem { $device:
|
||||
ensure => present,
|
||||
fs_type => 'ext4',
|
||||
fs_type => $fs_type,
|
||||
options => $fs_options,
|
||||
} ->
|
||||
|
||||
file { $mountpoint:
|
||||
@ -41,7 +43,7 @@ define platform::filesystem (
|
||||
ensure => 'mounted',
|
||||
device => "${device}",
|
||||
options => 'defaults',
|
||||
fstype => $::platform::filesystem::params::fs_type,
|
||||
fstype => $fs_type,
|
||||
} ->
|
||||
|
||||
# The above mount resource doesn't actually remount devices that were already present in /etc/fstab, but were
|
||||
@ -86,7 +88,9 @@ class platform::filesystem::backup::params (
|
||||
$lv_name = 'backup-lv',
|
||||
$lv_size = '5',
|
||||
$mountpoint = '/opt/backups',
|
||||
$devmapper = '/dev/mapper/cgts--vg-backup--lv'
|
||||
$devmapper = '/dev/mapper/cgts--vg-backup--lv',
|
||||
$fs_type = 'ext4',
|
||||
$fs_options = ' '
|
||||
) {}
|
||||
|
||||
class platform::filesystem::backup
|
||||
@ -96,15 +100,18 @@ class platform::filesystem::backup
|
||||
lv_name => $lv_name,
|
||||
lv_size => $lv_size,
|
||||
mountpoint => $mountpoint,
|
||||
fs_type => $fs_type,
|
||||
fs_options => $fs_options
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class platform::filesystem::scratch::params (
|
||||
$lv_size = '8',
|
||||
$lv_name = 'scratch-lv',
|
||||
$mountpoint = '/scratch',
|
||||
$devmapper = '/dev/mapper/cgts--vg-scratch--lv'
|
||||
$devmapper = '/dev/mapper/cgts--vg-scratch--lv',
|
||||
$fs_type = 'ext4',
|
||||
$fs_options = ' '
|
||||
) { }
|
||||
|
||||
class platform::filesystem::scratch
|
||||
@ -114,15 +121,39 @@ class platform::filesystem::scratch
|
||||
lv_name => $lv_name,
|
||||
lv_size => $lv_size,
|
||||
mountpoint => $mountpoint,
|
||||
fs_type => $fs_type,
|
||||
fs_options => $fs_options
|
||||
}
|
||||
}
|
||||
|
||||
class platform::filesystem::docker::params (
|
||||
$lv_size = '1',
|
||||
$lv_name = 'docker-lv',
|
||||
$mountpoint = '/var/lib/docker',
|
||||
$devmapper = '/dev/mapper/cgts--vg-docker--lv',
|
||||
$fs_type = 'xfs',
|
||||
$fs_options = '-n ftype=1',
|
||||
) { }
|
||||
|
||||
class platform::filesystem::docker
|
||||
inherits ::platform::filesystem::docker::params {
|
||||
|
||||
platform::filesystem { $lv_name:
|
||||
lv_name => $lv_name,
|
||||
lv_size => $lv_size,
|
||||
mountpoint => $mountpoint,
|
||||
fs_type => $fs_type,
|
||||
fs_options => $fs_options
|
||||
}
|
||||
}
|
||||
|
||||
class platform::filesystem::img_conversions::params (
|
||||
$lv_size = '8',
|
||||
$lv_name = 'img-conversions-lv',
|
||||
$mountpoint = '/opt/img-conversions',
|
||||
$devmapper = '/dev/mapper/cgts--vg-img--conversions--lv'
|
||||
$devmapper = '/dev/mapper/cgts--vg-img--conversions--lv',
|
||||
$fs_type = 'ext4',
|
||||
$fs_options = ' '
|
||||
) {}
|
||||
|
||||
class platform::filesystem::img_conversions
|
||||
@ -134,6 +165,8 @@ class platform::filesystem::img_conversions
|
||||
lv_name => $lv_name,
|
||||
lv_size => $lv_size,
|
||||
mountpoint => $mountpoint,
|
||||
fs_type => $fs_type,
|
||||
fs_options => $fs_options
|
||||
}
|
||||
}
|
||||
|
||||
@ -141,6 +174,7 @@ class platform::filesystem::img_conversions
|
||||
class platform::filesystem::controller {
|
||||
include ::platform::filesystem::backup
|
||||
include ::platform::filesystem::scratch
|
||||
include ::platform::filesystem::docker
|
||||
include ::platform::filesystem::img_conversions
|
||||
}
|
||||
|
||||
@ -175,6 +209,21 @@ class platform::filesystem::scratch::runtime {
|
||||
}
|
||||
|
||||
|
||||
class platform::filesystem::docker::runtime {
|
||||
|
||||
include ::platform::filesystem::docker::params
|
||||
$lv_name = $::platform::filesystem::docker::params::lv_name
|
||||
$lv_size = $::platform::filesystem::docker::params::lv_size
|
||||
$devmapper = $::platform::filesystem::docker::params::devmapper
|
||||
|
||||
platform::filesystem::resize { $lv_name:
|
||||
lv_name => $lv_name,
|
||||
lv_size => $lv_size,
|
||||
devmapper => $devmapper,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class platform::filesystem::img_conversions::runtime {
|
||||
|
||||
include ::platform::filesystem::img_conversions::params
|
||||
|
@ -52,6 +52,8 @@ class platform::kubernetes::master
|
||||
if $enabled {
|
||||
include ::platform::kubernetes::master::init
|
||||
|
||||
Class['::platform::docker::config'] -> Class[$name]
|
||||
|
||||
$repo_file = "[kubernetes]
|
||||
name=Kubernetes
|
||||
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
|
||||
@ -88,12 +90,6 @@ class platform::kubernetes::master
|
||||
command => "sysctl --system",
|
||||
} ->
|
||||
|
||||
# Start docker - will move to another manifest.
|
||||
service { 'docker':
|
||||
ensure => 'running',
|
||||
enable => true,
|
||||
} ->
|
||||
|
||||
# Update kubelet configuration. Should probably just patch the kubelet
|
||||
# package to fix these things.
|
||||
file_line { "${kubeadm_conf} KUBELET_EXTRA_ARGS":
|
||||
|
@ -627,7 +627,8 @@ def _check_controller_multi_fs_data(context, controller_fs_list_new,
|
||||
lvdisplay_keys = [constants.FILESYSTEM_LV_DICT[constants.FILESYSTEM_NAME_DATABASE],
|
||||
constants.FILESYSTEM_LV_DICT[constants.FILESYSTEM_NAME_CGCS],
|
||||
constants.FILESYSTEM_LV_DICT[constants.FILESYSTEM_NAME_BACKUP],
|
||||
constants.FILESYSTEM_LV_DICT[constants.FILESYSTEM_NAME_SCRATCH]]
|
||||
constants.FILESYSTEM_LV_DICT[constants.FILESYSTEM_NAME_SCRATCH],
|
||||
constants.FILESYSTEM_LV_DICT[constants.FILESYSTEM_NAME_DOCKER]]
|
||||
|
||||
# On primary region, img-conversions always exists in controller_fs DB table.
|
||||
# On secondary region, if both glance and cinder are sharing from the primary
|
||||
|
@ -250,6 +250,7 @@ VSWITCH_TYPE_NUAGE_VRS = "nuage_vrs"
|
||||
|
||||
# Partition default sizes
|
||||
DEFAULT_IMAGE_STOR_SIZE = 10
|
||||
DEFAULT_DOCKER_STOR_SIZE = 1
|
||||
DEFAULT_DATABASE_STOR_SIZE = 20
|
||||
DEFAULT_IMG_CONVERSION_STOR_SIZE = 20
|
||||
DEFAULT_SMALL_IMAGE_STOR_SIZE = 10
|
||||
@ -263,6 +264,9 @@ DEFAULT_VIRTUAL_BACKUP_STOR_SIZE = 5
|
||||
DEFAULT_EXTENSION_STOR_SIZE = 1
|
||||
DEFAULT_PATCH_VAULT_STOR_SIZE = 8
|
||||
|
||||
# Docker lv size when Kubernetes is configured
|
||||
KUBERNETES_DOCKER_STOR_SIZE = 10
|
||||
|
||||
# Openstack Interface names
|
||||
OS_INTERFACE_PUBLIC = 'public'
|
||||
OS_INTERFACE_INTERNAL = 'internal'
|
||||
@ -408,6 +412,7 @@ FILESYSTEM_NAME_CINDER = 'cinder'
|
||||
FILESYSTEM_NAME_DATABASE = 'database'
|
||||
FILESYSTEM_NAME_IMG_CONVERSIONS = 'img-conversions'
|
||||
FILESYSTEM_NAME_SCRATCH = 'scratch'
|
||||
FILESYSTEM_NAME_DOCKER = 'docker'
|
||||
FILESYSTEM_NAME_EXTENSION = 'extension'
|
||||
FILESYSTEM_NAME_PATCH_VAULT = 'patch-vault'
|
||||
|
||||
@ -415,6 +420,7 @@ FILESYSTEM_LV_DICT = {
|
||||
FILESYSTEM_NAME_CGCS: 'cgcs-lv',
|
||||
FILESYSTEM_NAME_BACKUP: 'backup-lv',
|
||||
FILESYSTEM_NAME_SCRATCH: 'scratch-lv',
|
||||
FILESYSTEM_NAME_DOCKER: 'docker-lv',
|
||||
FILESYSTEM_NAME_IMG_CONVERSIONS: 'img-conversions-lv',
|
||||
FILESYSTEM_NAME_DATABASE: 'pgsql-lv',
|
||||
FILESYSTEM_NAME_EXTENSION: 'extension-lv',
|
||||
@ -431,6 +437,7 @@ SUPPORTED_FILEYSTEM_LIST = [
|
||||
FILESYSTEM_NAME_EXTENSION,
|
||||
FILESYSTEM_NAME_IMG_CONVERSIONS,
|
||||
FILESYSTEM_NAME_SCRATCH,
|
||||
FILESYSTEM_NAME_DOCKER,
|
||||
FILESYSTEM_NAME_PATCH_VAULT,
|
||||
]
|
||||
|
||||
|
@ -5269,6 +5269,8 @@ class ConductorManager(service.PeriodicService):
|
||||
'platform::filesystem::img_conversions::runtime',
|
||||
constants.FILESYSTEM_NAME_SCRATCH:
|
||||
'platform::filesystem::scratch::runtime',
|
||||
constants.FILESYSTEM_NAME_DOCKER:
|
||||
'platform::filesystem::docker::runtime',
|
||||
constants.FILESYSTEM_NAME_DATABASE:
|
||||
'platform::drbd::pgsql::runtime',
|
||||
constants.FILESYSTEM_NAME_CGCS:
|
||||
@ -6062,6 +6064,8 @@ class ConductorManager(service.PeriodicService):
|
||||
system = self.dbapi.isystem_get_one()
|
||||
system_dc_role = system.get('distributed_cloud_role', None)
|
||||
region_config = system.capabilities.get('region_config', False)
|
||||
kubernetes_config = system.capabilities.get('kubernetes_enabled', False)
|
||||
|
||||
LOG.info("Local Region Name: %s" % system.region_name)
|
||||
# handle region mode case
|
||||
if region_config:
|
||||
@ -6362,6 +6366,22 @@ class ConductorManager(service.PeriodicService):
|
||||
data['name'], data['logical_volume'], data['size']))
|
||||
self.dbapi.controller_fs_create(data)
|
||||
|
||||
if kubernetes_config:
|
||||
docker_lv_size = constants.KUBERNETES_DOCKER_STOR_SIZE
|
||||
else:
|
||||
docker_lv_size = constants.DEFAULT_DOCKER_STOR_SIZE
|
||||
|
||||
data = {
|
||||
'name': constants.FILESYSTEM_NAME_DOCKER,
|
||||
'size': docker_lv_size,
|
||||
'logical_volume': constants.FILESYSTEM_LV_DICT[
|
||||
constants.FILESYSTEM_NAME_DOCKER],
|
||||
'replicated': False,
|
||||
}
|
||||
LOG.info("Creating FS:%s:%s %d" % (
|
||||
data['name'], data['logical_volume'], data['size']))
|
||||
self.dbapi.controller_fs_create(data)
|
||||
|
||||
if (system_dc_role == constants.DISTRIBUTED_CLOUD_ROLE_SYSTEMCONTROLLER and
|
||||
tsc.system_type != constants.TIS_AIO_BUILD):
|
||||
data = {
|
||||
@ -8651,13 +8671,16 @@ class ConductorManager(service.PeriodicService):
|
||||
def get_controllerfs_lv_sizes(self, context):
|
||||
system = self.dbapi.isystem_get_one()
|
||||
system_dc_role = system.get('distributed_cloud_role', None)
|
||||
|
||||
lvdisplay_command = 'lvdisplay --columns --options lv_size,lv_name ' \
|
||||
'--units g --noheading --nosuffix ' \
|
||||
'/dev/cgts-vg/pgsql-lv /dev/cgts-vg/backup-lv ' \
|
||||
'/dev/cgts-vg/cgcs-lv ' \
|
||||
'/dev/cgts-vg/img-conversions-lv ' \
|
||||
'/dev/cgts-vg/scratch-lv ' \
|
||||
'/dev/cgts-vg/extension-lv '
|
||||
'/dev/cgts-vg/extension-lv '\
|
||||
'/dev/cgts-vg/docker-lv '
|
||||
|
||||
if (system_dc_role == constants.DISTRIBUTED_CLOUD_ROLE_SYSTEMCONTROLLER and
|
||||
tsc.system_type != constants.TIS_AIO_BUILD):
|
||||
lvdisplay_command = lvdisplay_command + '/dev/cgts-vg/patch-vault-lv '
|
||||
|
@ -66,6 +66,11 @@ class StoragePuppet(base.BasePuppet):
|
||||
'platform::drbd::patch_vault::params::lv_size':
|
||||
controller_fs.size,
|
||||
})
|
||||
elif controller_fs.name == constants.FILESYSTEM_NAME_DOCKER:
|
||||
config.update({
|
||||
'platform::filesystem::docker::params::lv_size':
|
||||
controller_fs.size
|
||||
})
|
||||
|
||||
return config
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user