Skip to content

Conversation

@vikram-raj
Copy link
Member

Remove the use of the kebab factory from the following pages of the devconsole plugin

  • resource-quota.jsx
  • pod-list.tsx

Changes from the big PR #15520

@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Nov 25, 2025
@openshift-ci-robot
Copy link
Contributor

openshift-ci-robot commented Nov 25, 2025

@vikram-raj: This pull request references CONSOLE-4709 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 story to target the "4.21.0" version, but no target version was set.

In response to this:

Remove the use of the kebab factory from the following pages of the devconsole plugin

  • resource-quota.jsx
  • pod-list.tsx

Changes from the big PR #15520

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.

@vikram-raj
Copy link
Member Author

/cc @yapei

For QE review

@openshift-ci openshift-ci bot requested a review from yapei November 25, 2025 11:02
@coderabbitai
Copy link

coderabbitai bot commented Nov 25, 2025

Walkthrough

Adds two resource-provider registrations for ResourceQuota and ClusterResourceQuota, refactors quota action menus to use LazyActionMenu with new public references, removes an exported menuActions from pod-list, deletes one locale translation, and normalizes formatting in console-extensions.json. (49 words)

Changes

Cohort / File(s) Summary
Console Extension Configuration
frontend/packages/console-app/console-extensions.json
Added two console.action/resource-provider entries for ResourceQuota (group "", version v1, kind ResourceQuota) and ClusterResourceQuota (group quota.openshift.io, version v1, kind ClusterResourceQuota). Normalized formatting of the VolumeAttributesClass provider and flags blocks.
Quota Actions Refactoring
frontend/public/components/resource-quota.jsx
Replaced Kebab/ResourceKebab action arrays with a quotaActions function that returns a LazyActionMenu for ResourceQuota, ClusterResourceQuota, and AppliedClusterResourceQuota. Added clusterQuotaReference and appliedClusterQuotaReference constants, removed Kebab imports, and updated list/details rendering to use the LazyActionMenu-based actions.
Component Simplification
frontend/public/components/pod-list.tsx
Removed exported menuActions (`export const menuActions = [...(Kebab.factory.common
Translation Cleanup
frontend/public/locales/en/public.json
Removed the translation key Edit AppliedClusterResourceQuota.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

  • Review frontend/public/components/resource-quota.jsx for correct LazyActionMenu wiring, context/permission propagation, and list/details cell rendering.
  • Validate frontend/packages/console-app/console-extensions.json JSON structure and $codeRef formatting for the two new entries.
  • Search repository for usages of the removed menuActions export from pod-list.tsx to avoid regressions.
  • Confirm UI/strings fallback behavior after removal of the translation key.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to Reviews -> Disable Knowledge Base setting

📥 Commits

Reviewing files that changed from the base of the PR and between b07e9ff and 2f725d8.

📒 Files selected for processing (3)
  • frontend/packages/console-app/console-extensions.json (3 hunks)
  • frontend/public/components/resource-quota.jsx (3 hunks)
  • frontend/public/locales/en/public.json (0 hunks)
💤 Files with no reviewable changes (1)
  • frontend/public/locales/en/public.json
🧰 Additional context used
📓 Path-based instructions (1)
**

⚙️ CodeRabbit configuration file

-Focus on major issues impacting performance, readability, maintainability and security. Avoid nitpicks and avoid verbosity.

Files:

  • frontend/packages/console-app/console-extensions.json
  • frontend/public/components/resource-quota.jsx
🔇 Additional comments (8)
frontend/packages/console-app/console-extensions.json (3)

435-437: Consistent provider formatting for VolumeAttributesClass.

The reflowed "provider" block matches surrounding style and keeps the action provider wiring unchanged; no issues from a behavior or maintainability standpoint.


533-554: ResourceQuota and ClusterResourceQuota action providers correctly registered.

The two new console.action/resource-provider entries use the expected model triplets (""/v1/ResourceQuota and quota.openshift.io/v1/ClusterResourceQuota) and the shared defaultProvider.useDefaultActionsProvider, aligning with how other core resources are wired into LazyActionMenu. This should safely enable centralized actions for both quota types.


1313-1315: Flags block formatting remains semantically identical.

Only structural/whitespace changes to the VAC_PLATFORM_SUPPORT flags; behavior and config semantics are preserved.

frontend/public/components/resource-quota.jsx (5)

56-56: LazyActionMenu import is appropriate for new quota actions flow.

Importing LazyActionMenu from the shared actions module aligns this file with the standardized action menu mechanism used elsewhere.


63-71: quotaActions now correctly scopes actions to editable quota kinds.

Switching to explicit quota.kind checks and only returning LazyActionMenu for ResourceQuota and ClusterResourceQuota avoids misclassifying AppliedClusterResourceQuota (and other types) while delegating actual actions to the registered providers. Non-editable applied quotas now correctly yield no actions.


452-452: Actions cell now delegates to quotaActions for centralized behavior.

Using quotaActions(obj) in the actions cell ties the list UI to the shared LazyActionMenu logic, so ResourceQuota and ClusterResourceQuota rows get the correct menus while AppliedClusterResourceQuota rows fall back to a passive value, matching their read‑only nature.


796-796: ResourceQuotasDetailsPage now relies on global action providers.

Dropping menuActions and only passing pages lets DetailsPage and the console.action/resource-provider entries drive actions, reducing duplication and keeping quota actions consistent with other resources.


803-803: AppliedClusterResourceQuotasDetailsPage is bound to the correct kind reference.

Passing kind={appliedClusterQuotaReference} ensures the details page is keyed to the AppliedClusterResourceQuota model; with no action provider registered for this read‑only resource, it will not expose edit/delete actions, which aligns with the intended behavior.


Comment @coderabbitai help to get the list of available commands and usage tips.

@openshift-ci openshift-ci bot added component/core Related to console core functionality kind/i18n Indicates issue or PR relates to internationalization or has content that needs to be translated approved Indicates a PR has been approved by an approver from all required OWNERS files. labels Nov 25, 2025
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (1)
frontend/packages/console-app/src/actions/providers/applied-cluster-resource-quota-provider.ts (1)

37-38: Consider adding type annotation for the data parameter.

The data parameter is untyped, which reduces type safety. Consider adding a type annotation to document the expected shape { quota: K8sResourceKind; namespace: string }.

-export const useAppliedClusterResourceQuotaActionsProvider = (data) => {
-  const { quota, namespace } = data;
+export const useAppliedClusterResourceQuotaActionsProvider = (data: {
+  quota: K8sResourceKind;
+  namespace: string;
+}) => {
+  const { quota, namespace } = data;
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to Reviews -> Disable Knowledge Base setting

📥 Commits

Reviewing files that changed from the base of the PR and between 2243c06 and 0b6d121.

📒 Files selected for processing (6)
  • frontend/packages/console-app/console-extensions.json (3 hunks)
  • frontend/packages/console-app/package.json (1 hunks)
  • frontend/packages/console-app/src/actions/providers/applied-cluster-resource-quota-provider.ts (1 hunks)
  • frontend/public/components/pod-list.tsx (0 hunks)
  • frontend/public/components/resource-quota.jsx (5 hunks)
  • frontend/public/locales/en/public.json (1 hunks)
💤 Files with no reviewable changes (1)
  • frontend/public/components/pod-list.tsx
🧰 Additional context used
📓 Path-based instructions (1)
**

⚙️ CodeRabbit configuration file

-Focus on major issues impacting performance, readability, maintainability and security. Avoid nitpicks and avoid verbosity.

Files:

  • frontend/packages/console-app/package.json
  • frontend/public/locales/en/public.json
  • frontend/packages/console-app/src/actions/providers/applied-cluster-resource-quota-provider.ts
  • frontend/packages/console-app/console-extensions.json
  • frontend/public/components/resource-quota.jsx
🔇 Additional comments (6)
frontend/packages/console-app/package.json (1)

102-102: LGTM!

The new module exposure follows the established naming convention and pattern used by other action providers in this file.

frontend/packages/console-app/src/actions/providers/applied-cluster-resource-quota-provider.ts (1)

1-75: Well-structured provider implementation.

The hook follows established patterns from other action providers, correctly aggregates common actions (labels, annotations, delete) with the custom edit action, and properly handles the loading state via !inFlight.

frontend/public/locales/en/public.json (1)

1720-1720: LGTM!

Translation entry for the new edit action is correctly added.

frontend/packages/console-app/console-extensions.json (1)

533-567: LGTM!

The three new resource providers are correctly configured:

  • ResourceQuota and ClusterResourceQuota appropriately use the default actions provider
  • AppliedClusterResourceQuota correctly references the new custom provider that handles the quota/namespace context shape
frontend/public/components/resource-quota.jsx (2)

64-76: Clean refactoring from static Kebab actions to dynamic LazyActionMenu.

The quotaActions function correctly maps each quota type to its corresponding action menu with the appropriate context shape. The AppliedClusterResourceQuota case correctly passes { quota, namespace } which matches the expected shape in the new provider.


811-847: LGTM!

The DetailsPage components are correctly updated to use customActionMenu with LazyActionMenu, maintaining consistency with the list view actions. The AppliedClusterResourceQuotasDetailsPage correctly passes the namespace from useParams() in the context.

@vikram-raj vikram-raj force-pushed the console-4709-public-3 branch from 0b6d121 to b527515 Compare November 25, 2025 11:24
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (2)
frontend/packages/console-app/src/actions/providers/applied-cluster-resource-quota-provider.ts (1)

11-35: Consider adding accessReview to the edit action for permission-based visibility.

Other action providers in the codebase typically include an accessReview property to conditionally show/hide actions based on user permissions. Without it, users without edit permissions will see the action but encounter an error when navigating.

 const useEditAppliedClusterResourceQuotaActions = (
   resource: K8sResourceKind,
   namespace: string,
 ) => {
   const { t } = useTranslation();
   const navigate = useNavigate();
   const factory = useMemo(
     () => ({
       editResourceQuota: () => ({
         id: 'edit-resource-quota',
         label: t('public~Edit AppliedClusterResourceQuota'),
+        accessReview: {
+          group: AppliedClusterResourceQuotaModel.apiGroup,
+          resource: AppliedClusterResourceQuotaModel.plural,
+          name: resource?.metadata?.name,
+          namespace,
+          verb: 'update',
+        },
         cta: () =>
           navigate(
             `/k8s/ns/${namespace}/${referenceForModel(AppliedClusterResourceQuotaModel)}/${
               resource?.metadata?.name
             }/yaml`,
           ),
       }),
     }),
-    [t, navigate, namespace, resource?.metadata?.name],
+    [t, navigate, namespace, resource],
   );
frontend/public/components/resource-quota.jsx (1)

64-76: Add a fallback return for unmatched quota types.

The function implicitly returns undefined if none of the conditions match. While this may work in practice, an explicit return makes the intent clear and prevents potential rendering issues.

 const quotaActions = (quota, namespace = undefined) => {
   if (quota.metadata.namespace) {
     return <LazyActionMenu context={{ [referenceForModel(ResourceQuotaModel)]: quota }} />;
   }

   if (quota.kind === 'ClusterResourceQuota') {
     return <LazyActionMenu context={{ [clusterQuotaReference]: quota }} />;
   }

   if (quota.kind === 'AppliedClusterResourceQuota') {
     return <LazyActionMenu context={{ [appliedClusterQuotaReference]: { quota, namespace } }} />;
   }
+
+  return null;
 };
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to Reviews -> Disable Knowledge Base setting

📥 Commits

Reviewing files that changed from the base of the PR and between 0b6d121 and b527515.

📒 Files selected for processing (6)
  • frontend/packages/console-app/console-extensions.json (3 hunks)
  • frontend/packages/console-app/package.json (1 hunks)
  • frontend/packages/console-app/src/actions/providers/applied-cluster-resource-quota-provider.ts (1 hunks)
  • frontend/public/components/pod-list.tsx (0 hunks)
  • frontend/public/components/resource-quota.jsx (5 hunks)
  • frontend/public/locales/en/public.json (1 hunks)
💤 Files with no reviewable changes (1)
  • frontend/public/components/pod-list.tsx
🚧 Files skipped from review as they are similar to previous changes (2)
  • frontend/packages/console-app/package.json
  • frontend/public/locales/en/public.json
🧰 Additional context used
📓 Path-based instructions (1)
**

⚙️ CodeRabbit configuration file

-Focus on major issues impacting performance, readability, maintainability and security. Avoid nitpicks and avoid verbosity.

Files:

  • frontend/packages/console-app/src/actions/providers/applied-cluster-resource-quota-provider.ts
  • frontend/public/components/resource-quota.jsx
  • frontend/packages/console-app/console-extensions.json
🔇 Additional comments (5)
frontend/packages/console-app/console-extensions.json (1)

533-567: LGTM! New action providers for quota resources are properly registered.

The three new console.action/resource-provider entries follow the established pattern. Using defaultProvider for ResourceQuota and ClusterResourceQuota is appropriate, while AppliedClusterResourceQuota correctly uses a custom provider that handles its unique context requirements (passing both quota and namespace).

frontend/packages/console-app/src/actions/providers/applied-cluster-resource-quota-provider.ts (1)

37-77: LGTM! Provider implementation follows established patterns.

The hook correctly composes common actions (labels, annotations, delete) with the custom edit action and returns them in a logical order. The memoization is appropriately applied to avoid unnecessary re-renders.

frontend/public/components/resource-quota.jsx (3)

811-825: LGTM! DetailsPage migration to customActionMenu is correct.

The migration from menuActions to customActionMenu with LazyActionMenu follows the new pattern. Using ActionMenuVariant.DROPDOWN is appropriate for the details page context.


827-847: LGTM! AppliedClusterResourceQuota DetailsPage correctly passes quota and namespace in context.

The context shape { quota: obj, namespace: params?.ns } matches what the useAppliedClusterResourceQuotaActionsProvider expects.


456-459: LGTM! Row actions correctly use the quotaActions helper.

The LazyActionMenu is now rendered directly in the cell, which is the expected pattern for the new action system.

@vikram-raj vikram-raj force-pushed the console-4709-public-3 branch 2 times, most recently from 69ffc01 to 3d24bb6 Compare November 25, 2025 16:08
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (1)
frontend/public/components/resource-quota.jsx (1)

816-835: Unused k8sObj parameter in customActionMenu callback.

The callback receives (k8sObj, obj) but only uses obj. Verify if this is intentional or if k8sObj should be used instead. If k8sObj is not needed, consider using an underscore prefix (_k8sObj) to indicate it's intentionally ignored.

       customActionMenu={(k8sObj, obj) => (
+      customActionMenu={(_k8sObj, obj) => (
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to Reviews -> Disable Knowledge Base setting

📥 Commits

Reviewing files that changed from the base of the PR and between 69ffc01 and 3d24bb6.

📒 Files selected for processing (6)
  • frontend/packages/console-app/console-extensions.json (3 hunks)
  • frontend/packages/console-app/package.json (1 hunks)
  • frontend/packages/console-app/src/actions/providers/applied-cluster-resource-quota-provider.ts (1 hunks)
  • frontend/public/components/pod-list.tsx (0 hunks)
  • frontend/public/components/resource-quota.jsx (5 hunks)
  • frontend/public/locales/en/public.json (1 hunks)
💤 Files with no reviewable changes (1)
  • frontend/public/components/pod-list.tsx
🚧 Files skipped from review as they are similar to previous changes (1)
  • frontend/packages/console-app/package.json
🧰 Additional context used
📓 Path-based instructions (1)
**

⚙️ CodeRabbit configuration file

-Focus on major issues impacting performance, readability, maintainability and security. Avoid nitpicks and avoid verbosity.

Files:

  • frontend/packages/console-app/src/actions/providers/applied-cluster-resource-quota-provider.ts
  • frontend/public/locales/en/public.json
  • frontend/packages/console-app/console-extensions.json
  • frontend/public/components/resource-quota.jsx
🧬 Code graph analysis (2)
frontend/packages/console-app/src/actions/providers/applied-cluster-resource-quota-provider.ts (4)
frontend/public/models/index.ts (1)
  • AppliedClusterResourceQuotaModel (728-743)
frontend/public/components/utils/inject.ts (1)
  • kindObj (23-40)
frontend/public/module/k8s/k8s.ts (1)
  • referenceFor (50-65)
frontend/packages/console-app/src/actions/hooks/useCommonActions.ts (1)
  • useCommonActions (38-196)
frontend/public/components/resource-quota.jsx (2)
frontend/packages/console-dynamic-plugin-sdk/src/api/internal-api.ts (1)
  • LazyActionMenu (67-68)
frontend/public/models/index.ts (1)
  • ResourceQuotaModel (696-709)
🔇 Additional comments (10)
frontend/public/locales/en/public.json (1)

1720-1720: Translation key reorganization looks good.

The move of the "Edit AppliedClusterResourceQuota" translation entry is clean—the key-value pair remains identical and JSON translation files have no ordering dependencies, so this reorganization aligns naturally with the PR's AppliedClusterResourceQuota refactoring work.

frontend/packages/console-app/src/actions/providers/applied-cluster-resource-quota-provider.ts (1)

12-79: AppliedClusterResourceQuota actions provider wiring looks solid

The edit action, common actions (labels/annotations/delete), and model loading via useK8sModel(referenceFor(quota)) are composed cleanly, and the returned tuple shape [resourceQuotaActions, !inFlight, false] matches the existing provider pattern. I don’t see correctness or maintainability issues here.

frontend/packages/console-app/console-extensions.json (3)

435-437: VolumeAttributesClass provider reformat is non-functional

Only the JSON shape for "provider" was expanded to multi-line; the codeRef is unchanged, so behavior stays the same.


1326-1327: VAC_PLATFORM_SUPPORT flag normalization is OK

The flags block for the VolumeAttributesClasses navigation item is just reformatted; required flag and behavior are unchanged.


533-567: Quota action providers are correctly modeled and hooked up

The new console.action/resource-provider entries for ResourceQuota, ClusterResourceQuota, and AppliedClusterResourceQuota use the expected group/version/kind values and route the last one through appliedClusterResourceQuotaProvider.useAppliedClusterResourceQuotaActionsProvider, which matches the new hook implementation.

frontend/public/components/resource-quota.jsx (5)

56-57: LGTM!

Imports are correctly added for the new action menu components, consistent with the SDK's internal API structure.


64-77: LGTM!

The quota type discrimination logic is sound—namespaced resources have metadata.namespace, while cluster-scoped quotas do not. The context structures correctly match the expected action provider signatures.


457-460: LGTM!

Correct integration of quotaActions in the data view rows, passing both the quota object and namespace context.


520-523: LGTM!

Consistent usage of quotaActions for AppliedClusterResourceQuota rows.


812-814: Verify action menu behavior for ResourceQuotasDetailsPage.

The component no longer explicitly configures a custom action menu, unlike AppliedClusterResourceQuotasDetailsPage. Confirm that the action menu is correctly provided through the spread props or default DetailsPage behavior for ResourceQuota resources.

@vikram-raj
Copy link
Member Author

/retest

@yapei
Copy link
Contributor

yapei commented Nov 26, 2025

@yanpzhan please help verify, thanks!

@yanpzhan
Copy link
Contributor

@vikram-raj Checked on cluster launched against the pr, when user edited label/annotation from one AppliedClusterResourceQuota action/kebab list, error showed up after user clicked 'Save'.
Screenshot from 2025-11-26 17-50-50
Screenshot from 2025-11-26 17-51-09

@yanpzhan
Copy link
Contributor

Same error when delete AppliedClusterResourceQuota:
Screenshot from 2025-11-26 17-55-27

@vikram-raj vikram-raj force-pushed the console-4709-public-3 branch from 3d24bb6 to 741446f Compare November 27, 2025 07:47
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
frontend/public/components/resource-quota.jsx (1)

486-515: Critical: Missing actions cell for AppliedClusterResourceQuota rows.

The rowCells object in getAppliedClusterResourceQuotaDataViewRows only defines cells for column indices 0-4, but appliedClusterResourceQuotaTableColumnInfo has 6 columns (indices 0-5). The actions column (index 5) is missing, so it will render as DASH instead of showing the action menu.

This is inconsistent with getResourceQuotaDataViewRows (lines 452-455) which includes the actions cell, and contributes to the QE-reported issue where actions are unavailable for AppliedClusterResourceQuota.

Add the missing actions cell after line 514:

       [appliedClusterResourceQuotaTableColumnInfo[4].id]: {
         cell: <Timestamp timestamp={metadata.creationTimestamp} />,
       },
+      [appliedClusterResourceQuotaTableColumnInfo[5].id]: {
+        cell: quotaActions(obj, namespace),
+        props: actionsCellProps,
+      },
     };
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to Reviews -> Disable Knowledge Base setting

📥 Commits

Reviewing files that changed from the base of the PR and between 3d24bb6 and 741446f.

📒 Files selected for processing (4)
  • frontend/packages/console-app/console-extensions.json (3 hunks)
  • frontend/public/components/pod-list.tsx (0 hunks)
  • frontend/public/components/resource-quota.jsx (3 hunks)
  • frontend/public/locales/en/public.json (0 hunks)
💤 Files with no reviewable changes (2)
  • frontend/public/components/pod-list.tsx
  • frontend/public/locales/en/public.json
🧰 Additional context used
📓 Path-based instructions (1)
**

⚙️ CodeRabbit configuration file

-Focus on major issues impacting performance, readability, maintainability and security. Avoid nitpicks and avoid verbosity.

Files:

  • frontend/public/components/resource-quota.jsx
  • frontend/packages/console-app/console-extensions.json
🧬 Code graph analysis (1)
frontend/public/components/resource-quota.jsx (2)
frontend/public/models/index.ts (3)
  • ClusterResourceQuotaModel (711-726)
  • AppliedClusterResourceQuotaModel (728-743)
  • ResourceQuotaModel (696-709)
frontend/packages/console-dynamic-plugin-sdk/src/api/internal-api.ts (1)
  • LazyActionMenu (67-68)
🔇 Additional comments (3)
frontend/packages/console-app/console-extensions.json (2)

435-437: LGTM: Formatting improvement.

The multi-line formatting of the provider property improves readability without any functional change.


1313-1315: LGTM: Formatting improvement.

The multi-line formatting of the flags object is consistent with the formatting style used elsewhere in the file.

frontend/public/components/resource-quota.jsx (1)

804-804: Cannot verify action provider registration due to repository access failure.

The review comment requests verification that the ResourceQuota action provider is properly registered in console-extensions.json, which is a valid concern. However, I'm unable to access the repository to confirm whether this registration actually exists in the codebase.

While web search confirms that ResourceQuota action providers should follow the console.action/resource-provider pattern with appropriate model group/version/kind and provider CodeRef, I cannot definitively verify:

  1. If the ResourceQuota provider is actually registered in the project's console-extensions.json
  2. If the registration matches the required structure
  3. If the LazyActionMenu will correctly pick up these actions

Manual verification needed: Check that the ResourceQuota and AppliedClusterResourceQuota action providers are properly registered in the console-extensions.json file following the documented pattern for console.action/resource-provider extensions.

@vikram-raj vikram-raj force-pushed the console-4709-public-3 branch from 741446f to 71639ac Compare November 27, 2025 08:00
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to Reviews -> Disable Knowledge Base setting

📥 Commits

Reviewing files that changed from the base of the PR and between 741446f and 71639ac.

📒 Files selected for processing (3)
  • frontend/packages/console-app/console-extensions.json (3 hunks)
  • frontend/public/components/resource-quota.jsx (3 hunks)
  • frontend/public/locales/en/public.json (0 hunks)
💤 Files with no reviewable changes (1)
  • frontend/public/locales/en/public.json
🚧 Files skipped from review as they are similar to previous changes (1)
  • frontend/packages/console-app/console-extensions.json
🧰 Additional context used
📓 Path-based instructions (1)
**

⚙️ CodeRabbit configuration file

-Focus on major issues impacting performance, readability, maintainability and security. Avoid nitpicks and avoid verbosity.

Files:

  • frontend/public/components/resource-quota.jsx
🧬 Code graph analysis (1)
frontend/public/components/resource-quota.jsx (2)
frontend/public/models/index.ts (3)
  • ClusterResourceQuotaModel (711-726)
  • AppliedClusterResourceQuotaModel (728-743)
  • ResourceQuotaModel (696-709)
frontend/packages/console-dynamic-plugin-sdk/src/api/internal-api.ts (1)
  • LazyActionMenu (67-68)
🔇 Additional comments (2)
frontend/public/components/resource-quota.jsx (2)

56-56: LGTM: LazyActionMenu import.

The import correctly replaces the previous Kebab-based approach.


804-804: LGTM: DetailsPage migration to LazyActionMenu.

Both changes correctly migrate to the LazyActionMenu pattern:

  • Removed menuActions prop to rely on LazyActionMenu context-based actions
  • Added explicit kind prop for AppliedClusterResourceQuota to ensure proper action provider resolution

Also applies to: 811-811

@vikram-raj vikram-raj force-pushed the console-4709-public-3 branch from 71639ac to b07e9ff Compare November 27, 2025 08:05
@vikram-raj vikram-raj force-pushed the console-4709-public-3 branch from b07e9ff to 2f725d8 Compare November 27, 2025 08:07
@vikram-raj
Copy link
Member Author

/label px-approved
/label docs-approved

@openshift-ci openshift-ci bot added the px-approved Signifies that Product Support has signed off on this PR label Nov 27, 2025
@openshift-ci openshift-ci bot added the docs-approved Signifies that Docs has signed off on this PR label Nov 27, 2025
@yanpzhan
Copy link
Contributor

There is not blocking issue for the pr now.
/verified by yanpzhan

@openshift-ci-robot openshift-ci-robot added the verified Signifies that the PR passed pre-merge verification criteria label Nov 27, 2025
@openshift-ci-robot
Copy link
Contributor

@yanpzhan: This PR has been marked as verified by yanpzhan.

In response to this:

There is not blocking issue for the pr now.
/verified by yanpzhan

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.

@vikram-raj
Copy link
Member Author

/retest

Copy link
Member

@logonoff logonoff left a comment

Choose a reason for hiding this comment

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

/lgtm

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Nov 27, 2025
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Nov 27, 2025

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: logonoff, vikram-raj

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Nov 27, 2025

@vikram-raj: all tests passed!

Full PR test history. Your PR dashboard.

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. I understand the commands that are listed here.

@openshift-merge-bot openshift-merge-bot bot merged commit 24ccbf9 into openshift:main Nov 27, 2025
8 checks passed
@vikram-raj vikram-raj deleted the console-4709-public-3 branch November 28, 2025 05:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. component/core Related to console core functionality docs-approved Signifies that Docs has signed off on this PR jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. kind/i18n Indicates issue or PR relates to internationalization or has content that needs to be translated lgtm Indicates that a PR is ready to be merged. px-approved Signifies that Product Support has signed off on this PR verified Signifies that the PR passed pre-merge verification criteria

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants