Introduce support for Magnum chart overrides
Add plugin with override support for: - replicas based on the number of controllers - docker image source Change-Id: Ie1c76330c67eca252c91d758962ff802d4bb52f5 Story: 2003909 Task: 27087 Signed-off-by: Robert Church <robert.church@windriver.com>
This commit is contained in:
parent
364cb65104
commit
e30a23d940
|
@ -1323,6 +1323,7 @@ HELM_CHART_INGRESS = 'ingress'
|
|||
HELM_CHART_IRONIC = 'ironic'
|
||||
HELM_CHART_KEYSTONE = 'keystone'
|
||||
HELM_CHART_LIBVIRT = 'libvirt'
|
||||
HELM_CHART_MAGNUM = 'magnum'
|
||||
HELM_CHART_MARIADB = 'mariadb'
|
||||
HELM_CHART_MEMCACHED = 'memcached'
|
||||
HELM_CHART_NEUTRON = 'neutron'
|
||||
|
@ -1341,6 +1342,7 @@ SUPPORTED_HELM_CHARTS = [
|
|||
HELM_CHART_IRONIC,
|
||||
HELM_CHART_KEYSTONE,
|
||||
HELM_CHART_LIBVIRT,
|
||||
HELM_CHART_MAGNUM,
|
||||
HELM_CHART_MARIADB,
|
||||
HELM_CHART_MEMCACHED,
|
||||
HELM_CHART_NEUTRON,
|
||||
|
@ -1401,6 +1403,7 @@ SUPPORTED_HELM_APP_CHARTS = {
|
|||
HELM_CHART_NOVA,
|
||||
HELM_CHART_NEUTRON,
|
||||
HELM_CHART_HEAT,
|
||||
HELM_CHART_BARBICAN
|
||||
HELM_CHART_BARBICAN,
|
||||
HELM_CHART_MAGNUM
|
||||
]
|
||||
}
|
||||
|
|
|
@ -27,6 +27,7 @@ from . import heat
|
|||
from . import horizon
|
||||
from . import ironic
|
||||
from . import keystone
|
||||
from . import magnum
|
||||
from . import neutron
|
||||
from . import nova
|
||||
|
||||
|
@ -87,6 +88,7 @@ class HelmOperator(object):
|
|||
constants.HELM_CHART_IRONIC: ironic.IronicHelm(self),
|
||||
constants.HELM_CHART_KEYSTONE: keystone.KeystoneHelm(self),
|
||||
constants.HELM_CHART_LIBVIRT: libvirt.LibvirtHelm(self),
|
||||
constants.HELM_CHART_MAGNUM: magnum.MagnumHelm(self),
|
||||
constants.HELM_CHART_MARIADB: mariadb.MariadbHelm(self),
|
||||
constants.HELM_CHART_MEMCACHED: memcached.MemcachedHelm(self),
|
||||
constants.HELM_CHART_NEUTRON: neutron.NeutronHelm(self),
|
||||
|
|
|
@ -0,0 +1,63 @@
|
|||
#
|
||||
# Copyright (c) 2018 Wind River Systems, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
from sysinv.common import constants
|
||||
from sysinv.common import exception
|
||||
|
||||
from . import common
|
||||
from . import openstack
|
||||
|
||||
|
||||
class MagnumHelm(openstack.OpenstackBaseHelm):
|
||||
"""Class to encapsulate helm operations for the magnum chart"""
|
||||
|
||||
CHART = constants.HELM_CHART_MAGNUM
|
||||
SUPPORTED_NAMESPACES = [
|
||||
common.HELM_NS_OPENSTACK
|
||||
]
|
||||
|
||||
SERVICE_NAME = constants.HELM_CHART_MAGNUM
|
||||
|
||||
def get_namespaces(self):
|
||||
return self.SUPPORTED_NAMESPACES
|
||||
|
||||
def get_overrides(self, namespace=None):
|
||||
overrides = {
|
||||
common.HELM_NS_OPENSTACK: {
|
||||
'images': self._get_images_overrides(),
|
||||
'pod': {
|
||||
'replicas': {
|
||||
'api': self._num_controllers(),
|
||||
'conductor': self._num_controllers()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if namespace in self.SUPPORTED_NAMESPACES:
|
||||
return overrides[namespace]
|
||||
elif namespace:
|
||||
raise exception.InvalidHelmNamespace(chart=self.CHART,
|
||||
namespace=namespace)
|
||||
else:
|
||||
return overrides
|
||||
|
||||
def _get_images_overrides(self):
|
||||
heat_image = self._operator.chart_operators[
|
||||
constants.HELM_CHART_HEAT].docker_image
|
||||
return {
|
||||
'tags': {
|
||||
'bootstrap': heat_image,
|
||||
'db_drop': heat_image,
|
||||
'db_init': heat_image,
|
||||
'ks_endpoints': heat_image,
|
||||
'ks_service': heat_image,
|
||||
'ks_user': heat_image,
|
||||
'magnum_api': self.docker_image,
|
||||
'magnum_conductor': self.docker_image,
|
||||
'magnum_db_sync': self.docker_image,
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue