@openshift-assisted/ui-lib 2.37.3 → 2.38.0

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 (232) 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 +1 -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/OscCheckbox.d.ts +5 -1
  57. package/build/@types/ocm/components/clusterConfiguration/operators/OscCheckbox.d.ts.map +1 -1
  58. package/build/@types/ocm/components/clusterConfiguration/operators/PipelinesChekbox.d.ts +8 -0
  59. package/build/@types/ocm/components/clusterConfiguration/operators/PipelinesChekbox.d.ts.map +1 -0
  60. package/build/@types/ocm/components/clusterConfiguration/operators/ServerlessCheckbox.d.ts +8 -0
  61. package/build/@types/ocm/components/clusterConfiguration/operators/ServerlessCheckbox.d.ts.map +1 -0
  62. package/build/@types/ocm/components/clusterConfiguration/operators/ServicemeshCheckbox.d.ts +8 -0
  63. package/build/@types/ocm/components/clusterConfiguration/operators/ServicemeshCheckbox.d.ts.map +1 -0
  64. package/build/@types/ocm/components/clusterConfiguration/operators/SupportedOperators.d.ts +24 -0
  65. package/build/@types/ocm/components/clusterConfiguration/operators/SupportedOperators.d.ts.map +1 -0
  66. package/build/@types/ocm/components/clusterWizard/ClusterDetails.d.ts.map +1 -1
  67. package/build/@types/ocm/components/clusterWizard/Operators.d.ts.map +1 -1
  68. package/build/@types/ocm/components/clusterWizard/OperatorsStep.d.ts.map +1 -1
  69. package/build/@types/ocm/components/clusterWizard/wizardTransition.d.ts +1 -1
  70. package/build/@types/ocm/components/clusterWizard/wizardTransition.d.ts.map +1 -1
  71. package/build/@types/ocm/components/featureSupportLevels/featureStateUtils.d.ts.map +1 -1
  72. package/build/@types/ocm/config/constants.d.ts +2 -0
  73. package/build/@types/ocm/config/constants.d.ts.map +1 -1
  74. package/build/@types/ocm/sentry.d.ts +2 -2
  75. package/build/@types/ocm/sentry.d.ts.map +1 -1
  76. package/build/@types/ocm/services/BundleService.d.ts +6 -0
  77. package/build/@types/ocm/services/BundleService.d.ts.map +1 -0
  78. package/build/@types/ocm/services/ClustersService.d.ts +1 -0
  79. package/build/@types/ocm/services/ClustersService.d.ts.map +1 -1
  80. package/build/@types/ocm/services/OperatorsService.d.ts +1 -0
  81. package/build/@types/ocm/services/OperatorsService.d.ts.map +1 -1
  82. package/build/@types/ocm/store/slices/current-cluster/slice.d.ts +1 -0
  83. package/build/@types/ocm/store/slices/current-cluster/slice.d.ts.map +1 -1
  84. package/build/cjs/cim/components/ClusterDeployment/ClusterDetailsFormFields.js +4 -5
  85. package/build/cjs/cim/components/ClusterDeployment/ClusterDetailsFormFields.js.map +1 -1
  86. package/build/cjs/cim/components/InfraEnv/OpenshiftVersionDropdown.js +1 -1
  87. package/build/cjs/cim/components/InfraEnv/OpenshiftVersionDropdown.js.map +1 -1
  88. package/build/cjs/cim/components/common/constants.js +1 -1
  89. package/build/cjs/cim/components/common/constants.js.map +1 -1
  90. package/build/cjs/cim/components/helpers/toAssisted.js +2 -1
  91. package/build/cjs/cim/components/helpers/toAssisted.js.map +1 -1
  92. package/build/cjs/cim/components/modals/AddHostModal.js +4 -5
  93. package/build/cjs/cim/components/modals/AddHostModal.js.map +1 -1
  94. package/build/cjs/common/api/assisted-service/BundleAPI.js +16 -0
  95. package/build/cjs/common/api/assisted-service/BundleAPI.js.map +1 -0
  96. package/build/cjs/common/api/assisted-service/OperatorsAPI.js +13 -0
  97. package/build/cjs/common/api/assisted-service/OperatorsAPI.js.map +1 -0
  98. package/build/cjs/common/components/clusterConfiguration/ControlPlaneNodesDropdown.js +41 -0
  99. package/build/cjs/common/components/clusterConfiguration/ControlPlaneNodesDropdown.js.map +1 -0
  100. package/build/cjs/common/components/clusterConfiguration/DiscoveryImageConfigForm.js +4 -5
  101. package/build/cjs/common/components/clusterConfiguration/DiscoveryImageConfigForm.js.map +1 -1
  102. package/build/cjs/common/components/clusterConfiguration/DiscoveryImageTypeControlGroup.js +5 -5
  103. package/build/cjs/common/components/clusterConfiguration/DiscoveryImageTypeControlGroup.js.map +1 -1
  104. package/build/cjs/common/components/clusterWizard/clusterDetailsValidation.js +2 -2
  105. package/build/cjs/common/components/clusterWizard/clusterDetailsValidation.js.map +1 -1
  106. package/build/cjs/common/components/hosts/AITableMemo.js +16 -13
  107. package/build/cjs/common/components/hosts/AITableMemo.js.map +1 -1
  108. package/build/cjs/common/components/hosts/HostRowDetail.js +35 -1
  109. package/build/cjs/common/components/hosts/HostRowDetail.js.map +1 -1
  110. package/build/cjs/common/components/storage/DisksTable.js +16 -10
  111. package/build/cjs/common/components/storage/DisksTable.js.map +1 -1
  112. package/build/cjs/common/config/constants.js +11 -1
  113. package/build/cjs/common/config/constants.js.map +1 -1
  114. package/build/cjs/common/config/docs_links.js +1 -1
  115. package/build/cjs/common/config/docs_links.js.map +1 -1
  116. package/build/cjs/common/selectors/clusterSelectors.js +7 -1
  117. package/build/cjs/common/selectors/clusterSelectors.js.map +1 -1
  118. package/build/cjs/common/types/clusters.js.map +1 -1
  119. package/build/cjs/ocm/components/SentryErrorMonitorContextProvider.js.map +1 -1
  120. package/build/cjs/ocm/components/clusterConfiguration/ControlPlaneNodesDropdown.js +10 -9
  121. package/build/cjs/ocm/components/clusterConfiguration/ControlPlaneNodesDropdown.js.map +1 -1
  122. package/build/cjs/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.js +2 -2
  123. package/build/cjs/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.js.map +1 -1
  124. package/build/cjs/ocm/components/clusterConfiguration/operators/AuthorinoCheckbox.js +29 -0
  125. package/build/cjs/ocm/components/clusterConfiguration/operators/AuthorinoCheckbox.js.map +1 -0
  126. package/build/cjs/ocm/components/clusterConfiguration/operators/CnvCheckbox.js +3 -20
  127. package/build/cjs/ocm/components/clusterConfiguration/operators/CnvCheckbox.js.map +1 -1
  128. package/build/cjs/ocm/components/clusterConfiguration/operators/LsoCheckbox.js +29 -0
  129. package/build/cjs/ocm/components/clusterConfiguration/operators/LsoCheckbox.js.map +1 -0
  130. package/build/cjs/ocm/components/clusterConfiguration/operators/LvmCheckbox.js +5 -21
  131. package/build/cjs/ocm/components/clusterConfiguration/operators/LvmCheckbox.js.map +1 -1
  132. package/build/cjs/ocm/components/clusterConfiguration/operators/MceCheckbox.js +6 -7
  133. package/build/cjs/ocm/components/clusterConfiguration/operators/MceCheckbox.js.map +1 -1
  134. package/build/cjs/ocm/components/clusterConfiguration/operators/MtvOperatorCheckbox.js +8 -13
  135. package/build/cjs/ocm/components/clusterConfiguration/operators/MtvOperatorCheckbox.js.map +1 -1
  136. package/build/cjs/ocm/components/clusterConfiguration/operators/NmstateCheckbox.js +30 -0
  137. package/build/cjs/ocm/components/clusterConfiguration/operators/NmstateCheckbox.js.map +1 -0
  138. package/build/cjs/ocm/components/clusterConfiguration/operators/NmstateRequirements.js +48 -0
  139. package/build/cjs/ocm/components/clusterConfiguration/operators/NmstateRequirements.js.map +1 -0
  140. package/build/cjs/ocm/components/clusterConfiguration/operators/NodeFeatureDiscoveryCheckbox.js +29 -0
  141. package/build/cjs/ocm/components/clusterConfiguration/operators/NodeFeatureDiscoveryCheckbox.js.map +1 -0
  142. package/build/cjs/ocm/components/clusterConfiguration/operators/NvidiaGpuCheckbox.js +29 -0
  143. package/build/cjs/ocm/components/clusterConfiguration/operators/NvidiaGpuCheckbox.js.map +1 -0
  144. package/build/cjs/ocm/components/clusterConfiguration/operators/OdfCheckbox.js +7 -18
  145. package/build/cjs/ocm/components/clusterConfiguration/operators/OdfCheckbox.js.map +1 -1
  146. package/build/cjs/ocm/components/clusterConfiguration/operators/OpenShiftAICheckbox.js +4 -17
  147. package/build/cjs/ocm/components/clusterConfiguration/operators/OpenShiftAICheckbox.js.map +1 -1
  148. package/build/cjs/ocm/components/clusterConfiguration/operators/OscCheckbox.js +3 -12
  149. package/build/cjs/ocm/components/clusterConfiguration/operators/OscCheckbox.js.map +1 -1
  150. package/build/cjs/ocm/components/clusterConfiguration/operators/PipelinesChekbox.js +29 -0
  151. package/build/cjs/ocm/components/clusterConfiguration/operators/PipelinesChekbox.js.map +1 -0
  152. package/build/cjs/ocm/components/clusterConfiguration/operators/ServerlessCheckbox.js +29 -0
  153. package/build/cjs/ocm/components/clusterConfiguration/operators/ServerlessCheckbox.js.map +1 -0
  154. package/build/cjs/ocm/components/clusterConfiguration/operators/ServicemeshCheckbox.js +29 -0
  155. package/build/cjs/ocm/components/clusterConfiguration/operators/ServicemeshCheckbox.js.map +1 -0
  156. package/build/cjs/ocm/components/clusterConfiguration/operators/SupportedOperators.js +73 -0
  157. package/build/cjs/ocm/components/clusterConfiguration/operators/SupportedOperators.js.map +1 -0
  158. package/build/cjs/ocm/components/clusterConfiguration/staticIp/components/FormViewHosts/FormViewHostsFields.js +1 -1
  159. package/build/cjs/ocm/components/clusterConfiguration/staticIp/components/FormViewHosts/FormViewHostsFields.js.map +1 -1
  160. package/build/cjs/ocm/components/clusterWizard/ClusterDetails.js +4 -0
  161. package/build/cjs/ocm/components/clusterWizard/ClusterDetails.js.map +1 -1
  162. package/build/cjs/ocm/components/clusterWizard/Operators.js +9 -1
  163. package/build/cjs/ocm/components/clusterWizard/Operators.js.map +1 -1
  164. package/build/cjs/ocm/components/clusterWizard/OperatorsStep.js +209 -22
  165. package/build/cjs/ocm/components/clusterWizard/OperatorsStep.js.map +1 -1
  166. package/build/cjs/ocm/components/clusterWizard/wizardTransition.js +1 -1
  167. package/build/cjs/ocm/components/clusterWizard/wizardTransition.js.map +1 -1
  168. package/build/cjs/ocm/components/featureSupportLevels/featureStateUtils.js +40 -0
  169. package/build/cjs/ocm/components/featureSupportLevels/featureStateUtils.js.map +1 -1
  170. package/build/cjs/ocm/config/constants.js +155 -1
  171. package/build/cjs/ocm/config/constants.js.map +1 -1
  172. package/build/cjs/ocm/sentry.js +1 -1
  173. package/build/cjs/ocm/sentry.js.map +1 -1
  174. package/build/cjs/ocm/services/BundleService.js +20 -0
  175. package/build/cjs/ocm/services/BundleService.js.map +1 -0
  176. package/build/cjs/ocm/services/ClustersService.js +26 -0
  177. package/build/cjs/ocm/services/ClustersService.js.map +1 -1
  178. package/build/cjs/ocm/services/OperatorsService.js +16 -8
  179. package/build/cjs/ocm/services/OperatorsService.js.map +1 -1
  180. package/lib/cim/components/ClusterDeployment/ClusterDetailsFormFields.tsx +4 -6
  181. package/lib/cim/components/InfraEnv/OpenshiftVersionDropdown.tsx +1 -1
  182. package/lib/cim/components/common/constants.ts +1 -2
  183. package/lib/cim/components/helpers/toAssisted.ts +1 -0
  184. package/lib/cim/components/modals/AddHostModal.tsx +4 -5
  185. package/lib/cim/types/k8s/infra-env-k8s-resource.ts +1 -0
  186. package/lib/common/api/assisted-service/BundleAPI.ts +18 -0
  187. package/lib/common/api/assisted-service/OperatorsAPI.ts +13 -0
  188. package/lib/common/components/clusterConfiguration/ControlPlaneNodesDropdown.tsx +93 -0
  189. package/lib/common/components/clusterConfiguration/DiscoveryImageConfigForm.tsx +10 -12
  190. package/lib/common/components/clusterConfiguration/DiscoveryImageTypeControlGroup.tsx +9 -9
  191. package/lib/common/components/clusterWizard/clusterDetailsValidation.ts +1 -1
  192. package/lib/common/components/clusterWizard/types.ts +4 -2
  193. package/lib/common/components/hosts/AITableMemo.tsx +1 -1
  194. package/lib/common/components/hosts/HostRowDetail.tsx +71 -1
  195. package/lib/common/components/storage/DisksTable.tsx +25 -18
  196. package/lib/common/config/constants.ts +10 -0
  197. package/lib/common/config/docs_links.ts +1 -1
  198. package/lib/common/selectors/clusterSelectors.ts +8 -0
  199. package/lib/common/types/clusters.ts +8 -0
  200. package/lib/common/types/ui-settings.ts +1 -0
  201. package/lib/ocm/components/SentryErrorMonitorContextProvider.tsx +1 -2
  202. package/lib/ocm/components/clusterConfiguration/ControlPlaneNodesDropdown.tsx +13 -12
  203. package/lib/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.tsx +2 -2
  204. package/lib/ocm/components/clusterConfiguration/operators/AuthorinoCheckbox.tsx +63 -0
  205. package/lib/ocm/components/clusterConfiguration/operators/CnvCheckbox.tsx +7 -31
  206. package/lib/ocm/components/clusterConfiguration/operators/LsoCheckbox.tsx +63 -0
  207. package/lib/ocm/components/clusterConfiguration/operators/LvmCheckbox.tsx +8 -26
  208. package/lib/ocm/components/clusterConfiguration/operators/MceCheckbox.tsx +10 -3
  209. package/lib/ocm/components/clusterConfiguration/operators/MtvOperatorCheckbox.tsx +23 -12
  210. package/lib/ocm/components/clusterConfiguration/operators/NmstateCheckbox.tsx +76 -0
  211. package/lib/ocm/components/clusterConfiguration/operators/NmstateRequirements.tsx +53 -0
  212. package/lib/ocm/components/clusterConfiguration/operators/NodeFeatureDiscoveryCheckbox.tsx +66 -0
  213. package/lib/ocm/components/clusterConfiguration/operators/NvidiaGpuCheckbox.tsx +63 -0
  214. package/lib/ocm/components/clusterConfiguration/operators/OdfCheckbox.tsx +20 -25
  215. package/lib/ocm/components/clusterConfiguration/operators/OpenShiftAICheckbox.tsx +11 -24
  216. package/lib/ocm/components/clusterConfiguration/operators/OscCheckbox.tsx +10 -25
  217. package/lib/ocm/components/clusterConfiguration/operators/PipelinesChekbox.tsx +64 -0
  218. package/lib/ocm/components/clusterConfiguration/operators/ServerlessCheckbox.tsx +63 -0
  219. package/lib/ocm/components/clusterConfiguration/operators/ServicemeshCheckbox.tsx +63 -0
  220. package/lib/ocm/components/clusterConfiguration/operators/SupportedOperators.tsx +105 -0
  221. package/lib/ocm/components/clusterConfiguration/staticIp/components/FormViewHosts/FormViewHostsFields.tsx +1 -1
  222. package/lib/ocm/components/clusterWizard/ClusterDetails.tsx +4 -0
  223. package/lib/ocm/components/clusterWizard/Operators.tsx +21 -1
  224. package/lib/ocm/components/clusterWizard/OperatorsStep.tsx +374 -38
  225. package/lib/ocm/components/clusterWizard/wizardTransition.ts +1 -1
  226. package/lib/ocm/components/featureSupportLevels/featureStateUtils.ts +40 -0
  227. package/lib/ocm/config/constants.ts +156 -0
  228. package/lib/ocm/sentry.ts +2 -1
  229. package/lib/ocm/services/BundleService.ts +14 -0
  230. package/lib/ocm/services/ClustersService.ts +28 -0
  231. package/lib/ocm/services/OperatorsService.tsx +21 -10
  232. package/package.json +3 -3
@@ -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/red_hat_openshift_ai_cloud_service/1/html/installing_the_openshift_ai_cloud_service/requirements-for-openshift-ai_install#requirements-for-openshift-ai_install';
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';
@@ -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'>;
@@ -2,4 +2,5 @@ export type UISettingsValues = {
2
2
  addCustomManifests?: boolean;
3
3
  customManifestsAdded?: boolean;
4
4
  customManifestsUpdated?: boolean;
5
+ bundlesSelected?: string[];
5
6
  };
@@ -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 as Sentry.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 = '3';
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: string;
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: string,
44
+ controlPlaneNodeCount: number,
44
45
  isNonStandardControlPlaneEnabled: boolean,
45
46
  ): boolean => {
46
- if (controlPlaneNodeCount === '4' || controlPlaneNodeCount === '5') {
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<string>(INPUT_NAME);
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: '1', label: '1 (Single Node OpenShift)' },
82
- { value: '3', label: '3 (highly available cluster)' },
83
- { value: '4', label: '4 (highly available cluster+)' },
84
- { value: '5', label: '5 (highly available cluster++)' },
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 === '1' && (
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 === '1'}
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 === '1'}
200
+ isSNO={values.controlPlaneCount === 1}
201
201
  docVersion={openshiftVersion}
202
202
  />
203
203
  </Form>
@@ -0,0 +1,63 @@
1
+ import React from 'react';
2
+ import { FormGroup, HelperText, HelperTextItem, Tooltip } from '@patternfly/react-core';
3
+ import { 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
+
8
+ const AUTHORINO_FIELD_NAME = 'useAuthorino';
9
+
10
+ const AuthorinoLabel = ({
11
+ disabledReason,
12
+ supportLevel,
13
+ }: {
14
+ disabledReason?: string;
15
+ supportLevel?: SupportLevel;
16
+ }) => {
17
+ return (
18
+ <>
19
+ <Tooltip hidden={!disabledReason} content={disabledReason}>
20
+ <span>Install Authorino </span>
21
+ </Tooltip>
22
+ <PopoverIcon
23
+ id={AUTHORINO_FIELD_NAME}
24
+ component={'a'}
25
+ bodyContent={'No additional requirements needed'}
26
+ />
27
+ <NewFeatureSupportLevelBadge featureId="AUTHORINO" supportLevel={supportLevel} />
28
+ </>
29
+ );
30
+ };
31
+
32
+ const AuthorinoHelperText = () => {
33
+ return (
34
+ <HelperText>
35
+ <HelperTextItem variant="indeterminate">
36
+ Lightweigth external authorization service for tailor-made Zero Trust API security.{' '}
37
+ </HelperTextItem>
38
+ </HelperText>
39
+ );
40
+ };
41
+
42
+ const AuthorinoCheckbox = ({
43
+ disabledReason,
44
+ supportLevel,
45
+ }: {
46
+ disabledReason?: string;
47
+ supportLevel?: SupportLevel | undefined;
48
+ }) => {
49
+ const fieldId = getFieldId(AUTHORINO_FIELD_NAME, 'input');
50
+
51
+ return (
52
+ <FormGroup isInline fieldId={fieldId}>
53
+ <OcmCheckboxField
54
+ name={AUTHORINO_FIELD_NAME}
55
+ label={<AuthorinoLabel disabledReason={disabledReason} supportLevel={supportLevel} />}
56
+ helperText={<AuthorinoHelperText />}
57
+ isDisabled={!!disabledReason}
58
+ />
59
+ </FormGroup>
60
+ );
61
+ };
62
+
63
+ export default AuthorinoCheckbox;
@@ -1,21 +1,9 @@
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
- ClusterOperatorProps,
7
- CNV_LINK,
8
- getFieldId,
9
- OperatorsValues,
10
- PopoverIcon,
11
- } from '../../../../common';
4
+ import { ClusterOperatorProps, CNV_LINK, getFieldId, PopoverIcon } from '../../../../common';
12
5
  import CnvHostRequirements from './CnvHostRequirements';
13
- import {
14
- getCnvDisabledWithMtvReason,
15
- getCnvIncompatibleWithLvmReason,
16
- } from '../../featureSupportLevels/featureStateUtils';
17
6
  import { OcmCheckboxField } from '../../ui/OcmFormFields';
18
- import { useNewFeatureSupportLevel } from '../../../../common/components/newFeatureSupportLevels';
19
7
  import NewFeatureSupportLevelBadge from '../../../../common/components/newFeatureSupportLevels/NewFeatureSupportLevelBadge';
20
8
  import { SupportLevel } from '@openshift-assisted/types/assisted-installer-service';
21
9
 
@@ -70,28 +58,16 @@ const CnvHelperText = () => {
70
58
  const CnvCheckbox = ({
71
59
  clusterId,
72
60
  isVersionEqualsOrMajorThan4_15,
61
+ disabledReason,
62
+ supportLevel,
73
63
  }: {
74
64
  clusterId: ClusterOperatorProps['clusterId'];
75
65
  isVersionEqualsOrMajorThan4_15: boolean;
66
+ disabledReason?: string;
67
+ supportLevel?: SupportLevel | undefined;
76
68
  }) => {
77
69
  const fieldId = getFieldId(CNV_FIELD_NAME, 'input');
78
70
 
79
- const featureSupportLevel = useNewFeatureSupportLevel();
80
- const { values } = useFormikContext<OperatorsValues>();
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
-
95
71
  return (
96
72
  <FormGroup isInline fieldId={fieldId}>
97
73
  <OcmCheckboxField
@@ -101,7 +77,7 @@ const CnvCheckbox = ({
101
77
  clusterId={clusterId}
102
78
  disabledReason={disabledReason}
103
79
  isVersionEqualsOrMajorThan4_15={isVersionEqualsOrMajorThan4_15}
104
- supportLevel={featureSupportLevel.getFeatureSupportLevel('CNV')}
80
+ supportLevel={supportLevel}
105
81
  />
106
82
  }
107
83
  helperText={<CnvHelperText />}
@@ -0,0 +1,63 @@
1
+ import React from 'react';
2
+ import { FormGroup, HelperText, HelperTextItem, Tooltip } from '@patternfly/react-core';
3
+ import { 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
+
8
+ const LSO_FIELD_NAME = 'useLso';
9
+
10
+ const LsoLabel = ({
11
+ disabledReason,
12
+ supportLevel,
13
+ }: {
14
+ disabledReason?: string;
15
+ supportLevel?: SupportLevel;
16
+ }) => {
17
+ return (
18
+ <>
19
+ <Tooltip hidden={!disabledReason} content={disabledReason}>
20
+ <span>Install Local Storage Operator </span>
21
+ </Tooltip>
22
+ <PopoverIcon
23
+ id={LSO_FIELD_NAME}
24
+ component={'a'}
25
+ bodyContent={'No additional requirements needed'}
26
+ />
27
+ <NewFeatureSupportLevelBadge featureId="LSO" supportLevel={supportLevel} />
28
+ </>
29
+ );
30
+ };
31
+
32
+ const LsoHelperText = () => {
33
+ return (
34
+ <HelperText>
35
+ <HelperTextItem variant="indeterminate">
36
+ Allows provisioning of persistent storage by using local volumes.{' '}
37
+ </HelperTextItem>
38
+ </HelperText>
39
+ );
40
+ };
41
+
42
+ const LsoCheckbox = ({
43
+ disabledReason,
44
+ supportLevel,
45
+ }: {
46
+ disabledReason?: string;
47
+ supportLevel?: SupportLevel | undefined;
48
+ }) => {
49
+ const fieldId = getFieldId(LSO_FIELD_NAME, 'input');
50
+
51
+ return (
52
+ <FormGroup isInline fieldId={fieldId}>
53
+ <OcmCheckboxField
54
+ name={LSO_FIELD_NAME}
55
+ label={<LsoLabel disabledReason={disabledReason} supportLevel={supportLevel} />}
56
+ helperText={<LsoHelperText />}
57
+ isDisabled={!!disabledReason}
58
+ />
59
+ </FormGroup>
60
+ );
61
+ };
62
+
63
+ export default LsoCheckbox;
@@ -1,12 +1,10 @@
1
- import React, { useState } from '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: lvmSupport === 'supported' ? OPERATOR_NAME_LVMS : OPERATOR_NAME_LVM,
84
+ operatorName: supportLevel === 'supported' ? OPERATOR_NAME_LVMS : OPERATOR_NAME_LVM,
92
85
  };
93
- }, [t, featureSupportLevel]);
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={featureSupportLevel.getFeatureSupportLevel('LVM')}
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}
@@ -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}