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;