@openshift-assisted/ui-lib 2.9.8-cim → 2.9.10-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 (283) 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/ClusterDeployment/ScaleUpForm.d.ts +1 -0
  5. package/build/@types/cim/components/ClusterDeployment/ScaleUpForm.d.ts.map +1 -1
  6. package/build/@types/cim/components/InfraEnv/utils.d.ts.map +1 -1
  7. package/build/@types/cim/components/helpers/versions.d.ts +1 -0
  8. package/build/@types/cim/components/helpers/versions.d.ts.map +1 -1
  9. package/build/@types/cim/components/modals/ScaleUpModal.d.ts +1 -0
  10. package/build/@types/cim/components/modals/ScaleUpModal.d.ts.map +1 -1
  11. package/build/@types/cim/types/k8s/agent-cluster-install.d.ts +1 -1
  12. package/build/@types/cim/types/k8s/agent-cluster-install.d.ts.map +1 -1
  13. package/build/@types/common/api/accounts-management-service/current-account-api.d.ts +6 -0
  14. package/build/@types/common/api/accounts-management-service/current-account-api.d.ts.map +1 -0
  15. package/build/@types/common/api/accounts-management-service/organizations-api.d.ts +6 -0
  16. package/build/@types/common/api/accounts-management-service/organizations-api.d.ts.map +1 -0
  17. package/build/@types/common/api/assisted-service/UISettingsAPI.d.ts +8 -0
  18. package/build/@types/common/api/assisted-service/UISettingsAPI.d.ts.map +1 -0
  19. package/build/@types/common/api/assisted-service/index.d.ts +1 -0
  20. package/build/@types/common/api/assisted-service/index.d.ts.map +1 -1
  21. package/build/@types/common/api/authorization-service/all-apis.d.ts +7 -0
  22. package/build/@types/common/api/authorization-service/all-apis.d.ts.map +1 -0
  23. package/build/@types/common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionControlGroup.d.ts.map +1 -1
  24. package/build/@types/common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionMode.d.ts +3 -1
  25. package/build/@types/common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionMode.d.ts.map +1 -1
  26. package/build/@types/common/components/clusterConfiguration/DiskEncryptionFields/TangServers.d.ts +3 -1
  27. package/build/@types/common/components/clusterConfiguration/DiskEncryptionFields/TangServers.d.ts.map +1 -1
  28. package/build/@types/common/components/clusterConfiguration/OpenShiftVersionSelect.d.ts +2 -0
  29. package/build/@types/common/components/clusterConfiguration/OpenShiftVersionSelect.d.ts.map +1 -1
  30. package/build/@types/common/components/clusterDetail/PostInstallAlert.d.ts +6 -0
  31. package/build/@types/common/components/clusterDetail/PostInstallAlert.d.ts.map +1 -0
  32. package/build/@types/common/components/clusterDetail/index.d.ts +1 -0
  33. package/build/@types/common/components/clusterDetail/index.d.ts.map +1 -1
  34. package/build/@types/common/components/clusterWizard/ReviewValidations.d.ts.map +1 -1
  35. package/build/@types/common/components/ui/NoPermissionsError.d.ts +3 -0
  36. package/build/@types/common/components/ui/NoPermissionsError.d.ts.map +1 -0
  37. package/build/@types/common/components/ui/formik/InputField.d.ts.map +1 -1
  38. package/build/@types/common/components/ui/formik/RichInputField.d.ts.map +1 -1
  39. package/build/@types/common/components/ui/formik/types.d.ts +2 -2
  40. package/build/@types/common/components/ui/formik/types.d.ts.map +1 -1
  41. package/build/@types/common/components/ui/index.d.ts +1 -0
  42. package/build/@types/common/components/ui/index.d.ts.map +1 -1
  43. package/build/@types/common/config/constants.d.ts.map +1 -1
  44. package/build/@types/common/features/featureGate.d.ts +1 -1
  45. package/build/@types/common/features/featureGate.d.ts.map +1 -1
  46. package/build/@types/common/types/cpuArchitecture.d.ts +1 -1
  47. package/build/@types/common/types/cpuArchitecture.d.ts.map +1 -1
  48. package/build/@types/ocm/components/AddHosts/AddHosts.d.ts.map +1 -1
  49. package/build/@types/ocm/components/AddHosts/InventoryAddHost.d.ts +1 -2
  50. package/build/@types/ocm/components/AddHosts/InventoryAddHost.d.ts.map +1 -1
  51. package/build/@types/ocm/components/AddHosts/day2Wizard/Day2ClusterDetails.d.ts.map +1 -1
  52. package/build/@types/ocm/components/AddHosts/day2Wizard/Day2StaticIpHostConfigurations.d.ts +3 -1
  53. package/build/@types/ocm/components/AddHosts/day2Wizard/Day2StaticIpHostConfigurations.d.ts.map +1 -1
  54. package/build/@types/ocm/components/HostsClusterDetailTab/HostsClusterDetailTabContent.d.ts.map +1 -1
  55. package/build/@types/ocm/components/HostsClusterDetailTab/HostsClusterDetailTabContentErrors.d.ts +1 -4
  56. package/build/@types/ocm/components/HostsClusterDetailTab/HostsClusterDetailTabContentErrors.d.ts.map +1 -1
  57. package/build/@types/ocm/components/clusterConfiguration/CpuArchitectureDropdown.d.ts +3 -2
  58. package/build/@types/ocm/components/clusterConfiguration/CpuArchitectureDropdown.d.ts.map +1 -1
  59. package/build/@types/ocm/components/clusterConfiguration/CustomManifestCheckbox.d.ts.map +1 -1
  60. package/build/@types/ocm/components/clusterConfiguration/OcmBaseDomainField.d.ts +2 -1
  61. package/build/@types/ocm/components/clusterConfiguration/OcmBaseDomainField.d.ts.map +1 -1
  62. package/build/@types/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.d.ts.map +1 -1
  63. package/build/@types/ocm/components/clusterConfiguration/manifestsConfiguration/CustomManifestsPage.d.ts +1 -1
  64. package/build/@types/ocm/components/clusterConfiguration/manifestsConfiguration/CustomManifestsPage.d.ts.map +1 -1
  65. package/build/@types/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifestsForm.d.ts.map +1 -1
  66. package/build/@types/ocm/components/clusterConfiguration/manifestsConfiguration/components/utils.d.ts +3 -4
  67. package/build/@types/ocm/components/clusterConfiguration/manifestsConfiguration/components/utils.d.ts.map +1 -1
  68. package/build/@types/ocm/components/clusterConfiguration/manifestsConfiguration/data/dataTypes.d.ts +0 -1
  69. package/build/@types/ocm/components/clusterConfiguration/manifestsConfiguration/data/dataTypes.d.ts.map +1 -1
  70. package/build/@types/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfigurationForm.d.ts.map +1 -1
  71. package/build/@types/ocm/components/clusterConfiguration/networkConfiguration/networkConfigurationValidation.d.ts +1 -1
  72. package/build/@types/ocm/components/clusterConfiguration/networkConfiguration/networkConfigurationValidation.d.ts.map +1 -1
  73. package/build/@types/ocm/components/clusterDetail/ClusterDetailStatusMessages.d.ts.map +1 -1
  74. package/build/@types/ocm/components/clusterWizard/ClusterDetails.d.ts.map +1 -1
  75. package/build/@types/ocm/components/clusterWizard/ClusterDetailsForm.d.ts +1 -2
  76. package/build/@types/ocm/components/clusterWizard/ClusterDetailsForm.d.ts.map +1 -1
  77. package/build/@types/ocm/components/clusterWizard/ClusterWizardContext.d.ts +5 -3
  78. package/build/@types/ocm/components/clusterWizard/ClusterWizardContext.d.ts.map +1 -1
  79. package/build/@types/ocm/components/clusterWizard/ClusterWizardContextProvider.d.ts.map +1 -1
  80. package/build/@types/ocm/components/ui/OcmFormFields.d.ts +1 -1
  81. package/build/@types/ocm/hooks/index.d.ts +1 -0
  82. package/build/@types/ocm/hooks/index.d.ts.map +1 -1
  83. package/build/@types/ocm/hooks/useOpenshiftVersions.d.ts +1 -2
  84. package/build/@types/ocm/hooks/useOpenshiftVersions.d.ts.map +1 -1
  85. package/build/@types/ocm/hooks/useSupportLevelsAPI.d.ts +4 -4
  86. package/build/@types/ocm/hooks/useSupportLevelsAPI.d.ts.map +1 -1
  87. package/build/@types/ocm/hooks/useUISettings.d.ts +10 -0
  88. package/build/@types/ocm/hooks/useUISettings.d.ts.map +1 -0
  89. package/build/@types/ocm/services/ClusterDetailsService.d.ts +2 -1
  90. package/build/@types/ocm/services/ClusterDetailsService.d.ts.map +1 -1
  91. package/build/@types/ocm/services/ClustersService.d.ts +0 -1
  92. package/build/@types/ocm/services/ClustersService.d.ts.map +1 -1
  93. package/build/@types/ocm/services/Day2ClusterService.d.ts +3 -2
  94. package/build/@types/ocm/services/Day2ClusterService.d.ts.map +1 -1
  95. package/build/@types/ocm/services/UISettingsService.d.ts +8 -0
  96. package/build/@types/ocm/services/UISettingsService.d.ts.map +1 -0
  97. package/build/@types/ocm/services/index.d.ts +1 -0
  98. package/build/@types/ocm/services/index.d.ts.map +1 -1
  99. package/build/@types/ocm/services/types.d.ts +4 -0
  100. package/build/@types/ocm/services/types.d.ts.map +1 -1
  101. package/build/cjs/cim/components/Agent/BMCForm.js +3 -3
  102. package/build/cjs/cim/components/Agent/BMCForm.js.map +1 -1
  103. package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentDetailsStep.js +9 -5
  104. package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentDetailsStep.js.map +1 -1
  105. package/build/cjs/cim/components/ClusterDeployment/ClusterDetailsFormFields.js +6 -2
  106. package/build/cjs/cim/components/ClusterDeployment/ClusterDetailsFormFields.js.map +1 -1
  107. package/build/cjs/cim/components/ClusterDeployment/ScaleUpForm.js +7 -4
  108. package/build/cjs/cim/components/ClusterDeployment/ScaleUpForm.js.map +1 -1
  109. package/build/cjs/cim/components/InfraEnv/utils.js +6 -6
  110. package/build/cjs/cim/components/InfraEnv/utils.js.map +1 -1
  111. package/build/cjs/cim/components/helpers/versions.js +3 -1
  112. package/build/cjs/cim/components/helpers/versions.js.map +1 -1
  113. package/build/cjs/cim/components/modals/ScaleUpModal.js +2 -2
  114. package/build/cjs/cim/components/modals/ScaleUpModal.js.map +1 -1
  115. package/build/cjs/common/api/accounts-management-service/access-token-api.js +1 -1
  116. package/build/cjs/common/api/accounts-management-service/current-account-api.js +17 -0
  117. package/build/cjs/common/api/accounts-management-service/current-account-api.js.map +1 -0
  118. package/build/cjs/common/api/accounts-management-service/organizations-api.js +19 -0
  119. package/build/cjs/common/api/accounts-management-service/organizations-api.js.map +1 -0
  120. package/build/cjs/common/api/assisted-service/UISettingsAPI.js +21 -0
  121. package/build/cjs/common/api/assisted-service/UISettingsAPI.js.map +1 -0
  122. package/build/cjs/common/api/assisted-service/index.js +3 -1
  123. package/build/cjs/common/api/assisted-service/index.js.map +1 -1
  124. package/build/cjs/common/api/authorization-service/all-apis.js +23 -0
  125. package/build/cjs/common/api/authorization-service/all-apis.js.map +1 -0
  126. package/build/cjs/common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionControlGroup.js +1 -1
  127. package/build/cjs/common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionControlGroup.js.map +1 -1
  128. package/build/cjs/common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionMode.js +6 -4
  129. package/build/cjs/common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionMode.js.map +1 -1
  130. package/build/cjs/common/components/clusterConfiguration/DiskEncryptionFields/TangServers.js +5 -3
  131. package/build/cjs/common/components/clusterConfiguration/DiskEncryptionFields/TangServers.js.map +1 -1
  132. package/build/cjs/common/components/clusterConfiguration/OpenShiftVersionSelect.js +2 -2
  133. package/build/cjs/common/components/clusterConfiguration/OpenShiftVersionSelect.js.map +1 -1
  134. package/build/cjs/common/components/clusterDetail/PostInstallAlert.js +16 -0
  135. package/build/cjs/common/components/clusterDetail/PostInstallAlert.js.map +1 -0
  136. package/build/cjs/common/components/clusterDetail/index.js +3 -1
  137. package/build/cjs/common/components/clusterDetail/index.js.map +1 -1
  138. package/build/cjs/common/components/clusterWizard/ReviewValidations.js +3 -0
  139. package/build/cjs/common/components/clusterWizard/ReviewValidations.js.map +1 -1
  140. package/build/cjs/common/components/ui/NoPermissionsError.js +14 -0
  141. package/build/cjs/common/components/ui/NoPermissionsError.js.map +1 -0
  142. package/build/cjs/common/components/ui/formik/InputField.js +5 -5
  143. package/build/cjs/common/components/ui/formik/InputField.js.map +1 -1
  144. package/build/cjs/common/components/ui/formik/RichInputField.js +5 -2
  145. package/build/cjs/common/components/ui/formik/RichInputField.js.map +1 -1
  146. package/build/cjs/common/components/ui/formik/SelectField.js +1 -1
  147. package/build/cjs/common/components/ui/formik/SelectField.js.map +1 -1
  148. package/build/cjs/common/components/ui/index.js +3 -1
  149. package/build/cjs/common/components/ui/index.js.map +1 -1
  150. package/build/cjs/common/config/constants.js +1 -0
  151. package/build/cjs/common/config/constants.js.map +1 -1
  152. package/build/cjs/common/features/featureGate.js +1 -3
  153. package/build/cjs/common/features/featureGate.js.map +1 -1
  154. package/build/cjs/common/types/cpuArchitecture.js +5 -9
  155. package/build/cjs/common/types/cpuArchitecture.js.map +1 -1
  156. package/build/cjs/ocm/components/AddHosts/AddHosts.js +1 -2
  157. package/build/cjs/ocm/components/AddHosts/AddHosts.js.map +1 -1
  158. package/build/cjs/ocm/components/AddHosts/InventoryAddHost.js +2 -2
  159. package/build/cjs/ocm/components/AddHosts/InventoryAddHost.js.map +1 -1
  160. package/build/cjs/ocm/components/AddHosts/day2Wizard/Day2ClusterDetails.js +4 -4
  161. package/build/cjs/ocm/components/AddHosts/day2Wizard/Day2ClusterDetails.js.map +1 -1
  162. package/build/cjs/ocm/components/AddHosts/day2Wizard/Day2StaticIpHostConfigurations.js +7 -6
  163. package/build/cjs/ocm/components/AddHosts/day2Wizard/Day2StaticIpHostConfigurations.js.map +1 -1
  164. package/build/cjs/ocm/components/HostsClusterDetailTab/HostsClusterDetailTabContent.js +3 -20
  165. package/build/cjs/ocm/components/HostsClusterDetailTab/HostsClusterDetailTabContent.js.map +1 -1
  166. package/build/cjs/ocm/components/HostsClusterDetailTab/HostsClusterDetailTabContentErrors.js +1 -13
  167. package/build/cjs/ocm/components/HostsClusterDetailTab/HostsClusterDetailTabContentErrors.js.map +1 -1
  168. package/build/cjs/ocm/components/clusterConfiguration/CpuArchitectureDropdown.js +24 -3
  169. package/build/cjs/ocm/components/clusterConfiguration/CpuArchitectureDropdown.js.map +1 -1
  170. package/build/cjs/ocm/components/clusterConfiguration/CustomManifestCheckbox.js +22 -32
  171. package/build/cjs/ocm/components/clusterConfiguration/CustomManifestCheckbox.js.map +1 -1
  172. package/build/cjs/ocm/components/clusterConfiguration/OcmBaseDomainField.js +7 -5
  173. package/build/cjs/ocm/components/clusterConfiguration/OcmBaseDomainField.js.map +1 -1
  174. package/build/cjs/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.js +3 -4
  175. package/build/cjs/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.js.map +1 -1
  176. package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/CustomManifestsPage.js +6 -12
  177. package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/CustomManifestsPage.js.map +1 -1
  178. package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifests.js +2 -2
  179. package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifests.js.map +1 -1
  180. package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifestsArray.js +1 -1
  181. package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifestsArray.js.map +1 -1
  182. package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifestsForm.js +49 -123
  183. package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifestsForm.js.map +1 -1
  184. package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/ExpandedManifest.js +1 -0
  185. package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/ExpandedManifest.js.map +1 -1
  186. package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/utils.js +14 -19
  187. package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/utils.js.map +1 -1
  188. package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfigurationForm.js +4 -1
  189. package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfigurationForm.js.map +1 -1
  190. package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/networkConfigurationValidation.js +5 -2
  191. package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/networkConfigurationValidation.js.map +1 -1
  192. package/build/cjs/ocm/components/clusterDetail/ClusterDetailStatusMessages.js +2 -7
  193. package/build/cjs/ocm/components/clusterDetail/ClusterDetailStatusMessages.js.map +1 -1
  194. package/build/cjs/ocm/components/clusterWizard/ClusterDetails.js +5 -12
  195. package/build/cjs/ocm/components/clusterWizard/ClusterDetails.js.map +1 -1
  196. package/build/cjs/ocm/components/clusterWizard/ClusterDetailsForm.js +18 -13
  197. package/build/cjs/ocm/components/clusterWizard/ClusterDetailsForm.js.map +1 -1
  198. package/build/cjs/ocm/components/clusterWizard/ClusterWizardContext.js.map +1 -1
  199. package/build/cjs/ocm/components/clusterWizard/ClusterWizardContextProvider.js +45 -36
  200. package/build/cjs/ocm/components/clusterWizard/ClusterWizardContextProvider.js.map +1 -1
  201. package/build/cjs/ocm/hooks/index.js +3 -1
  202. package/build/cjs/ocm/hooks/index.js.map +1 -1
  203. package/build/cjs/ocm/hooks/useOpenshiftVersions.js +0 -5
  204. package/build/cjs/ocm/hooks/useOpenshiftVersions.js.map +1 -1
  205. package/build/cjs/ocm/hooks/useSupportLevelsAPI.js +34 -1
  206. package/build/cjs/ocm/hooks/useSupportLevelsAPI.js.map +1 -1
  207. package/build/cjs/ocm/hooks/useUISettings.js +62 -0
  208. package/build/cjs/ocm/hooks/useUISettings.js.map +1 -0
  209. package/build/cjs/ocm/services/ClusterDetailsService.js +2 -5
  210. package/build/cjs/ocm/services/ClusterDetailsService.js.map +1 -1
  211. package/build/cjs/ocm/services/ClustersService.js +0 -8
  212. package/build/cjs/ocm/services/ClustersService.js.map +1 -1
  213. package/build/cjs/ocm/services/Day2ClusterService.js +13 -4
  214. package/build/cjs/ocm/services/Day2ClusterService.js.map +1 -1
  215. package/build/cjs/ocm/services/UISettingsService.js +18 -0
  216. package/build/cjs/ocm/services/UISettingsService.js.map +1 -0
  217. package/build/cjs/ocm/services/index.js +3 -1
  218. package/build/cjs/ocm/services/index.js.map +1 -1
  219. package/lib/cim/components/Agent/BMCForm.tsx +3 -3
  220. package/lib/cim/components/ClusterDeployment/ClusterDeploymentDetailsStep.tsx +17 -5
  221. package/lib/cim/components/ClusterDeployment/ClusterDetailsFormFields.tsx +9 -2
  222. package/lib/cim/components/ClusterDeployment/ScaleUpForm.tsx +11 -5
  223. package/lib/cim/components/InfraEnv/utils.ts +7 -6
  224. package/lib/cim/components/helpers/versions.ts +5 -0
  225. package/lib/cim/components/modals/ScaleUpModal.tsx +3 -0
  226. package/lib/cim/types/k8s/agent-cluster-install.ts +4 -7
  227. package/lib/common/api/accounts-management-service/access-token-api.ts +1 -1
  228. package/lib/common/api/accounts-management-service/current-account-api.ts +13 -0
  229. package/lib/common/api/accounts-management-service/organizations-api.ts +15 -0
  230. package/lib/common/api/assisted-service/UISettingsAPI.ts +24 -0
  231. package/lib/common/api/assisted-service/index.ts +1 -0
  232. package/lib/common/api/authorization-service/all-apis.ts +28 -0
  233. package/lib/common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionControlGroup.tsx +5 -1
  234. package/lib/common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionMode.tsx +27 -16
  235. package/lib/common/components/clusterConfiguration/DiskEncryptionFields/TangServers.tsx +27 -17
  236. package/lib/common/components/clusterConfiguration/OpenShiftVersionSelect.tsx +4 -1
  237. package/lib/common/components/clusterDetail/PostInstallAlert.tsx +29 -0
  238. package/lib/common/components/clusterDetail/index.ts +1 -0
  239. package/lib/common/components/clusterWizard/ReviewValidations.tsx +3 -0
  240. package/lib/common/components/ui/NoPermissionsError.tsx +19 -0
  241. package/lib/common/components/ui/formik/InputField.tsx +4 -5
  242. package/lib/common/components/ui/formik/RichInputField.tsx +6 -2
  243. package/lib/common/components/ui/formik/SelectField.tsx +1 -1
  244. package/lib/common/components/ui/formik/types.ts +2 -1
  245. package/lib/common/components/ui/index.ts +1 -0
  246. package/lib/common/config/constants.ts +1 -0
  247. package/lib/common/features/featureGate.tsx +0 -4
  248. package/lib/common/types/cpuArchitecture.ts +3 -8
  249. package/lib/ocm/components/AddHosts/AddHosts.tsx +1 -3
  250. package/lib/ocm/components/AddHosts/InventoryAddHost.tsx +2 -8
  251. package/lib/ocm/components/AddHosts/day2Wizard/Day2ClusterDetails.tsx +6 -11
  252. package/lib/ocm/components/AddHosts/day2Wizard/Day2StaticIpHostConfigurations.tsx +34 -19
  253. package/lib/ocm/components/HostsClusterDetailTab/HostsClusterDetailTabContent.tsx +4 -36
  254. package/lib/ocm/components/HostsClusterDetailTab/HostsClusterDetailTabContentErrors.tsx +1 -15
  255. package/lib/ocm/components/clusterConfiguration/CpuArchitectureDropdown.tsx +58 -3
  256. package/lib/ocm/components/clusterConfiguration/CustomManifestCheckbox.tsx +25 -32
  257. package/lib/ocm/components/clusterConfiguration/OcmBaseDomainField.tsx +23 -12
  258. package/lib/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.tsx +4 -5
  259. package/lib/ocm/components/clusterConfiguration/manifestsConfiguration/CustomManifestsPage.tsx +20 -27
  260. package/lib/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifests.tsx +3 -3
  261. package/lib/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifestsArray.tsx +2 -2
  262. package/lib/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifestsForm.tsx +69 -182
  263. package/lib/ocm/components/clusterConfiguration/manifestsConfiguration/components/ExpandedManifest.tsx +1 -1
  264. package/lib/ocm/components/clusterConfiguration/manifestsConfiguration/components/utils.tsx +9 -15
  265. package/lib/ocm/components/clusterConfiguration/manifestsConfiguration/data/dataTypes.ts +0 -1
  266. package/lib/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfigurationForm.tsx +7 -2
  267. package/lib/ocm/components/clusterConfiguration/networkConfiguration/networkConfigurationValidation.ts +6 -1
  268. package/lib/ocm/components/clusterDetail/ClusterDetailStatusMessages.tsx +2 -16
  269. package/lib/ocm/components/clusterWizard/ClusterDetails.tsx +9 -16
  270. package/lib/ocm/components/clusterWizard/ClusterDetailsForm.tsx +18 -16
  271. package/lib/ocm/components/clusterWizard/ClusterWizardContext.tsx +5 -3
  272. package/lib/ocm/components/clusterWizard/ClusterWizardContextProvider.tsx +75 -54
  273. package/lib/ocm/hooks/index.ts +1 -0
  274. package/lib/ocm/hooks/useOpenshiftVersions.tsx +1 -15
  275. package/lib/ocm/hooks/useSupportLevelsAPI.ts +54 -2
  276. package/lib/ocm/hooks/useUISettings.ts +71 -0
  277. package/lib/ocm/services/ClusterDetailsService.ts +3 -5
  278. package/lib/ocm/services/ClustersService.ts +0 -10
  279. package/lib/ocm/services/Day2ClusterService.ts +17 -3
  280. package/lib/ocm/services/UISettingsService.ts +17 -0
  281. package/lib/ocm/services/index.ts +1 -0
  282. package/lib/ocm/services/types.ts +5 -0
  283. package/package.json +8 -4
@@ -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>
@@ -8,18 +8,12 @@ import Day2DiscoveryImageModalButton from './day2Wizard/Day2DiscoveryImageModalB
8
8
  import Day2Wizard from './day2Wizard/Day2Wizard';
9
9
  import { Cluster } from '@openshift-assisted/types/assisted-installer-service';
10
10
 
11
- const InventoryAddHosts = ({
12
- cluster,
13
- canSelectCpuArch,
14
- }: {
15
- cluster?: Cluster;
16
- canSelectCpuArch?: boolean;
17
- }) => {
11
+ const InventoryAddHosts = ({ cluster }: { cluster?: Cluster }) => {
18
12
  if (!cluster) {
19
13
  return null;
20
14
  }
21
15
 
22
- const showArmOnlyAlert = !canSelectCpuArch && cluster.cpuArchitecture === CpuArchitecture.ARM;
16
+ const showArmOnlyAlert = cluster.cpuArchitecture === CpuArchitecture.ARM;
23
17
  return (
24
18
  <Stack hasGutter>
25
19
  <StackItem>
@@ -12,7 +12,6 @@ import {
12
12
  HOW_TO_KNOW_IF_CLUSTER_SUPPORTS_MULTIPLE_CPU_ARCHS,
13
13
  LoadingState,
14
14
  SupportedCpuArchitecture,
15
- useFeature,
16
15
  } from '../../../../common';
17
16
  import { HostsNetworkConfigurationType, InfraEnvsService } from '../../../services';
18
17
  import { useModalDialogsContext } from '../../hosts/ModalDialogsContext';
@@ -86,7 +85,6 @@ const Day2ClusterDetails = () => {
86
85
  const [initialValues, setInitialValues] = React.useState<Day2ClusterDetailValues | null>(null);
87
86
  const [isSubmitting, setSubmitting] = React.useState(false);
88
87
  const [isAlternativeCpuSelected, setIsAlternativeCpuSelected] = React.useState(false);
89
- const canSelectCpuArch = useFeature('ASSISTED_INSTALLER_MULTIARCH_SUPPORTED');
90
88
  const { getCpuArchitectures } = useOpenshiftVersions();
91
89
  const cpuArchitecturesByVersionImage = getCpuArchitectures(day2Cluster.openshiftVersion);
92
90
  const day1CpuArchitecture = mapClusterCpuArchToInfraEnvCpuArch(day2Cluster.cpuArchitecture);
@@ -94,13 +92,8 @@ const Day2ClusterDetails = () => {
94
92
  const pullSecret = usePullSecret();
95
93
 
96
94
  const cpuArchitectures = React.useMemo(
97
- () =>
98
- getSupportedCpuArchitectures(
99
- canSelectCpuArch,
100
- cpuArchitecturesByVersionImage,
101
- day1CpuArchitecture,
102
- ),
103
- [canSelectCpuArch, cpuArchitecturesByVersionImage, day1CpuArchitecture],
95
+ () => getSupportedCpuArchitectures(cpuArchitecturesByVersionImage, day1CpuArchitecture),
96
+ [cpuArchitecturesByVersionImage, day1CpuArchitecture],
104
97
  );
105
98
  React.useEffect(() => {
106
99
  const fetchAndSetInitialValues = async () => {
@@ -227,6 +220,7 @@ const Day2ClusterDetails = () => {
227
220
  day1CpuArchitecture={initialValues.cpuArchitecture}
228
221
  cpuArchitectures={cpuArchitectures}
229
222
  onChange={(value) => handleChangeCpuArchitectureDropdown(value, initialValues)}
223
+ platformType={day2Cluster.platform?.type}
230
224
  />
231
225
  </GridItem>
232
226
  {isAlternativeCpuSelected && (
@@ -246,9 +240,10 @@ const Day2ClusterDetails = () => {
246
240
  </Alert>
247
241
  </GridItem>
248
242
  )}
249
-
250
243
  <GridItem>
251
- <Day2HostStaticIpConfigurations />
244
+ <Day2HostStaticIpConfigurations
245
+ isDisabled={day2Cluster.platform?.type === 'oci'}
246
+ />
252
247
  </GridItem>
253
248
  </Grid>
254
249
  </Form>
@@ -1,13 +1,21 @@
1
1
  import React from 'react';
2
- import { Flex, FlexItem, FormGroup, TextContent, TextVariants, Text } from '@patternfly/react-core';
2
+ import {
3
+ Flex,
4
+ FlexItem,
5
+ FormGroup,
6
+ TextContent,
7
+ TextVariants,
8
+ Text,
9
+ Tooltip,
10
+ } from '@patternfly/react-core';
3
11
  import { useFormikContext } from 'formik';
4
12
  import { HostsNetworkConfigurationType } from '../../../services';
5
- import { getFieldId, RadioField } from '../../../../common';
13
+ import { RadioField, getFieldId } from '../../../../common';
6
14
  import { Day2ClusterDetailValues } from '../types';
7
15
 
8
16
  const GROUP_NAME = 'hostsNetworkConfigurationType';
9
17
 
10
- const Day2HostStaticIpConfigurations = () => {
18
+ const Day2HostStaticIpConfigurations = ({ isDisabled }: { isDisabled: boolean }) => {
11
19
  const { setFieldValue } = useFormikContext<Day2ClusterDetailValues>();
12
20
 
13
21
  const onChangeNetworkType = (event: React.ChangeEvent<HTMLInputElement>) => {
@@ -25,22 +33,29 @@ const Day2HostStaticIpConfigurations = () => {
25
33
  isInline
26
34
  onChange={onChangeNetworkType}
27
35
  >
28
- <Flex>
29
- <FlexItem key={HostsNetworkConfigurationType.DHCP}>
30
- <RadioField
31
- name={GROUP_NAME}
32
- value={HostsNetworkConfigurationType.DHCP}
33
- label="DHCP only"
34
- />
35
- </FlexItem>
36
- <FlexItem key={HostsNetworkConfigurationType.STATIC}>
37
- <RadioField
38
- name={GROUP_NAME}
39
- value={HostsNetworkConfigurationType.STATIC}
40
- label="Static IP, bridges, and bonds"
41
- />
42
- </FlexItem>
43
- </Flex>
36
+ <Tooltip
37
+ hidden={!isDisabled}
38
+ content="This cluster is using the Oracle cloud platform which allows only DHCP for the hosts' network configuration"
39
+ >
40
+ <Flex>
41
+ <FlexItem key={HostsNetworkConfigurationType.DHCP}>
42
+ <RadioField
43
+ name={GROUP_NAME}
44
+ value={HostsNetworkConfigurationType.DHCP}
45
+ label="DHCP only"
46
+ isDisabled={isDisabled}
47
+ />
48
+ </FlexItem>
49
+ <FlexItem key={HostsNetworkConfigurationType.STATIC}>
50
+ <RadioField
51
+ name={GROUP_NAME}
52
+ value={HostsNetworkConfigurationType.STATIC}
53
+ label="Static IP, bridges, and bonds"
54
+ isDisabled={isDisabled}
55
+ />
56
+ </FlexItem>
57
+ </Flex>
58
+ </Tooltip>
44
59
  </FormGroup>
45
60
  );
46
61
  };
@@ -7,7 +7,7 @@ import {
7
7
  LoadingState,
8
8
  POLLING_INTERVAL,
9
9
  } from '../../../common';
10
- import { useOpenshiftVersions, usePullSecret } from '../../hooks';
10
+ import { usePullSecret } from '../../hooks';
11
11
  import { Button, EmptyStateVariant } from '@patternfly/react-core';
12
12
  import Day2ClusterService, { getApiVipDnsName } from '../../services/Day2ClusterService';
13
13
  import { handleApiError } from '../../api';
@@ -19,7 +19,6 @@ import {
19
19
  AddHostsApiError,
20
20
  ReloadFailedError,
21
21
  UnableToAddHostsError,
22
- UnsupportedVersionError,
23
22
  } from './HostsClusterDetailTabContentErrors';
24
23
  import useInfraEnv from '../../hooks/useInfraEnv';
25
24
  import { mapOcmArchToCpuArchitecture } from '../../services/CpuArchitectureService';
@@ -32,13 +31,7 @@ export const HostsClusterDetailTabContent = ({
32
31
  const [error, setError] = React.useState<ReactNode>();
33
32
  const [day2Cluster, setDay2Cluster] = useStateSafely<Cluster | null>(null);
34
33
  const pullSecret = usePullSecret();
35
- const {
36
- getCpuArchitectures,
37
- normalizeClusterVersion,
38
- loading: areOpenshiftVersionsLoading,
39
- } = useOpenshiftVersions();
40
34
 
41
- const cpuArchitecturesByVersionImage = getCpuArchitectures(ocmCluster.openshift_version);
42
35
  const handleClickTryAgainLink = React.useCallback(() => {
43
36
  setError(undefined);
44
37
  setDay2Cluster(null);
@@ -65,18 +58,7 @@ export const HostsClusterDetailTabContent = ({
65
58
  setError(<UnableToAddHostsError onTryAgain={handleClickTryAgainLink} />);
66
59
  }
67
60
 
68
- if (!areOpenshiftVersionsLoading && !day2Cluster && pullSecret) {
69
- const normalizedVersion = normalizeClusterVersion(ocmCluster.openshift_version);
70
- if (!normalizedVersion) {
71
- setError(
72
- <UnsupportedVersionError
73
- version={ocmCluster.openshift_version}
74
- onTryAgain={handleClickTryAgainLink}
75
- />,
76
- );
77
- return;
78
- }
79
-
61
+ if (!day2Cluster && pullSecret) {
80
62
  const { apiVipDnsname, errorType } = getApiVipDnsName(ocmCluster);
81
63
  if (errorType) {
82
64
  const wrongUrlMessage =
@@ -102,11 +84,7 @@ export const HostsClusterDetailTabContent = ({
102
84
 
103
85
  const loadDay2Cluster = async () => {
104
86
  try {
105
- const day2Cluster = await Day2ClusterService.fetchCluster(
106
- ocmCluster,
107
- pullSecret,
108
- normalizedVersion,
109
- );
87
+ const day2Cluster = await Day2ClusterService.fetchCluster(ocmCluster, pullSecret);
110
88
 
111
89
  const aiCluster = Day2ClusterService.completeAiClusterWithOcmCluster(
112
90
  day2Cluster,
@@ -130,17 +108,7 @@ export const HostsClusterDetailTabContent = ({
130
108
 
131
109
  void loadDay2Cluster();
132
110
  }
133
- }, [
134
- ocmCluster,
135
- pullSecret,
136
- day2Cluster,
137
- setDay2Cluster,
138
- isVisible,
139
- normalizeClusterVersion,
140
- handleClickTryAgainLink,
141
- cpuArchitecturesByVersionImage,
142
- areOpenshiftVersionsLoading,
143
- ]);
111
+ }, [ocmCluster, pullSecret, day2Cluster, setDay2Cluster, isVisible, handleClickTryAgainLink]);
144
112
 
145
113
  const refreshCluster = React.useCallback(async () => {
146
114
  if (!day2Cluster?.id) {