From 449344a1514434a7bbbe2aede661acf606295b13 Mon Sep 17 00:00:00 2001 From: Saif Chaudhry Date: Mon, 23 Mar 2026 11:52:50 -0700 Subject: [PATCH 1/4] feat(clusters): add doc links for operator install and deprecation notices Add non-OpenShift documentation links to the operator installation instructions page and link deprecation alerts to operator install docs so users can easily find migration guidance. Signed-off-by: Saif Chaudhry --- .../Containers/Clusters/ClusterDeployment.tsx | 28 +++++++++++++++++-- .../SecureClusterUsingHelmChart.tsx | 23 +++++++++++++++ .../SecureClusterUsingHelmChart.tsx | 19 +++++++++++++ .../SecureClusterUsingOperator.tsx | 25 ++++++++++++++++- 4 files changed, 91 insertions(+), 4 deletions(-) diff --git a/ui/apps/platform/src/Containers/Clusters/ClusterDeployment.tsx b/ui/apps/platform/src/Containers/Clusters/ClusterDeployment.tsx index 6a5ef25ce7b87..a907d35f973fb 100644 --- a/ui/apps/platform/src/Containers/Clusters/ClusterDeployment.tsx +++ b/ui/apps/platform/src/Containers/Clusters/ClusterDeployment.tsx @@ -4,8 +4,11 @@ import { DownloadIcon } from '@patternfly/react-icons'; import { CheckCircle } from 'react-feather'; import { ClipLoader } from 'react-spinners'; +import ExternalLink from 'Components/PatternFly/IconText/ExternalLink'; import type { ClusterManagerType } from 'types/cluster.proto'; import useAnalytics, { LEGACY_CLUSTER_DOWNLOAD_YAML } from 'hooks/useAnalytics'; +import useMetadata from 'hooks/useMetadata'; +import { getVersionedDocs } from 'utils/versioning'; export type ClusterDeploymentProps = { clusterCheckedIn: boolean; @@ -27,6 +30,7 @@ function ClusterDeployment({ managerType, }: ClusterDeploymentProps): ReactElement { const { analyticsTrack } = useAnalytics(); + const { version } = useMetadata(); let managerTypeTitle = 'Dynamic configurations are automatically applied'; let managerTypeText = @@ -53,11 +57,29 @@ function ClusterDeployment({ The legacy manifest bundle installation method is deprecated since - version 4.9 and will be removed in 5.1. + version 4.11 and will be removed in 5.1. - Use the Kubernetes operator to install secured cluster services - instead. + Use the Kubernetes operator to install secured cluster services instead. + {version && ( + <> + {' '} + See{' '} + + + operator installation documentation + + + . + + )} diff --git a/ui/apps/platform/src/Containers/Clusters/ClusterRegistrationSecrets/SecureClusterUsingHelmChart.tsx b/ui/apps/platform/src/Containers/Clusters/ClusterRegistrationSecrets/SecureClusterUsingHelmChart.tsx index b9605027ce69d..7419fe42d5f77 100644 --- a/ui/apps/platform/src/Containers/Clusters/ClusterRegistrationSecrets/SecureClusterUsingHelmChart.tsx +++ b/ui/apps/platform/src/Containers/Clusters/ClusterRegistrationSecrets/SecureClusterUsingHelmChart.tsx @@ -13,7 +13,10 @@ import { ListItem, Title, } from '@patternfly/react-core'; +import ExternalLink from 'Components/PatternFly/IconText/ExternalLink'; import useClipboardCopy from 'hooks/useClipboardCopy'; +import useMetadata from 'hooks/useMetadata'; +import { getVersionedDocs } from 'utils/versioning'; const codeBlock = [ 'helm install -n stackrox --create-namespace \\', @@ -32,6 +35,7 @@ export type SecureClusterUsingHelmChartProps = { function SecureClusterUsingHelmChart({ headingLevel, }: SecureClusterUsingHelmChartProps): ReactElement { + const { version } = useMetadata(); const subHeadingLevel = headingLevel === 'h2' ? 'h3' : 'h4'; const { wasCopied, copyToClipboard } = useClipboardCopy(); @@ -58,6 +62,25 @@ function SecureClusterUsingHelmChart({ Use the Kubernetes operator to install secured cluster services instead. + {version && ( + <> + {' '} + See{' '} + + + operator installation documentation + + + . + + )} diff --git a/ui/apps/platform/src/Containers/Clusters/InitBundles/SecureClusterUsingHelmChart.tsx b/ui/apps/platform/src/Containers/Clusters/InitBundles/SecureClusterUsingHelmChart.tsx index fe73ae845f9d8..8f56a46232136 100644 --- a/ui/apps/platform/src/Containers/Clusters/InitBundles/SecureClusterUsingHelmChart.tsx +++ b/ui/apps/platform/src/Containers/Clusters/InitBundles/SecureClusterUsingHelmChart.tsx @@ -63,6 +63,25 @@ function SecureClusterUsingHelmChart({ Use the Kubernetes operator to install secured cluster services instead. + {version && ( + <> + {' '} + See{' '} + + + operator installation documentation + + + . + + )} diff --git a/ui/apps/platform/src/Containers/Clusters/InitBundles/SecureClusterUsingOperator.tsx b/ui/apps/platform/src/Containers/Clusters/InitBundles/SecureClusterUsingOperator.tsx index 2e92702071b08..a5a5d1d849a9e 100644 --- a/ui/apps/platform/src/Containers/Clusters/InitBundles/SecureClusterUsingOperator.tsx +++ b/ui/apps/platform/src/Containers/Clusters/InitBundles/SecureClusterUsingOperator.tsx @@ -50,7 +50,30 @@ function SecureClusterUsingOperator({ Installing RHACS on secured clusters by using the Operator (OpenShift) - {/* TODO ROX-33550: Add non-OpenShift operator documentation links when available */} + + + Generating and applying an init bundle for RHACS on other platforms + + + + + Installing secured cluster services for RHACS on other platforms + + )}

From f5476b542e5fd22fadc008ec9f1cf766fa52b649 Mon Sep 17 00:00:00 2001 From: Saif Chaudhry Date: Mon, 23 Mar 2026 12:23:28 -0700 Subject: [PATCH 2/4] refactor(clusters): extract InstallMethodDeprecationAlert component Deduplicate the identical deprecation alert block that was repeated across three cluster installation pages into a shared component. Signed-off-by: Saif Chaudhry --- .../Containers/Clusters/ClusterDeployment.tsx | 35 +----------- .../SecureClusterUsingHelmChart.tsx | 44 ++++----------- .../InstallMethodDeprecationAlert.tsx | 56 +++++++++++++++++++ .../SecureClusterUsingHelmChart.tsx | 42 ++++---------- 4 files changed, 80 insertions(+), 97 deletions(-) create mode 100644 ui/apps/platform/src/Containers/Clusters/Components/InstallMethodDeprecationAlert.tsx diff --git a/ui/apps/platform/src/Containers/Clusters/ClusterDeployment.tsx b/ui/apps/platform/src/Containers/Clusters/ClusterDeployment.tsx index a907d35f973fb..c336b1482f16e 100644 --- a/ui/apps/platform/src/Containers/Clusters/ClusterDeployment.tsx +++ b/ui/apps/platform/src/Containers/Clusters/ClusterDeployment.tsx @@ -4,11 +4,10 @@ import { DownloadIcon } from '@patternfly/react-icons'; import { CheckCircle } from 'react-feather'; import { ClipLoader } from 'react-spinners'; -import ExternalLink from 'Components/PatternFly/IconText/ExternalLink'; import type { ClusterManagerType } from 'types/cluster.proto'; import useAnalytics, { LEGACY_CLUSTER_DOWNLOAD_YAML } from 'hooks/useAnalytics'; -import useMetadata from 'hooks/useMetadata'; -import { getVersionedDocs } from 'utils/versioning'; + +import InstallMethodDeprecationAlert from './Components/InstallMethodDeprecationAlert'; export type ClusterDeploymentProps = { clusterCheckedIn: boolean; @@ -30,7 +29,6 @@ function ClusterDeployment({ managerType, }: ClusterDeploymentProps): ReactElement { const { analyticsTrack } = useAnalytics(); - const { version } = useMetadata(); let managerTypeTitle = 'Dynamic configurations are automatically applied'; let managerTypeText = @@ -54,34 +52,7 @@ function ClusterDeployment({ {managerType !== 'MANAGER_TYPE_KUBERNETES_OPERATOR' && ( - - - The legacy manifest bundle installation method is deprecated since - version 4.11 and will be removed in 5.1. - - - Use the Kubernetes operator to install secured cluster services instead. - {version && ( - <> - {' '} - See{' '} - - - operator installation documentation - - - . - - )} - - + Download manifest bundle - - - The rhacs/secured-cluster-services Helm chart is deprecated - since version 4.11 and will be removed in 5.1. - - - Use the Kubernetes operator to install secured cluster services instead. - {version && ( - <> - {' '} - See{' '} - - - operator installation documentation - - - . - - )} - - + + The rhacs/secured-cluster-services Helm chart is + deprecated since version 4.11 and will be removed in 5.1. + + } + /> Prerequisites diff --git a/ui/apps/platform/src/Containers/Clusters/Components/InstallMethodDeprecationAlert.tsx b/ui/apps/platform/src/Containers/Clusters/Components/InstallMethodDeprecationAlert.tsx new file mode 100644 index 0000000000000..0555cf9e15d76 --- /dev/null +++ b/ui/apps/platform/src/Containers/Clusters/Components/InstallMethodDeprecationAlert.tsx @@ -0,0 +1,56 @@ +import type { ReactElement, ReactNode } from 'react'; +import { Alert, Content } from '@patternfly/react-core'; + +import ExternalLink from 'Components/PatternFly/IconText/ExternalLink'; +import useMetadata from 'hooks/useMetadata'; +import { getVersionedDocs } from 'utils/versioning'; + +export type InstallMethodDeprecationAlertProps = { + deprecationMessage: ReactNode; +}; + +/** + * Shared deprecation warning alert used across cluster installation pages. + * Displays a configurable deprecation message and a link to operator installation docs. + */ +function InstallMethodDeprecationAlert({ + deprecationMessage, +}: InstallMethodDeprecationAlertProps): ReactElement { + const { version } = useMetadata(); + + return ( + + {deprecationMessage} + + Use the Kubernetes operator to install secured cluster services instead. + {version && ( + <> + {' '} + See{' '} + + + operator installation documentation + + + . + + )} + + + ); +} + +export default InstallMethodDeprecationAlert; diff --git a/ui/apps/platform/src/Containers/Clusters/InitBundles/SecureClusterUsingHelmChart.tsx b/ui/apps/platform/src/Containers/Clusters/InitBundles/SecureClusterUsingHelmChart.tsx index 8f56a46232136..14b1be5f06fb3 100644 --- a/ui/apps/platform/src/Containers/Clusters/InitBundles/SecureClusterUsingHelmChart.tsx +++ b/ui/apps/platform/src/Containers/Clusters/InitBundles/SecureClusterUsingHelmChart.tsx @@ -1,12 +1,10 @@ import type { ReactElement } from 'react'; import { - Alert, ClipboardCopy, ClipboardCopyButton, CodeBlock, CodeBlockAction, CodeBlockCode, - Content, Flex, FlexItem, List, @@ -15,9 +13,11 @@ import { } from '@patternfly/react-core'; import ExternalLink from 'Components/PatternFly/IconText/ExternalLink'; +import useClipboardCopy from 'hooks/useClipboardCopy'; import useMetadata from 'hooks/useMetadata'; import { getVersionedDocs } from 'utils/versioning'; -import useClipboardCopy from 'hooks/useClipboardCopy'; + +import InstallMethodDeprecationAlert from '../Components/InstallMethodDeprecationAlert'; const codeBlock = [ 'helm install -n stackrox --create-namespace \\', @@ -56,34 +56,14 @@ function SecureClusterUsingHelmChart({ return ( - - - The rhacs/secured-cluster-services Helm chart is deprecated - since version 4.11 and will be removed in 5.1. - - - Use the Kubernetes operator to install secured cluster services instead. - {version && ( - <> - {' '} - See{' '} - - - operator installation documentation - - - . - - )} - - + + The rhacs/secured-cluster-services Helm chart is deprecated + since version 4.11 and will be removed in 5.1. + + } + /> Secure a cluster using Helm chart installation method From 52b163a4b5c3602eb9bcf85bbdc7a6c19a2f9e2e Mon Sep 17 00:00:00 2001 From: Saif Chaudhry <schaudhr@redhat.com> Date: Wed, 25 Mar 2026 10:05:59 -0700 Subject: [PATCH 3/4] fix: version --- ui/apps/platform/src/Containers/Clusters/ClusterDeployment.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/apps/platform/src/Containers/Clusters/ClusterDeployment.tsx b/ui/apps/platform/src/Containers/Clusters/ClusterDeployment.tsx index c336b1482f16e..f2cdf04f1fc16 100644 --- a/ui/apps/platform/src/Containers/Clusters/ClusterDeployment.tsx +++ b/ui/apps/platform/src/Containers/Clusters/ClusterDeployment.tsx @@ -52,7 +52,7 @@ function ClusterDeployment({ {managerType !== 'MANAGER_TYPE_KUBERNETES_OPERATOR' && ( <Flex direction={{ default: 'column' }}> <FlexItem spacer={{ default: 'spacerLg' }}> - <InstallMethodDeprecationAlert deprecationMessage="The legacy manifest bundle installation method is deprecated since version 4.11 and will be removed in 5.1." /> + <InstallMethodDeprecationAlert deprecationMessage="The legacy manifest bundle installation method is deprecated since version 4.9 and will be removed in 5.1." /> </FlexItem> <Title headingLevel="h2">Download manifest bundle Date: Wed, 25 Mar 2026 11:01:05 -0700 Subject: [PATCH 4/4] fix(clusters): resolve prettier formatting in deprecation message Line exceeded print width in SecureClusterUsingHelmChart. Signed-off-by: Saif Chaudhry --- .../Clusters/InitBundles/SecureClusterUsingHelmChart.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ui/apps/platform/src/Containers/Clusters/InitBundles/SecureClusterUsingHelmChart.tsx b/ui/apps/platform/src/Containers/Clusters/InitBundles/SecureClusterUsingHelmChart.tsx index 14b1be5f06fb3..4f2f37524eef1 100644 --- a/ui/apps/platform/src/Containers/Clusters/InitBundles/SecureClusterUsingHelmChart.tsx +++ b/ui/apps/platform/src/Containers/Clusters/InitBundles/SecureClusterUsingHelmChart.tsx @@ -59,8 +59,8 @@ function SecureClusterUsingHelmChart({ - The rhacs/secured-cluster-services Helm chart is deprecated - since version 4.11 and will be removed in 5.1. + The rhacs/secured-cluster-services Helm chart is + deprecated since version 4.11 and will be removed in 5.1. } />