@openshift-assisted/ui-lib 2.37.3 → 2.38.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/ClusterDetailsFormFields.d.ts.map +1 -1
- package/build/@types/cim/components/ClusterDeployment/wizardTransition.d.ts +1 -1
- package/build/@types/cim/components/ClusterDeployment/wizardTransition.d.ts.map +1 -1
- package/build/@types/cim/components/common/constants.d.ts.map +1 -1
- package/build/@types/cim/components/helpers/toAssisted.d.ts.map +1 -1
- package/build/@types/cim/components/modals/AddHostModal.d.ts.map +1 -1
- package/build/@types/cim/types/k8s/infra-env-k8s-resource.d.ts +1 -0
- package/build/@types/cim/types/k8s/infra-env-k8s-resource.d.ts.map +1 -1
- package/build/@types/common/api/assisted-service/BundleAPI.d.ts +8 -0
- package/build/@types/common/api/assisted-service/BundleAPI.d.ts.map +1 -0
- package/build/@types/common/api/assisted-service/OperatorsAPI.d.ts +6 -0
- package/build/@types/common/api/assisted-service/OperatorsAPI.d.ts.map +1 -0
- package/build/@types/common/components/clusterConfiguration/ControlPlaneNodesDropdown.d.ts +7 -0
- package/build/@types/common/components/clusterConfiguration/ControlPlaneNodesDropdown.d.ts.map +1 -0
- package/build/@types/common/components/clusterConfiguration/DiscoveryImageConfigForm.d.ts.map +1 -1
- package/build/@types/common/components/clusterWizard/types.d.ts +3 -1
- package/build/@types/common/components/clusterWizard/types.d.ts.map +1 -1
- package/build/@types/common/components/hosts/HostRowDetail.d.ts.map +1 -1
- package/build/@types/common/components/storage/DisksTable.d.ts.map +1 -1
- package/build/@types/common/config/constants.d.ts +5 -0
- package/build/@types/common/config/constants.d.ts.map +1 -1
- package/build/@types/common/config/docs_links.d.ts +9 -1
- package/build/@types/common/config/docs_links.d.ts.map +1 -1
- package/build/@types/common/selectors/clusterSelectors.d.ts +1 -0
- package/build/@types/common/selectors/clusterSelectors.d.ts.map +1 -1
- package/build/@types/common/types/clusters.d.ts +8 -0
- package/build/@types/common/types/clusters.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/ocm/components/SentryErrorMonitorContextProvider.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/ControlPlaneNodesDropdown.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/operators/AuthorinoCheckbox.d.ts +8 -0
- package/build/@types/ocm/components/clusterConfiguration/operators/AuthorinoCheckbox.d.ts.map +1 -0
- package/build/@types/ocm/components/clusterConfiguration/operators/CnvCheckbox.d.ts +4 -1
- package/build/@types/ocm/components/clusterConfiguration/operators/CnvCheckbox.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/operators/LsoCheckbox.d.ts +8 -0
- package/build/@types/ocm/components/clusterConfiguration/operators/LsoCheckbox.d.ts.map +1 -0
- package/build/@types/ocm/components/clusterConfiguration/operators/LvmCheckbox.d.ts +4 -1
- package/build/@types/ocm/components/clusterConfiguration/operators/LvmCheckbox.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/operators/MceCheckbox.d.ts +4 -1
- package/build/@types/ocm/components/clusterConfiguration/operators/MceCheckbox.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/operators/MtvOperatorCheckbox.d.ts +4 -1
- package/build/@types/ocm/components/clusterConfiguration/operators/MtvOperatorCheckbox.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/operators/NmstateCheckbox.d.ts +10 -0
- package/build/@types/ocm/components/clusterConfiguration/operators/NmstateCheckbox.d.ts.map +1 -0
- package/build/@types/ocm/components/clusterConfiguration/operators/NmstateRequirements.d.ts +7 -0
- package/build/@types/ocm/components/clusterConfiguration/operators/NmstateRequirements.d.ts.map +1 -0
- package/build/@types/ocm/components/clusterConfiguration/operators/NodeFeatureDiscoveryCheckbox.d.ts +8 -0
- package/build/@types/ocm/components/clusterConfiguration/operators/NodeFeatureDiscoveryCheckbox.d.ts.map +1 -0
- package/build/@types/ocm/components/clusterConfiguration/operators/NvidiaGpuCheckbox.d.ts +8 -0
- package/build/@types/ocm/components/clusterConfiguration/operators/NvidiaGpuCheckbox.d.ts.map +1 -0
- package/build/@types/ocm/components/clusterConfiguration/operators/OdfCheckbox.d.ts +5 -1
- package/build/@types/ocm/components/clusterConfiguration/operators/OdfCheckbox.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/operators/OpenShiftAICheckbox.d.ts +5 -1
- package/build/@types/ocm/components/clusterConfiguration/operators/OpenShiftAICheckbox.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/operators/OpenShiftAIRequirements.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/operators/OpenshiftAINvidiaRequirements.d.ts +4 -0
- package/build/@types/ocm/components/clusterConfiguration/operators/OpenshiftAINvidiaRequirements.d.ts.map +1 -0
- package/build/@types/ocm/components/clusterConfiguration/operators/OscCheckbox.d.ts +5 -1
- package/build/@types/ocm/components/clusterConfiguration/operators/OscCheckbox.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/operators/PipelinesChekbox.d.ts +8 -0
- package/build/@types/ocm/components/clusterConfiguration/operators/PipelinesChekbox.d.ts.map +1 -0
- package/build/@types/ocm/components/clusterConfiguration/operators/ServerlessCheckbox.d.ts +8 -0
- package/build/@types/ocm/components/clusterConfiguration/operators/ServerlessCheckbox.d.ts.map +1 -0
- package/build/@types/ocm/components/clusterConfiguration/operators/ServicemeshCheckbox.d.ts +8 -0
- package/build/@types/ocm/components/clusterConfiguration/operators/ServicemeshCheckbox.d.ts.map +1 -0
- package/build/@types/ocm/components/clusterConfiguration/operators/SupportedOperators.d.ts +24 -0
- package/build/@types/ocm/components/clusterConfiguration/operators/SupportedOperators.d.ts.map +1 -0
- package/build/@types/ocm/components/clusterConfiguration/operators/VirtualizationRequirements.d.ts +4 -0
- package/build/@types/ocm/components/clusterConfiguration/operators/VirtualizationRequirements.d.ts.map +1 -0
- package/build/@types/ocm/components/clusterWizard/ClusterDetails.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterWizard/Operators.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterWizard/OperatorsStep.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterWizard/wizardTransition.d.ts +1 -1
- package/build/@types/ocm/components/clusterWizard/wizardTransition.d.ts.map +1 -1
- package/build/@types/ocm/components/featureSupportLevels/featureStateUtils.d.ts.map +1 -1
- package/build/@types/ocm/config/constants.d.ts +2 -0
- package/build/@types/ocm/config/constants.d.ts.map +1 -1
- package/build/@types/ocm/sentry.d.ts +2 -2
- package/build/@types/ocm/sentry.d.ts.map +1 -1
- package/build/@types/ocm/services/BundleService.d.ts +6 -0
- package/build/@types/ocm/services/BundleService.d.ts.map +1 -0
- package/build/@types/ocm/services/ClustersService.d.ts +1 -0
- package/build/@types/ocm/services/ClustersService.d.ts.map +1 -1
- package/build/@types/ocm/services/OperatorsService.d.ts +1 -0
- package/build/@types/ocm/services/OperatorsService.d.ts.map +1 -1
- package/build/@types/ocm/store/slices/current-cluster/slice.d.ts +1 -0
- package/build/@types/ocm/store/slices/current-cluster/slice.d.ts.map +1 -1
- package/build/cjs/cim/components/ClusterDeployment/ClusterDetailsFormFields.js +4 -5
- package/build/cjs/cim/components/ClusterDeployment/ClusterDetailsFormFields.js.map +1 -1
- package/build/cjs/cim/components/InfraEnv/OpenshiftVersionDropdown.js +1 -1
- package/build/cjs/cim/components/InfraEnv/OpenshiftVersionDropdown.js.map +1 -1
- package/build/cjs/cim/components/common/constants.js +1 -1
- package/build/cjs/cim/components/common/constants.js.map +1 -1
- package/build/cjs/cim/components/helpers/toAssisted.js +2 -1
- package/build/cjs/cim/components/helpers/toAssisted.js.map +1 -1
- package/build/cjs/cim/components/modals/AddHostModal.js +4 -5
- package/build/cjs/cim/components/modals/AddHostModal.js.map +1 -1
- package/build/cjs/common/api/assisted-service/BundleAPI.js +16 -0
- package/build/cjs/common/api/assisted-service/BundleAPI.js.map +1 -0
- package/build/cjs/common/api/assisted-service/OperatorsAPI.js +13 -0
- package/build/cjs/common/api/assisted-service/OperatorsAPI.js.map +1 -0
- package/build/cjs/common/components/clusterConfiguration/ControlPlaneNodesDropdown.js +41 -0
- package/build/cjs/common/components/clusterConfiguration/ControlPlaneNodesDropdown.js.map +1 -0
- package/build/cjs/common/components/clusterConfiguration/DiscoveryImageConfigForm.js +4 -5
- package/build/cjs/common/components/clusterConfiguration/DiscoveryImageConfigForm.js.map +1 -1
- package/build/cjs/common/components/clusterConfiguration/DiscoveryImageTypeControlGroup.js +5 -5
- package/build/cjs/common/components/clusterConfiguration/DiscoveryImageTypeControlGroup.js.map +1 -1
- package/build/cjs/common/components/clusterWizard/clusterDetailsValidation.js +2 -2
- package/build/cjs/common/components/clusterWizard/clusterDetailsValidation.js.map +1 -1
- package/build/cjs/common/components/hosts/AITableMemo.js +16 -13
- package/build/cjs/common/components/hosts/AITableMemo.js.map +1 -1
- package/build/cjs/common/components/hosts/HostRowDetail.js +35 -1
- package/build/cjs/common/components/hosts/HostRowDetail.js.map +1 -1
- package/build/cjs/common/components/storage/DisksTable.js +16 -10
- package/build/cjs/common/components/storage/DisksTable.js.map +1 -1
- package/build/cjs/common/config/constants.js +11 -1
- package/build/cjs/common/config/constants.js.map +1 -1
- package/build/cjs/common/config/docs_links.js +10 -2
- package/build/cjs/common/config/docs_links.js.map +1 -1
- package/build/cjs/common/selectors/clusterSelectors.js +7 -1
- package/build/cjs/common/selectors/clusterSelectors.js.map +1 -1
- package/build/cjs/common/types/clusters.js.map +1 -1
- package/build/cjs/ocm/components/SentryErrorMonitorContextProvider.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/ControlPlaneNodesDropdown.js +10 -9
- package/build/cjs/ocm/components/clusterConfiguration/ControlPlaneNodesDropdown.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.js +2 -2
- package/build/cjs/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/operators/AuthorinoCheckbox.js +34 -0
- package/build/cjs/ocm/components/clusterConfiguration/operators/AuthorinoCheckbox.js.map +1 -0
- package/build/cjs/ocm/components/clusterConfiguration/operators/CnvCheckbox.js +8 -20
- package/build/cjs/ocm/components/clusterConfiguration/operators/CnvCheckbox.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/operators/LsoCheckbox.js +34 -0
- package/build/cjs/ocm/components/clusterConfiguration/operators/LsoCheckbox.js.map +1 -0
- package/build/cjs/ocm/components/clusterConfiguration/operators/LvmCheckbox.js +5 -21
- package/build/cjs/ocm/components/clusterConfiguration/operators/LvmCheckbox.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/operators/MceCheckbox.js +6 -7
- package/build/cjs/ocm/components/clusterConfiguration/operators/MceCheckbox.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/operators/MtvOperatorCheckbox.js +8 -13
- package/build/cjs/ocm/components/clusterConfiguration/operators/MtvOperatorCheckbox.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/operators/NmstateCheckbox.js +35 -0
- package/build/cjs/ocm/components/clusterConfiguration/operators/NmstateCheckbox.js.map +1 -0
- package/build/cjs/ocm/components/clusterConfiguration/operators/NmstateRequirements.js +48 -0
- package/build/cjs/ocm/components/clusterConfiguration/operators/NmstateRequirements.js.map +1 -0
- package/build/cjs/ocm/components/clusterConfiguration/operators/NodeFeatureDiscoveryCheckbox.js +34 -0
- package/build/cjs/ocm/components/clusterConfiguration/operators/NodeFeatureDiscoveryCheckbox.js.map +1 -0
- package/build/cjs/ocm/components/clusterConfiguration/operators/NvidiaGpuCheckbox.js +34 -0
- package/build/cjs/ocm/components/clusterConfiguration/operators/NvidiaGpuCheckbox.js.map +1 -0
- package/build/cjs/ocm/components/clusterConfiguration/operators/OdfCheckbox.js +11 -17
- package/build/cjs/ocm/components/clusterConfiguration/operators/OdfCheckbox.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/operators/OpenShiftAICheckbox.js +4 -17
- package/build/cjs/ocm/components/clusterConfiguration/operators/OpenShiftAICheckbox.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/operators/OpenShiftAIRequirements.js +1 -12
- package/build/cjs/ocm/components/clusterConfiguration/operators/OpenShiftAIRequirements.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/operators/OpenshiftAINvidiaRequirements.js +30 -0
- package/build/cjs/ocm/components/clusterConfiguration/operators/OpenshiftAINvidiaRequirements.js.map +1 -0
- package/build/cjs/ocm/components/clusterConfiguration/operators/OscCheckbox.js +3 -12
- package/build/cjs/ocm/components/clusterConfiguration/operators/OscCheckbox.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/operators/PipelinesChekbox.js +34 -0
- package/build/cjs/ocm/components/clusterConfiguration/operators/PipelinesChekbox.js.map +1 -0
- package/build/cjs/ocm/components/clusterConfiguration/operators/ServerlessCheckbox.js +34 -0
- package/build/cjs/ocm/components/clusterConfiguration/operators/ServerlessCheckbox.js.map +1 -0
- package/build/cjs/ocm/components/clusterConfiguration/operators/ServicemeshCheckbox.js +34 -0
- package/build/cjs/ocm/components/clusterConfiguration/operators/ServicemeshCheckbox.js.map +1 -0
- package/build/cjs/ocm/components/clusterConfiguration/operators/SupportedOperators.js +73 -0
- package/build/cjs/ocm/components/clusterConfiguration/operators/SupportedOperators.js.map +1 -0
- package/build/cjs/ocm/components/clusterConfiguration/operators/VirtualizationRequirements.js +19 -0
- package/build/cjs/ocm/components/clusterConfiguration/operators/VirtualizationRequirements.js.map +1 -0
- package/build/cjs/ocm/components/clusterConfiguration/staticIp/components/FormViewHosts/FormViewHostsFields.js +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/staticIp/components/FormViewHosts/FormViewHostsFields.js.map +1 -1
- package/build/cjs/ocm/components/clusterWizard/ClusterDetails.js +4 -0
- package/build/cjs/ocm/components/clusterWizard/ClusterDetails.js.map +1 -1
- package/build/cjs/ocm/components/clusterWizard/Operators.js +9 -1
- package/build/cjs/ocm/components/clusterWizard/Operators.js.map +1 -1
- package/build/cjs/ocm/components/clusterWizard/OperatorsStep.js +239 -22
- package/build/cjs/ocm/components/clusterWizard/OperatorsStep.js.map +1 -1
- package/build/cjs/ocm/components/clusterWizard/wizardTransition.js +1 -1
- package/build/cjs/ocm/components/clusterWizard/wizardTransition.js.map +1 -1
- package/build/cjs/ocm/components/featureSupportLevels/featureStateUtils.js +41 -1
- package/build/cjs/ocm/components/featureSupportLevels/featureStateUtils.js.map +1 -1
- package/build/cjs/ocm/config/constants.js +155 -1
- package/build/cjs/ocm/config/constants.js.map +1 -1
- package/build/cjs/ocm/sentry.js +1 -1
- package/build/cjs/ocm/sentry.js.map +1 -1
- package/build/cjs/ocm/services/BundleService.js +20 -0
- package/build/cjs/ocm/services/BundleService.js.map +1 -0
- package/build/cjs/ocm/services/ClustersService.js +26 -0
- package/build/cjs/ocm/services/ClustersService.js.map +1 -1
- package/build/cjs/ocm/services/OperatorsService.js +16 -8
- package/build/cjs/ocm/services/OperatorsService.js.map +1 -1
- package/lib/cim/components/ClusterDeployment/ClusterDetailsFormFields.tsx +4 -6
- package/lib/cim/components/InfraEnv/OpenshiftVersionDropdown.tsx +1 -1
- package/lib/cim/components/common/constants.ts +1 -2
- package/lib/cim/components/helpers/toAssisted.ts +1 -0
- package/lib/cim/components/modals/AddHostModal.tsx +4 -5
- package/lib/cim/types/k8s/infra-env-k8s-resource.ts +1 -0
- package/lib/common/api/assisted-service/BundleAPI.ts +18 -0
- package/lib/common/api/assisted-service/OperatorsAPI.ts +13 -0
- package/lib/common/components/clusterConfiguration/ControlPlaneNodesDropdown.tsx +93 -0
- package/lib/common/components/clusterConfiguration/DiscoveryImageConfigForm.tsx +10 -12
- package/lib/common/components/clusterConfiguration/DiscoveryImageTypeControlGroup.tsx +9 -9
- package/lib/common/components/clusterWizard/clusterDetailsValidation.ts +1 -1
- package/lib/common/components/clusterWizard/types.ts +4 -2
- package/lib/common/components/hosts/AITableMemo.tsx +1 -1
- package/lib/common/components/hosts/HostRowDetail.tsx +71 -1
- package/lib/common/components/storage/DisksTable.tsx +25 -18
- package/lib/common/config/constants.ts +10 -0
- package/lib/common/config/docs_links.ts +24 -1
- package/lib/common/selectors/clusterSelectors.ts +8 -0
- package/lib/common/types/clusters.ts +8 -0
- package/lib/common/types/ui-settings.ts +1 -0
- package/lib/ocm/components/SentryErrorMonitorContextProvider.tsx +1 -2
- package/lib/ocm/components/clusterConfiguration/ControlPlaneNodesDropdown.tsx +13 -12
- package/lib/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.tsx +2 -2
- package/lib/ocm/components/clusterConfiguration/operators/AuthorinoCheckbox.tsx +67 -0
- package/lib/ocm/components/clusterConfiguration/operators/CnvCheckbox.tsx +12 -25
- package/lib/ocm/components/clusterConfiguration/operators/LsoCheckbox.tsx +67 -0
- package/lib/ocm/components/clusterConfiguration/operators/LvmCheckbox.tsx +8 -26
- package/lib/ocm/components/clusterConfiguration/operators/MceCheckbox.tsx +10 -3
- package/lib/ocm/components/clusterConfiguration/operators/MtvOperatorCheckbox.tsx +23 -12
- package/lib/ocm/components/clusterConfiguration/operators/NmstateCheckbox.tsx +85 -0
- package/lib/ocm/components/clusterConfiguration/operators/NmstateRequirements.tsx +53 -0
- package/lib/ocm/components/clusterConfiguration/operators/NodeFeatureDiscoveryCheckbox.tsx +70 -0
- package/lib/ocm/components/clusterConfiguration/operators/NvidiaGpuCheckbox.tsx +67 -0
- package/lib/ocm/components/clusterConfiguration/operators/OdfCheckbox.tsx +24 -18
- package/lib/ocm/components/clusterConfiguration/operators/OpenShiftAICheckbox.tsx +11 -24
- package/lib/ocm/components/clusterConfiguration/operators/OpenShiftAIRequirements.tsx +0 -14
- package/lib/ocm/components/clusterConfiguration/operators/OpenshiftAINvidiaRequirements.tsx +36 -0
- package/lib/ocm/components/clusterConfiguration/operators/OscCheckbox.tsx +10 -25
- package/lib/ocm/components/clusterConfiguration/operators/PipelinesChekbox.tsx +68 -0
- package/lib/ocm/components/clusterConfiguration/operators/ServerlessCheckbox.tsx +67 -0
- package/lib/ocm/components/clusterConfiguration/operators/ServicemeshCheckbox.tsx +67 -0
- package/lib/ocm/components/clusterConfiguration/operators/SupportedOperators.tsx +105 -0
- package/lib/ocm/components/clusterConfiguration/operators/VirtualizationRequirements.tsx +26 -0
- package/lib/ocm/components/clusterConfiguration/staticIp/components/FormViewHosts/FormViewHostsFields.tsx +1 -1
- package/lib/ocm/components/clusterWizard/ClusterDetails.tsx +4 -0
- package/lib/ocm/components/clusterWizard/Operators.tsx +21 -1
- package/lib/ocm/components/clusterWizard/OperatorsStep.tsx +419 -38
- package/lib/ocm/components/clusterWizard/wizardTransition.ts +1 -1
- package/lib/ocm/components/featureSupportLevels/featureStateUtils.ts +41 -1
- package/lib/ocm/config/constants.ts +156 -0
- package/lib/ocm/sentry.ts +2 -1
- package/lib/ocm/services/BundleService.ts +14 -0
- package/lib/ocm/services/ClustersService.ts +28 -0
- package/lib/ocm/services/OperatorsService.tsx +21 -10
- package/package.json +3 -3
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const BundleAPI_1 = tslib_1.__importDefault(require("../../common/api/assisted-service/BundleAPI"));
|
|
5
|
+
const BundleService = {
|
|
6
|
+
listBundles() {
|
|
7
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
8
|
+
const { data: bundles } = yield BundleAPI_1.default.list();
|
|
9
|
+
return bundles;
|
|
10
|
+
});
|
|
11
|
+
},
|
|
12
|
+
listOperatorsByBundle(bundleName) {
|
|
13
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
14
|
+
const { data } = yield BundleAPI_1.default.listOperatorsForBundle(bundleName);
|
|
15
|
+
return data;
|
|
16
|
+
});
|
|
17
|
+
},
|
|
18
|
+
};
|
|
19
|
+
exports.default = BundleService;
|
|
20
|
+
//# sourceMappingURL=BundleService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BundleService.js","sourceRoot":"","sources":["../../../../lib/ocm/services/BundleService.ts"],"names":[],"mappings":";;;AAAA,oGAAoE;AAEpE,MAAM,aAAa,GAAG;IACd,WAAW;;YACf,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,mBAAS,CAAC,IAAI,EAAE,CAAC;YACjD,OAAO,OAAO,CAAC;QACjB,CAAC;KAAA;IACK,qBAAqB,CAAC,UAAkB;;YAC5C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,mBAAS,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;YACpE,OAAO,IAAI,CAAC;QACd,CAAC;KAAA;CACF,CAAC;AAEF,kBAAe,aAAa,CAAC"}
|
|
@@ -7,6 +7,8 @@ const HostsService_1 = tslib_1.__importDefault(require("./HostsService"));
|
|
|
7
7
|
const InfraEnvsService_1 = tslib_1.__importDefault(require("./InfraEnvsService"));
|
|
8
8
|
const constants_1 = require("../../common/config/constants");
|
|
9
9
|
const axiosClient_1 = require("../../common/api/axiosClient");
|
|
10
|
+
const config_1 = require("../config");
|
|
11
|
+
const js_yaml_1 = tslib_1.__importDefault(require("js-yaml"));
|
|
10
12
|
const ClustersService = {
|
|
11
13
|
findHost(hosts = [], hostId) {
|
|
12
14
|
return hosts.find((host) => host.id === hostId);
|
|
@@ -126,6 +128,30 @@ const ClustersService = {
|
|
|
126
128
|
updateCustomManifest(existingManifest, updatedManifest, clusterId) {
|
|
127
129
|
return ClustersAPI_1.default.updateCustomManifest(clusterId, this.getUpdateManifestParams(existingManifest, updatedManifest));
|
|
128
130
|
},
|
|
131
|
+
//TO-DO: Assisted-Migration. Provisional code. Needs to be removed when MTV integration be finished
|
|
132
|
+
createClusterManifestsForAssistedMigration(clusterId) {
|
|
133
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
134
|
+
const manifests = [];
|
|
135
|
+
const parsedYaml1 = js_yaml_1.default.dump(config_1.yamlContentAssistedMigration1);
|
|
136
|
+
manifests.push({
|
|
137
|
+
folder: 'openshift',
|
|
138
|
+
filename: '0gitops.yaml',
|
|
139
|
+
manifestYaml: parsedYaml1,
|
|
140
|
+
created: true,
|
|
141
|
+
});
|
|
142
|
+
const parsedYaml2 = js_yaml_1.default.dump(config_1.yamlContentAssistedMigration2);
|
|
143
|
+
manifests.push({
|
|
144
|
+
folder: 'openshift',
|
|
145
|
+
filename: '1rolebindings.yaml',
|
|
146
|
+
manifestYaml: parsedYaml2,
|
|
147
|
+
created: true,
|
|
148
|
+
});
|
|
149
|
+
const promises = manifests.map((manifest) => {
|
|
150
|
+
return ClustersAPI_1.default.createCustomManifest(clusterId, this.transformFormViewManifest(manifest));
|
|
151
|
+
});
|
|
152
|
+
return Promise.all(promises);
|
|
153
|
+
});
|
|
154
|
+
},
|
|
129
155
|
};
|
|
130
156
|
exports.default = ClustersService;
|
|
131
157
|
//# sourceMappingURL=ClustersService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClustersService.js","sourceRoot":"","sources":["../../../../lib/ocm/services/ClustersService.ts"],"names":[],"mappings":";;;AAYA,wEAAqC;AACrC,wGAAwE;AACxE,0EAA0C;AAC1C,kFAAkD;AAClD,6DAIuC;AACvC,8DAAuD;
|
|
1
|
+
{"version":3,"file":"ClustersService.js","sourceRoot":"","sources":["../../../../lib/ocm/services/ClustersService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
3
4
|
const common_1 = require("../../common");
|
|
4
5
|
const utils_1 = require("../components/clusters/utils");
|
|
5
|
-
const
|
|
6
|
-
const hasActiveOperators = (values) => {
|
|
7
|
-
return (0, utils_2.getKeys)(values).some((operatorParam) => values[operatorParam]);
|
|
8
|
-
};
|
|
6
|
+
const OperatorsAPI_1 = tslib_1.__importDefault(require("../../common/api/assisted-service/OperatorsAPI"));
|
|
9
7
|
const OperatorsService = {
|
|
10
8
|
getOLMOperators(values, cluster) {
|
|
11
9
|
const enabledOlmOperatorsByName = (0, utils_1.getOlmOperatorCreateParamsByName)(cluster);
|
|
@@ -25,10 +23,14 @@ const OperatorsService = {
|
|
|
25
23
|
setOperator(common_1.OPERATOR_NAME_MTV, values.useMigrationToolkitforVirtualization);
|
|
26
24
|
setOperator(common_1.OPERATOR_NAME_OPENSHIFT_AI, values.useOpenShiftAI);
|
|
27
25
|
setOperator(common_1.OPERATOR_NAME_OSC, values.useOsc);
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
26
|
+
setOperator(common_1.OPERATOR_NAME_NODE_FEATURE_DISCOVERY, values.useNodeFeatureDiscovery);
|
|
27
|
+
setOperator(common_1.OPERATOR_NAME_NMSTATE, values.useNmstate);
|
|
28
|
+
setOperator(common_1.OPERATOR_NAME_LSO, values.useLso);
|
|
29
|
+
setOperator(common_1.OPERATOR_NAME_SERVERLESS, values.useServerless);
|
|
30
|
+
setOperator(common_1.OPERATOR_NAME_AUTHORINO, values.useAuthorino);
|
|
31
|
+
setOperator(common_1.OPERATOR_NAME_PIPELINES, values.usePipelines);
|
|
32
|
+
setOperator(common_1.OPERATOR_NAME_SERVICEMESH, values.useServicemesh);
|
|
33
|
+
setOperator(common_1.OPERATOR_NAME_NVIDIA_GPU, values.useNvidiaGpu);
|
|
32
34
|
return Object.values(enabledOlmOperatorsByName);
|
|
33
35
|
},
|
|
34
36
|
/**
|
|
@@ -52,6 +54,12 @@ const OperatorsService = {
|
|
|
52
54
|
}
|
|
53
55
|
return updates;
|
|
54
56
|
},
|
|
57
|
+
getSupportedOperators() {
|
|
58
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
59
|
+
const { data: operators } = yield OperatorsAPI_1.default.list();
|
|
60
|
+
return operators;
|
|
61
|
+
});
|
|
62
|
+
},
|
|
55
63
|
};
|
|
56
64
|
exports.default = OperatorsService;
|
|
57
65
|
//# sourceMappingURL=OperatorsService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OperatorsService.js","sourceRoot":"","sources":["../../../../lib/ocm/services/OperatorsService.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"OperatorsService.js","sourceRoot":"","sources":["../../../../lib/ocm/services/OperatorsService.tsx"],"names":[],"mappings":"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"}
|
|
@@ -14,8 +14,8 @@ import {
|
|
|
14
14
|
import { ClusterDetailsValues } from '../../../common/components/clusterWizard/types';
|
|
15
15
|
import { useTranslation } from '../../../common/hooks/use-translation-wrapper';
|
|
16
16
|
import CpuArchitectureDropdown from '../common/CpuArchitectureDropdown';
|
|
17
|
-
import { SNOControlGroup } from '../../../common';
|
|
18
17
|
import { getNetworkType } from '../helpers';
|
|
18
|
+
import ControlPlaneNodesDropdown from '../../../common/components/clusterConfiguration/ControlPlaneNodesDropdown';
|
|
19
19
|
export type ClusterDetailsFormFieldsProps = {
|
|
20
20
|
isEditFlow: boolean;
|
|
21
21
|
forceOpenshiftVersion?: string;
|
|
@@ -52,7 +52,7 @@ export const ClusterDetailsFormFields: React.FC<ClusterDetailsFormFieldsProps> =
|
|
|
52
52
|
cpuArchitectures,
|
|
53
53
|
}) => {
|
|
54
54
|
const { values, setFieldValue } = useFormikContext<ClusterDetailsValues>();
|
|
55
|
-
const { name, baseDnsDomain
|
|
55
|
+
const { name, baseDnsDomain } = values;
|
|
56
56
|
|
|
57
57
|
const nameInputRef = React.useRef<HTMLInputElement>();
|
|
58
58
|
React.useEffect(() => {
|
|
@@ -110,11 +110,9 @@ export const ClusterDetailsFormFields: React.FC<ClusterDetailsFormFieldsProps> =
|
|
|
110
110
|
}}
|
|
111
111
|
/>
|
|
112
112
|
)}
|
|
113
|
+
<ControlPlaneNodesDropdown isNutanix={isNutanix} isDisabled={isEditFlow} />
|
|
113
114
|
{!isNutanix && (
|
|
114
|
-
|
|
115
|
-
<SNOControlGroup versions={versions} highAvailabilityMode={highAvailabilityMode} />
|
|
116
|
-
<CpuArchitectureDropdown isDisabled={isEditFlow} cpuArchitectures={cpuArchitectures} />
|
|
117
|
-
</>
|
|
115
|
+
<CpuArchitectureDropdown cpuArchitectures={cpuArchitectures} isDisabled={isEditFlow} />
|
|
118
116
|
)}
|
|
119
117
|
{extensionAfter?.['openshiftVersion'] && extensionAfter['openshiftVersion']}
|
|
120
118
|
{!isEditFlow && <PullSecret />}
|
|
@@ -35,7 +35,7 @@ const OpenshiftVersionDropdown = ({ osImages }: { osImages: OsImage[] }) => {
|
|
|
35
35
|
<Tooltip
|
|
36
36
|
content={t(
|
|
37
37
|
'ai:No OpenShift images available for selected CPU architecture {{cpuArchitecture}}.',
|
|
38
|
-
architectureData[cpuArchitecture as SupportedCpuArchitecture].label,
|
|
38
|
+
{ cpuArchitecture: architectureData[cpuArchitecture as SupportedCpuArchitecture].label },
|
|
39
39
|
)}
|
|
40
40
|
hidden={!!filteredImages.length}
|
|
41
41
|
>
|
|
@@ -16,8 +16,7 @@ export const INFRAENV_GENERATED_AI_FLOW = 'agentBareMetal-generated-infraenv-ai-
|
|
|
16
16
|
export const CPU_ARCHITECTURE_ANNOTATION_KEY = 'agentBareMetal-cpuArchitecture';
|
|
17
17
|
|
|
18
18
|
export const getInfraEnvDocs = (docVersion: string) =>
|
|
19
|
-
`https://
|
|
20
|
-
|
|
19
|
+
`https://docs.redhat.com/en/documentation/red_hat_advanced_cluster_management_for_kubernetes/${docVersion}/html-single/clusters/index#enable-cim-prerequisites`;
|
|
21
20
|
export const BMH_HOSTNAME_ANNOTATION = 'bmac.agent-install.openshift.io/hostname';
|
|
22
21
|
|
|
23
22
|
export const OCP_VERSION_MAJOR_MINOR = 'hive.openshift.io/version-major-minor';
|
|
@@ -170,6 +170,7 @@ export const getAICluster = ({
|
|
|
170
170
|
validationsInfo: JSON.stringify(agentClusterInstall?.status?.validationsInfo || {}),
|
|
171
171
|
cpuArchitecture: getClusterDeploymentCpuArchitecture(clusterDeployment, infraEnv),
|
|
172
172
|
networkType: agentClusterInstall?.spec?.networking.networkType,
|
|
173
|
+
controlPlaneCount: agentClusterInstall?.spec?.provisionRequirements.controlPlaneAgents || 3,
|
|
173
174
|
};
|
|
174
175
|
/*
|
|
175
176
|
aiCluster.agentSelectorMasterLabels =
|
|
@@ -30,9 +30,8 @@ const AddHostModal: React.FC<AddHostModalProps> = ({
|
|
|
30
30
|
const hasDHCP = infraEnv.metadata?.labels?.networkType !== 'static';
|
|
31
31
|
const sshPublicKey = infraEnv.spec?.sshAuthorizedKey || agentClusterInstall?.spec?.sshPublicKey;
|
|
32
32
|
const { httpProxy, httpsProxy, noProxy } = infraEnv.spec?.proxy || {};
|
|
33
|
-
|
|
34
|
-
const
|
|
35
|
-
const [dialogType, setDialogType] = React.useState<AddHostModalStepType>(isoDialog);
|
|
33
|
+
const imageType = infraEnv.spec?.imageType || 'minimal-iso';
|
|
34
|
+
const [dialogType, setDialogType] = React.useState<AddHostModalStepType>('config');
|
|
36
35
|
const { t } = useTranslation();
|
|
37
36
|
const handleIsoConfigSubmit = async (
|
|
38
37
|
values: DiscoveryImageFormValues,
|
|
@@ -66,8 +65,8 @@ const AddHostModal: React.FC<AddHostModalProps> = ({
|
|
|
66
65
|
<DiscoveryImageConfigForm
|
|
67
66
|
onCancel={onClose}
|
|
68
67
|
handleSubmit={handleIsoConfigSubmit}
|
|
69
|
-
hideDiscoveryImageType={
|
|
70
|
-
imageType=
|
|
68
|
+
hideDiscoveryImageType={isIPXE}
|
|
69
|
+
imageType={imageType}
|
|
71
70
|
sshPublicKey={sshPublicKey}
|
|
72
71
|
httpProxy={httpProxy}
|
|
73
72
|
httpsProxy={httpsProxy}
|
|
@@ -25,6 +25,7 @@ export type InfraEnvK8sResource = K8sResourceCommon & {
|
|
|
25
25
|
additionalNTPSources?: string[];
|
|
26
26
|
cpuArchitecture?: 'x86_64' | 'arm64' | 's390x';
|
|
27
27
|
osImageVersion?: string;
|
|
28
|
+
imageType?: 'full-iso' | 'minimal-iso';
|
|
28
29
|
};
|
|
29
30
|
status?: {
|
|
30
31
|
agentLabelSelector?: Selector;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { client } from '../axiosClient';
|
|
2
|
+
import { Bundle } from '@openshift-assisted/types/assisted-installer-service';
|
|
3
|
+
|
|
4
|
+
const BundleAPI = {
|
|
5
|
+
makeBaseURI() {
|
|
6
|
+
return `/v2/operators/bundles`;
|
|
7
|
+
},
|
|
8
|
+
|
|
9
|
+
list() {
|
|
10
|
+
return client.get<Bundle[]>(`${BundleAPI.makeBaseURI()}`);
|
|
11
|
+
},
|
|
12
|
+
|
|
13
|
+
listOperatorsForBundle(bundleName: string) {
|
|
14
|
+
return client.get<string[]>(`${BundleAPI.makeBaseURI()}?bundle_name=${bundleName}`);
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export default BundleAPI;
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { Dropdown, DropdownItem, DropdownToggle } from '@patternfly/react-core/deprecated';
|
|
3
|
+
import { FormGroup, Tooltip } from '@patternfly/react-core';
|
|
4
|
+
import { useTranslation } from '../../hooks/use-translation-wrapper';
|
|
5
|
+
import { getFieldId, StaticField } from '../..';
|
|
6
|
+
import { useField } from 'formik';
|
|
7
|
+
import toNumber from 'lodash-es/toNumber';
|
|
8
|
+
|
|
9
|
+
interface ControlPlaneNodesOption {
|
|
10
|
+
value: number;
|
|
11
|
+
label: string;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
const isDropdownItemEnabled = (controlPlaneNodeCount: number, isNutanix?: boolean): boolean => {
|
|
15
|
+
return (controlPlaneNodeCount === 1 && !isNutanix) || controlPlaneNodeCount !== 1;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
const ControlPlaneNodesDropdown = ({
|
|
19
|
+
isDisabled = false,
|
|
20
|
+
isNutanix,
|
|
21
|
+
}: {
|
|
22
|
+
isDisabled?: boolean;
|
|
23
|
+
isNutanix?: boolean;
|
|
24
|
+
}) => {
|
|
25
|
+
const { t } = useTranslation();
|
|
26
|
+
const [{ name, value: selectedValue }, , { setValue }] = useField<number | 3>(
|
|
27
|
+
'controlPlaneCount',
|
|
28
|
+
);
|
|
29
|
+
|
|
30
|
+
const options: ControlPlaneNodesOption[] = [
|
|
31
|
+
{ value: 1, label: t('ai:1 (Single Node OpenShift - not highly available cluster)') },
|
|
32
|
+
{ value: 3, label: t('ai:3 (highly available cluster)') },
|
|
33
|
+
{ value: 4, label: t('ai:4 (highly available cluster+)') },
|
|
34
|
+
{ value: 5, label: t('ai:5 (highly available cluster++)') },
|
|
35
|
+
];
|
|
36
|
+
|
|
37
|
+
const dropdownItems = options.map(({ value, label }) => {
|
|
38
|
+
const isItemEnabled = isDropdownItemEnabled(value, isNutanix);
|
|
39
|
+
const disabledReason = t('ai:This option is not available for Nutanix platform');
|
|
40
|
+
return (
|
|
41
|
+
<DropdownItem
|
|
42
|
+
key={value}
|
|
43
|
+
id={value.toString()}
|
|
44
|
+
isAriaDisabled={!isItemEnabled}
|
|
45
|
+
selected={selectedValue === value}
|
|
46
|
+
value={value}
|
|
47
|
+
>
|
|
48
|
+
<Tooltip hidden={isItemEnabled} content={disabledReason} position="top">
|
|
49
|
+
<div>{label}</div>
|
|
50
|
+
</Tooltip>
|
|
51
|
+
</DropdownItem>
|
|
52
|
+
);
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
const [controlPlanelOpen, setControlPlanelOpen] = React.useState(false);
|
|
56
|
+
const fieldId = getFieldId(name, 'input');
|
|
57
|
+
|
|
58
|
+
const onControlPlaneSelect = (e?: React.SyntheticEvent<HTMLDivElement>) => {
|
|
59
|
+
const val = e?.currentTarget.id as string;
|
|
60
|
+
setValue(toNumber(val));
|
|
61
|
+
setControlPlanelOpen(false);
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
return !isDisabled ? (
|
|
65
|
+
<FormGroup isInline fieldId={fieldId} label={t('ai:Number of control plane nodes')} isRequired>
|
|
66
|
+
<Dropdown
|
|
67
|
+
toggle={
|
|
68
|
+
<DropdownToggle
|
|
69
|
+
onToggle={() => setControlPlanelOpen(!controlPlanelOpen)}
|
|
70
|
+
className="pf-u-w-100"
|
|
71
|
+
>
|
|
72
|
+
{selectedValue ? selectedValue : '3'}
|
|
73
|
+
</DropdownToggle>
|
|
74
|
+
}
|
|
75
|
+
name="controlPlaneCount"
|
|
76
|
+
isOpen={controlPlanelOpen}
|
|
77
|
+
onSelect={onControlPlaneSelect}
|
|
78
|
+
dropdownItems={dropdownItems}
|
|
79
|
+
className="pf-u-w-100"
|
|
80
|
+
/>
|
|
81
|
+
</FormGroup>
|
|
82
|
+
) : (
|
|
83
|
+
<StaticField
|
|
84
|
+
name={'controlPlaneCount'}
|
|
85
|
+
label={t('ai:Number of control plane nodes')}
|
|
86
|
+
isRequired
|
|
87
|
+
>
|
|
88
|
+
{selectedValue}
|
|
89
|
+
</StaticField>
|
|
90
|
+
);
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
export default ControlPlaneNodesDropdown;
|
|
@@ -116,17 +116,6 @@ export const DiscoveryImageConfigForm: React.FC<DiscoveryImageConfigFormProps> =
|
|
|
116
116
|
<>
|
|
117
117
|
<ModalBoxBody>
|
|
118
118
|
<Stack hasGutter>
|
|
119
|
-
<StackItem>
|
|
120
|
-
<Alert
|
|
121
|
-
variant={AlertVariant.info}
|
|
122
|
-
isInline
|
|
123
|
-
title={
|
|
124
|
-
isIPXE
|
|
125
|
-
? t('ai:To add hosts to the cluster, generate iPXE script.')
|
|
126
|
-
: t('ai:To add hosts to the cluster, generate a Discovery ISO.')
|
|
127
|
-
}
|
|
128
|
-
/>
|
|
129
|
-
</StackItem>
|
|
130
119
|
{hasDHCP === false && (
|
|
131
120
|
<StackItem>
|
|
132
121
|
<StaticIPInfo docVersion={docVersion} />
|
|
@@ -134,8 +123,17 @@ export const DiscoveryImageConfigForm: React.FC<DiscoveryImageConfigFormProps> =
|
|
|
134
123
|
)}
|
|
135
124
|
<StackItem>
|
|
136
125
|
<Form>
|
|
137
|
-
<AlertFormikError status={status as StatusErrorType} />
|
|
138
126
|
{!hideDiscoveryImageType && <DiscoveryImageTypeControlGroup />}
|
|
127
|
+
<AlertFormikError status={status as StatusErrorType} />
|
|
128
|
+
<Alert
|
|
129
|
+
variant={AlertVariant.info}
|
|
130
|
+
isInline
|
|
131
|
+
title={
|
|
132
|
+
isIPXE
|
|
133
|
+
? t('ai:To add hosts to the cluster, generate iPXE script.')
|
|
134
|
+
: t('ai:To add hosts to the cluster, generate a Discovery ISO.')
|
|
135
|
+
}
|
|
136
|
+
/>
|
|
139
137
|
<UploadSSH />
|
|
140
138
|
<ProxyFields />
|
|
141
139
|
</Form>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { Flex, FlexItem } from '@patternfly/react-core';
|
|
3
3
|
import { PopoverIcon, RadioField } from '../ui';
|
|
4
4
|
import { useTranslation } from '../../hooks/use-translation-wrapper';
|
|
5
5
|
|
|
@@ -20,38 +20,38 @@ const DiscoveryImageTypeControlGroupLabel = ({
|
|
|
20
20
|
const DiscoveryImageTypeControlGroup = () => {
|
|
21
21
|
const { t } = useTranslation();
|
|
22
22
|
return (
|
|
23
|
-
<
|
|
24
|
-
<
|
|
23
|
+
<Flex>
|
|
24
|
+
<FlexItem spacer={{ default: 'spacer3xl' }}>
|
|
25
25
|
<RadioField
|
|
26
26
|
name={GROUP_NAME}
|
|
27
27
|
id={'minimal-iso'}
|
|
28
28
|
value={'minimal-iso'}
|
|
29
29
|
label={
|
|
30
30
|
<DiscoveryImageTypeControlGroupLabel
|
|
31
|
-
text={t('ai:Minimal image file
|
|
31
|
+
text={t('ai:Minimal image file')}
|
|
32
32
|
popoverContent={t(
|
|
33
33
|
"ai:Recommended option. The generated discovery ISO will be smaller, but will need to download additional data during boot. This option is useful if ISO storage capacity is limited or if it's being served over a constrained network.",
|
|
34
34
|
)}
|
|
35
35
|
/>
|
|
36
36
|
}
|
|
37
37
|
/>
|
|
38
|
-
</
|
|
39
|
-
<
|
|
38
|
+
</FlexItem>
|
|
39
|
+
<FlexItem>
|
|
40
40
|
<RadioField
|
|
41
41
|
name={GROUP_NAME}
|
|
42
42
|
id={'full-iso'}
|
|
43
43
|
value={'full-iso'}
|
|
44
44
|
label={
|
|
45
45
|
<DiscoveryImageTypeControlGroupLabel
|
|
46
|
-
text={t('ai:Full image file
|
|
46
|
+
text={t('ai:Full image file')}
|
|
47
47
|
popoverContent={t(
|
|
48
48
|
'ai:The generated discovery ISO will contain everything needed to boot.',
|
|
49
49
|
)}
|
|
50
50
|
/>
|
|
51
51
|
}
|
|
52
52
|
/>
|
|
53
|
-
</
|
|
54
|
-
</
|
|
53
|
+
</FlexItem>
|
|
54
|
+
</Flex>
|
|
55
55
|
);
|
|
56
56
|
};
|
|
57
57
|
|
|
@@ -82,7 +82,7 @@ export const getClusterDetailsInitialValues = ({
|
|
|
82
82
|
platform: cluster?.platform?.type || 'none',
|
|
83
83
|
customOpenshiftSelect: null,
|
|
84
84
|
userManagedNetworking: cluster?.userManagedNetworking || false,
|
|
85
|
-
controlPlaneCount: cluster?.controlPlaneCount
|
|
85
|
+
controlPlaneCount: cluster?.controlPlaneCount || 3,
|
|
86
86
|
};
|
|
87
87
|
};
|
|
88
88
|
|
|
@@ -34,7 +34,7 @@ export type ClusterDetailsValues = {
|
|
|
34
34
|
platform: PlatformType;
|
|
35
35
|
customOpenshiftSelect: OpenshiftVersionOptionType | null;
|
|
36
36
|
userManagedNetworking: boolean;
|
|
37
|
-
controlPlaneCount:
|
|
37
|
+
controlPlaneCount: number;
|
|
38
38
|
};
|
|
39
39
|
|
|
40
40
|
export type HostsValidationsProps<S extends string, V extends string[]> = {
|
|
@@ -69,7 +69,9 @@ export type ValidationActionLinkProps<S extends string> = {
|
|
|
69
69
|
wizardStepNames: { [key in S]: string };
|
|
70
70
|
};
|
|
71
71
|
|
|
72
|
-
export type ClusterOperatorProps = Pick<Cluster, 'openshiftVersion'> & {
|
|
72
|
+
export type ClusterOperatorProps = Pick<Cluster, 'openshiftVersion'> & {
|
|
73
|
+
clusterId: Cluster['id'];
|
|
74
|
+
} & { monitoredOperators?: Cluster['monitoredOperators'] };
|
|
73
75
|
|
|
74
76
|
export type ItemDropdown = {
|
|
75
77
|
label: string;
|
|
@@ -2,7 +2,12 @@ import React from 'react';
|
|
|
2
2
|
import { Grid, GridItem } from '@patternfly/react-core';
|
|
3
3
|
import { TableVariant, Tbody, Thead, Table, Th, Tr, Td } from '@patternfly/react-table';
|
|
4
4
|
import { DetailItem, DetailList, DetailListProps } from '../ui';
|
|
5
|
-
import type {
|
|
5
|
+
import type {
|
|
6
|
+
Disk,
|
|
7
|
+
Host,
|
|
8
|
+
Interface,
|
|
9
|
+
Gpu,
|
|
10
|
+
} from '@openshift-assisted/types/assisted-installer-service';
|
|
6
11
|
import type { ValidationsInfo } from '../../types/hosts';
|
|
7
12
|
import type { WithTestID } from '../../types/index';
|
|
8
13
|
import { DASH } from '../constants';
|
|
@@ -107,6 +112,62 @@ const NicsTable: React.FC<NicsTableProps & WithTestID> = ({ interfaces, testId }
|
|
|
107
112
|
);
|
|
108
113
|
};
|
|
109
114
|
|
|
115
|
+
type GpusTableProps = {
|
|
116
|
+
gpus: Gpu[];
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
const gpusColumns = (t: TFunction) => [
|
|
120
|
+
{ title: t('ai:Vendor') },
|
|
121
|
+
{ title: t('ai:Vendor ID') },
|
|
122
|
+
{ title: t('ai:Model') },
|
|
123
|
+
{ title: t('ai:Device ID') },
|
|
124
|
+
{ title: t('ai:Address') },
|
|
125
|
+
];
|
|
126
|
+
|
|
127
|
+
const GpusTable: React.FC<GpusTableProps & WithTestID> = ({ gpus: gpus, testId }) => {
|
|
128
|
+
const { t } = useTranslation();
|
|
129
|
+
const rows = gpus
|
|
130
|
+
.sort((gpuA, gpuB) => gpuA.name?.localeCompare(gpuB.name || '') || 0)
|
|
131
|
+
.map((gpu) => ({
|
|
132
|
+
cells: [
|
|
133
|
+
{ title: gpu.vendor, props: { 'data-testid': 'gpu-vendor' } },
|
|
134
|
+
{ title: gpu.vendorId, props: { 'data-testid': 'gpu-vendor-id' } },
|
|
135
|
+
{ title: gpu.name, props: { 'data-testid': 'gpu-name' } },
|
|
136
|
+
{ title: gpu.deviceId, props: { 'data-testid': 'gpu-device-id' } },
|
|
137
|
+
{ title: gpu.address, props: { 'data-testid': 'gpu-address' } },
|
|
138
|
+
],
|
|
139
|
+
key: gpu.name,
|
|
140
|
+
})) as { cells: { title: string | React.ReactNode; props?: object }[]; key: string }[];
|
|
141
|
+
|
|
142
|
+
return (
|
|
143
|
+
<Table
|
|
144
|
+
data-testid={testId}
|
|
145
|
+
variant={TableVariant.compact}
|
|
146
|
+
aria-label={t("ai:Host's graphics processing units table")}
|
|
147
|
+
borders={false}
|
|
148
|
+
>
|
|
149
|
+
<Thead>
|
|
150
|
+
<Tr>
|
|
151
|
+
{gpusColumns(t).map((col, i) => (
|
|
152
|
+
<Th key={`col-${i}`}>{col.title}</Th>
|
|
153
|
+
))}
|
|
154
|
+
</Tr>
|
|
155
|
+
</Thead>
|
|
156
|
+
<Tbody>
|
|
157
|
+
{rows.map((row, i) => (
|
|
158
|
+
<Tr key={`gpu-row:${row.key}`}>
|
|
159
|
+
{row.cells?.map((cell, j) => (
|
|
160
|
+
<Td key={`cell-${i}-${j}`} {...cell.props}>
|
|
161
|
+
{cell.title}
|
|
162
|
+
</Td>
|
|
163
|
+
))}
|
|
164
|
+
</Tr>
|
|
165
|
+
))}
|
|
166
|
+
</Tbody>
|
|
167
|
+
</Table>
|
|
168
|
+
);
|
|
169
|
+
};
|
|
170
|
+
|
|
110
171
|
export const HostDetail = ({
|
|
111
172
|
host,
|
|
112
173
|
canEditDisks,
|
|
@@ -124,6 +185,7 @@ export const HostDetail = ({
|
|
|
124
185
|
);
|
|
125
186
|
const rowInfo = getHostRowHardwareInfo(inventory);
|
|
126
187
|
const nics = inventory.interfaces || [];
|
|
188
|
+
const gpus = inventory.gpus || [];
|
|
127
189
|
|
|
128
190
|
let bmcAddress = inventory.bmcAddress;
|
|
129
191
|
if (inventory.bmcV6address) {
|
|
@@ -218,6 +280,14 @@ export const HostDetail = ({
|
|
|
218
280
|
<GridItem>
|
|
219
281
|
<NicsTable interfaces={nics} testId={'nics-table'} />
|
|
220
282
|
</GridItem>
|
|
283
|
+
{gpus.length > 0 && (
|
|
284
|
+
<div>
|
|
285
|
+
<SectionTitle testId={'gpus-section'} title={t('ai:GPU', { count: gpus.length })} />
|
|
286
|
+
<GridItem>
|
|
287
|
+
<GpusTable gpus={gpus} testId={'gpus-table'} />
|
|
288
|
+
</GridItem>
|
|
289
|
+
</div>
|
|
290
|
+
)}
|
|
221
291
|
</Grid>
|
|
222
292
|
);
|
|
223
293
|
};
|