Skip to content

Commit 2b8508b

Browse files
authored
Adding requirements and operators in bundle popover content (#2810) (#2811)
1 parent 53e6e57 commit 2b8508b

File tree

4 files changed

+70
-24
lines changed

4 files changed

+70
-24
lines changed

libs/ui-lib/lib/ocm/components/clusterConfiguration/operators/OpenShiftAIRequirements.tsx

-14
Original file line numberDiff line numberDiff line change
@@ -11,20 +11,6 @@ const OpenShiftAIRequirements = () => {
1111
<ListItem>
1212
Each worker node requires 32 additional GiB of memory and 8 additional CPUs.
1313
</ListItem>
14-
<ListItem>At least one supported GPU. Currently only NVIDIA GPUs are supported.</ListItem>
15-
<ListItem>
16-
Nodes that have NVIDIA GPUs installed need to have secure boot disabled.
17-
</ListItem>
18-
</List>
19-
Bundle operators:
20-
<List>
21-
<ListItem>OpenShift Data Foundation</ListItem>
22-
<ListItem>Node Feature Discovery</ListItem>
23-
<ListItem>NVIDIA GPU</ListItem>
24-
<ListItem>Pipelines</ListItem>
25-
<ListItem>Service Mesh</ListItem>
26-
<ListItem>Serverless</ListItem>
27-
<ListItem>Authorino</ListItem>
2814
</List>
2915
<a href={OPENSHIFT_AI_REQUIREMENTS_LINK} target="_blank" rel="noopener noreferrer">
3016
Learn more <ExternalLinkAltIcon />.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import React from 'react';
2+
import { List, ListItem } from '@patternfly/react-core';
3+
import { ExternalLinkAltIcon } from '@patternfly/react-icons/dist/js/icons/external-link-alt-icon';
4+
import { OPENSHIFT_AI_REQUIREMENTS_LINK } from '../../../../common';
5+
6+
const OpenshiftAINvidiaRequirements = () => {
7+
return (
8+
<>
9+
<List>
10+
<ListItem>At least two worker nodes.</ListItem>
11+
<ListItem>
12+
Each worker node requires 32 additional GiB of memory and 8 additional CPUs.
13+
</ListItem>
14+
<ListItem>At least one supported GPU. Currently only NVIDIA GPUs are supported.</ListItem>
15+
<ListItem>
16+
Nodes that have NVIDIA GPUs installed need to have secure boot disabled.
17+
</ListItem>
18+
</List>
19+
Bundle operators:
20+
<List>
21+
<ListItem>Openshift AI</ListItem>
22+
<ListItem>OpenShift Data Foundation</ListItem>
23+
<ListItem>NVIDIA GPU</ListItem>
24+
<ListItem>Pipelines</ListItem>
25+
<ListItem>Service Mesh</ListItem>
26+
<ListItem>Serverless</ListItem>
27+
<ListItem>Authorino</ListItem>
28+
</List>
29+
<a href={OPENSHIFT_AI_REQUIREMENTS_LINK} target="_blank" rel="noopener noreferrer">
30+
Learn more <ExternalLinkAltIcon />.
31+
</a>
32+
</>
33+
);
34+
};
35+
36+
export default OpenshiftAINvidiaRequirements;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import React from 'react';
2+
import { List, ListItem } from '@patternfly/react-core';
3+
4+
const VirtualizationRequirements = () => {
5+
return (
6+
<>
7+
<List>
8+
<ListItem>
9+
Enabled CPU virtualization support in BIOS (Intel-VT / AMD-V) on all nodes.
10+
</ListItem>
11+
<ListItem>
12+
Each control plane node requires an additional 1024 MiB of memory and 3 CPUs.
13+
</ListItem>
14+
<ListItem>Each worker node requires an additional 1024 MiB of memory and 5 CPUs.</ListItem>
15+
</List>
16+
Bundle operators:
17+
<List>
18+
<ListItem>OpenShift Virtualization</ListItem>
19+
<ListItem>Migration Toolkit for Virtualization</ListItem>
20+
<ListItem>Nmstate</ListItem>
21+
</List>
22+
</>
23+
);
24+
};
25+
26+
export default VirtualizationRequirements;

libs/ui-lib/lib/ocm/components/clusterWizard/OperatorsStep.tsx

+8-10
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ import {
4848
getOdfIncompatibleWithLvmsReason,
4949
getOpenShiftAIIncompatibleWithLvmsReason,
5050
} from '../featureSupportLevels/featureStateUtils';
51+
import OpenshiftAINvidiaRequirements from '../clusterConfiguration/operators/OpenshiftAINvidiaRequirements';
52+
import VirtualizationRequirements from '../clusterConfiguration/operators/VirtualizationRequirements';
5153

5254
const operatorsThatCanNotBeInstalledAlone = [
5355
'nvdia-gpu',
@@ -189,23 +191,19 @@ export const OperatorsStep = (props: ClusterOperatorProps) => {
189191
setBundleOperators(newBundleOperators);
190192
};
191193

192-
const getBundleLabel = (title: string | undefined, operators: string[] | undefined) => {
194+
const getBundleLabel = (title: string | undefined) => {
193195
return (
194196
<>
195197
<span>{title} </span>
196198
<PopoverIcon
197199
component={'a'}
198200
bodyContent={
199201
<>
200-
<h3>{'Bundle operators'}</h3>
201-
{operators && operators.length > 0 ? (
202-
<ul>
203-
{operators.map((operator, index) => (
204-
<li key={index}>{operator}</li>
205-
))}
206-
</ul>
202+
<span style={{ fontSize: '1.1em' }}>{'Requirements and dependencies'}</span>
203+
{title === 'Virtualization' ? (
204+
<VirtualizationRequirements />
207205
) : (
208-
<p>No operators available</p>
206+
<OpenshiftAINvidiaRequirements />
209207
)}
210208
</>
211209
}
@@ -352,7 +350,7 @@ export const OperatorsStep = (props: ClusterOperatorProps) => {
352350
}}
353351
>
354352
<div style={{ display: 'flex', alignItems: 'center', gap: '8px' }}>
355-
{getBundleLabel(bundle.title, bundle.operators)}
353+
{getBundleLabel(bundle.title)}
356354
</div>
357355
<Checkbox
358356
id={`bundle-${bundle.id || ''}`}

0 commit comments

Comments
 (0)