@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.
Files changed (246) hide show
  1. package/build/@types/cim/components/ClusterDeployment/ClusterDetailsFormFields.d.ts.map +1 -1
  2. package/build/@types/cim/components/ClusterDeployment/wizardTransition.d.ts +1 -1
  3. package/build/@types/cim/components/ClusterDeployment/wizardTransition.d.ts.map +1 -1
  4. package/build/@types/cim/components/common/constants.d.ts.map +1 -1
  5. package/build/@types/cim/components/helpers/toAssisted.d.ts.map +1 -1
  6. package/build/@types/cim/components/modals/AddHostModal.d.ts.map +1 -1
  7. package/build/@types/cim/types/k8s/infra-env-k8s-resource.d.ts +1 -0
  8. package/build/@types/cim/types/k8s/infra-env-k8s-resource.d.ts.map +1 -1
  9. package/build/@types/common/api/assisted-service/BundleAPI.d.ts +8 -0
  10. package/build/@types/common/api/assisted-service/BundleAPI.d.ts.map +1 -0
  11. package/build/@types/common/api/assisted-service/OperatorsAPI.d.ts +6 -0
  12. package/build/@types/common/api/assisted-service/OperatorsAPI.d.ts.map +1 -0
  13. package/build/@types/common/components/clusterConfiguration/ControlPlaneNodesDropdown.d.ts +7 -0
  14. package/build/@types/common/components/clusterConfiguration/ControlPlaneNodesDropdown.d.ts.map +1 -0
  15. package/build/@types/common/components/clusterConfiguration/DiscoveryImageConfigForm.d.ts.map +1 -1
  16. package/build/@types/common/components/clusterWizard/types.d.ts +3 -1
  17. package/build/@types/common/components/clusterWizard/types.d.ts.map +1 -1
  18. package/build/@types/common/components/hosts/HostRowDetail.d.ts.map +1 -1
  19. package/build/@types/common/components/storage/DisksTable.d.ts.map +1 -1
  20. package/build/@types/common/config/constants.d.ts +5 -0
  21. package/build/@types/common/config/constants.d.ts.map +1 -1
  22. package/build/@types/common/config/docs_links.d.ts +9 -1
  23. package/build/@types/common/config/docs_links.d.ts.map +1 -1
  24. package/build/@types/common/selectors/clusterSelectors.d.ts +1 -0
  25. package/build/@types/common/selectors/clusterSelectors.d.ts.map +1 -1
  26. package/build/@types/common/types/clusters.d.ts +8 -0
  27. package/build/@types/common/types/clusters.d.ts.map +1 -1
  28. package/build/@types/common/types/ui-settings.d.ts +1 -0
  29. package/build/@types/common/types/ui-settings.d.ts.map +1 -1
  30. package/build/@types/ocm/components/SentryErrorMonitorContextProvider.d.ts.map +1 -1
  31. package/build/@types/ocm/components/clusterConfiguration/ControlPlaneNodesDropdown.d.ts.map +1 -1
  32. package/build/@types/ocm/components/clusterConfiguration/operators/AuthorinoCheckbox.d.ts +8 -0
  33. package/build/@types/ocm/components/clusterConfiguration/operators/AuthorinoCheckbox.d.ts.map +1 -0
  34. package/build/@types/ocm/components/clusterConfiguration/operators/CnvCheckbox.d.ts +4 -1
  35. package/build/@types/ocm/components/clusterConfiguration/operators/CnvCheckbox.d.ts.map +1 -1
  36. package/build/@types/ocm/components/clusterConfiguration/operators/LsoCheckbox.d.ts +8 -0
  37. package/build/@types/ocm/components/clusterConfiguration/operators/LsoCheckbox.d.ts.map +1 -0
  38. package/build/@types/ocm/components/clusterConfiguration/operators/LvmCheckbox.d.ts +4 -1
  39. package/build/@types/ocm/components/clusterConfiguration/operators/LvmCheckbox.d.ts.map +1 -1
  40. package/build/@types/ocm/components/clusterConfiguration/operators/MceCheckbox.d.ts +4 -1
  41. package/build/@types/ocm/components/clusterConfiguration/operators/MceCheckbox.d.ts.map +1 -1
  42. package/build/@types/ocm/components/clusterConfiguration/operators/MtvOperatorCheckbox.d.ts +4 -1
  43. package/build/@types/ocm/components/clusterConfiguration/operators/MtvOperatorCheckbox.d.ts.map +1 -1
  44. package/build/@types/ocm/components/clusterConfiguration/operators/NmstateCheckbox.d.ts +10 -0
  45. package/build/@types/ocm/components/clusterConfiguration/operators/NmstateCheckbox.d.ts.map +1 -0
  46. package/build/@types/ocm/components/clusterConfiguration/operators/NmstateRequirements.d.ts +7 -0
  47. package/build/@types/ocm/components/clusterConfiguration/operators/NmstateRequirements.d.ts.map +1 -0
  48. package/build/@types/ocm/components/clusterConfiguration/operators/NodeFeatureDiscoveryCheckbox.d.ts +8 -0
  49. package/build/@types/ocm/components/clusterConfiguration/operators/NodeFeatureDiscoveryCheckbox.d.ts.map +1 -0
  50. package/build/@types/ocm/components/clusterConfiguration/operators/NvidiaGpuCheckbox.d.ts +8 -0
  51. package/build/@types/ocm/components/clusterConfiguration/operators/NvidiaGpuCheckbox.d.ts.map +1 -0
  52. package/build/@types/ocm/components/clusterConfiguration/operators/OdfCheckbox.d.ts +5 -1
  53. package/build/@types/ocm/components/clusterConfiguration/operators/OdfCheckbox.d.ts.map +1 -1
  54. package/build/@types/ocm/components/clusterConfiguration/operators/OpenShiftAICheckbox.d.ts +5 -1
  55. package/build/@types/ocm/components/clusterConfiguration/operators/OpenShiftAICheckbox.d.ts.map +1 -1
  56. package/build/@types/ocm/components/clusterConfiguration/operators/OpenShiftAIRequirements.d.ts.map +1 -1
  57. package/build/@types/ocm/components/clusterConfiguration/operators/OpenshiftAINvidiaRequirements.d.ts +4 -0
  58. package/build/@types/ocm/components/clusterConfiguration/operators/OpenshiftAINvidiaRequirements.d.ts.map +1 -0
  59. package/build/@types/ocm/components/clusterConfiguration/operators/OscCheckbox.d.ts +5 -1
  60. package/build/@types/ocm/components/clusterConfiguration/operators/OscCheckbox.d.ts.map +1 -1
  61. package/build/@types/ocm/components/clusterConfiguration/operators/PipelinesChekbox.d.ts +8 -0
  62. package/build/@types/ocm/components/clusterConfiguration/operators/PipelinesChekbox.d.ts.map +1 -0
  63. package/build/@types/ocm/components/clusterConfiguration/operators/ServerlessCheckbox.d.ts +8 -0
  64. package/build/@types/ocm/components/clusterConfiguration/operators/ServerlessCheckbox.d.ts.map +1 -0
  65. package/build/@types/ocm/components/clusterConfiguration/operators/ServicemeshCheckbox.d.ts +8 -0
  66. package/build/@types/ocm/components/clusterConfiguration/operators/ServicemeshCheckbox.d.ts.map +1 -0
  67. package/build/@types/ocm/components/clusterConfiguration/operators/SupportedOperators.d.ts +24 -0
  68. package/build/@types/ocm/components/clusterConfiguration/operators/SupportedOperators.d.ts.map +1 -0
  69. package/build/@types/ocm/components/clusterConfiguration/operators/VirtualizationRequirements.d.ts +4 -0
  70. package/build/@types/ocm/components/clusterConfiguration/operators/VirtualizationRequirements.d.ts.map +1 -0
  71. package/build/@types/ocm/components/clusterWizard/ClusterDetails.d.ts.map +1 -1
  72. package/build/@types/ocm/components/clusterWizard/Operators.d.ts.map +1 -1
  73. package/build/@types/ocm/components/clusterWizard/OperatorsStep.d.ts.map +1 -1
  74. package/build/@types/ocm/components/clusterWizard/wizardTransition.d.ts +1 -1
  75. package/build/@types/ocm/components/clusterWizard/wizardTransition.d.ts.map +1 -1
  76. package/build/@types/ocm/components/featureSupportLevels/featureStateUtils.d.ts.map +1 -1
  77. package/build/@types/ocm/config/constants.d.ts +2 -0
  78. package/build/@types/ocm/config/constants.d.ts.map +1 -1
  79. package/build/@types/ocm/sentry.d.ts +2 -2
  80. package/build/@types/ocm/sentry.d.ts.map +1 -1
  81. package/build/@types/ocm/services/BundleService.d.ts +6 -0
  82. package/build/@types/ocm/services/BundleService.d.ts.map +1 -0
  83. package/build/@types/ocm/services/ClustersService.d.ts +1 -0
  84. package/build/@types/ocm/services/ClustersService.d.ts.map +1 -1
  85. package/build/@types/ocm/services/OperatorsService.d.ts +1 -0
  86. package/build/@types/ocm/services/OperatorsService.d.ts.map +1 -1
  87. package/build/@types/ocm/store/slices/current-cluster/slice.d.ts +1 -0
  88. package/build/@types/ocm/store/slices/current-cluster/slice.d.ts.map +1 -1
  89. package/build/cjs/cim/components/ClusterDeployment/ClusterDetailsFormFields.js +4 -5
  90. package/build/cjs/cim/components/ClusterDeployment/ClusterDetailsFormFields.js.map +1 -1
  91. package/build/cjs/cim/components/InfraEnv/OpenshiftVersionDropdown.js +1 -1
  92. package/build/cjs/cim/components/InfraEnv/OpenshiftVersionDropdown.js.map +1 -1
  93. package/build/cjs/cim/components/common/constants.js +1 -1
  94. package/build/cjs/cim/components/common/constants.js.map +1 -1
  95. package/build/cjs/cim/components/helpers/toAssisted.js +2 -1
  96. package/build/cjs/cim/components/helpers/toAssisted.js.map +1 -1
  97. package/build/cjs/cim/components/modals/AddHostModal.js +4 -5
  98. package/build/cjs/cim/components/modals/AddHostModal.js.map +1 -1
  99. package/build/cjs/common/api/assisted-service/BundleAPI.js +16 -0
  100. package/build/cjs/common/api/assisted-service/BundleAPI.js.map +1 -0
  101. package/build/cjs/common/api/assisted-service/OperatorsAPI.js +13 -0
  102. package/build/cjs/common/api/assisted-service/OperatorsAPI.js.map +1 -0
  103. package/build/cjs/common/components/clusterConfiguration/ControlPlaneNodesDropdown.js +41 -0
  104. package/build/cjs/common/components/clusterConfiguration/ControlPlaneNodesDropdown.js.map +1 -0
  105. package/build/cjs/common/components/clusterConfiguration/DiscoveryImageConfigForm.js +4 -5
  106. package/build/cjs/common/components/clusterConfiguration/DiscoveryImageConfigForm.js.map +1 -1
  107. package/build/cjs/common/components/clusterConfiguration/DiscoveryImageTypeControlGroup.js +5 -5
  108. package/build/cjs/common/components/clusterConfiguration/DiscoveryImageTypeControlGroup.js.map +1 -1
  109. package/build/cjs/common/components/clusterWizard/clusterDetailsValidation.js +2 -2
  110. package/build/cjs/common/components/clusterWizard/clusterDetailsValidation.js.map +1 -1
  111. package/build/cjs/common/components/hosts/AITableMemo.js +16 -13
  112. package/build/cjs/common/components/hosts/AITableMemo.js.map +1 -1
  113. package/build/cjs/common/components/hosts/HostRowDetail.js +35 -1
  114. package/build/cjs/common/components/hosts/HostRowDetail.js.map +1 -1
  115. package/build/cjs/common/components/storage/DisksTable.js +16 -10
  116. package/build/cjs/common/components/storage/DisksTable.js.map +1 -1
  117. package/build/cjs/common/config/constants.js +11 -1
  118. package/build/cjs/common/config/constants.js.map +1 -1
  119. package/build/cjs/common/config/docs_links.js +10 -2
  120. package/build/cjs/common/config/docs_links.js.map +1 -1
  121. package/build/cjs/common/selectors/clusterSelectors.js +7 -1
  122. package/build/cjs/common/selectors/clusterSelectors.js.map +1 -1
  123. package/build/cjs/common/types/clusters.js.map +1 -1
  124. package/build/cjs/ocm/components/SentryErrorMonitorContextProvider.js.map +1 -1
  125. package/build/cjs/ocm/components/clusterConfiguration/ControlPlaneNodesDropdown.js +10 -9
  126. package/build/cjs/ocm/components/clusterConfiguration/ControlPlaneNodesDropdown.js.map +1 -1
  127. package/build/cjs/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.js +2 -2
  128. package/build/cjs/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.js.map +1 -1
  129. package/build/cjs/ocm/components/clusterConfiguration/operators/AuthorinoCheckbox.js +34 -0
  130. package/build/cjs/ocm/components/clusterConfiguration/operators/AuthorinoCheckbox.js.map +1 -0
  131. package/build/cjs/ocm/components/clusterConfiguration/operators/CnvCheckbox.js +8 -20
  132. package/build/cjs/ocm/components/clusterConfiguration/operators/CnvCheckbox.js.map +1 -1
  133. package/build/cjs/ocm/components/clusterConfiguration/operators/LsoCheckbox.js +34 -0
  134. package/build/cjs/ocm/components/clusterConfiguration/operators/LsoCheckbox.js.map +1 -0
  135. package/build/cjs/ocm/components/clusterConfiguration/operators/LvmCheckbox.js +5 -21
  136. package/build/cjs/ocm/components/clusterConfiguration/operators/LvmCheckbox.js.map +1 -1
  137. package/build/cjs/ocm/components/clusterConfiguration/operators/MceCheckbox.js +6 -7
  138. package/build/cjs/ocm/components/clusterConfiguration/operators/MceCheckbox.js.map +1 -1
  139. package/build/cjs/ocm/components/clusterConfiguration/operators/MtvOperatorCheckbox.js +8 -13
  140. package/build/cjs/ocm/components/clusterConfiguration/operators/MtvOperatorCheckbox.js.map +1 -1
  141. package/build/cjs/ocm/components/clusterConfiguration/operators/NmstateCheckbox.js +35 -0
  142. package/build/cjs/ocm/components/clusterConfiguration/operators/NmstateCheckbox.js.map +1 -0
  143. package/build/cjs/ocm/components/clusterConfiguration/operators/NmstateRequirements.js +48 -0
  144. package/build/cjs/ocm/components/clusterConfiguration/operators/NmstateRequirements.js.map +1 -0
  145. package/build/cjs/ocm/components/clusterConfiguration/operators/NodeFeatureDiscoveryCheckbox.js +34 -0
  146. package/build/cjs/ocm/components/clusterConfiguration/operators/NodeFeatureDiscoveryCheckbox.js.map +1 -0
  147. package/build/cjs/ocm/components/clusterConfiguration/operators/NvidiaGpuCheckbox.js +34 -0
  148. package/build/cjs/ocm/components/clusterConfiguration/operators/NvidiaGpuCheckbox.js.map +1 -0
  149. package/build/cjs/ocm/components/clusterConfiguration/operators/OdfCheckbox.js +11 -17
  150. package/build/cjs/ocm/components/clusterConfiguration/operators/OdfCheckbox.js.map +1 -1
  151. package/build/cjs/ocm/components/clusterConfiguration/operators/OpenShiftAICheckbox.js +4 -17
  152. package/build/cjs/ocm/components/clusterConfiguration/operators/OpenShiftAICheckbox.js.map +1 -1
  153. package/build/cjs/ocm/components/clusterConfiguration/operators/OpenShiftAIRequirements.js +1 -12
  154. package/build/cjs/ocm/components/clusterConfiguration/operators/OpenShiftAIRequirements.js.map +1 -1
  155. package/build/cjs/ocm/components/clusterConfiguration/operators/OpenshiftAINvidiaRequirements.js +30 -0
  156. package/build/cjs/ocm/components/clusterConfiguration/operators/OpenshiftAINvidiaRequirements.js.map +1 -0
  157. package/build/cjs/ocm/components/clusterConfiguration/operators/OscCheckbox.js +3 -12
  158. package/build/cjs/ocm/components/clusterConfiguration/operators/OscCheckbox.js.map +1 -1
  159. package/build/cjs/ocm/components/clusterConfiguration/operators/PipelinesChekbox.js +34 -0
  160. package/build/cjs/ocm/components/clusterConfiguration/operators/PipelinesChekbox.js.map +1 -0
  161. package/build/cjs/ocm/components/clusterConfiguration/operators/ServerlessCheckbox.js +34 -0
  162. package/build/cjs/ocm/components/clusterConfiguration/operators/ServerlessCheckbox.js.map +1 -0
  163. package/build/cjs/ocm/components/clusterConfiguration/operators/ServicemeshCheckbox.js +34 -0
  164. package/build/cjs/ocm/components/clusterConfiguration/operators/ServicemeshCheckbox.js.map +1 -0
  165. package/build/cjs/ocm/components/clusterConfiguration/operators/SupportedOperators.js +73 -0
  166. package/build/cjs/ocm/components/clusterConfiguration/operators/SupportedOperators.js.map +1 -0
  167. package/build/cjs/ocm/components/clusterConfiguration/operators/VirtualizationRequirements.js +19 -0
  168. package/build/cjs/ocm/components/clusterConfiguration/operators/VirtualizationRequirements.js.map +1 -0
  169. package/build/cjs/ocm/components/clusterConfiguration/staticIp/components/FormViewHosts/FormViewHostsFields.js +1 -1
  170. package/build/cjs/ocm/components/clusterConfiguration/staticIp/components/FormViewHosts/FormViewHostsFields.js.map +1 -1
  171. package/build/cjs/ocm/components/clusterWizard/ClusterDetails.js +4 -0
  172. package/build/cjs/ocm/components/clusterWizard/ClusterDetails.js.map +1 -1
  173. package/build/cjs/ocm/components/clusterWizard/Operators.js +9 -1
  174. package/build/cjs/ocm/components/clusterWizard/Operators.js.map +1 -1
  175. package/build/cjs/ocm/components/clusterWizard/OperatorsStep.js +239 -22
  176. package/build/cjs/ocm/components/clusterWizard/OperatorsStep.js.map +1 -1
  177. package/build/cjs/ocm/components/clusterWizard/wizardTransition.js +1 -1
  178. package/build/cjs/ocm/components/clusterWizard/wizardTransition.js.map +1 -1
  179. package/build/cjs/ocm/components/featureSupportLevels/featureStateUtils.js +41 -1
  180. package/build/cjs/ocm/components/featureSupportLevels/featureStateUtils.js.map +1 -1
  181. package/build/cjs/ocm/config/constants.js +155 -1
  182. package/build/cjs/ocm/config/constants.js.map +1 -1
  183. package/build/cjs/ocm/sentry.js +1 -1
  184. package/build/cjs/ocm/sentry.js.map +1 -1
  185. package/build/cjs/ocm/services/BundleService.js +20 -0
  186. package/build/cjs/ocm/services/BundleService.js.map +1 -0
  187. package/build/cjs/ocm/services/ClustersService.js +26 -0
  188. package/build/cjs/ocm/services/ClustersService.js.map +1 -1
  189. package/build/cjs/ocm/services/OperatorsService.js +16 -8
  190. package/build/cjs/ocm/services/OperatorsService.js.map +1 -1
  191. package/lib/cim/components/ClusterDeployment/ClusterDetailsFormFields.tsx +4 -6
  192. package/lib/cim/components/InfraEnv/OpenshiftVersionDropdown.tsx +1 -1
  193. package/lib/cim/components/common/constants.ts +1 -2
  194. package/lib/cim/components/helpers/toAssisted.ts +1 -0
  195. package/lib/cim/components/modals/AddHostModal.tsx +4 -5
  196. package/lib/cim/types/k8s/infra-env-k8s-resource.ts +1 -0
  197. package/lib/common/api/assisted-service/BundleAPI.ts +18 -0
  198. package/lib/common/api/assisted-service/OperatorsAPI.ts +13 -0
  199. package/lib/common/components/clusterConfiguration/ControlPlaneNodesDropdown.tsx +93 -0
  200. package/lib/common/components/clusterConfiguration/DiscoveryImageConfigForm.tsx +10 -12
  201. package/lib/common/components/clusterConfiguration/DiscoveryImageTypeControlGroup.tsx +9 -9
  202. package/lib/common/components/clusterWizard/clusterDetailsValidation.ts +1 -1
  203. package/lib/common/components/clusterWizard/types.ts +4 -2
  204. package/lib/common/components/hosts/AITableMemo.tsx +1 -1
  205. package/lib/common/components/hosts/HostRowDetail.tsx +71 -1
  206. package/lib/common/components/storage/DisksTable.tsx +25 -18
  207. package/lib/common/config/constants.ts +10 -0
  208. package/lib/common/config/docs_links.ts +24 -1
  209. package/lib/common/selectors/clusterSelectors.ts +8 -0
  210. package/lib/common/types/clusters.ts +8 -0
  211. package/lib/common/types/ui-settings.ts +1 -0
  212. package/lib/ocm/components/SentryErrorMonitorContextProvider.tsx +1 -2
  213. package/lib/ocm/components/clusterConfiguration/ControlPlaneNodesDropdown.tsx +13 -12
  214. package/lib/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.tsx +2 -2
  215. package/lib/ocm/components/clusterConfiguration/operators/AuthorinoCheckbox.tsx +67 -0
  216. package/lib/ocm/components/clusterConfiguration/operators/CnvCheckbox.tsx +12 -25
  217. package/lib/ocm/components/clusterConfiguration/operators/LsoCheckbox.tsx +67 -0
  218. package/lib/ocm/components/clusterConfiguration/operators/LvmCheckbox.tsx +8 -26
  219. package/lib/ocm/components/clusterConfiguration/operators/MceCheckbox.tsx +10 -3
  220. package/lib/ocm/components/clusterConfiguration/operators/MtvOperatorCheckbox.tsx +23 -12
  221. package/lib/ocm/components/clusterConfiguration/operators/NmstateCheckbox.tsx +85 -0
  222. package/lib/ocm/components/clusterConfiguration/operators/NmstateRequirements.tsx +53 -0
  223. package/lib/ocm/components/clusterConfiguration/operators/NodeFeatureDiscoveryCheckbox.tsx +70 -0
  224. package/lib/ocm/components/clusterConfiguration/operators/NvidiaGpuCheckbox.tsx +67 -0
  225. package/lib/ocm/components/clusterConfiguration/operators/OdfCheckbox.tsx +24 -18
  226. package/lib/ocm/components/clusterConfiguration/operators/OpenShiftAICheckbox.tsx +11 -24
  227. package/lib/ocm/components/clusterConfiguration/operators/OpenShiftAIRequirements.tsx +0 -14
  228. package/lib/ocm/components/clusterConfiguration/operators/OpenshiftAINvidiaRequirements.tsx +36 -0
  229. package/lib/ocm/components/clusterConfiguration/operators/OscCheckbox.tsx +10 -25
  230. package/lib/ocm/components/clusterConfiguration/operators/PipelinesChekbox.tsx +68 -0
  231. package/lib/ocm/components/clusterConfiguration/operators/ServerlessCheckbox.tsx +67 -0
  232. package/lib/ocm/components/clusterConfiguration/operators/ServicemeshCheckbox.tsx +67 -0
  233. package/lib/ocm/components/clusterConfiguration/operators/SupportedOperators.tsx +105 -0
  234. package/lib/ocm/components/clusterConfiguration/operators/VirtualizationRequirements.tsx +26 -0
  235. package/lib/ocm/components/clusterConfiguration/staticIp/components/FormViewHosts/FormViewHostsFields.tsx +1 -1
  236. package/lib/ocm/components/clusterWizard/ClusterDetails.tsx +4 -0
  237. package/lib/ocm/components/clusterWizard/Operators.tsx +21 -1
  238. package/lib/ocm/components/clusterWizard/OperatorsStep.tsx +419 -38
  239. package/lib/ocm/components/clusterWizard/wizardTransition.ts +1 -1
  240. package/lib/ocm/components/featureSupportLevels/featureStateUtils.ts +41 -1
  241. package/lib/ocm/config/constants.ts +156 -0
  242. package/lib/ocm/sentry.ts +2 -1
  243. package/lib/ocm/services/BundleService.ts +14 -0
  244. package/lib/ocm/services/ClustersService.ts +28 -0
  245. package/lib/ocm/services/OperatorsService.tsx +21 -10
  246. package/package.json +3 -3
@@ -1,4 +1,4 @@
1
- import React, { useState } from '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
4
  import {
@@ -9,18 +9,21 @@ import {
9
9
  ClusterOperatorProps,
10
10
  } from '../../../../common';
11
11
  import { OcmCheckboxField } from '../../ui/OcmFormFields';
12
- import { useNewFeatureSupportLevel } from '../../../../common/components/newFeatureSupportLevels';
13
12
  import { useFormikContext } from 'formik';
14
13
  import MtvRequirements from './MtvRequirements';
14
+ import { SupportLevel } from '@openshift-assisted/types/./assisted-installer-service';
15
+ import NewFeatureSupportLevelBadge from '../../../../common/components/newFeatureSupportLevels/NewFeatureSupportLevelBadge';
15
16
 
16
17
  const Mtv_FIELD_NAME = 'useMigrationToolkitforVirtualization';
17
18
 
18
19
  const MtvLabel = ({
19
20
  disabledReason,
20
21
  clusterId,
22
+ supportLevel,
21
23
  }: {
22
24
  disabledReason?: string;
23
25
  clusterId: string;
26
+ supportLevel?: SupportLevel;
24
27
  }) => (
25
28
  <>
26
29
  <Tooltip hidden={!disabledReason} content={disabledReason}>
@@ -31,6 +34,7 @@ const MtvLabel = ({
31
34
  headerContent="Additional requirements"
32
35
  bodyContent={<MtvRequirements clusterId={clusterId} />}
33
36
  />
37
+ <NewFeatureSupportLevelBadge featureId="MTV" supportLevel={supportLevel} />
34
38
  </>
35
39
  );
36
40
 
@@ -49,26 +53,33 @@ const MtvHelperText = () => {
49
53
  );
50
54
  };
51
55
 
52
- const MtvCheckbox = ({ clusterId }: { clusterId: ClusterOperatorProps['clusterId'] }) => {
53
- const featureSupportLevelContext = useNewFeatureSupportLevel();
54
- const { values, setFieldValue } = useFormikContext<OperatorsValues>();
56
+ const MtvCheckbox = ({
57
+ clusterId,
58
+ disabledReason,
59
+ supportLevel,
60
+ }: {
61
+ clusterId: ClusterOperatorProps['clusterId'];
62
+ disabledReason?: string;
63
+ supportLevel?: SupportLevel | undefined;
64
+ }) => {
65
+ const { setFieldValue } = useFormikContext<OperatorsValues>();
55
66
  const fieldId = getFieldId(Mtv_FIELD_NAME, 'input');
56
- const [disabledReason, setDisabledReason] = useState<string | undefined>();
57
67
 
58
68
  const selectCNVOperator = (checked: boolean) => {
59
69
  setFieldValue('useContainerNativeVirtualization', checked);
60
70
  };
61
71
 
62
- React.useEffect(() => {
63
- const disabledReason = featureSupportLevelContext.getFeatureDisabledReason('MTV');
64
- setDisabledReason(disabledReason);
65
- }, [values, featureSupportLevelContext]);
66
-
67
72
  return (
68
73
  <FormGroup isInline fieldId={fieldId}>
69
74
  <OcmCheckboxField
70
75
  name={Mtv_FIELD_NAME}
71
- label={<MtvLabel disabledReason={disabledReason} clusterId={clusterId} />}
76
+ label={
77
+ <MtvLabel
78
+ disabledReason={disabledReason}
79
+ clusterId={clusterId}
80
+ supportLevel={supportLevel}
81
+ />
82
+ }
72
83
  isDisabled={!!disabledReason}
73
84
  helperText={<MtvHelperText />}
74
85
  onChange={selectCNVOperator}
@@ -0,0 +1,85 @@
1
+ import React from 'react';
2
+ import { FormGroup, HelperText, HelperTextItem, Tooltip } from '@patternfly/react-core';
3
+ import {
4
+ getFieldId,
5
+ PopoverIcon,
6
+ ClusterOperatorProps,
7
+ NMSTATE_OPERATOR_LINK,
8
+ } from '../../../../common';
9
+ import { OcmCheckboxField } from '../../ui/OcmFormFields';
10
+ import NmstateRequirements from './NmstateRequirements';
11
+ import { SupportLevel } from '@openshift-assisted/types/./assisted-installer-service';
12
+ import NewFeatureSupportLevelBadge from '../../../../common/components/newFeatureSupportLevels/NewFeatureSupportLevelBadge';
13
+ import ExternalLinkAltIcon from '@patternfly/react-icons/dist/js/icons/external-link-alt-icon';
14
+
15
+ const NMSTATE_FIELD_NAME = 'useNmstate';
16
+
17
+ const NmstateLabel = ({
18
+ disabledReason,
19
+ clusterId,
20
+ supportLevel,
21
+ }: {
22
+ disabledReason?: string;
23
+ clusterId: ClusterOperatorProps['clusterId'];
24
+ supportLevel?: SupportLevel;
25
+ }) => {
26
+ return (
27
+ <>
28
+ <Tooltip hidden={!disabledReason} content={disabledReason}>
29
+ <span>Install NMState </span>
30
+ </Tooltip>
31
+ <PopoverIcon
32
+ id={NMSTATE_FIELD_NAME}
33
+ component={'a'}
34
+ headerContent="Additional requirements"
35
+ bodyContent={<NmstateRequirements clusterId={clusterId} />}
36
+ />
37
+ <NewFeatureSupportLevelBadge featureId="NMSTATE" supportLevel={supportLevel} />
38
+ </>
39
+ );
40
+ };
41
+
42
+ const NmstateHelperText = () => {
43
+ return (
44
+ <HelperText>
45
+ <HelperTextItem variant="indeterminate">
46
+ Provides users with functionality to configure various network interface types, DNS, and
47
+ routing on cluster nodes.{' '}
48
+ <a href={NMSTATE_OPERATOR_LINK} target="_blank" rel="noopener noreferrer">
49
+ {'Learn more'} <ExternalLinkAltIcon />
50
+ </a>
51
+ </HelperTextItem>
52
+ </HelperText>
53
+ );
54
+ };
55
+
56
+ const NmstateCheckbox = ({
57
+ clusterId,
58
+ disabledReason,
59
+ supportLevel,
60
+ }: {
61
+ clusterId: ClusterOperatorProps['clusterId'];
62
+ disabledReason?: string;
63
+ supportLevel?: SupportLevel | undefined;
64
+ }) => {
65
+ const fieldId = getFieldId(NMSTATE_FIELD_NAME, 'input');
66
+
67
+ return (
68
+ <FormGroup isInline fieldId={fieldId}>
69
+ <OcmCheckboxField
70
+ name={NMSTATE_FIELD_NAME}
71
+ label={
72
+ <NmstateLabel
73
+ clusterId={clusterId}
74
+ disabledReason={disabledReason}
75
+ supportLevel={supportLevel}
76
+ />
77
+ }
78
+ helperText={<NmstateHelperText />}
79
+ isDisabled={!!disabledReason}
80
+ />
81
+ </FormGroup>
82
+ );
83
+ };
84
+
85
+ export default NmstateCheckbox;
@@ -0,0 +1,53 @@
1
+ import React from 'react';
2
+ import { useSelector } from 'react-redux';
3
+ import { List, ListItem } from '@patternfly/react-core';
4
+ import { useClusterPreflightRequirements } from '../../../hooks';
5
+ import { ErrorState, LoadingState, OPERATOR_NAME_NMSTATE, RenderIf } from '../../../../common';
6
+ import { Cluster } from '@openshift-assisted/types/assisted-installer-service';
7
+ import { selectIsCurrentClusterSNO } from '../../../store/slices/current-cluster/selectors';
8
+
9
+ const NmstateRequirements = ({ clusterId }: { clusterId: Cluster['id'] }) => {
10
+ const { preflightRequirements, error, isLoading } = useClusterPreflightRequirements(clusterId);
11
+ const isSingleNode = useSelector(selectIsCurrentClusterSNO);
12
+
13
+ if (isLoading) {
14
+ return <LoadingState content="Loading hardware requirements ..." />;
15
+ }
16
+ if (error) {
17
+ return <ErrorState />;
18
+ }
19
+
20
+ const NmstateRequirements = preflightRequirements?.operators?.find(
21
+ (operatorRequirements) => operatorRequirements.operatorName === OPERATOR_NAME_NMSTATE,
22
+ );
23
+
24
+ const workerRequirements = NmstateRequirements?.requirements?.worker?.quantitative;
25
+ const masterRequirements = NmstateRequirements?.requirements?.master?.quantitative;
26
+
27
+ return (
28
+ <>
29
+ <List>
30
+ <RenderIf condition={!isSingleNode}>
31
+ <ListItem>
32
+ Each worker node requires an additional {workerRequirements?.ramMib || 360} MiB of
33
+ memory {workerRequirements?.diskSizeGb ? ',' : ''}{' '}
34
+ {workerRequirements?.cpuCores ? ` and ${workerRequirements?.cpuCores} CPUs` : ''}
35
+ {workerRequirements?.diskSizeGb
36
+ ? ` and ${workerRequirements?.diskSizeGb} storage space`
37
+ : ''}
38
+ </ListItem>
39
+ </RenderIf>
40
+ <ListItem>
41
+ Each control plane node requires an additional {masterRequirements?.ramMib || 150} MiB of
42
+ memory {masterRequirements?.diskSizeGb ? ',' : ''}{' '}
43
+ {masterRequirements?.cpuCores ? ` and ${masterRequirements?.cpuCores} CPUs` : ''}
44
+ {masterRequirements?.diskSizeGb
45
+ ? ` and ${masterRequirements?.diskSizeGb} storage space`
46
+ : ''}
47
+ </ListItem>
48
+ </List>
49
+ </>
50
+ );
51
+ };
52
+
53
+ export default NmstateRequirements;
@@ -0,0 +1,70 @@
1
+ import React from 'react';
2
+ import { FormGroup, HelperText, HelperTextItem, Tooltip } from '@patternfly/react-core';
3
+ import { getFieldId, NODE_FEATURE_DISCOVERY_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 NODEFEATUREDISCOVERY_FIELD_NAME = 'useNodeFeatureDiscovery';
10
+
11
+ const NodeFeatureDiscoveryLabel = ({
12
+ disabledReason,
13
+ supportLevel,
14
+ }: {
15
+ disabledReason?: string;
16
+ supportLevel?: SupportLevel;
17
+ }) => {
18
+ return (
19
+ <>
20
+ <Tooltip hidden={!disabledReason} content={disabledReason}>
21
+ <span>Install Node Feature Discovery </span>
22
+ </Tooltip>
23
+ <PopoverIcon
24
+ id={NODEFEATUREDISCOVERY_FIELD_NAME}
25
+ component={'a'}
26
+ bodyContent={'No additional requirements needed'}
27
+ />
28
+ <NewFeatureSupportLevelBadge featureId="NODE_FEATURE_DISCOVERY" supportLevel={supportLevel} />
29
+ </>
30
+ );
31
+ };
32
+
33
+ const NodeFeatureDiscoveryHelperText = () => {
34
+ return (
35
+ <HelperText>
36
+ <HelperTextItem variant="indeterminate">
37
+ Manage the detection of hardware features and configuration by labeling nodes with
38
+ hardware-specific information.{' '}
39
+ <a href={NODE_FEATURE_DISCOVERY_OPERATOR_LINK} target="_blank" rel="noopener noreferrer">
40
+ {'Learn more'} <ExternalLinkAltIcon />
41
+ </a>
42
+ </HelperTextItem>
43
+ </HelperText>
44
+ );
45
+ };
46
+
47
+ const NodeFeatureDiscoveryCheckbox = ({
48
+ disabledReason,
49
+ supportLevel,
50
+ }: {
51
+ disabledReason?: string;
52
+ supportLevel?: SupportLevel | undefined;
53
+ }) => {
54
+ const fieldId = getFieldId(NODEFEATUREDISCOVERY_FIELD_NAME, 'input');
55
+
56
+ return (
57
+ <FormGroup isInline fieldId={fieldId}>
58
+ <OcmCheckboxField
59
+ name={NODEFEATUREDISCOVERY_FIELD_NAME}
60
+ label={
61
+ <NodeFeatureDiscoveryLabel disabledReason={disabledReason} supportLevel={supportLevel} />
62
+ }
63
+ helperText={<NodeFeatureDiscoveryHelperText />}
64
+ isDisabled={!!disabledReason}
65
+ />
66
+ </FormGroup>
67
+ );
68
+ };
69
+
70
+ export default NodeFeatureDiscoveryCheckbox;
@@ -0,0 +1,67 @@
1
+ import React from 'react';
2
+ import { FormGroup, HelperText, HelperTextItem, Tooltip } from '@patternfly/react-core';
3
+ import { getFieldId, NVIDIA_GPU_OPERATOR_LINK, PopoverIcon } from '../../../../common';
4
+ import { OcmCheckboxField } from '../../ui/OcmFormFields';
5
+ import { SupportLevel } from '@openshift-assisted/types/./assisted-installer-service';
6
+ import NewFeatureSupportLevelBadge from '../../../../common/components/newFeatureSupportLevels/NewFeatureSupportLevelBadge';
7
+ import ExternalLinkAltIcon from '@patternfly/react-icons/dist/js/icons/external-link-alt-icon';
8
+
9
+ const NVIDIAGPU_FIELD_NAME = 'useNvidiaGpu';
10
+
11
+ const NvidiaGpuLabel = ({
12
+ disabledReason,
13
+ supportLevel,
14
+ }: {
15
+ disabledReason?: string;
16
+ supportLevel?: SupportLevel;
17
+ }) => {
18
+ return (
19
+ <>
20
+ <Tooltip hidden={!disabledReason} content={disabledReason}>
21
+ <span>Install NVIDIA GPU </span>
22
+ </Tooltip>
23
+ <PopoverIcon
24
+ id={NVIDIAGPU_FIELD_NAME}
25
+ component={'a'}
26
+ bodyContent={'No additional requirements needed'}
27
+ />
28
+ <NewFeatureSupportLevelBadge featureId="NVIDIA_GPU" supportLevel={supportLevel} />
29
+ </>
30
+ );
31
+ };
32
+
33
+ const NvidiaGpuHelperText = () => {
34
+ return (
35
+ <HelperText>
36
+ <HelperTextItem variant="indeterminate">
37
+ Automate the management of NVIDIA software components needed to provision and monitor GPUs.{' '}
38
+ <a href={NVIDIA_GPU_OPERATOR_LINK} target="_blank" rel="noopener noreferrer">
39
+ {'Learn more'} <ExternalLinkAltIcon />
40
+ </a>
41
+ </HelperTextItem>
42
+ </HelperText>
43
+ );
44
+ };
45
+
46
+ const NvidiaGpuCheckbox = ({
47
+ disabledReason,
48
+ supportLevel,
49
+ }: {
50
+ disabledReason?: string;
51
+ supportLevel?: SupportLevel | undefined;
52
+ }) => {
53
+ const fieldId = getFieldId(NVIDIAGPU_FIELD_NAME, 'input');
54
+
55
+ return (
56
+ <FormGroup isInline fieldId={fieldId}>
57
+ <OcmCheckboxField
58
+ name={NVIDIAGPU_FIELD_NAME}
59
+ label={<NvidiaGpuLabel disabledReason={disabledReason} supportLevel={supportLevel} />}
60
+ helperText={<NvidiaGpuHelperText />}
61
+ isDisabled={!!disabledReason}
62
+ />
63
+ </FormGroup>
64
+ );
65
+ };
66
+
67
+ export default NvidiaGpuCheckbox;
@@ -1,4 +1,4 @@
1
- import React, { useState } from '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
4
  import {
@@ -9,13 +9,19 @@ import {
9
9
  OperatorsValues,
10
10
  } from '../../../../common';
11
11
  import { OcmCheckboxField } from '../../ui/OcmFormFields';
12
- import { useNewFeatureSupportLevel } from '../../../../common/components/newFeatureSupportLevels';
12
+ import NewFeatureSupportLevelBadge from '../../../../common/components/newFeatureSupportLevels/NewFeatureSupportLevelBadge';
13
+ import { SupportLevel } from '@openshift-assisted/types/./assisted-installer-service';
13
14
  import { useFormikContext } from 'formik';
14
- import { getOdfIncompatibleWithLvmsReason } from '../../featureSupportLevels/featureStateUtils';
15
15
 
16
16
  const ODF_FIELD_NAME = 'useOpenShiftDataFoundation';
17
17
 
18
- const OdfLabel = ({ disabledReason }: { disabledReason?: string }) => (
18
+ const OdfLabel = ({
19
+ disabledReason,
20
+ supportLevel,
21
+ }: {
22
+ disabledReason?: string;
23
+ supportLevel?: SupportLevel;
24
+ }) => (
19
25
  <>
20
26
  <Tooltip hidden={!disabledReason} content={disabledReason}>
21
27
  <span>Install OpenShift Data Foundation </span>
@@ -29,6 +35,7 @@ const OdfLabel = ({ disabledReason }: { disabledReason?: string }) => (
29
35
  </a>
30
36
  }
31
37
  />
38
+ <NewFeatureSupportLevelBadge featureId="ODF" supportLevel={supportLevel} />
32
39
  </>
33
40
  );
34
41
 
@@ -45,27 +52,26 @@ const OdfHelperText = () => {
45
52
  );
46
53
  };
47
54
 
48
- const OdfCheckbox = () => {
49
- const featureSupportLevelContext = useNewFeatureSupportLevel();
50
- const { values } = useFormikContext<OperatorsValues>();
55
+ const OdfCheckbox = ({
56
+ disabledReason,
57
+ supportLevel,
58
+ }: {
59
+ disabledReason?: string;
60
+ supportLevel?: SupportLevel | undefined;
61
+ }) => {
62
+ const { setFieldValue } = useFormikContext<OperatorsValues>();
51
63
  const fieldId = getFieldId(ODF_FIELD_NAME, 'input');
52
- const [disabledReason, setDisabledReason] = useState<string | undefined>();
53
-
54
- React.useEffect(() => {
55
- let disabledReason = featureSupportLevelContext.getFeatureDisabledReason('ODF');
56
- if (!disabledReason) {
57
- disabledReason = getOdfIncompatibleWithLvmsReason(values);
58
- }
59
- setDisabledReason(disabledReason);
60
- }, [values, featureSupportLevelContext]);
61
-
64
+ const selectLsoOperator = (checked: boolean) => {
65
+ setFieldValue('useLso', checked);
66
+ };
62
67
  return (
63
68
  <FormGroup isInline fieldId={fieldId}>
64
69
  <OcmCheckboxField
65
70
  name={ODF_FIELD_NAME}
66
- label={<OdfLabel disabledReason={disabledReason} />}
71
+ label={<OdfLabel disabledReason={disabledReason} supportLevel={supportLevel} />}
67
72
  isDisabled={!!disabledReason}
68
73
  helperText={<OdfHelperText />}
74
+ onChange={selectLsoOperator}
69
75
  />
70
76
  </FormGroup>
71
77
  );
@@ -1,14 +1,11 @@
1
- import React, { useState } from '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
- import { getFieldId, PopoverIcon, OPENSHIFT_AI_LINK, OperatorsValues } from '../../../../common';
4
+ import { getFieldId, PopoverIcon, OPENSHIFT_AI_LINK } from '../../../../common';
6
5
  import OpenShiftAIRequirements from './OpenShiftAIRequirements';
7
6
  import { OcmCheckboxField } from '../../ui/OcmFormFields';
8
- import { useNewFeatureSupportLevel } from '../../../../common/components/newFeatureSupportLevels';
9
7
  import NewFeatureSupportLevelBadge from '../../../../common/components/newFeatureSupportLevels/NewFeatureSupportLevelBadge';
10
8
  import { SupportLevel } from '@openshift-assisted/types/assisted-installer-service';
11
- import { getOpenShiftAIIncompatibleWithLvmsReason } from '../../featureSupportLevels/featureStateUtils';
12
9
 
13
10
  const OPENSHIFT_AI_FIELD_NAME = 'useOpenShiftAI';
14
11
 
@@ -21,7 +18,7 @@ const OpenShiftAILabel = ({ disabledReason, supportLevel }: OpenShiftAILabelProp
21
18
  return (
22
19
  <>
23
20
  <Tooltip hidden={!disabledReason} content={disabledReason}>
24
- <span>Install OpenShift AI bundle </span>
21
+ <span>Install OpenShift AI </span>
25
22
  </Tooltip>
26
23
  <PopoverIcon
27
24
  component={'a'}
@@ -46,30 +43,20 @@ const OpenShiftAIHelperText = () => {
46
43
  );
47
44
  };
48
45
 
49
- const OpenShiftAICheckbox = () => {
50
- const featureSupportLevel = useNewFeatureSupportLevel();
51
- const { values } = useFormikContext<OperatorsValues>();
46
+ const OpenShiftAICheckbox = ({
47
+ disabledReason,
48
+ supportLevel,
49
+ }: {
50
+ disabledReason?: string;
51
+ supportLevel?: SupportLevel | undefined;
52
+ }) => {
52
53
  const fieldId = getFieldId(OPENSHIFT_AI_FIELD_NAME, 'input');
53
- const [disabledReason, setDisabledReason] = useState<string | undefined>();
54
-
55
- React.useEffect(() => {
56
- let disabledReason = featureSupportLevel.getFeatureDisabledReason('OPENSHIFT_AI');
57
- if (!disabledReason) {
58
- disabledReason = getOpenShiftAIIncompatibleWithLvmsReason(values);
59
- }
60
- setDisabledReason(disabledReason);
61
- }, [values, featureSupportLevel]);
62
54
 
63
55
  return (
64
56
  <FormGroup isInline fieldId={fieldId}>
65
57
  <OcmCheckboxField
66
58
  name={OPENSHIFT_AI_FIELD_NAME}
67
- label={
68
- <OpenShiftAILabel
69
- disabledReason={disabledReason}
70
- supportLevel={featureSupportLevel.getFeatureSupportLevel('OPENSHIFT_AI')}
71
- />
72
- }
59
+ label={<OpenShiftAILabel disabledReason={disabledReason} supportLevel={supportLevel} />}
73
60
  isDisabled={!!disabledReason}
74
61
  helperText={<OpenShiftAIHelperText />}
75
62
  />
@@ -11,20 +11,6 @@ const OpenShiftAIRequirements = () => {
11
11
  <ListItem>
12
12
  Each worker node requires 32 additional GiB of memory and 8 additional CPUs.
13
13
  </ListItem>
14
- <ListItem>At least one supported GPU. Currently only NVIDIA GPUs are supported.</ListItem>
15
- <ListItem>
16
- Nodes that have NVIDIA GPUs installed need to have secure boot disabled.
17
- </ListItem>
18
- </List>
19
- Bundle operators:
20
- <List>
21
- <ListItem>OpenShift Data Foundation</ListItem>
22
- <ListItem>Node Feature Discovery</ListItem>
23
- <ListItem>NVIDIA GPU</ListItem>
24
- <ListItem>Pipelines</ListItem>
25
- <ListItem>Service Mesh</ListItem>
26
- <ListItem>Serverless</ListItem>
27
- <ListItem>Authorino</ListItem>
28
14
  </List>
29
15
  <a href={OPENSHIFT_AI_REQUIREMENTS_LINK} target="_blank" rel="noopener noreferrer">
30
16
  Learn more <ExternalLinkAltIcon />.
@@ -0,0 +1,36 @@
1
+ import React from 'react';
2
+ import { List, ListItem } from '@patternfly/react-core';
3
+ import { ExternalLinkAltIcon } from '@patternfly/react-icons/dist/js/icons/external-link-alt-icon';
4
+ import { OPENSHIFT_AI_REQUIREMENTS_LINK } from '../../../../common';
5
+
6
+ const OpenshiftAINvidiaRequirements = () => {
7
+ return (
8
+ <>
9
+ <List>
10
+ <ListItem>At least two worker nodes.</ListItem>
11
+ <ListItem>
12
+ Each worker node requires 32 additional GiB of memory and 8 additional CPUs.
13
+ </ListItem>
14
+ <ListItem>At least one supported GPU. Currently only NVIDIA GPUs are supported.</ListItem>
15
+ <ListItem>
16
+ Nodes that have NVIDIA GPUs installed need to have secure boot disabled.
17
+ </ListItem>
18
+ </List>
19
+ Bundle operators:
20
+ <List>
21
+ <ListItem>Openshift AI</ListItem>
22
+ <ListItem>OpenShift Data Foundation</ListItem>
23
+ <ListItem>NVIDIA GPU</ListItem>
24
+ <ListItem>Pipelines</ListItem>
25
+ <ListItem>Service Mesh</ListItem>
26
+ <ListItem>Serverless</ListItem>
27
+ <ListItem>Authorino</ListItem>
28
+ </List>
29
+ <a href={OPENSHIFT_AI_REQUIREMENTS_LINK} target="_blank" rel="noopener noreferrer">
30
+ Learn more <ExternalLinkAltIcon />.
31
+ </a>
32
+ </>
33
+ );
34
+ };
35
+
36
+ export default OpenshiftAINvidiaRequirements;
@@ -1,16 +1,8 @@
1
- import React, { useState } from '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
- import {
6
- getFieldId,
7
- PopoverIcon,
8
- OSC_REQUIREMENTS_LINK,
9
- OSC_LINK,
10
- OperatorsValues,
11
- } from '../../../../common';
4
+ import { getFieldId, PopoverIcon, OSC_REQUIREMENTS_LINK, OSC_LINK } from '../../../../common';
12
5
  import { OcmCheckboxField } from '../../ui/OcmFormFields';
13
- import { useNewFeatureSupportLevel } from '../../../../common/components/newFeatureSupportLevels';
14
6
  import NewFeatureSupportLevelBadge from '../../../../common/components/newFeatureSupportLevels/NewFeatureSupportLevelBadge';
15
7
  import { SupportLevel } from '@openshift-assisted/types/assisted-installer-service';
16
8
 
@@ -57,27 +49,20 @@ const OscHelperText = () => {
57
49
  );
58
50
  };
59
51
 
60
- const OscCheckbox = () => {
61
- const featureSupportLevel = useNewFeatureSupportLevel();
62
- const { values } = useFormikContext<OperatorsValues>();
52
+ const OscCheckbox = ({
53
+ disabledReason,
54
+ supportLevel,
55
+ }: {
56
+ disabledReason?: string;
57
+ supportLevel?: SupportLevel | undefined;
58
+ }) => {
63
59
  const fieldId = getFieldId(OSC_FIELD_NAME, 'input');
64
- const [disabledReason, setDisabledReason] = useState<string | undefined>();
65
-
66
- React.useEffect(() => {
67
- const disabledReason = featureSupportLevel.getFeatureDisabledReason('OSC');
68
- setDisabledReason(disabledReason);
69
- }, [values, featureSupportLevel]);
70
60
 
71
61
  return (
72
62
  <FormGroup isInline fieldId={fieldId}>
73
63
  <OcmCheckboxField
74
64
  name={OSC_FIELD_NAME}
75
- label={
76
- <OscLabel
77
- disabledReason={disabledReason}
78
- supportLevel={featureSupportLevel.getFeatureSupportLevel('OSC')}
79
- />
80
- }
65
+ label={<OscLabel disabledReason={disabledReason} supportLevel={supportLevel} />}
81
66
  isDisabled={!!disabledReason}
82
67
  helperText={<OscHelperText />}
83
68
  />