Skip to content

[patch] Day2dev pipeline prep#2469

Draft
prveenkumr wants to merge 21 commits into
masterfrom
fix-dev-channel-upgrade
Draft

[patch] Day2dev pipeline prep#2469
prveenkumr wants to merge 21 commits into
masterfrom
fix-dev-channel-upgrade

Conversation

@prveenkumr

Copy link
Copy Markdown
Contributor

No description provided.

prveenkumr added 21 commits July 1, 2026 15:39
….1.x-dev

- upgrade_path: 9.1.x-dev -> 9.2.x, 9.0.x-dev -> 9.1.x-dev
- compatibilityMatrix: new 9.1.x-dev and 9.0.x-dev entries; 9.2.x updated
  to accept apps coming from 9.1.x-dev as a valid source channel
- licenses: 9.1.x-dev (reuses MAS 9.1 license), 9.0.x-dev (reuses MAS 9.0)
- tests: 4 new upgrade tests covering both dev-channel paths (auto-determine
  and explicit --next-channel); dev_mode install tests updated since
  9.1.x-dev app channels are now auto-resolved from compatibilityMatrix
  instead of being prompted interactively
Collapse parenthesised assert messages to single-line form
as required by black.
Adds a new command-line argument to skip the suite version compatibility check during upgrade. This is useful when upgrading from a dev channel where the compatibility check may not be appropriate.
Initialize self.chosenCatalog to None and guard downstream dict accesses to gracefully handle NoSuchCatalogError when using v9-master-amd64 catalog tag in dev mode or when getCatalog() fails. Replace hard assert on catalog ID with fallback value. Add exception handling in dev-mode branch and validateCatalog() to mirror mas install pattern. Includes integration tests for master catalog scenarios.
MAS_CATALOG_IMAGE in mas.env has no effect on the standard update path —
it is a GitOps-only variable. The correct mechanism is mas_catalog_digest,
which the ibm_catalogs Ansible role uses to select a digest-pinned
CatalogSource template (development-catalog-with-digest.yml.j2) over a
mutable tag-based one (online-catalog.yml.j2). Without a digest, OLM
resolves the tag at runtime and always pulls from icr.io regardless of
any local configuration.

mas install already has full end-to-end support for mas_catalog_digest.
mas update was never wired up.

Changes:
- python/src/mas/cli/update/argParser.py: add --mas-catalog-digest argument
  to the Catalog Selection group, matching install/argParser.py
- python/src/mas/cli/update/app.py: add mas_catalog_digest to optionalParams
  so it is stored in self.params and forwarded to launchUpdatePipeline();
  add summary display line when non-empty
- tekton/src/pipelines/mas-update.yml.j2: declare mas_catalog_digest as an
  optional pipeline parameter (default ""); pass it to the update-catalog
  task invocation alongside mas_catalog_version
- python/tests/integration/update/test_catalog_digest.py: three integration
  tests covering argument acceptance, param propagation, and absent-digest
  default behaviour

The Tekton task definition (mas-devops-ibm-catalogs) and Ansible role
(ibm_catalogs) required no changes — they already handle mas_catalog_digest
correctly.
Ensure MAS_ICR_CPOPEN is propagated for dev-mode updates so ibm_catalogs pulls from Artifactory. Changes: set mas_icr_cpopen in UpdateApp (from MAS_ICR_CPOPEN env or Artifactory default); add mas_icr_cpopen pipeline param and forward it to update-catalog in mas-update.yml.j2; declare mas_icr_cpopen param and expose MAS_ICR_CPOPEN env in tekton task ibm-catalogs.yml.j2; forward mas_icr_cpopen in cluster-setup taskdef. Added plan doc describing the fix. No other functional changes.
- Add mock patches to explicitly trigger NoSuchCatalogError in install/aiservice_install tests
- Update CLI argument from --mas-catalog-version to --catalog in update tests
- Ensures tests reliably raise expected errors without depending on actual catalog lookups
When upgrading from a dev channel (containing '-dev' in the channel name), automatically enable the skip_compatibility_check flag. This improves the user experience by avoiding manual flag specification. Updated help text to reflect the auto-enabling behavior and added test coverage for this functionality.
Added new dev channel versions to the compatibility matrix and license information. Updated upgrade paths to direct -dev channels to their respective -dev targets. Introduced upgrade_path_alternatives to allow multiple valid upgrade destinations from a single source channel, enabling more flexibility in upgrade scenarios. Updated upgrade validation logic to accept both default and alternative upgrade paths.
Remove custom channel prompts for IoT, Monitor, and Manage in the ArcGIS cluster mode install test. Update upgrade channel test expectations and comments to use 9.2.x-dev instead of 9.2.x.
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.

1 participant