diff --git a/libs/ui-lib/lib/common/components/operators/operatorSpecs.tsx b/libs/ui-lib/lib/common/components/operators/operatorSpecs.tsx index 5f96439986..dba3742ae1 100644 --- a/libs/ui-lib/lib/common/components/operators/operatorSpecs.tsx +++ b/libs/ui-lib/lib/common/components/operators/operatorSpecs.tsx @@ -19,6 +19,8 @@ import { OPERATOR_NAME_PIPELINES, OPERATOR_NAME_SERVERLESS, OPERATOR_NAME_SERVICEMESH, + OPERATOR_NAME_NODE_HEALTHCHECK, + OPERATOR_NAME_FENCE_AGENTS_REMEDIATION, OPERATOR_NAME_NODE_MAINTENANCE, OPERATOR_NAME_KUBE_DESCHEDULER, } from '../../config/constants'; @@ -26,6 +28,7 @@ import { ExternalLink } from '../ui'; import { AUTHORINO_OPERATOR_LINK, CNV_LINK, + FENCE_AGENTS_REMEDIATION_LINK, getKmmDocsLink, getKubeDeschedulerLink, getLsoLink, @@ -35,6 +38,7 @@ import { getNodeFeatureDiscoveryLink, getNvidiaGpuLink, MTV_LINK, + NODE_HEALTHCHECK_LINK, NODE_MAINTENANCE_LINK, ODF_LINK, ODF_REQUIREMENTS_LINK, @@ -54,11 +58,13 @@ import { DESCRIPTION_LSO, DESCRIPTION_MTV, DESCRIPTION_CNV, + DESCRIPTION_FENCE_AGENTS_REMEDIATION, DESCRIPTION_KMM, DESCRIPTION_KUBE_DESCHEDULER, DESCRIPTION_MCE, DESCRIPTION_NMSTATE, DESCRIPTION_NODE_FEATURE_DISCOVERY, + DESCRIPTION_NODE_HEALTHCHECK, DESCRIPTION_NODE_MAINTENANCE, DESCRIPTION_NVIDIA_GPU, DESCRIPTION_ODF, @@ -297,6 +303,36 @@ export const getOperatorSpecs = ( supportLevel: getFeatureSupportLevel('SERVICEMESH'), }, ], + [categories[Category.REMEDIATION]]: [ + { + operatorKey: OPERATOR_NAME_NODE_HEALTHCHECK, + title: 'Node Healthcheck', + featureId: 'NODE_HEALTHCHECK', + descriptionText: DESCRIPTION_NODE_HEALTHCHECK, + Description: ({ searchTerm }) => ( + <> + {' '} + Learn more + + ), + notStandalone: true, + supportLevel: getFeatureSupportLevel('NODE_HEALTHCHECK'), + }, + { + operatorKey: OPERATOR_NAME_FENCE_AGENTS_REMEDIATION, + title: 'Fence Agents Remediation', + featureId: 'FENCE_AGENTS_REMEDIATION', + descriptionText: DESCRIPTION_FENCE_AGENTS_REMEDIATION, + Description: ({ searchTerm }) => ( + <> + {' '} + Learn more + + ), + notStandalone: true, + supportLevel: getFeatureSupportLevel('FENCE_AGENTS_REMEDIATION'), + }, + ], [categories[Category.SECURITY]]: [ { operatorKey: OPERATOR_NAME_AUTHORINO, @@ -464,6 +500,8 @@ enum Category { PLATFORM, SECURITY, SCHEDULING, + REMEDIATION, + OTHER, } export const categories: { [key in Category]: string } = { @@ -475,4 +513,6 @@ export const categories: { [key in Category]: string } = { [Category.CI_CD]: 'CI/CD & Dev Productivity', [Category.PLATFORM]: 'Platform Operations & Lifecycle', [Category.SCHEDULING]: 'Scheduling', + [Category.REMEDIATION]: 'Remediation', + [Category.OTHER]: 'Other', }; diff --git a/libs/ui-lib/lib/ocm/services/OperatorsService.tsx b/libs/ui-lib/lib/ocm/services/OperatorsService.tsx index 247f1bdbef..e3b0c758fb 100644 --- a/libs/ui-lib/lib/ocm/services/OperatorsService.tsx +++ b/libs/ui-lib/lib/ocm/services/OperatorsService.tsx @@ -1,25 +1,9 @@ import OperatorsAPI from '../../common/api/assisted-service/OperatorsAPI'; -import { getOperatorSpecs } from '../../common/components/operators/operatorSpecs'; - -const getAllKnownOperatorKeys = (): Set => { - const allSpecsByCategory = getOperatorSpecs(() => undefined); - - const allKeys = Object.values(allSpecsByCategory) - .flat() - .map((spec) => spec.operatorKey); - - return new Set(allKeys); -}; const OperatorsService = { getSupportedOperators: async (): Promise => { - const knownOperatorKeys = getAllKnownOperatorKeys(); - const { data: operatorsFromAPI } = await OperatorsAPI.list(); - const filteredOperators = operatorsFromAPI.filter((operatorName) => - knownOperatorKeys.has(operatorName), - ); - - return filteredOperators; + const { data: operators } = await OperatorsAPI.list(); + return operators; }, }; export default OperatorsService;