Refactoring helm plugins class hierarchy
This change will help remove some replicated code across the helm plugin classes and reduce the amount of code under maintenance. REGRESSION PLAN PASS install and remove stx-openstack on StarlingX master TEST PLAN PASS create network segment ranges PASS create networks/subnets PASS create routers PASS create images PASS boot vm with cirros image PASS remove vm PASS delete images PASS delete routers PASS delete networks/subnets PASS delete network segment ranges Signed-off-by: Thiago Brito <thiago.brito@windriver.com> Change-Id: I8927e8bd897628fb3bd7eef3df1d5c58805f6fb9
This commit is contained in:
committed by
Thiago Paiva Brito
parent
b36261adbd
commit
173b33d3e5
+2
-1
@@ -10,6 +10,7 @@
|
||||
""" System inventory Armada manifest operator."""
|
||||
|
||||
from oslo_log import log as logging
|
||||
from k8sapp_openstack.common import constants as app_constants
|
||||
from k8sapp_openstack.helm.aodh import AodhHelm
|
||||
from k8sapp_openstack.helm.barbican import BarbicanHelm
|
||||
from k8sapp_openstack.helm.ceilometer import CeilometerHelm
|
||||
@@ -49,7 +50,7 @@ LOG = logging.getLogger(__name__)
|
||||
|
||||
class OpenstackArmadaManifestOperator(base.ArmadaManifestOperator):
|
||||
|
||||
APP = constants.HELM_APP_OPENSTACK
|
||||
APP = app_constants.HELM_APP_OPENSTACK
|
||||
ARMADA_MANIFEST = 'openstack-manifest'
|
||||
|
||||
CHART_GROUP_PSP_ROLEBINDING = 'openstack-psp-rolebinding'
|
||||
|
||||
@@ -4,6 +4,11 @@
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
from sysinv.common import constants
|
||||
|
||||
|
||||
HELM_APP_OPENSTACK = constants.HELM_APP_OPENSTACK
|
||||
|
||||
# Helm: Supported charts:
|
||||
# These values match the names in the chart package's Chart.yaml
|
||||
HELM_CHART_AODH = 'aodh'
|
||||
|
||||
@@ -4,29 +4,23 @@
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
from k8sapp_openstack.common import constants as app_constants
|
||||
from sysinv.common import constants
|
||||
from sysinv.common import exception
|
||||
from sysinv.common import utils
|
||||
from sysinv.helm import common
|
||||
from sysinv.helm import base
|
||||
|
||||
from k8sapp_openstack.common import constants as app_constants
|
||||
from k8sapp_openstack.helm import openstack
|
||||
|
||||
|
||||
class GarbdHelm(base.BaseHelm):
|
||||
class GarbdHelm(openstack.BaseHelm):
|
||||
"""Class to encapsulate helm operations for the galera arbitrator chart"""
|
||||
|
||||
# The service name is used to build the standard docker image location.
|
||||
# It is intentionally "mariadb" and not "garbd" as they both use the
|
||||
# same docker image.
|
||||
SERVICE_NAME = app_constants.HELM_CHART_MARIADB
|
||||
|
||||
CHART = app_constants.HELM_CHART_GARBD
|
||||
SUPPORTED_NAMESPACES = \
|
||||
base.BaseHelm.SUPPORTED_NAMESPACES + [common.HELM_NS_OPENSTACK]
|
||||
SUPPORTED_APP_NAMESPACES = {
|
||||
constants.HELM_APP_OPENSTACK:
|
||||
base.BaseHelm.SUPPORTED_NAMESPACES + [common.HELM_NS_OPENSTACK]
|
||||
}
|
||||
|
||||
def _is_enabled(self, app_name, chart_name, namespace):
|
||||
# First, see if this chart is enabled by the user then adjust based on
|
||||
|
||||
@@ -4,26 +4,24 @@
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
from k8sapp_openstack.common import constants as app_constants
|
||||
from sysinv.common import constants
|
||||
from sysinv.common import exception
|
||||
from sysinv.helm import common
|
||||
from sysinv.helm import base
|
||||
|
||||
from k8sapp_openstack.common import constants as app_constants
|
||||
from k8sapp_openstack.helm import openstack
|
||||
|
||||
|
||||
class IngressHelm(base.BaseHelm):
|
||||
class IngressHelm(openstack.BaseHelm):
|
||||
"""Class to encapsulate helm operations for the ingress chart"""
|
||||
|
||||
CHART = app_constants.HELM_CHART_INGRESS
|
||||
|
||||
SUPPORTED_NAMESPACES = base.BaseHelm.SUPPORTED_NAMESPACES + [
|
||||
common.HELM_NS_KUBE_SYSTEM,
|
||||
common.HELM_NS_OPENSTACK
|
||||
SUPPORTED_NAMESPACES = openstack.BaseHelm.SUPPORTED_NAMESPACES + [
|
||||
common.HELM_NS_KUBE_SYSTEM
|
||||
]
|
||||
SUPPORTED_APP_NAMESPACES = {
|
||||
constants.HELM_APP_OPENSTACK:
|
||||
base.BaseHelm.SUPPORTED_NAMESPACES + [common.HELM_NS_KUBE_SYSTEM,
|
||||
common.HELM_NS_OPENSTACK]
|
||||
app_constants.HELM_APP_OPENSTACK:
|
||||
openstack.BaseHelm.SUPPORTED_NAMESPACES + [common.HELM_NS_KUBE_SYSTEM]
|
||||
}
|
||||
|
||||
def get_overrides(self, namespace=None):
|
||||
|
||||
+3
-2
@@ -4,13 +4,14 @@
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
from k8sapp_openstack.common import constants as app_constants
|
||||
from k8sapp_openstack.helm import openstack
|
||||
|
||||
from sysinv.common import constants
|
||||
from sysinv.common import exception
|
||||
from sysinv.helm import common
|
||||
|
||||
from k8sapp_openstack.common import constants as app_constants
|
||||
from k8sapp_openstack.helm import openstack
|
||||
|
||||
|
||||
class KeystoneApiProxyHelm(openstack.OpenstackBaseHelm):
|
||||
"""Class to encapsulate helm operations for the keystone api proxy chart"""
|
||||
|
||||
@@ -4,23 +4,17 @@
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
from k8sapp_openstack.common import constants as app_constants
|
||||
from sysinv.common import constants
|
||||
from sysinv.common import exception
|
||||
from sysinv.helm import common
|
||||
from sysinv.helm import base
|
||||
|
||||
from k8sapp_openstack.common import constants as app_constants
|
||||
from k8sapp_openstack.helm import openstack
|
||||
|
||||
|
||||
class MemcachedHelm(base.BaseHelm):
|
||||
class MemcachedHelm(openstack.BaseHelm):
|
||||
"""Class to encapsulate helm operations for the memcached chart"""
|
||||
|
||||
CHART = app_constants.HELM_CHART_MEMCACHED
|
||||
SUPPORTED_NAMESPACES = \
|
||||
base.BaseHelm.SUPPORTED_NAMESPACES + [common.HELM_NS_OPENSTACK]
|
||||
SUPPORTED_APP_NAMESPACES = {
|
||||
constants.HELM_APP_OPENSTACK:
|
||||
base.BaseHelm.SUPPORTED_NAMESPACES + [common.HELM_NS_OPENSTACK]
|
||||
}
|
||||
|
||||
def get_overrides(self, namespace=None):
|
||||
overrides = {
|
||||
|
||||
@@ -12,11 +12,9 @@ import os
|
||||
from cryptography.hazmat.backends import default_backend
|
||||
from cryptography.hazmat.primitives import serialization
|
||||
from cryptography.hazmat.primitives.asymmetric import rsa
|
||||
from k8sapp_openstack.common import constants as app_constants
|
||||
from oslo_log import log
|
||||
from oslo_serialization import jsonutils
|
||||
from sqlalchemy.orm.exc import NoResultFound
|
||||
|
||||
from sysinv.common import constants
|
||||
from sysinv.common import exception
|
||||
from sysinv.common import kubernetes
|
||||
@@ -25,19 +23,26 @@ from sysinv.common.storage_backend_conf import K8RbdProvisioner
|
||||
from sysinv.helm import base
|
||||
from sysinv.helm import common
|
||||
|
||||
from k8sapp_openstack.common import constants as app_constants
|
||||
|
||||
|
||||
LOG = log.getLogger(__name__)
|
||||
|
||||
|
||||
class OpenstackBaseHelm(base.BaseHelm):
|
||||
"""Class to encapsulate Openstack service operations for helm"""
|
||||
class BaseHelm(base.BaseHelm):
|
||||
"""Class to encapsulate Openstack related service operations for helm"""
|
||||
|
||||
SUPPORTED_NAMESPACES = \
|
||||
base.BaseHelm.SUPPORTED_NAMESPACES + [common.HELM_NS_OPENSTACK]
|
||||
SUPPORTED_APP_NAMESPACES = {
|
||||
constants.HELM_APP_OPENSTACK:
|
||||
app_constants.HELM_APP_OPENSTACK:
|
||||
base.BaseHelm.SUPPORTED_NAMESPACES + [common.HELM_NS_OPENSTACK]
|
||||
}
|
||||
|
||||
|
||||
class OpenstackBaseHelm(BaseHelm):
|
||||
"""Class to encapsulate Openstack service operations for helm"""
|
||||
|
||||
SYSTEM_CONTROLLER_SERVICES = [
|
||||
app_constants.HELM_CHART_KEYSTONE_API_PROXY,
|
||||
]
|
||||
|
||||
@@ -4,31 +4,19 @@
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
from k8sapp_openstack.common import constants as app_constants
|
||||
|
||||
from sysinv.common import constants
|
||||
from sysinv.common import exception
|
||||
|
||||
from sysinv.helm import base
|
||||
from sysinv.helm import common
|
||||
|
||||
from k8sapp_openstack.common import constants as app_constants
|
||||
from k8sapp_openstack.helm import openstack
|
||||
|
||||
class PSPRolebindingHelm(base.BaseHelm):
|
||||
|
||||
class PSPRolebindingHelm(openstack.BaseHelm):
|
||||
"""Class to encapsulate helm operations for the psp rolebinding chart"""
|
||||
|
||||
SUPPORTED_NAMESPACES = \
|
||||
base.BaseHelm.SUPPORTED_NAMESPACES + [common.HELM_NS_OPENSTACK]
|
||||
SUPPORTED_APP_NAMESPACES = {
|
||||
constants.HELM_APP_OPENSTACK:
|
||||
base.BaseHelm.SUPPORTED_NAMESPACES + [common.HELM_NS_OPENSTACK]
|
||||
}
|
||||
|
||||
CHART = app_constants.HELM_CHART_PSP_ROLEBINDING
|
||||
SERVICE_NAME = 'psp-rolebinding'
|
||||
|
||||
def get_namespaces(self):
|
||||
return self.SUPPORTED_NAMESPACES
|
||||
|
||||
def get_overrides(self, namespace=None):
|
||||
overrides = {
|
||||
common.HELM_NS_OPENSTACK: {}
|
||||
|
||||
@@ -8,9 +8,11 @@ from sysinv.tests.db import base as dbbase
|
||||
from sysinv.tests.db import utils as dbutils
|
||||
from sysinv.tests.helm.test_helm import HelmOperatorTestSuiteMixin
|
||||
|
||||
from k8sapp_openstack.common import constants as app_constants
|
||||
|
||||
|
||||
class K8SAppOpenstackAppMixin(object):
|
||||
app_name = constants.HELM_APP_OPENSTACK
|
||||
app_name = app_constants.HELM_APP_OPENSTACK
|
||||
path_name = app_name + '.tgz'
|
||||
|
||||
def setUp(self):
|
||||
|
||||
Reference in New Issue
Block a user