@openshift-assisted/ui-lib 2.9.7-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 (356) hide show
  1. package/build/@types/cim/components/ClusterDeployment/ClusterDeploymentDetails.d.ts.map +1 -1
  2. package/build/@types/cim/components/ClusterDeployment/ClusterDeploymentDetailsStep.d.ts +6 -1
  3. package/build/@types/cim/components/ClusterDeployment/ClusterDeploymentDetailsStep.d.ts.map +1 -1
  4. package/build/@types/cim/components/ClusterDeployment/ClusterDetailsFormFields.d.ts.map +1 -1
  5. package/build/@types/cim/components/ClusterDeployment/helpers.d.ts.map +1 -1
  6. package/build/@types/cim/components/Hypershift/utils/nodepool.d.ts.map +1 -1
  7. package/build/@types/cim/components/InfraEnv/InfraEnvFormPage.d.ts +2 -0
  8. package/build/@types/cim/components/InfraEnv/InfraEnvFormPage.d.ts.map +1 -1
  9. package/build/@types/cim/components/helpers/versions.d.ts +1 -0
  10. package/build/@types/cim/components/helpers/versions.d.ts.map +1 -1
  11. package/build/@types/cim/components/modals/AddHostModal.d.ts.map +1 -1
  12. package/build/@types/common/api/accounts-management-service/current-account-api.d.ts +6 -0
  13. package/build/@types/common/api/accounts-management-service/current-account-api.d.ts.map +1 -0
  14. package/build/@types/common/api/accounts-management-service/organizations-api.d.ts +6 -0
  15. package/build/@types/common/api/accounts-management-service/organizations-api.d.ts.map +1 -0
  16. package/build/@types/common/api/assisted-service/NewFeatureSupportLevelsAPI.d.ts +1 -1
  17. package/build/@types/common/api/assisted-service/NewFeatureSupportLevelsAPI.d.ts.map +1 -1
  18. package/build/@types/common/api/assisted-service/UISettingsAPI.d.ts +8 -0
  19. package/build/@types/common/api/assisted-service/UISettingsAPI.d.ts.map +1 -0
  20. package/build/@types/common/api/assisted-service/index.d.ts +1 -0
  21. package/build/@types/common/api/assisted-service/index.d.ts.map +1 -1
  22. package/build/@types/common/api/authorization-service/all-apis.d.ts +7 -0
  23. package/build/@types/common/api/authorization-service/all-apis.d.ts.map +1 -0
  24. package/build/@types/common/components/clusterConfiguration/DiscoveryImageConfigForm.d.ts +4 -1
  25. package/build/@types/common/components/clusterConfiguration/DiscoveryImageConfigForm.d.ts.map +1 -1
  26. package/build/@types/common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionControlGroup.d.ts.map +1 -1
  27. package/build/@types/common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionMode.d.ts +3 -1
  28. package/build/@types/common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionMode.d.ts.map +1 -1
  29. package/build/@types/common/components/clusterConfiguration/DiskEncryptionFields/TangServers.d.ts +3 -1
  30. package/build/@types/common/components/clusterConfiguration/DiskEncryptionFields/TangServers.d.ts.map +1 -1
  31. package/build/@types/common/components/clusterConfiguration/DownloadIso.d.ts +2 -1
  32. package/build/@types/common/components/clusterConfiguration/DownloadIso.d.ts.map +1 -1
  33. package/build/@types/common/components/clusterConfiguration/OpenShiftVersionSelect.d.ts +2 -0
  34. package/build/@types/common/components/clusterConfiguration/OpenShiftVersionSelect.d.ts.map +1 -1
  35. package/build/@types/common/components/clusterDetail/PostInstallAlert.d.ts +6 -0
  36. package/build/@types/common/components/clusterDetail/PostInstallAlert.d.ts.map +1 -0
  37. package/build/@types/common/components/clusterDetail/index.d.ts +1 -0
  38. package/build/@types/common/components/clusterDetail/index.d.ts.map +1 -1
  39. package/build/@types/common/components/clusterWizard/ReviewValidations.d.ts.map +1 -1
  40. package/build/@types/common/components/hosts/HostRowDetail.d.ts +2 -1
  41. package/build/@types/common/components/hosts/HostRowDetail.d.ts.map +1 -1
  42. package/build/@types/common/components/newFeatureSupportLevels/types.d.ts +3 -3
  43. package/build/@types/common/components/newFeatureSupportLevels/types.d.ts.map +1 -1
  44. package/build/@types/common/components/ui/NoPermissionsError.d.ts +3 -0
  45. package/build/@types/common/components/ui/NoPermissionsError.d.ts.map +1 -0
  46. package/build/@types/common/components/ui/formik/InputField.d.ts.map +1 -1
  47. package/build/@types/common/components/ui/formik/RichInputField.d.ts.map +1 -1
  48. package/build/@types/common/components/ui/formik/types.d.ts +2 -2
  49. package/build/@types/common/components/ui/formik/types.d.ts.map +1 -1
  50. package/build/@types/common/components/ui/formik/validationSchemas.d.ts.map +1 -1
  51. package/build/@types/common/components/ui/index.d.ts +1 -0
  52. package/build/@types/common/components/ui/index.d.ts.map +1 -1
  53. package/build/@types/common/config/constants.d.ts +1 -1
  54. package/build/@types/common/config/constants.d.ts.map +1 -1
  55. package/build/@types/common/features/featureGate.d.ts +1 -1
  56. package/build/@types/common/features/featureGate.d.ts.map +1 -1
  57. package/build/@types/common/services/DateAndTime.d.ts.map +1 -0
  58. package/build/@types/common/types/cpuArchitecture.d.ts +1 -1
  59. package/build/@types/common/types/cpuArchitecture.d.ts.map +1 -1
  60. package/build/@types/common/types/featureSupportLevel.d.ts +3 -3
  61. package/build/@types/common/types/featureSupportLevel.d.ts.map +1 -1
  62. package/build/@types/ocm/components/AddHosts/AddHosts.d.ts.map +1 -1
  63. package/build/@types/ocm/components/AddHosts/InventoryAddHost.d.ts +1 -2
  64. package/build/@types/ocm/components/AddHosts/InventoryAddHost.d.ts.map +1 -1
  65. package/build/@types/ocm/components/AddHosts/day2Wizard/Day2ClusterDetails.d.ts.map +1 -1
  66. package/build/@types/ocm/components/AddHosts/day2Wizard/Day2StaticIpHostConfigurations.d.ts +3 -1
  67. package/build/@types/ocm/components/AddHosts/day2Wizard/Day2StaticIpHostConfigurations.d.ts.map +1 -1
  68. package/build/@types/ocm/components/HostsClusterDetailTab/HostsClusterDetailTabContent.d.ts.map +1 -1
  69. package/build/@types/ocm/components/HostsClusterDetailTab/HostsClusterDetailTabContentErrors.d.ts +1 -4
  70. package/build/@types/ocm/components/HostsClusterDetailTab/HostsClusterDetailTabContentErrors.d.ts.map +1 -1
  71. package/build/@types/ocm/components/clusterConfiguration/CpuArchitectureDropdown.d.ts +5 -4
  72. package/build/@types/ocm/components/clusterConfiguration/CpuArchitectureDropdown.d.ts.map +1 -1
  73. package/build/@types/ocm/components/clusterConfiguration/CustomManifestCheckbox.d.ts.map +1 -1
  74. package/build/@types/ocm/components/clusterConfiguration/OcmBaseDomainField.d.ts +2 -1
  75. package/build/@types/ocm/components/clusterConfiguration/OcmBaseDomainField.d.ts.map +1 -1
  76. package/build/@types/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.d.ts.map +1 -1
  77. package/build/@types/ocm/components/clusterConfiguration/manifestsConfiguration/CustomManifestsPage.d.ts +1 -1
  78. package/build/@types/ocm/components/clusterConfiguration/manifestsConfiguration/CustomManifestsPage.d.ts.map +1 -1
  79. package/build/@types/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifestsForm.d.ts.map +1 -1
  80. package/build/@types/ocm/components/clusterConfiguration/manifestsConfiguration/components/utils.d.ts +3 -4
  81. package/build/@types/ocm/components/clusterConfiguration/manifestsConfiguration/components/utils.d.ts.map +1 -1
  82. package/build/@types/ocm/components/clusterConfiguration/manifestsConfiguration/data/dataTypes.d.ts +0 -1
  83. package/build/@types/ocm/components/clusterConfiguration/manifestsConfiguration/data/dataTypes.d.ts.map +1 -1
  84. package/build/@types/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfiguration.d.ts.map +1 -1
  85. package/build/@types/ocm/components/clusterConfiguration/platformIntegration/ExternalPlatformDropdown.d.ts +2 -1
  86. package/build/@types/ocm/components/clusterConfiguration/platformIntegration/ExternalPlatformDropdown.d.ts.map +1 -1
  87. package/build/@types/ocm/components/clusterDetail/AssistedInstallerDetailCard.d.ts.map +1 -1
  88. package/build/@types/ocm/components/clusterDetail/AssistedInstallerExtraDetailCard.d.ts.map +1 -1
  89. package/build/@types/ocm/components/clusterDetail/ClusterDetailStatusMessages.d.ts.map +1 -1
  90. package/build/@types/ocm/components/clusterWizard/ClusterDetails.d.ts.map +1 -1
  91. package/build/@types/ocm/components/clusterWizard/ClusterDetailsForm.d.ts +1 -2
  92. package/build/@types/ocm/components/clusterWizard/ClusterDetailsForm.d.ts.map +1 -1
  93. package/build/@types/ocm/components/clusterWizard/ClusterWizardContext.d.ts +5 -3
  94. package/build/@types/ocm/components/clusterWizard/ClusterWizardContext.d.ts.map +1 -1
  95. package/build/@types/ocm/components/clusterWizard/ClusterWizardContextProvider.d.ts.map +1 -1
  96. package/build/@types/ocm/components/clusters/ClusterPage.d.ts.map +1 -1
  97. package/build/@types/ocm/components/featureSupportLevels/FeatureSupportLevelProvider.d.ts +4 -3
  98. package/build/@types/ocm/components/featureSupportLevels/FeatureSupportLevelProvider.d.ts.map +1 -1
  99. package/build/@types/ocm/components/featureSupportLevels/ReviewClusterFeatureSupportLevels.d.ts.map +1 -1
  100. package/build/@types/ocm/components/featureSupportLevels/featureStateUtils.d.ts +3 -3
  101. package/build/@types/ocm/components/featureSupportLevels/featureStateUtils.d.ts.map +1 -1
  102. package/build/@types/ocm/components/hosts/HostsDiscoveryTable.d.ts.map +1 -1
  103. package/build/@types/ocm/components/ui/OcmFormFields.d.ts +1 -1
  104. package/build/@types/ocm/hooks/index.d.ts +1 -0
  105. package/build/@types/ocm/hooks/index.d.ts.map +1 -1
  106. package/build/@types/ocm/hooks/useOpenshiftVersions.d.ts +1 -2
  107. package/build/@types/ocm/hooks/useOpenshiftVersions.d.ts.map +1 -1
  108. package/build/@types/ocm/hooks/useSupportLevelsAPI.d.ts +5 -3
  109. package/build/@types/ocm/hooks/useSupportLevelsAPI.d.ts.map +1 -1
  110. package/build/@types/ocm/hooks/useUISettings.d.ts +10 -0
  111. package/build/@types/ocm/hooks/useUISettings.d.ts.map +1 -0
  112. package/build/@types/ocm/services/ClusterDetailsService.d.ts +2 -1
  113. package/build/@types/ocm/services/ClusterDetailsService.d.ts.map +1 -1
  114. package/build/@types/ocm/services/ClustersService.d.ts +0 -1
  115. package/build/@types/ocm/services/ClustersService.d.ts.map +1 -1
  116. package/build/@types/ocm/services/Day2ClusterService.d.ts +3 -2
  117. package/build/@types/ocm/services/Day2ClusterService.d.ts.map +1 -1
  118. package/build/@types/ocm/services/UISettingsService.d.ts +8 -0
  119. package/build/@types/ocm/services/UISettingsService.d.ts.map +1 -0
  120. package/build/@types/ocm/services/index.d.ts +1 -0
  121. package/build/@types/ocm/services/index.d.ts.map +1 -1
  122. package/build/@types/ocm/services/types.d.ts +4 -0
  123. package/build/@types/ocm/services/types.d.ts.map +1 -1
  124. package/build/cjs/cim/components/Agent/BMCForm.js +3 -3
  125. package/build/cjs/cim/components/Agent/BMCForm.js.map +1 -1
  126. package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentDetails.js +58 -55
  127. package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentDetails.js.map +1 -1
  128. package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentDetailsStep.js +9 -5
  129. package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentDetailsStep.js.map +1 -1
  130. package/build/cjs/cim/components/ClusterDeployment/ClusterDetailsFormFields.js +6 -2
  131. package/build/cjs/cim/components/ClusterDeployment/ClusterDetailsFormFields.js.map +1 -1
  132. package/build/cjs/cim/components/ClusterDeployment/helpers.js +4 -2
  133. package/build/cjs/cim/components/ClusterDeployment/helpers.js.map +1 -1
  134. package/build/cjs/cim/components/Hypershift/utils/nodepool.js +6 -5
  135. package/build/cjs/cim/components/Hypershift/utils/nodepool.js.map +1 -1
  136. package/build/cjs/cim/components/InfraEnv/InfraEnvFormPage.js +2 -2
  137. package/build/cjs/cim/components/InfraEnv/InfraEnvFormPage.js.map +1 -1
  138. package/build/cjs/cim/components/helpers/versions.js +3 -1
  139. package/build/cjs/cim/components/helpers/versions.js.map +1 -1
  140. package/build/cjs/cim/components/modals/AddHostModal.js +4 -4
  141. package/build/cjs/cim/components/modals/AddHostModal.js.map +1 -1
  142. package/build/cjs/common/api/accounts-management-service/access-token-api.js +1 -1
  143. package/build/cjs/common/api/accounts-management-service/current-account-api.js +17 -0
  144. package/build/cjs/common/api/accounts-management-service/current-account-api.js.map +1 -0
  145. package/build/cjs/common/api/accounts-management-service/organizations-api.js +19 -0
  146. package/build/cjs/common/api/accounts-management-service/organizations-api.js.map +1 -0
  147. package/build/cjs/common/api/assisted-service/NewFeatureSupportLevelsAPI.js +8 -5
  148. package/build/cjs/common/api/assisted-service/NewFeatureSupportLevelsAPI.js.map +1 -1
  149. package/build/cjs/common/api/assisted-service/UISettingsAPI.js +21 -0
  150. package/build/cjs/common/api/assisted-service/UISettingsAPI.js.map +1 -0
  151. package/build/cjs/common/api/assisted-service/index.js +3 -1
  152. package/build/cjs/common/api/assisted-service/index.js.map +1 -1
  153. package/build/cjs/common/api/authorization-service/all-apis.js +23 -0
  154. package/build/cjs/common/api/authorization-service/all-apis.js.map +1 -0
  155. package/build/cjs/common/components/clusterConfiguration/DiscoveryImageConfigForm.js +4 -4
  156. package/build/cjs/common/components/clusterConfiguration/DiscoveryImageConfigForm.js.map +1 -1
  157. package/build/cjs/common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionControlGroup.js +1 -1
  158. package/build/cjs/common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionControlGroup.js.map +1 -1
  159. package/build/cjs/common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionMode.js +6 -4
  160. package/build/cjs/common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionMode.js.map +1 -1
  161. package/build/cjs/common/components/clusterConfiguration/DiskEncryptionFields/TangServers.js +5 -3
  162. package/build/cjs/common/components/clusterConfiguration/DiskEncryptionFields/TangServers.js.map +1 -1
  163. package/build/cjs/common/components/clusterConfiguration/DownloadIso.js +2 -2
  164. package/build/cjs/common/components/clusterConfiguration/DownloadIso.js.map +1 -1
  165. package/build/cjs/common/components/clusterConfiguration/OpenShiftVersionSelect.js +2 -2
  166. package/build/cjs/common/components/clusterConfiguration/OpenShiftVersionSelect.js.map +1 -1
  167. package/build/cjs/common/components/clusterDetail/PostInstallAlert.js +16 -0
  168. package/build/cjs/common/components/clusterDetail/PostInstallAlert.js.map +1 -0
  169. package/build/cjs/common/components/clusterDetail/index.js +3 -1
  170. package/build/cjs/common/components/clusterDetail/index.js.map +1 -1
  171. package/build/cjs/common/components/clusterWizard/ReviewValidations.js +3 -0
  172. package/build/cjs/common/components/clusterWizard/ReviewValidations.js.map +1 -1
  173. package/build/cjs/common/components/hosts/HostRowDetail.js +2 -2
  174. package/build/cjs/common/components/hosts/HostRowDetail.js.map +1 -1
  175. package/build/cjs/common/components/ui/NoPermissionsError.js +14 -0
  176. package/build/cjs/common/components/ui/NoPermissionsError.js.map +1 -0
  177. package/build/cjs/common/components/ui/formik/InputField.js +5 -5
  178. package/build/cjs/common/components/ui/formik/InputField.js.map +1 -1
  179. package/build/cjs/common/components/ui/formik/RichInputField.js +5 -2
  180. package/build/cjs/common/components/ui/formik/RichInputField.js.map +1 -1
  181. package/build/cjs/common/components/ui/formik/SelectField.js +1 -1
  182. package/build/cjs/common/components/ui/formik/SelectField.js.map +1 -1
  183. package/build/cjs/common/components/ui/formik/validationSchemas.js +14 -6
  184. package/build/cjs/common/components/ui/formik/validationSchemas.js.map +1 -1
  185. package/build/cjs/common/components/ui/index.js +3 -1
  186. package/build/cjs/common/components/ui/index.js.map +1 -1
  187. package/build/cjs/common/config/constants.js +4 -2
  188. package/build/cjs/common/config/constants.js.map +1 -1
  189. package/build/cjs/common/features/featureGate.js +1 -3
  190. package/build/cjs/common/features/featureGate.js.map +1 -1
  191. package/build/cjs/common/services/DateAndTime.js.map +1 -0
  192. package/build/cjs/common/types/cpuArchitecture.js +5 -9
  193. package/build/cjs/common/types/cpuArchitecture.js.map +1 -1
  194. package/build/cjs/common/types/featureSupportLevel.js.map +1 -1
  195. package/build/cjs/ocm/components/AddHosts/AddHosts.js +1 -2
  196. package/build/cjs/ocm/components/AddHosts/AddHosts.js.map +1 -1
  197. package/build/cjs/ocm/components/AddHosts/InventoryAddHost.js +2 -2
  198. package/build/cjs/ocm/components/AddHosts/InventoryAddHost.js.map +1 -1
  199. package/build/cjs/ocm/components/AddHosts/day2Wizard/Day2ClusterDetails.js +4 -4
  200. package/build/cjs/ocm/components/AddHosts/day2Wizard/Day2ClusterDetails.js.map +1 -1
  201. package/build/cjs/ocm/components/AddHosts/day2Wizard/Day2StaticIpHostConfigurations.js +7 -6
  202. package/build/cjs/ocm/components/AddHosts/day2Wizard/Day2StaticIpHostConfigurations.js.map +1 -1
  203. package/build/cjs/ocm/components/HostsClusterDetailTab/HostsClusterDetailTabContent.js +5 -22
  204. package/build/cjs/ocm/components/HostsClusterDetailTab/HostsClusterDetailTabContent.js.map +1 -1
  205. package/build/cjs/ocm/components/HostsClusterDetailTab/HostsClusterDetailTabContentErrors.js +1 -13
  206. package/build/cjs/ocm/components/HostsClusterDetailTab/HostsClusterDetailTabContentErrors.js.map +1 -1
  207. package/build/cjs/ocm/components/clusterConfiguration/CpuArchitectureDropdown.js +24 -3
  208. package/build/cjs/ocm/components/clusterConfiguration/CpuArchitectureDropdown.js.map +1 -1
  209. package/build/cjs/ocm/components/clusterConfiguration/CustomManifestCheckbox.js +22 -32
  210. package/build/cjs/ocm/components/clusterConfiguration/CustomManifestCheckbox.js.map +1 -1
  211. package/build/cjs/ocm/components/clusterConfiguration/OcmBaseDomainField.js +7 -5
  212. package/build/cjs/ocm/components/clusterConfiguration/OcmBaseDomainField.js.map +1 -1
  213. package/build/cjs/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.js +3 -4
  214. package/build/cjs/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.js.map +1 -1
  215. package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/CustomManifestsPage.js +6 -12
  216. package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/CustomManifestsPage.js.map +1 -1
  217. package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifests.js +2 -2
  218. package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifests.js.map +1 -1
  219. package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifestsArray.js +1 -1
  220. package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifestsArray.js.map +1 -1
  221. package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifestsForm.js +49 -123
  222. package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifestsForm.js.map +1 -1
  223. package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/ExpandedManifest.js +1 -0
  224. package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/ExpandedManifest.js.map +1 -1
  225. package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/utils.js +14 -19
  226. package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/utils.js.map +1 -1
  227. package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfiguration.js +17 -17
  228. package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfiguration.js.map +1 -1
  229. package/build/cjs/ocm/components/clusterConfiguration/platformIntegration/ExternalPlatformDropdown.js +2 -1
  230. package/build/cjs/ocm/components/clusterConfiguration/platformIntegration/ExternalPlatformDropdown.js.map +1 -1
  231. package/build/cjs/ocm/components/clusterDetail/AssistedInstallerDetailCard.js +2 -1
  232. package/build/cjs/ocm/components/clusterDetail/AssistedInstallerDetailCard.js.map +1 -1
  233. package/build/cjs/ocm/components/clusterDetail/AssistedInstallerExtraDetailCard.js +2 -1
  234. package/build/cjs/ocm/components/clusterDetail/AssistedInstallerExtraDetailCard.js.map +1 -1
  235. package/build/cjs/ocm/components/clusterDetail/ClusterDetailStatusMessages.js +3 -8
  236. package/build/cjs/ocm/components/clusterDetail/ClusterDetailStatusMessages.js.map +1 -1
  237. package/build/cjs/ocm/components/clusterWizard/ClusterDetails.js +5 -12
  238. package/build/cjs/ocm/components/clusterWizard/ClusterDetails.js.map +1 -1
  239. package/build/cjs/ocm/components/clusterWizard/ClusterDetailsForm.js +18 -13
  240. package/build/cjs/ocm/components/clusterWizard/ClusterDetailsForm.js.map +1 -1
  241. package/build/cjs/ocm/components/clusterWizard/ClusterWizardContext.js.map +1 -1
  242. package/build/cjs/ocm/components/clusterWizard/ClusterWizardContextProvider.js +45 -36
  243. package/build/cjs/ocm/components/clusterWizard/ClusterWizardContextProvider.js.map +1 -1
  244. package/build/cjs/ocm/components/clusters/ClusterPage.js +2 -1
  245. package/build/cjs/ocm/components/clusters/ClusterPage.js.map +1 -1
  246. package/build/cjs/ocm/components/featureSupportLevels/FeatureSupportLevelProvider.js +4 -4
  247. package/build/cjs/ocm/components/featureSupportLevels/FeatureSupportLevelProvider.js.map +1 -1
  248. package/build/cjs/ocm/components/featureSupportLevels/ReviewClusterFeatureSupportLevels.js +1 -3
  249. package/build/cjs/ocm/components/featureSupportLevels/ReviewClusterFeatureSupportLevels.js.map +1 -1
  250. package/build/cjs/ocm/components/featureSupportLevels/featureStateUtils.js +8 -2
  251. package/build/cjs/ocm/components/featureSupportLevels/featureStateUtils.js.map +1 -1
  252. package/build/cjs/ocm/components/hosts/HostsDiscoveryTable.js +1 -1
  253. package/build/cjs/ocm/components/hosts/HostsDiscoveryTable.js.map +1 -1
  254. package/build/cjs/ocm/hooks/index.js +3 -1
  255. package/build/cjs/ocm/hooks/index.js.map +1 -1
  256. package/build/cjs/ocm/hooks/useOpenshiftVersions.js +0 -5
  257. package/build/cjs/ocm/hooks/useOpenshiftVersions.js.map +1 -1
  258. package/build/cjs/ocm/hooks/useSupportLevelsAPI.js +38 -4
  259. package/build/cjs/ocm/hooks/useSupportLevelsAPI.js.map +1 -1
  260. package/build/cjs/ocm/hooks/useUISettings.js +62 -0
  261. package/build/cjs/ocm/hooks/useUISettings.js.map +1 -0
  262. package/build/cjs/ocm/services/ClusterDetailsService.js +2 -2
  263. package/build/cjs/ocm/services/ClusterDetailsService.js.map +1 -1
  264. package/build/cjs/ocm/services/ClustersService.js +0 -8
  265. package/build/cjs/ocm/services/ClustersService.js.map +1 -1
  266. package/build/cjs/ocm/services/Day2ClusterService.js +13 -4
  267. package/build/cjs/ocm/services/Day2ClusterService.js.map +1 -1
  268. package/build/cjs/ocm/services/UISettingsService.js +18 -0
  269. package/build/cjs/ocm/services/UISettingsService.js.map +1 -0
  270. package/build/cjs/ocm/services/index.js +3 -1
  271. package/build/cjs/ocm/services/index.js.map +1 -1
  272. package/lib/cim/components/Agent/BMCForm.tsx +3 -3
  273. package/lib/cim/components/ClusterDeployment/ClusterDeploymentDetails.tsx +112 -102
  274. package/lib/cim/components/ClusterDeployment/ClusterDeploymentDetailsStep.tsx +17 -5
  275. package/lib/cim/components/ClusterDeployment/ClusterDetailsFormFields.tsx +9 -2
  276. package/lib/cim/components/ClusterDeployment/helpers.ts +13 -10
  277. package/lib/cim/components/Hypershift/utils/nodepool.ts +3 -2
  278. package/lib/cim/components/InfraEnv/InfraEnvFormPage.tsx +11 -2
  279. package/lib/cim/components/helpers/versions.ts +5 -0
  280. package/lib/cim/components/modals/AddHostModal.tsx +5 -0
  281. package/lib/common/api/accounts-management-service/access-token-api.ts +1 -1
  282. package/lib/common/api/accounts-management-service/current-account-api.ts +13 -0
  283. package/lib/common/api/accounts-management-service/organizations-api.ts +15 -0
  284. package/lib/common/api/assisted-service/NewFeatureSupportLevelsAPI.ts +9 -5
  285. package/lib/common/api/assisted-service/UISettingsAPI.ts +24 -0
  286. package/lib/common/api/assisted-service/index.ts +1 -0
  287. package/lib/common/api/authorization-service/all-apis.ts +28 -0
  288. package/lib/common/components/clusterConfiguration/DiscoveryImageConfigForm.tsx +6 -4
  289. package/lib/common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionControlGroup.tsx +5 -1
  290. package/lib/common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionMode.tsx +27 -16
  291. package/lib/common/components/clusterConfiguration/DiskEncryptionFields/TangServers.tsx +27 -17
  292. package/lib/common/components/clusterConfiguration/DownloadIso.tsx +3 -1
  293. package/lib/common/components/clusterConfiguration/OpenShiftVersionSelect.tsx +4 -1
  294. package/lib/common/components/clusterDetail/PostInstallAlert.tsx +29 -0
  295. package/lib/common/components/clusterDetail/index.ts +1 -0
  296. package/lib/common/components/clusterWizard/ReviewValidations.tsx +3 -0
  297. package/lib/common/components/hosts/HostRowDetail.tsx +3 -1
  298. package/lib/common/components/newFeatureSupportLevels/types.ts +4 -2
  299. package/lib/common/components/ui/NoPermissionsError.tsx +19 -0
  300. package/lib/common/components/ui/formik/InputField.tsx +4 -5
  301. package/lib/common/components/ui/formik/RichInputField.tsx +6 -2
  302. package/lib/common/components/ui/formik/SelectField.tsx +1 -1
  303. package/lib/common/components/ui/formik/types.ts +2 -1
  304. package/lib/common/components/ui/formik/validationSchemas.ts +16 -6
  305. package/lib/common/components/ui/index.ts +1 -0
  306. package/lib/common/config/constants.ts +3 -2
  307. package/lib/common/features/featureGate.tsx +0 -4
  308. package/lib/common/types/cpuArchitecture.ts +3 -8
  309. package/lib/common/types/featureSupportLevel.ts +6 -5
  310. package/lib/ocm/components/AddHosts/AddHosts.tsx +1 -3
  311. package/lib/ocm/components/AddHosts/InventoryAddHost.tsx +2 -8
  312. package/lib/ocm/components/AddHosts/day2Wizard/Day2ClusterDetails.tsx +6 -11
  313. package/lib/ocm/components/AddHosts/day2Wizard/Day2StaticIpHostConfigurations.tsx +34 -19
  314. package/lib/ocm/components/HostsClusterDetailTab/HostsClusterDetailTabContent.tsx +6 -37
  315. package/lib/ocm/components/HostsClusterDetailTab/HostsClusterDetailTabContentErrors.tsx +1 -15
  316. package/lib/ocm/components/clusterConfiguration/CpuArchitectureDropdown.tsx +62 -5
  317. package/lib/ocm/components/clusterConfiguration/CustomManifestCheckbox.tsx +25 -32
  318. package/lib/ocm/components/clusterConfiguration/OcmBaseDomainField.tsx +23 -12
  319. package/lib/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.tsx +7 -7
  320. package/lib/ocm/components/clusterConfiguration/manifestsConfiguration/CustomManifestsPage.tsx +20 -27
  321. package/lib/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifests.tsx +3 -3
  322. package/lib/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifestsArray.tsx +2 -2
  323. package/lib/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifestsForm.tsx +69 -182
  324. package/lib/ocm/components/clusterConfiguration/manifestsConfiguration/components/ExpandedManifest.tsx +1 -1
  325. package/lib/ocm/components/clusterConfiguration/manifestsConfiguration/components/utils.tsx +9 -15
  326. package/lib/ocm/components/clusterConfiguration/manifestsConfiguration/data/dataTypes.ts +0 -1
  327. package/lib/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfiguration.tsx +48 -25
  328. package/lib/ocm/components/clusterConfiguration/platformIntegration/ExternalPlatformDropdown.tsx +12 -5
  329. package/lib/ocm/components/clusterDetail/AssistedInstallerDetailCard.tsx +2 -1
  330. package/lib/ocm/components/clusterDetail/AssistedInstallerExtraDetailCard.tsx +2 -1
  331. package/lib/ocm/components/clusterDetail/ClusterDetailStatusMessages.tsx +3 -17
  332. package/lib/ocm/components/clusterWizard/ClusterDetails.tsx +9 -16
  333. package/lib/ocm/components/clusterWizard/ClusterDetailsForm.tsx +18 -16
  334. package/lib/ocm/components/clusterWizard/ClusterWizardContext.tsx +5 -3
  335. package/lib/ocm/components/clusterWizard/ClusterWizardContextProvider.tsx +75 -54
  336. package/lib/ocm/components/clusters/ClusterPage.tsx +2 -1
  337. package/lib/ocm/components/featureSupportLevels/FeatureSupportLevelProvider.tsx +14 -3
  338. package/lib/ocm/components/featureSupportLevels/ReviewClusterFeatureSupportLevels.tsx +1 -8
  339. package/lib/ocm/components/featureSupportLevels/featureStateUtils.ts +18 -3
  340. package/lib/ocm/components/hosts/HostsDiscoveryTable.tsx +1 -0
  341. package/lib/ocm/hooks/index.ts +1 -0
  342. package/lib/ocm/hooks/useOpenshiftVersions.tsx +1 -15
  343. package/lib/ocm/hooks/useSupportLevelsAPI.ts +65 -5
  344. package/lib/ocm/hooks/useUISettings.ts +71 -0
  345. package/lib/ocm/services/ClusterDetailsService.ts +3 -1
  346. package/lib/ocm/services/ClustersService.ts +0 -10
  347. package/lib/ocm/services/Day2ClusterService.ts +17 -3
  348. package/lib/ocm/services/UISettingsService.ts +17 -0
  349. package/lib/ocm/services/index.ts +1 -0
  350. package/lib/ocm/services/types.ts +5 -0
  351. package/package.json +3 -3
  352. package/build/@types/common/sevices/DateAndTime.d.ts.map +0 -1
  353. package/build/cjs/common/sevices/DateAndTime.js.map +0 -1
  354. /package/build/@types/common/{sevices → services}/DateAndTime.d.ts +0 -0
  355. /package/build/cjs/common/{sevices → services}/DateAndTime.js +0 -0
  356. /package/lib/common/{sevices → services}/DateAndTime.tsx +0 -0
@@ -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>
@@ -23,6 +23,7 @@ export type DownloadISOProps = {
23
23
  downloadUrl?: string;
24
24
  onClose: () => void;
25
25
  onReset?: () => void;
26
+ docVersion?: string;
26
27
  };
27
28
 
28
29
  const DownloadIso = ({
@@ -32,6 +33,7 @@ const DownloadIso = ({
32
33
  onReset,
33
34
  hasDHCP,
34
35
  isSNO = false,
36
+ docVersion,
35
37
  }: DownloadISOProps) => {
36
38
  const wgetCommand = `wget -O ${fileName} '${downloadUrl || ''}'`;
37
39
  const { t } = useTranslation();
@@ -53,7 +55,7 @@ const DownloadIso = ({
53
55
  </StackItem>
54
56
  {hasDHCP === false && (
55
57
  <StackItem>
56
- <StaticIPInfo />
58
+ <StaticIPInfo docVersion={docVersion} />
57
59
  </StackItem>
58
60
  )}
59
61
  <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,
@@ -36,6 +36,7 @@ type HostDetailProps = {
36
36
  hostId: Host['id'],
37
37
  diskId: Disk['id'],
38
38
  ) => Promise<unknown>;
39
+ hideStorage?: boolean;
39
40
  };
40
41
 
41
42
  type SectionColumnProps = {
@@ -115,6 +116,7 @@ export const HostDetail = ({
115
116
  AdditionalNTPSourcesDialogToggleComponent,
116
117
  hideNTPStatus = false,
117
118
  updateDiskSkipFormatting,
119
+ hideStorage,
118
120
  }: HostDetailProps) => {
119
121
  const { t } = useTranslation();
120
122
  const { id, validationsInfo: hostValidationsInfo } = host;
@@ -205,7 +207,7 @@ export const HostDetail = ({
205
207
  value={ntpValidationStatus}
206
208
  />
207
209
  </SectionColumn>
208
- {onDiskRole && canEditDisks && (
210
+ {!hideStorage && (
209
211
  <StorageDetail
210
212
  host={host}
211
213
  onDiskRole={onDiskRole}
@@ -1,9 +1,10 @@
1
1
  import {
2
2
  ArchitectureSupportLevelId,
3
3
  FeatureSupportLevelId,
4
+ PlatformType,
4
5
  SupportLevel,
5
6
  } from '@openshift-assisted/types/assisted-installer-service';
6
- import { CpuArchitecture, FeatureId } from '../../types';
7
+ import { CpuArchitecture, FeatureId, SupportedCpuArchitecture } from '../../types';
7
8
 
8
9
  export type NewFeatureSupportLevelMap = Record<FeatureSupportLevelId, SupportLevel>;
9
10
  export type ArchitectureSupportLevelMap = Record<ArchitectureSupportLevelId, SupportLevel>;
@@ -23,7 +24,8 @@ export type NewFeatureSupportLevelData = {
23
24
  getFeatureDisabledReason(
24
25
  featureId: FeatureId,
25
26
  supportLevelData?: NewFeatureSupportLevelMap,
26
- cpuArchitecture?: string,
27
+ cpuArchitecture?: SupportedCpuArchitecture,
28
+ platformType?: PlatformType,
27
29
  ): string | undefined;
28
30
  isFeatureSupported(featureId: FeatureId, supportLevelData?: NewFeatureSupportLevelMap): boolean;
29
31
  activeFeatureConfiguration?: ActiveFeatureConfiguration;
@@ -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
  }
@@ -226,15 +226,25 @@ export const vipRangeValidationSchema = (
226
226
  },
227
227
  );
228
228
 
229
- const vipUniqueValidationSchema = ({ ingressVips, apiVips }: NetworkConfigurationValues) =>
229
+ const vipUniqueValidationSchema = (
230
+ { ingressVips, apiVips, apiVip, ingressVip }: NetworkConfigurationValues,
231
+ useIPArray: boolean,
232
+ ) =>
230
233
  Yup.string().test(
231
234
  'vip-uniqueness-validation',
232
235
  'The Ingress and API IP addresses cannot be the same.',
233
236
  (value) => {
234
- if (!value || ingressVips?.length === 0 || apiVips?.length === 0) {
235
- return true;
237
+ if (useIPArray) {
238
+ if (!value || ingressVips?.length === 0 || apiVips?.length === 0) {
239
+ return true;
240
+ }
241
+ return selectApiVip({ apiVips }) !== selectIngressVip({ ingressVips });
242
+ } else {
243
+ if (!value) {
244
+ return true;
245
+ }
246
+ return apiVip !== ingressVip;
236
247
  }
237
- return selectApiVip({ apiVips }) !== selectIngressVip({ ingressVips });
238
248
  },
239
249
  );
240
250
 
@@ -276,7 +286,7 @@ export const vipValidationSchema = (
276
286
  !vipDhcpAllocation && managedNetworkingType !== 'userManaged',
277
287
  then: requiredOnceSet(initialValue, 'Required. Please provide an IP address')
278
288
  .concat(vipRangeValidationSchema(hostSubnets, values, true))
279
- .concat(vipUniqueValidationSchema(values))
289
+ .concat(vipUniqueValidationSchema(values, false))
280
290
  .when('hostSubnet', {
281
291
  is: (hostSubnet) => hostSubnet !== NO_SUBNET_SET,
282
292
  then: Yup.string().required('Required. Please provide an IP address'),
@@ -295,7 +305,7 @@ export const vipNoSuffixValidationSchema = (
295
305
  .concat(ipNoSuffixValidationSchema)
296
306
  .concat(vipRangeValidationSchema(hostSubnets, values, false))
297
307
  .concat(vipBroadcastValidationSchema(values))
298
- .concat(vipUniqueValidationSchema(values))
308
+ .concat(vipUniqueValidationSchema(values, true))
299
309
  .when('hostSubnet', {
300
310
  is: (hostSubnet) => hostSubnet !== NO_SUBNET_SET,
301
311
  then: Yup.string().required('Required. Please provide an IP address'),
@@ -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 = (
@@ -367,8 +368,8 @@ export const operatorLabels = (
367
368
  };
368
369
  };
369
370
 
370
- export const OCP_STATIC_IP_DOC =
371
- 'https://docs.openshift.com/container-platform/latest/scalability_and_performance/ztp-deploying-disconnected.html#ztp-configuring-a-static-ip_ztp-deploying-disconnected';
371
+ export const getOCPStaticIPDocLink = (docVersion = '2.8') =>
372
+ `https://access.redhat.com/documentation/en-us/red_hat_advanced_cluster_management_for_kubernetes/${docVersion}/html-single/clusters/index#on-prem-creating-your-cluster-with-the-cli-nmstateconfig`;
372
373
 
373
374
  export const AI_UI_TAG = 'ui_ocm';
374
375
 
@@ -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
  ) {
@@ -1,17 +1,18 @@
1
1
  import {
2
- FeatureSupportLevel,
3
2
  FeatureSupportLevelId,
4
3
  SupportLevel,
5
4
  } from '@openshift-assisted/types/assisted-installer-service';
6
5
  import { ArrayElementType } from './typescriptExtensions';
7
6
 
8
- type Features = Required<ArrayElementType<FeatureSupportLevel['features']>>;
7
+ type Features = Required<ArrayElementType<FeatureSupportLevelId>>;
9
8
  export type FeatureId =
10
9
  | FeatureSupportLevelId
11
10
  | Features['featureId']
12
- | 'ODF'
13
- | 'CNV'
14
- | 'NETWORK_TYPE_SELECTION';
11
+ | 'NETWORK_TYPE_SELECTION'
12
+ | 'ARM64_ARCHITECTURE'
13
+ | 'ARM64_ARCHITECTURE_WITH_CLUSTER_MANAGED_NETWORKING'
14
+ | 'DUAL_STACK_NETWORKING'
15
+ | 'MULTIARCH_RELEASE_IMAGE';
15
16
 
16
17
  export type FeatureIdToSupportLevel = {
17
18
  [id in FeatureId]?: SupportLevel;
@@ -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>