From ab95a7ca79478f13169b502c1de233d244179ccd Mon Sep 17 00:00:00 2001 From: Jordan Date: Fri, 2 Jun 2023 13:24:01 +0100 Subject: [PATCH 1/2] added path_to_mappings to input.json; added logic to take mappings from file outside of helm package --- src/aosm/README.md | 2 ++ src/aosm/azext_aosm/_configuration.py | 4 ++++ .../azext_aosm/generate_nfd/cnf_nfd_generator.py | 12 +++++++----- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/aosm/README.md b/src/aosm/README.md index 34f32cfbf36..6ef13b0a53c 100644 --- a/src/aosm/README.md +++ b/src/aosm/README.md @@ -73,6 +73,7 @@ For CNFs, you must provide helm packages with an associated schema. When filling { "name": "A", "path_to_chart": "Path to package A", + "path_to_mappings": "Path to package A mappings", "depends_on": [ "Names of the Helm packages this package depends on" ] @@ -80,6 +81,7 @@ For CNFs, you must provide helm packages with an associated schema. When filling { "name": "B", "path_to_chart": "Path to package B", + "path_to_mappings": "Path to package B mappings", "depends_on": [ "Names of the Helm packages this package depends on" ] diff --git a/src/aosm/azext_aosm/_configuration.py b/src/aosm/azext_aosm/_configuration.py index b5bb1974277..aabdcfdde6a 100644 --- a/src/aosm/azext_aosm/_configuration.py +++ b/src/aosm/azext_aosm/_configuration.py @@ -35,6 +35,9 @@ "path_to_chart": ( "File path of Helm Chart on local disk. Accepts .tgz, .tar or .tar.gz" ), + "path_to_mappings": ( + "File path of value mappings on local disk. Accepts .yaml or .yml" + ), "helm_depends_on": ( "Names of the Helm packages this package depends on. " "Leave as an empty array if no dependencies" @@ -149,6 +152,7 @@ def build_output_folder_name(self) -> str: class HelmPackageConfig: name: str = DESCRIPTION_MAP["helm_package_name"] path_to_chart: str = DESCRIPTION_MAP["path_to_chart"] + path_to_mappings: str = DESCRIPTION_MAP["path_to_mappings"] depends_on: List[str] = field( default_factory=lambda: [DESCRIPTION_MAP["helm_depends_on"]] ) diff --git a/src/aosm/azext_aosm/generate_nfd/cnf_nfd_generator.py b/src/aosm/azext_aosm/generate_nfd/cnf_nfd_generator.py index ce71213c971..55d0cc58311 100644 --- a/src/aosm/azext_aosm/generate_nfd/cnf_nfd_generator.py +++ b/src/aosm/azext_aosm/generate_nfd/cnf_nfd_generator.py @@ -343,16 +343,18 @@ def get_chart_mapping_schema( logger.debug("Get chart mapping schema for %s", helm_package.name) - non_def_values = os.path.join( - self._tmp_folder_name, helm_package.name, "values.mappings.yaml" - ) + non_def_values = helm_package.path_to_mappings values_schema = os.path.join( self._tmp_folder_name, helm_package.name, "values.schema.json" ) - if not os.path.exists(non_def_values) or not os.path.exists(values_schema): + if not os.path.exists(non_def_values): + raise InvalidTemplateError( + f"ERROR: The helm package '{helm_package.name}' does not have a valid values mappings file. The file at '{helm_package.path_to_mappings}' does not exist.\nPlease fix this and run the command again." + ) + if not os.path.exists(values_schema): raise InvalidTemplateError( - f"ERROR: The helm package '{helm_package.name}' is missing either values.mappings.yaml or values.schema.json. Please fix this and run the command again." + f"ERROR: The helm package '{helm_package.name}' is missing values.schema.json. Please fix this and run the command again." ) with open(non_def_values, "r", encoding="utf-8") as stream: From 65ac401c290b6a72ee1da5dc193213d312dc72f8 Mon Sep 17 00:00:00 2001 From: Jordan Date: Fri, 2 Jun 2023 14:04:08 +0100 Subject: [PATCH 2/2] renamed non_def_values to mappings_path --- src/aosm/azext_aosm/generate_nfd/cnf_nfd_generator.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/aosm/azext_aosm/generate_nfd/cnf_nfd_generator.py b/src/aosm/azext_aosm/generate_nfd/cnf_nfd_generator.py index 55d0cc58311..bb7f889e35e 100644 --- a/src/aosm/azext_aosm/generate_nfd/cnf_nfd_generator.py +++ b/src/aosm/azext_aosm/generate_nfd/cnf_nfd_generator.py @@ -343,12 +343,12 @@ def get_chart_mapping_schema( logger.debug("Get chart mapping schema for %s", helm_package.name) - non_def_values = helm_package.path_to_mappings + mappings_path = helm_package.path_to_mappings values_schema = os.path.join( self._tmp_folder_name, helm_package.name, "values.schema.json" ) - if not os.path.exists(non_def_values): + if not os.path.exists(mappings_path): raise InvalidTemplateError( f"ERROR: The helm package '{helm_package.name}' does not have a valid values mappings file. The file at '{helm_package.path_to_mappings}' does not exist.\nPlease fix this and run the command again." ) @@ -357,7 +357,7 @@ def get_chart_mapping_schema( f"ERROR: The helm package '{helm_package.name}' is missing values.schema.json. Please fix this and run the command again." ) - with open(non_def_values, "r", encoding="utf-8") as stream: + with open(mappings_path, "r", encoding="utf-8") as stream: values_data = yaml.load(stream, Loader=yaml.SafeLoader) with open(values_schema, "r", encoding="utf-8") as f: