@openshift-assisted/ui-lib 2.9.8-cim → 2.9.9-cim

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 (257) hide show
  1. package/build/@types/cim/components/ClusterDeployment/ClusterDeploymentDetailsStep.d.ts +6 -1
  2. package/build/@types/cim/components/ClusterDeployment/ClusterDeploymentDetailsStep.d.ts.map +1 -1
  3. package/build/@types/cim/components/ClusterDeployment/ClusterDetailsFormFields.d.ts.map +1 -1
  4. package/build/@types/cim/components/helpers/versions.d.ts +1 -0
  5. package/build/@types/cim/components/helpers/versions.d.ts.map +1 -1
  6. package/build/@types/common/api/accounts-management-service/current-account-api.d.ts +6 -0
  7. package/build/@types/common/api/accounts-management-service/current-account-api.d.ts.map +1 -0
  8. package/build/@types/common/api/accounts-management-service/organizations-api.d.ts +6 -0
  9. package/build/@types/common/api/accounts-management-service/organizations-api.d.ts.map +1 -0
  10. package/build/@types/common/api/assisted-service/UISettingsAPI.d.ts +8 -0
  11. package/build/@types/common/api/assisted-service/UISettingsAPI.d.ts.map +1 -0
  12. package/build/@types/common/api/assisted-service/index.d.ts +1 -0
  13. package/build/@types/common/api/assisted-service/index.d.ts.map +1 -1
  14. package/build/@types/common/api/authorization-service/all-apis.d.ts +7 -0
  15. package/build/@types/common/api/authorization-service/all-apis.d.ts.map +1 -0
  16. package/build/@types/common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionControlGroup.d.ts.map +1 -1
  17. package/build/@types/common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionMode.d.ts +3 -1
  18. package/build/@types/common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionMode.d.ts.map +1 -1
  19. package/build/@types/common/components/clusterConfiguration/DiskEncryptionFields/TangServers.d.ts +3 -1
  20. package/build/@types/common/components/clusterConfiguration/DiskEncryptionFields/TangServers.d.ts.map +1 -1
  21. package/build/@types/common/components/clusterConfiguration/OpenShiftVersionSelect.d.ts +2 -0
  22. package/build/@types/common/components/clusterConfiguration/OpenShiftVersionSelect.d.ts.map +1 -1
  23. package/build/@types/common/components/clusterDetail/PostInstallAlert.d.ts +6 -0
  24. package/build/@types/common/components/clusterDetail/PostInstallAlert.d.ts.map +1 -0
  25. package/build/@types/common/components/clusterDetail/index.d.ts +1 -0
  26. package/build/@types/common/components/clusterDetail/index.d.ts.map +1 -1
  27. package/build/@types/common/components/clusterWizard/ReviewValidations.d.ts.map +1 -1
  28. package/build/@types/common/components/ui/NoPermissionsError.d.ts +3 -0
  29. package/build/@types/common/components/ui/NoPermissionsError.d.ts.map +1 -0
  30. package/build/@types/common/components/ui/formik/InputField.d.ts.map +1 -1
  31. package/build/@types/common/components/ui/formik/RichInputField.d.ts.map +1 -1
  32. package/build/@types/common/components/ui/formik/types.d.ts +2 -2
  33. package/build/@types/common/components/ui/formik/types.d.ts.map +1 -1
  34. package/build/@types/common/components/ui/index.d.ts +1 -0
  35. package/build/@types/common/components/ui/index.d.ts.map +1 -1
  36. package/build/@types/common/config/constants.d.ts.map +1 -1
  37. package/build/@types/common/features/featureGate.d.ts +1 -1
  38. package/build/@types/common/features/featureGate.d.ts.map +1 -1
  39. package/build/@types/common/types/cpuArchitecture.d.ts +1 -1
  40. package/build/@types/common/types/cpuArchitecture.d.ts.map +1 -1
  41. package/build/@types/ocm/components/AddHosts/AddHosts.d.ts.map +1 -1
  42. package/build/@types/ocm/components/AddHosts/InventoryAddHost.d.ts +1 -2
  43. package/build/@types/ocm/components/AddHosts/InventoryAddHost.d.ts.map +1 -1
  44. package/build/@types/ocm/components/AddHosts/day2Wizard/Day2ClusterDetails.d.ts.map +1 -1
  45. package/build/@types/ocm/components/AddHosts/day2Wizard/Day2StaticIpHostConfigurations.d.ts +3 -1
  46. package/build/@types/ocm/components/AddHosts/day2Wizard/Day2StaticIpHostConfigurations.d.ts.map +1 -1
  47. package/build/@types/ocm/components/HostsClusterDetailTab/HostsClusterDetailTabContent.d.ts.map +1 -1
  48. package/build/@types/ocm/components/HostsClusterDetailTab/HostsClusterDetailTabContentErrors.d.ts +1 -4
  49. package/build/@types/ocm/components/HostsClusterDetailTab/HostsClusterDetailTabContentErrors.d.ts.map +1 -1
  50. package/build/@types/ocm/components/clusterConfiguration/CpuArchitectureDropdown.d.ts +3 -2
  51. package/build/@types/ocm/components/clusterConfiguration/CpuArchitectureDropdown.d.ts.map +1 -1
  52. package/build/@types/ocm/components/clusterConfiguration/CustomManifestCheckbox.d.ts.map +1 -1
  53. package/build/@types/ocm/components/clusterConfiguration/OcmBaseDomainField.d.ts +2 -1
  54. package/build/@types/ocm/components/clusterConfiguration/OcmBaseDomainField.d.ts.map +1 -1
  55. package/build/@types/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.d.ts.map +1 -1
  56. package/build/@types/ocm/components/clusterConfiguration/manifestsConfiguration/CustomManifestsPage.d.ts +1 -1
  57. package/build/@types/ocm/components/clusterConfiguration/manifestsConfiguration/CustomManifestsPage.d.ts.map +1 -1
  58. package/build/@types/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifestsForm.d.ts.map +1 -1
  59. package/build/@types/ocm/components/clusterConfiguration/manifestsConfiguration/components/utils.d.ts +3 -4
  60. package/build/@types/ocm/components/clusterConfiguration/manifestsConfiguration/components/utils.d.ts.map +1 -1
  61. package/build/@types/ocm/components/clusterConfiguration/manifestsConfiguration/data/dataTypes.d.ts +0 -1
  62. package/build/@types/ocm/components/clusterConfiguration/manifestsConfiguration/data/dataTypes.d.ts.map +1 -1
  63. package/build/@types/ocm/components/clusterDetail/ClusterDetailStatusMessages.d.ts.map +1 -1
  64. package/build/@types/ocm/components/clusterWizard/ClusterDetails.d.ts.map +1 -1
  65. package/build/@types/ocm/components/clusterWizard/ClusterDetailsForm.d.ts +1 -2
  66. package/build/@types/ocm/components/clusterWizard/ClusterDetailsForm.d.ts.map +1 -1
  67. package/build/@types/ocm/components/clusterWizard/ClusterWizardContext.d.ts +5 -3
  68. package/build/@types/ocm/components/clusterWizard/ClusterWizardContext.d.ts.map +1 -1
  69. package/build/@types/ocm/components/clusterWizard/ClusterWizardContextProvider.d.ts.map +1 -1
  70. package/build/@types/ocm/components/ui/OcmFormFields.d.ts +1 -1
  71. package/build/@types/ocm/hooks/index.d.ts +1 -0
  72. package/build/@types/ocm/hooks/index.d.ts.map +1 -1
  73. package/build/@types/ocm/hooks/useOpenshiftVersions.d.ts +1 -2
  74. package/build/@types/ocm/hooks/useOpenshiftVersions.d.ts.map +1 -1
  75. package/build/@types/ocm/hooks/useSupportLevelsAPI.d.ts +4 -4
  76. package/build/@types/ocm/hooks/useSupportLevelsAPI.d.ts.map +1 -1
  77. package/build/@types/ocm/hooks/useUISettings.d.ts +10 -0
  78. package/build/@types/ocm/hooks/useUISettings.d.ts.map +1 -0
  79. package/build/@types/ocm/services/ClusterDetailsService.d.ts +2 -1
  80. package/build/@types/ocm/services/ClusterDetailsService.d.ts.map +1 -1
  81. package/build/@types/ocm/services/ClustersService.d.ts +0 -1
  82. package/build/@types/ocm/services/ClustersService.d.ts.map +1 -1
  83. package/build/@types/ocm/services/Day2ClusterService.d.ts +3 -2
  84. package/build/@types/ocm/services/Day2ClusterService.d.ts.map +1 -1
  85. package/build/@types/ocm/services/UISettingsService.d.ts +8 -0
  86. package/build/@types/ocm/services/UISettingsService.d.ts.map +1 -0
  87. package/build/@types/ocm/services/index.d.ts +1 -0
  88. package/build/@types/ocm/services/index.d.ts.map +1 -1
  89. package/build/@types/ocm/services/types.d.ts +4 -0
  90. package/build/@types/ocm/services/types.d.ts.map +1 -1
  91. package/build/cjs/cim/components/Agent/BMCForm.js +3 -3
  92. package/build/cjs/cim/components/Agent/BMCForm.js.map +1 -1
  93. package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentDetailsStep.js +9 -5
  94. package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentDetailsStep.js.map +1 -1
  95. package/build/cjs/cim/components/ClusterDeployment/ClusterDetailsFormFields.js +6 -2
  96. package/build/cjs/cim/components/ClusterDeployment/ClusterDetailsFormFields.js.map +1 -1
  97. package/build/cjs/cim/components/helpers/versions.js +3 -1
  98. package/build/cjs/cim/components/helpers/versions.js.map +1 -1
  99. package/build/cjs/common/api/accounts-management-service/access-token-api.js +1 -1
  100. package/build/cjs/common/api/accounts-management-service/current-account-api.js +17 -0
  101. package/build/cjs/common/api/accounts-management-service/current-account-api.js.map +1 -0
  102. package/build/cjs/common/api/accounts-management-service/organizations-api.js +19 -0
  103. package/build/cjs/common/api/accounts-management-service/organizations-api.js.map +1 -0
  104. package/build/cjs/common/api/assisted-service/UISettingsAPI.js +21 -0
  105. package/build/cjs/common/api/assisted-service/UISettingsAPI.js.map +1 -0
  106. package/build/cjs/common/api/assisted-service/index.js +3 -1
  107. package/build/cjs/common/api/assisted-service/index.js.map +1 -1
  108. package/build/cjs/common/api/authorization-service/all-apis.js +23 -0
  109. package/build/cjs/common/api/authorization-service/all-apis.js.map +1 -0
  110. package/build/cjs/common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionControlGroup.js +1 -1
  111. package/build/cjs/common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionControlGroup.js.map +1 -1
  112. package/build/cjs/common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionMode.js +6 -4
  113. package/build/cjs/common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionMode.js.map +1 -1
  114. package/build/cjs/common/components/clusterConfiguration/DiskEncryptionFields/TangServers.js +5 -3
  115. package/build/cjs/common/components/clusterConfiguration/DiskEncryptionFields/TangServers.js.map +1 -1
  116. package/build/cjs/common/components/clusterConfiguration/OpenShiftVersionSelect.js +2 -2
  117. package/build/cjs/common/components/clusterConfiguration/OpenShiftVersionSelect.js.map +1 -1
  118. package/build/cjs/common/components/clusterDetail/PostInstallAlert.js +16 -0
  119. package/build/cjs/common/components/clusterDetail/PostInstallAlert.js.map +1 -0
  120. package/build/cjs/common/components/clusterDetail/index.js +3 -1
  121. package/build/cjs/common/components/clusterDetail/index.js.map +1 -1
  122. package/build/cjs/common/components/clusterWizard/ReviewValidations.js +3 -0
  123. package/build/cjs/common/components/clusterWizard/ReviewValidations.js.map +1 -1
  124. package/build/cjs/common/components/ui/NoPermissionsError.js +14 -0
  125. package/build/cjs/common/components/ui/NoPermissionsError.js.map +1 -0
  126. package/build/cjs/common/components/ui/formik/InputField.js +5 -5
  127. package/build/cjs/common/components/ui/formik/InputField.js.map +1 -1
  128. package/build/cjs/common/components/ui/formik/RichInputField.js +5 -2
  129. package/build/cjs/common/components/ui/formik/RichInputField.js.map +1 -1
  130. package/build/cjs/common/components/ui/formik/SelectField.js +1 -1
  131. package/build/cjs/common/components/ui/formik/SelectField.js.map +1 -1
  132. package/build/cjs/common/components/ui/index.js +3 -1
  133. package/build/cjs/common/components/ui/index.js.map +1 -1
  134. package/build/cjs/common/config/constants.js +1 -0
  135. package/build/cjs/common/config/constants.js.map +1 -1
  136. package/build/cjs/common/features/featureGate.js +1 -3
  137. package/build/cjs/common/features/featureGate.js.map +1 -1
  138. package/build/cjs/common/types/cpuArchitecture.js +5 -9
  139. package/build/cjs/common/types/cpuArchitecture.js.map +1 -1
  140. package/build/cjs/ocm/components/AddHosts/AddHosts.js +1 -2
  141. package/build/cjs/ocm/components/AddHosts/AddHosts.js.map +1 -1
  142. package/build/cjs/ocm/components/AddHosts/InventoryAddHost.js +2 -2
  143. package/build/cjs/ocm/components/AddHosts/InventoryAddHost.js.map +1 -1
  144. package/build/cjs/ocm/components/AddHosts/day2Wizard/Day2ClusterDetails.js +4 -4
  145. package/build/cjs/ocm/components/AddHosts/day2Wizard/Day2ClusterDetails.js.map +1 -1
  146. package/build/cjs/ocm/components/AddHosts/day2Wizard/Day2StaticIpHostConfigurations.js +7 -6
  147. package/build/cjs/ocm/components/AddHosts/day2Wizard/Day2StaticIpHostConfigurations.js.map +1 -1
  148. package/build/cjs/ocm/components/HostsClusterDetailTab/HostsClusterDetailTabContent.js +3 -20
  149. package/build/cjs/ocm/components/HostsClusterDetailTab/HostsClusterDetailTabContent.js.map +1 -1
  150. package/build/cjs/ocm/components/HostsClusterDetailTab/HostsClusterDetailTabContentErrors.js +1 -13
  151. package/build/cjs/ocm/components/HostsClusterDetailTab/HostsClusterDetailTabContentErrors.js.map +1 -1
  152. package/build/cjs/ocm/components/clusterConfiguration/CpuArchitectureDropdown.js +24 -3
  153. package/build/cjs/ocm/components/clusterConfiguration/CpuArchitectureDropdown.js.map +1 -1
  154. package/build/cjs/ocm/components/clusterConfiguration/CustomManifestCheckbox.js +22 -32
  155. package/build/cjs/ocm/components/clusterConfiguration/CustomManifestCheckbox.js.map +1 -1
  156. package/build/cjs/ocm/components/clusterConfiguration/OcmBaseDomainField.js +7 -5
  157. package/build/cjs/ocm/components/clusterConfiguration/OcmBaseDomainField.js.map +1 -1
  158. package/build/cjs/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.js +3 -4
  159. package/build/cjs/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.js.map +1 -1
  160. package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/CustomManifestsPage.js +6 -12
  161. package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/CustomManifestsPage.js.map +1 -1
  162. package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifests.js +2 -2
  163. package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifests.js.map +1 -1
  164. package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifestsArray.js +1 -1
  165. package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifestsArray.js.map +1 -1
  166. package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifestsForm.js +49 -123
  167. package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifestsForm.js.map +1 -1
  168. package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/ExpandedManifest.js +1 -0
  169. package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/ExpandedManifest.js.map +1 -1
  170. package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/utils.js +14 -19
  171. package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/utils.js.map +1 -1
  172. package/build/cjs/ocm/components/clusterDetail/ClusterDetailStatusMessages.js +2 -7
  173. package/build/cjs/ocm/components/clusterDetail/ClusterDetailStatusMessages.js.map +1 -1
  174. package/build/cjs/ocm/components/clusterWizard/ClusterDetails.js +5 -12
  175. package/build/cjs/ocm/components/clusterWizard/ClusterDetails.js.map +1 -1
  176. package/build/cjs/ocm/components/clusterWizard/ClusterDetailsForm.js +18 -13
  177. package/build/cjs/ocm/components/clusterWizard/ClusterDetailsForm.js.map +1 -1
  178. package/build/cjs/ocm/components/clusterWizard/ClusterWizardContext.js.map +1 -1
  179. package/build/cjs/ocm/components/clusterWizard/ClusterWizardContextProvider.js +45 -36
  180. package/build/cjs/ocm/components/clusterWizard/ClusterWizardContextProvider.js.map +1 -1
  181. package/build/cjs/ocm/hooks/index.js +3 -1
  182. package/build/cjs/ocm/hooks/index.js.map +1 -1
  183. package/build/cjs/ocm/hooks/useOpenshiftVersions.js +0 -5
  184. package/build/cjs/ocm/hooks/useOpenshiftVersions.js.map +1 -1
  185. package/build/cjs/ocm/hooks/useSupportLevelsAPI.js +34 -1
  186. package/build/cjs/ocm/hooks/useSupportLevelsAPI.js.map +1 -1
  187. package/build/cjs/ocm/hooks/useUISettings.js +62 -0
  188. package/build/cjs/ocm/hooks/useUISettings.js.map +1 -0
  189. package/build/cjs/ocm/services/ClusterDetailsService.js +2 -2
  190. package/build/cjs/ocm/services/ClusterDetailsService.js.map +1 -1
  191. package/build/cjs/ocm/services/ClustersService.js +0 -8
  192. package/build/cjs/ocm/services/ClustersService.js.map +1 -1
  193. package/build/cjs/ocm/services/Day2ClusterService.js +13 -4
  194. package/build/cjs/ocm/services/Day2ClusterService.js.map +1 -1
  195. package/build/cjs/ocm/services/UISettingsService.js +18 -0
  196. package/build/cjs/ocm/services/UISettingsService.js.map +1 -0
  197. package/build/cjs/ocm/services/index.js +3 -1
  198. package/build/cjs/ocm/services/index.js.map +1 -1
  199. package/lib/cim/components/Agent/BMCForm.tsx +3 -3
  200. package/lib/cim/components/ClusterDeployment/ClusterDeploymentDetailsStep.tsx +17 -5
  201. package/lib/cim/components/ClusterDeployment/ClusterDetailsFormFields.tsx +9 -2
  202. package/lib/cim/components/helpers/versions.ts +5 -0
  203. package/lib/common/api/accounts-management-service/access-token-api.ts +1 -1
  204. package/lib/common/api/accounts-management-service/current-account-api.ts +13 -0
  205. package/lib/common/api/accounts-management-service/organizations-api.ts +15 -0
  206. package/lib/common/api/assisted-service/UISettingsAPI.ts +24 -0
  207. package/lib/common/api/assisted-service/index.ts +1 -0
  208. package/lib/common/api/authorization-service/all-apis.ts +28 -0
  209. package/lib/common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionControlGroup.tsx +5 -1
  210. package/lib/common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionMode.tsx +27 -16
  211. package/lib/common/components/clusterConfiguration/DiskEncryptionFields/TangServers.tsx +27 -17
  212. package/lib/common/components/clusterConfiguration/OpenShiftVersionSelect.tsx +4 -1
  213. package/lib/common/components/clusterDetail/PostInstallAlert.tsx +29 -0
  214. package/lib/common/components/clusterDetail/index.ts +1 -0
  215. package/lib/common/components/clusterWizard/ReviewValidations.tsx +3 -0
  216. package/lib/common/components/ui/NoPermissionsError.tsx +19 -0
  217. package/lib/common/components/ui/formik/InputField.tsx +4 -5
  218. package/lib/common/components/ui/formik/RichInputField.tsx +6 -2
  219. package/lib/common/components/ui/formik/SelectField.tsx +1 -1
  220. package/lib/common/components/ui/formik/types.ts +2 -1
  221. package/lib/common/components/ui/index.ts +1 -0
  222. package/lib/common/config/constants.ts +1 -0
  223. package/lib/common/features/featureGate.tsx +0 -4
  224. package/lib/common/types/cpuArchitecture.ts +3 -8
  225. package/lib/ocm/components/AddHosts/AddHosts.tsx +1 -3
  226. package/lib/ocm/components/AddHosts/InventoryAddHost.tsx +2 -8
  227. package/lib/ocm/components/AddHosts/day2Wizard/Day2ClusterDetails.tsx +6 -11
  228. package/lib/ocm/components/AddHosts/day2Wizard/Day2StaticIpHostConfigurations.tsx +34 -19
  229. package/lib/ocm/components/HostsClusterDetailTab/HostsClusterDetailTabContent.tsx +4 -36
  230. package/lib/ocm/components/HostsClusterDetailTab/HostsClusterDetailTabContentErrors.tsx +1 -15
  231. package/lib/ocm/components/clusterConfiguration/CpuArchitectureDropdown.tsx +58 -3
  232. package/lib/ocm/components/clusterConfiguration/CustomManifestCheckbox.tsx +25 -32
  233. package/lib/ocm/components/clusterConfiguration/OcmBaseDomainField.tsx +23 -12
  234. package/lib/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.tsx +4 -5
  235. package/lib/ocm/components/clusterConfiguration/manifestsConfiguration/CustomManifestsPage.tsx +20 -27
  236. package/lib/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifests.tsx +3 -3
  237. package/lib/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifestsArray.tsx +2 -2
  238. package/lib/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifestsForm.tsx +69 -182
  239. package/lib/ocm/components/clusterConfiguration/manifestsConfiguration/components/ExpandedManifest.tsx +1 -1
  240. package/lib/ocm/components/clusterConfiguration/manifestsConfiguration/components/utils.tsx +9 -15
  241. package/lib/ocm/components/clusterConfiguration/manifestsConfiguration/data/dataTypes.ts +0 -1
  242. package/lib/ocm/components/clusterDetail/ClusterDetailStatusMessages.tsx +2 -16
  243. package/lib/ocm/components/clusterWizard/ClusterDetails.tsx +9 -16
  244. package/lib/ocm/components/clusterWizard/ClusterDetailsForm.tsx +18 -16
  245. package/lib/ocm/components/clusterWizard/ClusterWizardContext.tsx +5 -3
  246. package/lib/ocm/components/clusterWizard/ClusterWizardContextProvider.tsx +75 -54
  247. package/lib/ocm/hooks/index.ts +1 -0
  248. package/lib/ocm/hooks/useOpenshiftVersions.tsx +1 -15
  249. package/lib/ocm/hooks/useSupportLevelsAPI.ts +54 -2
  250. package/lib/ocm/hooks/useUISettings.ts +71 -0
  251. package/lib/ocm/services/ClusterDetailsService.ts +3 -1
  252. package/lib/ocm/services/ClustersService.ts +0 -10
  253. package/lib/ocm/services/Day2ClusterService.ts +17 -3
  254. package/lib/ocm/services/UISettingsService.ts +17 -0
  255. package/lib/ocm/services/index.ts +1 -0
  256. package/lib/ocm/services/types.ts +5 -0
  257. package/package.json +3 -3
@@ -152,7 +152,7 @@ const getValidationSchema = (usedHostnames: string[], origHostname: string, t: T
152
152
  return Yup.object({
153
153
  name: Yup.string().required(t('ai:Required field')),
154
154
  hostname: richNameValidationSchema(t, usedHostnames, origHostname),
155
- bmcAddress: bmcAddressValidationSchema(t).required(t('ai:Required field')),
155
+ bmcAddress: bmcAddressValidationSchema(t),
156
156
  username: Yup.string().required(t('ai:Required field')),
157
157
  password: Yup.string().required(t('ai:Required field')),
158
158
  bootMACAddress: macAddressValidationSchema,
@@ -278,7 +278,7 @@ const BMCForm: React.FC<BMCFormProps> = ({
278
278
  name="bootMACAddress"
279
279
  placeholder={t('ai:Enter an address')}
280
280
  description={t(
281
- "ai:The MAC address of the host's network connected NIC that wll be used to provision the host.",
281
+ "ai:The MAC address of the host's network connected NIC that will be used to provision the host. Required for libvirt VMs driven by vbmc.",
282
282
  )}
283
283
  />
284
284
  <InputField
@@ -301,7 +301,7 @@ const BMCForm: React.FC<BMCFormProps> = ({
301
301
  name="nmState"
302
302
  language={Language.yaml}
303
303
  description={t(
304
- 'ai:Upload a YAML file in NMstate format that includes your network configuration (static IPs, bonds, etc.).',
304
+ 'ai:Upload a YAML file in NMstate format (not the entire NMstate config CR) that includes your network configuration (static IPs, bonds, etc.).',
305
305
  )}
306
306
  />
307
307
  <MacMapping />
@@ -17,7 +17,7 @@ import { ClusterDeploymentDetailsStepProps, ClusterDeploymentDetailsValues } fro
17
17
  import ClusterDeploymentWizardFooter from './ClusterDeploymentWizardFooter';
18
18
  import ClusterDeploymentWizardContext from './ClusterDeploymentWizardContext';
19
19
  import ClusterDeploymentWizardStep from './ClusterDeploymentWizardStep';
20
- import { getAICluster, getOCPVersions } from '../helpers';
20
+ import { getAICluster, getNetworkType, getOCPVersions } from '../helpers';
21
21
  import {
22
22
  AgentClusterInstallK8sResource,
23
23
  AgentK8sResource,
@@ -47,7 +47,10 @@ export const useDetailsFormik = ({
47
47
  usedClusterNames,
48
48
  infraEnv,
49
49
  isNutanix,
50
- }: UseDetailsFormikArgs): [ClusterDetailsValues, Lazy] => {
50
+ }: UseDetailsFormikArgs): [
51
+ ClusterDetailsValues & { networkType: 'OpenShiftSDN' | 'OVNKubernetes' },
52
+ Lazy,
53
+ ] => {
51
54
  const { t } = useTranslation();
52
55
  const featureSupportLevels = useFeatureSupportLevel();
53
56
  const ocpVersions = getOCPVersions(clusterImages, isNutanix);
@@ -64,12 +67,21 @@ export const useDetailsFormik = ({
64
67
  [agentClusterInstall, clusterDeployment, agents, infraEnv],
65
68
  );
66
69
  const initialValues = React.useMemo(
67
- () =>
68
- getClusterDetailsInitialValues({
70
+ () => {
71
+ const initValues = getClusterDetailsInitialValues({
69
72
  managedDomains: [], // not supported
70
73
  cluster,
71
74
  ocpVersions,
72
- }),
75
+ });
76
+
77
+ const ocpVersion = ocpVersions.find(
78
+ (ocpVersion) => ocpVersion.value === initValues.openshiftVersion,
79
+ );
80
+ return {
81
+ ...initValues,
82
+ networkType: getNetworkType(ocpVersion),
83
+ };
84
+ },
73
85
  [], // eslint-disable-line react-hooks/exhaustive-deps
74
86
  );
75
87
 
@@ -15,6 +15,7 @@ import { ClusterDetailsValues } from '../../../common/components/clusterWizard/t
15
15
  import { useTranslation } from '../../../common/hooks/use-translation-wrapper';
16
16
  import ArmCheckbox from './ArmCheckbox';
17
17
  import { SNOControlGroup } from '../../../common';
18
+ import { getNetworkType } from '../helpers';
18
19
 
19
20
  export type ClusterDetailsFormFieldsProps = {
20
21
  isEditFlow: boolean;
@@ -49,7 +50,7 @@ export const ClusterDetailsFormFields: React.FC<ClusterDetailsFormFieldsProps> =
49
50
  extensionAfter,
50
51
  isNutanix,
51
52
  }) => {
52
- const { values } = useFormikContext<ClusterDetailsValues>();
53
+ const { values, setFieldValue } = useFormikContext<ClusterDetailsValues>();
53
54
  const { name, baseDnsDomain, highAvailabilityMode } = values;
54
55
  const nameInputRef = React.useRef<HTMLInputElement>();
55
56
  React.useEffect(() => {
@@ -99,7 +100,13 @@ export const ClusterDetailsFormFields: React.FC<ClusterDetailsFormFieldsProps> =
99
100
  {t('ai:OpenShift')} {forceOpenshiftVersion}
100
101
  </StaticTextField>
101
102
  ) : (
102
- <OpenShiftVersionSelect versions={versions} />
103
+ <OpenShiftVersionSelect
104
+ versions={versions}
105
+ onChange={(value) => {
106
+ const ocpVersion = versions.find((v) => v.value === value);
107
+ setFieldValue('networkType', getNetworkType(ocpVersion));
108
+ }}
109
+ />
103
110
  )}
104
111
  {!isNutanix && (
105
112
  <>
@@ -88,3 +88,8 @@ export const getMajorMinorVersion = (version = '') => {
88
88
  const match = /[0-9].[0-9][0-9]?/g.exec(version);
89
89
  return match?.[0] || '';
90
90
  };
91
+
92
+ export const getNetworkType = (
93
+ ocpVersion: OpenshiftVersionOptionType | undefined,
94
+ ): 'OVNKubernetes' | 'OpenShiftSDN' =>
95
+ parseFloat(getMajorMinorVersion(ocpVersion?.version)) >= 4.12 ? 'OVNKubernetes' : 'OpenShiftSDN';
@@ -3,7 +3,7 @@ import { AccessTokenCfg } from '@openshift-assisted/types/accounts-management-se
3
3
 
4
4
  export const AccessTokenAPI = {
5
5
  makeBaseURI() {
6
- return `/api/accounts_mgmt/v1/access_token`;
6
+ return '/api/accounts_mgmt/v1/access_token';
7
7
  },
8
8
 
9
9
  async fetchPullSecret() {
@@ -0,0 +1,13 @@
1
+ import { ocmClient as client } from '../axiosClient';
2
+ import { Account } from '@openshift-assisted/types/accounts-management-service';
3
+
4
+ export const CurrentAccountApi = {
5
+ makeBaseURI() {
6
+ return '/api/accounts_mgmt/v1/current_account';
7
+ },
8
+
9
+ async getCurrentAccount() {
10
+ const response = await client?.get<Account>(CurrentAccountApi.makeBaseURI());
11
+ return response?.data;
12
+ },
13
+ };
@@ -0,0 +1,15 @@
1
+ import { ocmClient as client } from '../axiosClient';
2
+ import { Organization } from '@openshift-assisted/types/accounts-management-service';
3
+
4
+ export const OrganizationsApi = {
5
+ makeBaseURI() {
6
+ return '/api/accounts_mgmt/v1/organizations';
7
+ },
8
+
9
+ async getOrganization(orgId: string, fetchCapabilities = true, fetchLabels = false) {
10
+ const response = await client?.get<Organization>(`${OrganizationsApi.makeBaseURI()}/${orgId}`, {
11
+ params: { fetchCapabilities, fetchLabels },
12
+ });
13
+ return response?.data;
14
+ },
15
+ };
@@ -0,0 +1,24 @@
1
+ import { clientWithoutCaseConverter as client } from '../../api/axiosClient';
2
+ import { Cluster } from '@openshift-assisted/types/./assisted-installer-service';
3
+
4
+ const config = {
5
+ headers: {
6
+ 'Content-Type': 'application/json',
7
+ },
8
+ };
9
+
10
+ const UISettingsAPI = {
11
+ makeBaseURI(clusterId: Cluster['id']) {
12
+ return `/v2/clusters/${clusterId ? clusterId : ''}/ui-settings`;
13
+ },
14
+
15
+ get(clusterId: Cluster['id']) {
16
+ return client.get<string>(UISettingsAPI.makeBaseURI(clusterId));
17
+ },
18
+
19
+ put(clusterId: Cluster['id'], data: string) {
20
+ return client.put<string>(UISettingsAPI.makeBaseURI(clusterId), data, config);
21
+ },
22
+ };
23
+
24
+ export default UISettingsAPI;
@@ -6,3 +6,4 @@ export { default as HostsAPI } from './HostsAPI';
6
6
  export { default as InfraEnvsAPI } from './InfraEnvsAPI';
7
7
  export { default as EventsAPI } from './EventsAPI';
8
8
  export { default as NewFeatureSupportLevelsAPI } from './NewFeatureSupportLevelsAPI';
9
+ export { default as UISettingsAPI } from './UISettingsAPI';
@@ -0,0 +1,28 @@
1
+ import { ocmClient as client } from '../axiosClient';
2
+ import {
3
+ AccessReviewResponse,
4
+ FeatureReviewResponse,
5
+ SelfAccessReview,
6
+ } from '@openshift-assisted/types/authorization-service';
7
+
8
+ export const AuthorizationApi = {
9
+ makeBaseURI() {
10
+ return '/api/authorizations/v1/';
11
+ },
12
+
13
+ async selfFeatureReview(featureId: string) {
14
+ const response = await client?.post<FeatureReviewResponse>(
15
+ `${AuthorizationApi.makeBaseURI()}/self_feature_review`,
16
+ { feature: featureId },
17
+ );
18
+ return response?.data;
19
+ },
20
+
21
+ async selfAccessReview(params: SelfAccessReview) {
22
+ const response = await client?.post<AccessReviewResponse>(
23
+ `${AuthorizationApi.makeBaseURI()}/self_access_review`,
24
+ params,
25
+ );
26
+ return response?.data;
27
+ },
28
+ };
@@ -104,7 +104,11 @@ const DiskEncryptionControlGroup = ({
104
104
  condition={enableDiskEncryptionOnMasters || (enableDiskEncryptionOnWorkers && !isSNO)}
105
105
  >
106
106
  <StackItem>
107
- <DiskEncryptionMode diskEncryptionMode={diskEncryptionMode} isDisabled={isDisabled} />
107
+ <DiskEncryptionMode
108
+ diskEncryptionMode={diskEncryptionMode}
109
+ isDisabled={isDisabled}
110
+ tooltipProps={tooltipProps}
111
+ />
108
112
  </StackItem>
109
113
  </RenderIf>
110
114
  </Stack>
@@ -8,6 +8,8 @@ import {
8
8
  Text,
9
9
  TextVariants,
10
10
  TextContent,
11
+ TooltipProps,
12
+ Tooltip,
11
13
  } from '@patternfly/react-core';
12
14
  import { ENCRYPTING_DISK_DURING_INSTALLATION } from '../../../config';
13
15
  import PopoverIcon from '../../ui/PopoverIcon';
@@ -64,31 +66,40 @@ const DiskEncryptionModeTang = () => {
64
66
  export interface DiskEncryptionModeProps {
65
67
  isDisabled: boolean;
66
68
  diskEncryptionMode: DiskEncryption['mode'];
69
+ tooltipProps: TooltipProps;
67
70
  }
68
71
 
69
- export const DiskEncryptionMode = ({ diskEncryptionMode, isDisabled }: DiskEncryptionModeProps) => {
72
+ export const DiskEncryptionMode = ({
73
+ diskEncryptionMode,
74
+ isDisabled,
75
+ tooltipProps,
76
+ }: DiskEncryptionModeProps) => {
70
77
  const { t } = useTranslation();
71
78
  return (
72
79
  <Stack>
73
80
  <StackItem>
74
81
  <Flex>
75
82
  <FlexItem spacer={{ default: 'spacer3xl' }}>
76
- <RadioField
77
- isDisabled={isDisabled}
78
- name="diskEncryptionMode"
79
- label={<DiskEncryptionModeTPMv2 />}
80
- id="TPMV2-button"
81
- value="tpmv2"
82
- />
83
+ <Tooltip {...tooltipProps}>
84
+ <RadioField
85
+ isDisabled={isDisabled}
86
+ name="diskEncryptionMode"
87
+ label={<DiskEncryptionModeTPMv2 />}
88
+ id="TPMV2-button"
89
+ value="tpmv2"
90
+ />
91
+ </Tooltip>
83
92
  </FlexItem>
84
93
  <FlexItem spacer={{ default: 'spacer3xl' }}>
85
- <RadioField
86
- isDisabled={isDisabled}
87
- name="diskEncryptionMode"
88
- label={<DiskEncryptionModeTang />}
89
- id="tang-button"
90
- value="tang"
91
- />
94
+ <Tooltip {...tooltipProps}>
95
+ <RadioField
96
+ isDisabled={isDisabled}
97
+ name="diskEncryptionMode"
98
+ label={<DiskEncryptionModeTang />}
99
+ id="tang-button"
100
+ value="tang"
101
+ />
102
+ </Tooltip>
92
103
  </FlexItem>
93
104
  </Flex>
94
105
  </StackItem>
@@ -101,7 +112,7 @@ export const DiskEncryptionMode = ({ diskEncryptionMode, isDisabled }: DiskEncry
101
112
  </TextContent>
102
113
  </StackItem>
103
114
  &nbsp;
104
- <TangServers isDisabled={isDisabled} />
115
+ <TangServers isDisabled={isDisabled} tooltipProps={tooltipProps} />
105
116
  </Stack>
106
117
  )}
107
118
  </Stack>
@@ -1,12 +1,18 @@
1
1
  import React from 'react';
2
2
  import { FieldArray, useFormikContext } from 'formik';
3
- import { Stack, StackItem, TextInputTypes } from '@patternfly/react-core';
3
+ import { Stack, StackItem, TextInputTypes, Tooltip, TooltipProps } from '@patternfly/react-core';
4
4
  import { ClusterDetailsValues } from '../../clusterWizard';
5
5
  import { InputField } from '../../ui';
6
6
  import { AddButton, RemovableField } from '../../ui/formik';
7
7
  import { useTranslation } from '../../../hooks/use-translation-wrapper';
8
8
 
9
- export const TangServers = ({ isDisabled = false }: { isDisabled: boolean }) => {
9
+ export const TangServers = ({
10
+ isDisabled = false,
11
+ tooltipProps,
12
+ }: {
13
+ isDisabled: boolean;
14
+ tooltipProps: TooltipProps;
15
+ }) => {
10
16
  const { values } = useFormikContext<ClusterDetailsValues>();
11
17
  const { t } = useTranslation();
12
18
  return (
@@ -20,22 +26,26 @@ export const TangServers = ({ isDisabled = false }: { isDisabled: boolean }) =>
20
26
  onRemove={() => remove(index)}
21
27
  >
22
28
  <div>
23
- <InputField
24
- type={TextInputTypes.url}
25
- name={`diskEncryptionTangServers.${index}.url`}
26
- helperText={`Must start with "http://" or "https://". Optionally, end with ":<port>"`}
27
- label="Server URL"
28
- isRequired
29
- isDisabled={isDisabled}
30
- />
29
+ <Tooltip {...tooltipProps}>
30
+ <InputField
31
+ type={TextInputTypes.url}
32
+ name={`diskEncryptionTangServers.${index}.url`}
33
+ helperText={`Must start with "http://" or "https://". Optionally, end with ":<port>"`}
34
+ label="Server URL"
35
+ isRequired
36
+ isDisabled={isDisabled}
37
+ />
38
+ </Tooltip>
31
39
  &thinsp;
32
- <InputField
33
- type={TextInputTypes.text}
34
- name={`diskEncryptionTangServers.${index}.thumbprint`}
35
- label="Server Thumbprint"
36
- isRequired
37
- isDisabled={isDisabled}
38
- />
40
+ <Tooltip {...tooltipProps}>
41
+ <InputField
42
+ type={TextInputTypes.text}
43
+ name={`diskEncryptionTangServers.${index}.thumbprint`}
44
+ label="Server Thumbprint"
45
+ isRequired
46
+ isDisabled={isDisabled}
47
+ />
48
+ </Tooltip>
39
49
  </div>
40
50
  </RemovableField>{' '}
41
51
  </StackItem>
@@ -12,6 +12,7 @@ import { OPENSHIFT_LIFE_CYCLE_DATES_LINK } from '../../config';
12
12
  import { OpenshiftVersionOptionType } from '../../types';
13
13
  import { SelectField } from '../ui';
14
14
  import { useTranslation } from '../../hooks/use-translation-wrapper';
15
+ import { SelectFieldProps } from '../ui/formik/types';
15
16
 
16
17
  const OpenShiftLifeCycleDatesLink = () => {
17
18
  const { t } = useTranslation();
@@ -54,8 +55,9 @@ const getOpenshiftVersionHelperText =
54
55
 
55
56
  type OpenShiftVersionSelectProps = {
56
57
  versions: OpenshiftVersionOptionType[];
58
+ onChange?: SelectFieldProps['onChange'];
57
59
  };
58
- const OpenShiftVersionSelect: React.FC<OpenShiftVersionSelectProps> = ({ versions }) => {
60
+ const OpenShiftVersionSelect: React.FC<OpenShiftVersionSelectProps> = ({ versions, onChange }) => {
59
61
  const selectOptions = React.useMemo(
60
62
  () =>
61
63
  versions
@@ -75,6 +77,7 @@ const OpenShiftVersionSelect: React.FC<OpenShiftVersionSelectProps> = ({ version
75
77
  getHelperText={getOpenshiftVersionHelperText(versions)}
76
78
  isDisabled={versions.length === 0}
77
79
  isRequired
80
+ onChange={onChange}
78
81
  />
79
82
  );
80
83
  };
@@ -0,0 +1,29 @@
1
+ import * as React from 'react';
2
+ import { Alert } from '@patternfly/react-core';
3
+ import { ExternalLink } from '../ui';
4
+ import { useTranslation } from '../../hooks/use-translation-wrapper';
5
+
6
+ type PostInstallAlertProps = {
7
+ link: string;
8
+ };
9
+
10
+ const PostInstallAlert = ({ link }: PostInstallAlertProps) => {
11
+ const { t } = useTranslation();
12
+ return (
13
+ <Alert
14
+ variant="warning"
15
+ isInline
16
+ data-testid="alert-modify-platform-config"
17
+ title={
18
+ <p>
19
+ {t(
20
+ "ai:Modify your platform configuration to access your platform's features directly in OpenShift.",
21
+ )}{' '}
22
+ <ExternalLink href={link}>{t('ai:Learn more about configuration.')}</ExternalLink>
23
+ </p>
24
+ }
25
+ />
26
+ );
27
+ };
28
+
29
+ export default PostInstallAlert;
@@ -2,3 +2,4 @@ export { default as ClusterPropertiesList } from './ClusterPropertiesList';
2
2
  export { default as ClusterProgress } from './ClusterProgress';
3
3
  export { default as ClusterCredentials } from './ClusterCredentials';
4
4
  export { default as KubeconfigDownload } from './KubeconfigDownload';
5
+ export { default as PostInstallAlert } from './PostInstallAlert';
@@ -112,6 +112,9 @@ const FailingValidation = <S extends string>({
112
112
  </>
113
113
  );
114
114
  } else {
115
+ if (validation.id === 'platform-requirements-satisfied') {
116
+ fix = validation.message;
117
+ }
115
118
  // console.error(
116
119
  // 'Unknown validation ID detected in the ',
117
120
  // clusterGroup || hostGroup,
@@ -0,0 +1,19 @@
1
+ import React from 'react';
2
+ import { EmptyState, EmptyStateBody, EmptyStateIcon, Title } from '@patternfly/react-core';
3
+ import { ExclamationTriangleIcon } from '@patternfly/react-icons';
4
+ import { global_disabled_color_100 as iconColor } from '@patternfly/react-tokens';
5
+
6
+ const NoPermissionsError = () => (
7
+ <EmptyState id="not-found">
8
+ <EmptyStateBody>
9
+ <EmptyStateIcon icon={ExclamationTriangleIcon} color={iconColor.value} />
10
+ <Title headingLevel="h2">Access permissions needed</Title>
11
+ <EmptyStateBody>
12
+ To create a cluster using the Assisted Installer, ask your organization administrator to
13
+ adjust your permissions.
14
+ </EmptyStateBody>
15
+ </EmptyStateBody>
16
+ </EmptyState>
17
+ );
18
+
19
+ export default NoPermissionsError;
@@ -29,7 +29,6 @@ const InputField: React.FC<
29
29
  idPostfix,
30
30
  children,
31
31
  noDefaultOnChange,
32
- inputError,
33
32
  description,
34
33
  labelInfo,
35
34
  showErrorMessage = true,
@@ -37,15 +36,15 @@ const InputField: React.FC<
37
36
  },
38
37
  ref: React.Ref<HTMLInputElement>,
39
38
  ) => {
40
- const [field] = useField({
39
+ const [field, { error, touched }] = useField({
41
40
  name: props.name,
42
41
  validate,
43
42
  });
44
43
 
45
44
  const fieldId = getFieldId(props.name, 'input', idPostfix);
46
- const errorMessage = useFieldErrorMsg({ name: props.name, inputError, validate });
45
+ const errorMessage = useFieldErrorMsg({ name: props.name, inputError: error, validate });
47
46
  const fieldHelperText = <HelperText fieldId={fieldId}>{helperText}</HelperText>;
48
- const isValid = !errorMessage;
47
+ const isValid = !(touched && error);
49
48
 
50
49
  return (
51
50
  <Stack id={`form-control__${fieldId}`}>
@@ -88,7 +87,7 @@ const InputField: React.FC<
88
87
  </FormGroup>
89
88
  </StackItem>
90
89
  <StackItem>
91
- {showErrorMessage && errorMessage && (
90
+ {showErrorMessage && !isValid && (
92
91
  <HelperText fieldId={fieldId} isError>
93
92
  {errorMessage}
94
93
  </HelperText>
@@ -99,7 +99,8 @@ const RichInputField: React.FC<RichInputFieldPropsProps> = React.forwardRef(
99
99
  validate,
100
100
  });
101
101
  const fieldId = getFieldId(props.name, 'input', idPostfix);
102
- const isValid = !touched || !error?.length;
102
+ const isValid = !(touched && error?.length);
103
+
103
104
  return (
104
105
  <FormGroup
105
106
  id={`form-control__${fieldId}`}
@@ -133,7 +134,10 @@ const RichInputField: React.FC<RichInputFieldPropsProps> = React.forwardRef(
133
134
  onChange && onChange(event);
134
135
  }}
135
136
  className="rich-input__text"
136
- onBlur={() => setPopoverOpen(false)}
137
+ onBlur={() => {
138
+ setTouched(true, false);
139
+ setPopoverOpen(false);
140
+ }}
137
141
  />
138
142
  <Popover
139
143
  isVisible={popoverOpen}
@@ -49,7 +49,7 @@ const SelectField: React.FC<SelectFieldProps> = ({
49
49
  onChange={(value, event) => {
50
50
  //customHandleChange enables calling formik change handler explicitly, useful for example to have the previous value
51
51
  callFormikOnChange && field.onChange(event);
52
- onChange && onChange(event);
52
+ onChange && onChange(value, event);
53
53
  }}
54
54
  >
55
55
  {options.map((option, index) => (
@@ -5,6 +5,7 @@ import {
5
5
  SelectOptionProps,
6
6
  TooltipProps,
7
7
  RadioProps,
8
+ FormSelectProps,
8
9
  } from '@patternfly/react-core';
9
10
  import { FieldValidator, FieldHelperProps } from 'formik';
10
11
  import { DropzoneProps, DropFileEventHandler } from 'react-dropzone';
@@ -37,7 +38,7 @@ export interface FieldProps {
37
38
 
38
39
  export interface SelectFieldProps extends FieldProps {
39
40
  options: FormSelectOptionProps[];
40
- onChange?: (event: React.FormEvent<HTMLSelectElement>) => void;
41
+ onChange?: FormSelectProps['onChange'];
41
42
  getHelperText?: (value: string) => React.ReactNode | undefined;
42
43
  // onBlur?: (event: React.FormEvent<HTMLSelectElement>) => void;
43
44
  }
@@ -22,3 +22,4 @@ export { default as EventsList } from './EventsList';
22
22
  export { default as ClusterEventsToolbar } from './ClusterEventsToolbar';
23
23
  export { default as ModalProgress } from './ModalProgress';
24
24
  export { default as ConfirmationModal } from './ConfirmationModal';
25
+ export { default as NoPermissionsError } from './NoPermissionsError';
@@ -250,6 +250,7 @@ export const clusterValidationLabels = (
250
250
  'lvm-requirements-satisfied': t('ai:Logical Volume Manager requirements'),
251
251
  'cnv-requirements-satisfied': t('ai:CNV requirements'),
252
252
  'mce-requirements-satisfied': t('ai:MCE requirements'),
253
+ 'platform-requirements-satisfied': t('ai:Platform requirements'),
253
254
  });
254
255
 
255
256
  export const clusterValidationGroupLabels = (
@@ -3,7 +3,6 @@ import React from 'react';
3
3
  // Must conform Unleash constants
4
4
  export type AssistedInstallerFeatureType =
5
5
  | 'ASSISTED_INSTALLER_SINGLE_CLUSTER_FEATURE'
6
- | 'ASSISTED_INSTALLER_MULTIARCH_SUPPORTED'
7
6
  | 'ASSISTED_INSTALLER_PLATFORM_OCI';
8
7
 
9
8
  export type FeatureListType = {
@@ -22,13 +21,11 @@ export type AssistedInstallerPermissionTypesListType = {
22
21
  // Hardcoded for ACM
23
22
  export const ACM_ENABLED_FEATURES: FeatureListType = {
24
23
  ASSISTED_INSTALLER_SINGLE_CLUSTER_FEATURE: false,
25
- ASSISTED_INSTALLER_MULTIARCH_SUPPORTED: true,
26
24
  };
27
25
 
28
26
  // Hardcoded outside OCM
29
27
  export const STANDALONE_DEPLOYMENT_ENABLED_FEATURES: FeatureListType = {
30
28
  ASSISTED_INSTALLER_SINGLE_CLUSTER_FEATURE: false,
31
- ASSISTED_INSTALLER_MULTIARCH_SUPPORTED: true,
32
29
  ASSISTED_INSTALLER_PLATFORM_OCI: true,
33
30
  };
34
31
 
@@ -46,7 +43,6 @@ export const FeatureGateContextProvider: React.FC<{
46
43
  // hardcoded defaults
47
44
  // TODO (mortegag): Remove all multiarch capacity related code in the UI.
48
45
  const featuresWithDefaults: FeatureListType = {
49
- ASSISTED_INSTALLER_MULTIARCH_SUPPORTED: true,
50
46
  ...features,
51
47
  };
52
48
 
@@ -44,29 +44,24 @@ export const getAllCpuArchitectures = (): SupportedCpuArchitecture[] => [
44
44
  ];
45
45
 
46
46
  export const getSupportedCpuArchitectures = (
47
- canSelectCpuArch: boolean,
48
47
  cpuArchitectures: CpuArchitecture[],
49
48
  day1CpuArchitecture?: SupportedCpuArchitecture,
50
49
  ): SupportedCpuArchitecture[] => {
51
50
  const newSupportedCpuArchs: SupportedCpuArchitecture[] = [];
52
51
  //Power/Z clusters can be only homogeneous clusters
53
52
  if (
54
- (day1CpuArchitecture === CpuArchitecture.ppc64le ||
55
- day1CpuArchitecture === CpuArchitecture.s390x) &&
56
- canSelectCpuArch
53
+ day1CpuArchitecture === CpuArchitecture.ppc64le ||
54
+ day1CpuArchitecture === CpuArchitecture.s390x
57
55
  ) {
58
56
  newSupportedCpuArchs.push(day1CpuArchitecture);
59
57
  } else {
60
58
  cpuArchitectures.forEach((cpuArch) => {
61
59
  if (
62
60
  day1CpuArchitecture === undefined &&
63
- (cpuArch === CpuArchitecture.ppc64le || cpuArch === CpuArchitecture.s390x) &&
64
- canSelectCpuArch
61
+ (cpuArch === CpuArchitecture.ppc64le || cpuArch === CpuArchitecture.s390x)
65
62
  ) {
66
63
  newSupportedCpuArchs.push(cpuArch);
67
64
  } else if (
68
- day1CpuArchitecture !== CpuArchitecture.ppc64le &&
69
- day1CpuArchitecture !== CpuArchitecture.s390x &&
70
65
  cpuArch !== CpuArchitecture.MULTI &&
71
66
  cpuArch !== CpuArchitecture.USE_DAY1_ARCHITECTURE
72
67
  ) {
@@ -22,7 +22,6 @@ import {
22
22
  AddHostsContext,
23
23
  alertsSlice,
24
24
  canInstallHost,
25
- useFeature,
26
25
  } from '../../../common';
27
26
  import InventoryAddHosts from './InventoryAddHost';
28
27
  import { onFetchEvents } from '../fetching/fetchEvents';
@@ -38,7 +37,6 @@ export const AddHosts = () => {
38
37
  const { cluster, resetCluster, canEdit } = React.useContext(AddHostsContext);
39
38
  const [isSubmitting, setSubmitting] = React.useState(false);
40
39
  const clusterVarieties = useClusterStatusVarieties(cluster);
41
- const canSelectCpuArch = useFeature('ASSISTED_INSTALLER_MULTIARCH_SUPPORTED');
42
40
  const handleHostsInstall = React.useCallback(async () => {
43
41
  setSubmitting(true);
44
42
  try {
@@ -89,7 +87,7 @@ export const AddHosts = () => {
89
87
  </Grid>
90
88
  </StackItem>
91
89
  <StackItem>
92
- <InventoryAddHosts cluster={cluster} canSelectCpuArch={canSelectCpuArch} />
90
+ <InventoryAddHosts cluster={cluster} />
93
91
  </StackItem>
94
92
  </Stack>
95
93
  </CardBody>