@openshift-assisted/ui-lib 2.41.2 → 2.42.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/@types/cim/components/ClusterDeployment/ClusterDeploymentDetailsForm.d.ts.map +1 -1
- package/build/@types/cim/components/ClusterDeployment/ClusterDeploymentHostsDiscovery.d.ts.map +1 -1
- package/build/@types/cim/components/ClusterDeployment/LabelsSelector.d.ts.map +1 -1
- package/build/@types/cim/components/ClusterDeployment/ScaleUpForm.d.ts +1 -0
- package/build/@types/cim/components/ClusterDeployment/ScaleUpForm.d.ts.map +1 -1
- package/build/@types/cim/components/InfraEnv/AddHostDropdown.d.ts.map +1 -1
- package/build/@types/cim/components/InfraEnv/EnvironmentDetails.d.ts.map +1 -1
- package/build/@types/cim/components/InfraEnv/InfraEnvOpenShiftVersionDropdown.d.ts.map +1 -1
- package/build/@types/cim/components/common/CpuArchitectureDropdown.d.ts.map +1 -1
- package/build/@types/cim/components/helpers/versions.d.ts.map +1 -1
- package/build/@types/cim/components/modals/ScaleUpModal.d.ts +1 -0
- package/build/@types/cim/components/modals/ScaleUpModal.d.ts.map +1 -1
- package/build/@types/common/components/clusterConfiguration/ControlPlaneNodesDropdown.d.ts.map +1 -1
- package/build/@types/common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionControlGroup.d.ts.map +1 -1
- package/build/@types/common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionValues.d.ts +1 -0
- package/build/@types/common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionValues.d.ts.map +1 -1
- package/build/@types/common/components/clusterWizard/clusterDetailsValidation.d.ts.map +1 -1
- package/build/@types/common/components/clusterWizard/types.d.ts +1 -0
- package/build/@types/common/components/clusterWizard/types.d.ts.map +1 -1
- package/build/@types/common/components/hosts/DiskRole.d.ts.map +1 -1
- package/build/@types/common/components/hosts/TableToolbar.d.ts.map +1 -1
- package/build/@types/common/components/newFeatureSupportLevels/types.d.ts +1 -1
- package/build/@types/common/components/newFeatureSupportLevels/types.d.ts.map +1 -1
- package/build/@types/common/components/operators/operatorDescriptions.d.ts +23 -0
- package/build/@types/common/components/operators/operatorDescriptions.d.ts.map +1 -0
- package/build/@types/common/components/operators/operatorSpecs.d.ts +25 -4
- package/build/@types/common/components/operators/operatorSpecs.d.ts.map +1 -1
- package/build/@types/common/components/ui/ClusterEventsToolbar.d.ts.map +1 -1
- package/build/@types/common/components/ui/OpenShiftVersionDropdown.d.ts +0 -1
- package/build/@types/common/components/ui/OpenShiftVersionDropdown.d.ts.map +1 -1
- package/build/@types/common/components/ui/SimpleDropdown.d.ts +2 -2
- package/build/@types/common/components/ui/SimpleDropdown.d.ts.map +1 -1
- package/build/@types/common/config/constants.d.ts.map +1 -1
- package/build/@types/common/config/docs_links.d.ts +1 -2
- package/build/@types/common/config/docs_links.d.ts.map +1 -1
- package/build/@types/common/index.d.ts +1 -0
- package/build/@types/common/index.d.ts.map +1 -1
- package/build/@types/common/types/ui-settings.d.ts +1 -0
- package/build/@types/common/types/ui-settings.d.ts.map +1 -1
- package/build/@types/common/utils.d.ts +8 -0
- package/build/@types/common/utils.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/ControlPlaneNodesDropdown.d.ts +2 -0
- package/build/@types/ocm/components/clusterConfiguration/ControlPlaneNodesDropdown.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/CpuArchitectureDropdown.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/DiscoveryImageTypeDropdown.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/OcmBaseDomainField.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/OcmTNADisclaimer.d.ts +4 -0
- package/build/@types/ocm/components/clusterConfiguration/OcmTNADisclaimer.d.ts.map +1 -0
- package/build/@types/ocm/components/clusterConfiguration/manifestsConfiguration/components/FolderDropdown.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/networkConfiguration/SubnetsDropdown.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/operators/utils.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/platformIntegration/ExternalPlatformDropdown.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/review/ReviewOperatorsTable.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/staticIp/commonValidationSchemas.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterWizard/ClusterDetails.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterWizard/OperatorsBundle.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterWizard/OperatorsSelect.d.ts.map +1 -1
- package/build/@types/ocm/components/featureSupportLevels/featureStateUtils.d.ts.map +1 -1
- package/build/@types/ocm/components/hosts/use-hosts-table.d.ts.map +1 -1
- package/build/@types/ocm/services/DiskEncryptionService.d.ts +1 -1
- package/build/@types/ocm/services/DiskEncryptionService.d.ts.map +1 -1
- package/build/@types/ocm/store/slices/current-cluster/slice.d.ts +1 -1
- package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentDetailsForm.js +2 -2
- package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentDetailsForm.js.map +1 -1
- package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentHostsDiscovery.js +2 -1
- package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentHostsDiscovery.js.map +1 -1
- package/build/cjs/cim/components/ClusterDeployment/LabelsSelector.js +5 -5
- package/build/cjs/cim/components/ClusterDeployment/LabelsSelector.js.map +1 -1
- package/build/cjs/cim/components/ClusterDeployment/ScaleUpForm.js +2 -2
- package/build/cjs/cim/components/ClusterDeployment/ScaleUpForm.js.map +1 -1
- package/build/cjs/cim/components/InfraEnv/AddHostDropdown.js +29 -28
- package/build/cjs/cim/components/InfraEnv/AddHostDropdown.js.map +1 -1
- package/build/cjs/cim/components/InfraEnv/EnvironmentDetails.js +16 -14
- package/build/cjs/cim/components/InfraEnv/EnvironmentDetails.js.map +1 -1
- package/build/cjs/cim/components/InfraEnv/InfraEnvAgentTable.js +2 -2
- package/build/cjs/cim/components/InfraEnv/InfraEnvAgentTable.js.map +1 -1
- package/build/cjs/cim/components/InfraEnv/InfraEnvOpenShiftVersionDropdown.js +4 -8
- package/build/cjs/cim/components/InfraEnv/InfraEnvOpenShiftVersionDropdown.js.map +1 -1
- package/build/cjs/cim/components/common/CpuArchitectureDropdown.js +3 -3
- package/build/cjs/cim/components/common/CpuArchitectureDropdown.js.map +1 -1
- package/build/cjs/cim/components/helpers/versions.js +1 -1
- package/build/cjs/cim/components/helpers/versions.js.map +1 -1
- package/build/cjs/cim/components/modals/MassApproveAction.js +2 -2
- package/build/cjs/cim/components/modals/MassApproveAction.js.map +1 -1
- package/build/cjs/cim/components/modals/ScaleUpModal.js +3 -3
- package/build/cjs/cim/components/modals/ScaleUpModal.js.map +1 -1
- package/build/cjs/common/components/clusterConfiguration/ControlPlaneNodesDropdown.js +5 -6
- package/build/cjs/common/components/clusterConfiguration/ControlPlaneNodesDropdown.js.map +1 -1
- package/build/cjs/common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionControlGroup.js +11 -6
- package/build/cjs/common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionControlGroup.js.map +1 -1
- package/build/cjs/common/components/clusterDetail/OperatorsProgressItem.js +1 -1
- package/build/cjs/common/components/clusterDetail/OperatorsProgressItem.js.map +1 -1
- package/build/cjs/common/components/clusterWizard/clusterDetailsValidation.js +2 -1
- package/build/cjs/common/components/clusterWizard/clusterDetailsValidation.js.map +1 -1
- package/build/cjs/common/components/hosts/DiskRole.js +5 -5
- package/build/cjs/common/components/hosts/DiskRole.js.map +1 -1
- package/build/cjs/common/components/hosts/HostToolbarActions.js +3 -3
- package/build/cjs/common/components/hosts/HostToolbarActions.js.map +1 -1
- package/build/cjs/common/components/hosts/TableToolbar.js +15 -15
- package/build/cjs/common/components/hosts/TableToolbar.js.map +1 -1
- package/build/cjs/common/components/operators/operatorDescriptions.js +26 -0
- package/build/cjs/common/components/operators/operatorDescriptions.js.map +1 -0
- package/build/cjs/common/components/operators/operatorSpecs.js +332 -189
- package/build/cjs/common/components/operators/operatorSpecs.js.map +1 -1
- package/build/cjs/common/components/ui/ClusterEventsToolbar.js +1 -1
- package/build/cjs/common/components/ui/ClusterEventsToolbar.js.map +1 -1
- package/build/cjs/common/components/ui/OpenShiftVersionDropdown.js +13 -16
- package/build/cjs/common/components/ui/OpenShiftVersionDropdown.js.map +1 -1
- package/build/cjs/common/components/ui/SimpleDropdown.js +4 -5
- package/build/cjs/common/components/ui/SimpleDropdown.js.map +1 -1
- package/build/cjs/common/config/constants.js +10 -0
- package/build/cjs/common/config/constants.js.map +1 -1
- package/build/cjs/common/config/docs_links.js +41 -25
- package/build/cjs/common/config/docs_links.js.map +1 -1
- package/build/cjs/common/index.js +1 -0
- package/build/cjs/common/index.js.map +1 -1
- package/build/cjs/common/utils.js +27 -1
- package/build/cjs/common/utils.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/ControlPlaneNodesDropdown.js +23 -13
- package/build/cjs/ocm/components/clusterConfiguration/ControlPlaneNodesDropdown.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/CpuArchitectureDropdown.js +3 -5
- package/build/cjs/ocm/components/clusterConfiguration/CpuArchitectureDropdown.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/DiscoveryImageTypeDropdown.js +15 -17
- package/build/cjs/ocm/components/clusterConfiguration/DiscoveryImageTypeDropdown.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/OcmBaseDomainField.js +5 -7
- package/build/cjs/ocm/components/clusterConfiguration/OcmBaseDomainField.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.js +16 -0
- package/build/cjs/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/OcmOperatorProgressItem.js +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/OcmOperatorProgressItem.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/OcmTNADisclaimer.js +14 -0
- package/build/cjs/ocm/components/clusterConfiguration/OcmTNADisclaimer.js.map +1 -0
- package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/FolderDropdown.js +6 -8
- package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/FolderDropdown.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/SubnetsDropdown.js +7 -10
- package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/SubnetsDropdown.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/operators/OperatorCheckbox.js +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/operators/OperatorCheckbox.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/operators/utils.js +2 -1
- package/build/cjs/ocm/components/clusterConfiguration/operators/utils.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/platformIntegration/ExternalPlatformDropdown.js +11 -13
- package/build/cjs/ocm/components/clusterConfiguration/platformIntegration/ExternalPlatformDropdown.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/review/ReviewOperatorsTable.js +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/review/ReviewOperatorsTable.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/staticIp/commonValidationSchemas.js +4 -0
- package/build/cjs/ocm/components/clusterConfiguration/staticIp/commonValidationSchemas.js.map +1 -1
- package/build/cjs/ocm/components/clusterDetail/ProgressBarAlerts.js +1 -1
- package/build/cjs/ocm/components/clusterDetail/ProgressBarAlerts.js.map +1 -1
- package/build/cjs/ocm/components/clusterWizard/ClusterDetails.js +7 -4
- package/build/cjs/ocm/components/clusterWizard/ClusterDetails.js.map +1 -1
- package/build/cjs/ocm/components/clusterWizard/OperatorsBundle.js +14 -10
- package/build/cjs/ocm/components/clusterWizard/OperatorsBundle.js.map +1 -1
- package/build/cjs/ocm/components/clusterWizard/OperatorsSelect.js +13 -15
- package/build/cjs/ocm/components/clusterWizard/OperatorsSelect.js.map +1 -1
- package/build/cjs/ocm/components/featureSupportLevels/featureStateUtils.js +5 -15
- package/build/cjs/ocm/components/featureSupportLevels/featureStateUtils.js.map +1 -1
- package/build/cjs/ocm/components/hosts/use-hosts-table.js +9 -2
- package/build/cjs/ocm/components/hosts/use-hosts-table.js.map +1 -1
- package/build/cjs/ocm/services/DiskEncryptionService.js +11 -3
- package/build/cjs/ocm/services/DiskEncryptionService.js.map +1 -1
- package/lib/cim/components/ClusterDeployment/ClusterDeploymentDetailsForm.tsx +4 -2
- package/lib/cim/components/ClusterDeployment/ClusterDeploymentHostsDiscovery.tsx +8 -6
- package/lib/cim/components/ClusterDeployment/LabelsSelector.tsx +27 -14
- package/lib/cim/components/ClusterDeployment/ScaleUpForm.tsx +3 -0
- package/lib/cim/components/InfraEnv/AddHostDropdown.tsx +60 -47
- package/lib/cim/components/InfraEnv/EnvironmentDetails.tsx +7 -10
- package/lib/cim/components/InfraEnv/InfraEnvAgentTable.tsx +1 -1
- package/lib/cim/components/InfraEnv/InfraEnvOpenShiftVersionDropdown.tsx +34 -22
- package/lib/cim/components/common/CpuArchitectureDropdown.tsx +6 -3
- package/lib/cim/components/helpers/versions.ts +2 -2
- package/lib/cim/components/modals/MassApproveAction.tsx +1 -1
- package/lib/cim/components/modals/ScaleUpModal.tsx +5 -2
- package/lib/common/components/clusterConfiguration/ControlPlaneNodesDropdown.tsx +30 -17
- package/lib/common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionControlGroup.tsx +20 -5
- package/lib/common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionValues.ts +1 -0
- package/lib/common/components/clusterDetail/OperatorsProgressItem.tsx +1 -1
- package/lib/common/components/clusterWizard/clusterDetailsValidation.ts +3 -0
- package/lib/common/components/clusterWizard/types.ts +1 -0
- package/lib/common/components/hosts/DiskRole.tsx +23 -17
- package/lib/common/components/hosts/HostToolbarActions.tsx +1 -1
- package/lib/common/components/hosts/TableToolbar.tsx +54 -48
- package/lib/common/components/newFeatureSupportLevels/types.ts +1 -0
- package/lib/common/components/operators/operatorDescriptions.tsx +58 -0
- package/lib/common/components/operators/operatorSpecs.tsx +425 -257
- package/lib/common/components/ui/ClusterEventsToolbar.tsx +1 -0
- package/lib/common/components/ui/OpenShiftVersionDropdown.tsx +38 -44
- package/lib/common/components/ui/SimpleDropdown.tsx +23 -22
- package/lib/common/config/constants.ts +11 -0
- package/lib/common/config/docs_links.ts +44 -30
- package/lib/common/index.ts +1 -0
- package/lib/common/types/ui-settings.ts +1 -0
- package/lib/common/utils.ts +30 -0
- package/lib/ocm/components/clusterConfiguration/ControlPlaneNodesDropdown.tsx +46 -15
- package/lib/ocm/components/clusterConfiguration/CpuArchitectureDropdown.tsx +26 -20
- package/lib/ocm/components/clusterConfiguration/DiscoveryImageTypeDropdown.tsx +47 -46
- package/lib/ocm/components/clusterConfiguration/OcmBaseDomainField.tsx +16 -13
- package/lib/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.tsx +33 -1
- package/lib/ocm/components/clusterConfiguration/OcmOperatorProgressItem.tsx +1 -1
- package/lib/ocm/components/clusterConfiguration/OcmTNADisclaimer.tsx +23 -0
- package/lib/ocm/components/clusterConfiguration/manifestsConfiguration/components/FolderDropdown.tsx +26 -26
- package/lib/ocm/components/clusterConfiguration/networkConfiguration/SubnetsDropdown.tsx +26 -30
- package/lib/ocm/components/clusterConfiguration/operators/OperatorCheckbox.tsx +1 -1
- package/lib/ocm/components/clusterConfiguration/operators/utils.tsx +2 -1
- package/lib/ocm/components/clusterConfiguration/platformIntegration/ExternalPlatformDropdown.tsx +34 -33
- package/lib/ocm/components/clusterConfiguration/review/ReviewOperatorsTable.tsx +2 -1
- package/lib/ocm/components/clusterConfiguration/staticIp/commonValidationSchemas.tsx +4 -0
- package/lib/ocm/components/clusterDetail/ProgressBarAlerts.tsx +1 -1
- package/lib/ocm/components/clusterWizard/ClusterDetails.tsx +15 -5
- package/lib/ocm/components/clusterWizard/OperatorsBundle.tsx +15 -17
- package/lib/ocm/components/clusterWizard/OperatorsSelect.tsx +33 -27
- package/lib/ocm/components/featureSupportLevels/featureStateUtils.ts +7 -18
- package/lib/ocm/components/hosts/use-hosts-table.tsx +9 -3
- package/lib/ocm/services/DiskEncryptionService.ts +7 -1
- package/package.json +3 -3
- package/build/cjs/common/components/ui/OpenShiftVersionDropdown.css +0 -9
- package/lib/common/components/ui/OpenShiftVersionDropdown.css +0 -9
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { Cluster } from '@openshift-assisted/types/assisted-installer-service';
|
|
2
|
+
import { Cluster, SupportLevel } from '@openshift-assisted/types/assisted-installer-service';
|
|
3
3
|
import { FeatureId } from '../../types';
|
|
4
4
|
import {
|
|
5
5
|
OPERATOR_NAME_AMD_GPU,
|
|
@@ -30,6 +30,7 @@ import {
|
|
|
30
30
|
AUTHORINO_OPERATOR_LINK,
|
|
31
31
|
CNV_LINK,
|
|
32
32
|
FENCE_AGENTS_REMEDIATION_LINK,
|
|
33
|
+
getKmmDocsLink,
|
|
33
34
|
getKubeDeschedulerLink,
|
|
34
35
|
getLsoLink,
|
|
35
36
|
getLvmsDocsLink,
|
|
@@ -38,9 +39,9 @@ import {
|
|
|
38
39
|
getNodeFeatureDiscoveryLink,
|
|
39
40
|
getNvidiaGpuLink,
|
|
40
41
|
getServiceMeshLink,
|
|
41
|
-
KMM_LINK,
|
|
42
42
|
MTV_LINK,
|
|
43
43
|
NODE_HEALTHCHECK_LINK,
|
|
44
|
+
NODE_MAINTENANCE_LINK,
|
|
44
45
|
ODF_LINK,
|
|
45
46
|
ODF_REQUIREMENTS_LINK,
|
|
46
47
|
OPENSHIFT_AI_LINK,
|
|
@@ -52,8 +53,33 @@ import {
|
|
|
52
53
|
SERVERLESS_OPERATOR_LINK,
|
|
53
54
|
} from '../../config';
|
|
54
55
|
import { getMajorMinorVersion } from '../../utils';
|
|
55
|
-
import { useNewFeatureSupportLevel } from '../newFeatureSupportLevels';
|
|
56
|
+
import { GetFeatureSupportLevel, useNewFeatureSupportLevel } from '../newFeatureSupportLevels';
|
|
57
|
+
import {
|
|
58
|
+
DESCRIPTION_AMD_GPU,
|
|
59
|
+
DESCRIPTION_AUTHORINO,
|
|
60
|
+
DESCRIPTION_LSO,
|
|
61
|
+
DESCRIPTION_MTV,
|
|
62
|
+
DESCRIPTION_CNV,
|
|
63
|
+
DESCRIPTION_FENCE_AGENTS_REMEDIATION,
|
|
64
|
+
DESCRIPTION_KMM,
|
|
65
|
+
DESCRIPTION_KUBE_DESCHEDULER,
|
|
66
|
+
DESCRIPTION_MCE,
|
|
67
|
+
DESCRIPTION_NMSTATE,
|
|
68
|
+
DESCRIPTION_NODE_FEATURE_DISCOVERY,
|
|
69
|
+
DESCRIPTION_NODE_HEALTHCHECK,
|
|
70
|
+
DESCRIPTION_NODE_MAINTENANCE,
|
|
71
|
+
DESCRIPTION_NVIDIA_GPU,
|
|
72
|
+
DESCRIPTION_ODF,
|
|
73
|
+
DESCRIPTION_OPENSHIFT_AI,
|
|
74
|
+
DESCRIPTION_OSC,
|
|
75
|
+
DESCRIPTION_PIPELINES,
|
|
76
|
+
DESCRIPTION_SELF_NODE_REMEDIATION,
|
|
77
|
+
DESCRIPTION_SERVERLESS,
|
|
78
|
+
DESCRIPTION_SERVICEMESH,
|
|
79
|
+
DESCRIPTION_LVM,
|
|
80
|
+
} from './operatorDescriptions';
|
|
56
81
|
|
|
82
|
+
// TODO check if it's unused and it can be deleted in favor of "isMajorMinorVersionEqualOrGreater"
|
|
57
83
|
export const isOCPVersionEqualsOrMore = (
|
|
58
84
|
openshiftVersion: string,
|
|
59
85
|
ocpVersionToCompare: string,
|
|
@@ -67,278 +93,420 @@ export const isOCPVersionEqualsOrMore = (
|
|
|
67
93
|
};
|
|
68
94
|
|
|
69
95
|
export type OperatorSpec = {
|
|
96
|
+
operatorKey: string;
|
|
70
97
|
title: string;
|
|
71
98
|
featureId: FeatureId;
|
|
99
|
+
descriptionText?: string;
|
|
72
100
|
Description?: React.ComponentType<{ openshiftVersion?: string }>;
|
|
73
101
|
notStandalone?: boolean;
|
|
74
102
|
Requirements?: React.ComponentType<{ cluster: Cluster }>;
|
|
103
|
+
category: string;
|
|
104
|
+
supportLevel?: SupportLevel | undefined;
|
|
75
105
|
};
|
|
76
106
|
|
|
77
|
-
export const getOperatorSpecs = (
|
|
107
|
+
export const getOperatorSpecs = (
|
|
108
|
+
getFeatureSupportLevel: GetFeatureSupportLevel,
|
|
109
|
+
useLVMS?: boolean,
|
|
110
|
+
): { [category: string]: OperatorSpec[] } => {
|
|
78
111
|
return {
|
|
79
|
-
[
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
notStandalone: true,
|
|
121
|
-
},
|
|
122
|
-
[OPERATOR_NAME_CNV]: {
|
|
123
|
-
title: 'OpenShift Virtualization',
|
|
124
|
-
featureId: 'CNV',
|
|
125
|
-
Requirements: () => (
|
|
126
|
-
<>Enabled CPU virtualization support in BIOS (Intel-VT / AMD-V) on all nodes</>
|
|
127
|
-
),
|
|
128
|
-
Description: () => (
|
|
129
|
-
<>
|
|
130
|
-
Run virtual machines alongside containers on one platform.{' '}
|
|
131
|
-
<ExternalLink href={CNV_LINK}>Learn more</ExternalLink>
|
|
132
|
-
</>
|
|
133
|
-
),
|
|
134
|
-
},
|
|
135
|
-
[OPERATOR_NAME_FENCE_AGENTS_REMEDIATION]: {
|
|
136
|
-
title: 'Fence Agents Remediation',
|
|
137
|
-
featureId: 'FENCE_AGENTS_REMEDIATION',
|
|
138
|
-
Description: () => (
|
|
139
|
-
<>
|
|
140
|
-
Externally fences failed nodes using power controllers.{' '}
|
|
141
|
-
<ExternalLink href={FENCE_AGENTS_REMEDIATION_LINK}>Learn more</ExternalLink>
|
|
142
|
-
</>
|
|
143
|
-
),
|
|
144
|
-
notStandalone: true,
|
|
145
|
-
},
|
|
146
|
-
[OPERATOR_NAME_KMM]: {
|
|
147
|
-
title: 'Kernel Module Management',
|
|
148
|
-
featureId: 'KMM',
|
|
149
|
-
Description: () => (
|
|
150
|
-
<>
|
|
151
|
-
Management of kernel modules. <ExternalLink href={KMM_LINK}>Learn more</ExternalLink>
|
|
152
|
-
</>
|
|
153
|
-
),
|
|
154
|
-
},
|
|
155
|
-
[OPERATOR_NAME_KUBE_DESCHEDULER]: {
|
|
156
|
-
title: 'Kube Descheduler',
|
|
157
|
-
featureId: 'KUBE_DESCHEDULER',
|
|
158
|
-
Description: ({ openshiftVersion }) => (
|
|
159
|
-
<>
|
|
160
|
-
Evicts pods to reschedule them onto more suitable nodes.{' '}
|
|
161
|
-
<ExternalLink href={getKubeDeschedulerLink(openshiftVersion)}>Learn more</ExternalLink>
|
|
162
|
-
</>
|
|
163
|
-
),
|
|
164
|
-
notStandalone: true,
|
|
165
|
-
},
|
|
166
|
-
[OPERATOR_NAME_MCE]: {
|
|
167
|
-
title: 'Multicluster engine',
|
|
168
|
-
featureId: 'MCE',
|
|
169
|
-
Description: ({ openshiftVersion }) => (
|
|
170
|
-
<>
|
|
171
|
-
Create, import, and manage multiple clusters from this cluster.{' '}
|
|
172
|
-
<ExternalLink href={getMceDocsLink(openshiftVersion)}>Learn more</ExternalLink>
|
|
173
|
-
</>
|
|
174
|
-
),
|
|
175
|
-
},
|
|
176
|
-
[OPERATOR_NAME_NMSTATE]: {
|
|
177
|
-
title: 'NMState',
|
|
178
|
-
featureId: 'NMSTATE',
|
|
179
|
-
Description: ({ openshiftVersion }) => (
|
|
180
|
-
<>
|
|
181
|
-
Provides users with functionality to configure various network interface types, DNS, and
|
|
182
|
-
routing on cluster nodes.{' '}
|
|
183
|
-
<ExternalLink href={getNmstateLink(openshiftVersion)}>Learn more</ExternalLink>
|
|
184
|
-
</>
|
|
185
|
-
),
|
|
186
|
-
},
|
|
187
|
-
[OPERATOR_NAME_NODE_FEATURE_DISCOVERY]: {
|
|
188
|
-
title: 'Node Feature Discovery',
|
|
189
|
-
featureId: 'NODE_FEATURE_DISCOVERY',
|
|
190
|
-
Description: ({ openshiftVersion }) => (
|
|
191
|
-
<>
|
|
192
|
-
Manage the detection of hardware features and configuration by labeling nodes with
|
|
193
|
-
hardware-specific information.{' '}
|
|
194
|
-
<ExternalLink href={getNodeFeatureDiscoveryLink(openshiftVersion)}>
|
|
195
|
-
Learn more
|
|
112
|
+
[categories[Category.STORAGE]]: [
|
|
113
|
+
{
|
|
114
|
+
operatorKey: OPERATOR_NAME_LSO,
|
|
115
|
+
title: 'Local Storage Operator',
|
|
116
|
+
featureId: 'LSO',
|
|
117
|
+
descriptionText: DESCRIPTION_LSO,
|
|
118
|
+
Description: ({ openshiftVersion }) => (
|
|
119
|
+
<>
|
|
120
|
+
{DESCRIPTION_LSO}{' '}
|
|
121
|
+
<ExternalLink href={getLsoLink(openshiftVersion)}>Learn more</ExternalLink>
|
|
122
|
+
</>
|
|
123
|
+
),
|
|
124
|
+
notStandalone: true,
|
|
125
|
+
category: categories[Category.STORAGE],
|
|
126
|
+
supportLevel: getFeatureSupportLevel('LSO'),
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
operatorKey: OPERATOR_NAME_LVM,
|
|
130
|
+
title: useLVMS ? 'Logical Volume Manager Storage' : 'Logical Volume Manager',
|
|
131
|
+
featureId: 'LVM',
|
|
132
|
+
descriptionText: DESCRIPTION_LVM,
|
|
133
|
+
Description: ({ openshiftVersion }) =>
|
|
134
|
+
useLVMS ? (
|
|
135
|
+
<>
|
|
136
|
+
{DESCRIPTION_LVM}{' '}
|
|
137
|
+
<ExternalLink href={getLvmsDocsLink(openshiftVersion)}>Learn more</ExternalLink>
|
|
138
|
+
</>
|
|
139
|
+
) : (
|
|
140
|
+
<>{DESCRIPTION_LVM}</>
|
|
141
|
+
),
|
|
142
|
+
category: categories[Category.STORAGE],
|
|
143
|
+
supportLevel: getFeatureSupportLevel('LVM'),
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
operatorKey: OPERATOR_NAME_ODF,
|
|
147
|
+
title: 'OpenShift Data Foundation',
|
|
148
|
+
featureId: 'ODF',
|
|
149
|
+
descriptionText: DESCRIPTION_ODF,
|
|
150
|
+
Requirements: () => (
|
|
151
|
+
<ExternalLink href={ODF_REQUIREMENTS_LINK}>
|
|
152
|
+
Learn more about the requirements for OpenShift Data Foundation
|
|
196
153
|
</ExternalLink>
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
},
|
|
200
|
-
[OPERATOR_NAME_NODE_HEALTHCHECK]: {
|
|
201
|
-
title: 'Node Healthcheck',
|
|
202
|
-
featureId: 'NODE_HEALTHCHECK',
|
|
203
|
-
Description: () => (
|
|
204
|
-
<>
|
|
205
|
-
Identify Unhealthy Nodes.{' '}
|
|
206
|
-
<ExternalLink href={NODE_HEALTHCHECK_LINK}>Learn more</ExternalLink>
|
|
207
|
-
</>
|
|
208
|
-
),
|
|
209
|
-
notStandalone: true,
|
|
210
|
-
},
|
|
211
|
-
[OPERATOR_NAME_NODE_MAINTENANCE]: {
|
|
212
|
-
title: 'Node Maintenance',
|
|
213
|
-
featureId: 'NODE_MAINTENANCE',
|
|
214
|
-
Description: () => (
|
|
215
|
-
<>
|
|
216
|
-
Place nodes in maintenance mode.{' '}
|
|
217
|
-
<ExternalLink href={NODE_HEALTHCHECK_LINK}>Learn more</ExternalLink>
|
|
218
|
-
</>
|
|
219
|
-
),
|
|
220
|
-
notStandalone: true,
|
|
221
|
-
},
|
|
222
|
-
[OPERATOR_NAME_NVIDIA_GPU]: {
|
|
223
|
-
title: 'NVIDIA GPU',
|
|
224
|
-
featureId: 'NVIDIA_GPU',
|
|
225
|
-
Requirements: () => <>Requires at least one supported NVIDIA GPU</>,
|
|
226
|
-
Description: ({ openshiftVersion }) => (
|
|
227
|
-
<>
|
|
228
|
-
Automate the management of NVIDIA software components needed to provision and monitor
|
|
229
|
-
GPUs. <ExternalLink href={getNvidiaGpuLink(openshiftVersion)}>Learn more</ExternalLink>
|
|
230
|
-
</>
|
|
231
|
-
),
|
|
232
|
-
},
|
|
233
|
-
[OPERATOR_NAME_ODF]: {
|
|
234
|
-
title: 'OpenShift Data Foundation',
|
|
235
|
-
featureId: 'ODF',
|
|
236
|
-
Requirements: () => (
|
|
237
|
-
<ExternalLink href={ODF_REQUIREMENTS_LINK}>
|
|
238
|
-
Learn more about the requirements for OpenShift Data Foundation
|
|
239
|
-
</ExternalLink>
|
|
240
|
-
),
|
|
241
|
-
Description: () => (
|
|
242
|
-
<>
|
|
243
|
-
Persistent software-defined storage for hybrid applications.{' '}
|
|
244
|
-
<ExternalLink href={ODF_LINK}>Learn more</ExternalLink>
|
|
245
|
-
</>
|
|
246
|
-
),
|
|
247
|
-
},
|
|
248
|
-
[OPERATOR_NAME_OPENSHIFT_AI]: {
|
|
249
|
-
title: 'OpenShift AI',
|
|
250
|
-
featureId: 'OPENSHIFT_AI',
|
|
251
|
-
Requirements: () => (
|
|
252
|
-
<ExternalLink href={OPENSHIFT_AI_REQUIREMENTS_LINK}>Learn more</ExternalLink>
|
|
253
|
-
),
|
|
254
|
-
Description: () => (
|
|
255
|
-
<>
|
|
256
|
-
Train, serve, monitor and manage AI/ML models and applications.{' '}
|
|
257
|
-
<ExternalLink href={OPENSHIFT_AI_LINK}>Learn more</ExternalLink>
|
|
258
|
-
</>
|
|
259
|
-
),
|
|
260
|
-
},
|
|
261
|
-
[OPERATOR_NAME_OSC]: {
|
|
262
|
-
title: 'OpenShift sandboxed containers',
|
|
263
|
-
featureId: 'OSC',
|
|
264
|
-
Requirements: () => (
|
|
265
|
-
<ExternalLink href={OSC_REQUIREMENTS_LINK}>
|
|
266
|
-
Learn more about the requirements for OpenShift sandboxed containers
|
|
267
|
-
</ExternalLink>
|
|
268
|
-
),
|
|
269
|
-
Description: () => (
|
|
270
|
-
<>
|
|
271
|
-
OpenShift sandboxed containers support for OpenShift Container Platform provides users
|
|
272
|
-
with built-in support for running Kata Containers as an additional optional runtime. It
|
|
273
|
-
provides an additional virtualization machine(VM) isolation layer for pods.{' '}
|
|
274
|
-
<ExternalLink href={OSC_LINK}>Learn more</ExternalLink>
|
|
275
|
-
</>
|
|
276
|
-
),
|
|
277
|
-
},
|
|
278
|
-
[OPERATOR_NAME_PIPELINES]: {
|
|
279
|
-
title: 'Pipelines',
|
|
280
|
-
featureId: 'PIPELINES',
|
|
281
|
-
Description: () => (
|
|
282
|
-
<>
|
|
283
|
-
Cloud-native continuous integration and delivery (CI/CD) solution for building pipelines
|
|
284
|
-
using Tekton. <ExternalLink href={PIPELINES_OPERATOR_LINK}>Learn more</ExternalLink>
|
|
285
|
-
</>
|
|
286
|
-
),
|
|
287
|
-
notStandalone: true,
|
|
288
|
-
},
|
|
289
|
-
[OPERATOR_NAME_SELF_NODE_REMEDIATION]: {
|
|
290
|
-
title: 'Self Node Remediation',
|
|
291
|
-
featureId: 'SELF_NODE_REMEDIATION',
|
|
292
|
-
Description: () => (
|
|
293
|
-
<>
|
|
294
|
-
Allows nodes to reboot themselves when they become unhealthy.{' '}
|
|
295
|
-
<ExternalLink href={SELF_NODE_REMEDIATION_LINK}>Learn more</ExternalLink>
|
|
296
|
-
</>
|
|
297
|
-
),
|
|
298
|
-
notStandalone: true,
|
|
299
|
-
},
|
|
300
|
-
[OPERATOR_NAME_SERVERLESS]: {
|
|
301
|
-
title: 'Serverless',
|
|
302
|
-
featureId: 'SERVERLESS',
|
|
303
|
-
Description: () => (
|
|
304
|
-
<>
|
|
305
|
-
Deploy workflow applications based on the CNCF Serverless Workflow specification.{' '}
|
|
306
|
-
<ExternalLink href={SERVERLESS_OPERATOR_LINK}>Learn more</ExternalLink>
|
|
307
|
-
</>
|
|
308
|
-
),
|
|
309
|
-
notStandalone: true,
|
|
310
|
-
},
|
|
311
|
-
[OPERATOR_NAME_SERVICEMESH]: {
|
|
312
|
-
title: 'Service Mesh',
|
|
313
|
-
featureId: 'SERVICEMESH',
|
|
314
|
-
Description: ({ openshiftVersion }) => (
|
|
315
|
-
<>
|
|
316
|
-
Platform that provides behavioral insight and operational control over a service mesh.{' '}
|
|
317
|
-
<ExternalLink href={getServiceMeshLink(openshiftVersion)}>Learn more</ExternalLink>
|
|
318
|
-
</>
|
|
319
|
-
),
|
|
320
|
-
notStandalone: true,
|
|
321
|
-
},
|
|
322
|
-
[OPERATOR_NAME_LVM]: {
|
|
323
|
-
title: useLVMS ? 'Logical Volume Manager Storage' : 'Logical Volume Manager',
|
|
324
|
-
featureId: 'LVM',
|
|
325
|
-
Description: ({ openshiftVersion }) =>
|
|
326
|
-
useLVMS ? (
|
|
154
|
+
),
|
|
155
|
+
Description: () => (
|
|
327
156
|
<>
|
|
328
|
-
|
|
329
|
-
<ExternalLink href={getLvmsDocsLink(openshiftVersion)}>Learn more</ExternalLink>
|
|
157
|
+
{DESCRIPTION_ODF} <ExternalLink href={ODF_LINK}>Learn more</ExternalLink>
|
|
330
158
|
</>
|
|
331
|
-
)
|
|
159
|
+
),
|
|
160
|
+
category: categories[Category.STORAGE],
|
|
161
|
+
supportLevel: getFeatureSupportLevel('ODF'),
|
|
162
|
+
},
|
|
163
|
+
],
|
|
164
|
+
[categories[Category.VIRT]]: [
|
|
165
|
+
{
|
|
166
|
+
operatorKey: OPERATOR_NAME_CNV,
|
|
167
|
+
title: 'OpenShift Virtualization',
|
|
168
|
+
featureId: 'CNV',
|
|
169
|
+
descriptionText: DESCRIPTION_CNV,
|
|
170
|
+
Requirements: () => (
|
|
171
|
+
<>Enabled CPU virtualization support in BIOS (Intel-VT / AMD-V) on all nodes</>
|
|
172
|
+
),
|
|
173
|
+
Description: () => (
|
|
174
|
+
<>
|
|
175
|
+
{DESCRIPTION_CNV} <ExternalLink href={CNV_LINK}>Learn more</ExternalLink>
|
|
176
|
+
</>
|
|
177
|
+
),
|
|
178
|
+
category: categories[Category.VIRT],
|
|
179
|
+
supportLevel: getFeatureSupportLevel('CNV'),
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
operatorKey: OPERATOR_NAME_MTV,
|
|
183
|
+
title: 'Migration Toolkit for Virtualization',
|
|
184
|
+
featureId: 'MTV',
|
|
185
|
+
descriptionText: DESCRIPTION_MTV,
|
|
186
|
+
Description: () => (
|
|
332
187
|
<>
|
|
333
|
-
|
|
188
|
+
{DESCRIPTION_MTV} <ExternalLink href={MTV_LINK}>Learn more</ExternalLink>
|
|
334
189
|
</>
|
|
335
190
|
),
|
|
336
|
-
|
|
191
|
+
category: categories[Category.VIRT],
|
|
192
|
+
supportLevel: getFeatureSupportLevel('MTV'),
|
|
193
|
+
},
|
|
194
|
+
],
|
|
195
|
+
[categories[Category.AI]]: [
|
|
196
|
+
{
|
|
197
|
+
operatorKey: OPERATOR_NAME_OPENSHIFT_AI,
|
|
198
|
+
title: 'OpenShift AI',
|
|
199
|
+
featureId: 'OPENSHIFT_AI',
|
|
200
|
+
descriptionText: DESCRIPTION_OPENSHIFT_AI,
|
|
201
|
+
Requirements: () => (
|
|
202
|
+
<ExternalLink href={OPENSHIFT_AI_REQUIREMENTS_LINK}>Learn more</ExternalLink>
|
|
203
|
+
),
|
|
204
|
+
Description: () => (
|
|
205
|
+
<>
|
|
206
|
+
{DESCRIPTION_OPENSHIFT_AI}{' '}
|
|
207
|
+
<ExternalLink href={OPENSHIFT_AI_LINK}>Learn more</ExternalLink>
|
|
208
|
+
</>
|
|
209
|
+
),
|
|
210
|
+
category: categories[Category.AI],
|
|
211
|
+
supportLevel: getFeatureSupportLevel('OPENSHIFT_AI'),
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
operatorKey: OPERATOR_NAME_AMD_GPU,
|
|
215
|
+
title: 'AMD GPU',
|
|
216
|
+
featureId: 'AMD_GPU',
|
|
217
|
+
descriptionText: DESCRIPTION_AMD_GPU,
|
|
218
|
+
Requirements: () => <>Requires at least one supported AMD GPU</>,
|
|
219
|
+
Description: () => <>{DESCRIPTION_AMD_GPU}</>,
|
|
220
|
+
category: categories[Category.AI],
|
|
221
|
+
supportLevel: getFeatureSupportLevel('AMD_GPU'),
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
operatorKey: OPERATOR_NAME_NVIDIA_GPU,
|
|
225
|
+
title: 'NVIDIA GPU',
|
|
226
|
+
featureId: 'NVIDIA_GPU',
|
|
227
|
+
descriptionText: DESCRIPTION_NVIDIA_GPU,
|
|
228
|
+
Requirements: () => <>Requires at least one supported NVIDIA GPU</>,
|
|
229
|
+
Description: ({ openshiftVersion }) => (
|
|
230
|
+
<>
|
|
231
|
+
{DESCRIPTION_NVIDIA_GPU}
|
|
232
|
+
<ExternalLink href={getNvidiaGpuLink(openshiftVersion)}>Learn more</ExternalLink>
|
|
233
|
+
</>
|
|
234
|
+
),
|
|
235
|
+
category: categories[Category.AI],
|
|
236
|
+
supportLevel: getFeatureSupportLevel('NVIDIA_GPU'),
|
|
237
|
+
},
|
|
238
|
+
],
|
|
239
|
+
[categories[Category.NETWORK]]: [
|
|
240
|
+
{
|
|
241
|
+
operatorKey: OPERATOR_NAME_NMSTATE,
|
|
242
|
+
title: 'NMState',
|
|
243
|
+
featureId: 'NMSTATE',
|
|
244
|
+
descriptionText: DESCRIPTION_NMSTATE,
|
|
245
|
+
Description: ({ openshiftVersion }) => (
|
|
246
|
+
<>
|
|
247
|
+
{DESCRIPTION_NMSTATE}{' '}
|
|
248
|
+
<ExternalLink href={getNmstateLink(openshiftVersion)}>Learn more</ExternalLink>
|
|
249
|
+
</>
|
|
250
|
+
),
|
|
251
|
+
category: categories[Category.NETWORK],
|
|
252
|
+
supportLevel: getFeatureSupportLevel('NMSTATE'),
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
operatorKey: OPERATOR_NAME_SERVICEMESH,
|
|
256
|
+
title: 'Service Mesh',
|
|
257
|
+
featureId: 'SERVICEMESH',
|
|
258
|
+
descriptionText: DESCRIPTION_SERVICEMESH,
|
|
259
|
+
Description: ({ openshiftVersion }) => (
|
|
260
|
+
<>
|
|
261
|
+
{DESCRIPTION_SERVICEMESH}{' '}
|
|
262
|
+
<ExternalLink href={getServiceMeshLink(openshiftVersion)}>Learn more</ExternalLink>
|
|
263
|
+
</>
|
|
264
|
+
),
|
|
265
|
+
notStandalone: true,
|
|
266
|
+
category: categories[Category.NETWORK],
|
|
267
|
+
supportLevel: getFeatureSupportLevel('SERVICEMESH'),
|
|
268
|
+
},
|
|
269
|
+
],
|
|
270
|
+
[categories[Category.REMEDIATION]]: [
|
|
271
|
+
{
|
|
272
|
+
operatorKey: OPERATOR_NAME_FENCE_AGENTS_REMEDIATION,
|
|
273
|
+
title: 'Fence Agents Remediation',
|
|
274
|
+
featureId: 'FENCE_AGENTS_REMEDIATION',
|
|
275
|
+
descriptionText: DESCRIPTION_FENCE_AGENTS_REMEDIATION,
|
|
276
|
+
Description: () => (
|
|
277
|
+
<>
|
|
278
|
+
{DESCRIPTION_FENCE_AGENTS_REMEDIATION}{' '}
|
|
279
|
+
<ExternalLink href={FENCE_AGENTS_REMEDIATION_LINK}>Learn more</ExternalLink>
|
|
280
|
+
</>
|
|
281
|
+
),
|
|
282
|
+
notStandalone: true,
|
|
283
|
+
category: categories[Category.REMEDIATION],
|
|
284
|
+
supportLevel: getFeatureSupportLevel('FENCE_AGENTS_REMEDIATION'),
|
|
285
|
+
},
|
|
286
|
+
{
|
|
287
|
+
operatorKey: OPERATOR_NAME_NODE_HEALTHCHECK,
|
|
288
|
+
title: 'Node Healthcheck',
|
|
289
|
+
featureId: 'NODE_HEALTHCHECK',
|
|
290
|
+
descriptionText: DESCRIPTION_NODE_HEALTHCHECK,
|
|
291
|
+
Description: () => (
|
|
292
|
+
<>
|
|
293
|
+
{DESCRIPTION_NODE_HEALTHCHECK}{' '}
|
|
294
|
+
<ExternalLink href={NODE_HEALTHCHECK_LINK}>Learn more</ExternalLink>
|
|
295
|
+
</>
|
|
296
|
+
),
|
|
297
|
+
notStandalone: true,
|
|
298
|
+
category: categories[Category.REMEDIATION],
|
|
299
|
+
supportLevel: getFeatureSupportLevel('NODE_HEALTHCHECK'),
|
|
300
|
+
},
|
|
301
|
+
{
|
|
302
|
+
operatorKey: OPERATOR_NAME_SELF_NODE_REMEDIATION,
|
|
303
|
+
title: 'Self Node Remediation',
|
|
304
|
+
featureId: 'SELF_NODE_REMEDIATION',
|
|
305
|
+
descriptionText: DESCRIPTION_SELF_NODE_REMEDIATION,
|
|
306
|
+
Description: () => (
|
|
307
|
+
<>
|
|
308
|
+
{DESCRIPTION_SELF_NODE_REMEDIATION}{' '}
|
|
309
|
+
<ExternalLink href={SELF_NODE_REMEDIATION_LINK}>Learn more</ExternalLink>
|
|
310
|
+
</>
|
|
311
|
+
),
|
|
312
|
+
notStandalone: true,
|
|
313
|
+
category: categories[Category.REMEDIATION],
|
|
314
|
+
supportLevel: getFeatureSupportLevel('SELF_NODE_REMEDIATION'),
|
|
315
|
+
},
|
|
316
|
+
],
|
|
317
|
+
[categories[Category.OTHER]]: [
|
|
318
|
+
{
|
|
319
|
+
operatorKey: OPERATOR_NAME_AUTHORINO,
|
|
320
|
+
title: 'Authorino',
|
|
321
|
+
featureId: 'AUTHORINO',
|
|
322
|
+
descriptionText: DESCRIPTION_AUTHORINO,
|
|
323
|
+
Description: () => (
|
|
324
|
+
<>
|
|
325
|
+
{DESCRIPTION_AUTHORINO}{' '}
|
|
326
|
+
<ExternalLink href={AUTHORINO_OPERATOR_LINK}>Learn more</ExternalLink>
|
|
327
|
+
</>
|
|
328
|
+
),
|
|
329
|
+
notStandalone: true,
|
|
330
|
+
category: categories[Category.OTHER],
|
|
331
|
+
supportLevel: getFeatureSupportLevel('AUTHORINO'),
|
|
332
|
+
},
|
|
333
|
+
{
|
|
334
|
+
operatorKey: OPERATOR_NAME_NODE_FEATURE_DISCOVERY,
|
|
335
|
+
title: 'Node Feature Discovery',
|
|
336
|
+
featureId: 'NODE_FEATURE_DISCOVERY',
|
|
337
|
+
descriptionText: DESCRIPTION_NODE_FEATURE_DISCOVERY,
|
|
338
|
+
Description: ({ openshiftVersion }) => (
|
|
339
|
+
<>
|
|
340
|
+
{DESCRIPTION_NODE_FEATURE_DISCOVERY}{' '}
|
|
341
|
+
<ExternalLink href={getNodeFeatureDiscoveryLink(openshiftVersion)}>
|
|
342
|
+
Learn more
|
|
343
|
+
</ExternalLink>
|
|
344
|
+
</>
|
|
345
|
+
),
|
|
346
|
+
category: categories[Category.OTHER],
|
|
347
|
+
supportLevel: getFeatureSupportLevel('NODE_FEATURE_DISCOVERY'),
|
|
348
|
+
},
|
|
349
|
+
{
|
|
350
|
+
operatorKey: OPERATOR_NAME_PIPELINES,
|
|
351
|
+
title: 'Pipelines',
|
|
352
|
+
featureId: 'PIPELINES',
|
|
353
|
+
descriptionText: DESCRIPTION_PIPELINES,
|
|
354
|
+
Description: () => (
|
|
355
|
+
<>
|
|
356
|
+
{DESCRIPTION_PIPELINES}{' '}
|
|
357
|
+
<ExternalLink href={PIPELINES_OPERATOR_LINK}>Learn more</ExternalLink>
|
|
358
|
+
</>
|
|
359
|
+
),
|
|
360
|
+
notStandalone: true,
|
|
361
|
+
category: categories[Category.OTHER],
|
|
362
|
+
supportLevel: getFeatureSupportLevel('PIPELINES'),
|
|
363
|
+
},
|
|
364
|
+
{
|
|
365
|
+
operatorKey: OPERATOR_NAME_SERVERLESS,
|
|
366
|
+
title: 'Serverless',
|
|
367
|
+
featureId: 'SERVERLESS',
|
|
368
|
+
descriptionText: DESCRIPTION_SERVERLESS,
|
|
369
|
+
Description: () => (
|
|
370
|
+
<>
|
|
371
|
+
{DESCRIPTION_SERVERLESS}{' '}
|
|
372
|
+
<ExternalLink href={SERVERLESS_OPERATOR_LINK}>Learn more</ExternalLink>
|
|
373
|
+
</>
|
|
374
|
+
),
|
|
375
|
+
notStandalone: true,
|
|
376
|
+
category: categories[Category.OTHER],
|
|
377
|
+
supportLevel: getFeatureSupportLevel('SERVERLESS'),
|
|
378
|
+
},
|
|
379
|
+
{
|
|
380
|
+
operatorKey: OPERATOR_NAME_KMM,
|
|
381
|
+
title: 'Kernel Module Management',
|
|
382
|
+
featureId: 'KMM',
|
|
383
|
+
descriptionText: DESCRIPTION_KMM,
|
|
384
|
+
Description: ({ openshiftVersion }) => (
|
|
385
|
+
<>
|
|
386
|
+
{DESCRIPTION_KMM}{' '}
|
|
387
|
+
<ExternalLink href={getKmmDocsLink(openshiftVersion)}>Learn more</ExternalLink>
|
|
388
|
+
</>
|
|
389
|
+
),
|
|
390
|
+
category: categories[Category.OTHER],
|
|
391
|
+
supportLevel: getFeatureSupportLevel('KMM'),
|
|
392
|
+
},
|
|
393
|
+
{
|
|
394
|
+
operatorKey: OPERATOR_NAME_MCE,
|
|
395
|
+
title: 'Multicluster engine',
|
|
396
|
+
featureId: 'MCE',
|
|
397
|
+
descriptionText: DESCRIPTION_MCE,
|
|
398
|
+
Description: ({ openshiftVersion }) => (
|
|
399
|
+
<>
|
|
400
|
+
{DESCRIPTION_MCE}{' '}
|
|
401
|
+
<ExternalLink href={getMceDocsLink(openshiftVersion)}>Learn more</ExternalLink>
|
|
402
|
+
</>
|
|
403
|
+
),
|
|
404
|
+
category: categories[Category.OTHER],
|
|
405
|
+
supportLevel: getFeatureSupportLevel('MCE'),
|
|
406
|
+
},
|
|
407
|
+
{
|
|
408
|
+
operatorKey: OPERATOR_NAME_OSC,
|
|
409
|
+
title: 'OpenShift sandboxed containers',
|
|
410
|
+
featureId: 'OSC',
|
|
411
|
+
descriptionText: DESCRIPTION_OSC,
|
|
412
|
+
Requirements: () => (
|
|
413
|
+
<ExternalLink href={OSC_REQUIREMENTS_LINK}>
|
|
414
|
+
Learn more about the requirements for OpenShift sandboxed containers
|
|
415
|
+
</ExternalLink>
|
|
416
|
+
),
|
|
417
|
+
Description: () => (
|
|
418
|
+
<>
|
|
419
|
+
{DESCRIPTION_OSC} <ExternalLink href={OSC_LINK}>Learn more</ExternalLink>
|
|
420
|
+
</>
|
|
421
|
+
),
|
|
422
|
+
category: categories[Category.OTHER],
|
|
423
|
+
supportLevel: getFeatureSupportLevel('OSC'),
|
|
424
|
+
},
|
|
425
|
+
{
|
|
426
|
+
operatorKey: OPERATOR_NAME_KUBE_DESCHEDULER,
|
|
427
|
+
title: 'Kube Descheduler',
|
|
428
|
+
featureId: 'KUBE_DESCHEDULER',
|
|
429
|
+
descriptionText: DESCRIPTION_KUBE_DESCHEDULER,
|
|
430
|
+
Description: ({ openshiftVersion }) => (
|
|
431
|
+
<>
|
|
432
|
+
{DESCRIPTION_KUBE_DESCHEDULER}{' '}
|
|
433
|
+
<ExternalLink href={getKubeDeschedulerLink(openshiftVersion)}>Learn more</ExternalLink>
|
|
434
|
+
</>
|
|
435
|
+
),
|
|
436
|
+
notStandalone: true,
|
|
437
|
+
category: categories[Category.OTHER],
|
|
438
|
+
supportLevel: getFeatureSupportLevel('KUBE_DESCHEDULER'),
|
|
439
|
+
},
|
|
440
|
+
|
|
441
|
+
{
|
|
442
|
+
operatorKey: OPERATOR_NAME_NODE_MAINTENANCE,
|
|
443
|
+
title: 'Node Maintenance',
|
|
444
|
+
featureId: 'NODE_MAINTENANCE',
|
|
445
|
+
descriptionText: DESCRIPTION_NODE_MAINTENANCE,
|
|
446
|
+
Description: () => (
|
|
447
|
+
<>
|
|
448
|
+
{DESCRIPTION_NODE_MAINTENANCE}{' '}
|
|
449
|
+
<ExternalLink href={NODE_MAINTENANCE_LINK}>Learn more</ExternalLink>
|
|
450
|
+
</>
|
|
451
|
+
),
|
|
452
|
+
notStandalone: true,
|
|
453
|
+
category: categories[Category.OTHER],
|
|
454
|
+
supportLevel: getFeatureSupportLevel('NODE_MAINTENANCE'),
|
|
455
|
+
},
|
|
456
|
+
],
|
|
337
457
|
};
|
|
338
458
|
};
|
|
339
459
|
|
|
340
460
|
export const useOperatorSpecs = () => {
|
|
341
461
|
const { getFeatureSupportLevel } = useNewFeatureSupportLevel();
|
|
342
462
|
const useLVMS = getFeatureSupportLevel('LVM') === 'supported';
|
|
343
|
-
|
|
463
|
+
|
|
464
|
+
// Grouped by category
|
|
465
|
+
const byCategory = React.useMemo(
|
|
466
|
+
() => getOperatorSpecs(getFeatureSupportLevel, useLVMS),
|
|
467
|
+
[getFeatureSupportLevel, useLVMS],
|
|
468
|
+
);
|
|
469
|
+
|
|
470
|
+
// Flat map operatorKey -> spec
|
|
471
|
+
const byKey: Record<string, OperatorSpec> = React.useMemo(() => {
|
|
472
|
+
return Object.values(byCategory).reduce((acc, specs) => {
|
|
473
|
+
specs.forEach((spec) => {
|
|
474
|
+
acc[spec.operatorKey] = spec;
|
|
475
|
+
});
|
|
476
|
+
return acc;
|
|
477
|
+
}, {} as Record<string, OperatorSpec>);
|
|
478
|
+
}, [byCategory]);
|
|
479
|
+
|
|
480
|
+
return { byCategory, byKey };
|
|
481
|
+
};
|
|
482
|
+
|
|
483
|
+
export const getOperatorTitleByFeatureId = (featureId: FeatureId): string | undefined => {
|
|
484
|
+
const allSpecs = getOperatorSpecs(() => undefined);
|
|
485
|
+
|
|
486
|
+
for (const categorySpecs of Object.values(allSpecs)) {
|
|
487
|
+
const spec = categorySpecs.find((s) => s.featureId === featureId);
|
|
488
|
+
if (spec) {
|
|
489
|
+
return spec.title;
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
|
|
493
|
+
return undefined;
|
|
494
|
+
};
|
|
495
|
+
|
|
496
|
+
enum Category {
|
|
497
|
+
STORAGE,
|
|
498
|
+
VIRT,
|
|
499
|
+
AI,
|
|
500
|
+
NETWORK,
|
|
501
|
+
REMEDIATION,
|
|
502
|
+
OTHER,
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
export const categories: { [key in Category]: string } = {
|
|
506
|
+
[Category.STORAGE]: 'Storage',
|
|
507
|
+
[Category.VIRT]: 'Virtualization',
|
|
508
|
+
[Category.AI]: 'AI',
|
|
509
|
+
[Category.NETWORK]: 'Network',
|
|
510
|
+
[Category.REMEDIATION]: 'Remediation',
|
|
511
|
+
[Category.OTHER]: 'Other',
|
|
344
512
|
};
|