From 8d98aaee34681c6ce27343d9ca6e8495e4ace427 Mon Sep 17 00:00:00 2001 From: Srisatya Venkata Surya Ganesh Vissapragada Date: Tue, 14 Apr 2026 17:34:55 +0530 Subject: [PATCH 01/10] fix: enabling the validation for composite structure --- scripts/build_env/render_config_env.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/build_env/render_config_env.py b/scripts/build_env/render_config_env.py index 8ea5383ef..5fa335e3a 100644 --- a/scripts/build_env/render_config_env.py +++ b/scripts/build_env/render_config_env.py @@ -16,6 +16,7 @@ SCHEMAS_DIR = Path(__file__).resolve().parents[2] / "schemas" APPDEF_SCHEMA = str(SCHEMAS_DIR / "appdef.schema.json") TD_SCHEMA = str(SCHEMAS_DIR / "template-descriptor.schema.json") +Composite_SCHEMA = str(SCHEMAS_DIR / "composite-structure.schema.json") yml = create_yaml_processor() @@ -427,6 +428,7 @@ def generate_composite_structure(self): cs_file = Path(current_env_dir) / "composite_structure.yml" cs_file.parent.mkdir(parents=True, exist_ok=True) self.render_from_file_to_file(Template(composite_structure).render(self.ctx.as_dict()), str(cs_file)) + validate_yaml_by_scheme_or_fail(cs_file, Composite_SCHEMA) def get_rendered_target_path(self, template_path: Path) -> Path: path_str = str(template_path) From bfd51f8bc7f3fdaaee44b3349d830c1025b51e22 Mon Sep 17 00:00:00 2001 From: Srisatya Venkata Surya Ganesh Vissapragada Date: Fri, 24 Apr 2026 09:05:25 +0530 Subject: [PATCH 02/10] fix: adding composite schema validation --- scripts/build_env/env_template/set_template_version.py | 4 ++-- scripts/build_env/render_config_env.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/build_env/env_template/set_template_version.py b/scripts/build_env/env_template/set_template_version.py index c140954a1..62a0d2129 100644 --- a/scripts/build_env/env_template/set_template_version.py +++ b/scripts/build_env/env_template/set_template_version.py @@ -21,7 +21,7 @@ def update_version(env_definition_dir, version_to_add, update_mode: TemplateVers del data['envTemplate']['templateArtifact'] data['envTemplate']['artifact'] = version_to_add else: - logger.error(f"Bad env_definition structure in file {env_definition_path}.") + logger.error(f"Invalid ENV_TEMPLATE_VERSION '{version_to_add}': missing or incorrect envTemplate.artifact structure in {env_definition_path}.") raise ReferenceError(f"Can't update version in {env_definition_path}. See logs above.") else: if 'envTemplate' in data and 'templateArtifact' in data['envTemplate'] and 'artifact' in data['envTemplate'][ @@ -32,7 +32,7 @@ def update_version(env_definition_dir, version_to_add, update_mode: TemplateVers data['envTemplate']['templateArtifact']['artifact']['version'] = version_to_add logger.info(f"Succesfully updated version from {oldVersion} to {version_to_add} in {env_definition_path}") else: - logger.error(f"Bad env_definition structure in file {env_definition_path}.") + logger.error(f"Invalid ENV_TEMPLATE_VERSION: version-only input expects 'envTemplate.templateArtifact.artifact' structure, but it is not present {env_definition_path}.") raise ReferenceError(f"Can't update version in {env_definition_path}. See logs above.") writeYamlToFile(env_definition_path, data) beautifyYaml(env_definition_path) diff --git a/scripts/build_env/render_config_env.py b/scripts/build_env/render_config_env.py index 5fa335e3a..585408f76 100644 --- a/scripts/build_env/render_config_env.py +++ b/scripts/build_env/render_config_env.py @@ -16,7 +16,7 @@ SCHEMAS_DIR = Path(__file__).resolve().parents[2] / "schemas" APPDEF_SCHEMA = str(SCHEMAS_DIR / "appdef.schema.json") TD_SCHEMA = str(SCHEMAS_DIR / "template-descriptor.schema.json") -Composite_SCHEMA = str(SCHEMAS_DIR / "composite-structure.schema.json") +COMPOSITE_SCHEMA = str(SCHEMAS_DIR / "composite-structure.schema.json") yml = create_yaml_processor() @@ -428,7 +428,7 @@ def generate_composite_structure(self): cs_file = Path(current_env_dir) / "composite_structure.yml" cs_file.parent.mkdir(parents=True, exist_ok=True) self.render_from_file_to_file(Template(composite_structure).render(self.ctx.as_dict()), str(cs_file)) - validate_yaml_by_scheme_or_fail(cs_file, Composite_SCHEMA) + validate_yaml_by_scheme_or_fail(cs_file, COMPOSITE_SCHEMA) def get_rendered_target_path(self, template_path: Path) -> Path: path_str = str(template_path) From 81eaf816d55ab910caa896c65f93605d6c60b262 Mon Sep 17 00:00:00 2001 From: Srisatya Venkata Surya Ganesh Vissapragada Date: Mon, 27 Apr 2026 14:58:41 +0530 Subject: [PATCH 03/10] fix: composite schema validation --- scripts/build_env/render_config_env.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/scripts/build_env/render_config_env.py b/scripts/build_env/render_config_env.py index 585408f76..b77f8206e 100644 --- a/scripts/build_env/render_config_env.py +++ b/scripts/build_env/render_config_env.py @@ -334,6 +334,7 @@ def generate_override_template(self, template_override, template_path: Path, nam self.render_from_obj_to_file(template_override, template_path) def generate_cloud_file(self): + cloud = self.calculate_cloud_name() cloud_template = self.ctx.current_env_template["cloud"] current_env_dir = self.ctx.current_env_dir @@ -405,13 +406,14 @@ def calculate_cloud_name(self) -> str: inv.get("cloudName"), inv.get("passportCloudName", "").replace("-", "_") if inv.get("passportCloudName") else "", inv.get("cloudPassport", "").replace("-", "_") if inv.get("cloudPassport") else "", + # cluster_name.replace("-", "_") if cluster_name else "", inv.get("environmentName", "").replace("-", "_"), f"{cluster_name}_{inv.get('environmentName', '')}".replace("-", "_") if cluster_name and inv.get("environmentName") else "" ] - + return next((c for c in candidates if c), "") - + def get_template_name(self, template_path: str) -> str: template_path = Path(template_path) return ( @@ -597,8 +599,10 @@ def render_config_env(self, env_name: str, extra_env: dict): self.setup_base_context(extra_env) all_vars = self.ctx.env_vars current_env = self.ctx.current_env + self.ctx.cloud = self.calculate_cloud_name() + self.ctx.tenant = current_env.get("tenant", '') self.ctx.deployer = current_env.get('deployer', '') self.ctx.bgd = current_env.get('bg_domain', '') From 012b3538bad5731b38442c66cd71bb249c09813c Mon Sep 17 00:00:00 2001 From: Vissapragada SriSatya Venkata Surya Ganesh <159680576+ganeshvissapragada@users.noreply.github.com> Date: Thu, 16 Apr 2026 18:28:45 +0530 Subject: [PATCH 04/10] feat: Feature/composite structure validation (#1237) * fix: enabling the validation for composite structure * feat: support cloud public registry (#1025) * chore: Update docker image tags and envgene_version for branch main [skip ci] --------- Co-authored-by: Jackson Raj A <150916845+BackendBits@users.noreply.github.com> Co-authored-by: qubership-actions[bot] From 5d7609be0ca39dc554968f6a7181e3592486045f Mon Sep 17 00:00:00 2001 From: Srisatya Venkata Surya Ganesh Vissapragada Date: Mon, 27 Apr 2026 15:25:24 +0530 Subject: [PATCH 05/10] fix: composite schema validation --- scripts/build_env/env_template/set_template_version.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/build_env/env_template/set_template_version.py b/scripts/build_env/env_template/set_template_version.py index 62a0d2129..c140954a1 100644 --- a/scripts/build_env/env_template/set_template_version.py +++ b/scripts/build_env/env_template/set_template_version.py @@ -21,7 +21,7 @@ def update_version(env_definition_dir, version_to_add, update_mode: TemplateVers del data['envTemplate']['templateArtifact'] data['envTemplate']['artifact'] = version_to_add else: - logger.error(f"Invalid ENV_TEMPLATE_VERSION '{version_to_add}': missing or incorrect envTemplate.artifact structure in {env_definition_path}.") + logger.error(f"Bad env_definition structure in file {env_definition_path}.") raise ReferenceError(f"Can't update version in {env_definition_path}. See logs above.") else: if 'envTemplate' in data and 'templateArtifact' in data['envTemplate'] and 'artifact' in data['envTemplate'][ @@ -32,7 +32,7 @@ def update_version(env_definition_dir, version_to_add, update_mode: TemplateVers data['envTemplate']['templateArtifact']['artifact']['version'] = version_to_add logger.info(f"Succesfully updated version from {oldVersion} to {version_to_add} in {env_definition_path}") else: - logger.error(f"Invalid ENV_TEMPLATE_VERSION: version-only input expects 'envTemplate.templateArtifact.artifact' structure, but it is not present {env_definition_path}.") + logger.error(f"Bad env_definition structure in file {env_definition_path}.") raise ReferenceError(f"Can't update version in {env_definition_path}. See logs above.") writeYamlToFile(env_definition_path, data) beautifyYaml(env_definition_path) From 136337c6456c4b7a8299e9ffce4b6e47e111c9bd Mon Sep 17 00:00:00 2001 From: Srisatya Venkata Surya Ganesh Vissapragada Date: Tue, 28 Apr 2026 12:38:43 +0530 Subject: [PATCH 06/10] feat: compostie schema validation --- scripts/build_env/render_config_env.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/scripts/build_env/render_config_env.py b/scripts/build_env/render_config_env.py index b77f8206e..585408f76 100644 --- a/scripts/build_env/render_config_env.py +++ b/scripts/build_env/render_config_env.py @@ -334,7 +334,6 @@ def generate_override_template(self, template_override, template_path: Path, nam self.render_from_obj_to_file(template_override, template_path) def generate_cloud_file(self): - cloud = self.calculate_cloud_name() cloud_template = self.ctx.current_env_template["cloud"] current_env_dir = self.ctx.current_env_dir @@ -406,14 +405,13 @@ def calculate_cloud_name(self) -> str: inv.get("cloudName"), inv.get("passportCloudName", "").replace("-", "_") if inv.get("passportCloudName") else "", inv.get("cloudPassport", "").replace("-", "_") if inv.get("cloudPassport") else "", - # cluster_name.replace("-", "_") if cluster_name else "", inv.get("environmentName", "").replace("-", "_"), f"{cluster_name}_{inv.get('environmentName', '')}".replace("-", "_") if cluster_name and inv.get("environmentName") else "" ] - + return next((c for c in candidates if c), "") - + def get_template_name(self, template_path: str) -> str: template_path = Path(template_path) return ( @@ -599,10 +597,8 @@ def render_config_env(self, env_name: str, extra_env: dict): self.setup_base_context(extra_env) all_vars = self.ctx.env_vars current_env = self.ctx.current_env - self.ctx.cloud = self.calculate_cloud_name() - self.ctx.tenant = current_env.get("tenant", '') self.ctx.deployer = current_env.get('deployer', '') self.ctx.bgd = current_env.get('bg_domain', '') From 8c8e03e510d183ba42975500f44747006c276af8 Mon Sep 17 00:00:00 2001 From: Srisatya Venkata Surya Ganesh Vissapragada Date: Fri, 15 May 2026 17:04:01 +0530 Subject: [PATCH 07/10] fix: composite schema validation From aef7b0744de5f9e8883c31563c713b92a4768a3d Mon Sep 17 00:00:00 2001 From: Srisatya Venkata Surya Ganesh Vissapragada Date: Mon, 18 May 2026 10:18:47 +0530 Subject: [PATCH 08/10] fix: composite structure validation From 8bc3cf7d5c2ac19312af0dd6a40312d4f9d7a08a Mon Sep 17 00:00:00 2001 From: Srisatya Venkata Surya Ganesh Vissapragada Date: Mon, 18 May 2026 10:19:45 +0530 Subject: [PATCH 09/10] fix: composite structure validation From bd63cdd50e1fb8e95a24f0b8a990b04ffce2b3cd Mon Sep 17 00:00:00 2001 From: Srisatya Venkata Surya Ganesh Vissapragada Date: Mon, 25 May 2026 15:35:36 +0530 Subject: [PATCH 10/10] fix: composite schema validation