MGMT-22414: provides parameters for the GET /v2/operators/bundles route#3306
Conversation
|
@ElayAharoni: This pull request references MGMT-22414 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the task to target the "4.21.0" version, but no target version was set. DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
WalkthroughBundle listing was parameterized with optional filters (openshiftVersion, cpuArchitecture, platformType, featureIds) across API and service layers; SNO-related flags and branches were removed from bundle specs and operator UI; an Changes
Sequence Diagram(s)sequenceDiagram
actor User
participant ClusterDetails
participant OperatorsStep
participant BundleService
participant BundleAPI
participant OperatorsBundle
User->>ClusterDetails: open wizard / update cluster params
ClusterDetails->>OperatorsStep: mount / refresh (with cluster params)
OperatorsStep->>BundleService: listBundles(openshiftVersion, cpuArchitecture, platformType, featureIds?)
BundleService->>BundleAPI: list(openshift_version=..., cpu_architecture=..., platform_type=..., feature_ids=..., external_platform_name?)
BundleAPI-->>BundleService: bundles[]
BundleService-->>OperatorsStep: bundles[]
OperatorsStep->>BundleService: listBundles(...) for allBundles (separate call)
BundleService->>BundleAPI: list(...) (same params, no SNO flag)
BundleAPI-->>BundleService: allBundles[]
BundleService-->>OperatorsStep: allBundles[]
OperatorsStep->>OperatorsBundle: render(bundles, allBundles)
OperatorsBundle-->>User: UI rendered using allBundles (no SNO checks)
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes
Possibly related PRs
Suggested labels
Suggested reviewers
Poem
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro 📒 Files selected for processing (7)
💤 Files with no reviewable changes (1)
✅ Files skipped from review due to trivial changes (1)
🚧 Files skipped from review as they are similar to previous changes (3)
🧰 Additional context used🧠 Learnings (2)📚 Learning: 2025-08-11T06:07:38.056ZApplied to files:
📚 Learning: 2025-10-21T04:40:36.292ZApplied to files:
🧬 Code graph analysis (1)libs/ui-lib/lib/ocm/components/clusterWizard/OperatorsStep.tsx (1)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (6)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
@ElayAharoni: This pull request references MGMT-22414 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the task to target the "4.21.0" version, but no target version was set. DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (2)
libs/ui-lib/lib/common/api/assisted-service/BundleAPI.ts (1)
16-22: Consider extracting the 'oci' magic string to a constant.The hardcoded
'oci'value could be extracted to a named constant for better maintainability and to make the platform name more discoverable across the codebase.const EXTERNAL_PLATFORM_OCI = 'oci'; // Then use it in the params: ...(platformType === 'external' ? { external_platform_name: EXTERNAL_PLATFORM_OCI } : {}),libs/ui-lib/lib/ocm/components/clusterWizard/OperatorsStep.tsx (1)
27-40: Consider fetching both bundle lists in parallel.The two
BundleService.listBundlescalls are executed sequentially, which increases loading time. Since they're independent requests, fetching them in parallel withPromise.allwould improve performance.const fetchBundles = async () => { try { - const fetchedBundles = await BundleService.listBundles( - cluster?.openshiftVersion || '', - cluster?.cpuArchitecture || '', - cluster?.platform?.type || '', - cluster?.controlPlaneCount === 1 ? 'SNO' : undefined, - ); - const allBundles = await BundleService.listBundles( - cluster?.openshiftVersion || '', - cluster?.cpuArchitecture || '', - cluster?.platform?.type || '', - undefined, - ); + const [fetchedBundles, allBundles] = await Promise.all([ + BundleService.listBundles( + cluster?.openshiftVersion || '', + cluster?.cpuArchitecture || '', + cluster?.platform?.type || '', + cluster?.controlPlaneCount === 1 ? 'SNO' : undefined, + ), + BundleService.listBundles( + cluster?.openshiftVersion || '', + cluster?.cpuArchitecture || '', + cluster?.platform?.type || '', + undefined, + ), + ]); setBundles(fetchedBundles); setAllBundles(allBundles);
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (6)
libs/ui-lib/lib/common/api/assisted-service/BundleAPI.ts(1 hunks)libs/ui-lib/lib/ocm/components/clusterConfiguration/operators/bundleSpecs.tsx(0 hunks)libs/ui-lib/lib/ocm/components/clusterWizard/ClusterDetails.tsx(1 hunks)libs/ui-lib/lib/ocm/components/clusterWizard/OperatorsBundle.tsx(3 hunks)libs/ui-lib/lib/ocm/components/clusterWizard/OperatorsStep.tsx(3 hunks)libs/ui-lib/lib/ocm/services/BundleService.ts(1 hunks)
💤 Files with no reviewable changes (1)
- libs/ui-lib/lib/ocm/components/clusterConfiguration/operators/bundleSpecs.tsx
🧰 Additional context used
🧠 Learnings (2)
📚 Learning: 2025-08-11T06:07:38.056Z
Learnt from: ammont82
Repo: openshift-assisted/assisted-installer-ui PR: 3101
File: libs/ui-lib/lib/common/config/docs_links.ts:203-221
Timestamp: 2025-08-11T06:07:38.056Z
Learning: The MetalLB, OADP, Cluster Observability, and NUMA Resources operators in the virtualization bundle don't require version fallback logic in their documentation link functions (getMetalLbLink, getOadpLink, getClusterObservabilityLink, getNumaResourcesLink) in libs/ui-lib/lib/common/config/docs_links.ts, unlike some other operators like LSO and NVIDIA GPU.
Applied to files:
libs/ui-lib/lib/ocm/components/clusterWizard/OperatorsBundle.tsxlibs/ui-lib/lib/ocm/components/clusterWizard/OperatorsStep.tsxlibs/ui-lib/lib/common/api/assisted-service/BundleAPI.tslibs/ui-lib/lib/ocm/components/clusterWizard/ClusterDetails.tsx
📚 Learning: 2025-10-21T04:40:36.292Z
Learnt from: linoyaslan
Repo: openshift-assisted/assisted-installer-ui PR: 3190
File: libs/ui-lib/lib/ocm/components/clusterConfiguration/networkConfiguration/AdvancedNetworkFields.tsx:55-63
Timestamp: 2025-10-21T04:40:36.292Z
Learning: In libs/ui-lib/lib/ocm/components/clusterConfiguration/networkConfiguration/AdvancedNetworkFields.tsx, the network reordering logic in the useEffect (swapping clusterNetworks and serviceNetworks based on the primary machine network's IP family) is for UI consistency only. Validation of empty or invalid CIDRs is handled separately by validation schemas, not by the reordering logic.
Applied to files:
libs/ui-lib/lib/ocm/components/clusterWizard/OperatorsBundle.tsxlibs/ui-lib/lib/ocm/components/clusterWizard/OperatorsStep.tsxlibs/ui-lib/lib/ocm/components/clusterWizard/ClusterDetails.tsx
🧬 Code graph analysis (3)
libs/ui-lib/lib/ocm/components/clusterWizard/OperatorsBundle.tsx (2)
libs/types/assisted-installer-service.d.ts (1)
Bundle(89-109)libs/ui-lib/lib/common/config/constants.ts (1)
singleClusterBundles(362-362)
libs/ui-lib/lib/ocm/components/clusterWizard/OperatorsStep.tsx (1)
libs/types/assisted-installer-service.d.ts (1)
Bundle(89-109)
libs/ui-lib/lib/common/api/assisted-service/BundleAPI.ts (1)
libs/types/assisted-installer-service.d.ts (1)
Bundle(89-109)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (6)
- GitHub Check: unit-tests
- GitHub Check: format
- GitHub Check: lint
- GitHub Check: translation-files
- GitHub Check: circular-deps
- GitHub Check: tests
🔇 Additional comments (7)
libs/ui-lib/lib/ocm/components/clusterWizard/OperatorsStep.tsx (2)
54-60: LGTM! Effect dependencies are correctly specified.The useEffect dependencies properly track all the cluster properties used in the bundle fetching logic, including the
controlPlaneCountfor SNO detection.
21-21: Good addition ofallBundlesstate for comprehensive bundle tracking.This enables the UI to distinguish between bundles available for the current configuration and all possible bundles, improving user feedback when bundles are unavailable.
libs/ui-lib/lib/ocm/components/clusterWizard/OperatorsBundle.tsx (3)
168-178: LGTM! Clear separation between available and all bundles.The introduction of
allBundlesalongsidebundlesprovides a clean way to show users which bundles exist but aren't available for their current configuration, improving the UX with context-aware feedback.
111-112: LGTM! Improved bundle availability logic.The new approach dynamically determines bundle availability based on the API response rather than hardcoded SNO checks. The user-facing message helpfully suggests standalone operators as an alternative.
190-193: LGTM! Rendering strategy improves bundle discoverability.By rendering from
allBundlesand passing the filteredbundleslist toBundleCardfor availability checks, users can discover all bundles while understanding which are not available for their configuration. This is better UX than hiding unavailable bundles entirely.libs/ui-lib/lib/common/api/assisted-service/BundleAPI.ts (1)
21-21: The hardcoded 'oci' value is correct and intentional. The codebase consistently uses 'oci' as the only supported external platform name across multiple service files (Day2ClusterService, ClusterDetailsService, ClustersService, etc.) and utility functions likeisOciPlatformType()that verify this mapping. There is no evidence of support for or plans to support multiple external platforms, so parameterization is not needed.libs/ui-lib/lib/ocm/components/clusterWizard/ClusterDetails.tsx (1)
90-96: No action needed. The code is correct for its context. TheBundleService.listBundlescall in ClusterDetails.tsx does not require SNO feature filtering because the virtualization bundle operators are compatible with both single-node and multi-node clusters. The SNO filtering in OperatorsStep.tsx serves a different purpose—providing user-facing recommendations filtered by cluster type—whereas ClusterDetails is programmatically fetching a specific bundle for Assisted Migration automation.
63ec085 to
b239041
Compare
|
@ElayAharoni: This pull request references MGMT-22414 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the task to target the "4.21.0" version, but no target version was set. DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
There was a problem hiding this comment.
Actionable comments posted: 1
♻️ Duplicate comments (1)
libs/ui-lib/lib/ocm/components/clusterWizard/OperatorsStep.tsx (1)
27-38: Avoid passing empty strings for optional listBundles parametersNow that
BundleService.listBundlestakes optional parameters, it would be cleaner (and more consistent withClusterDetails.tsx) to passundefinedinstead of''when the cluster fields are not yet populated. This also avoids sending “blank” query parameters to the backend.For example:
- const fetchedBundles = await BundleService.listBundles( - cluster?.openshiftVersion || '', - cluster?.cpuArchitecture || '', - cluster?.platform?.type || '', - cluster?.controlPlaneCount === 1 ? 'SNO' : undefined, - ); - const allBundles = await BundleService.listBundles( - cluster?.openshiftVersion || '', - cluster?.cpuArchitecture || '', - cluster?.platform?.type || '', - undefined, - ); + const fetchedBundles = await BundleService.listBundles( + cluster?.openshiftVersion, + cluster?.cpuArchitecture, + cluster?.platform?.type, + cluster?.controlPlaneCount === 1 ? 'SNO' : undefined, + ); + const allBundles = await BundleService.listBundles( + cluster?.openshiftVersion, + cluster?.cpuArchitecture, + cluster?.platform?.type, + undefined, + );This also aligns with how
BundleService.listBundlesis called inClusterDetails.tsx.
🧹 Nitpick comments (2)
libs/ui-lib/lib/ocm/components/clusterWizard/OperatorsStep.tsx (1)
21-41: Consider de‑duplicating bundle fetches and resettingbundlesLoadingon refetchThe shape of the effect looks fine, but there are two small improvements:
- For non‑SNO clusters, both
listBundlescalls use identical arguments (fourth param isundefined), so you’re doing the same request twice. You can avoid the extra call by reusing the result whencluster.controlPlaneCount !== 1.bundlesLoadingis initialized totruebut never set back totruewhen dependencies change, so subsequent refetches (e.g., when version/arch/platform/controlPlaneCount changes) won’t show a loading state.A minimal refactor could look like:
React.useEffect(() => { const fetchBundles = async () => { + setBundlesLoading(true); try { - const fetchedBundles = await BundleService.listBundles( - cluster?.openshiftVersion || '', - cluster?.cpuArchitecture || '', - cluster?.platform?.type || '', - cluster?.controlPlaneCount === 1 ? 'SNO' : undefined, - ); - const allBundles = await BundleService.listBundles( - cluster?.openshiftVersion || '', - cluster?.cpuArchitecture || '', - cluster?.platform?.type || '', - undefined, - ); + const allBundles = await BundleService.listBundles( + cluster?.openshiftVersion || '', + cluster?.cpuArchitecture || '', + cluster?.platform?.type || '', + undefined, + ); + const fetchedBundles = + cluster?.controlPlaneCount === 1 + ? await BundleService.listBundles( + cluster?.openshiftVersion || '', + cluster?.cpuArchitecture || '', + cluster?.platform?.type || '', + 'SNO', + ) + : allBundles; setBundles(fetchedBundles); setAllBundles(allBundles); } catch (error) { @@ - void fetchBundles(); + void fetchBundles(); }, [ addAlert, cluster.cpuArchitecture, cluster.openshiftVersion, cluster.platform?.type, cluster.controlPlaneCount, ]);Also applies to: 54-60
libs/ui-lib/lib/ocm/components/clusterWizard/ClusterDetails.tsx (1)
90-96: Optionally reuse the shared bundle ID constant instead of hard‑coding'virtualization'You already centralize single‑cluster bundle IDs in
singleClusterBundles(seeconstants.ts). To avoid another hard‑coded'virtualization'string here, you could reuse that constant, e.g.:-import BundleService from '../../services/BundleService'; +import BundleService from '../../services/BundleService'; +import { singleClusterBundles } from '../../../common'; @@ - const selectedBundle = ( - await BundleService.listBundles( - params.openshiftVersion, - params.cpuArchitecture, - params.platform?.type, - ) - ).find((b) => b.id === 'virtualization'); + const selectedBundle = ( + await BundleService.listBundles( + params.openshiftVersion, + params.cpuArchitecture, + params.platform?.type, + ) + ).find((b) => b.id === singleClusterBundles[0]);Not mandatory, but it reduces the number of places where the bundle ID is duplicated.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (6)
libs/ui-lib/lib/common/api/assisted-service/BundleAPI.ts(1 hunks)libs/ui-lib/lib/ocm/components/clusterConfiguration/operators/bundleSpecs.tsx(0 hunks)libs/ui-lib/lib/ocm/components/clusterWizard/ClusterDetails.tsx(1 hunks)libs/ui-lib/lib/ocm/components/clusterWizard/OperatorsBundle.tsx(3 hunks)libs/ui-lib/lib/ocm/components/clusterWizard/OperatorsStep.tsx(3 hunks)libs/ui-lib/lib/ocm/services/BundleService.ts(1 hunks)
💤 Files with no reviewable changes (1)
- libs/ui-lib/lib/ocm/components/clusterConfiguration/operators/bundleSpecs.tsx
🚧 Files skipped from review as they are similar to previous changes (1)
- libs/ui-lib/lib/common/api/assisted-service/BundleAPI.ts
🧰 Additional context used
🧠 Learnings (3)
📓 Common learnings
Learnt from: ammont82
Repo: openshift-assisted/assisted-installer-ui PR: 3101
File: libs/ui-lib/lib/common/config/docs_links.ts:203-221
Timestamp: 2025-08-11T06:07:38.056Z
Learning: The MetalLB, OADP, Cluster Observability, and NUMA Resources operators in the virtualization bundle don't require version fallback logic in their documentation link functions (getMetalLbLink, getOadpLink, getClusterObservabilityLink, getNumaResourcesLink) in libs/ui-lib/lib/common/config/docs_links.ts, unlike some other operators like LSO and NVIDIA GPU.
📚 Learning: 2025-08-11T06:07:38.056Z
Learnt from: ammont82
Repo: openshift-assisted/assisted-installer-ui PR: 3101
File: libs/ui-lib/lib/common/config/docs_links.ts:203-221
Timestamp: 2025-08-11T06:07:38.056Z
Learning: The MetalLB, OADP, Cluster Observability, and NUMA Resources operators in the virtualization bundle don't require version fallback logic in their documentation link functions (getMetalLbLink, getOadpLink, getClusterObservabilityLink, getNumaResourcesLink) in libs/ui-lib/lib/common/config/docs_links.ts, unlike some other operators like LSO and NVIDIA GPU.
Applied to files:
libs/ui-lib/lib/ocm/services/BundleService.tslibs/ui-lib/lib/ocm/components/clusterWizard/OperatorsStep.tsxlibs/ui-lib/lib/ocm/components/clusterWizard/OperatorsBundle.tsxlibs/ui-lib/lib/ocm/components/clusterWizard/ClusterDetails.tsx
📚 Learning: 2025-10-21T04:40:36.292Z
Learnt from: linoyaslan
Repo: openshift-assisted/assisted-installer-ui PR: 3190
File: libs/ui-lib/lib/ocm/components/clusterConfiguration/networkConfiguration/AdvancedNetworkFields.tsx:55-63
Timestamp: 2025-10-21T04:40:36.292Z
Learning: In libs/ui-lib/lib/ocm/components/clusterConfiguration/networkConfiguration/AdvancedNetworkFields.tsx, the network reordering logic in the useEffect (swapping clusterNetworks and serviceNetworks based on the primary machine network's IP family) is for UI consistency only. Validation of empty or invalid CIDRs is handled separately by validation schemas, not by the reordering logic.
Applied to files:
libs/ui-lib/lib/ocm/components/clusterWizard/OperatorsStep.tsxlibs/ui-lib/lib/ocm/components/clusterWizard/OperatorsBundle.tsxlibs/ui-lib/lib/ocm/components/clusterWizard/ClusterDetails.tsx
🧬 Code graph analysis (2)
libs/ui-lib/lib/ocm/components/clusterWizard/OperatorsStep.tsx (1)
libs/types/assisted-installer-service.d.ts (1)
Bundle(89-109)
libs/ui-lib/lib/ocm/components/clusterWizard/OperatorsBundle.tsx (2)
libs/types/assisted-installer-service.d.ts (1)
Bundle(89-109)libs/ui-lib/lib/common/config/constants.ts (1)
singleClusterBundles(362-362)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (6)
- GitHub Check: translation-files
- GitHub Check: format
- GitHub Check: circular-deps
- GitHub Check: tests
- GitHub Check: unit-tests
- GitHub Check: lint
🔇 Additional comments (4)
libs/ui-lib/lib/ocm/services/BundleService.ts (1)
4-15: listBundles parameterization and API pass‑through look goodOptional parameters and the direct forwarding to
BundleAPI.listare consistent and keep the service thin; no issues from this layer’s perspective.libs/ui-lib/lib/ocm/components/clusterWizard/OperatorsStep.tsx (1)
93-98: Prop wiring forallBundlesis consistentPassing
allBundlesalongsidebundlesandsearchTermintoOperatorsBundlematches the new API surface and keeps the wizard step nicely decoupled from bundle‑rendering details.libs/ui-lib/lib/ocm/components/clusterWizard/ClusterDetails.tsx (1)
90-101: Virtualization bundle lookup for Assisted Migration looks correctFetching bundles with
(openshiftVersion, cpuArchitecture, platform?.type)and merging operators from thevirtualizationbundle intoparams.olmOperatorsmakes the Assisted Migration path context‑aware and matches the intent of always enabling LVM + virtualization operators.libs/ui-lib/lib/ocm/components/clusterWizard/OperatorsBundle.tsx (1)
168-176: NewallBundlesprop is a good extension pointAdding
allBundles: Bundle[]to the component API gives you the flexibility to show bundles that are not currently installable (e.g., SNO‑incompatible virtualization) while still usingbundlesto drive selection and availability logic.
b239041 to
93b3bb2
Compare
|
@ElayAharoni: This pull request references MGMT-22414 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the task to target the "4.21.0" version, but no target version was set. DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
Signed-off-by: Elay Aharoni <elayaha@gmail.com>
93b3bb2 to
1d1d91c
Compare
There was a problem hiding this comment.
Actionable comments posted: 0
♻️ Duplicate comments (1)
libs/ui-lib/lib/ocm/components/clusterWizard/OperatorsBundle.tsx (1)
99-113: ClarifybundlesvsallBundlessemantics to avoid inconsistent availability UI
BundleCardis rendered for each item inallBundles(with a single-cluster filter when enabled), but the “not available for the current configuration” message is driven by membership inbundles:const disabledReason = hasUnsupportedOperators ? ... : incompatibleBundle ? ... : isAssistedMigration ? 'This bundle needs to be selected for clusters created from Migration Assessment' : !bundles.some((b) => b.id === bundle.id) ? 'This bundle is not available for the current configuration, you might be able to use the standalone operators instead.' : undefined;and the title visibility is still based on
bundles.lengthwhile the gallery renders fromallBundles.This works as intended only if:
bundlesis always the full “available for current configuration” list (never search-filtered), andallBundlesis the display superset (config bundles + “not available” bundles), and any search filtering happens consistently with that model.If a caller passes a search-filtered
bundles, available bundles that don’t match the search term would be rendered fromallBundlesbut incorrectly labeled as “not available”. Likewise, whenbundles.length === 0butallBundlesis non-empty, the title disappears while cards still render, which is a slightly odd UX.I’d suggest:
- Double-checking call sites so
bundlesis never search-filtered and truly reflects availability for the current configuration, and- Optionally deriving the section title and any future “no bundles” messaging from the same effective list you actually render (e.g., a computed
visibleBundles) to keep UX consistent.Also applies to: 168-200
🧹 Nitpick comments (1)
libs/ui-lib-tests/cypress/support/interceptors.ts (1)
146-150: Bundles intercept path aligned; consider dropping debug loggingThe new intercept for
'/api/assisted-install/v2/operators/bundles*'correctly matches the updated bundles endpoint (including query params) and keeps tests in sync with the API shape.The
console.log(req);inmockBundlesResponsewill run on every bundles request and can generate a lot of noisy output in CI logs. Unless you actively need this for debugging, it’s better to remove it (or guard it behind a debug flag) to keep test output clean.Also applies to: 438-440
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (7)
libs/ui-lib-tests/cypress/support/interceptors.ts(2 hunks)libs/ui-lib/lib/common/api/assisted-service/BundleAPI.ts(1 hunks)libs/ui-lib/lib/ocm/components/clusterConfiguration/operators/bundleSpecs.tsx(0 hunks)libs/ui-lib/lib/ocm/components/clusterWizard/ClusterDetails.tsx(1 hunks)libs/ui-lib/lib/ocm/components/clusterWizard/OperatorsBundle.tsx(3 hunks)libs/ui-lib/lib/ocm/components/clusterWizard/OperatorsStep.tsx(3 hunks)libs/ui-lib/lib/ocm/services/BundleService.ts(1 hunks)
💤 Files with no reviewable changes (1)
- libs/ui-lib/lib/ocm/components/clusterConfiguration/operators/bundleSpecs.tsx
🚧 Files skipped from review as they are similar to previous changes (1)
- libs/ui-lib/lib/ocm/components/clusterWizard/OperatorsStep.tsx
🧰 Additional context used
🧠 Learnings (3)
📓 Common learnings
Learnt from: ammont82
Repo: openshift-assisted/assisted-installer-ui PR: 3101
File: libs/ui-lib/lib/common/config/docs_links.ts:203-221
Timestamp: 2025-08-11T06:07:38.056Z
Learning: The MetalLB, OADP, Cluster Observability, and NUMA Resources operators in the virtualization bundle don't require version fallback logic in their documentation link functions (getMetalLbLink, getOadpLink, getClusterObservabilityLink, getNumaResourcesLink) in libs/ui-lib/lib/common/config/docs_links.ts, unlike some other operators like LSO and NVIDIA GPU.
📚 Learning: 2025-08-11T06:07:38.056Z
Learnt from: ammont82
Repo: openshift-assisted/assisted-installer-ui PR: 3101
File: libs/ui-lib/lib/common/config/docs_links.ts:203-221
Timestamp: 2025-08-11T06:07:38.056Z
Learning: The MetalLB, OADP, Cluster Observability, and NUMA Resources operators in the virtualization bundle don't require version fallback logic in their documentation link functions (getMetalLbLink, getOadpLink, getClusterObservabilityLink, getNumaResourcesLink) in libs/ui-lib/lib/common/config/docs_links.ts, unlike some other operators like LSO and NVIDIA GPU.
Applied to files:
libs/ui-lib/lib/ocm/services/BundleService.tslibs/ui-lib/lib/common/api/assisted-service/BundleAPI.tslibs/ui-lib/lib/ocm/components/clusterWizard/OperatorsBundle.tsxlibs/ui-lib/lib/ocm/components/clusterWizard/ClusterDetails.tsx
📚 Learning: 2025-10-21T04:40:36.292Z
Learnt from: linoyaslan
Repo: openshift-assisted/assisted-installer-ui PR: 3190
File: libs/ui-lib/lib/ocm/components/clusterConfiguration/networkConfiguration/AdvancedNetworkFields.tsx:55-63
Timestamp: 2025-10-21T04:40:36.292Z
Learning: In libs/ui-lib/lib/ocm/components/clusterConfiguration/networkConfiguration/AdvancedNetworkFields.tsx, the network reordering logic in the useEffect (swapping clusterNetworks and serviceNetworks based on the primary machine network's IP family) is for UI consistency only. Validation of empty or invalid CIDRs is handled separately by validation schemas, not by the reordering logic.
Applied to files:
libs/ui-lib/lib/ocm/components/clusterWizard/OperatorsBundle.tsxlibs/ui-lib/lib/ocm/components/clusterWizard/ClusterDetails.tsx
🧬 Code graph analysis (3)
libs/ui-lib/lib/ocm/services/BundleService.ts (2)
libs/ui-lib-tests/cypress/fixtures/cluster/base-cluster.ts (1)
bundles(103-103)libs/ui-lib-tests/cypress/fixtures/read-only/5-cluster-ready.ts (1)
bundles(106-106)
libs/ui-lib/lib/common/api/assisted-service/BundleAPI.ts (1)
libs/types/assisted-installer-service.d.ts (1)
Bundle(89-109)
libs/ui-lib/lib/ocm/components/clusterWizard/OperatorsBundle.tsx (2)
libs/types/assisted-installer-service.d.ts (1)
Bundle(89-109)libs/ui-lib/lib/common/config/constants.ts (1)
singleClusterBundles(362-362)
🔇 Additional comments (3)
libs/ui-lib/lib/common/api/assisted-service/BundleAPI.ts (1)
9-23: Bundle list query params wiring looks goodThe
listsignature and the mapping toopenshift_version,cpu_architecture,platform_type,feature_ids, plus conditionalexternal_platform_name: 'oci'are consistent and keep the API surface straightforward. No issues spotted here.libs/ui-lib/lib/ocm/services/BundleService.ts (1)
4-15: listBundles → BundleAPI.list forwarding looks correctThe updated
listBundlessignature and the direct forwarding of(openshiftVersion, cpuArchitecture, platformType, featureIds)toBundleAPI.listkeep the service thin and consistent with the API layer. This also aligns better with callers that may not always have all four values.libs/ui-lib/lib/ocm/components/clusterWizard/ClusterDetails.tsx (1)
81-102: Context‑aware virtualization bundle wiring looks good; confirmolmOperatorsoverwrite is intentionalUsing
BundleService.listBundles(params.openshiftVersion, params.cpuArchitecture, params.platform?.type)to discover thevirtualizationbundle and append its operators toparams.olmOperatorsmakes the Assisted Migration path sensitive to version/arch/platform, which is exactly what you want.One thing to double‑check: inside the Assisted Migration block you unconditionally reset
params.olmOperators = [{ name: 'lvm' }];before appending virtualization operators. If the caller could already have populated
params.olmOperators(e.g., from user‑selected operators elsewhere), this will discard them. If the requirement is “for Assisted Migration we always enforce exactly LVM + virtualization bundle operators”, this is fine; otherwise, consider starting from any existingparams.olmOperators || []and merging in LVM + virtualization instead of overwriting.
|
/cherry-pick releases/v2.48 |
|
@ammont82: once the present PR merges, I will cherry-pick it on top of DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: ammont82, ElayAharoni The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
3271af9
into
openshift-assisted:master
|
@ammont82: new pull request created: #3311 DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
* Remove preview badge from bundles card (#3169) * Migration to PF6 (#3168) * pf6 deps and codemods updates Signed-off-by: gitdallas <5322142+gitdallas@users.noreply.github.com> get emptystate pf6 issues building Signed-off-by: gitdallas <5322142+gitdallas@users.noreply.github.com> fix chip/label changes Signed-off-by: gitdallas <5322142+gitdallas@users.noreply.github.com> fix icon type Signed-off-by: gitdallas <5322142+gitdallas@users.noreply.github.com> fix a prop type that codemods missed Signed-off-by: gitdallas <5322142+gitdallas@users.noreply.github.com> update pf5 classnames Signed-off-by: gitdallas <5322142+gitdallas@users.noreply.github.com> fix tokens, some cleanup Signed-off-by: gitdallas <5322142+gitdallas@users.noreply.github.com> fix tests and remaining v5->v6 Signed-off-by: gitdallas <5322142+gitdallas@users.noreply.github.com> yarn lock Signed-off-by: gitdallas <5322142+gitdallas@users.noreply.github.com> work on some cy tests Signed-off-by: gitdallas <5322142+gitdallas@users.noreply.github.com> fix tests for pf6 changes Signed-off-by: gitdallas <5322142+gitdallas@users.noreply.github.com> fix some tests Signed-off-by: gitdallas <5322142+gitdallas@users.noreply.github.com> fix build error Signed-off-by: gitdallas <5322142+gitdallas@users.noreply.github.com> * Change version of package.json to 2.0.0 for testing * MGMT-20974: Rremove unnecessary hyphens in helper text operators * MGMT-20968: align 'learn more about openshift releases' link in the first page of the cluster creation wizard * MGMT-20965: Put the same min-width in the dropdowns of the first page of the cluster creation wizard * MGMT-20966: improving the readibility of text on Troubleshooter Modal * MGMT-20972: Cluster summary section is not collapsable * MGMT-20964: Detached Warning Message for TMPv2 selection * Changes in PrismCode to use the correct color * MGMT-20969: hostname column header is truncated and unredeable * MGMT-20967: errors beneath text boxes dissapears but icon remains in place * fix (20975): make bundle selected operators show in count Signed-off-by: gitdallas <5322142+gitdallas@users.noreply.github.com> * MGMT-21103: change size of Provisioning type droodown in Add hosts modal * MGMT-21105: Networking page-machine network dropdown truncate values * add layout with gutter around cluster progress/buttons Signed-off-by: gitdallas <5322142+gitdallas@users.noreply.github.com> * MGMT-21147: R&C page - missing vertical spacing between kubeconfig warning and buttons * MGMT-21151: inconsistend icon and text alignment in preflight checks in R&C page * Add data-test-id to MenuToggle components * Add data-testid to HelperTextItem components * Add data-testid to BreadCrumb component * Add data-testid to Spinner component * Add data-testid to Wizard components * Add data-testid to Host's network configuration group * Add data-testid to Use bond option * Add data-testid to Add hosts modal * Add more data-testids for tests * Solving problem with operators count * Remove duplicated scrollbars * Solving errors in Networking page * Add data-testid to close button in Events modal * Migration of TextContent component * Solving problems with some old components * Solving lint issues * Solving problems with unit tests * Solving format issues * Remove unnecessary test * Solving problems with tests --------- Signed-off-by: gitdallas <5322142+gitdallas@users.noreply.github.com> Co-authored-by: gitdallas <5322142+gitdallas@users.noreply.github.com> * Use masthead (#3173) * Button text (#3174) * OCPBUGS-61953: Update dependency sourcing to remote (#3155) * Bump axios from 1.6.8 to 1.12.2 (#3180) Bumps [axios](https://github.com/axios/axios) from 1.6.8 to 1.12.2. - [Release notes](https://github.com/axios/axios/releases) - [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md) - [Commits](axios/axios@v1.6.8...v1.12.2) --- updated-dependencies: - dependency-name: axios dependency-version: 1.12.2 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Updating assisted-installer-ui-container image to be consistent with ART for 4.21 (#3179) Reconciling with https://github.com/openshift/ocp-build-data/tree/4fbe3fab45239dc4be6f5d9d98a0bf36e0274ec9/images/agent-installer-ui.yml Co-authored-by: AOS Automation Release Team <noreply@redhat.com> * OCPBUGS-61787: Change NMstate operator docs link (#3182) * MGMT-21862: Add message about vSphere limitations (#3181) * OCPBUGS-62680: Include assisted disconnected UI image in release payload (#3188) * Fixing errors when creating cluster from Assisted Migration (#3191) * MGMT-21025: installing Two Node OpenShift with Arbiter (TNA) (#3170) * Clean up ClusterDetailsFormFields * Allow TNA arbiter in CIM * Remove unused component (#3193) * Add unique data-testid to dualstack subnet dropdowns (#3199) * Tweak spacing between advanced network fields (#3198) * Tweak host status spacing (#3200) * Improve alert spacing (#3201) * MGMT-21825: Textarea field should show both error and helper text (#3202) * Improve alert spacing * Show both error and helper text under textarea fields * Add border to table headers (#3197) * Remove border from rich input field (#3208) * Bump happy-dom from 15.10.2 to 20.0.0 (#3211) Bumps [happy-dom](https://github.com/capricorn86/happy-dom) from 15.10.2 to 20.0.0. - [Release notes](https://github.com/capricorn86/happy-dom/releases) - [Commits](capricorn86/happy-dom@v15.10.2...v20.0.0) --- updated-dependencies: - dependency-name: happy-dom dependency-version: 20.0.0 dependency-type: direct:development ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Remove nested 'Content' components (#3196) * Upgrade the PF modal component in /common and /ocm (#3213) * Bump happy-dom from 20.0.0 to 20.0.2 (#3218) Bumps [happy-dom](https://github.com/capricorn86/happy-dom) from 20.0.0 to 20.0.2. - [Release notes](https://github.com/capricorn86/happy-dom/releases) - [Commits](capricorn86/happy-dom@v20.0.0...v20.0.2) --- updated-dependencies: - dependency-name: happy-dom dependency-version: 20.0.2 dependency-type: direct:development ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Consistent ISO Download behavior (#3221) * Add 'noopener noreferrer' to ISO download button (#3222) * Fix preflight check collapsed styling (#3215) * Remove unnecessary custom manifest field (#3217) * Bump vite from 5.4.20 to 5.4.21 (#3223) Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.4.20 to 5.4.21. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/v5.4.21/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v5.4.21/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-version: 5.4.21 dependency-type: direct:development ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * MGMT-21625: Add Dual-Stack with Primary IPv6 Support (#3190) This PR adds support for IPv6-primary dual-stack clusters, enabling users to create dual-stack clusters where IPv6 is the primary IP stack (version-aware for OpenShift 4.12+) * sort OCP versions in create infra (#3171) Signed-off-by: Lior Soffer <liorsoffer1@gmail.com> * Update types/parsing for latest lightspeed API (#3226) * Update release job to use trusted-publishers flow (#3228) * Update setup-node config (#3232) * - MGMT-22057:Primary IPv6 should be Tech Preview (#3231) - MGMT-22045: Change style of Dualstack - IPv4 / IPv6 section headers in subnet dropdown - When we change the primary machine network IP to ipv6 we have to select the seconday machine network IP to ipv4 * MGMT-22080: Allow users to install Openshift AI as standalone operator in SNO clusters (#3234) * Release job: Configure Yarn for npm registry (#3235) * configure yarn before publish (#3239) * Pass OIDC token to yarn config (#3241) * MGMT-22047: Add apiVIP and ingressVIP for dual-stack ipv4 and ipv6 (#3246) * Add apiVIP and ingressVIP for dual-stack ipv4 and ipv6 * Add validations to ensure that users add primary and secondary apiVips and ingressVips when using dual-stack * Updating tests to dual-stack changes * Prevent InfraEnv creation on ABI to support OVE Late-Binding workflow (#3244) Signed-off-by: Elay Aharoni <elayaha@gmail.com> * MGMT-22116: Add info about apiVIPs and ingressVIPs for dual-stack in Review and Create page (#3250) * Add info about apiVIPs and ingressVIPs for dual-stack in Review and Create page * Fixing review comments * MGMT-22119: Solving errors with SNO dual-stack (#3249) * Solving errors with SNO dual-stack * Solving errors when change between dual-stack and single-stack * MGMT-22165: Remove what's new link until the info appear in the chatbot (#3253) * Update logic to extract the tool response (#3255) * MGMT-17220: dual-stack with second machine network not populates (#3256) * MGMT-17220: dual-stack with second machine network not populates * Improving the code * Make the parsing compatible with new & old API (#3260) * MGMT-22047: solving errors with dual-stack (#3263) * MGMT-22047: solving errors with dual-stack 1. Changes in AvailableSubnetsControl.tsx so our corrective setFieldValue calls don’t validate immediately. This avoids heavy, repeated validations the moment you pick the first IPv6 option and should stop the freeze when secondary VIPs are IPv6 and empty. Specifically, set the third arg to false for: - Auto-select initialization of machineNetworks - Duplicate-primary fix that updates machineNetworks.1.cidr 2. Changes in AdvancesNetworkFields.tsx: -I found the infinite loop in AdvancedNetworkFields.tsx: when the primary machine network flips to IPv6, the effect was swapping clusterNetworks/serviceNetworks even when both entries had the same IP family, causing continuous reorders and a freeze. -I added guards so we only swap when both entries exist and have opposite families, and the first one mismatches the primary machine family. Lint is clean. * Solving issues in code * MGMT-21837: in YAML view in Static Network Configuration we add the radio buttons to change the form to another view (#3268) * late binding hosts to cluster in ABI (#3259) Signed-off-by: Elay Aharoni <elayaha@gmail.com> * AGENT-1373: Rename feature gate to NoRegistryClusterInstall (#3267) Update the feature gate name from NoRegistryClusterOperations to NoRegistryClusterInstall. * AGENT-1352: Handle cluster reset with late binding (#3270) * late binding hosts to cluster in ABI Signed-off-by: Elay Aharoni <elayaha@gmail.com> * Handle cluster reset on ABI Signed-off-by: Elay Aharoni <elayaha@gmail.com> --------- Signed-off-by: Elay Aharoni <elayaha@gmail.com> * MGMT-22281: Dual stack seconday vips fields not mandatory (#3275) * Show TechPreview badge only in Primary Machine network when user chooses ipV6 IP (#3276) * add new fields to above sea level ABI (#3274) Signed-off-by: Elay Aharoni <elayaha@gmail.com> * Revert "Handle cluster reset on ABI" (#3281) This reverts commit d35b70a. * add loki and logging operators (#3285) Signed-off-by: Elay Aharoni <elayaha@gmail.com> * OCPBUGS-65657: Display OpenShift AI GPU validation message from API (#3279) Fix UI to show the friendly label and detailed message from the API instead of displaying the technical validation ID when OpenShift AI operator is selected without GPU support. * Bug fix: OVE Agent Installer UI: Red Hat OCP logo not displaying correctly (#3289) Signed-off-by: Elay Aharoni <elayaha@gmail.com> * Adding TechPreview Budge for Assisted installer and agent (#3293) Signed-off-by: Elay Aharoni <elayaha@gmail.com> * MGMT-20138 : Show 'Add hosts' tab for all cases (#3297) * Edit OWNERS file (#3172) * Bump js-yaml from 4.1.0 to 4.1.1 (#3264) Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 4.1.0 to 4.1.1. - [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md) - [Commits](nodeca/js-yaml@4.1.0...4.1.1) --- updated-dependencies: - dependency-name: js-yaml dependency-version: 4.1.1 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump zx from 7.2.3 to 8.8.5 (#3273) Bumps [zx](https://github.com/google/zx) from 7.2.3 to 8.8.5. - [Release notes](https://github.com/google/zx/releases) - [Commits](google/zx@7.2.3...8.8.5) --- updated-dependencies: - dependency-name: zx dependency-version: 8.8.5 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump mdast-util-to-hast from 13.2.0 to 13.2.1 (#3287) Bumps [mdast-util-to-hast](https://github.com/syntax-tree/mdast-util-to-hast) from 13.2.0 to 13.2.1. - [Release notes](https://github.com/syntax-tree/mdast-util-to-hast/releases) - [Commits](syntax-tree/mdast-util-to-hast@13.2.0...13.2.1) --- updated-dependencies: - dependency-name: mdast-util-to-hast dependency-version: 13.2.1 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * provides parameters for the GET /v2/operators/bundles route (#3306) Signed-off-by: Elay Aharoni <elayaha@gmail.com> * Bump js-yaml from 4.1.0 to 4.1.1 (#3310) Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 4.1.0 to 4.1.1. - [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md) - [Commits](nodeca/js-yaml@4.1.0...4.1.1) --- updated-dependencies: - dependency-name: js-yaml dependency-version: 4.1.1 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Fix Cluster summary styling (#3216) * remove external platforms field from below sea level UI (#3316) Signed-off-by: Elay Aharoni <elayaha@gmail.com> * Openshift AI Bundle on SNO enables ODF and LVM which are uncompatible (#3320) Signed-off-by: Elay Aharoni <elayaha@gmail.com> * change ABI above sea level iso size (#3322) Signed-off-by: Elay Aharoni <elayaha@gmail.com> * MGMT-22465: Merge the contents of releases/v2.17-cim into master (#3319) * Fix patches when there were 0 nodes in hypershift nodepool (#3177) * Make OVN the default network type if the version is invalid (#3183) * MGMT-20076: Support external platform in Assisted-installer Kube API (#3151) * Add External platforms field * Restructure files related to CIM cluster deployment wizard * Create SelectFieldWithSearch component * Update '@openshift-console/dynamic-plugin-sdk' * CIM custom manifest step * CIM custom manifests review * Make 'Baremetal' the default external platform * Translations for 2.16-cim (#3225) * MGMT-21025: installing Two Node OpenShift with Arbiter (TNA) (#3224) * Clean up ClusterDetailsFormFields * Allow TNA arbiter in CIM * Set 'userManagedNetworking' as true with 'external' platform (#3245) * Tweak TNA-related strings in CIM (#3248) * Restrict platform options for SNO clusters (#3262) Signed-off-by: Lior Soffer <liorsoffer1@gmail.com> * Fix: Undefined OpenShift version producing an incorrect documentation link (#3271) Signed-off-by: Lior Soffer <liorsoffer1@gmail.com> * Fix bug - the option to remove host from the cluster disabled while the host is installing (#3219) Signed-off-by: Elay Aharoni <elayaha@gmail.com> * Implement user interface for the multiple SSH keys (#3292) Signed-off-by: Lior Soffer <liorsoffer1@gmail.com> * Edit OWNERS file (#3303) Co-authored-by: jgyselov <jgyselov@redhat.com> * Fix arbiter translation (#3304) Co-authored-by: jgyselov <jgyselov@redhat.com> * [releases/v2.17-cim] MGMT-22264: Add 'Labels' and 'GPU' columns to infra env host table (#3307) * Add GPUs column to infra agent table * Add labels column and filtering to infra agent table --------- Co-authored-by: jgyselov <jgyselov@redhat.com> * Prevent mass approve crash when hosts are still discovering (#3305) Co-authored-by: jgyselov <jgyselov@redhat.com> * Fix 'Required' translations (#3308) Co-authored-by: jgyselov <jgyselov@redhat.com> * Do not exclude hosts with SpecSyncError status from host selection during binding (#3309) Co-authored-by: jgyselov <jgyselov@redhat.com> * MGMT-22438: Handle empty labels in infra env host table (#3314) * Handle empty labels in infra env host table Signed-off-by: Lior Soffer <liorsoffer1@gmail.com> * format fix Signed-off-by: Lior Soffer <liorsoffer1@gmail.com> --------- Signed-off-by: Lior Soffer <liorsoffer1@gmail.com> * MGMT-19743: Icon from agent status available is confusing (#3220) * Fix bug - the option to remove host from the cluster disabled while the host is installing Signed-off-by: Elay Aharoni <elayaha@gmail.com> * icon from agent status Available is confusing Signed-off-by: Elay Aharoni <elayaha@gmail.com> --------- Signed-off-by: Elay Aharoni <elayaha@gmail.com> Co-authored-by: Julie Gyselova <jgyselov@redhat.com> --------- Signed-off-by: Lior Soffer <liorsoffer1@gmail.com> Signed-off-by: Elay Aharoni <elayaha@gmail.com> Co-authored-by: Lior Soffer <liorsoffer1@gmail.com> Co-authored-by: Elay Aharoni <elayaha@gmail.com> Co-authored-by: OpenShift Cherrypick Robot <openshift-cherrypick-robot@redhat.com> --------- Signed-off-by: gitdallas <5322142+gitdallas@users.noreply.github.com> Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: Lior Soffer <liorsoffer1@gmail.com> Signed-off-by: Elay Aharoni <elayaha@gmail.com> Co-authored-by: Montse Ortega Gallart <ammont82@users.noreply.github.com> Co-authored-by: gitdallas <5322142+gitdallas@users.noreply.github.com> Co-authored-by: Pawan Pinjarkar <ppinjark@redhat.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: OpenShift Bot <openshift-bot@redhat.com> Co-authored-by: AOS Automation Release Team <noreply@redhat.com> Co-authored-by: Linoy Hadad <Linoyaslan@gmail.com> Co-authored-by: Lior Soffer <liorsoffer1@gmail.com> Co-authored-by: Rastislav Wagner <rawagner@redhat.com> Co-authored-by: Elay Aharoni <elayaha@gmail.com> Co-authored-by: Richard Su <rwsu@redhat.com> Co-authored-by: Yoav Schwammenthal <33420608+yoavsc0302@users.noreply.github.com> Co-authored-by: OpenShift Cherrypick Robot <openshift-cherrypick-robot@redhat.com>
https://issues.redhat.com/browse/MGMT-22414
added functionality for SNO bundles.
added the new parameters to the bundles API.
changed the disabling logic for non existing bundles.
Summary by CodeRabbit
New Features
Improvements
✏️ Tip: You can customize this high-level summary in your review settings.