mas-cli 11.5.0__py3-none-any.whl → 11.6.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of mas-cli might be problematic. Click here for more details.
- mas/cli/__init__.py +1 -1
- mas/cli/cli.py +3 -2
- mas/cli/install/app.py +66 -16
- mas/cli/install/argBuilder.py +12 -2
- mas/cli/install/argParser.py +191 -1
- mas/cli/install/settings/additionalConfigs.py +10 -10
- mas/cli/install/settings/manageSettings.py +24 -0
- mas/cli/install/summarizer.py +30 -3
- mas/cli/templates/ibm-mas-tekton.yaml +1252 -129
- {mas_cli-11.5.0.dist-info → mas_cli-11.6.0.dist-info}/METADATA +2 -2
- {mas_cli-11.5.0.dist-info → mas_cli-11.6.0.dist-info}/RECORD +14 -14
- {mas_cli-11.5.0.dist-info → mas_cli-11.6.0.dist-info}/WHEEL +1 -1
- {mas_cli-11.5.0.data → mas_cli-11.6.0.data}/scripts/mas-cli +0 -0
- {mas_cli-11.5.0.dist-info → mas_cli-11.6.0.dist-info}/top_level.txt +0 -0
mas/cli/__init__.py
CHANGED
mas/cli/cli.py
CHANGED
|
@@ -107,7 +107,7 @@ class BaseApp(PrintMixin, PromptMixin):
|
|
|
107
107
|
rootLogger.setLevel(logging.DEBUG)
|
|
108
108
|
|
|
109
109
|
# Supports extended semver, unlike mas.cli.__version__
|
|
110
|
-
self.version = "11.
|
|
110
|
+
self.version = "11.6.0"
|
|
111
111
|
self.h1count = 0
|
|
112
112
|
self.h2count = 0
|
|
113
113
|
|
|
@@ -137,7 +137,8 @@ class BaseApp(PrintMixin, PromptMixin):
|
|
|
137
137
|
"monitor": ["9.0.x", "8.11.x"],
|
|
138
138
|
"optimizer": ["9.0.x", "8.5.x"],
|
|
139
139
|
"predict": ["9.0.x", "8.9.x"],
|
|
140
|
-
"visualinspection": ["9.0.x", "8.9.x"]
|
|
140
|
+
"visualinspection": ["9.0.x", "8.9.x"],
|
|
141
|
+
"aibroker": ["9.0.x"]
|
|
141
142
|
},
|
|
142
143
|
"8.11.x": {
|
|
143
144
|
"assist": ["8.8.x", "8.7.x"],
|
mas/cli/install/app.py
CHANGED
|
@@ -341,7 +341,8 @@ class InstallApp(BaseApp, InstallSettingsMixin, InstallSummarizerMixin, ConfigGe
|
|
|
341
341
|
self.setParam("mas_manual_cert_mgmt", self.manualCerts)
|
|
342
342
|
if self.getParam("mas_manual_cert_mgmt"):
|
|
343
343
|
self.manualCertsDir = self.promptForDir("Enter the path containing the manual certificates", mustExist=True)
|
|
344
|
-
|
|
344
|
+
else:
|
|
345
|
+
self.manualCertsDir = None
|
|
345
346
|
|
|
346
347
|
def configDNSAndCertsCloudflare(self):
|
|
347
348
|
# User has chosen to set up DNS integration with Cloudflare
|
|
@@ -453,6 +454,10 @@ class InstallApp(BaseApp, InstallSettingsMixin, InstallSummarizerMixin, ConfigGe
|
|
|
453
454
|
if self.installInspection:
|
|
454
455
|
self.configAppChannel("visualinspection")
|
|
455
456
|
|
|
457
|
+
self.installAiBroker = self.yesOrNo("Install AI Broker")
|
|
458
|
+
if self.installAiBroker:
|
|
459
|
+
self.configAppChannel("aibroker")
|
|
460
|
+
|
|
456
461
|
def configAppChannel(self, appId):
|
|
457
462
|
versions = self.getCompatibleVersions(self.params["mas_channel"], appId)
|
|
458
463
|
if len(versions) == 0:
|
|
@@ -568,7 +573,7 @@ class InstallApp(BaseApp, InstallSettingsMixin, InstallSummarizerMixin, ConfigGe
|
|
|
568
573
|
self.promptForString("COS Provider [ibm/ocs]", "cos_type")
|
|
569
574
|
if self.getParam("cos_type") == "ibm":
|
|
570
575
|
self.promptForString("IBM Cloud API Key", "ibmcloud_apikey", isPassword=True)
|
|
571
|
-
self.promptForString("IBM Cloud Resource Group", "
|
|
576
|
+
self.promptForString("IBM Cloud Resource Group", "ibmcos_resourcegroup")
|
|
572
577
|
|
|
573
578
|
def interactiveMode(self) -> None:
|
|
574
579
|
# Interactive mode
|
|
@@ -600,6 +605,7 @@ class InstallApp(BaseApp, InstallSettingsMixin, InstallSummarizerMixin, ConfigGe
|
|
|
600
605
|
self.optimizerSettings()
|
|
601
606
|
self.predictSettings()
|
|
602
607
|
self.assistSettings()
|
|
608
|
+
self.aibrokerSettings()
|
|
603
609
|
|
|
604
610
|
# Dependencies
|
|
605
611
|
self.configMongoDb() # Will only do anything if IoT or Manage have been selected for install
|
|
@@ -625,6 +631,7 @@ class InstallApp(BaseApp, InstallSettingsMixin, InstallSummarizerMixin, ConfigGe
|
|
|
625
631
|
self.installPredict = False
|
|
626
632
|
self.installInspection = False
|
|
627
633
|
self.installOptimizer = False
|
|
634
|
+
self.installAiBroker = False
|
|
628
635
|
self.deployCP4D = False
|
|
629
636
|
self.db2SetAffinity = False
|
|
630
637
|
self.db2SetTolerations = False
|
|
@@ -660,6 +667,10 @@ class InstallApp(BaseApp, InstallSettingsMixin, InstallSummarizerMixin, ConfigGe
|
|
|
660
667
|
"uds_contact_lastname"
|
|
661
668
|
]
|
|
662
669
|
optionalParams = [
|
|
670
|
+
# Pipeline
|
|
671
|
+
"image_pull_policy",
|
|
672
|
+
# OpenShift
|
|
673
|
+
"ocp_ingress_tls_secret_name",
|
|
663
674
|
# MAS
|
|
664
675
|
"mas_catalog_digest",
|
|
665
676
|
"mas_superuser_username",
|
|
@@ -668,9 +679,7 @@ class InstallApp(BaseApp, InstallSettingsMixin, InstallSummarizerMixin, ConfigGe
|
|
|
668
679
|
"mas_app_settings_server_bundles_size",
|
|
669
680
|
"mas_app_settings_default_jms",
|
|
670
681
|
"mas_app_settings_persistent_volumes_flag",
|
|
671
|
-
"mas_appws_bindings_jdbc_manage",
|
|
672
682
|
"mas_app_settings_demodata",
|
|
673
|
-
"mas_appws_components",
|
|
674
683
|
"mas_app_settings_customization_archive_name",
|
|
675
684
|
"mas_app_settings_customization_archive_url",
|
|
676
685
|
"mas_app_settings_customization_archive_username",
|
|
@@ -686,7 +695,16 @@ class InstallApp(BaseApp, InstallSettingsMixin, InstallSummarizerMixin, ConfigGe
|
|
|
686
695
|
"mas_app_settings_base_lang",
|
|
687
696
|
"mas_app_settings_secondary_langs",
|
|
688
697
|
"mas_app_settings_server_timezone",
|
|
689
|
-
"
|
|
698
|
+
"mas_appws_bindings_jdbc_manage",
|
|
699
|
+
"mas_appws_components",
|
|
700
|
+
"mas_domain",
|
|
701
|
+
# DNS Providers
|
|
702
|
+
# TODO: Add CloudFlare and Route53 support
|
|
703
|
+
"dns_provider",
|
|
704
|
+
"cis_email",
|
|
705
|
+
"cis_apikey",
|
|
706
|
+
"cis_crn",
|
|
707
|
+
"cis_subdomain",
|
|
690
708
|
# DRO
|
|
691
709
|
"dro_namespace",
|
|
692
710
|
# MongoDb
|
|
@@ -733,7 +751,7 @@ class InstallApp(BaseApp, InstallSettingsMixin, InstallSummarizerMixin, ConfigGe
|
|
|
733
751
|
"eventstreams_instance_location",
|
|
734
752
|
# COS
|
|
735
753
|
"cos_type",
|
|
736
|
-
"
|
|
754
|
+
"ibmcos_resourcegroup",
|
|
737
755
|
# ECK
|
|
738
756
|
"eck_action",
|
|
739
757
|
"eck_enable_logstash",
|
|
@@ -760,6 +778,29 @@ class InstallApp(BaseApp, InstallSettingsMixin, InstallSummarizerMixin, ConfigGe
|
|
|
760
778
|
"mas_arcgis_channel",
|
|
761
779
|
# Guided Tour
|
|
762
780
|
"mas_enable_walkme",
|
|
781
|
+
# Aibroker
|
|
782
|
+
"mas_aibroker_storage_provider",
|
|
783
|
+
"mas_aibroker_storage_accesskey",
|
|
784
|
+
"mas_aibroker_storage_secretkey",
|
|
785
|
+
"mas_aibroker_storage_host",
|
|
786
|
+
"mas_aibroker_storage_port",
|
|
787
|
+
"mas_aibroker_storage_ssl",
|
|
788
|
+
"mas_aibroker_storage_region",
|
|
789
|
+
"mas_aibroker_storage_pipelines_bucket",
|
|
790
|
+
"mas_aibroker_storage_tenants_bucket",
|
|
791
|
+
"mas_aibroker_storage_templates_bucket",
|
|
792
|
+
"mas_aibroker_tenant_name",
|
|
793
|
+
"mas_aibroker_watsonxai_apikey",
|
|
794
|
+
"mas_aibroker_watsonxai_url",
|
|
795
|
+
"mas_aibroker_watsonxai_project_id",
|
|
796
|
+
"mas_aibroker_watsonx_action",
|
|
797
|
+
"mas_aibroker_db_host",
|
|
798
|
+
"mas_aibroker_db_port",
|
|
799
|
+
"mas_aibroker_db_user",
|
|
800
|
+
"mas_aibroker_db_database",
|
|
801
|
+
"mas_aibroker_db_secret_name",
|
|
802
|
+
"mas_aibroker_db_secret_key",
|
|
803
|
+
"mas_aibroker_db_secret_value",
|
|
763
804
|
# Special chars
|
|
764
805
|
"mas_special_characters"
|
|
765
806
|
]
|
|
@@ -808,37 +849,44 @@ class InstallApp(BaseApp, InstallSettingsMixin, InstallSummarizerMixin, ConfigGe
|
|
|
808
849
|
else:
|
|
809
850
|
self.setParam("mas_pod_templates_dir", value)
|
|
810
851
|
|
|
852
|
+
# We check for both None and "" values for the application channel parameters
|
|
853
|
+
# value = None means the parameter wasn't set at all
|
|
854
|
+
# value = "" means the paramerter was explicitly set to "don't install this application"
|
|
811
855
|
elif key == "assist_channel":
|
|
812
|
-
if value is not None:
|
|
856
|
+
if value is not None and value != "":
|
|
813
857
|
self.setParam("mas_app_channel_assist", value)
|
|
814
858
|
self.installAssist = True
|
|
815
859
|
elif key == "iot_channel":
|
|
816
|
-
if value is not None:
|
|
860
|
+
if value is not None and value != "":
|
|
817
861
|
self.setParam("mas_app_channel_iot", value)
|
|
818
862
|
self.installIoT = True
|
|
819
863
|
elif key == "monitor_channel":
|
|
820
|
-
if value is not None:
|
|
864
|
+
if value is not None and value != "":
|
|
821
865
|
self.setParam("mas_app_channel_monitor", value)
|
|
822
866
|
self.installMonitor = True
|
|
823
867
|
elif key == "manage_channel":
|
|
824
|
-
if value is not None:
|
|
868
|
+
if value is not None and value != "":
|
|
825
869
|
self.setParam("mas_app_channel_manage", value)
|
|
826
870
|
self.installManage = True
|
|
827
871
|
elif key == "predict_channel":
|
|
828
|
-
if value is not None:
|
|
872
|
+
if value is not None and value != "":
|
|
829
873
|
self.setParam("mas_app_channel_predict", value)
|
|
830
874
|
self.installPredict = True
|
|
831
875
|
self.deployCP4D = True
|
|
832
876
|
elif key == "visualinspection_channel":
|
|
833
|
-
if value is not None:
|
|
877
|
+
if value is not None and value != "":
|
|
834
878
|
self.setParam("mas_app_channel_visualinspection", value)
|
|
835
879
|
self.installInspection = True
|
|
880
|
+
elif key == "aibroker_channel":
|
|
881
|
+
if value is not None and value != "":
|
|
882
|
+
self.setParam("mas_app_channel_aibroker", value)
|
|
883
|
+
self.installAiBroker = True
|
|
836
884
|
elif key == "optimizer_channel":
|
|
837
|
-
if value is not None:
|
|
885
|
+
if value is not None and value != "":
|
|
838
886
|
self.setParam("mas_app_channel_optimizer", value)
|
|
839
887
|
self.installOptimizer = True
|
|
840
888
|
elif key == "optimizer_plan":
|
|
841
|
-
if value is not None:
|
|
889
|
+
if value is not None and value != "":
|
|
842
890
|
self.setParam("mas_app_plan_optimizer", value)
|
|
843
891
|
|
|
844
892
|
# Manage advanced settings that need extra processing
|
|
@@ -886,9 +934,10 @@ class InstallApp(BaseApp, InstallSettingsMixin, InstallSummarizerMixin, ConfigGe
|
|
|
886
934
|
elif key == "manual_certificates":
|
|
887
935
|
if value is not None:
|
|
888
936
|
self.setParam("mas_manual_cert_mgmt", True)
|
|
889
|
-
self.
|
|
937
|
+
self.manualCertsDir = value
|
|
890
938
|
else:
|
|
891
939
|
self.setParam("mas_manual_cert_mgmt", False)
|
|
940
|
+
self.manualCertsDir = None
|
|
892
941
|
|
|
893
942
|
# Fail if there's any arguments we don't know how to handle
|
|
894
943
|
else:
|
|
@@ -938,7 +987,8 @@ class InstallApp(BaseApp, InstallSettingsMixin, InstallSummarizerMixin, ConfigGe
|
|
|
938
987
|
"monitor": "9.0.3",
|
|
939
988
|
"optimizer": "9.0.3",
|
|
940
989
|
"predict": "9.0.2",
|
|
941
|
-
"inspection": "9.0.3"
|
|
990
|
+
"inspection": "9.0.3",
|
|
991
|
+
"aibroker": "9.0.2"
|
|
942
992
|
},
|
|
943
993
|
{
|
|
944
994
|
"#": 2,
|
mas/cli/install/argBuilder.py
CHANGED
|
@@ -96,7 +96,15 @@ class installArgBuilderMixin():
|
|
|
96
96
|
command += f" --disable-ca-trust{newline}"
|
|
97
97
|
|
|
98
98
|
if self.getParam('mas_manual_cert_mgmt') is True:
|
|
99
|
-
command += f" --manual-certificates \"{self.
|
|
99
|
+
command += f" --manual-certificates \"{self.manualCertsDir}\"{newline}"
|
|
100
|
+
|
|
101
|
+
if self.getParam('mas_domain') is True:
|
|
102
|
+
command += f" --domain \"{self.getParam('mas_domain')}\"{newline}"
|
|
103
|
+
|
|
104
|
+
if self.getParam('--dns-provider') == "cis":
|
|
105
|
+
command += f" --dns-provider cis --cis-apikey \"{self.getParam('cis_apikey')}"
|
|
106
|
+
command += f" --cis-subdomain \"{self.getParam('cis_subdomain')}"
|
|
107
|
+
command += f" --cis-crn \"{self.getParam('cis_crn')}\"{newline}"
|
|
100
108
|
|
|
101
109
|
if self.getParam('mas_enable_walkme') == "false":
|
|
102
110
|
command += f" --disable-walkme{newline}"
|
|
@@ -307,7 +315,7 @@ class installArgBuilderMixin():
|
|
|
307
315
|
# -----------------------------------------------------------------------------
|
|
308
316
|
if self.getParam('cos_type') != "":
|
|
309
317
|
command += f" --cos \"{self.getParam('cos_type')}\""
|
|
310
|
-
if self.getParam('
|
|
318
|
+
if self.getParam('ibmcos_resourcegroup') != "":
|
|
311
319
|
command += f" --cos-resourcegroup \"{self.getParam('cos_resourcegroup')}\""
|
|
312
320
|
command += newline
|
|
313
321
|
|
|
@@ -366,6 +374,8 @@ class installArgBuilderMixin():
|
|
|
366
374
|
command += f" --skip-pre-check{newline}"
|
|
367
375
|
if self.getParam('skip_grafana_install') is True:
|
|
368
376
|
command += f" --skip-grafana-install{newline}"
|
|
377
|
+
if self.getParam('image_pull_policy') != "":
|
|
378
|
+
command += f" --image-pull-policy {self.getParam('image_pull_policy')}{newline}"
|
|
369
379
|
|
|
370
380
|
command += " --accept-license --no-confirm"
|
|
371
381
|
return command
|
mas/cli/install/argParser.py
CHANGED
|
@@ -164,6 +164,13 @@ masAdvancedArgGroup.add_argument(
|
|
|
164
164
|
required=False,
|
|
165
165
|
help="Path to directory containing the certificates to be applied"
|
|
166
166
|
)
|
|
167
|
+
masAdvancedArgGroup.add_argument(
|
|
168
|
+
"--domain",
|
|
169
|
+
dest="mas_domain",
|
|
170
|
+
required=False,
|
|
171
|
+
help="Configure MAS with a custom domain"
|
|
172
|
+
)
|
|
173
|
+
|
|
167
174
|
masAdvancedArgGroup.add_argument(
|
|
168
175
|
"--disable-walkme",
|
|
169
176
|
dest="mas_enable_walkme",
|
|
@@ -173,6 +180,42 @@ masAdvancedArgGroup.add_argument(
|
|
|
173
180
|
const="false"
|
|
174
181
|
)
|
|
175
182
|
|
|
183
|
+
masAdvancedArgGroup.add_argument(
|
|
184
|
+
"--dns-provider",
|
|
185
|
+
dest="dns_provider",
|
|
186
|
+
required=False,
|
|
187
|
+
help="Enable Automatic DNS management (see DNS Configuration options)",
|
|
188
|
+
choices=["cloudflare", "cis", "route53"]
|
|
189
|
+
)
|
|
190
|
+
|
|
191
|
+
# DNS Configuration - IBM CIS
|
|
192
|
+
# -----------------------------------------------------------------------------
|
|
193
|
+
cisArgGroup = installArgParser.add_argument_group("DNS Configuration - CIS")
|
|
194
|
+
cisArgGroup.add_argument(
|
|
195
|
+
"--cis-email",
|
|
196
|
+
dest="cis_email",
|
|
197
|
+
required=False,
|
|
198
|
+
help="Required when DNS provider is CIS and you want to use a Let's Encrypt ClusterIssuer"
|
|
199
|
+
)
|
|
200
|
+
cisArgGroup.add_argument(
|
|
201
|
+
"--cis-apikey",
|
|
202
|
+
dest="cis_apikey",
|
|
203
|
+
required=False,
|
|
204
|
+
help="Required when DNS provider is CIS"
|
|
205
|
+
)
|
|
206
|
+
cisArgGroup.add_argument(
|
|
207
|
+
"--cis-crn",
|
|
208
|
+
dest="cis_crn",
|
|
209
|
+
required=False,
|
|
210
|
+
help="Required when DNS provider is CIS"
|
|
211
|
+
)
|
|
212
|
+
cisArgGroup.add_argument(
|
|
213
|
+
"--cis-subdomain",
|
|
214
|
+
dest="cis_subdomain",
|
|
215
|
+
required=False,
|
|
216
|
+
help="Optionally setup MAS instance as a subdomain under a multi-tenant CIS DNS record"
|
|
217
|
+
)
|
|
218
|
+
|
|
176
219
|
# Storage
|
|
177
220
|
# -----------------------------------------------------------------------------
|
|
178
221
|
storageArgGroup = installArgParser.add_argument_group("Storage")
|
|
@@ -244,7 +287,6 @@ mongoArgGroup.add_argument(
|
|
|
244
287
|
help=""
|
|
245
288
|
)
|
|
246
289
|
|
|
247
|
-
|
|
248
290
|
# OCP Configuration
|
|
249
291
|
# -----------------------------------------------------------------------------
|
|
250
292
|
ocpArgGroup = installArgParser.add_argument_group("OCP Configuration")
|
|
@@ -298,6 +340,147 @@ masAppsArgGroup.add_argument(
|
|
|
298
340
|
choices=["full", "limited"],
|
|
299
341
|
help="Install plan for Maximo Optimizer"
|
|
300
342
|
)
|
|
343
|
+
masAppsArgGroup.add_argument(
|
|
344
|
+
"--aibroker-channel",
|
|
345
|
+
required=False,
|
|
346
|
+
help="Subscription channel for Maximo Ai Broker"
|
|
347
|
+
)
|
|
348
|
+
|
|
349
|
+
# AI Broker
|
|
350
|
+
# -----------------------------------------------------------------------------
|
|
351
|
+
aibrokerArgGroup = installArgParser.add_argument_group("Maximo AI Broker")
|
|
352
|
+
aibrokerArgGroup.add_argument(
|
|
353
|
+
"--mas-aibroker-storage-provider",
|
|
354
|
+
dest="mas_aibroker_storage_provider",
|
|
355
|
+
required=False,
|
|
356
|
+
help="Customize Manage database encryption keys"
|
|
357
|
+
)
|
|
358
|
+
aibrokerArgGroup.add_argument(
|
|
359
|
+
"--mas-aibroker-storage-accesskey",
|
|
360
|
+
dest="mas_aibroker_storage_accesskey",
|
|
361
|
+
required=False,
|
|
362
|
+
help="Customize Manage database encryption keys"
|
|
363
|
+
)
|
|
364
|
+
aibrokerArgGroup.add_argument(
|
|
365
|
+
"--mas-aibroker-storage-secretkey",
|
|
366
|
+
dest="mas_aibroker_storage_secretkey",
|
|
367
|
+
required=False,
|
|
368
|
+
help="Customize Manage database encryption keys"
|
|
369
|
+
)
|
|
370
|
+
aibrokerArgGroup.add_argument(
|
|
371
|
+
"--mas-aibroker-storage-host",
|
|
372
|
+
dest="mas_aibroker_storage_host",
|
|
373
|
+
required=False,
|
|
374
|
+
help="Customize Manage database encryption keys"
|
|
375
|
+
)
|
|
376
|
+
aibrokerArgGroup.add_argument(
|
|
377
|
+
"--mas-aibroker-storage-port",
|
|
378
|
+
dest="mas_aibroker_storage_port",
|
|
379
|
+
required=False,
|
|
380
|
+
help="Customize Manage database encryption keys"
|
|
381
|
+
)
|
|
382
|
+
aibrokerArgGroup.add_argument(
|
|
383
|
+
"--mas-aibroker-storage-ssl",
|
|
384
|
+
dest="mas_aibroker_storage_ssl",
|
|
385
|
+
required=False,
|
|
386
|
+
help="Customize Manage database encryption keys"
|
|
387
|
+
)
|
|
388
|
+
aibrokerArgGroup.add_argument(
|
|
389
|
+
"--mas-aibroker-storage-region",
|
|
390
|
+
dest="mas_aibroker_storage_region",
|
|
391
|
+
required=False,
|
|
392
|
+
help="Customize Manage database encryption keys"
|
|
393
|
+
)
|
|
394
|
+
aibrokerArgGroup.add_argument(
|
|
395
|
+
"--mas-aibroker-storage-pipelines-bucket",
|
|
396
|
+
dest="mas_aibroker_storage_pipelines_bucket",
|
|
397
|
+
required=False,
|
|
398
|
+
help="Customize Manage database encryption keys"
|
|
399
|
+
)
|
|
400
|
+
aibrokerArgGroup.add_argument(
|
|
401
|
+
"--mas-aibroker-storage-tenants-bucket",
|
|
402
|
+
dest="mas_aibroker_storage_tenants_bucket",
|
|
403
|
+
required=False,
|
|
404
|
+
help="Customize Manage database encryption keys"
|
|
405
|
+
)
|
|
406
|
+
aibrokerArgGroup.add_argument(
|
|
407
|
+
"--mas-aibroker-storage-templates-bucket",
|
|
408
|
+
dest="mas_aibroker_storage_templates_bucket",
|
|
409
|
+
required=False,
|
|
410
|
+
help="Customize Manage database encryption keys"
|
|
411
|
+
)
|
|
412
|
+
aibrokerArgGroup.add_argument(
|
|
413
|
+
"--mas-aibroker-tenant-name",
|
|
414
|
+
dest="mas_aibroker_tenant_name",
|
|
415
|
+
required=False,
|
|
416
|
+
help="Customize Manage database encryption keys"
|
|
417
|
+
)
|
|
418
|
+
aibrokerArgGroup.add_argument(
|
|
419
|
+
"--mas-aibroker-watsonxai-apikey",
|
|
420
|
+
dest="mas_aibroker_watsonxai_apikey",
|
|
421
|
+
required=False,
|
|
422
|
+
help="Customize Manage database encryption keys"
|
|
423
|
+
)
|
|
424
|
+
aibrokerArgGroup.add_argument(
|
|
425
|
+
"--mas-aibroker-watsonxai-url",
|
|
426
|
+
dest="mas_aibroker_watsonxai_url",
|
|
427
|
+
required=False,
|
|
428
|
+
help="Customize Manage database encryption keys"
|
|
429
|
+
)
|
|
430
|
+
aibrokerArgGroup.add_argument(
|
|
431
|
+
"--mas-aibroker-watsonxai-project-id",
|
|
432
|
+
dest="mas_aibroker_watsonxai_project_id",
|
|
433
|
+
required=False,
|
|
434
|
+
help="Customize Manage database encryption keys"
|
|
435
|
+
)
|
|
436
|
+
aibrokerArgGroup.add_argument(
|
|
437
|
+
"--mas-aibroker-watsonx-action",
|
|
438
|
+
dest="mas_aibroker_watsonx_action",
|
|
439
|
+
required=False,
|
|
440
|
+
help="Customize Manage database encryption keys"
|
|
441
|
+
)
|
|
442
|
+
aibrokerArgGroup.add_argument(
|
|
443
|
+
"--mas-aibroker-db-host",
|
|
444
|
+
dest="mas_aibroker_db_host",
|
|
445
|
+
required=False,
|
|
446
|
+
help="Customize Manage database encryption keys"
|
|
447
|
+
)
|
|
448
|
+
aibrokerArgGroup.add_argument(
|
|
449
|
+
"--mas-aibroker-db-port",
|
|
450
|
+
dest="mas_aibroker_db_port",
|
|
451
|
+
required=False,
|
|
452
|
+
help="Customize Manage database encryption keys"
|
|
453
|
+
)
|
|
454
|
+
aibrokerArgGroup.add_argument(
|
|
455
|
+
"--mas-aibroker-db-user",
|
|
456
|
+
dest="mas_aibroker_db_user",
|
|
457
|
+
required=False,
|
|
458
|
+
help="Customize Manage database encryption keys"
|
|
459
|
+
)
|
|
460
|
+
aibrokerArgGroup.add_argument(
|
|
461
|
+
"--mas-aibroker-db-database",
|
|
462
|
+
dest="mas_aibroker_db_database",
|
|
463
|
+
required=False,
|
|
464
|
+
help="Customize Manage database encryption keys"
|
|
465
|
+
)
|
|
466
|
+
aibrokerArgGroup.add_argument(
|
|
467
|
+
"--mas-aibroker-db-secret-name",
|
|
468
|
+
dest="mas_aibroker_db_secret_name",
|
|
469
|
+
required=False,
|
|
470
|
+
help="Customize Manage database encryption keys"
|
|
471
|
+
)
|
|
472
|
+
aibrokerArgGroup.add_argument(
|
|
473
|
+
"--mas-aibroker-db-secret-key",
|
|
474
|
+
dest="mas_aibroker_db_secret_key",
|
|
475
|
+
required=False,
|
|
476
|
+
help="Customize Manage database encryption keys"
|
|
477
|
+
)
|
|
478
|
+
aibrokerArgGroup.add_argument(
|
|
479
|
+
"--mas-aibroker-db-secret-value",
|
|
480
|
+
dest="mas_aibroker_db_secret_value",
|
|
481
|
+
required=False,
|
|
482
|
+
help="Customize Manage database encryption keys"
|
|
483
|
+
)
|
|
301
484
|
|
|
302
485
|
# Arcgis
|
|
303
486
|
# -----------------------------------------------------------------------------
|
|
@@ -728,6 +911,7 @@ cosArgGroup.add_argument(
|
|
|
728
911
|
)
|
|
729
912
|
cosArgGroup.add_argument(
|
|
730
913
|
"--cos-resourcegroup",
|
|
914
|
+
dest="ibmcos_resourcegroup",
|
|
731
915
|
required=False,
|
|
732
916
|
help="When using IBM COS, set the resource group where the instance will run"
|
|
733
917
|
)
|
|
@@ -895,6 +1079,12 @@ otherArgGroup.add_argument(
|
|
|
895
1079
|
default=False,
|
|
896
1080
|
help="Launch the upgrade without prompting for confirmation",
|
|
897
1081
|
)
|
|
1082
|
+
otherArgGroup.add_argument(
|
|
1083
|
+
"--image-pull-policy",
|
|
1084
|
+
dest="image_pull_policy",
|
|
1085
|
+
required=False,
|
|
1086
|
+
help="Manually set the image pull policy used in the Tekton Pipeline",
|
|
1087
|
+
)
|
|
898
1088
|
|
|
899
1089
|
otherArgGroup.add_argument(
|
|
900
1090
|
"-h", "--help",
|
|
@@ -137,40 +137,40 @@ class AdditionalConfigsMixin():
|
|
|
137
137
|
|
|
138
138
|
apps = {
|
|
139
139
|
"mas_app_channel_assist": {
|
|
140
|
-
"dir": self.
|
|
140
|
+
"dir": self.manualCertsDir + "/assist/",
|
|
141
141
|
"keyPrefix": "assist."
|
|
142
142
|
},
|
|
143
143
|
"mas_app_channel_manage": {
|
|
144
|
-
"dir": self.
|
|
144
|
+
"dir": self.manualCertsDir + "/manage/",
|
|
145
145
|
"keyPrefix": "manage."
|
|
146
146
|
},
|
|
147
147
|
"mas_app_channel_iot": {
|
|
148
|
-
"dir": self.
|
|
148
|
+
"dir": self.manualCertsDir + "/iot/",
|
|
149
149
|
"keyPrefix": "iot."
|
|
150
150
|
},
|
|
151
151
|
"mas_app_channel_monitor": {
|
|
152
|
-
"dir": self.
|
|
152
|
+
"dir": self.manualCertsDir + "/monitor/",
|
|
153
153
|
"keyPrefix": "monitor."
|
|
154
154
|
},
|
|
155
155
|
"mas_app_channel_predict": {
|
|
156
|
-
"dir": self.
|
|
156
|
+
"dir": self.manualCertsDir + "/predict/",
|
|
157
157
|
"keyPrefix": "predict."
|
|
158
158
|
},
|
|
159
159
|
"mas_app_channel_visualinspection": {
|
|
160
|
-
"dir": self.
|
|
160
|
+
"dir": self.manualCertsDir + "/visualinspection/",
|
|
161
161
|
"keyPrefix": "visualinspection."
|
|
162
162
|
},
|
|
163
163
|
"mas_app_channel_optimizer": {
|
|
164
|
-
"dir": self.
|
|
164
|
+
"dir": self.manualCertsDir + "/optimizer/",
|
|
165
165
|
"keyPrefix": "optimizer."
|
|
166
166
|
}
|
|
167
167
|
}
|
|
168
168
|
|
|
169
169
|
for file in ["ca.crt", "tls.crt", "tls.key"]:
|
|
170
|
-
if file not in map(path.basename, glob(f'{self.
|
|
171
|
-
self.fatalError(f'{file} is not present in {self.
|
|
170
|
+
if file not in map(path.basename, glob(f'{self.manualCertsDir}/core/*')):
|
|
171
|
+
self.fatalError(f'{file} is not present in {self.manualCertsDir}/core/')
|
|
172
172
|
for ext in extensions:
|
|
173
|
-
certsSecret = self.addFilesToSecret(certsSecret, self.
|
|
173
|
+
certsSecret = self.addFilesToSecret(certsSecret, self.manualCertsDir + '/core/', ext, "core.")
|
|
174
174
|
|
|
175
175
|
for app in apps:
|
|
176
176
|
if self.getParam(app) != "":
|
|
@@ -246,3 +246,27 @@ class ManageSettingsMixin():
|
|
|
246
246
|
self.manageSettingsTimezone()
|
|
247
247
|
self.manageSettingsLanguages()
|
|
248
248
|
self.manageSettingsCP4D()
|
|
249
|
+
|
|
250
|
+
def aibrokerSettings(self) -> None:
|
|
251
|
+
if self.installAiBroker:
|
|
252
|
+
self.printH2("Maximo AI Broker Settings - Storage, WatsonX, MariaDB details")
|
|
253
|
+
self.printDescription(["Customise AI Broker details"])
|
|
254
|
+
self.promptForString("Storage provider", "mas_aibroker_storage_provider")
|
|
255
|
+
self.promptForString("Storage access key", "mas_aibroker_storage_accesskey")
|
|
256
|
+
self.promptForString("Storage secret key", "mas_aibroker_storage_secretkey")
|
|
257
|
+
self.promptForString("Storage host", "mas_aibroker_storage_host")
|
|
258
|
+
self.promptForString("Storage port", "mas_aibroker_storage_port")
|
|
259
|
+
self.promptForString("Storage ssl", "mas_aibroker_storage_ssl")
|
|
260
|
+
self.promptForString("Storage region", "mas_aibroker_storage_region")
|
|
261
|
+
self.promptForString("Storage pipelines bucket", "mas_aibroker_storage_pipelines_bucket")
|
|
262
|
+
self.promptForString("Storage tenants bucket", "mas_aibroker_storage_tenants_bucket")
|
|
263
|
+
self.promptForString("Storage templates bucket", "mas_aibroker_storage_templates_bucket")
|
|
264
|
+
self.promptForString("Watsonxai api key", "mas_aibroker_watsonxai_apikey")
|
|
265
|
+
self.promptForString("Watsonxai machine learning url", "mas_aibroker_watsonxai_url")
|
|
266
|
+
self.promptForString("Watsonxai project id", "mas_aibroker_watsonxai_project_id")
|
|
267
|
+
self.promptForString("Database host", "mas_aibroker_db_host")
|
|
268
|
+
self.promptForString("Database port", "mas_aibroker_db_port")
|
|
269
|
+
self.promptForString("Database user", "mas_aibroker_db_user")
|
|
270
|
+
self.promptForString("Database name", "mas_aibroker_db_database")
|
|
271
|
+
self.promptForString("Database Secretname", "mas_aibroker_db_secret_name")
|
|
272
|
+
self.promptForString("Database password", "mas_aibroker_db_secret_value")
|
mas/cli/install/summarizer.py
CHANGED
|
@@ -77,7 +77,7 @@ class InstallSummarizerMixin():
|
|
|
77
77
|
|
|
78
78
|
if self.getParam("mas_manual_cert_mgmt") != "":
|
|
79
79
|
print()
|
|
80
|
-
self.
|
|
80
|
+
self.printSummary("Manual Certificates", self.manualCertsDir)
|
|
81
81
|
else:
|
|
82
82
|
print()
|
|
83
83
|
self.printSummary("Manual Certificates", "Not Configured")
|
|
@@ -155,6 +155,32 @@ class InstallSummarizerMixin():
|
|
|
155
155
|
else:
|
|
156
156
|
self.printSummary("Visual Inspection", "Do Not Install")
|
|
157
157
|
|
|
158
|
+
def aibrokerSummary(self) -> None:
|
|
159
|
+
if self.installAiBroker:
|
|
160
|
+
self.printSummary("AI Broker", self.params["mas_app_channel_aibroker"])
|
|
161
|
+
print_formatted_text(HTML(" <SkyBlue>+ Maximo AI Broker Settings</SkyBlue>"))
|
|
162
|
+
self.printParamSummary(" + Storage provider", "mas_aibroker_storage_provider")
|
|
163
|
+
self.printParamSummary(" + Storage access key", "mas_aibroker_storage_accesskey")
|
|
164
|
+
self.printParamSummary(" + Storage secret key", "mas_aibroker_storage_secretkey")
|
|
165
|
+
self.printParamSummary(" + Storage host", "mas_aibroker_storage_host")
|
|
166
|
+
self.printParamSummary(" + Storage port", "mas_aibroker_storage_port")
|
|
167
|
+
self.printParamSummary(" + Storage ssl", "mas_aibroker_storage_ssl")
|
|
168
|
+
self.printParamSummary(" + Storage region", "mas_aibroker_storage_region")
|
|
169
|
+
self.printParamSummary(" + Storage pipelines bucket", "mas_aibroker_storage_pipelines_bucket")
|
|
170
|
+
self.printParamSummary(" + Storage tenants bucket", "mas_aibroker_storage_tenants_bucket")
|
|
171
|
+
self.printParamSummary(" + Storage templates bucket", "mas_aibroker_storage_templates_bucket")
|
|
172
|
+
self.printParamSummary(" + Watsonxai api key", "mas_aibroker_watsonxai_apikey")
|
|
173
|
+
self.printParamSummary(" + Watsonxai machine learning url", "mas_aibroker_watsonxai_url")
|
|
174
|
+
self.printParamSummary(" + Watsonxai project id", "mas_aibroker_watsonxai_project_id")
|
|
175
|
+
self.printParamSummary(" + Database host", "mas_aibroker_db_host")
|
|
176
|
+
self.printParamSummary(" + Database port", "mas_aibroker_db_port")
|
|
177
|
+
self.printParamSummary(" + Database user", "mas_aibroker_db_user")
|
|
178
|
+
self.printParamSummary(" + Database name", "mas_aibroker_db_database")
|
|
179
|
+
self.printParamSummary(" + Database Secretname", "mas_aibroker_db_secret_name")
|
|
180
|
+
self.printParamSummary(" + Database password", "mas_aibroker_db_secret_value")
|
|
181
|
+
else:
|
|
182
|
+
self.printSummary("AI Broker", "Do Not Install")
|
|
183
|
+
|
|
158
184
|
def manageSummary(self) -> None:
|
|
159
185
|
if self.installManage:
|
|
160
186
|
self.printSummary("Manage", self.params["mas_app_channel_manage"])
|
|
@@ -253,8 +279,8 @@ class InstallSummarizerMixin():
|
|
|
253
279
|
self.printH2("Cloud Object Storage")
|
|
254
280
|
if self.getParam("cos_type") != "":
|
|
255
281
|
self.printParamSummary("Type", "cos_type")
|
|
256
|
-
if self.getParam("
|
|
257
|
-
self.printParamSummary("Resource Group", "
|
|
282
|
+
if self.getParam("ibmcos_resourcegroup") != "":
|
|
283
|
+
self.printParamSummary("Resource Group", "ibmcos_resourcegroup")
|
|
258
284
|
else:
|
|
259
285
|
self.printSummary("Type", "None")
|
|
260
286
|
|
|
@@ -341,6 +367,7 @@ class InstallSummarizerMixin():
|
|
|
341
367
|
self.optimizerSummary()
|
|
342
368
|
self.assistSummary()
|
|
343
369
|
self.inspectionSummary()
|
|
370
|
+
self.aibrokerSummary()
|
|
344
371
|
|
|
345
372
|
# Application Dependencies
|
|
346
373
|
self.mongoSummary()
|