Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
3d20020
MASAIB-2151 Remove prompts requesting RSL URL, RSL Org ID, and RSL to…
Apr 16, 2026
25db057
fix: resolve pre-commit linting issues
Apr 17, 2026
3c41798
revert changes related to gitops
Apr 17, 2026
394b67c
fix: parsing issue in yaml
Apr 20, 2026
648f427
fix: indentation errors
Apr 21, 2026
ac3cd99
fix: syntax error
Apr 21, 2026
3e1ace1
fix: quote description in cli-params.yml.j2
Apr 21, 2026
29e6e4c
fix : yaml syntax issue in tekton files
Apr 21, 2026
d986431
fix: hidden space issue
Apr 22, 2026
5930e71
build tekton fix issue
Apr 22, 2026
5e66f66
added compatible collection of ansible devops
Apr 24, 2026
7cf0e66
added compatible collection of ansible devops
Apr 30, 2026
154e775
identation issue
May 5, 2026
4974f1c
merge conflicts
May 6, 2026
dd12a99
added compatibale python package
May 7, 2026
371fd53
added compatibale ansible collection
May 7, 2026
fd3e7ab
added compatible python package
May 7, 2026
008b2a8
Merge branch 'master' into masaib-2151
Bhautik-Vala May 7, 2026
6c87649
Merge branch 'master' into masaib-2151
PalVala May 13, 2026
798904a
review comment resolved
May 14, 2026
b2d708c
fix: resolve review comment
May 15, 2026
617cb86
fix: new blank line issue & added compatible ansible,python packages …
May 15, 2026
2bf43fb
fix: revert changes
May 15, 2026
a5e848f
fix: resolve conflict with master branch
May 15, 2026
78f6f1d
fix: added compatible ansible collection
May 15, 2026
6d0a283
[patch] Change ansible-devops tar
May 15, 2026
12d1607
Merge branch 'master' into masaib-2151
May 15, 2026
3148adf
fix: revert unwanted change
May 15, 2026
0e7617d
fix: removed python package and ansible collection for local build
May 15, 2026
90d612c
Merge branch 'master' into masaib-2151
PalVala May 15, 2026
2b7a5b3
chore: resolve conflict with master branch
May 18, 2026
4844ec6
[patch]pre-commit failure fix
May 18, 2026
2be4b7d
[patch] python build failure fix
May 18, 2026
3896e2b
[patch] python build failure fix
May 18, 2026
4b9cda7
Merge branch 'master' into masaib-2151
May 18, 2026
1a15265
[patch] updated documentation for RSL configuration for AI Service i…
May 18, 2026
fa978ff
[patch] updated documentation for RSL configuration for AI Service i…
May 18, 2026
7db222e
[patch] updated documentation for RSL configuration for AI Service i…
May 18, 2026
972641f
[patch] updated documentation for RSL configuration for AI Service i…
May 18, 2026
b919d59
Merge branch 'master' into masaib-2151
May 19, 2026
692fd58
Merge branch 'master' into masaib-2151
PalVala May 20, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 7 additions & 9 deletions docs/guides/aiservice-install.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ The interactive install will guide you through the following steps:
<li><strong>Certificate Issuer (Advanced Mode Only):</strong> Optionally configure a pre-configured certificate issuer for AI Service</li>
<li><strong>Network configuration (Advanced Mode Only):</strong> Optionally enable IPv6 SingleStack network configuration for AI Service</li>
<li><strong>Database Configuration:</strong> Set up database connection for AI Service</li>
<li><strong>RSL Configuration:</strong> Configure Red Hat Service Locator integration</li>
<li><strong>RSL Configuration:</strong> Optionally provide RSL CA certificate for Reliability Strategies Library integration</li>
<li><strong>Tenant Configuration:</strong> Set up AI Service tenant(s)</li>
<li><strong>Customize pod scheduling configuration for AI Workloads (Advanced Mode Only):</strong> Configure tolerations & nodeSelector for AI workloads (Training pipeline & Inference Service). See <a href="#scheduling-configuration-file-format">Scheduling Configuration File Format</a> for file configuration details.</li>
<li><strong>Operational Mode:</strong> Choose between production or non-production mode</li>
Expand Down Expand Up @@ -156,10 +156,7 @@ docker run -e IBM_ENTITLEMENT_KEY -ti --rm -v ~:/mnt/home quay.io/ibmmas/cli:@@C
--tenant-entitlement-end-date 2026-01-01 \
--tenant-scheduling-config-file "/mnt/home/aiservice-tenant-affinity.yaml" \
\
--rsl-url http://your-rsl-host:3001/api/v3/vector/query \
--rsl-org-id your_org_id \
--rsl-token 'Bearer your_rsl_token' \
\

--accept-license --no-confirm
"
```
Expand Down Expand Up @@ -263,13 +260,14 @@ docker run -e IBM_ENTITLEMENT_KEY -ti --rm -v ~:/mnt/home quay.io/ibmmas/cli:@@C
| `--tenant-entitlement-start-date` | Entitlement start date (YYYY-MM-DD) | Yes | `2025-01-01` |
| `--tenant-entitlement-end-date` | Entitlement end date (YYYY-MM-DD) | Yes | `2026-01-01` |

### RSL (Red Hat Service Locator) Configuration
### RSL (Reliability Strategies Library) Configuration

| Parameter | Description | Required | Example |
|-----------|-------------|----------|---------|
| `--rsl-url` | RSL service URL | Optional | `http://host:3001/api/v3/vector/query` |
| `--rsl-org-id` | RSL organization ID | Optional | `your_org_id` |
| `--rsl-token` | RSL authentication token | Optional | `Bearer your_token` |
| `--rsl-ca-crt` | RSL CA certificate (PEM format) | Optional | `/path/to/ca.crt` |

!!! note
The `rsl_url`, `rsl_org_id`, and `rsl_token` parameters are no longer needed to pass inside the install command.

### AI Workload Scheduling Configuration

Expand Down
11 changes: 1 addition & 10 deletions python/src/mas/cli/aiservice/install/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -812,20 +812,11 @@ def aiServiceIntegrations(self) -> None:
[
"RSL (Reliable Strategy Library) connects to strategic asset management via STRATEGIZEAPI.",
"",
"RSL URL: https://api.rsl-service.suite.maximo.com (standard for all customers)",
"Org ID: Get from MAS Manage > System Properties > 'mxe.rs.rslorgid'",
"Token: Use your IBM entitlement key (same as MAS installation)",
"",
"Note: Future versions will auto-configure these from MAS Manage.",
"",
]
)
self.promptForString("RSL url", "rsl_url")
self.promptForString("ORG Id of RSL", "rsl_org_id")
rslToken = self.promptForString("Token for RSL", isPassword=True)
if not rslToken.startswith("Bearer "):
rslToken = "Bearer " + rslToken
self.setParam("rsl_token", rslToken)

if self.yesOrNo("Does the RSL API use a self-signed certificate?"):
self.promptForString("RSL CA certificate (PEM format)", "rsl_ca_crt")

Expand Down
6 changes: 0 additions & 6 deletions python/src/mas/cli/aiservice/install/argBuilder.py
Original file line number Diff line number Diff line change
Expand Up @@ -179,12 +179,6 @@ def buildCommand(self) -> str:
if self.aiserviceTenantSchedulingConfigFileLocal:
command += f' --tenant-scheduling-config-file "{self.aiserviceTenantSchedulingConfigFileLocal}"{newline}'

if self.getParam("rsl_url") != "":
command += f" --rsl-url \"{self.getParam('rsl_url')}\"{newline}"
if self.getParam("rsl_org_id") != "":
command += f" --rsl-org-id \"{self.getParam('rsl_org_id')}\"{newline}"
if self.getParam("rsl_token") != "":
command += f" --rsl-token \"{self.getParam('rsl_token')}\"{newline}"
if self.getParam("rsl_ca_crt") != "":
command += f" --rsl-ca-crt \"{self.getParam('rsl_ca_crt')}\"{newline}"

Expand Down
4 changes: 1 addition & 3 deletions python/src/mas/cli/aiservice/install/argParser.py
Original file line number Diff line number Diff line change
Expand Up @@ -187,9 +187,7 @@ def isValidFile(parser, arg) -> str:
)
aiServiceArgGroup.add_argument("--tenant-entitlement-start-date", dest="tenant_entitlement_start_date", required=False, help="Start date for AI Service tenant")
aiServiceArgGroup.add_argument("--tenant-entitlement-end-date", dest="tenant_entitlement_end_date", required=False, help="End date for AI Service tenant")
aiServiceArgGroup.add_argument("--rsl-url", dest="rsl_url", required=False, help="rsl url")
aiServiceArgGroup.add_argument("--rsl-org-id", dest="rsl_org_id", required=False, help="org id for rsl")
aiServiceArgGroup.add_argument("--rsl-token", dest="rsl_token", required=False, help="token for rsl")

aiServiceArgGroup.add_argument(
"--rsl-ca-crt", dest="rsl_ca_crt", required=False, help="CA certificate for RSL API (PEM format, optional, only if using self-signed certs)"
)
Expand Down
3 changes: 0 additions & 3 deletions python/src/mas/cli/aiservice/install/params.py
Original file line number Diff line number Diff line change
Expand Up @@ -92,9 +92,6 @@
"tenant_entitlement_type",
"tenant_entitlement_start_date",
"tenant_entitlement_end_date",
"rsl_url",
"rsl_org_id",
"rsl_token",
"rsl_ca_crt",
"environment_type",
"configure_aiassistant",
Expand Down
4 changes: 0 additions & 4 deletions python/src/mas/cli/aiservice/install/summarizer.py
Original file line number Diff line number Diff line change
Expand Up @@ -80,10 +80,6 @@ def aiServiceSummary(self) -> None:
self.printParamSummary("URL", "aiservice_watsonxai_url")
self.printParamSummary("Project ID", "aiservice_watsonxai_project_id")

self.printH2("RSL")
self.printParamSummary("URL", "rsl_url")
self.printParamSummary("Organization ID", "rsl_org_id")

def db2Summary(self) -> None:
self.printH2("IBM Db2 Univeral Operator Configuration")
self.printParamSummary("Action", "db2_action_aiservice")
Expand Down
11 changes: 1 addition & 10 deletions python/src/mas/cli/install/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -1860,20 +1860,11 @@ def aiServiceIntegrations(self) -> None:
[
"RSL (Reliable Strategy Library) connects to strategic asset management via STRATEGIZEAPI.",
"",
"RSL URL: https://api.rsl-service.suite.maximo.com (standard for all customers)",
"Org ID: Get from MAS Manage > System Properties > 'mxe.rs.rslorgid'",
"Token: Use your IBM entitlement key (same as MAS installation)",
"",
"Note: Future versions will auto-configure these from MAS Manage.",
"",
]
)
self.promptForString("RSL url", "rsl_url")
self.promptForString("ORG Id of RSL", "rsl_org_id")
rslToken = self.promptForString("Token for RSL", isPassword=True)
if not rslToken.startswith("Bearer "):
rslToken = "Bearer " + rslToken
self.setParam("rsl_token", rslToken)

if self.yesOrNo("Does the RSL API use a self-signed certificate?"):
self.promptForString("RSL CA certificate (PEM format)", "rsl_ca_crt")

Expand Down
6 changes: 0 additions & 6 deletions python/src/mas/cli/install/argBuilder.py
Original file line number Diff line number Diff line change
Expand Up @@ -424,12 +424,6 @@ def buildCommand(self) -> str:
if self.aiserviceTenantSchedulingConfigFileLocal:
command += f' --tenant-scheduling-config-file "{self.aiserviceTenantSchedulingConfigFileLocal}"{newline}'

if self.getParam("rsl_url") != "":
command += f" --rsl-url \"{self.getParam('rsl_url')}\"{newline}"
if self.getParam("rsl_org_id") != "":
command += f" --rsl-org-id \"{self.getParam('rsl_org_id')}\"{newline}"
if self.getParam("rsl_token") != "":
command += f" --rsl-token \"{self.getParam('rsl_token')}\"{newline}"
if self.getParam("rsl_ca_crt") != "":
command += f" --rsl-ca-crt \"{self.getParam('rsl_ca_crt')}\"{newline}"

Expand Down
4 changes: 1 addition & 3 deletions python/src/mas/cli/install/argParser.py
Original file line number Diff line number Diff line change
Expand Up @@ -1031,9 +1031,7 @@ def isValidFile(parser: argparse.ArgumentParser, arg: str) -> str:
required=False,
help="End date for AI Service tenant",
)
aiServiceTenantArgGroup.add_argument("--rsl-url", dest="rsl_url", required=False, help="rsl url")
aiServiceTenantArgGroup.add_argument("--rsl-org-id", dest="rsl_org_id", required=False, help="org id for rsl")
aiServiceTenantArgGroup.add_argument("--rsl-token", dest="rsl_token", required=False, help="token for rsl")

aiServiceTenantArgGroup.add_argument(
"--rsl-ca-crt",
dest="rsl_ca_crt",
Expand Down
3 changes: 0 additions & 3 deletions python/src/mas/cli/install/params.py
Original file line number Diff line number Diff line change
Expand Up @@ -209,9 +209,6 @@
"tenant_entitlement_type",
"tenant_entitlement_start_date",
"tenant_entitlement_end_date",
"rsl_url",
"rsl_org_id",
"rsl_token",
"rsl_ca_crt",
"environment_type",
"configure_aiassistant",
Expand Down
4 changes: 0 additions & 4 deletions python/src/mas/cli/install/summarizer.py
Original file line number Diff line number Diff line change
Expand Up @@ -382,10 +382,6 @@ def aiServiceSummary(self) -> None:
self.printParamSummary("URL", "aiservice_watsonxai_url")
self.printParamSummary("Project ID", "aiservice_watsonxai_project_id")

self.printH2("RSL")
self.printParamSummary("URL", "rsl_url")
self.printParamSummary("Organization ID", "rsl_org_id")

def db2Summary(self) -> None:
if self.getParam("db2_action_system") == "install" or self.getParam("db2_action_manage") == "install":
self.printH2("IBM Db2 Univeral Operator Configuration")
Expand Down
6 changes: 0 additions & 6 deletions python/test/aiservice/install/test_app.py
Original file line number Diff line number Diff line change
Expand Up @@ -154,12 +154,6 @@ def test_install_noninteractive(tmpdir):
"2026-08-28",
"--tenant-scheduling-config-file",
f"{tmpdir}/aiservice-tenant-affinity-config.yaml",
"--rsl-url",
"https:/test.rsl.maximo.ibm.com/api/v3/vector/query",
"--rsl-org-id",
"testOrgId",
"--rsl-token",
"testRslToken",
"--rsl-ca-crt",
"testRslCaCert",
"--accept-license",
Expand Down
12 changes: 0 additions & 12 deletions python/test/aiservice/install/test_dev_mode.py
Original file line number Diff line number Diff line change
Expand Up @@ -94,9 +94,6 @@ def test_aiservice_install_master_dev_mode(tmpdir):
".*Watsonxai Deployment ID.*": lambda msg: "",
".*Watsonxai Space ID.*": lambda msg: "",
# 13. RSL Integration
".*RSL url.*": lambda msg: "https://api.rsl-service.suite.maximo.com",
".*ORG Id of RSL.*": lambda msg: "testOrgId",
".*Token for RSL.*": lambda msg: "testRslToken",
".*Does the RSL API use a self-signed certificate.*": lambda msg: "n",
# 14. MongoDB configuration
".*Create MongoDb cluster.*": lambda msg: "y",
Expand Down Expand Up @@ -166,9 +163,6 @@ def test_aiservice_install_master_dev_mode_existing_catalog(tmpdir):
".*Watsonxai Deployment ID.*": lambda msg: "",
".*Watsonxai Space ID.*": lambda msg: "",
# 13. RSL Integration
".*RSL url.*": lambda msg: "https://api.rsl-service.suite.maximo.com",
".*ORG Id of RSL.*": lambda msg: "testOrgId",
".*Token for RSL.*": lambda msg: "testRslToken",
".*Does the RSL API use a self-signed certificate.*": lambda msg: "n",
# 14. MongoDB configuration
".*Create MongoDb cluster.*": lambda msg: "y",
Expand Down Expand Up @@ -264,12 +258,6 @@ def test_aiservice_install_master_dev_mode_non_interactive(tmpdir):
"https://us-south.ml.cloud.ibm.com",
"--watsonxai-project-id",
"testProjectId",
"--rsl-url",
"https://api.rsl-service.suite.maximo.com",
"--rsl-org-id",
"testOrgId",
"--rsl-token",
"testRslToken",
"--accept-license",
"--no-confirm",
"--skip-pre-check",
Expand Down
3 changes: 2 additions & 1 deletion tekton/src/params/backup.yml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -344,4 +344,5 @@
- name: backup_s3_secret_key
type: string
description: S3 secret key for Db2 backups
default: ""
default: ""

2 changes: 1 addition & 1 deletion tekton/src/params/gitops-git.yml.j2
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Gitops Git Parameters
# -------------------------------------------------------------------------
# -------------------------------------------------------------------------
- name: github_push
type: string
default: "False"
Expand Down
13 changes: 3 additions & 10 deletions tekton/src/params/install-aiservice.yml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -158,19 +158,12 @@

# MAS Application Configuration - IBM Maximo AI Service - RSL
# -----------------------------------------------------------------------------
Comment thread
PalVala marked this conversation as resolved.
- name: rsl_url
- name: rsl_ca_crt
type: string
description: url of RSL
default: ""
- name: rsl_org_id
type: string
description: org id for RSL
default: ""
- name: rsl_token
type: string
description: token for RSL
description: ca certificate for RSL
default: ""


# MAS Application Configuration - IBM Maximo AI Service - Certificate Issuer
# -----------------------------------------------------------------------------
- name: aiservice_certificate_issuer
Expand Down
3 changes: 2 additions & 1 deletion tekton/src/params/install-db2.yml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -165,4 +165,5 @@
- name: db2_ldap_password
type: string
description: Define the password of the db2 user in the local LDAP registry. Must define when db2_ldap_username is used.
default: ""
default: ""

3 changes: 2 additions & 1 deletion tekton/src/params/install-ibmcatalogs.yml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,5 @@
- name: mas_catalog_digest
type: string
description: Set when using dev or pre-release catalog in airgap
default: ""
default: ""

3 changes: 2 additions & 1 deletion tekton/src/params/install-workspace.yml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,5 @@
- name: mas_appws_bindings_jdbc
type: string
description: JDBC Bindings Workspace
default: "workspace-application"
default: "workspace-application"

3 changes: 2 additions & 1 deletion tekton/src/params/install.yml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -770,4 +770,5 @@

# AI Service Configuration
# -----------------------------------------------------------------------------
{{ lookup('template', params_src_dir ~ '/install-aiservice.yml.j2') }}
{{ lookup('template', params_src_dir ~ '/install-aiservice.yml.j2') }}

3 changes: 2 additions & 1 deletion tekton/src/pipelines/mas-install.yml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -559,4 +559,5 @@ spec:
- name: pipelinerun_name
value: $(context.pipelineRun.name)
- name: pipelinerun_namespace
value: $(context.pipelineRun.namespace)
value: $(context.pipelineRun.namespace)

11 changes: 4 additions & 7 deletions tekton/src/pipelines/taskdefs/aiservice/aiservice.yml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -71,13 +71,10 @@
value: $(params.tenant_entitlement_start_date)
- name: tenant_entitlement_end_date
value: $(params.tenant_entitlement_end_date)

- name: rsl_url
value: $(params.rsl_url)
- name: rsl_org_id
value: $(params.rsl_org_id)
- name: rsl_token
value: $(params.rsl_token)

- name: rsl_ca_crt
value: $(params.rsl_ca_crt)

Comment thread
PalVala marked this conversation as resolved.

- name: mas_icr_cp
value: $(params.mas_icr_cp)
Expand Down
15 changes: 4 additions & 11 deletions tekton/src/tasks/aiservice/aiservice.yml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -148,12 +148,9 @@ spec:
type: string

# RSL
- name: rsl_url
type: string
- name: rsl_org_id
type: string
- name: rsl_token
- name: rsl_ca_crt
type: string

Comment thread
PalVala marked this conversation as resolved.

# RHOAI flag
- name: rhoai
Expand Down Expand Up @@ -260,12 +257,8 @@ spec:
value: $(params.tenant_scheduling_cfg_file)

# RSL
- name: RSL_URL
value: $(params.rsl_url)
- name: RSL_ORG_ID
value: $(params.rsl_org_id)
- name: RSL_TOKEN
value: $(params.rsl_token)
- name: RSL_CA_CRT
value: $(params.rsl_ca_crt)

# Certificate Issuer
- name: AISERVICE_CERTIFICATE_ISSUER
Expand Down
3 changes: 2 additions & 1 deletion tekton/src/tasks/clean-workspaces.yml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -76,4 +76,5 @@ spec:
echo ""
echo "=========================================="
echo "Workspace cleanup completed successfully"
echo "=========================================="
echo "=========================================="

3 changes: 2 additions & 1 deletion tekton/src/tasks/common/mas-config-helper.yml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -53,4 +53,5 @@ spec:
echo -n "$IS_POST_92" > $(results.is-post-92.path)
echo "DEBUG: Result written to $(results.is-post-92.path)"

# Additional configuration analysis can be added here in the future
# Additional configuration analysis can be added here in the future

2 changes: 1 addition & 1 deletion tekton/src/tasks/gitops/gitops-aiservice-tenant.yml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,7 @@ spec:
export CATALOG_CHANNEL=${AISERVICE_CATALOG_CHANNEL}
fi
echo "[INFO] CATALOG_CHANNEL=${CATALOG_CHANNEL}"

mas gitops-aiservice-tenant -a $ACCOUNT -c $CLUSTER_NAME \
--secrets-path $SECRET_PATH \
--dir /tmp/init-aiservice-tenant \
Expand Down
2 changes: 1 addition & 1 deletion tekton/src/tasks/ivt/ivt-manage.yml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -143,4 +143,4 @@ spec:
securityContext:
privileged: true
runAsUser: 0

3 changes: 2 additions & 1 deletion tekton/src/tasks/prepare-backup-workspace.yml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -66,4 +66,5 @@ spec:
echo ""
echo "=========================================="
echo "Workspace preparation completed successfully"
echo "=========================================="
echo "=========================================="

1 change: 1 addition & 0 deletions tekton/src/tasks/upload-backup-archive.yml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -101,3 +101,4 @@ spec:

workspaces:
- name: backups

Loading