Docker volume size from nodegroups

Docker volume size as well as volume env files should be fetched
based on the nodegroup and not the cluster.

story: 2006701
task: 37008

Change-Id: Ia9e7f4612f36f4e57626b2e931b84898523e9ccb
(cherry picked from commit 37c61fa2f8)
This commit is contained in:
Theodoros Tsioutsias 2019-10-10 12:33:59 +00:00
parent 786f8336de
commit 020e1f3b7c
7 changed files with 34 additions and 25 deletions

View File

@ -31,8 +31,6 @@ class CoreOSK8sTemplateDefinition(k8s_template_def.K8sTemplateDefinition):
def __init__(self): def __init__(self):
super(CoreOSK8sTemplateDefinition, self).__init__() super(CoreOSK8sTemplateDefinition, self).__init__()
self.add_parameter('docker_volume_size',
cluster_attr='docker_volume_size')
self.add_parameter('docker_storage_driver', self.add_parameter('docker_storage_driver',
cluster_template_attr='docker_storage_driver') cluster_template_attr='docker_storage_driver')
@ -90,13 +88,14 @@ class CoreOSK8sTemplateDefinition(k8s_template_def.K8sTemplateDefinition):
extra_params=extra_params, extra_params=extra_params,
**kwargs) **kwargs)
def get_env_files(self, cluster_template, cluster): def get_env_files(self, cluster_template, cluster, nodegroup=None):
env_files = [] env_files = []
template_def.add_priv_net_env_file(env_files, cluster_template, template_def.add_priv_net_env_file(env_files, cluster_template,
cluster) cluster)
template_def.add_etcd_volume_env_file(env_files, cluster) template_def.add_etcd_volume_env_file(env_files, cluster)
template_def.add_volume_env_file(env_files, cluster) template_def.add_volume_env_file(env_files, cluster,
nodegroup=nodegroup)
template_def.add_lb_env_file(env_files, cluster_template) template_def.add_lb_env_file(env_files, cluster_template)
template_def.add_fip_env_file(env_files, cluster_template, cluster) template_def.add_fip_env_file(env_files, cluster_template, cluster)

View File

@ -35,8 +35,6 @@ class K8sFedoraTemplateDefinition(k8s_template_def.K8sTemplateDefinition):
def __init__(self): def __init__(self):
super(K8sFedoraTemplateDefinition, self).__init__() super(K8sFedoraTemplateDefinition, self).__init__()
self.add_parameter('docker_volume_size',
cluster_attr='docker_volume_size')
self.add_parameter('docker_storage_driver', self.add_parameter('docker_storage_driver',
cluster_template_attr='docker_storage_driver') cluster_template_attr='docker_storage_driver')
@ -195,13 +193,14 @@ class K8sFedoraTemplateDefinition(k8s_template_def.K8sTemplateDefinition):
'boot_volume_size', CONF.cinder.default_boot_volume_size) 'boot_volume_size', CONF.cinder.default_boot_volume_size)
extra_params['boot_volume_size'] = boot_volume_size extra_params['boot_volume_size'] = boot_volume_size
def get_env_files(self, cluster_template, cluster): def get_env_files(self, cluster_template, cluster, nodegroup=None):
env_files = [] env_files = []
template_def.add_priv_net_env_file(env_files, cluster_template, template_def.add_priv_net_env_file(env_files, cluster_template,
cluster) cluster)
template_def.add_etcd_volume_env_file(env_files, cluster) template_def.add_etcd_volume_env_file(env_files, cluster)
template_def.add_volume_env_file(env_files, cluster) template_def.add_volume_env_file(env_files, cluster,
nodegroup=nodegroup)
template_def.add_lb_env_file(env_files, cluster_template) template_def.add_lb_env_file(env_files, cluster_template)
template_def.add_fip_env_file(env_files, cluster_template, cluster) template_def.add_fip_env_file(env_files, cluster_template, cluster)

View File

@ -128,6 +128,7 @@ class K8sTemplateDefinition(template_def.BaseTemplateDefinition):
'master_image': 'image_id', 'master_image': 'image_id',
'master_role': 'role', 'master_role': 'role',
'master_nodegroup_name': 'name', 'master_nodegroup_name': 'name',
'docker_volume_size': 'docker_volume_size'
}) })
worker_params.update({ worker_params.update({
'number_of_minions': 'node_count', 'number_of_minions': 'node_count',
@ -135,6 +136,7 @@ class K8sTemplateDefinition(template_def.BaseTemplateDefinition):
'minion_image': 'image_id', 'minion_image': 'image_id',
'worker_role': 'role', 'worker_role': 'role',
'worker_nodegroup_name': 'name', 'worker_nodegroup_name': 'name',
'docker_volume_size': 'docker_volume_size'
}) })
return super( return super(
K8sTemplateDefinition, self).get_nodegroup_param_maps( K8sTemplateDefinition, self).get_nodegroup_param_maps(

View File

@ -45,8 +45,6 @@ class SwarmFedoraTemplateDefinition(template_def.BaseTemplateDefinition):
self.add_parameter('cluster_uuid', self.add_parameter('cluster_uuid',
cluster_attr='uuid', cluster_attr='uuid',
param_type=str) param_type=str)
self.add_parameter('docker_volume_size',
cluster_attr='docker_volume_size')
self.add_parameter('volume_driver', self.add_parameter('volume_driver',
cluster_template_attr='volume_driver') cluster_template_attr='volume_driver')
self.add_parameter('external_network', self.add_parameter('external_network',
@ -83,12 +81,14 @@ class SwarmFedoraTemplateDefinition(template_def.BaseTemplateDefinition):
worker_params = worker_params or dict() worker_params = worker_params or dict()
master_params.update({ master_params.update({
'master_flavor': 'flavor_id', 'master_flavor': 'flavor_id',
'master_image': 'image_id' 'master_image': 'image_id',
'docker_volume_size': 'docker_volume_size'
}) })
worker_params.update({ worker_params.update({
'number_of_nodes': 'node_count', 'number_of_nodes': 'node_count',
'node_flavor': 'flavor_id', 'node_flavor': 'flavor_id',
'node_image': 'image_id' 'node_image': 'image_id',
'docker_volume_size': 'docker_volume_size'
}) })
return super( return super(
SwarmFedoraTemplateDefinition, self).get_nodegroup_param_maps( SwarmFedoraTemplateDefinition, self).get_nodegroup_param_maps(
@ -156,12 +156,13 @@ class SwarmFedoraTemplateDefinition(template_def.BaseTemplateDefinition):
extra_params=extra_params, extra_params=extra_params,
**kwargs) **kwargs)
def get_env_files(self, cluster_template, cluster): def get_env_files(self, cluster_template, cluster, nodegroup=None):
env_files = [] env_files = []
template_def.add_priv_net_env_file(env_files, cluster_template, template_def.add_priv_net_env_file(env_files, cluster_template,
cluster) cluster)
template_def.add_volume_env_file(env_files, cluster) template_def.add_volume_env_file(env_files, cluster,
nodegroup=nodegroup)
template_def.add_lb_env_file(env_files, cluster_template) template_def.add_lb_env_file(env_files, cluster_template)
return env_files return env_files

View File

@ -92,8 +92,6 @@ class SwarmModeTemplateDefinition(template_def.BaseTemplateDefinition):
self.add_parameter('cluster_uuid', self.add_parameter('cluster_uuid',
cluster_attr='uuid', cluster_attr='uuid',
param_type=str) param_type=str)
self.add_parameter('docker_volume_size',
cluster_attr='docker_volume_size')
self.add_parameter('volume_driver', self.add_parameter('volume_driver',
cluster_template_attr='volume_driver') cluster_template_attr='volume_driver')
self.add_parameter('external_network', self.add_parameter('external_network',
@ -148,12 +146,14 @@ class SwarmModeTemplateDefinition(template_def.BaseTemplateDefinition):
worker_params = worker_params or dict() worker_params = worker_params or dict()
master_params.update({ master_params.update({
'master_flavor': 'flavor_id', 'master_flavor': 'flavor_id',
'master_image': 'image_id' 'master_image': 'image_id',
'docker_volume_size': 'docker_volume_size'
}) })
worker_params.update({ worker_params.update({
'number_of_nodes': 'node_count', 'number_of_nodes': 'node_count',
'node_flavor': 'flavor_id', 'node_flavor': 'flavor_id',
'node_image': 'image_id' 'node_image': 'image_id',
'docker_volume_size': 'docker_volume_size'
}) })
return super( return super(
SwarmModeTemplateDefinition, self).get_nodegroup_param_maps( SwarmModeTemplateDefinition, self).get_nodegroup_param_maps(
@ -182,12 +182,13 @@ class SwarmModeTemplateDefinition(template_def.BaseTemplateDefinition):
self).update_outputs(stack, cluster_template, cluster, self).update_outputs(stack, cluster_template, cluster,
nodegroups=nodegroups) nodegroups=nodegroups)
def get_env_files(self, cluster_template, cluster): def get_env_files(self, cluster_template, cluster, nodegroup=None):
env_files = [] env_files = []
template_def.add_priv_net_env_file(env_files, cluster_template, template_def.add_priv_net_env_file(env_files, cluster_template,
cluster) cluster)
template_def.add_volume_env_file(env_files, cluster) template_def.add_volume_env_file(env_files, cluster,
nodegroup=nodegroup)
template_def.add_lb_env_file(env_files, cluster_template) template_def.add_lb_env_file(env_files, cluster_template)
template_def.add_fip_env_file(env_files, cluster_template, cluster) template_def.add_fip_env_file(env_files, cluster_template, cluster)

View File

@ -235,7 +235,7 @@ class TemplateDefinition(object):
return template_params return template_params
def get_env_files(self, cluster_template, cluster): def get_env_files(self, cluster_template, cluster, nodegroup=None):
"""Gets stack environment files based upon ClusterTemplate attributes. """Gets stack environment files based upon ClusterTemplate attributes.
Base implementation returns no files (empty list). Meant to be Base implementation returns no files (empty list). Meant to be
@ -323,9 +323,12 @@ class TemplateDefinition(object):
pass pass
def extract_definition(self, context, cluster_template, cluster, **kwargs): def extract_definition(self, context, cluster_template, cluster, **kwargs):
nodegroups_list = kwargs.get('nodegroups', None)
nodegroup = None if not nodegroups_list else nodegroups_list[0]
return (self.template_path, return (self.template_path,
self.get_params(context, cluster_template, cluster, **kwargs), self.get_params(context, cluster_template, cluster, **kwargs),
self.get_env_files(cluster_template, cluster)) self.get_env_files(cluster_template, cluster,
nodegroup=nodegroup))
class BaseTemplateDefinition(TemplateDefinition): class BaseTemplateDefinition(TemplateDefinition):
@ -533,8 +536,12 @@ def add_lb_env_file(env_files, cluster_template):
env_files.append(COMMON_ENV_PATH + 'no_master_lb.yaml') env_files.append(COMMON_ENV_PATH + 'no_master_lb.yaml')
def add_volume_env_file(env_files, cluster): def add_volume_env_file(env_files, cluster, nodegroup=None):
if cluster.docker_volume_size is None: if nodegroup:
docker_volume_size = nodegroup.docker_volume_size
else:
docker_volume_size = cluster.docker_volume_size
if docker_volume_size is None:
env_files.append(COMMON_ENV_PATH + 'no_volume.yaml') env_files.append(COMMON_ENV_PATH + 'no_volume.yaml')
else: else:
env_files.append(COMMON_ENV_PATH + 'with_volume.yaml') env_files.append(COMMON_ENV_PATH + 'with_volume.yaml')

View File

@ -122,7 +122,7 @@ class UbuntuMesosTemplateDefinition(template_def.BaseTemplateDefinition):
scale_manager.get_removal_nodes(hosts)) scale_manager.get_removal_nodes(hosts))
return scale_params return scale_params
def get_env_files(self, cluster_template, cluster): def get_env_files(self, cluster_template, cluster, nodegroup=None):
env_files = [] env_files = []
template_def.add_priv_net_env_file(env_files, cluster_template, template_def.add_priv_net_env_file(env_files, cluster_template,