diff --git a/image/cli/install/mas_devops.tar.gz b/image/cli/install/mas_devops.tar.gz new file mode 100644 index 0000000000..dde5a2bf96 Binary files /dev/null and b/image/cli/install/mas_devops.tar.gz differ diff --git a/python/src/mas/cli/aiservice/install/app.py b/python/src/mas/cli/aiservice/install/app.py index 4fb9b68ac7..771a688fca 100644 --- a/python/src/mas/cli/aiservice/install/app.py +++ b/python/src/mas/cli/aiservice/install/app.py @@ -573,6 +573,9 @@ def aibrokerSettings(self) -> None: self.promptForString("DB2 JDBC URL", "mas_aibroker_db2_jdbc_url") self.promptForString("DB2 SSL enabled (yes/no)", "mas_aibroker_db2_ssl_enabled") self.promptForString("DB2 CA certificate", "mas_aibroker_db2_ca_cert") + self.yesOrNo("Want to use Externa Route", "mas_aibroker_is_external_route") + if self.getParam("mas_aibroker_is_external_route") == "true": + self.promptForString("Provide External Route", "mas_aibroker_cluster_domain") # self.promptForString("Environment type", "environment_type") # These are all candidates to centralise in a new mixin used by both install and aiservice-install diff --git a/python/src/mas/cli/aiservice/install/argBuilder.py b/python/src/mas/cli/aiservice/install/argBuilder.py index 58be166cf5..ca506e1a9c 100644 --- a/python/src/mas/cli/aiservice/install/argBuilder.py +++ b/python/src/mas/cli/aiservice/install/argBuilder.py @@ -241,6 +241,10 @@ def buildCommand(self) -> str: command += f" --rsl-org-id \"{self.getParam('rsl_org_id')}\"{newline}" if self.getParam('rsl_token') != "": command += f" --rsl-token \"{self.getParam('rsl_token')}\"{newline}" + if self.getParam('mas_aibroker_is_external_route') == 'true': + command += f" --mas-aibroker-is-external-route \"{self.getParam('mas_aibroker_is_external_route')}\"{newline}" + if self.getParam('mas_aibroker_cluster_domain') != "": + command += f" --mas-aibroker-cluster-domain \"{self.getParam('mas_aibroker_cluster_domain')}\"{newline}" command += " --accept-license --no-confirm" return command diff --git a/python/src/mas/cli/aiservice/install/argParser.py b/python/src/mas/cli/aiservice/install/argParser.py index f01f9a76bb..9e22444b4c 100644 --- a/python/src/mas/cli/aiservice/install/argParser.py +++ b/python/src/mas/cli/aiservice/install/argParser.py @@ -527,6 +527,20 @@ def isValidFile(parser, arg) -> str: default="non-production", help="Environment type (default: non-production)" ) + +aibrokerArgGroup.add_argument( + "--mas-aibroker-cluster-domain", + dest="mas_aibroker_cluster_domain", + required=False, + help="External Domain" +) +aibrokerArgGroup.add_argument( + "--mas-aibroker-is-external-route", + dest="mas_aibroker_is_external_route", + required=False, + help="Flag for either using external route or not" +) + # IBM Db2 Universal Operator # ----------------------------------------------------------------------------- db2ArgGroup = aiServiceinstallArgParser.add_argument_group("IBM Db2 Universal Operator") diff --git a/python/src/mas/cli/aiservice/install/params.py b/python/src/mas/cli/aiservice/install/params.py index 93b463d141..96d525bfdf 100644 --- a/python/src/mas/cli/aiservice/install/params.py +++ b/python/src/mas/cli/aiservice/install/params.py @@ -117,4 +117,6 @@ "mas_aibroker_sls_url", "mas_aibroker_sls_ca_cert", "environment_type", + "mas_aibroker_is_external_route", + "mas_aibroker_cluster_domain", ] diff --git a/python/src/mas/cli/aiservice/install/summarizer.py b/python/src/mas/cli/aiservice/install/summarizer.py index da55b0b466..59428b9a5c 100644 --- a/python/src/mas/cli/aiservice/install/summarizer.py +++ b/python/src/mas/cli/aiservice/install/summarizer.py @@ -107,6 +107,9 @@ def aibrokerSummary(self) -> None: self.printParamSummary(" + DB2 JDBC URL", "mas_aibroker_db2_jdbc_url") self.printParamSummary(" + DB2 SSL enabled", "mas_aibroker_db2_ssl_enabled") self.printParamSummary(" + Environment type", "environment_type") + self.printParamSummary(" + Is External Route?", "mas_aibroker_is_external_route") + if self.getParam("mas_aibroker_cluster_domain") != "": + self.printParamSummary(" + External Domain", "mas_aibroker_cluster_domain") else: self.printSummary("AI Broker", "Do Not Install") diff --git a/tekton/src/params/install-aiservice.yml.j2 b/tekton/src/params/install-aiservice.yml.j2 index b8fd7d42c3..16e74ab826 100644 --- a/tekton/src/params/install-aiservice.yml.j2 +++ b/tekton/src/params/install-aiservice.yml.j2 @@ -273,3 +273,11 @@ type: string description: Environment type default: "" +- name: mas_aibroker_is_external_route + type: string + description: Flag for either using external route or not + default: "false" +- name: mas_aibroker_cluster_domain + type: string + description: External domain + default: "" diff --git a/tekton/src/tasks/aiservice/aiservice.yml.j2 b/tekton/src/tasks/aiservice/aiservice.yml.j2 index 3fd20e4532..e0c4bfc7dd 100644 --- a/tekton/src/tasks/aiservice/aiservice.yml.j2 +++ b/tekton/src/tasks/aiservice/aiservice.yml.j2 @@ -208,6 +208,14 @@ spec: type: string description: Environment type default: "" + - name: mas_aibroker_is_external_route + type: string + description: Flag for either using external route or not + default: "false" + - name: mas_aibroker_cluster_domain + type: string + description: External domain + default: "" stepTemplate: env: @@ -345,6 +353,12 @@ spec: - name: ENVIRONMENT_TYPE value: $(params.environment_type) + # Custom domain + - name: MAS_AIBROKER_IS_EXTERNAL_ROUTE + value: $(params.mas_aibroker_is_external_route) + - name: MAS_AIBROKER_CLUSTER_DOMAIN + value: $(params.mas_aibroker_cluster_domain) + steps: - name: aibroker command: