mas-cli 11.6.0__py3-none-any.whl → 11.8.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 +41 -4
- mas/cli/gencfg.py +32 -8
- mas/cli/install/app.py +204 -383
- mas/cli/install/argBuilder.py +2 -0
- mas/cli/install/argParser.py +19 -0
- mas/cli/install/catalogs.py +141 -0
- mas/cli/install/params.py +168 -0
- mas/cli/install/settings/__init__.py +2 -1
- mas/cli/install/settings/additionalConfigs.py +1 -1
- mas/cli/install/settings/db2Settings.py +75 -45
- mas/cli/install/settings/kafkaSettings.py +14 -10
- mas/cli/install/settings/manageSettings.py +47 -41
- mas/cli/install/settings/mongodbSettings.py +42 -0
- mas/cli/install/settings/turbonomicSettings.py +14 -13
- mas/cli/install/summarizer.py +9 -9
- mas/cli/templates/ibm-mas-tekton.yaml +308 -105
- mas/cli/templates/suite_mongocfg.yml.j2 +55 -0
- mas/cli/update/app.py +20 -15
- {mas_cli-11.6.0.dist-info → mas_cli-11.8.0.dist-info}/METADATA +2 -2
- {mas_cli-11.6.0.dist-info → mas_cli-11.8.0.dist-info}/RECORD +24 -20
- {mas_cli-11.6.0.dist-info → mas_cli-11.8.0.dist-info}/WHEEL +1 -1
- {mas_cli-11.6.0.data → mas_cli-11.8.0.data}/scripts/mas-cli +0 -0
- {mas_cli-11.6.0.dist-info → mas_cli-11.8.0.dist-info}/top_level.txt +0 -0
mas/cli/install/argBuilder.py
CHANGED
|
@@ -119,6 +119,8 @@ class installArgBuilderMixin():
|
|
|
119
119
|
# IBM Suite License Service
|
|
120
120
|
# -----------------------------------------------------------------------------
|
|
121
121
|
command += f" --license-file \"{self.slsLicenseFileLocal}\"{newline}"
|
|
122
|
+
if self.getParam("sls_namespace") != "ibm-sls":
|
|
123
|
+
command += f" --sls-namespace \"{self.getParam('sls_namespace')}\"{newline}"
|
|
122
124
|
|
|
123
125
|
# IBM Data Reporting Operator (DRO)
|
|
124
126
|
# -----------------------------------------------------------------------------
|
mas/cli/install/argParser.py
CHANGED
|
@@ -250,6 +250,12 @@ slsArgGroup.add_argument(
|
|
|
250
250
|
help="Path to MAS license file",
|
|
251
251
|
type=lambda x: isValidFile(installArgParser, x)
|
|
252
252
|
)
|
|
253
|
+
slsArgGroup.add_argument(
|
|
254
|
+
"--sls-namespace",
|
|
255
|
+
required=False,
|
|
256
|
+
help="Customize the SLS install namespace",
|
|
257
|
+
default="ibm-sls"
|
|
258
|
+
)
|
|
253
259
|
|
|
254
260
|
# IBM Data Reporting Operator (DRO)
|
|
255
261
|
# -----------------------------------------------------------------------------
|
|
@@ -1041,6 +1047,19 @@ approvalsGroup.add_argument(
|
|
|
1041
1047
|
# More Options
|
|
1042
1048
|
# -----------------------------------------------------------------------------
|
|
1043
1049
|
otherArgGroup = installArgParser.add_argument_group("More")
|
|
1050
|
+
otherArgGroup.add_argument(
|
|
1051
|
+
"--advanced",
|
|
1052
|
+
action="store_true",
|
|
1053
|
+
default=False,
|
|
1054
|
+
help="Show advanced install options (in interactve mode)"
|
|
1055
|
+
)
|
|
1056
|
+
otherArgGroup.add_argument(
|
|
1057
|
+
"--simplified",
|
|
1058
|
+
action="store_true",
|
|
1059
|
+
default=False,
|
|
1060
|
+
help="Don't show advanced install options (in interactve mode)"
|
|
1061
|
+
)
|
|
1062
|
+
|
|
1044
1063
|
otherArgGroup.add_argument(
|
|
1045
1064
|
"--accept-license",
|
|
1046
1065
|
action="store_true",
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
# *****************************************************************************
|
|
2
|
+
# Copyright (c) 2024 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
|
+
catalogChoices = {
|
|
12
|
+
"amd64": [
|
|
13
|
+
{
|
|
14
|
+
"#": 1,
|
|
15
|
+
"catalog": "v9-241107-amd64",
|
|
16
|
+
"release": "9.0.x",
|
|
17
|
+
"core": "9.0.5",
|
|
18
|
+
"assist": "9.0.2",
|
|
19
|
+
"iot": "9.0.4",
|
|
20
|
+
"manage": "9.0.5",
|
|
21
|
+
"monitor": "9.0.4",
|
|
22
|
+
"optimizer": "9.0.4",
|
|
23
|
+
"predict": "9.0.2",
|
|
24
|
+
"inspection": "9.0.4",
|
|
25
|
+
"aibroker": "9.0.3"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"#": 2,
|
|
29
|
+
"catalog": "v9-241107-amd64",
|
|
30
|
+
"release": "8.11.x",
|
|
31
|
+
"core": "8.11.16",
|
|
32
|
+
"assist": "8.8.6",
|
|
33
|
+
"iot": "8.8.14",
|
|
34
|
+
"manage": "8.7.13",
|
|
35
|
+
"monitor": "8.11.12",
|
|
36
|
+
"optimizer": "8.5.10",
|
|
37
|
+
"predict": "8.9.5",
|
|
38
|
+
"inspection": "8.9.7"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"#": 3,
|
|
42
|
+
"catalog": "v9-241107-amd64",
|
|
43
|
+
"release": "8.10.x",
|
|
44
|
+
"core": "8.10.19",
|
|
45
|
+
"assist": "8.7.7",
|
|
46
|
+
"iot": "8.7.18",
|
|
47
|
+
"manage": "8.6.19",
|
|
48
|
+
"monitor": "8.10.14",
|
|
49
|
+
"optimizer": "8.4.11",
|
|
50
|
+
"predict": "8.8.4",
|
|
51
|
+
"inspection": "8.8.4"
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"#": 4,
|
|
55
|
+
"catalog": "v9-241003-amd64",
|
|
56
|
+
"release": "9.0.x",
|
|
57
|
+
"core": "9.0.3",
|
|
58
|
+
"assist": "9.0.2",
|
|
59
|
+
"iot": "9.0.3",
|
|
60
|
+
"manage": "9.0.3",
|
|
61
|
+
"monitor": "9.0.3",
|
|
62
|
+
"optimizer": "9.0.3",
|
|
63
|
+
"predict": "9.0.2",
|
|
64
|
+
"inspection": "9.0.3"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"#": 5,
|
|
68
|
+
"catalog": "v9-241003-amd64",
|
|
69
|
+
"release": "8.11.x",
|
|
70
|
+
"core": "8.11.15",
|
|
71
|
+
"assist": "8.8.6",
|
|
72
|
+
"iot": "8.8.13",
|
|
73
|
+
"manage": "8.7.12",
|
|
74
|
+
"monitor": "8.11.11",
|
|
75
|
+
"optimizer": "8.5.9",
|
|
76
|
+
"predict": "8.9.5",
|
|
77
|
+
"inspection": "8.9.6"
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"#": 6,
|
|
81
|
+
"catalog": "v9-241003-amd64",
|
|
82
|
+
"release": "8.10.x",
|
|
83
|
+
"core": "8.10.18",
|
|
84
|
+
"assist": "8.7.7",
|
|
85
|
+
"iot": "8.7.17",
|
|
86
|
+
"manage": "8.6.18",
|
|
87
|
+
"monitor": "8.10.14",
|
|
88
|
+
"optimizer": "8.4.10",
|
|
89
|
+
"predict": "8.8.3",
|
|
90
|
+
"inspection": "8.8.4"
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"#": 7,
|
|
94
|
+
"catalog": "v9-240827-amd64",
|
|
95
|
+
"release": "9.0.x",
|
|
96
|
+
"core": "9.0.2",
|
|
97
|
+
"assist": "9.0.2",
|
|
98
|
+
"iot": "9.0.2",
|
|
99
|
+
"manage": "9.0.2",
|
|
100
|
+
"monitor": "9.0.2",
|
|
101
|
+
"optimizer": "9.0.2",
|
|
102
|
+
"predict": "9.0.1",
|
|
103
|
+
"inspection": "9.0.2"
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"#": 8,
|
|
107
|
+
"catalog": "v9-240827-amd64",
|
|
108
|
+
"release": "8.11.x",
|
|
109
|
+
"core": "8.11.14",
|
|
110
|
+
"assist": "8.8.6",
|
|
111
|
+
"iot": "8.8.12",
|
|
112
|
+
"manage": "8.7.11",
|
|
113
|
+
"monitor": "8.11.10",
|
|
114
|
+
"optimizer": "8.5.8",
|
|
115
|
+
"predict": "8.9.3",
|
|
116
|
+
"inspection": "8.9.5"
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
"#": 9,
|
|
120
|
+
"catalog": "v9-240827-amd64",
|
|
121
|
+
"release": "8.10.x",
|
|
122
|
+
"core": "8.10.17",
|
|
123
|
+
"assist": "8.7.7",
|
|
124
|
+
"iot": "8.7.16",
|
|
125
|
+
"manage": "8.6.17",
|
|
126
|
+
"monitor": "8.10.13",
|
|
127
|
+
"optimizer": "8.4.9",
|
|
128
|
+
"predict": "8.8.3",
|
|
129
|
+
"inspection": "8.8.4"
|
|
130
|
+
}
|
|
131
|
+
],
|
|
132
|
+
"s390x": [
|
|
133
|
+
{
|
|
134
|
+
"#": 1,
|
|
135
|
+
"catalog": "v9-241107-s390x",
|
|
136
|
+
"release": "9.0.x",
|
|
137
|
+
"core": "9.0.5",
|
|
138
|
+
"manage": "9.0.5"
|
|
139
|
+
}
|
|
140
|
+
]
|
|
141
|
+
}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
# *****************************************************************************
|
|
2
|
+
# Copyright (c) 2024 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
|
+
requiredParams = [
|
|
12
|
+
# MAS
|
|
13
|
+
"mas_catalog_version",
|
|
14
|
+
"mas_channel",
|
|
15
|
+
"mas_instance_id",
|
|
16
|
+
"mas_workspace_id",
|
|
17
|
+
"mas_workspace_name",
|
|
18
|
+
# Storage classes
|
|
19
|
+
"storage_class_rwo",
|
|
20
|
+
"storage_class_rwx",
|
|
21
|
+
# Entitlement
|
|
22
|
+
"ibm_entitlement_key",
|
|
23
|
+
# DRO
|
|
24
|
+
"uds_contact_email",
|
|
25
|
+
"uds_contact_firstname",
|
|
26
|
+
"uds_contact_lastname"
|
|
27
|
+
]
|
|
28
|
+
|
|
29
|
+
optionalParams = [
|
|
30
|
+
# Pipeline
|
|
31
|
+
"image_pull_policy",
|
|
32
|
+
# OpenShift
|
|
33
|
+
"ocp_ingress_tls_secret_name",
|
|
34
|
+
# MAS
|
|
35
|
+
"mas_catalog_digest",
|
|
36
|
+
"mas_superuser_username",
|
|
37
|
+
"mas_superuser_password",
|
|
38
|
+
"mas_trust_default_cas",
|
|
39
|
+
"mas_app_settings_server_bundles_size",
|
|
40
|
+
"mas_app_settings_default_jms",
|
|
41
|
+
"mas_app_settings_persistent_volumes_flag",
|
|
42
|
+
"mas_app_settings_demodata",
|
|
43
|
+
"mas_app_settings_customization_archive_name",
|
|
44
|
+
"mas_app_settings_customization_archive_url",
|
|
45
|
+
"mas_app_settings_customization_archive_username",
|
|
46
|
+
"mas_app_settings_customization_archive_password",
|
|
47
|
+
"mas_app_settings_tablespace",
|
|
48
|
+
"mas_app_settings_indexspace",
|
|
49
|
+
"mas_app_settings_db2_schema",
|
|
50
|
+
"mas_app_settings_crypto_key",
|
|
51
|
+
"mas_app_settings_cryptox_key",
|
|
52
|
+
"mas_app_settings_old_crypto_key",
|
|
53
|
+
"mas_app_settings_old_cryptox_key",
|
|
54
|
+
"mas_app_settings_override_encryption_secrets_flag",
|
|
55
|
+
"mas_app_settings_base_lang",
|
|
56
|
+
"mas_app_settings_secondary_langs",
|
|
57
|
+
"mas_app_settings_server_timezone",
|
|
58
|
+
"mas_appws_bindings_jdbc_manage",
|
|
59
|
+
"mas_appws_components",
|
|
60
|
+
"mas_domain",
|
|
61
|
+
# SLS
|
|
62
|
+
"sls_namespace",
|
|
63
|
+
# DNS Providers
|
|
64
|
+
# TODO: Add CloudFlare and Route53 support
|
|
65
|
+
"dns_provider",
|
|
66
|
+
"cis_email",
|
|
67
|
+
"cis_apikey",
|
|
68
|
+
"cis_crn",
|
|
69
|
+
"cis_subdomain",
|
|
70
|
+
# DRO
|
|
71
|
+
"dro_namespace",
|
|
72
|
+
# MongoDb
|
|
73
|
+
"mongodb_namespace",
|
|
74
|
+
# Db2
|
|
75
|
+
"db2_action_system",
|
|
76
|
+
"db2_action_manage",
|
|
77
|
+
"db2_type",
|
|
78
|
+
"db2_timezone",
|
|
79
|
+
"db2_namespace",
|
|
80
|
+
"db2_channel",
|
|
81
|
+
"db2_affinity_key",
|
|
82
|
+
"db2_affinity_value",
|
|
83
|
+
"db2_tolerate_key",
|
|
84
|
+
"db2_tolerate_value",
|
|
85
|
+
"db2_tolerate_effect",
|
|
86
|
+
"db2_cpu_requests",
|
|
87
|
+
"db2_cpu_limits",
|
|
88
|
+
"db2_memory_requests",
|
|
89
|
+
"db2_memory_limits",
|
|
90
|
+
"db2_backup_storage_size",
|
|
91
|
+
"db2_data_storage_size",
|
|
92
|
+
"db2_logs_storage_size",
|
|
93
|
+
"db2_meta_storage_size",
|
|
94
|
+
"db2_temp_storage_size",
|
|
95
|
+
# CP4D
|
|
96
|
+
"cpd_product_version",
|
|
97
|
+
"cpd_install_cognos",
|
|
98
|
+
"cpd_install_openscale",
|
|
99
|
+
"cpd_install_spss",
|
|
100
|
+
# Kafka
|
|
101
|
+
"kafka_namespace",
|
|
102
|
+
"kafka_version",
|
|
103
|
+
"aws_msk_instance_type",
|
|
104
|
+
"aws_msk_instance_number",
|
|
105
|
+
"aws_msk_volume_size",
|
|
106
|
+
"aws_msk_cidr_az1",
|
|
107
|
+
"aws_msk_cidr_az2",
|
|
108
|
+
"aws_msk_cidr_az3",
|
|
109
|
+
"aws_msk_egress_cidr",
|
|
110
|
+
"aws_msk_ingress_cidr",
|
|
111
|
+
"eventstreams_resource_group",
|
|
112
|
+
"eventstreams_instance_name",
|
|
113
|
+
"eventstreams_instance_location",
|
|
114
|
+
# COS
|
|
115
|
+
"cos_type",
|
|
116
|
+
"ibmcos_resourcegroup",
|
|
117
|
+
# ECK
|
|
118
|
+
"eck_action",
|
|
119
|
+
"eck_enable_logstash",
|
|
120
|
+
"eck_remote_es_hosts",
|
|
121
|
+
"eck_remote_es_username",
|
|
122
|
+
"eck_remote_es_password",
|
|
123
|
+
# Turbonomic
|
|
124
|
+
"turbonomic_target_name",
|
|
125
|
+
"turbonomic_server_url",
|
|
126
|
+
"turbonomic_server_version",
|
|
127
|
+
"turbonomic_username",
|
|
128
|
+
"turbonomic_password",
|
|
129
|
+
# Cloud Providers
|
|
130
|
+
"ibmcloud_apikey",
|
|
131
|
+
"aws_region",
|
|
132
|
+
"aws_access_key_id",
|
|
133
|
+
"secret_access_key",
|
|
134
|
+
"aws_vpc_id",
|
|
135
|
+
# Dev Mode
|
|
136
|
+
"artifactory_username",
|
|
137
|
+
"artifactory_token",
|
|
138
|
+
# TODO: The way arcgis has been implemented needs to be fixed
|
|
139
|
+
"install_arcgis",
|
|
140
|
+
"mas_arcgis_channel",
|
|
141
|
+
# Guided Tour
|
|
142
|
+
"mas_enable_walkme",
|
|
143
|
+
# Aibroker
|
|
144
|
+
"mas_aibroker_storage_provider",
|
|
145
|
+
"mas_aibroker_storage_accesskey",
|
|
146
|
+
"mas_aibroker_storage_secretkey",
|
|
147
|
+
"mas_aibroker_storage_host",
|
|
148
|
+
"mas_aibroker_storage_port",
|
|
149
|
+
"mas_aibroker_storage_ssl",
|
|
150
|
+
"mas_aibroker_storage_region",
|
|
151
|
+
"mas_aibroker_storage_pipelines_bucket",
|
|
152
|
+
"mas_aibroker_storage_tenants_bucket",
|
|
153
|
+
"mas_aibroker_storage_templates_bucket",
|
|
154
|
+
"mas_aibroker_tenant_name",
|
|
155
|
+
"mas_aibroker_watsonxai_apikey",
|
|
156
|
+
"mas_aibroker_watsonxai_url",
|
|
157
|
+
"mas_aibroker_watsonxai_project_id",
|
|
158
|
+
"mas_aibroker_watsonx_action",
|
|
159
|
+
"mas_aibroker_db_host",
|
|
160
|
+
"mas_aibroker_db_port",
|
|
161
|
+
"mas_aibroker_db_user",
|
|
162
|
+
"mas_aibroker_db_database",
|
|
163
|
+
"mas_aibroker_db_secret_name",
|
|
164
|
+
"mas_aibroker_db_secret_key",
|
|
165
|
+
"mas_aibroker_db_secret_value",
|
|
166
|
+
# Special chars
|
|
167
|
+
"mas_special_characters"
|
|
168
|
+
]
|
|
@@ -9,13 +9,14 @@
|
|
|
9
9
|
# *****************************************************************************
|
|
10
10
|
|
|
11
11
|
from .db2Settings import Db2SettingsMixin
|
|
12
|
+
from .mongodbSettings import MongoDbSettingsMixin
|
|
12
13
|
from .kafkaSettings import KafkaSettingsMixin
|
|
13
14
|
from .manageSettings import ManageSettingsMixin
|
|
14
15
|
from .turbonomicSettings import TurbonomicSettingsMixin
|
|
15
16
|
from .additionalConfigs import AdditionalConfigsMixin
|
|
16
17
|
|
|
17
18
|
|
|
18
|
-
class InstallSettingsMixin(Db2SettingsMixin, KafkaSettingsMixin, ManageSettingsMixin, TurbonomicSettingsMixin, AdditionalConfigsMixin):
|
|
19
|
+
class InstallSettingsMixin(Db2SettingsMixin, MongoDbSettingsMixin, KafkaSettingsMixin, ManageSettingsMixin, TurbonomicSettingsMixin, AdditionalConfigsMixin):
|
|
19
20
|
"""
|
|
20
21
|
This class collects all the Mixins providing interactive prompts for mas-install
|
|
21
22
|
"""
|
|
@@ -63,7 +63,7 @@ class AdditionalConfigsMixin():
|
|
|
63
63
|
self.additionalConfigsSecret = additionalConfigsSecret
|
|
64
64
|
|
|
65
65
|
def podTemplates(self) -> None:
|
|
66
|
-
if self.interactiveMode:
|
|
66
|
+
if self.interactiveMode and self.showAdvancedOptions:
|
|
67
67
|
self.printH1("Configure Pod Templates")
|
|
68
68
|
self.printDescription([
|
|
69
69
|
"The CLI supports two pod template profiles out of the box that allow you to reconfigure MAS for either a guaranteed or best effort QoS level",
|
|
@@ -18,12 +18,39 @@ class Db2SettingsMixin():
|
|
|
18
18
|
# The channel used for Db2 used has not changed since the January 2024 catalog update
|
|
19
19
|
self.params["db2_channel"] = "v110509.0"
|
|
20
20
|
|
|
21
|
+
# If neither Iot or Manage is being installed, we have nothing to do
|
|
21
22
|
if not self.installIoT and not self.installManage:
|
|
22
23
|
print_formatted_text("No applications have been selected that require a Db2 installation")
|
|
23
24
|
self.setParam("db2_action_system", "none")
|
|
24
25
|
self.setParam("db2_action_manage", "none")
|
|
25
26
|
return
|
|
26
27
|
|
|
28
|
+
# For now we are limiting users to bring your own database for Manage on s390x
|
|
29
|
+
# Eventually we will be able to remove this clause and allow the standard logic to work for both s390x and amd64
|
|
30
|
+
if self.architecture == "s390x" and self.installManage:
|
|
31
|
+
self.printDescription([
|
|
32
|
+
"Installation of a Db2 instance using the IBM Db2 Universal Operator is not currently supported on s390x, please provide configuration details for the database you wish to use.",
|
|
33
|
+
])
|
|
34
|
+
instanceId = self.getParam('mas_instance_id')
|
|
35
|
+
workspaceId = self.getParam("mas_workspace_id")
|
|
36
|
+
|
|
37
|
+
self.setParam("mas_appws_bindings_jdbc_manage", "workspace-application")
|
|
38
|
+
self.setParam("db2_action_manage", "byo")
|
|
39
|
+
self.selectLocalConfigDir()
|
|
40
|
+
|
|
41
|
+
# Check if a configuration already exists before creating a new one
|
|
42
|
+
jdbcCfgFile = path.join(self.localConfigDir, f"jdbc-{instanceId}-manage.yaml")
|
|
43
|
+
print_formatted_text(f"Searching for Manage database configuration file in {jdbcCfgFile} ...")
|
|
44
|
+
if path.exists(jdbcCfgFile):
|
|
45
|
+
if self.yesOrNo(f"Manage database configuration file 'jdbc-{instanceId}-manage.yaml' already exists. Do you want to generate a new one"):
|
|
46
|
+
self.generateJDBCCfg(instanceId=instanceId, scope="workspace-application", workspaceId=workspaceId, appId="manage", destination=jdbcCfgFile)
|
|
47
|
+
else:
|
|
48
|
+
print_formatted_text(f"Expected file ({jdbcCfgFile}) was not found, generating a valid Manage database configuration file now ...")
|
|
49
|
+
self.generateJDBCCfg(instanceId=instanceId, scope="workspace-application", workspaceId=workspaceId, appId="manage", destination=jdbcCfgFile)
|
|
50
|
+
return
|
|
51
|
+
|
|
52
|
+
# Proceed as normal
|
|
53
|
+
# We know we are installing either IoT or Manage, and on amd64 target architecture
|
|
27
54
|
self.printDescription([
|
|
28
55
|
"The installer can setup one or more IBM Db2 instances in your OpenShift cluster for the use of applications that require a JDBC datasource (IoT, Manage, Monitor, & Predict) or you may choose to configure MAS to use an existing database"
|
|
29
56
|
])
|
|
@@ -126,48 +153,51 @@ class Db2SettingsMixin():
|
|
|
126
153
|
|
|
127
154
|
# Do we need to configure Db2u?
|
|
128
155
|
if self.getParam("db2_action_system") == "install" or self.getParam("db2_action_manage") == "install":
|
|
129
|
-
self.
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
self.
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
self.
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
self.
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
self.
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
156
|
+
if self.showAdvancedOptions:
|
|
157
|
+
self.printH2("Installation Namespace")
|
|
158
|
+
self.promptForString("Install namespace", "db2_namespace", default="db2u")
|
|
159
|
+
|
|
160
|
+
# Node Affinity & Tolerations
|
|
161
|
+
# -------------------------------------------------------------------------
|
|
162
|
+
self.printH2("Node Affinity and Tolerations")
|
|
163
|
+
self.printDescription([
|
|
164
|
+
"Note that the same settings are applied to both the IoT and Manage Db2 instances",
|
|
165
|
+
"Use existing node labels and taints to control scheduling of the Db2 workload in your cluster",
|
|
166
|
+
"For more information refer to the Red Hat documentation:",
|
|
167
|
+
" - <u>https://docs.openshift.com/container-platform/4.12/nodes/scheduling/nodes-scheduler-node-affinity.html</u>",
|
|
168
|
+
" - <u>https://docs.openshift.com/container-platform/4.12/nodes/scheduling/nodes-scheduler-taints-tolerations.html</u>"
|
|
169
|
+
])
|
|
170
|
+
|
|
171
|
+
if self.yesOrNo("Configure node affinity"):
|
|
172
|
+
self.promptForString(" + Key", "db2_affinity_key")
|
|
173
|
+
self.promptForString(" + Value", "db2_affinity_value")
|
|
174
|
+
|
|
175
|
+
if self.yesOrNo("Configure node tolerations"):
|
|
176
|
+
self.promptForString(" + Key", "db2_tolerate_key")
|
|
177
|
+
self.promptForString(" + Value", "db2_tolerate_value")
|
|
178
|
+
self.promptForString(" + Effect", "db2_tolerate_effect")
|
|
179
|
+
|
|
180
|
+
self.printH2("Database CPU & Memory")
|
|
181
|
+
self.printDescription([
|
|
182
|
+
"Note that the same settings are applied to both the IoT and Manage Db2 instances"
|
|
183
|
+
])
|
|
184
|
+
|
|
185
|
+
if self.yesOrNo("Customize CPU and memory request/limit"):
|
|
186
|
+
self.promptForString(" + CPU Request", "db2_cpu_requests", default=self.getParam("db2_cpu_requests"))
|
|
187
|
+
self.promptForString(" + CPU Limit", "db2_cpu_limits", default=self.getParam("db2_cpu_limits"))
|
|
188
|
+
self.promptForString(" + Memory Request", "db2_memory_requests", default=self.getParam("db2_memory_requests"))
|
|
189
|
+
self.promptForString(" + Memory Limit", "db2_memory_limits", default=self.getParam("db2_memory_limits"))
|
|
190
|
+
|
|
191
|
+
self.printH2("Database Storage Capacity")
|
|
192
|
+
self.printDescription([
|
|
193
|
+
"Note that the same settings are applied to both the IoT and Manage Db2 instances"
|
|
194
|
+
])
|
|
195
|
+
|
|
196
|
+
if self.yesOrNo("Customize storage capacity"):
|
|
197
|
+
self.promptForString(" + Data Volume", "db2_data_storage_size", default=self.getParam("db2_data_storage_size"))
|
|
198
|
+
self.promptForString(" + Temporary Volume", "db2_temp_storage_size", default=self.getParam("db2_temp_storage_size"))
|
|
199
|
+
self.promptForString(" + Metadata Volume", "db2_meta_storage_size", default=self.getParam("db2_meta_storage_size"))
|
|
200
|
+
self.promptForString(" + Transaction Logs Volume", "db2_logs_storage_size", default=self.getParam("db2_logs_storage_size"))
|
|
201
|
+
self.promptForString(" + Backup Volume", "db2_backup_storage_size", default=self.getParam("db2_backup_storage_size"))
|
|
202
|
+
else:
|
|
203
|
+
self.setParam("db2_namespace", "db2u")
|
|
@@ -24,15 +24,18 @@ class KafkaSettingsMixin():
|
|
|
24
24
|
if self.yesOrNo("Create system Kafka instance using one of the supported providers"):
|
|
25
25
|
self.setParam("kafka_action_system", "install")
|
|
26
26
|
|
|
27
|
-
self.
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
27
|
+
if self.showAdvancedOptions:
|
|
28
|
+
self.printDescription([
|
|
29
|
+
"",
|
|
30
|
+
"Kafka Provider:",
|
|
31
|
+
" 1. Strimzi (opensource)",
|
|
32
|
+
" 2. Red Hat AMQ Streams (requires a separate license)",
|
|
33
|
+
" 3. IBM Cloud Event Streams (paid IBM Cloud service)",
|
|
34
|
+
" 4. AWS MSK (paid AWS service)"
|
|
35
|
+
])
|
|
36
|
+
self.promptForListSelect("Select Kafka provider", ["strimzi", "redhat", "ibm", "aws"], "kafka_provider")
|
|
37
|
+
else:
|
|
38
|
+
self.setParam("kafka_provider", "strimzi")
|
|
36
39
|
|
|
37
40
|
if self.getParam("kafka_provider") == "strimzi":
|
|
38
41
|
self.printDescription([
|
|
@@ -42,7 +45,8 @@ class KafkaSettingsMixin():
|
|
|
42
45
|
" - If you are using the latest available operator catalog then the default version below can be accepted",
|
|
43
46
|
" - If you are using older operator catalogs (e.g. in a disconnected install) you should confirm the supported versions in your OperatorHub"
|
|
44
47
|
])
|
|
45
|
-
self.
|
|
48
|
+
if self.showAdvancedOptions:
|
|
49
|
+
self.promptForString("Strimzi namespace", "kafka_namespace", default="strimzi")
|
|
46
50
|
self.promptForString("Kafka version", "kafka_version", default="3.7.0")
|
|
47
51
|
|
|
48
52
|
elif self.getParam("kafka_provider") == "redhat":
|