mas-cli 11.6.0__py3-none-any.whl → 11.7.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.

@@ -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
  # -----------------------------------------------------------------------------
@@ -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.printH2("Installation Namespace")
130
- self.promptForString("Install namespace", "db2_namespace", default="db2u")
131
-
132
- # Node Affinity & Tolerations
133
- # -------------------------------------------------------------------------
134
- self.printH2("Node Affinity and Tolerations")
135
- self.printDescription([
136
- "Note that the same settings are applied to both the IoT and Manage Db2 instances",
137
- "Use existing node labels and taints to control scheduling of the Db2 workload in your cluster",
138
- "For more information refer to the Red Hat documentation:",
139
- " - <u>https://docs.openshift.com/container-platform/4.12/nodes/scheduling/nodes-scheduler-node-affinity.html</u>",
140
- " - <u>https://docs.openshift.com/container-platform/4.12/nodes/scheduling/nodes-scheduler-taints-tolerations.html</u>"
141
- ])
142
-
143
- if self.yesOrNo("Configure node affinity"):
144
- self.promptForString(" + Key", "db2_affinity_key")
145
- self.promptForString(" + Value", "db2_affinity_value")
146
-
147
- if self.yesOrNo("Configure node tolerations"):
148
- self.promptForString(" + Key", "db2_tolerate_key")
149
- self.promptForString(" + Value", "db2_tolerate_value")
150
- self.promptForString(" + Effect", "db2_tolerate_effect")
151
-
152
- self.printH2("Database CPU & Memory")
153
- self.printDescription([
154
- "Note that the same settings are applied to both the IoT and Manage Db2 instances"
155
- ])
156
-
157
- if self.yesOrNo("Customize CPU and memory request/limit"):
158
- self.promptForString(" + CPU Request", "db2_cpu_requests", default=self.getParam("db2_cpu_requests"))
159
- self.promptForString(" + CPU Limit", "db2_cpu_limits", default=self.getParam("db2_cpu_limits"))
160
- self.promptForString(" + Memory Request", "db2_memory_requests", default=self.getParam("db2_memory_requests"))
161
- self.promptForString(" + Memory Limit", "db2_memory_limits", default=self.getParam("db2_memory_limits"))
162
-
163
- self.printH2("Database Storage Capacity")
164
- self.printDescription([
165
- "Note that the same settings are applied to both the IoT and Manage Db2 instances"
166
- ])
167
-
168
- if self.yesOrNo("Customize storage capacity"):
169
- self.promptForString(" + Data Volume", "db2_data_storage_size", default=self.getParam("db2_data_storage_size"))
170
- self.promptForString(" + Temporary Volume", "db2_temp_storage_size", default=self.getParam("db2_temp_storage_size"))
171
- self.promptForString(" + Metadata Volume", "db2_meta_storage_size", default=self.getParam("db2_meta_storage_size"))
172
- self.promptForString(" + Transaction Logs Volume", "db2_logs_storage_size", default=self.getParam("db2_logs_storage_size"))
173
- self.promptForString(" + Backup Volume", "db2_backup_storage_size", default=self.getParam("db2_backup_storage_size"))
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.printDescription([
28
- "",
29
- "Kafka Provider:",
30
- " 1. Strimzi (opensource)",
31
- " 2. Red Hat AMQ Streams (requires a separate license)",
32
- " 3. IBM Cloud Event Streams (paid IBM Cloud service)",
33
- " 4. AWS MSK (paid AWS service)"
34
- ])
35
- self.promptForListSelect("Select Kafka provider", ["strimzi", "redhat", "ibm", "aws"], "kafka_provider")
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.promptForString("Install namespace", "kafka_namespace", default="strimzi")
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":