Skip to content

[minor] Add support for Monitor 9.2.0+ standalone installation without IoT dependency#2129

Closed
jvaneel-dwivedi wants to merge 51 commits intomonthlyupdatefrom
monitor-iot-92-fvt-fixes-monthlyupdate
Closed

[minor] Add support for Monitor 9.2.0+ standalone installation without IoT dependency#2129
jvaneel-dwivedi wants to merge 51 commits intomonthlyupdatefrom
monitor-iot-92-fvt-fixes-monthlyupdate

Conversation

@jvaneel-dwivedi
Copy link
Copy Markdown
Contributor

This commit introduces flexible installation ordering for Monitor and IoT applications,
allowing Monitor 9.2.0+ to be installed independently or before IoT, while maintaining
backward compatibility for Monitor < 9.2.0 which requires IoT as a dependency.

Key Changes:

Python CLI (python/src/mas/cli/install/)

  • Modified app.py to support version-based Monitor/IoT installation logic
  • Added mas_monitor_install_order parameter to control installation sequence
  • Implemented version detection to determine if Monitor can be installed standalone
  • Enhanced user prompts to allow Monitor installation without IoT for versions >= 9.2.0
  • Added validation to prevent Monitor < 9.2.0 installation without IoT
  • Updated DB2 and Kafka settings to handle new installation scenarios

Tekton Pipelines (tekton/src/)

  • Added mas_monitor_install_order parameter to control installation flow
  • Implemented dual installation paths:
    • after-iot: Legacy behavior for Monitor < 9.2.0 (Monitor installs after IoT)
    • before-iot: New behavior for Monitor >= 9.2.0 (Monitor installs before or without IoT)
  • Enhanced FVT launcher pipeline with conditional task execution based on install order
  • Added new tasks for Monitor-first installation scenario:
    • waitfor-monitor-before-iot
    • launchfvt-monitor-before-iot
    • approval-monitor-before-iot
    • waitfor-iot-after-monitor
    • approval-iot-after-monitor
  • Updated task dependencies to support parallel or sequential installation

Documentation (docs/guides/install.md)

  • Added version-based dependency documentation
  • Clarified Monitor < 9.2.0 requires IoT
  • Documented Monitor >= 9.2.0 can be installed standalone or in any order with IoT

Testing

  • Updated test expectations for new catalog behavior

@jvaneel-dwivedi jvaneel-dwivedi requested a review from a team as a code owner March 25, 2026 15:48
@jvaneel-dwivedi jvaneel-dwivedi changed the title [minor] Add support for Monitor 9.2.0+ standalone installation without IoT dependency [patch] Add support for Monitor 9.2.0+ standalone installation without IoT dependency Mar 25, 2026
@jvaneel-dwivedi jvaneel-dwivedi changed the title [patch] Add support for Monitor 9.2.0+ standalone installation without IoT dependency [minor] Add support for Monitor 9.2.0+ standalone installation without IoT dependency Mar 25, 2026
Base automatically changed from monthlyupdate to master March 26, 2026 17:44
Copy link
Copy Markdown
Member

@whitfiea whitfiea left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this PR shouldn't contain the catalog changes

@akashbogam akashbogam force-pushed the monitor-iot-92-fvt-fixes-monthlyupdate branch from 3f229cf to 00f67d3 Compare March 27, 2026 10:32
@akashbogam akashbogam changed the base branch from master to monthlyupdate March 27, 2026 10:35
akashbogamibm and others added 21 commits March 27, 2026 16:12
Prevents FVT from waiting indefinitely when install pipeline has failed.
Adds check-install-status task that verifies sync-install STATUS=Success
before proceeding with app FVT waits. Fails fast (5 min) instead of
timing out after 30+ minutes.

- Added check-install-status task after approval-suite-verify
- Task waits for sync-install configmap STATUS=Success
- Max wait time: 5 retries × 60 seconds = 5 minutes
- Updated waitfor-manage to run after check-install-status
- Only runs when sync_with_install=true

Modified: tekton/src/pipelines/mas-fvt-launcher.yml.j2
Removed git merge conflict markers that were causing YAML parsing error.
The conflict was in the waitfor-iot-before-monitor task's when clause.

Kept the correct version with proper spacing in values array:
- Added space after comma in values list
- Included all necessary IoT wait scenarios
- Removed duplicate/conflicting when clause definitions

This fixes the kubectl apply error:
'error converting YAML to JSON: yaml: line 405: could not find expected ':'

Modified: tekton/src/pipelines/mas-fvt-launcher.yml.j2
The approval-iot task was creating a cycle:
- approval-iot depends on launchfvt-iot
- launchfvt-iot depends on waitfor-iot-after-monitor
- waitfor-iot-after-monitor depends on approval-monitor
- approval-monitor depends on launchfvt-monitor
- (potential cycle if monitor waits for iot)

Fixed by:
- Changed approval-iot runAfter from launchfvt-iot to waitfor-iot-* tasks
- Added launchfvt_iot condition to approval-iot when clause
- This breaks the cycle while maintaining correct execution order

The approval-iot task now runs after IoT installation is confirmed (via waitfor tasks)
rather than after the FVT launch, which is the correct behavior.

Modified: tekton/src/pipelines/mas-fvt-launcher.yml.j2
The circular dependency was:
- approval-iot → launchfvt-iot → waitfor-iot-after-monitor → approval-monitor
  → launchfvt-monitor → waitfor-monitor-after-iot → approval-iot (CYCLE!)

Fixed by changing waitfor-monitor-after-iot runAfter from:
  - approval-manage
  - approval-iot
To:
  - approval-manage
  - waitfor-iot-before-monitor

This breaks the cycle while maintaining correct execution order:
- Monitor (after-iot) waits for IoT installation to be confirmed
- But doesn't create circular dependency with IoT approval

Validated locally with test.sh - pipeline created successfully.

Modified: tekton/src/pipelines/mas-fvt-launcher.yml.j2
jvaneel-dwivedi and others added 27 commits March 27, 2026 16:12
- waitfor-iot now depends on approval-manage (Manage must be installed first)
- waitfor-monitor now depends on waitfor-iot (waits for IoT installation to complete)
- This ensures both Monitor and IoT are installed before their FVTs run
- Both FVTs can then run in parallel after all installations complete

Installation order: Manage -> Monitor -> IoT
FVT execution: Both Monitor and IoT FVTs start after IoT installation completes
@akashbogam akashbogam force-pushed the monitor-iot-92-fvt-fixes-monthlyupdate branch from 00f67d3 to 05c2d3f Compare March 27, 2026 10:43
@akashbogam
Copy link
Copy Markdown
Contributor

closing this PR, as #2114 already merged.

@akashbogam akashbogam closed this Mar 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants