mas-cli 5.1.4__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 +11 -0
- mas/cli/aiservice/install/__init__.py +11 -0
- mas/cli/aiservice/install/app.py +894 -0
- mas/cli/aiservice/install/argBuilder.py +180 -0
- mas/cli/aiservice/install/argParser.py +507 -0
- mas/cli/aiservice/install/params.py +100 -0
- mas/cli/aiservice/install/summarizer.py +134 -0
- mas/cli/cli.py +432 -0
- mas/cli/displayMixins.py +132 -0
- mas/cli/gencfg.py +113 -0
- mas/cli/install/__init__.py +11 -0
- mas/cli/install/app.py +1316 -0
- mas/cli/install/argBuilder.py +465 -0
- mas/cli/install/argParser.py +1176 -0
- mas/cli/install/catalogs.py +27 -0
- mas/cli/install/params.py +172 -0
- mas/cli/install/settings/__init__.py +23 -0
- mas/cli/install/settings/additionalConfigs.py +227 -0
- mas/cli/install/settings/db2Settings.py +252 -0
- mas/cli/install/settings/kafkaSettings.py +103 -0
- mas/cli/install/settings/manageSettings.py +273 -0
- mas/cli/install/settings/mongodbSettings.py +46 -0
- mas/cli/install/settings/turbonomicSettings.py +29 -0
- mas/cli/install/summarizer.py +398 -0
- mas/cli/templates/facilities-configs.yml.j2 +25 -0
- mas/cli/templates/ibm-mas-tekton.yaml +49772 -0
- mas/cli/templates/jdbccfg.yml.j2 +52 -0
- mas/cli/templates/pod-templates/best-effort/ibm-data-dictionary-assetdatadictionary.yml +26 -0
- mas/cli/templates/pod-templates/best-effort/ibm-mas-bascfg.yml +56 -0
- mas/cli/templates/pod-templates/best-effort/ibm-mas-coreidp.yml +21 -0
- mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-actions.yml +28 -0
- mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-auth.yml +32 -0
- mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-datapower.yml +12 -0
- mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-devops.yml +14 -0
- mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-dm.yml +22 -0
- mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-dsc.yml +40 -0
- mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-edgeconfig.yml +10 -0
- mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-fpl.yml +24 -0
- mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-guardian.yml +20 -0
- mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-iot.yml +10 -0
- mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-mbgx.yml +18 -0
- mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-mfgx.yml +14 -0
- mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-monitor.yml +18 -0
- mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-orgmgmt.yml +48 -0
- mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-provision.yml +28 -0
- mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-registry.yml +26 -0
- mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-state.yml +40 -0
- mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-webui.yml +22 -0
- mas/cli/templates/pod-templates/best-effort/ibm-mas-manage-healthextaccelerator.yml +13 -0
- mas/cli/templates/pod-templates/best-effort/ibm-mas-manage-healthextworkspace.yml +10 -0
- mas/cli/templates/pod-templates/best-effort/ibm-mas-manage-imagestitching.yml +10 -0
- mas/cli/templates/pod-templates/best-effort/ibm-mas-manage-manageaccelerators.yml +10 -0
- mas/cli/templates/pod-templates/best-effort/ibm-mas-manage-manageapp.yml +46 -0
- mas/cli/templates/pod-templates/best-effort/ibm-mas-manage-manageworkspace.yml +48 -0
- mas/cli/templates/pod-templates/best-effort/ibm-mas-manage-slackproxy.yml +10 -0
- mas/cli/templates/pod-templates/best-effort/ibm-mas-pushnotificationcfg.yml +13 -0
- mas/cli/templates/pod-templates/best-effort/ibm-mas-scimcfg.yml +14 -0
- mas/cli/templates/pod-templates/best-effort/ibm-mas-slscfg.yml +10 -0
- mas/cli/templates/pod-templates/best-effort/ibm-mas-smtpcfg.yml +10 -0
- mas/cli/templates/pod-templates/best-effort/ibm-mas-suite.yml +136 -0
- mas/cli/templates/pod-templates/best-effort/ibm-mas-visualinspection.yml +34 -0
- mas/cli/templates/pod-templates/best-effort/ibm-sls-licenseservice.yml +10 -0
- mas/cli/templates/pod-templates/guaranteed/ibm-data-dictionary-assetdatadictionary.yml +56 -0
- mas/cli/templates/pod-templates/guaranteed/ibm-mas-bascfg.yml +140 -0
- mas/cli/templates/pod-templates/guaranteed/ibm-mas-coreidp.yml +45 -0
- mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-actions.yml +70 -0
- mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-auth.yml +80 -0
- mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-datapower.yml +24 -0
- mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-devops.yml +26 -0
- mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-dm.yml +52 -0
- mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-dsc.yml +106 -0
- mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-edgeconfig.yml +16 -0
- mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-fpl.yml +62 -0
- mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-guardian.yml +44 -0
- mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-iot.yml +16 -0
- mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-mbgx.yml +42 -0
- mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-mfgx.yml +32 -0
- mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-monitor.yml +42 -0
- mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-orgmgmt.yml +126 -0
- mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-provision.yml +70 -0
- mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-registry.yml +62 -0
- mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-state.yml +106 -0
- mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-webui.yml +52 -0
- mas/cli/templates/pod-templates/guaranteed/ibm-mas-manage-healthextaccelerator.yml +28 -0
- mas/cli/templates/pod-templates/guaranteed/ibm-mas-manage-healthextworkspace.yml +18 -0
- mas/cli/templates/pod-templates/guaranteed/ibm-mas-manage-imagestitching.yml +16 -0
- mas/cli/templates/pod-templates/guaranteed/ibm-mas-manage-manageaccelerators.yml +16 -0
- mas/cli/templates/pod-templates/guaranteed/ibm-mas-manage-manageapp.yml +106 -0
- mas/cli/templates/pod-templates/guaranteed/ibm-mas-manage-manageworkspace.yml +126 -0
- mas/cli/templates/pod-templates/guaranteed/ibm-mas-manage-slackproxy.yml +16 -0
- mas/cli/templates/pod-templates/guaranteed/ibm-mas-pushnotificationcfg.yml +25 -0
- mas/cli/templates/pod-templates/guaranteed/ibm-mas-scimcfg.yml +26 -0
- mas/cli/templates/pod-templates/guaranteed/ibm-mas-slscfg.yml +16 -0
- mas/cli/templates/pod-templates/guaranteed/ibm-mas-smtpcfg.yml +16 -0
- mas/cli/templates/pod-templates/guaranteed/ibm-mas-suite.yml +340 -0
- mas/cli/templates/pod-templates/guaranteed/ibm-mas-visualinspection.yml +76 -0
- mas/cli/templates/pod-templates/guaranteed/ibm-sls-licenseservice.yml +16 -0
- mas/cli/templates/suite_mongocfg.yml.j2 +55 -0
- mas/cli/uninstall/__init__.py +11 -0
- mas/cli/uninstall/app.py +197 -0
- mas/cli/uninstall/argParser.py +115 -0
- mas/cli/update/__init__.py +11 -0
- mas/cli/update/app.py +673 -0
- mas/cli/update/argParser.py +156 -0
- mas/cli/upgrade/__init__.py +11 -0
- mas/cli/upgrade/app.py +164 -0
- mas/cli/upgrade/argParser.py +68 -0
- mas/cli/upgrade/settings/__init__.py +19 -0
- mas/cli/validators.py +151 -0
- mas_cli-5.1.4.data/scripts/mas-cli +87 -0
- mas_cli-5.1.4.dist-info/METADATA +73 -0
- mas_cli-5.1.4.dist-info/RECORD +114 -0
- mas_cli-5.1.4.dist-info/WHEEL +5 -0
- mas_cli-5.1.4.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
# *****************************************************************************
|
|
2
|
+
# Copyright (c) 2024, 2025 IBM Corporation and other Contributors.
|
|
3
|
+
#
|
|
4
|
+
# All rights reserved. This program and the accompanying materials
|
|
5
|
+
# are made available under the terms of the Eclipse Public License v1.0
|
|
6
|
+
# which accompanies this distribution, and is available at
|
|
7
|
+
# http://www.eclipse.org/legal/epl-v10.html
|
|
8
|
+
#
|
|
9
|
+
# *****************************************************************************
|
|
10
|
+
|
|
11
|
+
import logging
|
|
12
|
+
|
|
13
|
+
logger = logging.getLogger(__name__)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class aiServiceInstallArgBuilderMixin():
|
|
17
|
+
def buildCommand(self) -> str:
|
|
18
|
+
# MAS Catalog Selection & Entitlement
|
|
19
|
+
# -----------------------------------------------------------------------------
|
|
20
|
+
newline = " \\\n"
|
|
21
|
+
command = "export IBM_ENTITLEMENT_KEY=x\n"
|
|
22
|
+
if self.getParam('ibmcloud_apikey') != "":
|
|
23
|
+
command += "export IBMCLOUD_APIKEY=x\n"
|
|
24
|
+
if self.getParam('aws_access_key_id') != "":
|
|
25
|
+
command += "export AWS_ACCESS_KEY_ID=x\n"
|
|
26
|
+
if self.getParam('secret_access_key') != "":
|
|
27
|
+
command += "export SECRET_ACCESS_KEY=x\n"
|
|
28
|
+
if self.getParam('artifactory_username') != "":
|
|
29
|
+
command += "export ARTIFACTORY_USERNAME=x\nexport ARTIFACTORY_TOKEN=x\n"
|
|
30
|
+
|
|
31
|
+
command += f"mas aiservice-install --mas-catalog-version {self.getParam('mas_catalog_version')}"
|
|
32
|
+
|
|
33
|
+
if self.getParam('mas_catalog_digest') != "":
|
|
34
|
+
command += f" --mas-catalog-digest {self.getParam('mas_catalog_digest')}"
|
|
35
|
+
|
|
36
|
+
command += f" --ibm-entitlement-key $IBM_ENTITLEMENT_KEY{newline}"
|
|
37
|
+
|
|
38
|
+
# Aibroker Instance Id
|
|
39
|
+
command += f" --aiservice-instance-id \"{self.getParam('aiservice_instance_id')}\"{newline}"
|
|
40
|
+
|
|
41
|
+
# MAS Advanced Configuration
|
|
42
|
+
# -----------------------------------------------------------------------------
|
|
43
|
+
|
|
44
|
+
if self.localConfigDir is not None:
|
|
45
|
+
command += f" --additional-configs \"{self.localConfigDir}\"{newline}"
|
|
46
|
+
|
|
47
|
+
# Storage
|
|
48
|
+
# -----------------------------------------------------------------------------
|
|
49
|
+
command += f" --storage-class-rwo \"{self.getParam('storage_class_rwo')}\""
|
|
50
|
+
command += f" --storage-class-rwx \"{self.getParam('storage_class_rwx')}\"{newline}"
|
|
51
|
+
command += f" --storage-pipeline \"{self.pipelineStorageClass}\""
|
|
52
|
+
command += f" --storage-accessmode \"{self.pipelineStorageAccessMode}\"{newline}"
|
|
53
|
+
|
|
54
|
+
# IBM Suite License Service
|
|
55
|
+
# -----------------------------------------------------------------------------
|
|
56
|
+
if self.getParam("sls_namespace") and self.getParam("sls_namespace") != "ibm-sls":
|
|
57
|
+
if self.getParam("aiservice_instance_id") and self.getParam("sls_namespace") == f"mas-{self.getParam('mas_instance_id')}-sls":
|
|
58
|
+
command += " --dedicated-sls"
|
|
59
|
+
else:
|
|
60
|
+
command += f" --sls-namespace \"{self.getParam('sls_namespace')}\""
|
|
61
|
+
if self.slsLicenseFileLocal:
|
|
62
|
+
command += f" --license-file \"{self.slsLicenseFileLocal}\""
|
|
63
|
+
if self.getParam("sls_namespace") and self.getParam("sls_namespace") != "ibm-sls" or self.slsLicenseFileLocal:
|
|
64
|
+
command += newline
|
|
65
|
+
|
|
66
|
+
# IBM Data Reporting Operator (DRO)
|
|
67
|
+
# -----------------------------------------------------------------------------
|
|
68
|
+
command += f" --uds-email \"{self.getParam('uds_contact_email')}\""
|
|
69
|
+
command += f" --uds-firstname \"{self.getParam('uds_contact_firstname')}\""
|
|
70
|
+
command += f" --uds-lastname \"{self.getParam('uds_contact_lastname')}\"{newline}"
|
|
71
|
+
if self.getParam('dro_namespace') != "":
|
|
72
|
+
command += f" --dro-namespace \"{self.getParam('dro_namespace')}\"{newline}"
|
|
73
|
+
|
|
74
|
+
# MongoDb Community Operator
|
|
75
|
+
# -----------------------------------------------------------------------------
|
|
76
|
+
if self.getParam('mongodb_namespace') != "":
|
|
77
|
+
command += f" --mongodb-namespace \"{self.getParam('mongodb_namespace')}\"{newline}"
|
|
78
|
+
|
|
79
|
+
# Aibroker Channel
|
|
80
|
+
# -----------------------------------------------------------------------------
|
|
81
|
+
command += f" --aiservice-channel \"{self.getParam('aiservice_channel')}\"{newline}"
|
|
82
|
+
|
|
83
|
+
# IBM Db2 Universal Operator
|
|
84
|
+
# -----------------------------------------------------------------------------
|
|
85
|
+
command += f" --db2-aiservice{newline}"
|
|
86
|
+
|
|
87
|
+
# Development Mode
|
|
88
|
+
# -----------------------------------------------------------------------------
|
|
89
|
+
if self.getParam('artifactory_username') != "":
|
|
90
|
+
command += f" --artifactory-username $ARTIFACTORY_USERNAME --artifactory-token $ARTIFACTORY_TOKEN{newline}"
|
|
91
|
+
|
|
92
|
+
# Approvals
|
|
93
|
+
# -----------------------------------------------------------------------------
|
|
94
|
+
if self.getParam('approval_aibroker') != "":
|
|
95
|
+
command += f" --approval-aibroker \"{self.getParam('approval_aibroker')}\"{newline}"
|
|
96
|
+
|
|
97
|
+
# More Options
|
|
98
|
+
# -----------------------------------------------------------------------------
|
|
99
|
+
if self.devMode:
|
|
100
|
+
command += f" --dev-mode{newline}"
|
|
101
|
+
if not self.waitForPVC:
|
|
102
|
+
command += f" --no-wait-for-pvc{newline}"
|
|
103
|
+
if self.getParam('skip_pre_check') is True:
|
|
104
|
+
command += f" --skip-pre-check{newline}"
|
|
105
|
+
if self.getParam('image_pull_policy') != "":
|
|
106
|
+
command += f" --image-pull-policy {self.getParam('image_pull_policy')}{newline}"
|
|
107
|
+
if self.getParam('service_account_name') != "":
|
|
108
|
+
command += f" --service-account {self.getParam('service_account_name')}{newline}"
|
|
109
|
+
|
|
110
|
+
# Aibroker Advanced Settings
|
|
111
|
+
# -----------------------------------------------------------------------------
|
|
112
|
+
if self.getParam('aiservice_storage_provider') != "":
|
|
113
|
+
command += f" --aiservice-storage-provider \"{self.getParam('aiservice_storage_provider')}\"{newline}"
|
|
114
|
+
if self.getParam('aiservice_storage_accesskey') != "":
|
|
115
|
+
command += f" --aiservice-storage-accesskey \"{self.getParam('aiservice_storage_accesskey')}\"{newline}"
|
|
116
|
+
if self.getParam('aiservice_storage_secretkey') != "":
|
|
117
|
+
command += f" --aiservice-storage-secretkey \"{self.getParam('aiservice_storage_secretkey')}\"{newline}"
|
|
118
|
+
if self.getParam('aiservice_storage_host') != "":
|
|
119
|
+
command += f" --aiservice-storage-host \"{self.getParam('aiservice_storage_host')}\"{newline}"
|
|
120
|
+
if self.getParam('aiservice_storage_port') != "":
|
|
121
|
+
command += f" --aiservice-storage-port \"{self.getParam('aiservice_storage_port')}\"{newline}"
|
|
122
|
+
if self.getParam('aiservice_storage_ssl') != "":
|
|
123
|
+
command += f" --aiservice-storage-ssl \"{self.getParam('aiservice_storage_ssl')}\"{newline}"
|
|
124
|
+
if self.getParam('aiservice_storage_region') != "":
|
|
125
|
+
command += f" --aiservice-storage-region \"{self.getParam('aiservice_storage_region')}\"{newline}"
|
|
126
|
+
if self.getParam('aiservice_storage_pipelines_bucket') != "":
|
|
127
|
+
command += f" --aiservice-storage-pipelines-bucket \"{self.getParam('aiservice_storage_pipelines_bucket')}\"{newline}"
|
|
128
|
+
if self.getParam('aiservice_storage_tenants_bucket') != "":
|
|
129
|
+
command += f" --aiservice-storage-tenants-bucket \"{self.getParam('aiservice_storage_tenants_bucket')}\"{newline}"
|
|
130
|
+
if self.getParam('aiservice_storage_templates_bucket') != "":
|
|
131
|
+
command += f" --aiservice-storage-templates-bucket \"{self.getParam('aiservice_storage_templates_bucket')}\"{newline}"
|
|
132
|
+
|
|
133
|
+
if self.getParam('aiservice_watsonxai_apikey') != "":
|
|
134
|
+
command += f" --aiservice-watsonxai-apikey \"{self.getParam('aiservice_watsonxai_apikey')}\"{newline}"
|
|
135
|
+
if self.getParam('aiservice_watsonxai_url') != "":
|
|
136
|
+
command += f" --aiservice-watsonxai-url \"{self.getParam('aiservice_watsonxai_url')}\"{newline}"
|
|
137
|
+
if self.getParam('aiservice_watsonxai_project_id') != "":
|
|
138
|
+
command += f" --aiservice-watsonxai-project-id \"{self.getParam('aiservice_watsonxai_project_id')}\"{newline}"
|
|
139
|
+
if self.getParam('aiservice_watsonx_action') != "":
|
|
140
|
+
command += f" --aiservice-watsonx-action \"{self.getParam('aiservice_watsonx_action')}\"{newline}"
|
|
141
|
+
|
|
142
|
+
if self.getParam('minio_root_user') != "":
|
|
143
|
+
command += f" --minio-root-user \"{self.getParam('minio_root_user')}\"{newline}"
|
|
144
|
+
if self.getParam('minio_root_password') != "":
|
|
145
|
+
command += f" --minio-root-password \"{self.getParam('minio_root_password')}\"{newline}"
|
|
146
|
+
|
|
147
|
+
if self.getParam('tenant_entitlement_type') != "":
|
|
148
|
+
command += f" --tenant-entitlement-type \"{self.getParam('tenant_entitlement_type')}\"{newline}"
|
|
149
|
+
if self.getParam('tenant_entitlement_start_date') != "":
|
|
150
|
+
command += f" --tenant-entitlement-start-date \"{self.getParam('tenant_entitlement_start_date')}\"{newline}"
|
|
151
|
+
if self.getParam('tenant_entitlement_end_date') != "":
|
|
152
|
+
command += f" --tenant-entitlement-end-date \"{self.getParam('tenant_entitlement_end_date')}\"{newline}"
|
|
153
|
+
|
|
154
|
+
if self.getParam('aiservice_s3_bucket_prefix') != "":
|
|
155
|
+
command += f" --aiservice-s3-bucket-prefix \"{self.getParam('aiservice_s3_bucket_prefix')}\"{newline}"
|
|
156
|
+
if self.getParam('aiservice_s3_endpoint_url') != "":
|
|
157
|
+
command += f" --aiservice-s3-endpoint-url \"{self.getParam('aiservice_s3_endpoint_url')}\"{newline}"
|
|
158
|
+
if self.getParam('aiservice_s3_region') != "":
|
|
159
|
+
command += f" --aiservice-s3-region \"{self.getParam('aiservice_s3_region')}\"{newline}"
|
|
160
|
+
|
|
161
|
+
if self.getParam('aiservice_tenant_s3_bucket_prefix') != "":
|
|
162
|
+
command += f" --aiservice-tenant-s3-bucket-prefix \"{self.getParam('aiservice_tenant_s3_bucket_prefix')}\"{newline}"
|
|
163
|
+
if self.getParam('aiservice_tenant_s3_region') != "":
|
|
164
|
+
command += f" --aiservice-tenant-s3-region \"{self.getParam('aiservice_tenant_s3_region')}\"{newline}"
|
|
165
|
+
if self.getParam('aiservice_tenant_s3_endpoint_url') != "":
|
|
166
|
+
command += f" --aiservice-tenant-s3-endpoint-url \"{self.getParam('aiservice_tenant_s3_endpoint_url')}\"{newline}"
|
|
167
|
+
if self.getParam('aiservice_tenant_s3_access_key') != "":
|
|
168
|
+
command += f" --aiservice-tenant-s3-access-key \"{self.getParam('aiservice_tenant_s3_access_key')}\"{newline}"
|
|
169
|
+
if self.getParam('aiservice_tenant_s3_secret_key') != "":
|
|
170
|
+
command += f" --aiservice-tenant-s3-secret-key \"{self.getParam('aiservice_tenant_s3_secret_key')}\"{newline}"
|
|
171
|
+
|
|
172
|
+
if self.getParam('rsl_url') != "":
|
|
173
|
+
command += f" --rsl-url \"{self.getParam('rsl_url')}\"{newline}"
|
|
174
|
+
if self.getParam('rsl_org_id') != "":
|
|
175
|
+
command += f" --rsl-org-id \"{self.getParam('rsl_org_id')}\"{newline}"
|
|
176
|
+
if self.getParam('rsl_token') != "":
|
|
177
|
+
command += f" --rsl-token \"{self.getParam('rsl_token')}\"{newline}"
|
|
178
|
+
|
|
179
|
+
command += " --accept-license --no-confirm"
|
|
180
|
+
return command
|
|
@@ -0,0 +1,507 @@
|
|
|
1
|
+
# *****************************************************************************
|
|
2
|
+
# Copyright (c) 2024, 2025 IBM Corporation and other Contributors.
|
|
3
|
+
#
|
|
4
|
+
# All rights reserved. This program and the accompanying materials
|
|
5
|
+
# are made available under the terms of the Eclipse Public License v1.0
|
|
6
|
+
# which accompanies this distribution, and is available at
|
|
7
|
+
# http://www.eclipse.org/legal/epl-v10.html
|
|
8
|
+
#
|
|
9
|
+
# *****************************************************************************
|
|
10
|
+
|
|
11
|
+
import argparse
|
|
12
|
+
from os import path
|
|
13
|
+
|
|
14
|
+
from ... import __version__ as packageVersion
|
|
15
|
+
from ...cli import getHelpFormatter
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def isValidFile(parser, arg) -> str:
|
|
19
|
+
if not path.exists(arg):
|
|
20
|
+
parser.error(f"Error: The file {arg} does not exist")
|
|
21
|
+
else:
|
|
22
|
+
return arg
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
aiServiceinstallArgParser = argparse.ArgumentParser(
|
|
26
|
+
prog="mas install-aiservice",
|
|
27
|
+
description="\n".join([
|
|
28
|
+
f"IBM Maximo Application Suite Admin CLI v{packageVersion}",
|
|
29
|
+
"Install Aiservice by configuring and launching the Tekton Pipeline.\n",
|
|
30
|
+
"Interactive Mode:",
|
|
31
|
+
"Omitting the --instance-id option will trigger an interactive prompt"
|
|
32
|
+
]),
|
|
33
|
+
epilog="Refer to the online documentation for more information: https://ibm-mas.github.io/cli/",
|
|
34
|
+
formatter_class=getHelpFormatter(),
|
|
35
|
+
add_help=False
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
# MAS Catalog Selection & Entitlement
|
|
39
|
+
# -----------------------------------------------------------------------------
|
|
40
|
+
catArgGroup = aiServiceinstallArgParser.add_argument_group("MAS Catalog Selection & Entitlement")
|
|
41
|
+
catArgGroup.add_argument(
|
|
42
|
+
"-c", "--mas-catalog-version",
|
|
43
|
+
required=False,
|
|
44
|
+
help="IBM Maximo Operator Catalog to install"
|
|
45
|
+
)
|
|
46
|
+
catArgGroup.add_argument(
|
|
47
|
+
"--mas-catalog-digest",
|
|
48
|
+
required=False,
|
|
49
|
+
help="IBM Maximo Operator Catalog Digest, only required when installing development catalog sources"
|
|
50
|
+
)
|
|
51
|
+
catArgGroup.add_argument(
|
|
52
|
+
"--ibm-entitlement-key",
|
|
53
|
+
required=False,
|
|
54
|
+
help="IBM entitlement key"
|
|
55
|
+
)
|
|
56
|
+
|
|
57
|
+
# Aibroker Basic Configuration
|
|
58
|
+
# -----------------------------------------------------------------------------
|
|
59
|
+
masArgGroup = aiServiceinstallArgParser.add_argument_group("Aibroker Basic Configuration")
|
|
60
|
+
masArgGroup.add_argument(
|
|
61
|
+
"-i", "--aiservice-instance-id",
|
|
62
|
+
required=False,
|
|
63
|
+
help="Aibroker Instance ID"
|
|
64
|
+
)
|
|
65
|
+
|
|
66
|
+
# MAS Advanced Configuration
|
|
67
|
+
# -----------------------------------------------------------------------------
|
|
68
|
+
masAdvancedArgGroup = aiServiceinstallArgParser.add_argument_group("MAS Advanced Configuration")
|
|
69
|
+
masAdvancedArgGroup.add_argument(
|
|
70
|
+
"--additional-configs",
|
|
71
|
+
required=False,
|
|
72
|
+
help="Path to a directory containing additional configuration files to be applied"
|
|
73
|
+
)
|
|
74
|
+
masAdvancedArgGroup.add_argument(
|
|
75
|
+
"--non-prod",
|
|
76
|
+
required=False,
|
|
77
|
+
help="Install MAS in non-production mode",
|
|
78
|
+
action="store_true"
|
|
79
|
+
)
|
|
80
|
+
|
|
81
|
+
# Storage
|
|
82
|
+
# -----------------------------------------------------------------------------
|
|
83
|
+
storageArgGroup = aiServiceinstallArgParser.add_argument_group("Storage")
|
|
84
|
+
storageArgGroup.add_argument(
|
|
85
|
+
"--storage-class-rwo",
|
|
86
|
+
required=False,
|
|
87
|
+
help="ReadWriteOnce (RWO) storage class (e.g. ibmc-block-gold)"
|
|
88
|
+
)
|
|
89
|
+
storageArgGroup.add_argument(
|
|
90
|
+
"--storage-class-rwx",
|
|
91
|
+
required=False,
|
|
92
|
+
help="ReadWriteMany (RWX) storage class (e.g. ibmc-file-gold-gid)"
|
|
93
|
+
)
|
|
94
|
+
storageArgGroup.add_argument(
|
|
95
|
+
"--storage-pipeline",
|
|
96
|
+
required=False,
|
|
97
|
+
help="Install pipeline storage class (e.g. ibmc-file-gold-gid)"
|
|
98
|
+
)
|
|
99
|
+
storageArgGroup.add_argument(
|
|
100
|
+
"--storage-accessmode",
|
|
101
|
+
required=False,
|
|
102
|
+
help="Install pipeline storage class access mode (ReadWriteMany or ReadWriteOnce)",
|
|
103
|
+
choices=["ReadWriteMany", "ReadWriteOnce"]
|
|
104
|
+
)
|
|
105
|
+
|
|
106
|
+
# IBM Suite License Service
|
|
107
|
+
# -----------------------------------------------------------------------------
|
|
108
|
+
slsArgGroup = aiServiceinstallArgParser.add_argument_group("IBM Suite License Service")
|
|
109
|
+
slsArgGroup.add_argument(
|
|
110
|
+
"--license-file",
|
|
111
|
+
required=False,
|
|
112
|
+
help="Path to MAS license file",
|
|
113
|
+
type=lambda x: isValidFile(aiServiceinstallArgParser, x)
|
|
114
|
+
)
|
|
115
|
+
slsArgGroup.add_argument(
|
|
116
|
+
"--sls-namespace",
|
|
117
|
+
required=False,
|
|
118
|
+
help="Customize the SLS install namespace",
|
|
119
|
+
default="ibm-sls"
|
|
120
|
+
)
|
|
121
|
+
slsArgGroup.add_argument(
|
|
122
|
+
"--dedicated-sls",
|
|
123
|
+
action="store_true",
|
|
124
|
+
default=False,
|
|
125
|
+
help="Set the SLS namespace to mas-<instanceid>-sls"
|
|
126
|
+
)
|
|
127
|
+
|
|
128
|
+
# IBM Data Reporting Operator (DRO)
|
|
129
|
+
# -----------------------------------------------------------------------------
|
|
130
|
+
droArgGroup = aiServiceinstallArgParser.add_argument_group("IBM Data Reporting Operator (DRO)")
|
|
131
|
+
droArgGroup.add_argument(
|
|
132
|
+
"--uds-email",
|
|
133
|
+
dest="uds_contact_email",
|
|
134
|
+
required=False,
|
|
135
|
+
help="Contact e-mail address"
|
|
136
|
+
)
|
|
137
|
+
droArgGroup.add_argument(
|
|
138
|
+
"--uds-firstname",
|
|
139
|
+
dest="uds_contact_firstname",
|
|
140
|
+
required=False,
|
|
141
|
+
help="Contact first name"
|
|
142
|
+
)
|
|
143
|
+
droArgGroup.add_argument(
|
|
144
|
+
"--uds-lastname",
|
|
145
|
+
dest="uds_contact_lastname",
|
|
146
|
+
required=False,
|
|
147
|
+
help="Contact last name"
|
|
148
|
+
)
|
|
149
|
+
droArgGroup.add_argument(
|
|
150
|
+
"--dro-namespace",
|
|
151
|
+
required=False,
|
|
152
|
+
help=""
|
|
153
|
+
)
|
|
154
|
+
|
|
155
|
+
# MongoDb Community Operator
|
|
156
|
+
# -----------------------------------------------------------------------------
|
|
157
|
+
mongoArgGroup = aiServiceinstallArgParser.add_argument_group("MongoDb Community Operator")
|
|
158
|
+
mongoArgGroup.add_argument(
|
|
159
|
+
"--mongodb-namespace",
|
|
160
|
+
required=False,
|
|
161
|
+
help=""
|
|
162
|
+
)
|
|
163
|
+
|
|
164
|
+
# MAS Applications
|
|
165
|
+
# -----------------------------------------------------------------------------
|
|
166
|
+
masAppsArgGroup = aiServiceinstallArgParser.add_argument_group("MAS Applications")
|
|
167
|
+
|
|
168
|
+
masAppsArgGroup.add_argument(
|
|
169
|
+
"--aiservice-channel",
|
|
170
|
+
required=False,
|
|
171
|
+
help="Subscription channel for Maximo Ai Broker"
|
|
172
|
+
)
|
|
173
|
+
|
|
174
|
+
# AI Broker
|
|
175
|
+
# -----------------------------------------------------------------------------
|
|
176
|
+
aibrokerArgGroup = aiServiceinstallArgParser.add_argument_group("Maximo AI Broker")
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
# S3 - Minio
|
|
180
|
+
# -----------------------------------------------------------------------------
|
|
181
|
+
s3ArgGroup = aiServiceinstallArgParser.add_argument_group("S3 Storage")
|
|
182
|
+
s3ArgGroup.add_argument(
|
|
183
|
+
"--install-minio",
|
|
184
|
+
dest="install_minio_aiservice",
|
|
185
|
+
required=False,
|
|
186
|
+
help="Install Minio and configure it as the S3 provider for AI Service",
|
|
187
|
+
action="store_const",
|
|
188
|
+
const="true"
|
|
189
|
+
)
|
|
190
|
+
|
|
191
|
+
s3ArgGroup.add_argument(
|
|
192
|
+
"--minio-root-user",
|
|
193
|
+
dest="minio_root_user",
|
|
194
|
+
required=False,
|
|
195
|
+
help="Root user for minio"
|
|
196
|
+
)
|
|
197
|
+
s3ArgGroup.add_argument(
|
|
198
|
+
"--minio-root-password",
|
|
199
|
+
dest="minio_root_password",
|
|
200
|
+
required=False,
|
|
201
|
+
help="Password for minio root user"
|
|
202
|
+
)
|
|
203
|
+
|
|
204
|
+
# S3 - General
|
|
205
|
+
# -----------------------------------------------------------------------------
|
|
206
|
+
s3ArgGroup.add_argument(
|
|
207
|
+
"--s3-provider",
|
|
208
|
+
dest="aiservice_storage_provider",
|
|
209
|
+
required=False,
|
|
210
|
+
help="TODO: Write me"
|
|
211
|
+
)
|
|
212
|
+
|
|
213
|
+
# S3 - Bucket Naming
|
|
214
|
+
# -----------------------------------------------------------------------------
|
|
215
|
+
s3ArgGroup.add_argument(
|
|
216
|
+
"--s3-pipelines-bucket",
|
|
217
|
+
dest="aiservice_storage_pipelines_bucket",
|
|
218
|
+
required=False,
|
|
219
|
+
default="km-pipelines",
|
|
220
|
+
help="TODO: Write me"
|
|
221
|
+
)
|
|
222
|
+
s3ArgGroup.add_argument(
|
|
223
|
+
"--s3-tenants-bucket",
|
|
224
|
+
dest="aiservice_storage_tenants_bucket",
|
|
225
|
+
required=False,
|
|
226
|
+
default="km-tenants",
|
|
227
|
+
help="TODO: Write me"
|
|
228
|
+
)
|
|
229
|
+
s3ArgGroup.add_argument(
|
|
230
|
+
"--s3-templates-bucket",
|
|
231
|
+
dest="aiservice_storage_templates_bucket",
|
|
232
|
+
required=False,
|
|
233
|
+
default="km-templates",
|
|
234
|
+
help="TODO: Write me"
|
|
235
|
+
)
|
|
236
|
+
|
|
237
|
+
# S3 - Bucket Prefixes
|
|
238
|
+
# -----------------------------------------------------------------------------
|
|
239
|
+
s3ArgGroup.add_argument(
|
|
240
|
+
"--s3-bucket-prefix",
|
|
241
|
+
dest="aiservice_s3_bucket_prefix",
|
|
242
|
+
required=False,
|
|
243
|
+
default="s3",
|
|
244
|
+
help="s3 bucket prefix"
|
|
245
|
+
)
|
|
246
|
+
s3ArgGroup.add_argument(
|
|
247
|
+
"--s3-bucket-prefix-tenant",
|
|
248
|
+
dest="aiservice_tenant_s3_bucket_prefix",
|
|
249
|
+
required=False,
|
|
250
|
+
default="s3",
|
|
251
|
+
help="s3 bucket prefix ( tenant level )"
|
|
252
|
+
)
|
|
253
|
+
|
|
254
|
+
# S3 - External Connection
|
|
255
|
+
# -----------------------------------------------------------------------------
|
|
256
|
+
s3ArgGroup.add_argument(
|
|
257
|
+
"--s3-host",
|
|
258
|
+
dest="aiservice_storage_host",
|
|
259
|
+
required=False,
|
|
260
|
+
help="TODO: Write me"
|
|
261
|
+
)
|
|
262
|
+
s3ArgGroup.add_argument(
|
|
263
|
+
"--s3-port",
|
|
264
|
+
dest="aiservice_storage_port",
|
|
265
|
+
required=False,
|
|
266
|
+
help="TODO: Write me"
|
|
267
|
+
)
|
|
268
|
+
s3ArgGroup.add_argument(
|
|
269
|
+
"--s3-ssl",
|
|
270
|
+
dest="aiservice_storage_ssl",
|
|
271
|
+
required=False,
|
|
272
|
+
help="TODO: Write me"
|
|
273
|
+
)
|
|
274
|
+
s3ArgGroup.add_argument(
|
|
275
|
+
"--s3-accesskey",
|
|
276
|
+
dest="aiservice_storage_accesskey",
|
|
277
|
+
required=False,
|
|
278
|
+
help="TODO: Write me"
|
|
279
|
+
)
|
|
280
|
+
s3ArgGroup.add_argument(
|
|
281
|
+
"--s3-secretkey",
|
|
282
|
+
dest="aiservice_storage_secretkey",
|
|
283
|
+
required=False,
|
|
284
|
+
help="TODO: Write me"
|
|
285
|
+
)
|
|
286
|
+
s3ArgGroup.add_argument(
|
|
287
|
+
"--s3-region",
|
|
288
|
+
dest="aiservice_storage_region",
|
|
289
|
+
required=False,
|
|
290
|
+
help="TODO: Write me"
|
|
291
|
+
)
|
|
292
|
+
s3ArgGroup.add_argument(
|
|
293
|
+
"--s3-endpoint-url",
|
|
294
|
+
dest="aiservice_s3_endpoint_url",
|
|
295
|
+
required=False,
|
|
296
|
+
help="endpoint url for s3"
|
|
297
|
+
)
|
|
298
|
+
|
|
299
|
+
# S3 - External Access Credentials (Tenant)
|
|
300
|
+
# -----------------------------------------------------------------------------
|
|
301
|
+
s3ArgGroup.add_argument(
|
|
302
|
+
"--s3-tenant-access-key",
|
|
303
|
+
dest="aiservice_tenant_s3_access_key",
|
|
304
|
+
required=False,
|
|
305
|
+
help="access key for s3 ( tenant level )"
|
|
306
|
+
)
|
|
307
|
+
s3ArgGroup.add_argument(
|
|
308
|
+
"--s3-tenant-secret-key",
|
|
309
|
+
dest="aiservice_tenant_s3_secret_key",
|
|
310
|
+
required=False,
|
|
311
|
+
help="secret key for s3 ( tenant level )"
|
|
312
|
+
)
|
|
313
|
+
s3ArgGroup.add_argument(
|
|
314
|
+
"--s3-tenant-region",
|
|
315
|
+
dest="aiservice_tenant_s3_region",
|
|
316
|
+
required=False,
|
|
317
|
+
help="s3 region ( tenant level )"
|
|
318
|
+
)
|
|
319
|
+
s3ArgGroup.add_argument(
|
|
320
|
+
"--s3-tenant-endpoint-url",
|
|
321
|
+
dest="aiservice_tenant_s3_endpoint_url",
|
|
322
|
+
required=False,
|
|
323
|
+
help="endpoint url for s3 ( tenant level )"
|
|
324
|
+
)
|
|
325
|
+
|
|
326
|
+
# Watsonx
|
|
327
|
+
# -----------------------------------------------------------------------------
|
|
328
|
+
watsonxArgGroup = aiServiceinstallArgParser.add_argument_group("Watsonx")
|
|
329
|
+
|
|
330
|
+
watsonxArgGroup.add_argument(
|
|
331
|
+
"--watsonxai-apikey",
|
|
332
|
+
dest="aiservice_watsonxai_apikey",
|
|
333
|
+
required=False,
|
|
334
|
+
help="TODO: Write me"
|
|
335
|
+
)
|
|
336
|
+
watsonxArgGroup.add_argument(
|
|
337
|
+
"--watsonxai-url",
|
|
338
|
+
dest="aiservice_watsonxai_url",
|
|
339
|
+
required=False,
|
|
340
|
+
help="TODO: Write me"
|
|
341
|
+
)
|
|
342
|
+
watsonxArgGroup.add_argument(
|
|
343
|
+
"--watsonxai-project-id",
|
|
344
|
+
dest="aiservice_watsonxai_project_id",
|
|
345
|
+
required=False,
|
|
346
|
+
help="TODO: Write me"
|
|
347
|
+
)
|
|
348
|
+
watsonxArgGroup.add_argument(
|
|
349
|
+
"--watsonx-action",
|
|
350
|
+
dest="aiservice_watsonx_action",
|
|
351
|
+
required=False,
|
|
352
|
+
help="TODO: Write me"
|
|
353
|
+
)
|
|
354
|
+
|
|
355
|
+
|
|
356
|
+
# AI Service
|
|
357
|
+
# -----------------------------------------------------------------------------
|
|
358
|
+
aibrokerArgGroup.add_argument(
|
|
359
|
+
"--tenant-entitlement-type",
|
|
360
|
+
dest="tenant_entitlement_type",
|
|
361
|
+
required=False,
|
|
362
|
+
help="Type of aibroker tenant"
|
|
363
|
+
)
|
|
364
|
+
aibrokerArgGroup.add_argument(
|
|
365
|
+
"--tenant-entitlement-start-date",
|
|
366
|
+
dest="tenant_entitlement_start_date",
|
|
367
|
+
required=False,
|
|
368
|
+
help="Start date for Aibroker tenant"
|
|
369
|
+
)
|
|
370
|
+
aibrokerArgGroup.add_argument(
|
|
371
|
+
"--tenant-entitlement-end-date",
|
|
372
|
+
dest="tenant_entitlement_end_date",
|
|
373
|
+
required=False,
|
|
374
|
+
help="End date for Aibroker tenant"
|
|
375
|
+
)
|
|
376
|
+
aibrokerArgGroup.add_argument(
|
|
377
|
+
"--rsl-url",
|
|
378
|
+
dest="rsl_url",
|
|
379
|
+
required=False,
|
|
380
|
+
help="rsl url"
|
|
381
|
+
)
|
|
382
|
+
aibrokerArgGroup.add_argument(
|
|
383
|
+
"--rsl-org-id",
|
|
384
|
+
dest="rsl_org_id",
|
|
385
|
+
required=False,
|
|
386
|
+
help="org id for rsl"
|
|
387
|
+
)
|
|
388
|
+
aibrokerArgGroup.add_argument(
|
|
389
|
+
"--rsl-token",
|
|
390
|
+
dest="rsl_token",
|
|
391
|
+
required=False,
|
|
392
|
+
help="token for rsl"
|
|
393
|
+
)
|
|
394
|
+
aibrokerArgGroup.add_argument(
|
|
395
|
+
"--environment-type",
|
|
396
|
+
dest="environment_type",
|
|
397
|
+
required=False,
|
|
398
|
+
default="non-production",
|
|
399
|
+
help="Environment type (default: non-production)"
|
|
400
|
+
)
|
|
401
|
+
|
|
402
|
+
|
|
403
|
+
# IBM Db2 Universal Operator
|
|
404
|
+
# -----------------------------------------------------------------------------
|
|
405
|
+
db2ArgGroup = aiServiceinstallArgParser.add_argument_group("IBM Db2 Universal Operator")
|
|
406
|
+
|
|
407
|
+
db2ArgGroup.add_argument(
|
|
408
|
+
"--db2-namespace",
|
|
409
|
+
required=False,
|
|
410
|
+
help="Change namespace where Db2u instances will be created"
|
|
411
|
+
)
|
|
412
|
+
db2ArgGroup.add_argument(
|
|
413
|
+
"--db2-channel",
|
|
414
|
+
required=False,
|
|
415
|
+
help="Subscription channel for Db2u"
|
|
416
|
+
)
|
|
417
|
+
|
|
418
|
+
|
|
419
|
+
# Development Mode
|
|
420
|
+
# -----------------------------------------------------------------------------
|
|
421
|
+
devArgGroup = aiServiceinstallArgParser.add_argument_group("Development Mode")
|
|
422
|
+
devArgGroup.add_argument(
|
|
423
|
+
"--artifactory-username",
|
|
424
|
+
required=False,
|
|
425
|
+
help="Username for access to development builds on Artifactory"
|
|
426
|
+
)
|
|
427
|
+
devArgGroup.add_argument(
|
|
428
|
+
"--artifactory-token",
|
|
429
|
+
required=False,
|
|
430
|
+
help="API Token for access to development builds on Artifactory"
|
|
431
|
+
)
|
|
432
|
+
|
|
433
|
+
# Approvals
|
|
434
|
+
# -----------------------------------------------------------------------------
|
|
435
|
+
approvalsGroup = aiServiceinstallArgParser.add_argument_group("Integrated Approval Workflow (MAX_RETRIES:RETRY_DELAY:IGNORE_FAILURE)")
|
|
436
|
+
approvalsGroup.add_argument(
|
|
437
|
+
"--approval-aiservice",
|
|
438
|
+
default="",
|
|
439
|
+
help="Require approval after the AI Service has been configured"
|
|
440
|
+
)
|
|
441
|
+
|
|
442
|
+
# More Options
|
|
443
|
+
# -----------------------------------------------------------------------------
|
|
444
|
+
otherArgGroup = aiServiceinstallArgParser.add_argument_group("More")
|
|
445
|
+
otherArgGroup.add_argument(
|
|
446
|
+
"--advanced",
|
|
447
|
+
action="store_true",
|
|
448
|
+
default=False,
|
|
449
|
+
help="Show advanced install options (in interactve mode)"
|
|
450
|
+
)
|
|
451
|
+
otherArgGroup.add_argument(
|
|
452
|
+
"--simplified",
|
|
453
|
+
action="store_true",
|
|
454
|
+
default=False,
|
|
455
|
+
help="Don't show advanced install options (in interactve mode)"
|
|
456
|
+
)
|
|
457
|
+
otherArgGroup.add_argument(
|
|
458
|
+
"--accept-license",
|
|
459
|
+
action="store_true",
|
|
460
|
+
default=False,
|
|
461
|
+
help="Accept all license terms without prompting"
|
|
462
|
+
)
|
|
463
|
+
otherArgGroup.add_argument(
|
|
464
|
+
"--dev-mode",
|
|
465
|
+
required=False,
|
|
466
|
+
action="store_true",
|
|
467
|
+
default=False,
|
|
468
|
+
help="Configure installation for development mode",
|
|
469
|
+
)
|
|
470
|
+
otherArgGroup.add_argument(
|
|
471
|
+
"--no-wait-for-pvc",
|
|
472
|
+
required=False,
|
|
473
|
+
action="store_true",
|
|
474
|
+
help="Disable the wait for pipeline PVC to bind before starting the pipeline"
|
|
475
|
+
)
|
|
476
|
+
otherArgGroup.add_argument(
|
|
477
|
+
"--skip-pre-check",
|
|
478
|
+
required=False,
|
|
479
|
+
action="store_true",
|
|
480
|
+
help="Disable the 'pre-install-check' at the start of the install pipeline"
|
|
481
|
+
)
|
|
482
|
+
otherArgGroup.add_argument(
|
|
483
|
+
"--no-confirm",
|
|
484
|
+
required=False,
|
|
485
|
+
action="store_true",
|
|
486
|
+
default=False,
|
|
487
|
+
help="Launch the upgrade without prompting for confirmation",
|
|
488
|
+
)
|
|
489
|
+
otherArgGroup.add_argument(
|
|
490
|
+
"--image-pull-policy",
|
|
491
|
+
dest="image_pull_policy",
|
|
492
|
+
required=False,
|
|
493
|
+
help="Manually set the image pull policy used in the Tekton Pipeline",
|
|
494
|
+
)
|
|
495
|
+
otherArgGroup.add_argument(
|
|
496
|
+
"--service-account",
|
|
497
|
+
dest="service_account_name",
|
|
498
|
+
required=False,
|
|
499
|
+
help="Run the install pipeline under a custom service account (also disables creation of the default 'pipeline' service account)",
|
|
500
|
+
)
|
|
501
|
+
|
|
502
|
+
otherArgGroup.add_argument(
|
|
503
|
+
"-h", "--help",
|
|
504
|
+
action="help",
|
|
505
|
+
default=False,
|
|
506
|
+
help="Show this help message and exit",
|
|
507
|
+
)
|