fix(clusters): hide console link and action for hub cluster (ACM-38829) - #26
Closed
oksanabaza wants to merge 868 commits into
Closed
oksanabaza wants to merge 868 commits into
oksanabaza wants to merge 868 commits into
Conversation
* Update dependency @babel/preset-env to v7.29.3 Signed-off-by: red-hat-konflux <126015336+red-hat-konflux[bot]@users.noreply.github.com> * Set minimum version Signed-off-by: Kevin Cormier <kcormier@redhat.com> --------- Signed-off-by: red-hat-konflux <126015336+red-hat-konflux[bot]@users.noreply.github.com> Signed-off-by: Kevin Cormier <kcormier@redhat.com> Co-authored-by: red-hat-konflux[bot] <126015336+red-hat-konflux[bot]@users.noreply.github.com> Co-authored-by: Kevin Cormier <kcormier@redhat.com>
* Avoid passing RBAC information through to button implementation Signed-off-by: Kevin Cormier <kcormier@redhat.com> * isActionCol is only for the kebab menu Signed-off-by: Kevin Cormier <kcormier@redhat.com> * Accept coderabbitai feedback Signed-off-by: Kevin Cormier <kcormier@redhat.com> --------- Signed-off-by: Kevin Cormier <kcormier@redhat.com>
* Update typescript-eslint monorepo to v8.59.1 Signed-off-by: red-hat-konflux <126015336+red-hat-konflux[bot]@users.noreply.github.com> * Set minimum version Signed-off-by: Kevin Cormier <kcormier@redhat.com> --------- Signed-off-by: red-hat-konflux <126015336+red-hat-konflux[bot]@users.noreply.github.com> Signed-off-by: Kevin Cormier <kcormier@redhat.com> Co-authored-by: red-hat-konflux[bot] <126015336+red-hat-konflux[bot]@users.noreply.github.com> Co-authored-by: Kevin Cormier <kcormier@redhat.com>
Signed-off-by: fxiang1 <fxiang@redhat.com>
…ab (stolostron#6135) The inequality (!=) label filter returned no results because matchesSelectedLabels expected a !key=value format while the AcmTable toolbar sends key!=value. Align the parser with the toolbar format. Signed-off-by: Randy Bruno Piverger <21374229+Randy424@users.noreply.github.com> Co-authored-by: Randy Bruno Piverger <21374229+Randy424@users.noreply.github.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
…stolostron#6136) When a user adds or partially edits a label expression or toleration in the Placement wizard, the cluster count no longer resets to "0 of 0". The hook now gates on entry completeness: if any expression is missing a key, operator, or values (for In/NotIn), or any toleration is missing a key or operator, the previous matched-cluster state is frozen until all entries are fully defined. Signed-off-by: Randy Bruno Piverger <21374229+Randy424@users.noreply.github.com> Co-authored-by: Randy Bruno Piverger <21374229+Randy424@users.noreply.github.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
…olostron#5956) * ACM-30906: Add AAP automation script for rhacmstackem integration Add install-aap.sh for automated Ansible Automation Platform provisioning on weekly clusters. Supports idempotent installation, operator deployment, and automated subscription management via Red Hat offline token. Signed-off-by: Randy Bruno Piverger <21374229+Randy424@users.noreply.github.com> Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * ACM-30906: Address CodeRabbit review findings - Add prerequisite checks for curl, jq, base64 - Centralize curl TLS options with opt-in CURL_INSECURE flag - Unify gateway pod label selectors for consistent health checks - Filter allocation lookup by name instead of selecting first result - Remove admin password from log output - Use mktemp + trap for manifest file cleanup - Use awk for pod status matching to avoid false positives - Add AAP_MODE support for platform vs controller (legacy) deployment Signed-off-by: Randy Bruno Piverger <21374229+Randy424@users.noreply.github.com> Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * ACM-30906: Address second round of CodeRabbit findings - Validate AAP_MODE rejects unknown values instead of silent fallback - Guard subscription management against empty ROUTE_URL Signed-off-by: Randy Bruno Piverger <21374229+Randy424@users.noreply.github.com> Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * ACM-30906: Validate subscription attach HTTP response Check HTTP status code when attaching subscription to allocation instead of discarding the response. Signed-off-by: Randy Bruno Piverger <21374229+Randy424@users.noreply.github.com> Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * ACM-30906: Validate manifest download HTTP response Check HTTP status on manifest download and clean up partial file on failure instead of proceeding with an invalid manifest. Signed-off-by: Randy Bruno Piverger <21374229+Randy424@users.noreply.github.com> Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * ACM-30906: Fix install-aap.sh bugs found during live cluster testing - Fix CSV_CHECK integer comparison failure (tr + grep -c pipeline) - Replace CR Running=True readiness check with secret+route existence wait - Handle async RHSM export API (follow body.href redirect) - Switch manifest upload from multipart to JSON with base64 encoding - Add API readiness ping loop before subscription and token operations - Use /api/controller/v2/config/ for platform mode ping (gateway /ping/ returns 503 while Hub is unhealthy) - Add OAuth2 token generation and storage as k8s secret - Quote all variable expansions in oc commands (SC2086) Signed-off-by: Randy Bruno Piverger <21374229+Randy424@users.noreply.github.com> Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Signed-off-by: Randy Bruno Piverger <21374229+Randy424@users.noreply.github.com> Co-authored-by: Randy Bruno Piverger <21374229+Randy424@users.noreply.github.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Oksana Bazylieva <obazylie@redhat.com>
* Update typescript-eslint monorepo to v8.59.2 Signed-off-by: red-hat-konflux <126015336+red-hat-konflux[bot]@users.noreply.github.com> * Set minimum version Signed-off-by: Kevin Cormier <kcormier@redhat.com> --------- Signed-off-by: red-hat-konflux <126015336+red-hat-konflux[bot]@users.noreply.github.com> Signed-off-by: Kevin Cormier <kcormier@redhat.com> Co-authored-by: red-hat-konflux[bot] <126015336+red-hat-konflux[bot]@users.noreply.github.com> Co-authored-by: Kevin Cormier <kcormier@redhat.com>
* Update dependency @babel/preset-env to v7.29.5 Signed-off-by: red-hat-konflux <126015336+red-hat-konflux[bot]@users.noreply.github.com> * Set minimum version Signed-off-by: Kevin Cormier <kcormier@redhat.com> --------- Signed-off-by: red-hat-konflux <126015336+red-hat-konflux[bot]@users.noreply.github.com> Signed-off-by: Kevin Cormier <kcormier@redhat.com> Co-authored-by: red-hat-konflux[bot] <126015336+red-hat-konflux[bot]@users.noreply.github.com> Co-authored-by: Kevin Cormier <kcormier@redhat.com>
…ain) (stolostron#6145) * Update dependency @redhat-cloud-services/rule-components to v4.4.2 Signed-off-by: red-hat-konflux <126015336+red-hat-konflux[bot]@users.noreply.github.com> * Set minimum version Signed-off-by: Kevin Cormier <kcormier@redhat.com> --------- Signed-off-by: red-hat-konflux <126015336+red-hat-konflux[bot]@users.noreply.github.com> Signed-off-by: Kevin Cormier <kcormier@redhat.com> Co-authored-by: red-hat-konflux[bot] <126015336+red-hat-konflux[bot]@users.noreply.github.com> Co-authored-by: Kevin Cormier <kcormier@redhat.com>
* Update dependency @types/node to v24.12.3 Signed-off-by: red-hat-konflux <126015336+red-hat-konflux[bot]@users.noreply.github.com> * Synchronize @types/node version Signed-off-by: Kevin Cormier <kcormier@redhat.com> --------- Signed-off-by: red-hat-konflux <126015336+red-hat-konflux[bot]@users.noreply.github.com> Signed-off-by: Kevin Cormier <kcormier@redhat.com> Co-authored-by: red-hat-konflux[bot] <126015336+red-hat-konflux[bot]@users.noreply.github.com> Co-authored-by: Kevin Cormier <kcormier@redhat.com>
* Update dependency babel-jest to v30.4.1 Signed-off-by: red-hat-konflux <126015336+red-hat-konflux[bot]@users.noreply.github.com> * Set minimum version Signed-off-by: Kevin Cormier <kcormier@redhat.com> --------- Signed-off-by: red-hat-konflux <126015336+red-hat-konflux[bot]@users.noreply.github.com> Signed-off-by: Kevin Cormier <kcormier@redhat.com> Co-authored-by: red-hat-konflux[bot] <126015336+red-hat-konflux[bot]@users.noreply.github.com> Co-authored-by: Kevin Cormier <kcormier@redhat.com>
…#6122) * [ACM-33391] search query kind values should be PascalCase Signed-off-by: zlayne <zlayne@redhat.com> * coderabbit review edits Signed-off-by: zlayne <zlayne@redhat.com> --------- Signed-off-by: zlayne <zlayne@redhat.com>
* Update dependency find-my-way to v9.6.0 Signed-off-by: red-hat-konflux <126015336+red-hat-konflux[bot]@users.noreply.github.com> * Set minimum version Signed-off-by: Kevin Cormier <kcormier@redhat.com> --------- Signed-off-by: red-hat-konflux <126015336+red-hat-konflux[bot]@users.noreply.github.com> Signed-off-by: Kevin Cormier <kcormier@redhat.com> Co-authored-by: red-hat-konflux[bot] <126015336+red-hat-konflux[bot]@users.noreply.github.com> Co-authored-by: Kevin Cormier <kcormier@redhat.com>
Signed-off-by: red-hat-konflux <126015336+red-hat-konflux[bot]@users.noreply.github.com> Co-authored-by: red-hat-konflux[bot] <126015336+red-hat-konflux[bot]@users.noreply.github.com>
* Update dependency semver to v7.8.0 Signed-off-by: red-hat-konflux <126015336+red-hat-konflux[bot]@users.noreply.github.com> * Set minimum version Signed-off-by: Kevin Cormier <kcormier@redhat.com> --------- Signed-off-by: red-hat-konflux <126015336+red-hat-konflux[bot]@users.noreply.github.com> Signed-off-by: Kevin Cormier <kcormier@redhat.com> Co-authored-by: red-hat-konflux[bot] <126015336+red-hat-konflux[bot]@users.noreply.github.com> Co-authored-by: Kevin Cormier <kcormier@redhat.com>
* Update EndBug/add-and-commit action to v10 Signed-off-by: red-hat-konflux <126015336+red-hat-konflux[bot]@users.noreply.github.com> * Update dependency node to v24 Signed-off-by: red-hat-konflux <126015336+red-hat-konflux[bot]@users.noreply.github.com> * Update actions/setup-node action to v6 Signed-off-by: red-hat-konflux <126015336+red-hat-konflux[bot]@users.noreply.github.com> * Update actions/checkout action to v6 Signed-off-by: red-hat-konflux <126015336+red-hat-konflux[bot]@users.noreply.github.com> --------- Signed-off-by: red-hat-konflux <126015336+red-hat-konflux[bot]@users.noreply.github.com> Co-authored-by: red-hat-konflux[bot] <126015336+red-hat-konflux[bot]@users.noreply.github.com>
…a22b (stolostron#6143) Signed-off-by: red-hat-konflux <126015336+red-hat-konflux[bot]@users.noreply.github.com> Co-authored-by: red-hat-konflux[bot] <126015336+red-hat-konflux[bot]@users.noreply.github.com>
Signed-off-by: fxiang1 <fxiang@redhat.com>
Signed-off-by: fxiang1 <fxiang@redhat.com>
…stron#6189) * Improve responsiveness of diagram and reorganize CSS Generated-by: Cursor (Claude Opus 4.6 High) Signed-off-by: Kevin Cormier <kcormier@redhat.com> * Cleanup, coderabbitai feedback, and dark theme contrast fixes Generated-by: Cursor (Claude Opus 4.6 High) Signed-off-by: Kevin Cormier <kcormier@redhat.com> --------- Signed-off-by: Kevin Cormier <kcormier@redhat.com>
Signed-off-by: fxiang1 <fxiang@redhat.com>
Signed-off-by: John Swanke <jswanke@redhat.com>
* translation backporting Signed-off-by: John Swanke <jswanke@redhat.com> * backup Signed-off-by: John Swanke <jswanke@redhat.com> * backup Signed-off-by: John Swanke <jswanke@redhat.com> * finish Signed-off-by: John Swanke <jswanke@redhat.com> * fix check Signed-off-by: John Swanke <jswanke@redhat.com> * rabbit stew Signed-off-by: John Swanke <jswanke@redhat.com> * add comments Signed-off-by: John Swanke <jswanke@redhat.com> * fix Signed-off-by: John Swanke <jswanke@redhat.com> * respond Signed-off-by: John Swanke <jswanke@redhat.com> --------- Signed-off-by: John Swanke <jswanke@redhat.com>
* chore(i18n): update translations Adding latest translations from Memsource project https://cloud.memsource.com/web/project2/show/4x84AQITKKHn8db1pKRuR1 Signed-off-by: John Swanke <jswanke@redhat.com> * fixes Signed-off-by: John Swanke <jswanke@redhat.com> * fix Signed-off-by: John Swanke <jswanke@redhat.com> --------- Signed-off-by: John Swanke <jswanke@redhat.com>
Remove gap from scrollable container so flat-list cluster rows render without spacing. Apply marginTop only between Matched and Not matched sections when a limit is set. Signed-off-by: Randy Bruno Piverger <21374229+Randy424@users.noreply.github.com> Co-authored-by: Randy Bruno Piverger <21374229+Randy424@users.noreply.github.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
…#6205) Replace generic tooltip text with detailed placement scoring explanations. Tooltips now trigger on click instead of hover and include a link to placement matching documentation. Icon buttons are keyboard-accessible with aria-labels. Signed-off-by: Randy Bruno Piverger <21374229+Randy424@users.noreply.github.com> Co-authored-by: Randy Bruno Piverger <21374229+Randy424@users.noreply.github.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
…tolostron#6208) When numberOfClusters is not set on the placement spec, display "n cluster(s)" instead of "n of n clusters" in the footer link, WizCustomWrapper, and review step alert. Signed-off-by: Randy Bruno Piverger <21374229+Randy424@users.noreply.github.com> Co-authored-by: Randy Bruno Piverger <21374229+Randy424@users.noreply.github.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
… UI (stolostron#6384) * ACM-30521: Add Azure HCP cluster creation and control plane selection UI Add Azure Hosted Control Plane (HCP) cluster creation UI, similar to the existing AWS HCP implementation: - Add Azure control plane type selection page (Hosted vs Standalone) at /multicloud/infrastructure/clusters/create/azure/control-plane - Add Azure HCP CLI instructions page with 7-step guide at /multicloud/infrastructure/clusters/create/azure/cli - Update cluster catalog to route Azure to control plane selection - Add navigation paths, routes, placeholder doc links, and unit tests Signed-off-by: fxiang1 <fxiang@redhat.com> * CodeRabbit and minor fixes Signed-off-by: fxiang1 <fxiang@redhat.com> * Add external DNS, update existing hcp commands Signed-off-by: fxiang1 <fxiang@redhat.com> --------- Signed-off-by: fxiang1 <fxiang@redhat.com>
…stolostron#6532) * [ACM-38103] Insights request should trust service CA for on prem reqs Signed-off-by: zlayne <zlayne@redhat.com> * fix test Signed-off-by: zlayne <zlayne@redhat.com> * fix test Signed-off-by: zlayne <zlayne@redhat.com> --------- Signed-off-by: zlayne <zlayne@redhat.com>
…te response body drain (stolostron#6537) getAuthenticatedToken() called isAuthenticated() on every authenticated request, which issued GET /apis to the kube API. The response body (up to several MB on CRD-heavy clusters) was never consumed on the success path, preventing the socket from returning to the keepAlive pool. Under sustained load, native (external) memory accumulated proportionally to request volume. Replace GET /apis with HEAD /api: - HEAD responses have no message body by HTTP spec — nothing to drain - /api (core group) is ~200 bytes of headers; it does not grow with CRDs - Returns HTTP status so callers preserve 401/403/5xx distinctions - No client-side caching required: OpenShift oauth-apiserver caches valid tokens ~30 seconds server-side; failures are not cached isAuthenticated() now returns Promise<number> (HTTP status) instead of Promise<Response> so callers preserve upstream status codes. authenticated.ts updated accordingly. All route tests updated to mock HEAD /api instead of GET /apis. Signed-off-by: Randy Bruno Piverger <21374229+Randy424@users.noreply.github.com> Co-authored-by: Randy Bruno Piverger <21374229+Randy424@users.noreply.github.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* FCN-250: backend part Signed-off-by: David Aznaurov <daznauro@redhat.com> * FCN-250: frontend part Signed-off-by: David Aznaurov <daznauro@redhat.com> * FCN-250: prettier fix Signed-off-by: David Aznaurov <daznauro@redhat.com> * FCN-250: removed redundant guard Signed-off-by: David Aznaurov <daznauro@redhat.com> --------- Signed-off-by: David Aznaurov <daznauro@redhat.com>
* feat(search): add useFleetSearchSubscription and useFleetSearch hooks to multicluster-sdk ACM-32322 — Add GraphQL subscription support to the multicluster-sdk. - useFleetSearchSubscription: wraps the generated useSearchSubscription Apollo hook; returns [latestEvent, loading, error]; skips the WebSocket connection when input is undefined. - useFleetSearch: one-shot query hook with optional real-time patching via useFleetSearchSubscription; handles INSERT/UPDATE/DELETE events; supports pagination through SearchInput.limit and SearchInput.offset. - Re-export SearchInput from src/types/search.ts so callers can type their input without reaching into internal packages. - Update src/api/index.ts and src/index.test.ts public-API guard. - Regenerate README.md API docs. Signed-off-by: zlayne <zlayne@redhat.com> * test(search): add Playwright E2E test for ACM-32322 search API transport Verifies: - Search page loads and returns results via Apollo HTTP link - Search WebSocket proxy endpoint is reachable (WS transport for subscriptions) Signed-off-by: zlayne <zlayne@redhat.com> * Update search-sdk Signed-off-by: zlayne <zlayne@redhat.com> * Update event operation handling Signed-off-by: zlayne <zlayne@redhat.com> * remove playwright & update readme Signed-off-by: zlayne <zlayne@redhat.com> * update readme Signed-off-by: zlayne <zlayne@redhat.com> * coderabbit updates Signed-off-by: zlayne <zlayne@redhat.com> * Update readme & doc generator Signed-off-by: zlayne <zlayne@redhat.com> * change useFleetSearchSubscription to private API Signed-off-by: zlayne <zlayne@redhat.com> * Update types & readme Signed-off-by: zlayne <zlayne@redhat.com> * Update types & readme Signed-off-by: zlayne <zlayne@redhat.com> * update types Signed-off-by: zlayne <zlayne@redhat.com> * Honor oderBy & limit requirements on new events Signed-off-by: zlayne <zlayne@redhat.com> * fix readme Signed-off-by: zlayne <zlayne@redhat.com> * provide type parameter Signed-off-by: zlayne <zlayne@redhat.com> * Hanlde events in context of pagination Signed-off-by: zlayne <zlayne@redhat.com> * update readme Signed-off-by: zlayne <zlayne@redhat.com> --------- Signed-off-by: zlayne <zlayne@redhat.com>
* Adding Machine types api Signed-off-by: Nitin Dhevar <nitin.dhanabalan@gmail.com> * Removing unused interfaces Signed-off-by: Nitin Dhevar <nitin.dhanabalan@gmail.com> * Updating useFetchMachineTypes to add filter logic and fix types Signed-off-by: Nitin Dhevar <nitin.dhanabalan@gmail.com> * Updating useFetchMachineTypes to add filter logic and fix types Signed-off-by: Nitin Dhevar <nitin.dhanabalan@gmail.com> --------- Signed-off-by: Nitin Dhevar <nitin.dhanabalan@gmail.com>
…tolostron#6600) * ACM-38826 fix(backend): use GET /api with body drain instead of HEAD HEAD /api returns 405 on clusters where the API server or proxy chain (haproxy, oauth-proxy) rejects HEAD requests, causing every auth check to fail. Switch to GET /api with explicit body drain — the response is ~200 bytes (core API group only), drained immediately so the socket returns to the keepAlive pool. This preserves the memory optimization from stolostron#6537 while restoring compatibility. Signed-off-by: Randy Bruno Piverger <21374229+Randy424@users.noreply.github.com> Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * ACM-38826 fix(backend): remove unnecessary void operator per SonarCloud response.body.resume() returns a Node.js Readable stream, not a Promise. The void operator is not needed and is flagged by SonarCloud no-void rule. Signed-off-by: Randy Bruno Piverger <21374229+Randy424@users.noreply.github.com> Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Signed-off-by: Randy Bruno Piverger <21374229+Randy424@users.noreply.github.com> Co-authored-by: Randy Bruno Piverger <21374229+Randy424@users.noreply.github.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
…6585) * Add Clear button to cluster description editor toolbar Signed-off-by: Oksana Bazylieva <obazylie@redhat.com> * Add tooltip to Clear button in description editor Signed-off-by: Oksana Bazylieva <obazylie@redhat.com> * coderabbitai suggestions Signed-off-by: Oksana Bazylieva <obazylie@redhat.com> * Fix sonar issue Signed-off-by: Oksana Bazylieva <obazylie@redhat.com> --------- Signed-off-by: Oksana Bazylieva <obazylie@redhat.com>
…t tag (stolostron#6610) Replace pinned SHA digest with :latest so ART/Konflux handles base image refresh automatically, eliminating renovate SHA-update PRs. Signed-off-by: Randy Bruno Piverger <21374229+Randy424@users.noreply.github.com> Co-authored-by: Randy Bruno Piverger <21374229+Randy424@users.noreply.github.com> Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
* Fix example Jira link Signed-off-by: Kevin Cormier <kcormier@redhat.com> * Update other Jira links Signed-off-by: Kevin Cormier <kcormier@redhat.com> --------- Signed-off-by: Kevin Cormier <kcormier@redhat.com>
* Recognize either "observability-controller" or "multicluster-observability-addon" as providers of multicluster observability Signed-off-by: Kevin Cormier <kcormier@redhat.com> * Add test coverage Assisted-by: Cursor (Claude Opus 4.6 Max) Signed-off-by: Kevin Cormier <kcormier@redhat.com> * Update tests Generated-by: Cursor (Claude Opus 4.6 Max) Signed-off-by: Kevin Cormier <kcormier@redhat.com> --------- Signed-off-by: Kevin Cormier <kcormier@redhat.com>
…stron#6590) * feat(operators): detect installed operators via OLMv1 ClusterExtension (ACM-37793) Watch ClusterExtension resources alongside OLM Subscriptions so console operator checks work on clusters that install operators with OLMv1. Signed-off-by: Enrique Mingorance Cano <emingora@redhat.com> * fix(operators): address CodeRabbit review on ClusterExtension detection Select healthy/installed matches in operatorCheck, cover ordering and missing-CRD 404 Status, and use import type for type-only symbols. Signed-off-by: Enrique Mingorance Cano <emingora@redhat.com> Co-authored-by: Cursor <cursoragent@cursor.com> * fix(operators): resolve Sonar nesting and empty-spread smells Extract async operator install resolution to flatten callbacks, and drop the useless empty-object fallback when spreading labels. Signed-off-by: Enrique Mingorance Cano <emingora@redhat.com> Co-authored-by: Cursor <cursoragent@cursor.com> * style(backend): prettier-format operatorCheck test Signed-off-by: Enrique Mingorance Cano <emingora@redhat.com> Co-authored-by: Cursor <cursoragent@cursor.com> * coderabbit suggestions applied Signed-off-by: Enrique Mingorance Cano <emingora@redhat.com> --------- Signed-off-by: Enrique Mingorance Cano <emingora@redhat.com> Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: Enrique Mingorance Cano <emingora@emingora-thinkpadp1gen3.rmtes.csb>
* restart Signed-off-by: John Swanke <jswanke@redhat.com> * polish Signed-off-by: John Swanke <jswanke@redhat.com> * polish Signed-off-by: John Swanke <jswanke@redhat.com> * fixes Signed-off-by: John Swanke <jswanke@redhat.com> * polish/fixes Signed-off-by: John Swanke <jswanke@redhat.com> * fix matrix topology Signed-off-by: John Swanke <jswanke@redhat.com> * add deplyments analysus Signed-off-by: John Swanke <jswanke@redhat.com> * misc bugs Signed-off-by: John Swanke <jswanke@redhat.com> * poilish Signed-off-by: John Swanke <jswanke@redhat.com> * rabbit stew Signed-off-by: John Swanke <jswanke@redhat.com> * fix tests Signed-off-by: John Swanke <jswanke@redhat.com> * fix coverage Signed-off-by: John Swanke <jswanke@redhat.com> * add gitops check Signed-off-by: John Swanke <jswanke@redhat.com> * check and quality Signed-off-by: John Swanke <jswanke@redhat.com> * quality Signed-off-by: John Swanke <jswanke@redhat.com> * pretty Signed-off-by: John Swanke <jswanke@redhat.com> * fix scrollbar Signed-off-by: John Swanke <jswanke@redhat.com> * fix gitops check Signed-off-by: John Swanke <jswanke@redhat.com> * sonar issues Signed-off-by: John Swanke <jswanke@redhat.com> * Kevin comments Signed-off-by: John Swanke <jswanke@redhat.com> * Kevin comments Signed-off-by: John Swanke <jswanke@redhat.com> * i18n Signed-off-by: John Swanke <jswanke@redhat.com> * fix test Signed-off-by: John Swanke <jswanke@redhat.com> --------- Signed-off-by: John Swanke <jswanke@redhat.com>
* docs: add commit standards to AGENTS.md Signed-off-by: Kevin Cormier <kcormier@redhat.com> * docs: wrap long lines in commit standards section Signed-off-by: Kevin Cormier <kcormier@redhat.com> --------- Signed-off-by: Kevin Cormier <kcormier@redhat.com>
…eletion from ACM (stolostron#6482) * Add preserve cluster infrastructure option to destroy modal When destroying a Hive-managed cluster, users can now check a "Preserve cluster infrastructure" checkbox to set preserveOnDelete on the ClusterDeployment before deletion. This tells Hive to skip cloud resource deprovisioning, useful for backup/restore and DR workflows. Includes warning alert about ongoing charges, dynamic button relabel, updated modal copy for destroy and detach flows, and unit tests for the new preserve logic. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Mihir Lele <mlele@redhat.com> * Gate enablePreserveOnDelete on the Hive-only predicate Match the guard in deleteCluster: cluster.isHive && !cluster.isHypershift && !cluster.isHostedCluster. Single destroy no longer exposes the option for non-Hive destroyable clusters, and bulk destroy only shows it when at least one selected cluster satisfies the predicate. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Mihir Lele <mlele@redhat.com> * Add aria-label to preserve infrastructure help button for accessibility Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Mihir Lele <mlele@redhat.com> * Remove OpenShift-specific wording from detach confirmation messages Signed-off-by: Mihir Lele <mihirlele@redhat.com> Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Signed-off-by: Mihir Lele <mlele@redhat.com> Signed-off-by: Mihir Lele <mihirlele@redhat.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
…lish v1.0.0 (stolostron#6606) * feat(sdk): update multicluster-sdk for dynamic plugin SDK 4.22 and publish v1.0.0 - Bump @openshift-console/dynamic-plugin-sdk peer dep to >=4.22.0-0 to properly cover 4.22 prerelease versions (e.g. 4.22.0-prerelease.3) - Update react-i18next dependency to ~16.5.8 - Add react-router dependency at ~7.13.1 - Bump REQUIRED_PROVIDER_FLAG to MULTICLUSTER_SDK_PROVIDER_2 to signal useFleetSearch subscription support (ACM-32322) - ACM continues to set MULTICLUSTER_SDK_PROVIDER_1 for backward compat with older SDK consumers - Bump package version to 1.0.0 (new major) Fixes: https://redhat.atlassian.net/browse/ACM-33547 Signed-off-by: zlayne <zlayne@redhat.com> * update package-lock Signed-off-by: zlayne <zlayne@redhat.com> * update readme Signed-off-by: zlayne <zlayne@redhat.com> * revert package version Signed-off-by: zlayne <zlayne@redhat.com> * update version compatibility in readme Signed-off-by: zlayne <zlayne@redhat.com> --------- Signed-off-by: zlayne <zlayne@redhat.com>
* FCN-633: install wizard package and yaml Signed-off-by: David Aznaurov <daznauro@redhat.com> * FCN-633: some fixes for queries Signed-off-by: David Aznaurov <daznauro@redhat.com> * FCN-633: route for wizard and feature flag Signed-off-by: David Aznaurov <daznauro@redhat.com> * FCN-633: wizard wrapper Signed-off-by: David Aznaurov <daznauro@redhat.com> * FCN-633: some minor fixes Signed-off-by: David Aznaurov <daznauro@redhat.com> * FCN-633: added deps to large usememo Signed-off-by: David Aznaurov <daznauro@redhat.com> * FCN-633: fix redirect when no secret selected Signed-off-by: David Aznaurov <daznauro@redhat.com> * FCN-633: test fixes and llm code review Signed-off-by: David Aznaurov <daznauro@redhat.com> * FCN-633: unit tests for wrapper Signed-off-by: David Aznaurov <daznauro@redhat.com> * FCN-633: fix to react queries and race conditions Signed-off-by: David Aznaurov <daznauro@redhat.com> * FCN-633: undo root package lock Signed-off-by: David Aznaurov <daznauro@redhat.com> --------- Signed-off-by: David Aznaurov <daznauro@redhat.com>
…n#6587) * Add description editor Preview mode Signed-off-by: Oksana Bazylieva <obazylie@redhat.com> * Add translation Signed-off-by: Oksana Bazylieva <obazylie@redhat.com> * Add tests Signed-off-by: Oksana Bazylieva <obazylie@redhat.com> * coderabbitai review Signed-off-by: Oksana Bazylieva <obazylie@redhat.com> * fix lint issue Signed-off-by: Oksana Bazylieva <obazylie@redhat.com> * fix sonar issue Signed-off-by: Oksana Bazylieva <obazylie@redhat.com> * coderabbitai suggestions Signed-off-by: Oksana Bazylieva <obazylie@redhat.com> * Fix lint issue Signed-off-by: Oksana Bazylieva <obazylie@redhat.com> --------- Signed-off-by: Oksana Bazylieva <obazylie@redhat.com>
stolostron#6594) Implements RBAC-aware UX across GRC pages for namespace-scoped users who own policies but lack access to cluster namespaces. PolicyDetailsResults.tsx (Results tab): - Use usePropagatedPolicies (shared hook) instead of an inline filter, eliminating the duplicate matchingPolicyResponses useMemo. - Compare policy.status.status (root policy, always visible) against visible propagated policy copies to detect access restrictions. visibleClusterCount derived from policy labels intersected with allPropagatedClusters, not status.details rows, so a propagated policy with no detail entries is still counted as accessible. - Zero results visible: 'Access permissions needed' empty state with LockIcon and PatternFly-aligned body copy directing users to the Details tab or their cluster administrator. - Some results visible but fewer than total: inline info Alert above table showing accurate cluster counts. - Cluster column: link-disabled span with specific permission Tooltip when cluster not in managedClustersState. PolicyDetailsOverview.tsx (Details tab cluster violation links): - Gate cluster name links on visiblePropagatedClusters derived from usePropagatedPolicies. The hook already filters to matching propagated copies so no secondary filter is needed before extracting cluster names. - Uses policy-level visibility so partial-access users can still click clusters they do have access to. - Inaccessible clusters render as link-disabled span with specific permission Tooltip. PolicySetDetailSidebar.tsx (PolicySet cluster table): - Replace hardcoded <a href> with React Router Link + generatePath. - Gate cluster overview links via ClusterNameCell, a module-level component (avoids component-in-component SonarCloud finding). - Replace managedClusters-based link guard with propagated policy visibility: visibleClusterNames is derived from propagated policy copies visible in Recoil state, matching the same detection pattern used by Results and Overview tabs. Fixes cluster links incorrectly disabled for namespace-scoped users who have access to the cluster namespace but cannot list ManagedCluster resources (cluster-scoped). - Inaccessible clusters render as link-disabled span with specific permission Tooltip. Tests: 35 passing. Updated empty state assertions to match new copy. Updated cluster link gating tests to reflect propagated-policy-based detection. i18n: Updated translation.json with 3 new keys; removed 3 old keys. Signed-off-by: Randy Bruno Piverger <21374229+Randy424@users.noreply.github.com> Co-authored-by: Randy Bruno Piverger <21374229+Randy424@users.noreply.github.com> Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
…ast on update (stolostron#6588) * Add Edit description action to cluster table menu with success toast Signed-off-by: Oksana Bazylieva <obazylie@redhat.com> * Add translation Signed-off-by: Oksana Bazylieva <obazylie@redhat.com> * Add tests Signed-off-by: Oksana Bazylieva <obazylie@redhat.com> --------- Signed-off-by: Oksana Bazylieva <obazylie@redhat.com>
Signed-off-by: zlayne <zlayne@redhat.com>
Signed-off-by: fxiang1 <fxiang@redhat.com>
Corrects the version on main from 2.0.0 back to the intended 1.0.0 — the prior CI-triggered major bump to 2.0.0 was committed but its npm publish step failed, so 2.0.0 was never actually released. Signed-off-by: zlayne <zlayne@redhat.com>
Align MulticlusterRoleAssignment Placement labels with MTV/GitOps by using cluster.open-cluster-management.io/placement-managed-by-system=true. Keep open-cluster-management.io/managed-by=console on MRAs only. Signed-off-by: Enrique Mingorance Cano <emingora@emingora-thinkpadp1gen3.rmtes.csb> Co-authored-by: Enrique Mingorance Cano <emingora@emingora-thinkpadp1gen3.rmtes.csb> Co-authored-by: Cursor <cursoragent@cursor.com>
Signed-off-by: jgyselov <jgyselov@redhat.com>
* Add more steps to Azure HCP destroy modal Signed-off-by: fxiang1 <fxiang@redhat.com> * Fix axe test compliance Signed-off-by: fxiang1 <fxiang@redhat.com> --------- Signed-off-by: fxiang1 <fxiang@redhat.com>
Signed-off-by: Oksana Bazylieva <obazylie@redhat.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
📝 Summary
Ticket Summary (Title):
Open cluster console action and link should not appear for hub cluster
Ticket Link:
https://redhat.atlassian.net/browse/ACM-38829
Type of Change:
Root Cause
The feature added in ACM-36253 (console links for managed clusters) did not exclude the hub cluster (
local-cluster). Two places were affected:frontend/src/components/Clusters/ClustersTableHelper.tsx:101) —useClusterNameColumnonly checkedcluster.consoleURL, not whether the cluster was the hub.frontend/src/routes/Infrastructure/Clusters/ManagedClusters/utils/cluster-actions.ts:131) —clusterSupportsActionforOpenConsoleonly checked!!cluster.consoleURL.Since the hub cluster has a real
consoleURL, both the link icon and the action always appeared for it.Fix
localHubName?: stringparameter toclusterSupportsAction. TheOpenConsolecase now returnsfalsewhencluster.name === localHubName.ClusterActionDropdownpasses its already-fetchedlocalHubNametoclusterSupportsAction.useClusterNameColumnaccepts an optionallocalHubNameparameter and skips rendering the console link icon for the hub cluster.useTableColumns(which already hadlocalHubName) passes it down.How to test
npm run setup(if not already done)npm run plugins— navigate to Infrastructure → Clusterslocal-cluster) visible in the list:✅ Checklist
General
If Bugfix
🗒️ Notes for Reviewers
Three minimal changes across two source files. The
localHubNameis already available in both call sites (ClusterActionDropdownfetches it viauseLocalHubName();useTableColumnsalready received it as a prop). No new state or hooks were introduced.