Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
1d33284
[minor] remove no_wait_for_pvc arg and detect binding type auto from …
anilprajapatiibm Nov 23, 2025
04072fa
Merge branch 'master' into 1906-automatically-determine-volumebinding…
anilprajapatiibm Dec 1, 2025
5eb7dba
[patch] python local tar
anilprajapatiibm Dec 1, 2025
54148ac
[patch] re-build
anilprajapatiibm Dec 2, 2025
f4d1728
Merge branch 'master' into 1906-automatically-determine-volumebinding…
anilprajapatiibm Dec 4, 2025
03aeccd
[patch] local tar
anilprajapatiibm Dec 4, 2025
73eb163
[patch] tmp remove test stage
anilprajapatiibm Dec 4, 2025
6671e92
[patch] disable wait for pvc message
anilprajapatiibm Dec 4, 2025
b6dbbf0
Merge branch 'master' into 1906-automatically-determine-volumebinding…
anilprajapatiibm Dec 11, 2025
c8dbabb
[patch] add python local tar
anilprajapatiibm Dec 11, 2025
52fac52
Merge branch 'master' into 1906-automatically-determine-volumebinding…
anilprajapatiibm Dec 17, 2025
92ace38
[patch] remove local tar
anilprajapatiibm Dec 17, 2025
8b33ea7
[patch] enable test stage
anilprajapatiibm Dec 17, 2025
157536f
[patch] add param in installOpenshiftpipelines
anilprajapatiibm Dec 18, 2025
626bd6c
Revert "[patch] enable test stage"
anilprajapatiibm Dec 18, 2025
5921d95
Merge branch 'master' into 1906-automatically-determine-volumebinding…
anilprajapatiibm Dec 23, 2025
0d4837d
[patch] rebuild
anilprajapatiibm Jan 6, 2026
9f72ce8
[patch] rebuild
anilprajapatiibm Jan 8, 2026
51f13f7
[patch] enable the tests
anilprajapatiibm Jan 8, 2026
86099db
Merge branch 'master' into 1906-automatically-determine-volumebinding…
anilprajapatiibm Jan 9, 2026
2d1ed14
Merge branch 'master' into 1906-automatically-determine-volumebinding…
durera Jan 16, 2026
3fa486b
[patch] mock prepareAiServicePipelinesNamespace in test
anilprajapatiibm Jan 16, 2026
a02a455
[patch] remove wait for pvc print summary
anilprajapatiibm Jan 20, 2026
43ffbb5
Merge branch 'master' into 1906-automatically-determine-volumebinding…
anilprajapatiibm Jan 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
10 changes: 1 addition & 9 deletions python/src/mas/cli/aiservice/install/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -308,7 +308,7 @@ def nonInteractiveMode(self) -> None:
self.fatalError(f"Unsupported format for {key} ({value}). Expected int:int:boolean")

# Arguments that we don't need to do anything with
elif key in ["accept_license", "dev_mode", "skip_pre_check", "skip_grafana_install", "no_confirm", "no_wait_for_pvc", "help", "advanced", "simplified"]:
elif key in ["accept_license", "dev_mode", "skip_pre_check", "skip_grafana_install", "no_confirm", "help", "advanced", "simplified"]:
pass

elif key == "manual_certificates":
Expand Down Expand Up @@ -351,7 +351,6 @@ def install(self, argv):
instanceId = args.aiservice_instance_id
# Properties for arguments that control the behavior of the CLI
self.noConfirm = args.no_confirm
self.waitForPVC = not args.no_wait_for_pvc
self.licenseAccepted = args.accept_license
self.devMode = args.dev_mode

Expand Down Expand Up @@ -447,12 +446,6 @@ def install(self, argv):
self.printH1("Launch Install")
pipelinesNamespace = f"aiservice-{self.getParam('aiservice_instance_id')}-pipelines"

if not self.noConfirm:
self.printDescription(["If you are using storage classes that utilize 'WaitForFirstConsumer' binding mode choose 'No' at the prompt below"])
wait = self.yesOrNo("Wait for PVCs to bind")
else:
wait = False

with Halo(text='Validating OpenShift Pipelines installation', spinner=self.spinner) as h:
if installOpenShiftPipelines(self.dynamicClient):
h.stop_and_persist(symbol=self.successIcon, text="OpenShift Pipelines Operator is installed and ready to use")
Expand All @@ -467,7 +460,6 @@ def install(self, argv):
instanceId=self.getParam("aiservice_instance_id"),
storageClass=self.pipelineStorageClass,
accessMode=self.pipelineStorageAccessMode,
waitForBind=wait,
configureRBAC=(self.getParam("service_account_name") == "")
)
prepareInstallSecrets(
Expand Down
2 changes: 0 additions & 2 deletions python/src/mas/cli/aiservice/install/argBuilder.py
Original file line number Diff line number Diff line change
Expand Up @@ -94,8 +94,6 @@ def buildCommand(self) -> str:
# -----------------------------------------------------------------------------
if self.devMode:
command += f" --dev-mode{newline}"
if not self.waitForPVC:
command += f" --no-wait-for-pvc{newline}"
if self.getParam('skip_pre_check') is True:
command += f" --skip-pre-check{newline}"
if self.getParam('image_pull_policy') != "":
Expand Down
6 changes: 0 additions & 6 deletions python/src/mas/cli/aiservice/install/argParser.py
Original file line number Diff line number Diff line change
Expand Up @@ -470,12 +470,6 @@ def isValidFile(parser, arg) -> str:
default=False,
help="Configure installation for development mode",
)
otherArgGroup.add_argument(
"--no-wait-for-pvc",
required=False,
action="store_true",
help="Disable the wait for pipeline PVC to bind before starting the pipeline"
)
otherArgGroup.add_argument(
"--skip-pre-check",
required=False,
Expand Down
13 changes: 2 additions & 11 deletions python/src/mas/cli/install/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -1345,7 +1345,7 @@ def nonInteractiveMode(self) -> None:
self.fatalError(f"Unsupported format for {key} ({value}). Expected int:int:boolean")

# Arguments that we don't need to do anything with
elif key in ["accept_license", "dev_mode", "skip_pre_check", "skip_grafana_install", "no_confirm", "no_wait_for_pvc", "help", "advanced", "simplified"]:
elif key in ["accept_license", "dev_mode", "skip_pre_check", "skip_grafana_install", "no_confirm", "help", "advanced", "simplified"]:
pass

elif key == "manual_certificates":
Expand Down Expand Up @@ -1461,7 +1461,6 @@ def install(self, argv):

# Properties for arguments that control the behavior of the CLI
self.noConfirm = args.no_confirm
self.waitForPVC = not args.no_wait_for_pvc
self.licenseAccepted = args.accept_license
self.devMode = args.dev_mode
self.skipGrafanaInstall = args.skip_grafana_install
Expand Down Expand Up @@ -1522,13 +1521,6 @@ def install(self, argv):
self.slsLicenseFile()
self.manualCertificates()

if not self.noConfirm and not self.waitForPVC:
self.printDescription(["If you are using storage classes that utilize 'WaitForFirstConsumer' binding mode choose 'No' at the prompt below"])
self.waitForPVC = self.yesOrNo("Wait for PVCs to bind")

if not self.waitForPVC:
self.setParam("no_wait_for_pvc", True)

# Show a summary of the installation configuration
self.printH1("Non-Interactive Install Command")
self.printDescription([
Expand Down Expand Up @@ -1557,7 +1549,7 @@ def install(self, argv):
pipelinesNamespace = f"mas-{self.getParam('mas_instance_id')}-pipelines"

with Halo(text='Validating OpenShift Pipelines installation', spinner=self.spinner) as h:
if installOpenShiftPipelines(self.dynamicClient, self.getParam("storage_class_rwx")):
if installOpenShiftPipelines(self.dynamicClient, customStorageClassName=self.getParam("storage_class_rwx")):
h.stop_and_persist(symbol=self.successIcon, text="OpenShift Pipelines Operator is installed and ready to use")
else:
h.stop_and_persist(symbol=self.successIcon, text="OpenShift Pipelines Operator installation failed")
Expand All @@ -1570,7 +1562,6 @@ def install(self, argv):
instanceId=self.getParam("mas_instance_id"),
storageClass=self.pipelineStorageClass,
accessMode=self.pipelineStorageAccessMode,
waitForBind=self.waitForPVC,
configureRBAC=(self.getParam("service_account_name") == "")
)
prepareInstallSecrets(
Expand Down
2 changes: 0 additions & 2 deletions python/src/mas/cli/install/argBuilder.py
Original file line number Diff line number Diff line change
Expand Up @@ -541,8 +541,6 @@ def buildCommand(self) -> str:
# -----------------------------------------------------------------------------
if self.devMode:
command += f" --dev-mode{newline}"
if not self.waitForPVC:
command += f" --no-wait-for-pvc{newline}"
if self.getParam('skip_pre_check') is True:
command += f" --skip-pre-check{newline}"
if self.getParam('skip_grafana_install') is True:
Expand Down
6 changes: 0 additions & 6 deletions python/src/mas/cli/install/argParser.py
Original file line number Diff line number Diff line change
Expand Up @@ -1491,12 +1491,6 @@ def isValidFile(parser: argparse.ArgumentParser, arg: str) -> str:
default=False,
help="Configure installation for development mode"
)
otherArgGroup.add_argument(
"--no-wait-for-pvc",
required=False,
action="store_true",
help="Disable the wait for pipeline PVC to bind before starting the pipeline"
)
otherArgGroup.add_argument(
"--skip-pre-check",
required=False,
Expand Down
4 changes: 2 additions & 2 deletions python/src/mas/cli/install/summarizer.py
Original file line number Diff line number Diff line change
Expand Up @@ -391,8 +391,8 @@ def grafanaSummary(self) -> None:
self.printSummary("Install Grafana", "Install" if self.getParam("grafana_action") == "install" else "Do Not Install")

def installSummary(self) -> None:
self.printH2("Install Process")
self.printSummary("Wait for PVCs to bind", "No" if self.getParam("no_wait_for_pvc") else "Yes")
pass
# self.printH2("Install Process")

def displayInstallSummary(self) -> None:
self.printH1("Review Settings")
Expand Down
2 changes: 2 additions & 0 deletions python/test/aiservice/install/test_app.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ def test_install_noninteractive(tmpdir):
mock.patch('mas.cli.aiservice.install.app.getCurrentCatalog') as get_current_catalog,
mock.patch('mas.cli.aiservice.install.app.installOpenShiftPipelines'),
mock.patch('mas.cli.aiservice.install.app.updateTektonDefinitions'),
mock.patch('mas.cli.aiservice.install.app.prepareAiServicePipelinesNamespace'),
mock.patch('mas.cli.aiservice.install.app.launchInstallPipeline') as launch_ai_service_install_pipeline
):
dynamic_client_class.return_value = dynamic_client
Expand Down Expand Up @@ -142,6 +143,7 @@ def test_install_interactive(tmpdir):
mock.patch('mas.cli.aiservice.install.app.getCurrentCatalog') as get_current_catalog,
mock.patch('mas.cli.aiservice.install.app.installOpenShiftPipelines'),
mock.patch('mas.cli.aiservice.install.app.updateTektonDefinitions'),
mock.patch('mas.cli.aiservice.install.app.prepareAiServicePipelinesNamespace'),
mock.patch('mas.cli.aiservice.install.app.launchInstallPipeline') as launch_ai_service_install_pipeline,
mock.patch('mas.cli.cli.isSNO') as is_sno,
mock.patch('mas.cli.displayMixins.prompt') as mixins_prompt,
Expand Down