Make minimum Kubernetes version field mandatory
Make the supported_k8s_version:minimum metadata field mandatory for StarlingX applications. The minimum supported Kubernetes version must be informed in the application metadata.yaml file. For instance: supported_k8s_version: minimum: 1.24.4 Existing applications were previously updated to include the mandatory field as part of story 2010929. Test plan: PASS: build-pkgs -a && build-image PASS: AIO-SX fresh install PASS: Atempt to upload a modified version of platform-integ-apps without the supported_k8s_version section. Confirm that the upload failed. PASS: Atempt to upload a modified version of platform-integ-apps with the the supported_k8s_version section but containing only the maximum supported Kubernetes version. Confirm that the upload failed. PASS: Upload/apply/update/remove/delete a working version of platform-integ-apps. Story: 2010929 Task: 49538 Change-Id: I10160dfcfcc82eb8978b96c87e356db7b6cd227a Signed-off-by: Igor Soares <Igor.PiresSoares@windriver.com>
This commit is contained in:
parent
eff4e08e44
commit
3773c65f61
@ -22,7 +22,6 @@ from oslo_log import log as logging
|
||||
from sysinv._i18n import _
|
||||
from sysinv.common import constants
|
||||
from sysinv.common import exception
|
||||
from sysinv.common import kubernetes
|
||||
from sysinv.common import utils
|
||||
|
||||
CONF = cfg.CONF
|
||||
@ -261,16 +260,13 @@ def validate_metadata_file(path, metadata_file, upgrade_from_release=None):
|
||||
validate_dict_field(parent,
|
||||
constants.APP_METADATA_SUPPORTED_K8S_VERSION)
|
||||
|
||||
# TODO: uncomment when supported_k8s_version is included on
|
||||
# the metadata file of at least all default apps
|
||||
#
|
||||
# if value is None:
|
||||
# raise exception.SysinvException(_(
|
||||
# "Kubernetes supported versions not specified on application "
|
||||
# "metadata file. Please add a 'supported_k8s_version' section "
|
||||
# "containing at least a 'minimum' field ('maximum' field is "
|
||||
# "optional)."))
|
||||
#
|
||||
if value is None:
|
||||
raise exception.SysinvException(_(
|
||||
"Kubernetes supported versions not specified on application "
|
||||
"metadata file. Please add a 'supported_k8s_version' section "
|
||||
"containing at least a 'minimum' field ('maximum' field is "
|
||||
"optional)."))
|
||||
|
||||
return value
|
||||
|
||||
def validate_k8s_minimum_version(parent):
|
||||
@ -282,15 +278,12 @@ def validate_metadata_file(path, metadata_file, upgrade_from_release=None):
|
||||
"""
|
||||
validate_string_field(parent, constants.APP_METADATA_MINIMUM)
|
||||
|
||||
# TODO: uncomment when k8s_minimum_version is included on
|
||||
# the metadata file of at least all default apps
|
||||
#
|
||||
# value = validate_string_field(parent, constants.APP_METADATA_MINIMUM)
|
||||
# if value is None:
|
||||
# raise exception.SysinvException(_(
|
||||
# "Minimum supported Kubernetes version not specified "
|
||||
# "on application metadata file. Please add a 'minimum' "
|
||||
# "field to the 'supported_k8s_version' section."))
|
||||
value = validate_string_field(parent, constants.APP_METADATA_MINIMUM)
|
||||
if value is None:
|
||||
raise exception.SysinvException(_(
|
||||
"Minimum supported Kubernetes version not specified "
|
||||
"on application metadata file. Please add a 'minimum' "
|
||||
"field to the 'supported_k8s_version' section."))
|
||||
|
||||
def validate_k8s_upgrades_section(k8s_upgrades_auto_update,
|
||||
k8s_upgrades_timing):
|
||||
@ -590,13 +583,9 @@ def extract_bundle_metadata(file_path):
|
||||
constants.APP_METADATA_MINIMUM, None)
|
||||
|
||||
if minimum_supported_k8s_version is None:
|
||||
# TODO(ipiresso): Turn this into an error message rather than
|
||||
# a warning when the k8s app upgrade implementation is in place
|
||||
# and remove the hardcoded value. Also, do not add the bundle to
|
||||
# the database in this scenario.
|
||||
LOG.warning("Minimum supported Kubernetes version missing from {}"
|
||||
LOG.error("Minimum supported Kubernetes version missing from {}"
|
||||
.format(file_path))
|
||||
minimum_supported_k8s_version = kubernetes.get_kube_versions()[0]['version']
|
||||
return None
|
||||
|
||||
minimum_supported_k8s_version = minimum_supported_k8s_version.strip().lstrip('v')
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user