Skip to content

Commit fd59355

Browse files
authored
Merge branch 'master' into monthlyupdate
2 parents 31a5d4b + a0d919a commit fd59355

10 files changed

Lines changed: 110 additions & 28 deletions

File tree

docs/catalogs/index.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@ The MAS CLI maintains a rolling window of approximately four months worth of sup
1010

1111

1212
### Catalog Directory
13-
Note: The Red Hat Extended Update Support Add-on Term 1 offering is included with the OCP subscription that comes with a MAS license. In the case of EUS denoted OCP releases, the support dates stated below refer to the EUS1 end dates. For more details on the OCP support lifecycle see: [https://access.redhat.com/support/policy/updates/openshift](https://access.redhat.com/support/policy/updates/openshift). Also note that support for the non-EUS releases expires before the extended support for the previous EUS release, for example extended support for OCP 4.18 expires on Feb 25, 2027, while standard support for OCP 4.17 expires on April 1, 2026.
13+
The Red Hat Extended Update Support Add-on Term 1 offering is included with the OCP subscription that comes with a MAS license. In the case of EUS denoted OCP releases, the support dates stated below refer to the EUS1 end dates.
14+
15+
For more details refer to the [OCP lifecycle policy](https://access.redhat.com/support/policy/updates/openshift). Also note that non-EUS release support expires before the extended support for the previous EUS release, for example extended support for OCP 4.18 expires on Feb 25, 2027, while standard support for OCP 4.17 expires on April 1, 2026.
1416

1517
<cds-tabs trigger-content="Select an item" value="2026">
1618
<cds-tab id="tab-2026" target="panel-2026" value="2026">2026 Catalogs</cds-tab>

docs/catalogs/v9-260129-amd64.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,9 @@ IBM Maximo Operator Catalog v9 (260129)
1717

1818
Red Hat OpenShift Container Platform Support
1919
-------------------------------------------------------------------------------
20+
Note: Red Hat Extended Update Support Add-on Term 1 is included with the restricted use OCP subscription that comes with a MAS license. In the case of EUS denoted OCP releases, the support dates stated below refer to the EUS1 end dates.
2021
For more information about the OCP lifecycle refer to the [Red Hat OpenShift Container Platform Life Cycle Policy](https://access.redhat.com/support/policy/updates/openshift/).
2122

22-
IBM Maximo Application Suite customers receive a standard Red Hat OpenShift Container Platform subscription as part of their purchase. This includes 18 months of maintenance support for each OpenShift minor release. A further 6 months support is available to purchase as an Extended Update Support (EUS) Add-on to x86-64 versions of Red Hat OpenShift Kubernetes Engine, Red Hat OpenShift Container Platform, and Red Hat OpenShift Platform Plus Standard subscriptions.
23-
2423
:::mas-catalog-ocp-compatibility-matrix
2524

2625
### Certified Operators
@@ -694,4 +693,4 @@ Package Manifest
694693
| opendatahub-operator | fast | stable | [1.5.0](packages/opendatahub-operator/1.5.0.md) |
695694
| | | rolling | [1.11.0](packages/opendatahub-operator/1.11.0.md) |
696695
| | | odh-2.8.z | [2.8.1](packages/opendatahub-operator/2.8.1.md) |
697-
| | | fast | [2.32.0](packages/opendatahub-operator/2.32.0.md) |
696+
| | | fast | [2.32.0](packages/opendatahub-operator/2.32.0.md) |

docs/catalogs/v9-260226-amd64.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,9 @@ IBM Maximo Operator Catalog v9 (260226)
1717

1818
Red Hat OpenShift Container Platform Support
1919
-------------------------------------------------------------------------------
20+
Note: Red Hat Extended Update Support Add-on Term 1 is included with the restricted use OCP subscription that comes with a MAS license. In the case of EUS denoted OCP releases, the support dates stated below refer to the EUS1 end dates.
2021
For more information about the OCP lifecycle refer to the [Red Hat OpenShift Container Platform Life Cycle Policy](https://access.redhat.com/support/policy/updates/openshift/).
2122

22-
IBM Maximo Application Suite customers receive a standard Red Hat OpenShift Container Platform subscription as part of their purchase. This includes 18 months of maintenance support for each OpenShift minor release. A further 6 months support is available to purchase as an Extended Update Support (EUS) Add-on to x86-64 versions of Red Hat OpenShift Kubernetes Engine, Red Hat OpenShift Container Platform, and Red Hat OpenShift Platform Plus Standard subscriptions.
23-
2423
:::mas-catalog-ocp-compatibility-matrix
2524

2625
### Certified Operators
@@ -695,4 +694,4 @@ Package Manifest
695694
| opendatahub-operator | fast | stable | [1.5.0](packages/opendatahub-operator/1.5.0.md) |
696695
| | | rolling | [1.11.0](packages/opendatahub-operator/1.11.0.md) |
697696
| | | odh-2.8.z | [2.8.1](packages/opendatahub-operator/2.8.1.md) |
698-
| | | fast | [2.32.0](packages/opendatahub-operator/2.32.0.md) |
697+
| | | fast | [2.32.0](packages/opendatahub-operator/2.32.0.md) |

docs/catalogs/v9-260326-amd64.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,9 @@ IBM Maximo Operator Catalog v9 (260326)
1717

1818
Red Hat OpenShift Container Platform Support
1919
-------------------------------------------------------------------------------
20+
Note: Red Hat Extended Update Support Add-on Term 1 is included with the restricted use OCP subscription that comes with a MAS license. In the case of EUS denoted OCP releases, the support dates stated below refer to the EUS1 end dates.
2021
For more information about the OCP lifecycle refer to the [Red Hat OpenShift Container Platform Life Cycle Policy](https://access.redhat.com/support/policy/updates/openshift/).
2122

22-
IBM Maximo Application Suite customers receive a standard Red Hat OpenShift Container Platform subscription as part of their purchase. This includes 18 months of maintenance support for each OpenShift minor release. A further 6 months support is available to purchase as an Extended Update Support (EUS) Add-on to x86-64 versions of Red Hat OpenShift Kubernetes Engine, Red Hat OpenShift Container Platform, and Red Hat OpenShift Platform Plus Standard subscriptions.
23-
2423
:::mas-catalog-ocp-compatibility-matrix
2524

2625
### Certified Operators
@@ -702,4 +701,4 @@ Package Manifest
702701
| opendatahub-operator | fast | stable | [1.5.0](packages/opendatahub-operator/1.5.0.md) |
703702
| | | rolling | [1.11.0](packages/opendatahub-operator/1.11.0.md) |
704703
| | | odh-2.8.z | [2.8.1](packages/opendatahub-operator/2.8.1.md) |
705-
| | | fast | [2.32.0](packages/opendatahub-operator/2.32.0.md) |
704+
| | | fast | [2.32.0](packages/opendatahub-operator/2.32.0.md) |

image/cli/mascli/mas

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ mkdir -p $CONFIG_DIR
3838
# MAS provisioning support
3939
. $CLI_DIR/functions/provision_fyre
4040
. $CLI_DIR/functions/provision_roks
41+
. $CLI_DIR/functions/provision_roks_vpc
4142
. $CLI_DIR/functions/provision_aws
4243
# Airgap support
4344
. $CLI_DIR/functions/setup_registry
@@ -136,6 +137,18 @@ case $1 in
136137
provision_roks "$@"
137138
;;
138139

140+
roks-vpc|provision-roks-vpc)
141+
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" >> $LOGFILE
142+
echo "!! provision-roks-vpc !!" >> $LOGFILE
143+
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" >> $LOGFILE
144+
145+
echo "${TEXT_UNDERLINE}IBM Maximo Application Suite ROKS VPC Cluster Provisioner (v${VERSION})${TEXT_RESET}"
146+
echo "Powered by ${COLOR_CYAN}${TEXT_UNDERLINE}https://github.com/ibm-mas/ansible-devops/${TEXT_RESET}"
147+
echo
148+
reset_colors
149+
provision_roks_vpc "$@"
150+
;;
151+
139152
aws|provision-aws)
140153
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" >> $LOGFILE
141154
echo "!! provision-aws !!" >> $LOGFILE

python/src/mas/cli/aiservice/install/app.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -657,7 +657,7 @@ def aiServiceSettings(self) -> None:
657657
else:
658658
# Ask for external storage configuration
659659
self.printDescription(["Configure your external object storage (S3-compatible) connection details:"])
660-
self.promptForString("Storage access key", "aiservice_s3_accesskey")
660+
self.promptForString("Storage access key", "aiservice_s3_accesskey", isPassword=True)
661661
self.promptForString("Storage secret key", "aiservice_s3_secretkey", isPassword=True)
662662
self.promptForString("Storage host", "aiservice_s3_host")
663663
self.promptForString("Storage port", "aiservice_s3_port")

python/src/mas/cli/displayMixins.py

Lines changed: 49 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,46 @@
2727
UNDEFINEDPARAMCOLOR = "LightSlateGrey"
2828
PROMPTCOLOR = "Yellow"
2929

30+
# List of sensitive parameters that should be masked in output
31+
SENSITIVE_PARAMS = {
32+
# IBM Cloud & AWS Credentials
33+
"ibmcloud_apikey",
34+
"aws_access_key_id",
35+
"secret_access_key",
36+
"aws_secret_access_key",
37+
# Artifactory Credentials
38+
"artifactory_username",
39+
"artifactory_token",
40+
# MAS Credentials
41+
"mas_superuser_password",
42+
# Logging & Messaging
43+
"eck_remote_es_password",
44+
"kafka_password",
45+
"aws_kafka_user_password",
46+
# Manage App Settings
47+
"mas_app_settings_customization_archive_password",
48+
"mas_app_settings_customization_archive_username",
49+
# Manage Encryption Keys
50+
"mas_manage_encryptionsecret_crypto_key",
51+
"mas_manage_encryptionsecret_cryptox_key",
52+
"mas_manage_encryptionsecret_old_crypto_key",
53+
"mas_manage_encryptionsecret_old_cryptox_key",
54+
# DNS Provider Credentials
55+
"cis_apikey",
56+
"cloudflare_apitoken",
57+
# Storage Credentials
58+
"aiservice_s3_accesskey",
59+
"aiservice_s3_secretkey",
60+
"cos_apikey",
61+
# AI Service Credentials
62+
"aiservice_watsonxai_apikey",
63+
"aiservice_db_username",
64+
"aiservice_db_password",
65+
# Minio Credentials
66+
"minio_root_user",
67+
"minio_root_password",
68+
}
69+
3070

3171
class PrintMixin:
3272
def printTitle(self, message: str) -> None:
@@ -73,8 +113,15 @@ def printParamSummary(self, message: str, param: str) -> None:
73113
logger.debug(f'Parameter Summary: {param} = ""')
74114
self.printSummary(message, f"<{UNDEFINEDPARAMCOLOR}>Default</{UNDEFINEDPARAMCOLOR}>")
75115
else:
76-
logger.debug(f"Parameter Summary: {param} = {self.getParam(param)}") # type: ignore
77-
self.printSummary(message, self.getParam(param)) # type: ignore
116+
value = self.getParam(param) # type: ignore
117+
# Mask sensitive parameters
118+
if param in SENSITIVE_PARAMS:
119+
display_value = "***"
120+
logger.debug(f"Parameter Summary: {param} = *** (masked)")
121+
else:
122+
display_value = value
123+
logger.debug(f"Parameter Summary: {param} = {value}")
124+
self.printSummary(message, display_value)
78125

79126
def printTable(self, headers: List[str], rows: List[List[str]]) -> None:
80127
"""

python/src/mas/cli/install/app.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -333,6 +333,7 @@ def configCatalog(self):
333333
self.promptForString("Select channel", "mas_channel", default="9.2.x-dev")
334334
else:
335335
catalogInfo = getCurrentCatalog(self.dynamicClient)
336+
logger.debug(f"Installed catalog lookup result: {catalogInfo}")
336337

337338
if catalogInfo is None:
338339
self.printDescription(
@@ -1086,7 +1087,7 @@ def configDNSAndCertsCloudflare(self):
10861087
# User has chosen to set up DNS integration with Cloudflare
10871088
self.setParam("dns_provider", "cloudflare")
10881089
self.promptForString("Cloudflare e-mail", "cloudflare_email")
1089-
self.promptForString("Cloudflare API token", "cloudflare_apitoken")
1090+
self.promptForString("Cloudflare API token", "cloudflare_apitoken", isPassword=True)
10901091
self.promptForString("Cloudflare zone", "cloudflare_zone")
10911092
self.promptForString("Cloudflare subdomain", "cloudflare_subdomain")
10921093

@@ -1110,7 +1111,7 @@ def configDNSAndCertsCloudflare(self):
11101111
def configDNSAndCertsCIS(self):
11111112
self.setParam("dns_provider", "cis")
11121113
self.promptForString("CIS e-mail", "cis_email")
1113-
self.promptForString("CIS API token", "cis_apikey")
1114+
self.promptForString("CIS API token", "cis_apikey", isPassword=True)
11141115
self.promptForString("CIS CRN", "cis_crn")
11151116
self.promptForString("CIS subdomain", "cis_subdomain")
11161117

@@ -1815,7 +1816,7 @@ def aiServiceSettings(self) -> None:
18151816
else:
18161817
# Ask for external storage configuration
18171818
self.printDescription(["Configure your external object storage (S3-compatible) connection details:"])
1818-
self.promptForString("Storage access key", "aiservice_s3_accesskey")
1819+
self.promptForString("Storage access key", "aiservice_s3_accesskey", isPassword=True)
18191820
self.promptForString("Storage secret key", "aiservice_s3_secretkey", isPassword=True)
18201821
self.promptForString("Storage host", "aiservice_s3_host")
18211822
self.promptForString("Storage port", "aiservice_s3_port")

python/src/mas/cli/install/argBuilder.py

Lines changed: 30 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,28 @@ def buildCommand(self) -> str:
4848
if self.getParam("mas_manage_encryptionsecret_old_cryptox_key") != "":
4949
command += "export OLD_CRYTPOX_KEY=x\n"
5050

51+
# DNS Provider Credentials
52+
if self.getParam("cis_apikey") != "":
53+
command += "export CIS_APIKEY=x\n"
54+
if self.getParam("cloudflare_apitoken") != "":
55+
command += "export CLOUDFLARE_APITOKEN=x\n"
56+
57+
# Storage Credentials
58+
if self.getParam("aiservice_s3_accesskey") != "":
59+
command += "export AISERVICE_S3_ACCESSKEY=x\n"
60+
if self.getParam("aiservice_s3_secretkey") != "":
61+
command += "export AISERVICE_S3_SECRETKEY=x\n"
62+
if self.getParam("cos_apikey") != "":
63+
command += "export COS_APIKEY=x\n"
64+
65+
# AI Service Credentials
66+
if self.getParam("aiservice_watsonxai_apikey") != "":
67+
command += "export AISERVICE_WATSONXAI_APIKEY=x\n"
68+
if self.getParam("minio_root_user") != "":
69+
command += "export MINIO_ROOT_USER=x\n"
70+
if self.getParam("minio_root_password") != "":
71+
command += "export MINIO_ROOT_PASSWORD=x\n"
72+
5173
command += f"mas install --mas-catalog-version {self.getParam('mas_catalog_version')}"
5274

5375
if self.getParam("mas_catalog_digest") != "":
@@ -125,13 +147,13 @@ def buildCommand(self) -> str:
125147
command += f" --domain \"{self.getParam('mas_domain')}\"{newline}"
126148

127149
if self.getParam("dns_provider") == "cis":
128-
command += f" --dns-provider cis --cis-apikey \"{self.getParam('cis_apikey')}\""
150+
command += ' --dns-provider cis --cis-apikey "$CIS_APIKEY"'
129151
command += f" --cis-subdomain \"{self.getParam('cis_subdomain')}\""
130152
command += f" --cis-crn \"{self.getParam('cis_crn')}\""
131153
command += f" --cis-email \"{self.getParam('cis_email')}\"{newline}"
132154

133155
if self.getParam("dns_provider") == "cloudflare":
134-
command += f" --dns-provider cloudflare --cloudflare-apitoken \"{self.getParam('cloudflare_apitoken')}\"{newline}"
156+
command += f' --dns-provider cloudflare --cloudflare-apitoken "$CLOUDFLARE_APITOKEN"{newline}'
135157
command += f" --cloudflare-email \"{self.getParam('cloudflare_email')}\"{newline}"
136158
command += f" --cloudflare-zone \"{self.getParam('cloudflare_zone')}\"{newline}"
137159
command += f" --cloudflare-subdomain \"{self.getParam('cloudflare_subdomain')}\"{newline}"
@@ -393,9 +415,9 @@ def buildCommand(self) -> str:
393415
command += f" --aiservice-db-ca-cert \"{self.getParam('aiservice_db_ca_cert')}\"{newline}"
394416

395417
if self.getParam("aiservice_s3_accesskey") != "" and self.getParam("minio_root_user") == "":
396-
command += f" --s3-accesskey \"{self.getParam('aiservice_s3_accesskey')}\"{newline}"
418+
command += f' --s3-accesskey "$AISERVICE_S3_ACCESSKEY"{newline}'
397419
if self.getParam("aiservice_s3_secretkey") != "" and self.getParam("minio_root_user") == "":
398-
command += f" --s3-secretkey \"{self.getParam('aiservice_s3_secretkey')}\"{newline}"
420+
command += f' --s3-secretkey "$AISERVICE_S3_SECRETKEY"{newline}'
399421
if self.getParam("aiservice_s3_host") != "" and self.getParam("minio_root_user") == "":
400422
command += f" --s3-host \"{self.getParam('aiservice_s3_host')}\"{newline}"
401423
if self.getParam("aiservice_s3_port") != "" and self.getParam("minio_root_user") == "":
@@ -422,7 +444,7 @@ def buildCommand(self) -> str:
422444
command += f" --manage-persistent-volumes{newline}"
423445

424446
if self.getParam("aiservice_watsonxai_apikey") != "":
425-
command += f" --watsonxai-apikey \"{self.getParam('aiservice_watsonxai_apikey')}\"{newline}"
447+
command += f' --watsonxai-apikey "$AISERVICE_WATSONXAI_APIKEY"{newline}'
426448
if self.getParam("aiservice_watsonxai_url") != "":
427449
command += f" --watsonxai-url \"{self.getParam('aiservice_watsonxai_url')}\"{newline}"
428450
if self.getParam("aiservice_watsonxai_project_id") != "":
@@ -446,9 +468,9 @@ def buildCommand(self) -> str:
446468

447469
if self.getParam("minio_root_user") != "":
448470
command += f" --install-minio {newline}"
449-
command += f" --minio-root-user \"{self.getParam('minio_root_user')}\"{newline}"
471+
command += f' --minio-root-user "$MINIO_ROOT_USER"{newline}'
450472
if self.getParam("minio_root_password") != "":
451-
command += f" --minio-root-password \"{self.getParam('minio_root_password')}\"{newline}"
473+
command += f' --minio-root-password "$MINIO_ROOT_PASSWORD"{newline}'
452474

453475
if self.getParam("tenant_entitlement_type") != "":
454476
command += f" --tenant-entitlement-type \"{self.getParam('tenant_entitlement_type')}\"{newline}"
@@ -586,7 +608,7 @@ def buildCommand(self) -> str:
586608
if self.getParam("cos_resourcegroup") != "":
587609
command += f" --cos-resourcegroup \"{self.getParam('cos_resourcegroup')}\""
588610
if self.getParam("cos_apikey") != "":
589-
command += f" --cos-apikey \"{self.getParam('cos_apikey')}\""
611+
command += ' --cos-apikey "$COS_APIKEY"'
590612
if self.getParam("cos_instance_name") != "":
591613
command += f" --cos-instance-name \"{self.getParam('cos_instance_name')}\""
592614
if self.getParam("cos_bucket_name") != "":

python/src/mas/cli/install/settings/manageSettings.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -222,10 +222,10 @@ def _manageSettingsDatabase(self) -> None:
222222
self.promptForString("Indexspace", "mas_app_settings_indexspace", default="MAXINDEX")
223223

224224
if self.yesOrNo("Customize database encryption settings"):
225-
self.promptForString("MXE_SECURITY_CRYPTO_KEY", "mas_manage_encryptionsecret_crypto_key")
226-
self.promptForString("MXE_SECURITY_CRYPTOX_KEY", "mas_manage_encryptionsecret_cryptox_key")
227-
self.promptForString("MXE_SECURITY_OLD_CRYPTO_KEY", "mas_manage_encryptionsecret_old_crypto_key")
228-
self.promptForString("MXE_SECURITY_OLD_CRYPTOX_KEY", "mas_manage_encryptionsecret_old_cryptox_key")
225+
self.promptForString("MXE_SECURITY_CRYPTO_KEY", "mas_manage_encryptionsecret_crypto_key", isPassword=True)
226+
self.promptForString("MXE_SECURITY_CRYPTOX_KEY", "mas_manage_encryptionsecret_cryptox_key", isPassword=True)
227+
self.promptForString("MXE_SECURITY_OLD_CRYPTO_KEY", "mas_manage_encryptionsecret_old_crypto_key", isPassword=True)
228+
self.promptForString("MXE_SECURITY_OLD_CRYPTOX_KEY", "mas_manage_encryptionsecret_old_cryptox_key", isPassword=True)
229229
self.promptForString("Encryption secret name", "mas_manage_ws_db_encryptionsecret")
230230

231231
def _manageSettingsServerBundleConfig(self) -> None:

0 commit comments

Comments
 (0)