Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 3 additions & 10 deletions ui/apps/platform/src/Containers/Clusters/ClusterDeployment.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ import { ClipLoader } from 'react-spinners';
import type { ClusterManagerType } from 'types/cluster.proto';
import useAnalytics, { LEGACY_CLUSTER_DOWNLOAD_YAML } from 'hooks/useAnalytics';

import InstallMethodDeprecationAlert from './Components/InstallMethodDeprecationAlert';

export type ClusterDeploymentProps = {
clusterCheckedIn: boolean;
createUpgraderSA: boolean;
Expand Down Expand Up @@ -50,16 +52,7 @@ function ClusterDeployment({
{managerType !== 'MANAGER_TYPE_KUBERNETES_OPERATOR' && (
<Flex direction={{ default: 'column' }}>
<FlexItem spacer={{ default: 'spacerLg' }}>
<Alert title="Deprecation notice" component="p" variant="warning" isInline>
<Content component="p">
The legacy manifest bundle installation method is deprecated since
version 4.9 and will be removed in 5.1.
</Content>
<Content component="p">
Use the Kubernetes operator to install secured cluster services
instead.
</Content>
</Alert>
<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</Title>
<Flex
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
import type { ReactElement } from 'react';
import {
Alert,
ClipboardCopy,
ClipboardCopyButton,
CodeBlock,
CodeBlockAction,
CodeBlockCode,
Content,
Flex,
FlexItem,
List,
Expand All @@ -15,6 +13,8 @@ import {
} from '@patternfly/react-core';
import useClipboardCopy from 'hooks/useClipboardCopy';

import InstallMethodDeprecationAlert from '../Components/InstallMethodDeprecationAlert';

const codeBlock = [
'helm install -n stackrox --create-namespace \\',
'stackrox-secured-cluster-services rhacs/secured-cluster-services \\',
Expand Down Expand Up @@ -51,15 +51,14 @@ function SecureClusterUsingHelmChart({
return (
<Flex direction={{ default: 'column' }}>
<FlexItem spacer={{ default: 'spacerLg' }}>
<Alert title="Deprecation notice" component="p" variant="warning" isInline>
<Content component="p">
The <strong>rhacs/secured-cluster-services</strong> Helm chart is deprecated
since version 4.11 and will be removed in 5.1.
</Content>
<Content component="p">
Use the Kubernetes operator to install secured cluster services instead.
</Content>
</Alert>
<InstallMethodDeprecationAlert
deprecationMessage={
<>
The <strong>rhacs/secured-cluster-services</strong> Helm chart is
deprecated since version 4.11 and will be removed in 5.1.
</>
}
/>
</FlexItem>
<Title headingLevel={subHeadingLevel}>Prerequisites</Title>
<List component="ul">
Expand Down
Original file line number Diff line number Diff line change
@@ -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 (
<Alert
title="Deprecation notice"
component="p"
variant="warning"
isInline
className="pf-v6-u-mb-lg"
>
<Content component="p">{deprecationMessage}</Content>
<Content component="p">
Use the Kubernetes operator to install secured cluster services instead.
{version && (
<>
{' '}
See{' '}
<ExternalLink>
<a
href={getVersionedDocs(
version,
'installing/installing-rhacs-on-red-hat-openshift#install-secured-cluster-ocp'
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

@kcarmichael08 We’ve added doc links to the deprecation notices on the Helm and manifest install pages. Each deprecation alert now links to "operator installation documentation" so users have a clear migration path.

Currently, the link points to the OpenShift operator install page (installing-rhacs-on-red-hat-openshift#install-secured-cluster-ocp). Two questions:

  1. Is there a platform-agnostic operator install page we should link to instead?
  2. If not, should we show two links (one for OpenShift, one for other platforms) rather than just the OpenShift one?

Copy link
Copy Markdown
Contributor

@kcarmichael08 kcarmichael08 Mar 25, 2026

Choose a reason for hiding this comment

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

  1. No, there is no Operator install for non-OCP since that feature isn't available yet.
  2. I hesitate to put in narrowly-targeted hardcoded links (even if we could guess what the link structure would be) because we will be changing our whole publishing system in summer 2026 so any links would need to be changed again. We can put in redirects, but the fewer ones that we have to redirect, the better.

For now, I think linking to OCP Operator installation docs is OK.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

  1. No, there is no Operator install for non-OCP since that feature isn't available yet.

Well, I think at this point it's available enough to be documentable. See this ticket.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Yes, but that ticket was created two days ago, so there is no documentation available yet to add a link for in the GUI. So I cannot provide a link to documentation that is not yet created.

The parent ticket of ROX-33749 is a 4.11 ticket, so it would typically be done in the 4.11 cycle (which has not yet started for docs - as you know, our work lags behind development). When you say "enough to be documentable," were you expecting something now, before 4.11 docs are published?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

That makes sense, Kerry. I don't think the intention of this PR is to assume that the docs are already in place. Just setting things up so that when the docs come in, we already have everything set up on the UI. If the external link still needs to be decided, we can either leave a comment in JIRA to revisit this and update the link or keep this open until that is decided.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Good idea! We should have a better idea of the link after the drafts are done.

)}
target="_blank"
rel="noopener noreferrer"
>
operator installation documentation
</a>
</ExternalLink>
.
</>
)}
</Content>
</Alert>
);
}

export default InstallMethodDeprecationAlert;
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
import type { ReactElement } from 'react';
import {
Alert,
ClipboardCopy,
ClipboardCopyButton,
CodeBlock,
CodeBlockAction,
CodeBlockCode,
Content,
Flex,
FlexItem,
List,
Expand All @@ -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 \\',
Expand Down Expand Up @@ -56,15 +56,14 @@ function SecureClusterUsingHelmChart({
return (
<Flex direction={{ default: 'column' }}>
<FlexItem spacer={{ default: 'spacerLg' }}>
<Alert title="Deprecation notice" component="p" variant="warning" isInline>
<Content component="p">
The <strong>rhacs/secured-cluster-services</strong> Helm chart is deprecated
since version 4.11 and will be removed in 5.1.
</Content>
<Content component="p">
Use the Kubernetes operator to install secured cluster services instead.
</Content>
</Alert>
<InstallMethodDeprecationAlert
deprecationMessage={
<>
The <strong>rhacs/secured-cluster-services</strong> Helm chart is
deprecated since version 4.11 and will be removed in 5.1.
</>
}
/>
</FlexItem>
<Title headingLevel={headingLevel}>
Secure a cluster using Helm chart installation method
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,30 @@ function SecureClusterUsingOperator({
Installing RHACS on secured clusters by using the Operator (OpenShift)
</a>
</ExternalLink>
{/* TODO ROX-33550: Add non-OpenShift operator documentation links when available */}
<ExternalLink>
<a
href={getVersionedDocs(
version,
'installing/installing-rhacs-on-other-platforms#init-bundle-other'
)}
target="_blank"
rel="noopener noreferrer"
>
Generating and applying an init bundle for RHACS on other platforms
</a>
</ExternalLink>
<ExternalLink>
<a
href={getVersionedDocs(
version,
'installing/installing-rhacs-on-other-platforms#install-secured-cluster-other'
)}
target="_blank"
rel="noopener noreferrer"
>
Installing secured cluster services for RHACS on other platforms
</a>
</ExternalLink>
</>
)}
<p>
Expand Down
Loading