@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
|
@@ -151,11 +151,10 @@ const DisksTable = ({
|
|
|
151
151
|
.sort((a, b) => {
|
|
152
152
|
const aVal = (a.holders || a.name) as string;
|
|
153
153
|
const bVal = (b.holders || b.name) as string;
|
|
154
|
-
|
|
155
154
|
return aVal?.localeCompare(bVal) || 0;
|
|
156
155
|
})
|
|
157
|
-
.map((disk, index) =>
|
|
158
|
-
|
|
156
|
+
.map((disk, index) => {
|
|
157
|
+
const rowCells = [
|
|
159
158
|
{
|
|
160
159
|
title: (
|
|
161
160
|
<DiskName
|
|
@@ -180,27 +179,34 @@ const DisksTable = ({
|
|
|
180
179
|
props: { 'data-testid': 'disk-role' },
|
|
181
180
|
},
|
|
182
181
|
{ title: <DiskLimitations disk={disk} />, props: { 'data-testid': 'disk-limitations' } },
|
|
183
|
-
isEditable
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
182
|
+
isEditable
|
|
183
|
+
? {
|
|
184
|
+
title: (
|
|
185
|
+
<FormatDiskCheckbox
|
|
186
|
+
host={host}
|
|
187
|
+
diskId={disk.id}
|
|
188
|
+
installationDiskId={installationDiskId}
|
|
189
|
+
index={index}
|
|
190
|
+
updateDiskSkipFormatting={updateDiskSkipFormatting}
|
|
191
|
+
/>
|
|
192
|
+
),
|
|
193
|
+
props: { 'data-testid': 'disk-formatted' },
|
|
194
|
+
}
|
|
195
|
+
: null,
|
|
195
196
|
{ title: disk.driveType, props: { 'data-testid': 'drive-type' } },
|
|
196
197
|
{ title: fileSize(disk.sizeBytes || 0, 2, 'si'), props: { 'data-testid': 'disk-size' } },
|
|
197
198
|
{ title: disk.serial, props: { 'data-testid': 'disk-serial' } },
|
|
198
199
|
{ title: disk.model, props: { 'data-testid': 'disk-model' } },
|
|
199
200
|
{ title: disk.wwn, props: { 'data-testid': 'disk-wwn' } },
|
|
200
|
-
]
|
|
201
|
-
key: disk.path,
|
|
202
|
-
})) as { key: string; cells: { title: string | React.ReactNode; props: object }[] }[];
|
|
201
|
+
].filter(Boolean); // Remove null values to keep alignment
|
|
203
202
|
|
|
203
|
+
return { key: disk.path, cells: rowCells } as {
|
|
204
|
+
key: string;
|
|
205
|
+
cells: { title: string | React.ReactNode; props: object }[];
|
|
206
|
+
};
|
|
207
|
+
});
|
|
208
|
+
// eslint-disable-next-line no-console
|
|
209
|
+
console.log(rows);
|
|
204
210
|
return (
|
|
205
211
|
<Table data-testid={testId} variant={TableVariant.compact} aria-label="Host's disks table">
|
|
206
212
|
<Thead>
|
|
@@ -212,6 +218,7 @@ const DisksTable = ({
|
|
|
212
218
|
</Thead>
|
|
213
219
|
<Tbody>
|
|
214
220
|
{rows.map((row, i) => (
|
|
221
|
+
// eslint-disable-next-line no-console
|
|
215
222
|
<Tr key={`disk-row-${row.key}`} data-testid={`disk-row-${row.key}`}>
|
|
216
223
|
{row.cells.map((cell, j) => (
|
|
217
224
|
<Td key={`cell-${i}-${j}`} {...cell.props}>
|
|
@@ -137,6 +137,7 @@ export const hostValidationLabels = (t: TFunction): { [key in HostValidationId]:
|
|
|
137
137
|
'osc-requirements-satisfied': t('ai:OpenShift sandboxed containers requirements'),
|
|
138
138
|
'mtu-valid': t('ai:MTU requirements'),
|
|
139
139
|
'authorino-requirements-satisfied': '',
|
|
140
|
+
'nmstate-requirements-satisfied': '',
|
|
140
141
|
});
|
|
141
142
|
|
|
142
143
|
export const hostValidationFailureHints = (
|
|
@@ -196,6 +197,7 @@ export const hostValidationFailureHints = (
|
|
|
196
197
|
'osc-requirements-satisfied': '',
|
|
197
198
|
'authorino-requirements-satisfied': '',
|
|
198
199
|
'mtu-valid': '',
|
|
200
|
+
'nmstate-requirements-satisfied': '',
|
|
199
201
|
});
|
|
200
202
|
|
|
201
203
|
export const clusterValidationLabels = (
|
|
@@ -297,6 +299,8 @@ export const OPERATOR_NAME_SERVICEMESH = 'servicemesh';
|
|
|
297
299
|
export const OPERATOR_NAME_SERVERLESS = 'serverless';
|
|
298
300
|
export const OPERATOR_NAME_OPENSHIFT_AI = 'openshift-ai';
|
|
299
301
|
export const OPERATOR_NAME_OSC = 'osc';
|
|
302
|
+
export const OPERATOR_NAME_NMSTATE = 'nmstate';
|
|
303
|
+
export const OPERATOR_NAME_AUTHORINO = 'authorino';
|
|
300
304
|
|
|
301
305
|
const OperatorNames = [
|
|
302
306
|
OPERATOR_NAME_CNV,
|
|
@@ -313,6 +317,8 @@ const OperatorNames = [
|
|
|
313
317
|
OPERATOR_NAME_SERVERLESS,
|
|
314
318
|
OPERATOR_NAME_OPENSHIFT_AI,
|
|
315
319
|
OPERATOR_NAME_OSC,
|
|
320
|
+
OPERATOR_NAME_NMSTATE,
|
|
321
|
+
OPERATOR_NAME_AUTHORINO,
|
|
316
322
|
];
|
|
317
323
|
export const ExposedOperatorNames = [
|
|
318
324
|
OPERATOR_NAME_CNV,
|
|
@@ -328,6 +334,8 @@ export const ExposedOperatorNames = [
|
|
|
328
334
|
OPERATOR_NAME_SERVERLESS,
|
|
329
335
|
OPERATOR_NAME_OPENSHIFT_AI,
|
|
330
336
|
OPERATOR_NAME_OSC,
|
|
337
|
+
OPERATOR_NAME_NMSTATE,
|
|
338
|
+
OPERATOR_NAME_AUTHORINO,
|
|
331
339
|
];
|
|
332
340
|
|
|
333
341
|
export type OperatorName = (typeof OperatorNames)[number];
|
|
@@ -371,6 +379,8 @@ export const operatorLabels = (
|
|
|
371
379
|
[OPERATOR_NAME_OPENSHIFT_AI]: t('ai:OpenShift AI'),
|
|
372
380
|
[OPERATOR_NAME_OSC]: t('ai:OpenShift sandboxed containers'),
|
|
373
381
|
[OPERATOR_NAME_MTV]: t('ai:Migration Toolkit for Virtualization'),
|
|
382
|
+
[OPERATOR_NAME_NMSTATE]: t('ai:NMState'),
|
|
383
|
+
[OPERATOR_NAME_AUTHORINO]: t('ai:Authorino'),
|
|
374
384
|
};
|
|
375
385
|
};
|
|
376
386
|
|
|
@@ -68,7 +68,7 @@ export const ODF_REQUIREMENTS_LINK =
|
|
|
68
68
|
'https://docs.redhat.com/en/documentation/red_hat_openshift_data_foundation';
|
|
69
69
|
|
|
70
70
|
export const OPENSHIFT_AI_REQUIREMENTS_LINK =
|
|
71
|
-
'https://docs.redhat.com/en/documentation/
|
|
71
|
+
'https://docs.redhat.com/en/documentation/red_hat_openshift_ai_self-managed/2.16/html/installing_and_uninstalling_openshift_ai_self-managed/installing-and-deploying-openshift-ai_install#requirements-for-openshift-ai-self-managed_install';
|
|
72
72
|
|
|
73
73
|
export const OSC_REQUIREMENTS_LINK =
|
|
74
74
|
'https://docs.redhat.com/en/documentation/openshift_sandboxed_containers/1.8/html/user_guide/deploying-osc-bare-metal#osc-resource-requirements_deploying-bare-metal';
|
|
@@ -114,3 +114,26 @@ export const getMtuLink = (ocpVersion?: string) =>
|
|
|
114
114
|
`https://docs.redhat.com/en/documentation/openshift_container_platform/${getShortOpenshiftVersion(
|
|
115
115
|
ocpVersion,
|
|
116
116
|
)}/html/networking/changing-cluster-network-mtu#nw-cluster-mtu-change-about_changing-cluster-network-mtu`;
|
|
117
|
+
|
|
118
|
+
export const AUTHORINO_OPERATOR_LINK = 'https://github.com/Kuadrant/authorino-operator';
|
|
119
|
+
|
|
120
|
+
export const LOCAL_STORAGE_OPERATOR_LINK =
|
|
121
|
+
'https://docs.openshift.com/container-platform/4.17/storage/persistent_storage/persistent_storage_local/ways-to-provision-local-storage.html';
|
|
122
|
+
|
|
123
|
+
export const NMSTATE_OPERATOR_LINK =
|
|
124
|
+
'https://docs.openshift.com/container-platform/4.17/networking/networking_operators/k8s-nmstate-about-the-k8s-nmstate-operator.html';
|
|
125
|
+
|
|
126
|
+
export const NODE_FEATURE_DISCOVERY_OPERATOR_LINK =
|
|
127
|
+
'https://docs.openshift.com/container-platform/4.17/hardware_enablement/psap-node-feature-discovery-operator.html';
|
|
128
|
+
|
|
129
|
+
export const NVIDIA_GPU_OPERATOR_LINK =
|
|
130
|
+
'https://docs.openshift.com/container-platform/4.17/virt/virtual_machines/advanced_vm_management/virt-configuring-virtual-gpus.html';
|
|
131
|
+
|
|
132
|
+
export const PIPELINES_OPERATOR_LINK =
|
|
133
|
+
'https://docs.openshift.com/pipelines/1.17/install_config/installing-pipelines.html';
|
|
134
|
+
|
|
135
|
+
export const SERVICE_MESH_OPERATOR_LINK =
|
|
136
|
+
'https://docs.openshift.com/container-platform/4.17/service_mesh/v1x/preparing-ossm-installation.html';
|
|
137
|
+
|
|
138
|
+
export const SERVERLESS_OPERATOR_LINK =
|
|
139
|
+
'https://docs.openshift.com/serverless/1.28/install/install-serverless-operator.html#serverless-install-web-console_install-serverless-operator';
|
|
@@ -122,3 +122,11 @@ export const isClusterPlatformTypeVM = ({ platform }: Pick<Cluster, 'platform'>)
|
|
|
122
122
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
123
123
|
// @ts-ignore
|
|
124
124
|
SupportedPlatformIntegrations.includes(platform?.type ?? 'none');
|
|
125
|
+
|
|
126
|
+
export const numberOfEnabledOperators = (monitoredOperators: Cluster['monitoredOperators']) => {
|
|
127
|
+
return monitoredOperators
|
|
128
|
+
? selectMonitoredOperators(
|
|
129
|
+
monitoredOperators.filter((operator) => operator.operatorType === 'olm'),
|
|
130
|
+
).length
|
|
131
|
+
: 0;
|
|
132
|
+
};
|
|
@@ -66,6 +66,14 @@ export type OperatorsValues = V2ClusterUpdateParams & {
|
|
|
66
66
|
useMigrationToolkitforVirtualization: boolean;
|
|
67
67
|
useOpenShiftAI: boolean;
|
|
68
68
|
useOsc: boolean;
|
|
69
|
+
useNodeFeatureDiscovery: boolean;
|
|
70
|
+
useNmstate: boolean;
|
|
71
|
+
useLso: boolean;
|
|
72
|
+
useServerless: boolean;
|
|
73
|
+
useAuthorino: boolean;
|
|
74
|
+
usePipelines: boolean;
|
|
75
|
+
useServicemesh: boolean;
|
|
76
|
+
useNvidiaGpu: boolean;
|
|
69
77
|
};
|
|
70
78
|
|
|
71
79
|
export type SupportedPlatformType = Extract<PlatformType, 'vsphere' | 'nutanix' | 'external'>;
|
|
@@ -7,7 +7,6 @@ import {
|
|
|
7
7
|
import { handleApiError } from '../../common/api';
|
|
8
8
|
import { isApiError } from '../../common/api/utils';
|
|
9
9
|
import { captureException } from '../sentry';
|
|
10
|
-
import * as Sentry from '@sentry/browser';
|
|
11
10
|
|
|
12
11
|
export const SentryErrorMonitorContextProvider: React.FC = ({ children }) => {
|
|
13
12
|
const exceptionReporter: ExceptionReporter = (
|
|
@@ -18,7 +17,7 @@ export const SentryErrorMonitorContextProvider: React.FC = ({ children }) => {
|
|
|
18
17
|
if (isApiError(error)) {
|
|
19
18
|
handleApiError(error);
|
|
20
19
|
} else {
|
|
21
|
-
captureException(error, message, severity
|
|
20
|
+
captureException(error, message, severity);
|
|
22
21
|
}
|
|
23
22
|
};
|
|
24
23
|
return (
|
|
@@ -8,10 +8,11 @@ import {
|
|
|
8
8
|
useNewFeatureSupportLevel,
|
|
9
9
|
} from '../../../common/components/newFeatureSupportLevels';
|
|
10
10
|
import OcmSNODisclaimer from './OcmSNODisclaimer';
|
|
11
|
+
import toNumber from 'lodash-es/toNumber';
|
|
11
12
|
|
|
12
13
|
const INPUT_NAME = 'controlPlaneCount';
|
|
13
14
|
const fieldId = getFieldId(INPUT_NAME, 'input');
|
|
14
|
-
const DEFAULT_VALUE =
|
|
15
|
+
const DEFAULT_VALUE = 3;
|
|
15
16
|
|
|
16
17
|
export const ControlPlaneNodesLabel = () => {
|
|
17
18
|
return (
|
|
@@ -31,7 +32,7 @@ export const ControlPlaneNodesLabel = () => {
|
|
|
31
32
|
};
|
|
32
33
|
|
|
33
34
|
interface ControlPlaneNodesOption {
|
|
34
|
-
value:
|
|
35
|
+
value: number;
|
|
35
36
|
label: string;
|
|
36
37
|
}
|
|
37
38
|
|
|
@@ -40,10 +41,10 @@ interface ControlPlaneNodesDropdownProps {
|
|
|
40
41
|
}
|
|
41
42
|
|
|
42
43
|
const isDropdownItemEnabled = (
|
|
43
|
-
controlPlaneNodeCount:
|
|
44
|
+
controlPlaneNodeCount: number,
|
|
44
45
|
isNonStandardControlPlaneEnabled: boolean,
|
|
45
46
|
): boolean => {
|
|
46
|
-
if (controlPlaneNodeCount ===
|
|
47
|
+
if (controlPlaneNodeCount === 4 || controlPlaneNodeCount === 5) {
|
|
47
48
|
return isNonStandardControlPlaneEnabled;
|
|
48
49
|
}
|
|
49
50
|
return true;
|
|
@@ -52,7 +53,7 @@ const isDropdownItemEnabled = (
|
|
|
52
53
|
const ControlPlaneNodesDropdown: React.FC<ControlPlaneNodesDropdownProps> = ({
|
|
53
54
|
featureSupportLevelData,
|
|
54
55
|
}) => {
|
|
55
|
-
const [field, , { setValue }] = useField<
|
|
56
|
+
const [field, , { setValue }] = useField<number>(INPUT_NAME);
|
|
56
57
|
const [isOpen, setOpen] = React.useState<boolean>(false);
|
|
57
58
|
const newFeatureSupportLevelContext = useNewFeatureSupportLevel();
|
|
58
59
|
|
|
@@ -78,10 +79,10 @@ const ControlPlaneNodesDropdown: React.FC<ControlPlaneNodesDropdownProps> = ({
|
|
|
78
79
|
);
|
|
79
80
|
|
|
80
81
|
const options: ControlPlaneNodesOption[] = [
|
|
81
|
-
{ value:
|
|
82
|
-
{ value:
|
|
83
|
-
{ value:
|
|
84
|
-
{ value:
|
|
82
|
+
{ value: 1, label: '1 (Single Node OpenShift)' },
|
|
83
|
+
{ value: 3, label: '3 (highly available cluster)' },
|
|
84
|
+
{ value: 4, label: '4 (highly available cluster+)' },
|
|
85
|
+
{ value: 5, label: '5 (highly available cluster++)' },
|
|
85
86
|
];
|
|
86
87
|
|
|
87
88
|
React.useEffect(() => {
|
|
@@ -92,14 +93,14 @@ const ControlPlaneNodesDropdown: React.FC<ControlPlaneNodesDropdownProps> = ({
|
|
|
92
93
|
|
|
93
94
|
const onSelect = (event?: React.SyntheticEvent<HTMLDivElement>): void => {
|
|
94
95
|
const selectedValue = event?.currentTarget.id as string;
|
|
95
|
-
setValue(selectedValue);
|
|
96
|
+
setValue(toNumber(selectedValue));
|
|
96
97
|
setOpen(false);
|
|
97
98
|
};
|
|
98
99
|
|
|
99
100
|
const dropdownItems = options.map(({ value, label }) => {
|
|
100
101
|
const isItemEnabled = isDropdownItemEnabled(value, isNonStandardControlPlaneEnabled);
|
|
101
102
|
return (
|
|
102
|
-
<DropdownItem key={value} id={value} isAriaDisabled={!isItemEnabled}>
|
|
103
|
+
<DropdownItem key={value} id={value.toString()} isAriaDisabled={!isItemEnabled}>
|
|
103
104
|
<Tooltip hidden={isItemEnabled} content={disabledReason} position="top">
|
|
104
105
|
<div>{label}</div>
|
|
105
106
|
</Tooltip>
|
|
@@ -128,7 +129,7 @@ const ControlPlaneNodesDropdown: React.FC<ControlPlaneNodesDropdownProps> = ({
|
|
|
128
129
|
onSelect={onSelect}
|
|
129
130
|
/>
|
|
130
131
|
</FormGroup>
|
|
131
|
-
{field.value ===
|
|
132
|
+
{field.value === 1 && (
|
|
132
133
|
<OcmSNODisclaimer
|
|
133
134
|
isDisabled={isDisabled}
|
|
134
135
|
snoSupportLevel={snoSupportLevel || 'supported'}
|
|
@@ -171,7 +171,7 @@ export const OcmClusterDetailsFormFields = ({
|
|
|
171
171
|
onChange={handleExternalPartnerIntegrationsChange}
|
|
172
172
|
cpuArchitecture={values.cpuArchitecture as SupportedCpuArchitecture}
|
|
173
173
|
featureSupportLevelData={featureSupportLevelData}
|
|
174
|
-
isSNO={values.controlPlaneCount ===
|
|
174
|
+
isSNO={values.controlPlaneCount === 1}
|
|
175
175
|
/>
|
|
176
176
|
)}
|
|
177
177
|
|
|
@@ -197,7 +197,7 @@ export const OcmClusterDetailsFormFields = ({
|
|
|
197
197
|
<DiskEncryptionControlGroup
|
|
198
198
|
values={values}
|
|
199
199
|
isDisabled={isPullSecretSet}
|
|
200
|
-
isSNO={values.controlPlaneCount ===
|
|
200
|
+
isSNO={values.controlPlaneCount === 1}
|
|
201
201
|
docVersion={openshiftVersion}
|
|
202
202
|
/>
|
|
203
203
|
</Form>
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { FormGroup, HelperText, HelperTextItem, Tooltip } from '@patternfly/react-core';
|
|
3
|
+
import { AUTHORINO_OPERATOR_LINK, getFieldId, PopoverIcon } from '../../../../common';
|
|
4
|
+
import { OcmCheckboxField } from '../../ui/OcmFormFields';
|
|
5
|
+
import NewFeatureSupportLevelBadge from '../../../../common/components/newFeatureSupportLevels/NewFeatureSupportLevelBadge';
|
|
6
|
+
import { SupportLevel } from '@openshift-assisted/types/./assisted-installer-service';
|
|
7
|
+
import { ExternalLinkAltIcon } from '@patternfly/react-icons/dist/js/icons/external-link-alt-icon';
|
|
8
|
+
|
|
9
|
+
const AUTHORINO_FIELD_NAME = 'useAuthorino';
|
|
10
|
+
|
|
11
|
+
const AuthorinoLabel = ({
|
|
12
|
+
disabledReason,
|
|
13
|
+
supportLevel,
|
|
14
|
+
}: {
|
|
15
|
+
disabledReason?: string;
|
|
16
|
+
supportLevel?: SupportLevel;
|
|
17
|
+
}) => {
|
|
18
|
+
return (
|
|
19
|
+
<>
|
|
20
|
+
<Tooltip hidden={!disabledReason} content={disabledReason}>
|
|
21
|
+
<span>Install Authorino </span>
|
|
22
|
+
</Tooltip>
|
|
23
|
+
<PopoverIcon
|
|
24
|
+
id={AUTHORINO_FIELD_NAME}
|
|
25
|
+
component={'a'}
|
|
26
|
+
bodyContent={'No additional requirements needed'}
|
|
27
|
+
/>
|
|
28
|
+
<NewFeatureSupportLevelBadge featureId="AUTHORINO" supportLevel={supportLevel} />
|
|
29
|
+
</>
|
|
30
|
+
);
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
const AuthorinoHelperText = () => {
|
|
34
|
+
return (
|
|
35
|
+
<HelperText>
|
|
36
|
+
<HelperTextItem variant="indeterminate">
|
|
37
|
+
Lightweigth external authorization service for tailor-made Zero Trust API security.{' '}
|
|
38
|
+
<a href={AUTHORINO_OPERATOR_LINK} target="_blank" rel="noopener noreferrer">
|
|
39
|
+
{'Learn more'} <ExternalLinkAltIcon />
|
|
40
|
+
</a>
|
|
41
|
+
</HelperTextItem>
|
|
42
|
+
</HelperText>
|
|
43
|
+
);
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
const AuthorinoCheckbox = ({
|
|
47
|
+
disabledReason,
|
|
48
|
+
supportLevel,
|
|
49
|
+
}: {
|
|
50
|
+
disabledReason?: string;
|
|
51
|
+
supportLevel?: SupportLevel | undefined;
|
|
52
|
+
}) => {
|
|
53
|
+
const fieldId = getFieldId(AUTHORINO_FIELD_NAME, 'input');
|
|
54
|
+
|
|
55
|
+
return (
|
|
56
|
+
<FormGroup isInline fieldId={fieldId}>
|
|
57
|
+
<OcmCheckboxField
|
|
58
|
+
name={AUTHORINO_FIELD_NAME}
|
|
59
|
+
label={<AuthorinoLabel disabledReason={disabledReason} supportLevel={supportLevel} />}
|
|
60
|
+
helperText={<AuthorinoHelperText />}
|
|
61
|
+
isDisabled={!!disabledReason}
|
|
62
|
+
/>
|
|
63
|
+
</FormGroup>
|
|
64
|
+
);
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
export default AuthorinoCheckbox;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import { FormGroup, HelperText, HelperTextItem, Tooltip } from '@patternfly/react-core';
|
|
3
3
|
import { ExternalLinkAltIcon } from '@patternfly/react-icons/dist/js/icons/external-link-alt-icon';
|
|
4
|
-
import { useFormikContext } from 'formik';
|
|
5
4
|
import {
|
|
6
5
|
ClusterOperatorProps,
|
|
7
6
|
CNV_LINK,
|
|
@@ -10,14 +9,10 @@ import {
|
|
|
10
9
|
PopoverIcon,
|
|
11
10
|
} from '../../../../common';
|
|
12
11
|
import CnvHostRequirements from './CnvHostRequirements';
|
|
13
|
-
import {
|
|
14
|
-
getCnvDisabledWithMtvReason,
|
|
15
|
-
getCnvIncompatibleWithLvmReason,
|
|
16
|
-
} from '../../featureSupportLevels/featureStateUtils';
|
|
17
12
|
import { OcmCheckboxField } from '../../ui/OcmFormFields';
|
|
18
|
-
import { useNewFeatureSupportLevel } from '../../../../common/components/newFeatureSupportLevels';
|
|
19
13
|
import NewFeatureSupportLevelBadge from '../../../../common/components/newFeatureSupportLevels/NewFeatureSupportLevelBadge';
|
|
20
14
|
import { SupportLevel } from '@openshift-assisted/types/assisted-installer-service';
|
|
15
|
+
import { useFormikContext } from 'formik';
|
|
21
16
|
|
|
22
17
|
const CNV_FIELD_NAME = 'useContainerNativeVirtualization';
|
|
23
18
|
|
|
@@ -70,28 +65,19 @@ const CnvHelperText = () => {
|
|
|
70
65
|
const CnvCheckbox = ({
|
|
71
66
|
clusterId,
|
|
72
67
|
isVersionEqualsOrMajorThan4_15,
|
|
68
|
+
disabledReason,
|
|
69
|
+
supportLevel,
|
|
73
70
|
}: {
|
|
74
71
|
clusterId: ClusterOperatorProps['clusterId'];
|
|
75
72
|
isVersionEqualsOrMajorThan4_15: boolean;
|
|
73
|
+
disabledReason?: string;
|
|
74
|
+
supportLevel?: SupportLevel | undefined;
|
|
76
75
|
}) => {
|
|
76
|
+
const { setFieldValue } = useFormikContext<OperatorsValues>();
|
|
77
77
|
const fieldId = getFieldId(CNV_FIELD_NAME, 'input');
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
const [disabledReason, setDisabledReason] = useState<string | undefined>();
|
|
82
|
-
|
|
83
|
-
React.useEffect(() => {
|
|
84
|
-
let reason = featureSupportLevel.getFeatureDisabledReason('CNV');
|
|
85
|
-
if (!reason) {
|
|
86
|
-
const lvmSupport = featureSupportLevel.getFeatureSupportLevel('LVM');
|
|
87
|
-
reason = getCnvIncompatibleWithLvmReason(values, lvmSupport);
|
|
88
|
-
}
|
|
89
|
-
if (!reason) {
|
|
90
|
-
reason = getCnvDisabledWithMtvReason(values);
|
|
91
|
-
}
|
|
92
|
-
setDisabledReason(reason);
|
|
93
|
-
}, [values, featureSupportLevel]);
|
|
94
|
-
|
|
78
|
+
const selectLsoOperator = (checked: boolean) => {
|
|
79
|
+
setFieldValue('useLso', checked);
|
|
80
|
+
};
|
|
95
81
|
return (
|
|
96
82
|
<FormGroup isInline fieldId={fieldId}>
|
|
97
83
|
<OcmCheckboxField
|
|
@@ -101,11 +87,12 @@ const CnvCheckbox = ({
|
|
|
101
87
|
clusterId={clusterId}
|
|
102
88
|
disabledReason={disabledReason}
|
|
103
89
|
isVersionEqualsOrMajorThan4_15={isVersionEqualsOrMajorThan4_15}
|
|
104
|
-
supportLevel={
|
|
90
|
+
supportLevel={supportLevel}
|
|
105
91
|
/>
|
|
106
92
|
}
|
|
107
93
|
helperText={<CnvHelperText />}
|
|
108
94
|
isDisabled={!!disabledReason}
|
|
95
|
+
onChange={selectLsoOperator}
|
|
109
96
|
/>
|
|
110
97
|
</FormGroup>
|
|
111
98
|
);
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { FormGroup, HelperText, HelperTextItem, Tooltip } from '@patternfly/react-core';
|
|
3
|
+
import { getFieldId, LOCAL_STORAGE_OPERATOR_LINK, PopoverIcon } from '../../../../common';
|
|
4
|
+
import { OcmCheckboxField } from '../../ui/OcmFormFields';
|
|
5
|
+
import NewFeatureSupportLevelBadge from '../../../../common/components/newFeatureSupportLevels/NewFeatureSupportLevelBadge';
|
|
6
|
+
import { SupportLevel } from '@openshift-assisted/types/./assisted-installer-service';
|
|
7
|
+
import ExternalLinkAltIcon from '@patternfly/react-icons/dist/js/icons/external-link-alt-icon';
|
|
8
|
+
|
|
9
|
+
const LSO_FIELD_NAME = 'useLso';
|
|
10
|
+
|
|
11
|
+
const LsoLabel = ({
|
|
12
|
+
disabledReason,
|
|
13
|
+
supportLevel,
|
|
14
|
+
}: {
|
|
15
|
+
disabledReason?: string;
|
|
16
|
+
supportLevel?: SupportLevel;
|
|
17
|
+
}) => {
|
|
18
|
+
return (
|
|
19
|
+
<>
|
|
20
|
+
<Tooltip hidden={!disabledReason} content={disabledReason}>
|
|
21
|
+
<span>Install Local Storage Operator </span>
|
|
22
|
+
</Tooltip>
|
|
23
|
+
<PopoverIcon
|
|
24
|
+
id={LSO_FIELD_NAME}
|
|
25
|
+
component={'a'}
|
|
26
|
+
bodyContent={'No additional requirements needed'}
|
|
27
|
+
/>
|
|
28
|
+
<NewFeatureSupportLevelBadge featureId="LSO" supportLevel={supportLevel} />
|
|
29
|
+
</>
|
|
30
|
+
);
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
const LsoHelperText = () => {
|
|
34
|
+
return (
|
|
35
|
+
<HelperText>
|
|
36
|
+
<HelperTextItem variant="indeterminate">
|
|
37
|
+
Allows provisioning of persistent storage by using local volumes.{' '}
|
|
38
|
+
<a href={LOCAL_STORAGE_OPERATOR_LINK} target="_blank" rel="noopener noreferrer">
|
|
39
|
+
{'Learn more'} <ExternalLinkAltIcon />
|
|
40
|
+
</a>
|
|
41
|
+
</HelperTextItem>
|
|
42
|
+
</HelperText>
|
|
43
|
+
);
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
const LsoCheckbox = ({
|
|
47
|
+
disabledReason,
|
|
48
|
+
supportLevel,
|
|
49
|
+
}: {
|
|
50
|
+
disabledReason?: string;
|
|
51
|
+
supportLevel?: SupportLevel | undefined;
|
|
52
|
+
}) => {
|
|
53
|
+
const fieldId = getFieldId(LSO_FIELD_NAME, 'input');
|
|
54
|
+
|
|
55
|
+
return (
|
|
56
|
+
<FormGroup isInline fieldId={fieldId}>
|
|
57
|
+
<OcmCheckboxField
|
|
58
|
+
name={LSO_FIELD_NAME}
|
|
59
|
+
label={<LsoLabel disabledReason={disabledReason} supportLevel={supportLevel} />}
|
|
60
|
+
helperText={<LsoHelperText />}
|
|
61
|
+
isDisabled={!!disabledReason}
|
|
62
|
+
/>
|
|
63
|
+
</FormGroup>
|
|
64
|
+
);
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
export default LsoCheckbox;
|
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import { FormGroup, HelperText, HelperTextItem, Tooltip } from '@patternfly/react-core';
|
|
3
|
-
import { useFormikContext } from 'formik';
|
|
4
3
|
import {
|
|
5
4
|
ClusterOperatorProps,
|
|
6
5
|
getFieldId,
|
|
7
6
|
PopoverIcon,
|
|
8
7
|
operatorLabels,
|
|
9
|
-
OperatorsValues,
|
|
10
8
|
OPERATOR_NAME_LVM,
|
|
11
9
|
ExposedOperatorName,
|
|
12
10
|
ExternalLink,
|
|
@@ -16,10 +14,6 @@ import {
|
|
|
16
14
|
import LvmHostRequirements from './LvmHostRequirements';
|
|
17
15
|
import { OcmCheckboxField } from '../../ui/OcmFormFields';
|
|
18
16
|
import { useTranslation } from '../../../../common/hooks/use-translation-wrapper';
|
|
19
|
-
import {
|
|
20
|
-
getLvmIncompatibleWithCnvReason,
|
|
21
|
-
getLvmsIncompatibleWithOdfReason,
|
|
22
|
-
} from '../../featureSupportLevels/featureStateUtils';
|
|
23
17
|
import { useNewFeatureSupportLevel } from '../../../../common/components/newFeatureSupportLevels';
|
|
24
18
|
import NewFeatureSupportLevelBadge from '../../../../common/components/newFeatureSupportLevels/NewFeatureSupportLevelBadge';
|
|
25
19
|
import { SupportLevel } from '@openshift-assisted/types/assisted-installer-service';
|
|
@@ -70,38 +64,26 @@ const LvmLabel = ({ clusterId, operatorLabel, disabledReason, supportLevel }: Lv
|
|
|
70
64
|
const LvmCheckbox = ({
|
|
71
65
|
clusterId,
|
|
72
66
|
openshiftVersion,
|
|
67
|
+
disabledReason,
|
|
68
|
+
supportLevel,
|
|
73
69
|
}: {
|
|
74
70
|
clusterId: ClusterOperatorProps['clusterId'];
|
|
75
71
|
openshiftVersion?: ClusterOperatorProps['openshiftVersion'];
|
|
72
|
+
disabledReason?: string;
|
|
73
|
+
supportLevel?: SupportLevel | undefined;
|
|
76
74
|
}) => {
|
|
77
75
|
const fieldId = getFieldId(LVM_FIELD_NAME, 'input');
|
|
78
76
|
|
|
79
77
|
const featureSupportLevel = useNewFeatureSupportLevel();
|
|
80
78
|
const { t } = useTranslation();
|
|
81
|
-
const { values } = useFormikContext<OperatorsValues>();
|
|
82
|
-
const [disabledReason, setDisabledReason] = useState<string | undefined>();
|
|
83
79
|
|
|
84
80
|
const operatorInfo = React.useMemo(() => {
|
|
85
|
-
const lvmSupport = featureSupportLevel.getFeatureSupportLevel('LVM');
|
|
86
|
-
|
|
87
81
|
const operatorLabel = operatorLabels(t, featureSupportLevel)[OPERATOR_NAME_LVM];
|
|
88
82
|
return {
|
|
89
|
-
lvmSupport,
|
|
90
83
|
operatorLabel,
|
|
91
|
-
operatorName:
|
|
84
|
+
operatorName: supportLevel === 'supported' ? OPERATOR_NAME_LVMS : OPERATOR_NAME_LVM,
|
|
92
85
|
};
|
|
93
|
-
}, [
|
|
94
|
-
|
|
95
|
-
React.useEffect(() => {
|
|
96
|
-
let reason = featureSupportLevel.getFeatureDisabledReason('LVM');
|
|
97
|
-
if (!reason) {
|
|
98
|
-
reason = getLvmIncompatibleWithCnvReason(values, operatorInfo.lvmSupport);
|
|
99
|
-
if (!reason) {
|
|
100
|
-
reason = getLvmsIncompatibleWithOdfReason(values);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
setDisabledReason(reason);
|
|
104
|
-
}, [values, featureSupportLevel, operatorInfo.lvmSupport]);
|
|
86
|
+
}, [featureSupportLevel, supportLevel, t]);
|
|
105
87
|
|
|
106
88
|
return (
|
|
107
89
|
<FormGroup isInline fieldId={fieldId}>
|
|
@@ -112,7 +94,7 @@ const LvmCheckbox = ({
|
|
|
112
94
|
clusterId={clusterId}
|
|
113
95
|
operatorLabel={operatorInfo.operatorLabel}
|
|
114
96
|
disabledReason={disabledReason}
|
|
115
|
-
supportLevel={
|
|
97
|
+
supportLevel={supportLevel}
|
|
116
98
|
/>
|
|
117
99
|
}
|
|
118
100
|
helperText={
|
|
@@ -3,8 +3,9 @@ import { FormGroup, HelperText, HelperTextItem, Tooltip } from '@patternfly/reac
|
|
|
3
3
|
import { ExternalLinkAltIcon } from '@patternfly/react-icons/dist/js/icons/external-link-alt-icon';
|
|
4
4
|
import { getFieldId, PopoverIcon, getMceDocsLink, ClusterOperatorProps } from '../../../../common';
|
|
5
5
|
import { OcmCheckboxField } from '../../ui/OcmFormFields';
|
|
6
|
-
import { useNewFeatureSupportLevel } from '../../../../common/components/newFeatureSupportLevels';
|
|
7
6
|
import MceRequirements from './MceRequirements';
|
|
7
|
+
import NewFeatureSupportLevelBadge from '../../../../common/components/newFeatureSupportLevels/NewFeatureSupportLevelBadge';
|
|
8
|
+
import { SupportLevel } from '@openshift-assisted/types/./assisted-installer-service';
|
|
8
9
|
|
|
9
10
|
const MCE_FIELD_NAME = 'useMultiClusterEngine';
|
|
10
11
|
|
|
@@ -12,10 +13,12 @@ const MceLabel = ({
|
|
|
12
13
|
disabledReason,
|
|
13
14
|
isVersionEqualsOrMajorThan4_15,
|
|
14
15
|
clusterId,
|
|
16
|
+
supportLevel,
|
|
15
17
|
}: {
|
|
16
18
|
disabledReason?: string;
|
|
17
19
|
isVersionEqualsOrMajorThan4_15: boolean;
|
|
18
20
|
clusterId: ClusterOperatorProps['clusterId'];
|
|
21
|
+
supportLevel?: SupportLevel;
|
|
19
22
|
}) => {
|
|
20
23
|
return (
|
|
21
24
|
<>
|
|
@@ -33,6 +36,7 @@ const MceLabel = ({
|
|
|
33
36
|
/>
|
|
34
37
|
}
|
|
35
38
|
/>
|
|
39
|
+
<NewFeatureSupportLevelBadge featureId="MCE" supportLevel={supportLevel} />
|
|
36
40
|
</>
|
|
37
41
|
);
|
|
38
42
|
};
|
|
@@ -54,14 +58,16 @@ const MceCheckbox = ({
|
|
|
54
58
|
clusterId,
|
|
55
59
|
isVersionEqualsOrMajorThan4_15,
|
|
56
60
|
openshiftVersion,
|
|
61
|
+
supportLevel,
|
|
62
|
+
disabledReason,
|
|
57
63
|
}: {
|
|
58
64
|
isVersionEqualsOrMajorThan4_15: boolean;
|
|
59
65
|
openshiftVersion?: string;
|
|
60
66
|
clusterId: ClusterOperatorProps['clusterId'];
|
|
67
|
+
supportLevel?: SupportLevel | undefined;
|
|
68
|
+
disabledReason?: string;
|
|
61
69
|
}) => {
|
|
62
|
-
const featureSupportLevelContext = useNewFeatureSupportLevel();
|
|
63
70
|
const fieldId = getFieldId(MCE_FIELD_NAME, 'input');
|
|
64
|
-
const disabledReason = featureSupportLevelContext.getFeatureDisabledReason('MCE');
|
|
65
71
|
return (
|
|
66
72
|
<FormGroup isInline fieldId={fieldId}>
|
|
67
73
|
<OcmCheckboxField
|
|
@@ -71,6 +77,7 @@ const MceCheckbox = ({
|
|
|
71
77
|
disabledReason={disabledReason}
|
|
72
78
|
isVersionEqualsOrMajorThan4_15={isVersionEqualsOrMajorThan4_15}
|
|
73
79
|
clusterId={clusterId}
|
|
80
|
+
supportLevel={supportLevel}
|
|
74
81
|
/>
|
|
75
82
|
}
|
|
76
83
|
isDisabled={!!disabledReason}
|