From aa5d72a6954f39bb7b41f0a3148a4605b945745d Mon Sep 17 00:00:00 2001 From: Shyam Doshi Date: Tue, 26 May 2026 12:51:34 +0530 Subject: [PATCH 01/21] [patch] Added support for FACILITIES.properties in Facilities --- python/src/mas/cli/install/app.py | 38 +++++++++++++++++++ python/src/mas/cli/install/argParser.py | 13 +++++++ python/src/mas/cli/install/params.py | 4 ++ .../cli/install/settings/additionalConfigs.py | 19 ++++++++++ 4 files changed, 74 insertions(+) diff --git a/python/src/mas/cli/install/app.py b/python/src/mas/cli/install/app.py index b7595d9b53d..a530c1d7fdd 100644 --- a/python/src/mas/cli/install/app.py +++ b/python/src/mas/cli/install/app.py @@ -1541,6 +1541,42 @@ def facilitiesSettings(self) -> None: "Real Estate and Facilities AES Vault Secret Name", "mas_ws_facilities_vault_secret", ) + + # Prompt for custom FACILITIES.properties file + if self.yesOrNo("Upload custom FACILITIES.properties file"): + self.printDescription( + [ + "Provide the path to your custom FACILITIES.properties file.", + "This file will be uploaded as a secret in OpenShift.", + "If you choose not to upload a custom file, the default FACILITIES.properties will be used." + ] + ) + facilitiesPropertiesFile = self.promptForString( + "Path to FACILITIES.properties file", + "mas_ws_facilities_properties_file_local", + ) + if facilitiesPropertiesFile and path.exists(facilitiesPropertiesFile): + self.setParam("mas_ws_facilities_properties_file_local", facilitiesPropertiesFile) + self.setParam("mas_ws_facilities_custom_properties", "true") + + # Prompt for custom secret name + if self.yesOrNo("Specify a custom name for the secret"): + customSecretName = self.promptForString( + "Secret name (default: facilities-properties)", + "mas_ws_facilities_properties_secret_name", + default="facilities-properties" + ) + if customSecretName and customSecretName != "": + self.setParam("mas_ws_facilities_properties_secret_name", customSecretName) + else: + self.setParam("mas_ws_facilities_properties_secret_name", "facilities-properties") + else: + self.setParam("mas_ws_facilities_properties_secret_name", "facilities-properties") + else: + print_formatted_text(HTML("File not found. Default FACILITIES.properties will be used.")) + self.setParam("mas_ws_facilities_custom_properties", "false") + else: + self.setParam("mas_ws_facilities_custom_properties", "false") self.promptForString( "Set Real Estate and Facilities Routes Timeout:", @@ -2538,6 +2574,7 @@ def install(self, argv): self.podTemplates() self.slsLicenseFile() self.db2LicenseFile() + self.facilitiesPropertiesFile() self.manualCertificates() self.aiserviceConfig() @@ -2744,6 +2781,7 @@ def install(self, argv): namespace=pipelinesNamespace, slsLicenseFile=self.slsLicenseFileSecret, db2LicenseFile=self.db2LicenseFileSecret, + facilitiesProperties=self.facilitiesPropertiesSecret, additionalConfigs=self.additionalConfigsSecret, podTemplates=self.podTemplatesSecret, certs=self.certsSecret, diff --git a/python/src/mas/cli/install/argParser.py b/python/src/mas/cli/install/argParser.py index 603d02dafe1..c909a9b8f57 100644 --- a/python/src/mas/cli/install/argParser.py +++ b/python/src/mas/cli/install/argParser.py @@ -818,6 +818,19 @@ def isValidFile(parser: argparse.ArgumentParser, arg: str) -> str: help="Storage size for Facilities user files", default=50, ) +facilitiesArgGroup.add_argument( + "--facilities-properties-file", + dest="mas_ws_facilities_properties_file_local", + required=False, + help="Path to custom FACILITIES.properties file to upload as secret", +) +facilitiesArgGroup.add_argument( + "--facilities-properties-secret-name", + dest="mas_ws_facilities_properties_secret_name", + required=False, + help="Custom name for the Facilities properties secret (default: facilities-properties)", + default="facilities-properties", +) # Open Data Hub # ----------------------------------------------------------------------------- diff --git a/python/src/mas/cli/install/params.py b/python/src/mas/cli/install/params.py index 950ae7d0f3f..35a4bffd460 100644 --- a/python/src/mas/cli/install/params.py +++ b/python/src/mas/cli/install/params.py @@ -174,6 +174,10 @@ "mas_ws_facilities_storage_userfiles_size", "mas_ws_facilities_dwfagents", "mas_ws_facilities_db_maxconnpoolsize", + "mas_ws_facilities_properties_file_local", + "mas_ws_facilities_custom_properties", + "mas_ws_facilities_properties_secret", + "mas_ws_facilities_properties_secret_name", # Special chars "mas_special_characters", # ODH diff --git a/python/src/mas/cli/install/settings/additionalConfigs.py b/python/src/mas/cli/install/settings/additionalConfigs.py index c97ac980d86..5791b04f012 100644 --- a/python/src/mas/cli/install/settings/additionalConfigs.py +++ b/python/src/mas/cli/install/settings/additionalConfigs.py @@ -220,6 +220,25 @@ def db2LicenseFile(self) -> None: self.db2LicenseFileSecret = self.addFilesToSecret(db2LicenseFileSecret, self.db2LicenseFileLocal, "") else: self.db2LicenseFileSecret = None + + def facilitiesPropertiesFile(self) -> None: + """Handle Facilities properties file upload""" + self.facilitiesPropertiesSecret = None + facilitiesPropertiesFileLocal = self.getParam("mas_ws_facilities_properties_file_local") + + if facilitiesPropertiesFileLocal and facilitiesPropertiesFileLocal != "": + # Get custom secret name or use default + secretName = self.getParam("mas_ws_facilities_properties_secret_name") + if not secretName or secretName == "": + secretName = "facilities-properties" + + facilitiesPropertiesSecret = {"apiVersion": "v1", "kind": "Secret", "type": "Opaque", "metadata": {"name": secretName}} + self.setParam("mas_ws_facilities_properties_file", "/workspace/facilities/FACILITIES.properties") + self.setParam("mas_ws_facilities_properties_secret", secretName) + self.facilitiesPropertiesSecret = self.addFilesToSecret(facilitiesPropertiesSecret, facilitiesPropertiesFileLocal, "") + else: + self.setParam("mas_ws_facilities_properties_file", "") + self.setParam("mas_ws_facilities_properties_secret", "") def addFilesToSecret(self, secretDict: dict, configPath: str, extension: str, keyPrefix: str = "") -> dict: """ From 108470c73dbc966ee1370fd82f2563eb60d1463a Mon Sep 17 00:00:00 2001 From: Shyam Doshi Date: Tue, 26 May 2026 13:03:26 +0530 Subject: [PATCH 02/21] [patch] Refactor the code --- python/src/mas/cli/install/app.py | 10 ++++------ .../src/mas/cli/install/settings/additionalConfigs.py | 6 +++--- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/python/src/mas/cli/install/app.py b/python/src/mas/cli/install/app.py index a530c1d7fdd..3c530b38c43 100644 --- a/python/src/mas/cli/install/app.py +++ b/python/src/mas/cli/install/app.py @@ -1541,14 +1541,14 @@ def facilitiesSettings(self) -> None: "Real Estate and Facilities AES Vault Secret Name", "mas_ws_facilities_vault_secret", ) - + # Prompt for custom FACILITIES.properties file if self.yesOrNo("Upload custom FACILITIES.properties file"): self.printDescription( [ "Provide the path to your custom FACILITIES.properties file.", "This file will be uploaded as a secret in OpenShift.", - "If you choose not to upload a custom file, the default FACILITIES.properties will be used." + "If you choose not to upload a custom file, the default FACILITIES.properties will be used.", ] ) facilitiesPropertiesFile = self.promptForString( @@ -1558,13 +1558,11 @@ def facilitiesSettings(self) -> None: if facilitiesPropertiesFile and path.exists(facilitiesPropertiesFile): self.setParam("mas_ws_facilities_properties_file_local", facilitiesPropertiesFile) self.setParam("mas_ws_facilities_custom_properties", "true") - + # Prompt for custom secret name if self.yesOrNo("Specify a custom name for the secret"): customSecretName = self.promptForString( - "Secret name (default: facilities-properties)", - "mas_ws_facilities_properties_secret_name", - default="facilities-properties" + "Secret name (default: facilities-properties)", "mas_ws_facilities_properties_secret_name", default="facilities-properties" ) if customSecretName and customSecretName != "": self.setParam("mas_ws_facilities_properties_secret_name", customSecretName) diff --git a/python/src/mas/cli/install/settings/additionalConfigs.py b/python/src/mas/cli/install/settings/additionalConfigs.py index 5791b04f012..5fa56b417cf 100644 --- a/python/src/mas/cli/install/settings/additionalConfigs.py +++ b/python/src/mas/cli/install/settings/additionalConfigs.py @@ -220,18 +220,18 @@ def db2LicenseFile(self) -> None: self.db2LicenseFileSecret = self.addFilesToSecret(db2LicenseFileSecret, self.db2LicenseFileLocal, "") else: self.db2LicenseFileSecret = None - + def facilitiesPropertiesFile(self) -> None: """Handle Facilities properties file upload""" self.facilitiesPropertiesSecret = None facilitiesPropertiesFileLocal = self.getParam("mas_ws_facilities_properties_file_local") - + if facilitiesPropertiesFileLocal and facilitiesPropertiesFileLocal != "": # Get custom secret name or use default secretName = self.getParam("mas_ws_facilities_properties_secret_name") if not secretName or secretName == "": secretName = "facilities-properties" - + facilitiesPropertiesSecret = {"apiVersion": "v1", "kind": "Secret", "type": "Opaque", "metadata": {"name": secretName}} self.setParam("mas_ws_facilities_properties_file", "/workspace/facilities/FACILITIES.properties") self.setParam("mas_ws_facilities_properties_secret", secretName) From 462a93e66f65836b030438112551a7d41aee6103 Mon Sep 17 00:00:00 2001 From: Shyam Doshi Date: Tue, 26 May 2026 14:19:04 +0530 Subject: [PATCH 03/21] [patch] Trigger the jobs --- python/src/mas/cli/install/argParser.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/src/mas/cli/install/argParser.py b/python/src/mas/cli/install/argParser.py index c909a9b8f57..f04d49e5bc2 100644 --- a/python/src/mas/cli/install/argParser.py +++ b/python/src/mas/cli/install/argParser.py @@ -822,7 +822,7 @@ def isValidFile(parser: argparse.ArgumentParser, arg: str) -> str: "--facilities-properties-file", dest="mas_ws_facilities_properties_file_local", required=False, - help="Path to custom FACILITIES.properties file to upload as secret", + help="Path to the custom FACILITIES.properties file to upload as secret", ) facilitiesArgGroup.add_argument( "--facilities-properties-secret-name", From cbf7b837e470052b1d9a64695d68293b7e5d6ebf Mon Sep 17 00:00:00 2001 From: Shyam Doshi Date: Tue, 26 May 2026 21:28:44 +0530 Subject: [PATCH 04/21] [patch] Pass the flag for facilities properties in argBuilder --- python/src/mas/cli/install/argBuilder.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/python/src/mas/cli/install/argBuilder.py b/python/src/mas/cli/install/argBuilder.py index cb891849c55..6d352589668 100644 --- a/python/src/mas/cli/install/argBuilder.py +++ b/python/src/mas/cli/install/argBuilder.py @@ -348,6 +348,11 @@ def buildCommand(self) -> str: if self.getParam("mas_ws_facilities_storage_userfiles_size") != "": command += f" --facilities-userfiles-storage-size \"{self.getParam('mas_ws_facilities_storage_userfiles_size')}\"{newline}" + if self.getParam("mas_ws_facilities_properties_file_local") != "": + command += f" --facilities-properties-file \"{self.getParam('mas_ws_facilities_properties_file_local')}\"{newline}" + if self.getParam("mas_ws_facilities_properties_secret_name") != "": + command += f" --facilities-properties-secret-name \"{self.getParam('mas_ws_facilities_properties_secret_name')}\"{newline}" + # AI Service Advanced Settings # ----------------------------------------------------------------------------- if self.installAIService: From 8296d32e626f09f982aee0c48c6f76784bcba373 Mon Sep 17 00:00:00 2001 From: Shyam Doshi Date: Tue, 26 May 2026 22:27:43 +0530 Subject: [PATCH 05/21] [patch] Added facilitiesproperties to summarizer --- python/src/mas/cli/install/summarizer.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/python/src/mas/cli/install/summarizer.py b/python/src/mas/cli/install/summarizer.py index 8f7038f4f74..ad77b0229d0 100644 --- a/python/src/mas/cli/install/summarizer.py +++ b/python/src/mas/cli/install/summarizer.py @@ -341,6 +341,8 @@ def facilitiesSummary(self) -> None: "mas_ws_facilities_storage_userfiles_mode", ) # self.printParamSummary(" + User files Storage Size", "mas_ws_facilities_storage_userfiles_size") + self.printParamSummary(" + Properties File", "mas_ws_facilities_properties_file_local") + self.printParamSummary(" + Properties Secret Name", "mas_ws_facilities_properties_secret_name") if self.getParam("db2_action_facilities") == "none": self.printParamSummary(" + Dedicated DB2 Database", "No") else: From b1571718c9cf1d525a42119f773af343bed9a261 Mon Sep 17 00:00:00 2001 From: Shyam Doshi Date: Wed, 27 May 2026 13:00:31 +0530 Subject: [PATCH 06/21] [patch] Added custom property in summarizer --- python/src/mas/cli/install/summarizer.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/python/src/mas/cli/install/summarizer.py b/python/src/mas/cli/install/summarizer.py index ad77b0229d0..7ece6670806 100644 --- a/python/src/mas/cli/install/summarizer.py +++ b/python/src/mas/cli/install/summarizer.py @@ -341,8 +341,9 @@ def facilitiesSummary(self) -> None: "mas_ws_facilities_storage_userfiles_mode", ) # self.printParamSummary(" + User files Storage Size", "mas_ws_facilities_storage_userfiles_size") - self.printParamSummary(" + Properties File", "mas_ws_facilities_properties_file_local") - self.printParamSummary(" + Properties Secret Name", "mas_ws_facilities_properties_secret_name") + self.printParamSummary(" + Custom FACILITIES.properties", "mas_ws_facilities_custom_properties") + self.printParamSummary(" + Custom FACILITIES.properties File path", "mas_ws_facilities_properties_file_local") + self.printParamSummary(" + Custom FACILITIES.properties Secret Name", "mas_ws_facilities_properties_secret_name") if self.getParam("db2_action_facilities") == "none": self.printParamSummary(" + Dedicated DB2 Database", "No") else: From 65ceea8b6717a297b98425dae8232da634a37bd9 Mon Sep 17 00:00:00 2001 From: Shyam Doshi Date: Wed, 27 May 2026 16:50:28 +0530 Subject: [PATCH 07/21] [patch] Update custom secret name --- python/src/mas/cli/install/params.py | 1 - 1 file changed, 1 deletion(-) diff --git a/python/src/mas/cli/install/params.py b/python/src/mas/cli/install/params.py index 35a4bffd460..5676f79f0d9 100644 --- a/python/src/mas/cli/install/params.py +++ b/python/src/mas/cli/install/params.py @@ -176,7 +176,6 @@ "mas_ws_facilities_db_maxconnpoolsize", "mas_ws_facilities_properties_file_local", "mas_ws_facilities_custom_properties", - "mas_ws_facilities_properties_secret", "mas_ws_facilities_properties_secret_name", # Special chars "mas_special_characters", From 4bb9604f3bcac276d284b73f204954c14b113ea9 Mon Sep 17 00:00:00 2001 From: Shyam Doshi Date: Wed, 27 May 2026 18:23:40 +0530 Subject: [PATCH 08/21] [patch] Refactor the code --- python/src/mas/cli/install/settings/additionalConfigs.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/python/src/mas/cli/install/settings/additionalConfigs.py b/python/src/mas/cli/install/settings/additionalConfigs.py index 5fa56b417cf..000ad969cdc 100644 --- a/python/src/mas/cli/install/settings/additionalConfigs.py +++ b/python/src/mas/cli/install/settings/additionalConfigs.py @@ -234,11 +234,11 @@ def facilitiesPropertiesFile(self) -> None: facilitiesPropertiesSecret = {"apiVersion": "v1", "kind": "Secret", "type": "Opaque", "metadata": {"name": secretName}} self.setParam("mas_ws_facilities_properties_file", "/workspace/facilities/FACILITIES.properties") - self.setParam("mas_ws_facilities_properties_secret", secretName) + self.setParam("mas_ws_facilities_properties_secret_name", secretName) self.facilitiesPropertiesSecret = self.addFilesToSecret(facilitiesPropertiesSecret, facilitiesPropertiesFileLocal, "") else: self.setParam("mas_ws_facilities_properties_file", "") - self.setParam("mas_ws_facilities_properties_secret", "") + self.setParam("mas_ws_facilities_properties_secret_name", "") def addFilesToSecret(self, secretDict: dict, configPath: str, extension: str, keyPrefix: str = "") -> dict: """ From 4a1f297467ee699d6726c310a5f50684f9ea3daf Mon Sep 17 00:00:00 2001 From: Shyam Doshi Date: Wed, 27 May 2026 19:36:37 +0530 Subject: [PATCH 09/21] [patch] Added facilities properties workspace --- tekton/src/params/install.yml.j2 | 12 ++++++++++++ tekton/src/pipelines/mas-install.yml.j2 | 3 +++ .../pipelines/taskdefs/apps/facilities-app.yml.j2 | 9 +++++++++ 3 files changed, 24 insertions(+) diff --git a/tekton/src/params/install.yml.j2 b/tekton/src/params/install.yml.j2 index 2c0239ab5db..a2a163c9987 100644 --- a/tekton/src/params/install.yml.j2 +++ b/tekton/src/params/install.yml.j2 @@ -770,6 +770,18 @@ description: ConfigMap with configurations not supported by Tekton type: string default: "" +- name: mas_ws_facilities_custom_properties + description: Flag indicating if custom FACILITIES.properties file is provided + type: string + default: "" +- name: mas_ws_facilities_properties_file_local + description: Path to custom FACILITIES.properties file in pipeline workspace + type: string + default: "" +- name: mas_ws_facilities_properties_secret_name + description: Name of the secret containing custom FACILITIES.properties + type: string + default: "" # AI Service Configuration # ----------------------------------------------------------------------------- diff --git a/tekton/src/pipelines/mas-install.yml.j2 b/tekton/src/pipelines/mas-install.yml.j2 index e091ec8eee8..047d2d43bd2 100644 --- a/tekton/src/pipelines/mas-install.yml.j2 +++ b/tekton/src/pipelines/mas-install.yml.j2 @@ -19,6 +19,9 @@ spec: - name: shared-db2 # AIService configurations. Contains Scheduling config file for AI workloads for tenant. - name: shared-aiservice-config + # Facilities Properties File + - name: shared-facilities-properties + optional: true params: # 1. Common Parameters diff --git a/tekton/src/pipelines/taskdefs/apps/facilities-app.yml.j2 b/tekton/src/pipelines/taskdefs/apps/facilities-app.yml.j2 index 154f5143a84..b4b4110fee2 100644 --- a/tekton/src/pipelines/taskdefs/apps/facilities-app.yml.j2 +++ b/tekton/src/pipelines/taskdefs/apps/facilities-app.yml.j2 @@ -50,11 +50,20 @@ value: $(params.mas_ws_facilities_storage_userfiles_mode) - name: mas_ws_facilities_config_map_name value: $(params.mas_ws_facilities_config_map_name) + - name: mas_ws_facilities_custom_properties + value: $(params.mas_ws_facilities_custom_properties) + - name: mas_ws_facilities_properties_file_local + value: $(params.mas_ws_facilities_properties_file_local) + - name: mas_ws_facilities_properties_secret_name + value: $(params.mas_ws_facilities_properties_secret_name) workspaces: - name: configs workspace: shared-configs - name: pod-templates workspace: shared-pod-templates + - name: facilities + workspace: shared-facilities-properties + optional: true when: - input: "$(params.mas_app_channel_facilities)" operator: notin From df530fa5542c29831143969ba44bbe9682afddb8 Mon Sep 17 00:00:00 2001 From: Shyam Doshi Date: Wed, 27 May 2026 19:50:18 +0530 Subject: [PATCH 10/21] [patch] Remove optional --- tekton/src/pipelines/taskdefs/apps/facilities-app.yml.j2 | 1 - 1 file changed, 1 deletion(-) diff --git a/tekton/src/pipelines/taskdefs/apps/facilities-app.yml.j2 b/tekton/src/pipelines/taskdefs/apps/facilities-app.yml.j2 index b4b4110fee2..71d989ec03e 100644 --- a/tekton/src/pipelines/taskdefs/apps/facilities-app.yml.j2 +++ b/tekton/src/pipelines/taskdefs/apps/facilities-app.yml.j2 @@ -63,7 +63,6 @@ workspace: shared-pod-templates - name: facilities workspace: shared-facilities-properties - optional: true when: - input: "$(params.mas_app_channel_facilities)" operator: notin From f8da29d590aa15e144f78868204ebdb4c1334aed Mon Sep 17 00:00:00 2001 From: Shyam Doshi Date: Wed, 27 May 2026 21:16:37 +0530 Subject: [PATCH 11/21] [patch] Made changes to set correct params --- python/src/mas/cli/install/settings/additionalConfigs.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/python/src/mas/cli/install/settings/additionalConfigs.py b/python/src/mas/cli/install/settings/additionalConfigs.py index 000ad969cdc..8a951d4fb68 100644 --- a/python/src/mas/cli/install/settings/additionalConfigs.py +++ b/python/src/mas/cli/install/settings/additionalConfigs.py @@ -232,12 +232,13 @@ def facilitiesPropertiesFile(self) -> None: if not secretName or secretName == "": secretName = "facilities-properties" - facilitiesPropertiesSecret = {"apiVersion": "v1", "kind": "Secret", "type": "Opaque", "metadata": {"name": secretName}} - self.setParam("mas_ws_facilities_properties_file", "/workspace/facilities/FACILITIES.properties") + facilitiesPropertiesSecret = {"apiVersion": "v1", "kind": "Secret", "type": "Opaque", "metadata": {"name": "pipeline-facilities-properties"}} + # Set the path in workspace where Ansible will find the file + self.setParam("mas_ws_facilities_properties_file_local", "/workspace/facilities/FACILITIES.properties") self.setParam("mas_ws_facilities_properties_secret_name", secretName) self.facilitiesPropertiesSecret = self.addFilesToSecret(facilitiesPropertiesSecret, facilitiesPropertiesFileLocal, "") else: - self.setParam("mas_ws_facilities_properties_file", "") + self.setParam("mas_ws_facilities_properties_file_local", "") self.setParam("mas_ws_facilities_properties_secret_name", "") def addFilesToSecret(self, secretDict: dict, configPath: str, extension: str, keyPrefix: str = "") -> dict: From ea3a470dd3cc72fb8afff25a276c5f0834d89718 Mon Sep 17 00:00:00 2001 From: Shyam Doshi Date: Fri, 29 May 2026 10:48:33 +0530 Subject: [PATCH 12/21] [patch] Made workspace mount optional based on custom property flag --- python/src/mas/cli/install/app.py | 7 +------ tekton/src/pipelines/taskdefs/apps/facilities-app.yml.j2 | 2 ++ 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/python/src/mas/cli/install/app.py b/python/src/mas/cli/install/app.py index 3c530b38c43..de1aca0914c 100644 --- a/python/src/mas/cli/install/app.py +++ b/python/src/mas/cli/install/app.py @@ -1562,14 +1562,9 @@ def facilitiesSettings(self) -> None: # Prompt for custom secret name if self.yesOrNo("Specify a custom name for the secret"): customSecretName = self.promptForString( - "Secret name (default: facilities-properties)", "mas_ws_facilities_properties_secret_name", default="facilities-properties" - ) + "Specify the custom secret name", "mas_ws_facilities_properties_secret_name") if customSecretName and customSecretName != "": self.setParam("mas_ws_facilities_properties_secret_name", customSecretName) - else: - self.setParam("mas_ws_facilities_properties_secret_name", "facilities-properties") - else: - self.setParam("mas_ws_facilities_properties_secret_name", "facilities-properties") else: print_formatted_text(HTML("File not found. Default FACILITIES.properties will be used.")) self.setParam("mas_ws_facilities_custom_properties", "false") diff --git a/tekton/src/pipelines/taskdefs/apps/facilities-app.yml.j2 b/tekton/src/pipelines/taskdefs/apps/facilities-app.yml.j2 index 71d989ec03e..654966fa892 100644 --- a/tekton/src/pipelines/taskdefs/apps/facilities-app.yml.j2 +++ b/tekton/src/pipelines/taskdefs/apps/facilities-app.yml.j2 @@ -61,8 +61,10 @@ workspace: shared-configs - name: pod-templates workspace: shared-pod-templates +{% if mas_ws_facilities_custom_properties is defined and mas_ws_facilities_custom_properties == 'true' %} - name: facilities workspace: shared-facilities-properties +{% endif %} when: - input: "$(params.mas_app_channel_facilities)" operator: notin From dd003301b0a0d4f0af227ba528ab5628d9237be0 Mon Sep 17 00:00:00 2001 From: Shyam Doshi Date: Fri, 29 May 2026 11:19:04 +0530 Subject: [PATCH 13/21] [patch] Refactor the code --- python/src/mas/cli/install/app.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/python/src/mas/cli/install/app.py b/python/src/mas/cli/install/app.py index de1aca0914c..995404794c7 100644 --- a/python/src/mas/cli/install/app.py +++ b/python/src/mas/cli/install/app.py @@ -1561,8 +1561,7 @@ def facilitiesSettings(self) -> None: # Prompt for custom secret name if self.yesOrNo("Specify a custom name for the secret"): - customSecretName = self.promptForString( - "Specify the custom secret name", "mas_ws_facilities_properties_secret_name") + customSecretName = self.promptForString("Specify the custom secret name", "mas_ws_facilities_properties_secret_name") if customSecretName and customSecretName != "": self.setParam("mas_ws_facilities_properties_secret_name", customSecretName) else: From 813711d991d1eee6a0953150c28fc764105cfab4 Mon Sep 17 00:00:00 2001 From: Shyam Doshi Date: Fri, 29 May 2026 14:00:45 +0530 Subject: [PATCH 14/21] [patch] Added custom property flag in non-interactive mode --- python/src/mas/cli/install/settings/additionalConfigs.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/python/src/mas/cli/install/settings/additionalConfigs.py b/python/src/mas/cli/install/settings/additionalConfigs.py index 8a951d4fb68..991653d9260 100644 --- a/python/src/mas/cli/install/settings/additionalConfigs.py +++ b/python/src/mas/cli/install/settings/additionalConfigs.py @@ -233,11 +233,14 @@ def facilitiesPropertiesFile(self) -> None: secretName = "facilities-properties" facilitiesPropertiesSecret = {"apiVersion": "v1", "kind": "Secret", "type": "Opaque", "metadata": {"name": "pipeline-facilities-properties"}} + # Set the flag to indicate custom properties are provided + self.setParam("mas_ws_facilities_custom_properties", "true") # Set the path in workspace where Ansible will find the file self.setParam("mas_ws_facilities_properties_file_local", "/workspace/facilities/FACILITIES.properties") self.setParam("mas_ws_facilities_properties_secret_name", secretName) self.facilitiesPropertiesSecret = self.addFilesToSecret(facilitiesPropertiesSecret, facilitiesPropertiesFileLocal, "") else: + self.setParam("mas_ws_facilities_custom_properties", "false") self.setParam("mas_ws_facilities_properties_file_local", "") self.setParam("mas_ws_facilities_properties_secret_name", "") From a062c0db38ecd8564807e50048024400b0423fec Mon Sep 17 00:00:00 2001 From: Shyam Doshi Date: Fri, 29 May 2026 14:46:42 +0530 Subject: [PATCH 15/21] [patch] Made change in reading the file before changing the value --- python/src/mas/cli/install/settings/additionalConfigs.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/python/src/mas/cli/install/settings/additionalConfigs.py b/python/src/mas/cli/install/settings/additionalConfigs.py index 991653d9260..f051d38c2c5 100644 --- a/python/src/mas/cli/install/settings/additionalConfigs.py +++ b/python/src/mas/cli/install/settings/additionalConfigs.py @@ -233,12 +233,14 @@ def facilitiesPropertiesFile(self) -> None: secretName = "facilities-properties" facilitiesPropertiesSecret = {"apiVersion": "v1", "kind": "Secret", "type": "Opaque", "metadata": {"name": "pipeline-facilities-properties"}} - # Set the flag to indicate custom properties are provided + + # Read the file from user's local path + self.facilitiesPropertiesSecret = self.addFilesToSecret(facilitiesPropertiesSecret, facilitiesPropertiesFileLocal, "") + + # Now update the parameters self.setParam("mas_ws_facilities_custom_properties", "true") - # Set the path in workspace where Ansible will find the file self.setParam("mas_ws_facilities_properties_file_local", "/workspace/facilities/FACILITIES.properties") self.setParam("mas_ws_facilities_properties_secret_name", secretName) - self.facilitiesPropertiesSecret = self.addFilesToSecret(facilitiesPropertiesSecret, facilitiesPropertiesFileLocal, "") else: self.setParam("mas_ws_facilities_custom_properties", "false") self.setParam("mas_ws_facilities_properties_file_local", "") From 5851dfb2da2c8597045f5352d488875f51d1a664 Mon Sep 17 00:00:00 2001 From: Shyam Doshi Date: Fri, 29 May 2026 16:53:09 +0530 Subject: [PATCH 16/21] [patch] Added facilities custom flags in suite-app-install --- tekton/src/tasks/suite-app-install.yml.j2 | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/tekton/src/tasks/suite-app-install.yml.j2 b/tekton/src/tasks/suite-app-install.yml.j2 index 9a822ba61ab..4a08b4a97a1 100644 --- a/tekton/src/tasks/suite-app-install.yml.j2 +++ b/tekton/src/tasks/suite-app-install.yml.j2 @@ -353,6 +353,18 @@ spec: type: string description: ConfigMap with configurations not supported by Tekton default: "" + - name: mas_ws_facilities_custom_properties + type: string + description: Flag indicating if custom FACILITIES.properties file is provided + default: "" + - name: mas_ws_facilities_properties_file_local + type: string + description: Local path to custom FACILITIES.properties file in workspace + default: "" + - name: mas_ws_facilities_properties_secret_name + type: string + description: Name of the secret containing custom FACILITIES.properties + default: "" stepTemplate: image: quay.io/ibmmas/cli:latest @@ -572,6 +584,12 @@ spec: value: $(params.mas_ws_facilities_config_map_name) - name: MAS_FACILITIES_APP_OM_UPGRADE_MODE value: $(params.mas_ws_facilities_app_om_upgrade_mode) + - name: MAS_WS_FACILITIES_CUSTOM_PROPERTIES + value: $(params.mas_ws_facilities_custom_properties) + - name: MAS_WS_FACILITIES_PROPERTIES_FILE_LOCAL + value: $(params.mas_ws_facilities_properties_file_local) + - name: MAS_WS_FACILITIES_PROPERTIES_SECRET_NAME + value: $(params.mas_ws_facilities_properties_secret_name) - name: app-wait-for-approval # If configmap/approval-app-cfg-$(params.mas_app_id) exists then set STATUS=pending and wait for it to be changed to "approved" @@ -609,3 +627,5 @@ spec: - name: configs - name: pod-templates optional: true + - name: facilities + optional: true From 49c68157507cca6840de570bac8fea8ddc6009cd Mon Sep 17 00:00:00 2001 From: Shyam Doshi Date: Fri, 29 May 2026 17:43:26 +0530 Subject: [PATCH 17/21] [patch] Change env name --- tekton/src/tasks/suite-app-install.yml.j2 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tekton/src/tasks/suite-app-install.yml.j2 b/tekton/src/tasks/suite-app-install.yml.j2 index 4a08b4a97a1..f4cfa6c6abb 100644 --- a/tekton/src/tasks/suite-app-install.yml.j2 +++ b/tekton/src/tasks/suite-app-install.yml.j2 @@ -584,11 +584,11 @@ spec: value: $(params.mas_ws_facilities_config_map_name) - name: MAS_FACILITIES_APP_OM_UPGRADE_MODE value: $(params.mas_ws_facilities_app_om_upgrade_mode) - - name: MAS_WS_FACILITIES_CUSTOM_PROPERTIES + - name: MAS_FACILITIES_CUSTOM_PROPERTIES value: $(params.mas_ws_facilities_custom_properties) - - name: MAS_WS_FACILITIES_PROPERTIES_FILE_LOCAL + - name: MAS_FACILITIES_PROPERTIES_FILE_LOCAL value: $(params.mas_ws_facilities_properties_file_local) - - name: MAS_WS_FACILITIES_PROPERTIES_SECRET_NAME + - name: MAS_FACILITIES_PROPERTIES_SECRET_NAME value: $(params.mas_ws_facilities_properties_secret_name) - name: app-wait-for-approval From 829aeabe02b65d8111970d9b4b9add804cd9c7c4 Mon Sep 17 00:00:00 2001 From: Shyam Doshi Date: Fri, 29 May 2026 18:33:16 +0530 Subject: [PATCH 18/21] [patch] Remove the mount condition --- tekton/src/pipelines/taskdefs/apps/facilities-app.yml.j2 | 2 -- 1 file changed, 2 deletions(-) diff --git a/tekton/src/pipelines/taskdefs/apps/facilities-app.yml.j2 b/tekton/src/pipelines/taskdefs/apps/facilities-app.yml.j2 index 654966fa892..71d989ec03e 100644 --- a/tekton/src/pipelines/taskdefs/apps/facilities-app.yml.j2 +++ b/tekton/src/pipelines/taskdefs/apps/facilities-app.yml.j2 @@ -61,10 +61,8 @@ workspace: shared-configs - name: pod-templates workspace: shared-pod-templates -{% if mas_ws_facilities_custom_properties is defined and mas_ws_facilities_custom_properties == 'true' %} - name: facilities workspace: shared-facilities-properties -{% endif %} when: - input: "$(params.mas_app_channel_facilities)" operator: notin From c649b5faf1063e974e5f7f160a610fa9693d50cc Mon Sep 17 00:00:00 2001 From: Shyam Doshi Date: Mon, 1 Jun 2026 11:52:24 +0530 Subject: [PATCH 19/21] [patch] Remove default values --- python/src/mas/cli/install/argParser.py | 2 +- python/src/mas/cli/install/settings/additionalConfigs.py | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/python/src/mas/cli/install/argParser.py b/python/src/mas/cli/install/argParser.py index 726ed92cb8c..f42fbe13eea 100644 --- a/python/src/mas/cli/install/argParser.py +++ b/python/src/mas/cli/install/argParser.py @@ -829,7 +829,7 @@ def isValidFile(parser: argparse.ArgumentParser, arg: str) -> str: dest="mas_ws_facilities_properties_secret_name", required=False, help="Custom name for the Facilities properties secret (default: facilities-properties)", - default="facilities-properties", + default="", ) # Open Data Hub diff --git a/python/src/mas/cli/install/settings/additionalConfigs.py b/python/src/mas/cli/install/settings/additionalConfigs.py index f051d38c2c5..52500ad9299 100644 --- a/python/src/mas/cli/install/settings/additionalConfigs.py +++ b/python/src/mas/cli/install/settings/additionalConfigs.py @@ -227,10 +227,8 @@ def facilitiesPropertiesFile(self) -> None: facilitiesPropertiesFileLocal = self.getParam("mas_ws_facilities_properties_file_local") if facilitiesPropertiesFileLocal and facilitiesPropertiesFileLocal != "": - # Get custom secret name or use default + # Get custom secret name secretName = self.getParam("mas_ws_facilities_properties_secret_name") - if not secretName or secretName == "": - secretName = "facilities-properties" facilitiesPropertiesSecret = {"apiVersion": "v1", "kind": "Secret", "type": "Opaque", "metadata": {"name": "pipeline-facilities-properties"}} From 35ecbc8d2ec20a5cf23c76ea7ea877c267b3132d Mon Sep 17 00:00:00 2001 From: Shyam Doshi Date: Mon, 1 Jun 2026 12:04:14 +0530 Subject: [PATCH 20/21] [patch] Made Change for default secret name --- python/src/mas/cli/install/app.py | 14 +++++++++----- python/src/mas/cli/install/argParser.py | 2 +- .../mas/cli/install/settings/additionalConfigs.py | 4 +++- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/python/src/mas/cli/install/app.py b/python/src/mas/cli/install/app.py index 98cacb9ab91..c2aea558948 100644 --- a/python/src/mas/cli/install/app.py +++ b/python/src/mas/cli/install/app.py @@ -1557,11 +1557,15 @@ def facilitiesSettings(self) -> None: self.setParam("mas_ws_facilities_properties_file_local", facilitiesPropertiesFile) self.setParam("mas_ws_facilities_custom_properties", "true") - # Prompt for custom secret name - if self.yesOrNo("Specify a custom name for the secret"): - customSecretName = self.promptForString("Specify the custom secret name", "mas_ws_facilities_properties_secret_name") - if customSecretName and customSecretName != "": - self.setParam("mas_ws_facilities_properties_secret_name", customSecretName) + # Prompt for custom secret name (optional, with default) + customSecretName = self.promptForString( + "Specify the custom secret name", + "mas_ws_facilities_properties_secret_name" + ) + # Use default if not provided + if not customSecretName or customSecretName.strip() == "": + customSecretName = "custom-facilities-properties" + self.setParam("mas_ws_facilities_properties_secret_name", customSecretName) else: print_formatted_text(HTML("File not found. Default FACILITIES.properties will be used.")) self.setParam("mas_ws_facilities_custom_properties", "false") diff --git a/python/src/mas/cli/install/argParser.py b/python/src/mas/cli/install/argParser.py index f42fbe13eea..78470636be5 100644 --- a/python/src/mas/cli/install/argParser.py +++ b/python/src/mas/cli/install/argParser.py @@ -829,7 +829,7 @@ def isValidFile(parser: argparse.ArgumentParser, arg: str) -> str: dest="mas_ws_facilities_properties_secret_name", required=False, help="Custom name for the Facilities properties secret (default: facilities-properties)", - default="", + default="custom-facilities-properties", ) # Open Data Hub diff --git a/python/src/mas/cli/install/settings/additionalConfigs.py b/python/src/mas/cli/install/settings/additionalConfigs.py index 52500ad9299..5178d560cf3 100644 --- a/python/src/mas/cli/install/settings/additionalConfigs.py +++ b/python/src/mas/cli/install/settings/additionalConfigs.py @@ -227,8 +227,10 @@ def facilitiesPropertiesFile(self) -> None: facilitiesPropertiesFileLocal = self.getParam("mas_ws_facilities_properties_file_local") if facilitiesPropertiesFileLocal and facilitiesPropertiesFileLocal != "": - # Get custom secret name + # Get custom secret name or use default secretName = self.getParam("mas_ws_facilities_properties_secret_name") + if not secretName or secretName == "": + secretName = "custom-facilities-properties" facilitiesPropertiesSecret = {"apiVersion": "v1", "kind": "Secret", "type": "Opaque", "metadata": {"name": "pipeline-facilities-properties"}} From 99c829575aeaa9f6fb40136ad3714295373ee0a3 Mon Sep 17 00:00:00 2001 From: Shyam Doshi Date: Mon, 1 Jun 2026 12:08:59 +0530 Subject: [PATCH 21/21] [patch] Refactor the code --- python/src/mas/cli/install/app.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/python/src/mas/cli/install/app.py b/python/src/mas/cli/install/app.py index c2aea558948..b1fa38929c1 100644 --- a/python/src/mas/cli/install/app.py +++ b/python/src/mas/cli/install/app.py @@ -1558,10 +1558,7 @@ def facilitiesSettings(self) -> None: self.setParam("mas_ws_facilities_custom_properties", "true") # Prompt for custom secret name (optional, with default) - customSecretName = self.promptForString( - "Specify the custom secret name", - "mas_ws_facilities_properties_secret_name" - ) + customSecretName = self.promptForString("Specify the custom secret name", "mas_ws_facilities_properties_secret_name") # Use default if not provided if not customSecretName or customSecretName.strip() == "": customSecretName = "custom-facilities-properties"