@openshift-assisted/ui-lib 2.8.2-cim → 2.8.4-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 (307) hide show
  1. package/@types/cim/components/ClusterDeployment/ClusterDeploymentDetails.d.ts.map +1 -1
  2. package/@types/cim/components/ClusterDeployment/ClusterDeploymentDetailsStep.d.ts +6 -1
  3. package/@types/cim/components/ClusterDeployment/ClusterDeploymentDetailsStep.d.ts.map +1 -1
  4. package/@types/cim/components/ClusterDeployment/ClusterDeploymentHostSelectionStep.d.ts.map +1 -1
  5. package/@types/cim/components/ClusterDeployment/ClusterDeploymentHostsDiscoveryStep.d.ts.map +1 -1
  6. package/@types/cim/components/ClusterDeployment/ClusterDeploymentHostsSelectionBasic.d.ts.map +1 -1
  7. package/@types/cim/components/ClusterDeployment/ClusterDeploymentWizardNavigation.d.ts.map +1 -1
  8. package/@types/cim/components/ClusterDeployment/ClusterDetailsFormFields.d.ts.map +1 -1
  9. package/@types/cim/components/ClusterDeployment/helpers.d.ts +1 -1
  10. package/@types/cim/components/ClusterDeployment/helpers.d.ts.map +1 -1
  11. package/@types/cim/components/ClusterDeployment/validationSchemas.d.ts.map +1 -1
  12. package/@types/cim/components/Hypershift/HostedClusterWizard/NetworkStep/types.d.ts +0 -1
  13. package/@types/cim/components/Hypershift/HostedClusterWizard/NetworkStep/types.d.ts.map +1 -1
  14. package/@types/cim/components/Hypershift/modals/ManageHostsModal.d.ts.map +1 -1
  15. package/@types/cim/components/InfraEnv/InfraEnvFormPage.d.ts +2 -0
  16. package/@types/cim/components/InfraEnv/InfraEnvFormPage.d.ts.map +1 -1
  17. package/@types/cim/components/helpers/versions.d.ts +1 -0
  18. package/@types/cim/components/helpers/versions.d.ts.map +1 -1
  19. package/@types/cim/components/modals/AddHostModal.d.ts.map +1 -1
  20. package/@types/cim/components/modals/EditProxyModal.d.ts.map +1 -1
  21. package/@types/common/components/clusterConfiguration/DiscoveryImageConfigForm.d.ts +5 -1
  22. package/@types/common/components/clusterConfiguration/DiscoveryImageConfigForm.d.ts.map +1 -1
  23. package/@types/common/components/clusterConfiguration/DownloadIso.d.ts +2 -1
  24. package/@types/common/components/clusterConfiguration/DownloadIso.d.ts.map +1 -1
  25. package/@types/common/components/clusterConfiguration/OpenShiftVersionSelect.d.ts +2 -0
  26. package/@types/common/components/clusterConfiguration/OpenShiftVersionSelect.d.ts.map +1 -1
  27. package/@types/common/components/clusterWizard/ClusterWizardStep.d.ts +1 -1
  28. package/@types/common/components/clusterWizard/ClusterWizardStep.d.ts.map +1 -1
  29. package/@types/common/components/clusterWizard/networkingSteps/ManagedNetworkingControlGroup.d.ts.map +1 -1
  30. package/@types/common/components/fetching/EventListFetch.d.ts +1 -1
  31. package/@types/common/components/fetching/EventListFetch.d.ts.map +1 -1
  32. package/@types/common/components/hosts/TableToolbar.d.ts.map +1 -1
  33. package/@types/common/components/ui/ClusterEventsToolbar.d.ts.map +1 -1
  34. package/@types/common/components/ui/StaticTextField.d.ts +1 -1
  35. package/@types/common/components/ui/StaticTextField.d.ts.map +1 -1
  36. package/@types/common/components/ui/eventsModal.d.ts +4 -8
  37. package/@types/common/components/ui/eventsModal.d.ts.map +1 -1
  38. package/@types/common/components/ui/formik/UploadField.d.ts.map +1 -1
  39. package/@types/common/components/ui/formik/types.d.ts +2 -2
  40. package/@types/common/components/ui/formik/types.d.ts.map +1 -1
  41. package/@types/common/components/ui/formik/validationSchemas.d.ts +5 -1
  42. package/@types/common/components/ui/formik/validationSchemas.d.ts.map +1 -1
  43. package/@types/common/config/constants.d.ts +2 -1
  44. package/@types/common/config/constants.d.ts.map +1 -1
  45. package/@types/common/types/events.d.ts +9 -2
  46. package/@types/common/types/events.d.ts.map +1 -1
  47. package/@types/ocm/components/AddHosts/day2Wizard/Day2ClusterDetails.d.ts.map +1 -1
  48. package/@types/ocm/components/AddHosts/day2Wizard/Day2StaticIP.d.ts.map +1 -1
  49. package/@types/ocm/components/AddHosts/day2Wizard/Day2Wizard.d.ts.map +1 -1
  50. package/@types/ocm/components/HostsClusterDetailTab/HostsClusterDetailTabContent.d.ts.map +1 -1
  51. package/@types/ocm/components/HostsClusterDetailTab/types.d.ts +5 -0
  52. package/@types/ocm/components/HostsClusterDetailTab/types.d.ts.map +1 -1
  53. package/@types/ocm/components/HostsClusterDetailTab/utils.d.ts +2 -7
  54. package/@types/ocm/components/HostsClusterDetailTab/utils.d.ts.map +1 -1
  55. package/@types/ocm/components/clusterConfiguration/CpuArchitectureDropdown.d.ts +2 -1
  56. package/@types/ocm/components/clusterConfiguration/CpuArchitectureDropdown.d.ts.map +1 -1
  57. package/@types/ocm/components/clusterConfiguration/DiscoveryImageForm.d.ts.map +1 -1
  58. package/@types/ocm/components/clusterConfiguration/OcmDiscoveryImageConfigForm.d.ts.map +1 -1
  59. package/@types/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifestsForm.d.ts.map +1 -1
  60. package/@types/ocm/components/clusterConfiguration/manifestsConfiguration/components/FolderDropdown.d.ts.map +1 -1
  61. package/@types/ocm/components/clusterConfiguration/manifestsConfiguration/components/customManifestsValidationSchema.d.ts +1 -0
  62. package/@types/ocm/components/clusterConfiguration/manifestsConfiguration/components/customManifestsValidationSchema.d.ts.map +1 -1
  63. package/@types/ocm/components/clusterConfiguration/networkConfiguration/AdvancedNetworkFields.d.ts.map +1 -1
  64. package/@types/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfigurationForm.d.ts.map +1 -1
  65. package/@types/ocm/components/clusterConfiguration/networkConfiguration/StackTypeControl.d.ts.map +1 -1
  66. package/@types/ocm/components/clusterConfiguration/networkConfiguration/VirtualIPControlGroup.d.ts.map +1 -1
  67. package/@types/ocm/components/clusterDetail/AssistedInstallerDetailCard.d.ts.map +1 -1
  68. package/@types/ocm/components/clusterDetail/AssistedInstallerExtraDetailCard.d.ts.map +1 -1
  69. package/@types/ocm/components/clusterWizard/ClusterWizardContextProvider.d.ts.map +1 -1
  70. package/@types/ocm/components/clusterWizard/wizardTransition.d.ts +2 -1
  71. package/@types/ocm/components/clusterWizard/wizardTransition.d.ts.map +1 -1
  72. package/@types/ocm/components/clusters/ClusterPage.d.ts.map +1 -1
  73. package/@types/ocm/components/featureSupportLevels/FeatureSupportLevelProvider.d.ts.map +1 -1
  74. package/@types/ocm/components/fetching/fetchEvents.d.ts.map +1 -1
  75. package/@types/ocm/components/newFeatureSupportLevels/NewFeatureSupportLevelProvider.d.ts.map +1 -1
  76. package/@types/ocm/components/ui/OcmFormFields.d.ts +1 -1
  77. package/@types/ocm/hooks/useClusterCustomManifests.d.ts +1 -1
  78. package/@types/ocm/hooks/useClusterCustomManifests.d.ts.map +1 -1
  79. package/@types/ocm/hooks/useInfraEnv.d.ts +1 -1
  80. package/@types/ocm/hooks/useInfraEnv.d.ts.map +1 -1
  81. package/@types/ocm/hooks/useInfraEnvId.d.ts +1 -1
  82. package/@types/ocm/hooks/useInfraEnvId.d.ts.map +1 -1
  83. package/@types/ocm/selectors/clusters.d.ts +3 -3
  84. package/@types/ocm/services/Day2ClusterService.d.ts +3 -3
  85. package/@types/ocm/services/Day2ClusterService.d.ts.map +1 -1
  86. package/@types/ocm/services/InfraEnvIdsCacheService.d.ts +1 -1
  87. package/@types/ocm/services/InfraEnvIdsCacheService.d.ts.map +1 -1
  88. package/@types/ocm/services/InfraEnvsService.d.ts +4 -3
  89. package/@types/ocm/services/InfraEnvsService.d.ts.map +1 -1
  90. package/@types/ocm/services/apis/EventsAPI.d.ts +1 -0
  91. package/@types/ocm/services/apis/EventsAPI.d.ts.map +1 -1
  92. package/@types/ocm/store/slices/infraEnvs/selectors.d.ts +1 -1
  93. package/build/build.json +1 -1
  94. package/build/cim/components/Agent/BMCForm.js +2 -2
  95. package/build/cim/components/Agent/BMCForm.js.map +1 -1
  96. package/build/cim/components/ClusterDeployment/ClusterDeploymentDetails.js +59 -56
  97. package/build/cim/components/ClusterDeployment/ClusterDeploymentDetails.js.map +1 -1
  98. package/build/cim/components/ClusterDeployment/ClusterDeploymentDetailsStep.js +10 -6
  99. package/build/cim/components/ClusterDeployment/ClusterDeploymentDetailsStep.js.map +1 -1
  100. package/build/cim/components/ClusterDeployment/ClusterDeploymentHostSelectionStep.js +1 -9
  101. package/build/cim/components/ClusterDeployment/ClusterDeploymentHostSelectionStep.js.map +1 -1
  102. package/build/cim/components/ClusterDeployment/ClusterDeploymentHostsDiscoveryStep.js +1 -2
  103. package/build/cim/components/ClusterDeployment/ClusterDeploymentHostsDiscoveryStep.js.map +1 -1
  104. package/build/cim/components/ClusterDeployment/ClusterDeploymentHostsSelectionBasic.js +3 -10
  105. package/build/cim/components/ClusterDeployment/ClusterDeploymentHostsSelectionBasic.js.map +1 -1
  106. package/build/cim/components/ClusterDeployment/ClusterDeploymentWizardNavigation.js +2 -2
  107. package/build/cim/components/ClusterDeployment/ClusterDeploymentWizardNavigation.js.map +1 -1
  108. package/build/cim/components/ClusterDeployment/ClusterDetailsFormFields.js +6 -2
  109. package/build/cim/components/ClusterDeployment/ClusterDetailsFormFields.js.map +1 -1
  110. package/build/cim/components/ClusterDeployment/helpers.js +46 -7
  111. package/build/cim/components/ClusterDeployment/helpers.js.map +1 -1
  112. package/build/cim/components/ClusterDeployment/use-networking-formik.js +2 -2
  113. package/build/cim/components/ClusterDeployment/use-networking-formik.js.map +1 -1
  114. package/build/cim/components/ClusterDeployment/validationSchemas.js +0 -1
  115. package/build/cim/components/ClusterDeployment/validationSchemas.js.map +1 -1
  116. package/build/cim/components/Hypershift/HostedClusterWizard/NetworkStep/NetworkStep.js +2 -2
  117. package/build/cim/components/Hypershift/HostedClusterWizard/NetworkStep/NetworkStep.js.map +1 -1
  118. package/build/cim/components/Hypershift/modals/ManageHostsModal.js +1 -6
  119. package/build/cim/components/Hypershift/modals/ManageHostsModal.js.map +1 -1
  120. package/build/cim/components/Hypershift/utils/nodepool.js +5 -5
  121. package/build/cim/components/Hypershift/utils/nodepool.js.map +1 -1
  122. package/build/cim/components/InfraEnv/InfraEnvFormPage.js +13 -5
  123. package/build/cim/components/InfraEnv/InfraEnvFormPage.js.map +1 -1
  124. package/build/cim/components/helpers/versions.js +1 -0
  125. package/build/cim/components/helpers/versions.js.map +1 -1
  126. package/build/cim/components/modals/AddHostModal.js +4 -4
  127. package/build/cim/components/modals/AddHostModal.js.map +1 -1
  128. package/build/cim/components/modals/EditProxyModal.js +18 -7
  129. package/build/cim/components/modals/EditProxyModal.js.map +1 -1
  130. package/build/common/components/clusterConfiguration/DiscoveryImageConfigForm.js +9 -9
  131. package/build/common/components/clusterConfiguration/DiscoveryImageConfigForm.js.map +1 -1
  132. package/build/common/components/clusterConfiguration/DownloadIso.js +2 -2
  133. package/build/common/components/clusterConfiguration/DownloadIso.js.map +1 -1
  134. package/build/common/components/clusterConfiguration/OpenShiftVersionSelect.js +2 -2
  135. package/build/common/components/clusterConfiguration/OpenShiftVersionSelect.js.map +1 -1
  136. package/build/common/components/clusterWizard/ClusterWizardStep.js +1 -1
  137. package/build/common/components/clusterWizard/ClusterWizardStep.js.map +1 -1
  138. package/build/common/components/clusterWizard/networkingSteps/ManagedNetworkingControlGroup.js +5 -2
  139. package/build/common/components/clusterWizard/networkingSteps/ManagedNetworkingControlGroup.js.map +1 -1
  140. package/build/common/components/clusterWizard/networkingSteps/NetworkTypeControlGroup.js +1 -1
  141. package/build/common/components/clusterWizard/networkingSteps/NetworkTypeControlGroup.js.map +1 -1
  142. package/build/common/components/fetching/EventListFetch.js +14 -25
  143. package/build/common/components/fetching/EventListFetch.js.map +1 -1
  144. package/build/common/components/hosts/TableToolbar.js +3 -3
  145. package/build/common/components/hosts/TableToolbar.js.map +1 -1
  146. package/build/common/components/hosts/status.js +1 -1
  147. package/build/common/components/hosts/status.js.map +1 -1
  148. package/build/common/components/ui/ClusterEventsToolbar.js +1 -1
  149. package/build/common/components/ui/ClusterEventsToolbar.js.map +1 -1
  150. package/build/common/components/ui/eventsModal.js +12 -6
  151. package/build/common/components/ui/eventsModal.js.map +1 -1
  152. package/build/common/components/ui/formik/CodeField.js +1 -1
  153. package/build/common/components/ui/formik/CodeField.js.map +1 -1
  154. package/build/common/components/ui/formik/SelectField.js +1 -1
  155. package/build/common/components/ui/formik/SelectField.js.map +1 -1
  156. package/build/common/components/ui/formik/UploadField.js +1 -2
  157. package/build/common/components/ui/formik/UploadField.js.map +1 -1
  158. package/build/common/components/ui/formik/validationSchemas.js +20 -13
  159. package/build/common/components/ui/formik/validationSchemas.js.map +1 -1
  160. package/build/common/config/constants.js +3 -1
  161. package/build/common/config/constants.js.map +1 -1
  162. package/build/ocm/components/AddHosts/day2Wizard/Day2ClusterDetails.js +94 -20
  163. package/build/ocm/components/AddHosts/day2Wizard/Day2ClusterDetails.js.map +1 -1
  164. package/build/ocm/components/AddHosts/day2Wizard/Day2DownloadISO.js +1 -1
  165. package/build/ocm/components/AddHosts/day2Wizard/Day2DownloadISO.js.map +1 -1
  166. package/build/ocm/components/AddHosts/day2Wizard/Day2StaticIP.js +16 -9
  167. package/build/ocm/components/AddHosts/day2Wizard/Day2StaticIP.js.map +1 -1
  168. package/build/ocm/components/AddHosts/day2Wizard/Day2Wizard.js +1 -1
  169. package/build/ocm/components/AddHosts/day2Wizard/Day2Wizard.js.map +1 -1
  170. package/build/ocm/components/HostsClusterDetailTab/HostsClusterDetailTabContent.js +5 -2
  171. package/build/ocm/components/HostsClusterDetailTab/HostsClusterDetailTabContent.js.map +1 -1
  172. package/build/ocm/components/HostsClusterDetailTab/utils.js +35 -29
  173. package/build/ocm/components/HostsClusterDetailTab/utils.js.map +1 -1
  174. package/build/ocm/components/clusterConfiguration/CpuArchitectureDropdown.js +5 -4
  175. package/build/ocm/components/clusterConfiguration/CpuArchitectureDropdown.js.map +1 -1
  176. package/build/ocm/components/clusterConfiguration/DiscoveryImageForm.js +3 -1
  177. package/build/ocm/components/clusterConfiguration/DiscoveryImageForm.js.map +1 -1
  178. package/build/ocm/components/clusterConfiguration/OcmDiscoveryImageConfigForm.js +11 -8
  179. package/build/ocm/components/clusterConfiguration/OcmDiscoveryImageConfigForm.js.map +1 -1
  180. package/build/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifestsForm.js +49 -21
  181. package/build/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifestsForm.js.map +1 -1
  182. package/build/ocm/components/clusterConfiguration/manifestsConfiguration/components/FolderDropdown.js +3 -9
  183. package/build/ocm/components/clusterConfiguration/manifestsConfiguration/components/FolderDropdown.js.map +1 -1
  184. package/build/ocm/components/clusterConfiguration/manifestsConfiguration/components/customManifestsValidationSchema.js +37 -2
  185. package/build/ocm/components/clusterConfiguration/manifestsConfiguration/components/customManifestsValidationSchema.js.map +1 -1
  186. package/build/ocm/components/clusterConfiguration/networkConfiguration/AdvancedNetworkFields.js +16 -5
  187. package/build/ocm/components/clusterConfiguration/networkConfiguration/AdvancedNetworkFields.js.map +1 -1
  188. package/build/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfigurationForm.js +5 -2
  189. package/build/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfigurationForm.js.map +1 -1
  190. package/build/ocm/components/clusterConfiguration/networkConfiguration/StackTypeControl.js +1 -2
  191. package/build/ocm/components/clusterConfiguration/networkConfiguration/StackTypeControl.js.map +1 -1
  192. package/build/ocm/components/clusterConfiguration/networkConfiguration/VirtualIPControlGroup.js +27 -16
  193. package/build/ocm/components/clusterConfiguration/networkConfiguration/VirtualIPControlGroup.js.map +1 -1
  194. package/build/ocm/components/clusterConfiguration/platformIntegration/PlatformIntegration.js +1 -1
  195. package/build/ocm/components/clusterConfiguration/platformIntegration/PlatformIntegration.js.map +1 -1
  196. package/build/ocm/components/clusterDetail/AssistedInstallerDetailCard.js +7 -2
  197. package/build/ocm/components/clusterDetail/AssistedInstallerDetailCard.js.map +1 -1
  198. package/build/ocm/components/clusterDetail/AssistedInstallerExtraDetailCard.js +7 -2
  199. package/build/ocm/components/clusterDetail/AssistedInstallerExtraDetailCard.js.map +1 -1
  200. package/build/ocm/components/clusterWizard/ClusterWizardContextProvider.js +13 -3
  201. package/build/ocm/components/clusterWizard/ClusterWizardContextProvider.js.map +1 -1
  202. package/build/ocm/components/clusterWizard/wizardTransition.js +10 -2
  203. package/build/ocm/components/clusterWizard/wizardTransition.js.map +1 -1
  204. package/build/ocm/components/clusters/ClusterPage.js +10 -4
  205. package/build/ocm/components/clusters/ClusterPage.js.map +1 -1
  206. package/build/ocm/components/featureSupportLevels/FeatureSupportLevelProvider.js +5 -2
  207. package/build/ocm/components/featureSupportLevels/FeatureSupportLevelProvider.js.map +1 -1
  208. package/build/ocm/components/fetching/fetchEvents.js +25 -4
  209. package/build/ocm/components/fetching/fetchEvents.js.map +1 -1
  210. package/build/ocm/components/newFeatureSupportLevels/NewFeatureSupportLevelProvider.js +5 -2
  211. package/build/ocm/components/newFeatureSupportLevels/NewFeatureSupportLevelProvider.js.map +1 -1
  212. package/build/ocm/hooks/useClusterCustomManifests.js +5 -3
  213. package/build/ocm/hooks/useClusterCustomManifests.js.map +1 -1
  214. package/build/ocm/hooks/useInfraEnv.js +2 -2
  215. package/build/ocm/hooks/useInfraEnv.js.map +1 -1
  216. package/build/ocm/hooks/useInfraEnvId.js +18 -3
  217. package/build/ocm/hooks/useInfraEnvId.js.map +1 -1
  218. package/build/ocm/hooks/useInfraEnvImageUrl.js +1 -1
  219. package/build/ocm/hooks/useInfraEnvImageUrl.js.map +1 -1
  220. package/build/ocm/hooks/useInfraEnvIpxeImageUrl.js +1 -1
  221. package/build/ocm/hooks/useInfraEnvIpxeImageUrl.js.map +1 -1
  222. package/build/ocm/services/ClustersService.js +2 -2
  223. package/build/ocm/services/ClustersService.js.map +1 -1
  224. package/build/ocm/services/Day2ClusterService.js +11 -20
  225. package/build/ocm/services/Day2ClusterService.js.map +1 -1
  226. package/build/ocm/services/InfraEnvIdsCacheService.js +5 -4
  227. package/build/ocm/services/InfraEnvIdsCacheService.js.map +1 -1
  228. package/build/ocm/services/InfraEnvsService.js +7 -4
  229. package/build/ocm/services/InfraEnvsService.js.map +1 -1
  230. package/build/ocm/services/apis/EventsAPI.js +13 -1
  231. package/build/ocm/services/apis/EventsAPI.js.map +1 -1
  232. package/lib/cim/components/Agent/BMCForm.tsx +2 -2
  233. package/lib/cim/components/ClusterDeployment/ClusterDeploymentDetails.tsx +112 -101
  234. package/lib/cim/components/ClusterDeployment/ClusterDeploymentDetailsStep.tsx +17 -5
  235. package/lib/cim/components/ClusterDeployment/ClusterDeploymentHostSelectionStep.tsx +1 -12
  236. package/lib/cim/components/ClusterDeployment/ClusterDeploymentHostsDiscoveryStep.tsx +1 -2
  237. package/lib/cim/components/ClusterDeployment/ClusterDeploymentHostsSelectionBasic.tsx +2 -10
  238. package/lib/cim/components/ClusterDeployment/ClusterDeploymentWizardNavigation.tsx +7 -2
  239. package/lib/cim/components/ClusterDeployment/ClusterDetailsFormFields.tsx +9 -2
  240. package/lib/cim/components/ClusterDeployment/helpers.ts +65 -15
  241. package/lib/cim/components/ClusterDeployment/use-networking-formik.ts +2 -2
  242. package/lib/cim/components/ClusterDeployment/validationSchemas.ts +0 -1
  243. package/lib/cim/components/Hypershift/HostedClusterWizard/NetworkStep/NetworkStep.tsx +2 -2
  244. package/lib/cim/components/Hypershift/HostedClusterWizard/NetworkStep/types.ts +0 -1
  245. package/lib/cim/components/Hypershift/modals/ManageHostsModal.tsx +1 -6
  246. package/lib/cim/components/Hypershift/utils/nodepool.ts +1 -1
  247. package/lib/cim/components/InfraEnv/InfraEnvFormPage.tsx +21 -4
  248. package/lib/cim/components/helpers/versions.ts +5 -0
  249. package/lib/cim/components/modals/AddHostModal.tsx +6 -0
  250. package/lib/cim/components/modals/EditProxyModal.tsx +15 -3
  251. package/lib/common/components/clusterConfiguration/DiscoveryImageConfigForm.tsx +18 -13
  252. package/lib/common/components/clusterConfiguration/DownloadIso.tsx +3 -1
  253. package/lib/common/components/clusterConfiguration/OpenShiftVersionSelect.tsx +4 -1
  254. package/lib/common/components/clusterWizard/ClusterWizardStep.tsx +5 -1
  255. package/lib/common/components/clusterWizard/networkingSteps/ManagedNetworkingControlGroup.tsx +11 -2
  256. package/lib/common/components/clusterWizard/networkingSteps/NetworkTypeControlGroup.tsx +1 -1
  257. package/lib/common/components/fetching/EventListFetch.tsx +31 -41
  258. package/lib/common/components/hosts/TableToolbar.tsx +3 -3
  259. package/lib/common/components/hosts/status.tsx +1 -1
  260. package/lib/common/components/ui/ClusterEventsToolbar.tsx +3 -0
  261. package/lib/common/components/ui/StaticTextField.tsx +1 -1
  262. package/lib/common/components/ui/eventsModal.tsx +28 -23
  263. package/lib/common/components/ui/formik/CodeField.tsx +1 -1
  264. package/lib/common/components/ui/formik/SelectField.tsx +1 -1
  265. package/lib/common/components/ui/formik/UploadField.tsx +2 -3
  266. package/lib/common/components/ui/formik/types.ts +2 -1
  267. package/lib/common/components/ui/formik/validationSchemas.test.ts +6 -0
  268. package/lib/common/components/ui/formik/validationSchemas.ts +33 -15
  269. package/lib/common/config/constants.ts +6 -2
  270. package/lib/common/types/events.ts +10 -3
  271. package/lib/ocm/components/AddHosts/day2Wizard/Day2ClusterDetails.tsx +129 -21
  272. package/lib/ocm/components/AddHosts/day2Wizard/Day2DownloadISO.tsx +1 -1
  273. package/lib/ocm/components/AddHosts/day2Wizard/Day2StaticIP.tsx +15 -10
  274. package/lib/ocm/components/AddHosts/day2Wizard/Day2Wizard.tsx +1 -0
  275. package/lib/ocm/components/HostsClusterDetailTab/HostsClusterDetailTabContent.tsx +7 -3
  276. package/lib/ocm/components/HostsClusterDetailTab/types.ts +6 -0
  277. package/lib/ocm/components/HostsClusterDetailTab/utils.ts +43 -37
  278. package/lib/ocm/components/clusterConfiguration/CpuArchitectureDropdown.tsx +6 -3
  279. package/lib/ocm/components/clusterConfiguration/DiscoveryImageForm.tsx +9 -1
  280. package/lib/ocm/components/clusterConfiguration/OcmDiscoveryImageConfigForm.tsx +25 -16
  281. package/lib/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifestsForm.tsx +69 -32
  282. package/lib/ocm/components/clusterConfiguration/manifestsConfiguration/components/FolderDropdown.tsx +3 -14
  283. package/lib/ocm/components/clusterConfiguration/manifestsConfiguration/components/customManifestsValidationSchema.tsx +59 -24
  284. package/lib/ocm/components/clusterConfiguration/networkConfiguration/AdvancedNetworkFields.tsx +29 -8
  285. package/lib/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfigurationForm.tsx +11 -2
  286. package/lib/ocm/components/clusterConfiguration/networkConfiguration/StackTypeControl.tsx +6 -13
  287. package/lib/ocm/components/clusterConfiguration/networkConfiguration/VirtualIPControlGroup.tsx +30 -32
  288. package/lib/ocm/components/clusterConfiguration/platformIntegration/PlatformIntegration.tsx +1 -1
  289. package/lib/ocm/components/clusterDetail/AssistedInstallerDetailCard.tsx +14 -2
  290. package/lib/ocm/components/clusterDetail/AssistedInstallerExtraDetailCard.tsx +11 -2
  291. package/lib/ocm/components/clusterWizard/ClusterWizardContextProvider.tsx +20 -2
  292. package/lib/ocm/components/clusterWizard/wizardTransition.ts +13 -1
  293. package/lib/ocm/components/clusters/ClusterPage.tsx +19 -5
  294. package/lib/ocm/components/featureSupportLevels/FeatureSupportLevelProvider.tsx +8 -2
  295. package/lib/ocm/components/fetching/fetchEvents.ts +31 -5
  296. package/lib/ocm/components/newFeatureSupportLevels/NewFeatureSupportLevelProvider.tsx +8 -2
  297. package/lib/ocm/hooks/useClusterCustomManifests.ts +9 -3
  298. package/lib/ocm/hooks/useInfraEnv.ts +10 -1
  299. package/lib/ocm/hooks/useInfraEnvId.ts +24 -4
  300. package/lib/ocm/hooks/useInfraEnvImageUrl.ts +1 -1
  301. package/lib/ocm/hooks/useInfraEnvIpxeImageUrl.ts +1 -1
  302. package/lib/ocm/services/ClustersService.ts +2 -2
  303. package/lib/ocm/services/Day2ClusterService.ts +12 -42
  304. package/lib/ocm/services/InfraEnvIdsCacheService.ts +9 -6
  305. package/lib/ocm/services/InfraEnvsService.ts +12 -13
  306. package/lib/ocm/services/apis/EventsAPI.ts +15 -1
  307. package/package.json +1 -1
@@ -19,7 +19,7 @@ import {
19
19
  } from '../../types';
20
20
  import ClusterDeploymentCredentials from './ClusterDeploymentCredentials';
21
21
  import { shouldShowClusterCredentials, shouldShowClusterInstallationProgress } from './helpers';
22
- import { EventsModalButton } from '../../../common/components/ui/eventsModal';
22
+ import { EventsModal } from '../../../common/components/ui/eventsModal';
23
23
  import ClusterDeploymentDetailsTable from './ClusterDeploymentDetailsTable';
24
24
  import { FetchSecret } from './types';
25
25
  import { getClusterProperties, getConsoleUrl } from '../helpers/clusterDeployment';
@@ -45,6 +45,7 @@ const ClusterDeploymentDetails: React.FC<ClusterDeploymentDetailsProps> = ({
45
45
  const [progressCardExpanded, setProgressCardExpanded] = React.useState(true);
46
46
  const [inventoryCardExpanded, setInventoryCardExpanded] = React.useState(true);
47
47
  const [detailsCardExpanded, setDetailsCardExpanded] = React.useState(true);
48
+ const [isEventsModalOpen, setIsEventsModalOpen] = React.useState(false);
48
49
 
49
50
  const clusterAgents = agents.filter(
50
51
  (a) =>
@@ -60,119 +61,129 @@ const ClusterDeploymentDetails: React.FC<ClusterDeploymentDetailsProps> = ({
60
61
  );
61
62
  const { t } = useTranslation();
62
63
  return (
63
- <Stack hasGutter>
64
- {shouldShowClusterInstallationProgress(agentClusterInstall) && (
64
+ <>
65
+ <Stack hasGutter>
66
+ {shouldShowClusterInstallationProgress(agentClusterInstall) && (
67
+ <StackItem>
68
+ <Card id="cluster-installation-progress-card" isExpanded={progressCardExpanded}>
69
+ <CardHeader
70
+ onExpand={() => setProgressCardExpanded(!progressCardExpanded)}
71
+ toggleButtonProps={{
72
+ id: 'progress-card-toggle-button',
73
+ 'aria-label': 'Cluster installation process',
74
+ 'aria-labelledby': 'titleId progress-card-toggle-button',
75
+ 'aria-expanded': progressCardExpanded,
76
+ }}
77
+ >
78
+ <CardTitle id="titleId">{t('ai:Cluster installation process')}</CardTitle>
79
+ </CardHeader>
80
+ <CardExpandableContent>
81
+ <CardBody>
82
+ <Stack hasGutter>
83
+ {shouldShowClusterCredentials(agentClusterInstall) && (
84
+ <StackItem>
85
+ <ClusterDeploymentCredentials
86
+ clusterDeployment={clusterDeployment}
87
+ agentClusterInstall={agentClusterInstall}
88
+ agents={clusterAgents}
89
+ fetchSecret={fetchSecret}
90
+ consoleUrl={getConsoleUrl(clusterDeployment)}
91
+ />
92
+ </StackItem>
93
+ )}
94
+ <StackItem>
95
+ <ClusterDeploymentKubeconfigDownload
96
+ clusterDeployment={clusterDeployment}
97
+ agentClusterInstall={agentClusterInstall}
98
+ fetchSecret={fetchSecret}
99
+ />{' '}
100
+ <Button
101
+ id="cluster-events-button"
102
+ variant={ButtonVariant.link}
103
+ style={{ textAlign: 'right' }}
104
+ onClick={() => setIsEventsModalOpen(true)}
105
+ >
106
+ {t('ai:View cluster events')}
107
+ </Button>
108
+ </StackItem>
109
+ </Stack>
110
+ </CardBody>
111
+ </CardExpandableContent>
112
+ </Card>
113
+ </StackItem>
114
+ )}
65
115
  <StackItem>
66
- <Card id="cluster-installation-progress-card" isExpanded={progressCardExpanded}>
116
+ <Card id="cluster-inventory-card" isExpanded={inventoryCardExpanded}>
67
117
  <CardHeader
68
- onExpand={() => setProgressCardExpanded(!progressCardExpanded)}
118
+ onExpand={() => setInventoryCardExpanded(!inventoryCardExpanded)}
69
119
  toggleButtonProps={{
70
- id: 'progress-card-toggle-button',
71
- 'aria-label': 'Cluster installation process',
72
- 'aria-labelledby': 'titleId progress-card-toggle-button',
73
- 'aria-expanded': progressCardExpanded,
120
+ id: 'inventory-card-toggle-button',
121
+ 'aria-label': 'Hosts inventory',
122
+ 'aria-labelledby': 'titleId inventory-card-toggle-button',
123
+ 'aria-expanded': inventoryCardExpanded,
74
124
  }}
75
125
  >
76
- <CardTitle id="titleId">{t('ai:Cluster installation process')}</CardTitle>
126
+ <CardTitle id="titleId">{t('ai:Hosts inventory')}</CardTitle>
77
127
  </CardHeader>
78
128
  <CardExpandableContent>
79
129
  <CardBody>
80
- <Stack hasGutter>
81
- {shouldShowClusterCredentials(agentClusterInstall) && (
82
- <StackItem>
83
- <ClusterDeploymentCredentials
84
- clusterDeployment={clusterDeployment}
85
- agentClusterInstall={agentClusterInstall}
86
- agents={clusterAgents}
87
- fetchSecret={fetchSecret}
88
- consoleUrl={getConsoleUrl(clusterDeployment)}
89
- />
90
- </StackItem>
91
- )}
92
- <StackItem>
93
- <ClusterDeploymentKubeconfigDownload
94
- clusterDeployment={clusterDeployment}
95
- agentClusterInstall={agentClusterInstall}
96
- fetchSecret={fetchSecret}
97
- />{' '}
98
- <EventsModalButton
99
- id="cluster-events-button"
100
- entityKind="cluster"
101
- cluster={cluster}
102
- title={t('ai:Cluster Events')}
103
- variant={ButtonVariant.link}
104
- style={{ textAlign: 'right' }}
105
- onFetchEvents={onFetchEvents}
106
- ButtonComponent={Button}
107
- >
108
- {t('ai:View cluster events')}
109
- </EventsModalButton>
110
- </StackItem>
111
- </Stack>
130
+ <ClusterDeploymentDetailsTable
131
+ agents={clusterAgents}
132
+ agentClusterInstall={agentClusterInstall}
133
+ />
134
+ </CardBody>
135
+ </CardExpandableContent>
136
+ </Card>
137
+ </StackItem>
138
+ <StackItem>
139
+ <Card id="cluster-details-card" isExpanded={detailsCardExpanded}>
140
+ <CardHeader
141
+ onExpand={() => setDetailsCardExpanded(!detailsCardExpanded)}
142
+ toggleButtonProps={{
143
+ id: 'details-card-toggle-button',
144
+ 'aria-label': 'Details',
145
+ 'aria-labelledby': 'titleId details-card-toggle-button',
146
+ 'aria-expanded': detailsCardExpanded,
147
+ }}
148
+ >
149
+ <CardTitle id="titleId">{t('ai:Details')}</CardTitle>
150
+ </CardHeader>
151
+ <CardExpandableContent>
152
+ <CardBody>
153
+ <ClusterPropertiesList
154
+ leftItems={[
155
+ clusterProperties.name,
156
+ clusterProperties.openshiftVersion,
157
+ clusterProperties.clusterId,
158
+ clusterProperties.installedTimestamp,
159
+ clusterProperties.baseDnsDomain,
160
+ ]}
161
+ rightItems={[
162
+ clusterProperties.apiVip,
163
+ clusterProperties.ingressVip,
164
+ clusterProperties.clusterNetworkCidr,
165
+ clusterProperties.clusterNetworkHostPrefix,
166
+ clusterProperties.serviceNetworkCidr,
167
+ ]}
168
+ />
112
169
  </CardBody>
113
170
  </CardExpandableContent>
114
171
  </Card>
115
172
  </StackItem>
173
+ </Stack>
174
+ {isEventsModalOpen && (
175
+ <EventsModal
176
+ entityKind="cluster"
177
+ cluster={cluster}
178
+ title={t('ai:Cluster Events')}
179
+ onFetchEvents={onFetchEvents}
180
+ hostId={undefined}
181
+ disablePagination
182
+ isOpen
183
+ onClose={() => setIsEventsModalOpen(false)}
184
+ />
116
185
  )}
117
- <StackItem>
118
- <Card id="cluster-inventory-card" isExpanded={inventoryCardExpanded}>
119
- <CardHeader
120
- onExpand={() => setInventoryCardExpanded(!inventoryCardExpanded)}
121
- toggleButtonProps={{
122
- id: 'inventory-card-toggle-button',
123
- 'aria-label': 'Hosts inventory',
124
- 'aria-labelledby': 'titleId inventory-card-toggle-button',
125
- 'aria-expanded': inventoryCardExpanded,
126
- }}
127
- >
128
- <CardTitle id="titleId">{t('ai:Hosts inventory')}</CardTitle>
129
- </CardHeader>
130
- <CardExpandableContent>
131
- <CardBody>
132
- <ClusterDeploymentDetailsTable
133
- agents={clusterAgents}
134
- agentClusterInstall={agentClusterInstall}
135
- />
136
- </CardBody>
137
- </CardExpandableContent>
138
- </Card>
139
- </StackItem>
140
- <StackItem>
141
- <Card id="cluster-details-card" isExpanded={detailsCardExpanded}>
142
- <CardHeader
143
- onExpand={() => setDetailsCardExpanded(!detailsCardExpanded)}
144
- toggleButtonProps={{
145
- id: 'details-card-toggle-button',
146
- 'aria-label': 'Details',
147
- 'aria-labelledby': 'titleId details-card-toggle-button',
148
- 'aria-expanded': detailsCardExpanded,
149
- }}
150
- >
151
- <CardTitle id="titleId">{t('ai:Details')}</CardTitle>
152
- </CardHeader>
153
- <CardExpandableContent>
154
- <CardBody>
155
- <ClusterPropertiesList
156
- leftItems={[
157
- clusterProperties.name,
158
- clusterProperties.openshiftVersion,
159
- clusterProperties.clusterId,
160
- clusterProperties.installedTimestamp,
161
- clusterProperties.baseDnsDomain,
162
- ]}
163
- rightItems={[
164
- clusterProperties.apiVip,
165
- clusterProperties.ingressVip,
166
- clusterProperties.clusterNetworkCidr,
167
- clusterProperties.clusterNetworkHostPrefix,
168
- clusterProperties.serviceNetworkCidr,
169
- ]}
170
- />
171
- </CardBody>
172
- </CardExpandableContent>
173
- </Card>
174
- </StackItem>
175
- </Stack>
186
+ </>
176
187
  );
177
188
  };
178
189
 
@@ -17,7 +17,7 @@ import { ClusterDeploymentDetailsStepProps, ClusterDeploymentDetailsValues } fro
17
17
  import ClusterDeploymentWizardFooter from './ClusterDeploymentWizardFooter';
18
18
  import ClusterDeploymentWizardContext from './ClusterDeploymentWizardContext';
19
19
  import ClusterDeploymentWizardStep from './ClusterDeploymentWizardStep';
20
- import { getAICluster, getOCPVersions } from '../helpers';
20
+ import { getAICluster, getNetworkType, getOCPVersions } from '../helpers';
21
21
  import {
22
22
  AgentClusterInstallK8sResource,
23
23
  AgentK8sResource,
@@ -45,7 +45,10 @@ export const useDetailsFormik = ({
45
45
  clusterImages,
46
46
  usedClusterNames,
47
47
  infraEnv,
48
- }: UseDetailsFormikArgs): [ClusterDetailsValues, Lazy] => {
48
+ }: UseDetailsFormikArgs): [
49
+ ClusterDetailsValues & { networkType: 'OpenShiftSDN' | 'OVNKubernetes' },
50
+ Lazy,
51
+ ] => {
49
52
  const { t } = useTranslation();
50
53
  const featureSupportLevels = useFeatureSupportLevel();
51
54
  const ocpVersions = getOCPVersions(clusterImages);
@@ -62,12 +65,21 @@ export const useDetailsFormik = ({
62
65
  [agentClusterInstall, clusterDeployment, agents, infraEnv],
63
66
  );
64
67
  const initialValues = React.useMemo(
65
- () =>
66
- getClusterDetailsInitialValues({
68
+ () => {
69
+ const initValues = getClusterDetailsInitialValues({
67
70
  managedDomains: [], // not supported
68
71
  cluster,
69
72
  ocpVersions,
70
- }),
73
+ });
74
+
75
+ const ocpVersion = ocpVersions.find(
76
+ (ocpVersion) => ocpVersion.value === initValues.openshiftVersion,
77
+ );
78
+ return {
79
+ ...initValues,
80
+ networkType: getNetworkType(ocpVersion),
81
+ };
82
+ },
71
83
  [], // eslint-disable-line react-hooks/exhaustive-deps
72
84
  );
73
85
 
@@ -1,6 +1,5 @@
1
1
  import React from 'react';
2
2
  import * as Yup from 'yup';
3
- import { TestOptionsMessage } from 'yup';
4
3
  import { Formik, FormikConfig, useFormikContext } from 'formik';
5
4
  import { Alert, AlertVariant, Grid, GridItem } from '@patternfly/react-core';
6
5
  import { ClusterWizardStepHeader, useAlerts } from '../../../common';
@@ -74,19 +73,9 @@ const getInitialValues = ({
74
73
  };
75
74
  };
76
75
 
77
- const getMinHostsCount = (selectedHostsCount: number) => (selectedHostsCount === 4 ? 5 : 3);
78
-
79
76
  const getValidationSchema = (agentClusterInstall: AgentClusterInstallK8sResource, t: TFunction) => {
80
77
  const isSNOCluster = getIsSNOCluster(agentClusterInstall);
81
78
 
82
- const getMinMessage: TestOptionsMessage<{ min: number }> = ({ min }) => {
83
- const message = t('ai:Please select at least {{min}} hosts for the cluster', { min });
84
- if (min === 5) {
85
- return `${message} ${t('ai:or select just 3 hosts instead.')}`;
86
- }
87
- return `${message}.`;
88
- };
89
-
90
79
  return Yup.lazy<ClusterDeploymentHostsSelectionValues>((values) => {
91
80
  return Yup.object<ClusterDeploymentHostsSelectionValues>().shape({
92
81
  hostCount: isSNOCluster ? Yup.number() : hostCountValidationSchema(t),
@@ -100,7 +89,7 @@ const getValidationSchema = (agentClusterInstall: AgentClusterInstallK8sResource
100
89
  ? Yup.array<string>()
101
90
  .min(1, t('ai:Please select one host for the cluster.'))
102
91
  .max(1, t('ai:Please select one host for the cluster.')) // TODO(jtomasek): replace this with Yup.array().length() after updating Yup
103
- : Yup.array<string>().min(getMinHostsCount(values.selectedHostIds.length), getMinMessage),
92
+ : Yup.array<string>().min(3, t('ai:Please select at least 3 hosts for the cluster.')),
104
93
  });
105
94
  });
106
95
  };
@@ -37,8 +37,7 @@ const ClusterDeploymentHostsDiscoveryStep: React.FC<ClusterDeploymentHostsDiscov
37
37
  infraEnvAgents.length > 1 &&
38
38
  errors.push(t('ai:Single node cluster cannot contain more than 1 host.'));
39
39
  } else {
40
- (infraEnvAgents.length === 4 || infraEnvAgents.length < 3) &&
41
- errors.push(t('ai:Cluster must have 3 or 5 and more hosts.'));
40
+ infraEnvAgents.length < 3 && errors.push(t('ai:Cluster must have at least 3 hosts.'));
42
41
  }
43
42
 
44
43
  if (infraEnvAgents.some((a) => !a.spec.approved)) {
@@ -25,9 +25,7 @@ const ClusterDeploymentHostsSelectionBasic: React.FC<ClusterDeploymentHostsSelec
25
25
  const { t } = useTranslation();
26
26
 
27
27
  React.useEffect(() => {
28
- if (hostCount === 3) {
29
- setFieldValue('useMastersAsWorkers', true);
30
- }
28
+ setFieldValue('useMastersAsWorkers', hostCount === 3);
31
29
  }, [hostCount, setFieldValue]);
32
30
 
33
31
  return (
@@ -43,12 +41,6 @@ const ClusterDeploymentHostsSelectionBasic: React.FC<ClusterDeploymentHostsSelec
43
41
  minValue={isSNOCluster ? 1 : HOSTS_MIN_COUNT}
44
42
  maxValue={isSNOCluster ? 1 : HOSTS_MAX_COUNT}
45
43
  isDisabled={isSNOCluster}
46
- formatValue={(newValue) => {
47
- if (newValue === 4) {
48
- return hostCount >= 4 ? 3 : 5;
49
- }
50
- return newValue;
51
- }}
52
44
  />
53
45
  </GridItem>
54
46
 
@@ -58,7 +50,7 @@ const ClusterDeploymentHostsSelectionBasic: React.FC<ClusterDeploymentHostsSelec
58
50
  idPostfix="mastersasworkers"
59
51
  name="useMastersAsWorkers"
60
52
  label={t('ai:Run workloads on control plane hosts')}
61
- isDisabled={hostCount < 5}
53
+ isDisabled={hostCount !== 3}
62
54
  />
63
55
  </GridItem>
64
56
 
@@ -19,7 +19,12 @@ const ClusterDeploymentWizardNavigation: React.FC<{
19
19
  const stepNames = wizardStepNames(t);
20
20
  return (
21
21
  <WizardNav>
22
- <WizardNavItem key="installation-type" content="Installation type" step={0} isDisabled />
22
+ <WizardNavItem
23
+ key="installation-type"
24
+ content={t('ai:Installation type')}
25
+ step={0}
26
+ isDisabled
27
+ />
23
28
  <WizardNavItem
24
29
  key="cluster-details"
25
30
  content={stepNames['cluster-details']}
@@ -29,7 +34,7 @@ const ClusterDeploymentWizardNavigation: React.FC<{
29
34
  step={1}
30
35
  onNavItemClick={() => setCurrentStepId('cluster-details')}
31
36
  />
32
- <WizardNavItem key="automation" content="Automation" step={2} isDisabled />
37
+ <WizardNavItem key="automation" content={t('ai:Automation')} step={2} isDisabled />
33
38
  {isCIMFlow(clusterDeployment) ? (
34
39
  <WizardNavItem
35
40
  key="hosts-selection"
@@ -15,6 +15,7 @@ import { ClusterDetailsValues } from '../../../common/components/clusterWizard/t
15
15
  import { useTranslation } from '../../../common/hooks/use-translation-wrapper';
16
16
  import ArmCheckbox from './ArmCheckbox';
17
17
  import { SNOControlGroup } from '../../../common';
18
+ import { getNetworkType } from '../helpers';
18
19
 
19
20
  export type ClusterDetailsFormFieldsProps = {
20
21
  isEditFlow: boolean;
@@ -47,7 +48,7 @@ export const ClusterDetailsFormFields: React.FC<ClusterDetailsFormFieldsProps> =
47
48
  forceOpenshiftVersion,
48
49
  extensionAfter,
49
50
  }) => {
50
- const { values } = useFormikContext<ClusterDetailsValues>();
51
+ const { values, setFieldValue } = useFormikContext<ClusterDetailsValues>();
51
52
  const { name, baseDnsDomain, highAvailabilityMode } = values;
52
53
  const nameInputRef = React.useRef<HTMLInputElement>();
53
54
  React.useEffect(() => {
@@ -97,7 +98,13 @@ export const ClusterDetailsFormFields: React.FC<ClusterDetailsFormFieldsProps> =
97
98
  {t('ai:OpenShift')} {forceOpenshiftVersion}
98
99
  </StaticTextField>
99
100
  ) : (
100
- <OpenShiftVersionSelect versions={versions} />
101
+ <OpenShiftVersionSelect
102
+ versions={versions}
103
+ onChange={(value) => {
104
+ const ocpVersion = versions.find((v) => v.value === value);
105
+ setFieldValue('networkType', getNetworkType(ocpVersion));
106
+ }}
107
+ />
101
108
  )}
102
109
  <SNOControlGroup versions={versions} highAvailabilityMode={highAvailabilityMode} />
103
110
  <ArmCheckbox versions={versions} />
@@ -15,6 +15,7 @@ import { ClusterDeploymentK8sResource, AgentK8sResource } from '../../types';
15
15
  import { INFRAENV_GENERATED_AI_FLOW, BMH_HOSTNAME_ANNOTATION } from '../common/constants';
16
16
  import { gridSpans } from '@patternfly/react-core';
17
17
  import { getErrorMessage } from '../../../common/utils';
18
+
18
19
  export const shouldShowClusterDeploymentValidationOverview = (
19
20
  agentClusterInstall?: AgentClusterInstallK8sResource,
20
21
  ) => {
@@ -37,16 +38,19 @@ export const shouldShowClusterInstallationProgress = (
37
38
  agentClusterInstall?: AgentClusterInstallK8sResource,
38
39
  ) => {
39
40
  const [clusterStatus] = getClusterStatus(agentClusterInstall);
40
- return [
41
- 'preparing-for-installation',
42
- 'installing',
43
- 'installing-pending-user-action',
44
- 'finalizing',
45
- 'installed',
46
- 'error',
47
- 'cancelled',
48
- 'adding-hosts',
49
- ].includes(clusterStatus);
41
+ return (
42
+ [
43
+ 'preparing-for-installation',
44
+ 'installing',
45
+ 'installing-pending-user-action',
46
+ 'finalizing',
47
+ 'installed',
48
+ 'error',
49
+ 'cancelled',
50
+ 'adding-hosts',
51
+ 'ready',
52
+ ].includes(clusterStatus) && !agentClusterInstall?.spec?.holdInstallation
53
+ );
50
54
  };
51
55
 
52
56
  export const isInstallationInProgress = (agentClusterInstall: AgentClusterInstallK8sResource) => {
@@ -111,9 +115,14 @@ export const getOnFetchEventsHandler =
111
115
  (
112
116
  fetchEvents: (url: string) => Promise<string>,
113
117
  aiNamespace: string,
118
+ agents: AgentK8sResource[],
114
119
  agentClusterInstall?: AgentClusterInstallK8sResource,
115
120
  ): EventListFetchProps['onFetchEvents'] =>
116
- async (params, onSuccess, onError) => {
121
+ async (
122
+ { message, severities: severitiesFilter, hostIds, clusterLevel, deletedHosts },
123
+ onSuccess,
124
+ onError,
125
+ ) => {
117
126
  const eventsURL = getEventsURL(aiNamespace, agentClusterInstall);
118
127
  if (!eventsURL) {
119
128
  onError('Cannot determine events URL');
@@ -121,10 +130,51 @@ export const getOnFetchEventsHandler =
121
130
  }
122
131
  try {
123
132
  const result = await fetchEvents(eventsURL);
124
- const data = formatEventsData(result);
125
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
126
- // @ts-ignore
127
- onSuccess(data);
133
+ let data = formatEventsData(result);
134
+ const allNames = data.filter((d) => d.hostId).map((d) => d.hostId);
135
+
136
+ const severities = {
137
+ critical: data.filter((d) => d.severity === 'critical').length,
138
+ error: data.filter((d) => d.severity === 'error').length,
139
+ info: data.filter((d) => d.severity === 'info').length,
140
+ warning: data.filter((d) => d.severity === 'warning').length,
141
+ };
142
+
143
+ if (message) {
144
+ data = data.filter((d) => d.message.includes(message));
145
+ }
146
+ if (severitiesFilter && severitiesFilter.length > 0) {
147
+ data = data.filter((d) => severitiesFilter.includes(d.severity));
148
+ }
149
+
150
+ if (clusterLevel || deletedHosts || (hostIds && hostIds.length > 0)) {
151
+ data = data.filter((d) => {
152
+ if (clusterLevel && d.clusterId && !d.hostId) {
153
+ return d;
154
+ }
155
+ if (hostIds && hostIds.length > 0) {
156
+ const names = agents
157
+ .filter((a) => a.metadata?.uid && hostIds.includes(a.metadata.uid))
158
+ .map((a) => a.metadata?.name);
159
+ if (d.hostId && names.includes(d.hostId)) {
160
+ return d;
161
+ }
162
+ }
163
+ if (deletedHosts) {
164
+ const deleted = allNames.filter((n) => !agents.some((a) => a.metadata?.name === n));
165
+ if (d.hostId && deleted.includes(d.hostId)) {
166
+ return d;
167
+ }
168
+ }
169
+ return false;
170
+ });
171
+ }
172
+
173
+ onSuccess({
174
+ data,
175
+ totalEvents: data.length,
176
+ severities,
177
+ });
128
178
  } catch (e) {
129
179
  onError(getErrorMessage(e));
130
180
  }
@@ -54,8 +54,8 @@ const getNetworkConfigurationValidationSchema = (
54
54
  ingressVip: vipValidationSchema(hostSubnets, values, initialValues.ingressVip),
55
55
  sshPublicKey: sshPublicKeyValidationSchema,
56
56
  hostSubnet: hostSubnetValidationSchema,
57
- httpProxy: httpProxyValidationSchema(values, 'httpsProxy'),
58
- httpsProxy: httpProxyValidationSchema(values, 'httpProxy'), // share the schema, httpS is currently not supported
57
+ httpProxy: httpProxyValidationSchema({ values, pairValueName: 'httpsProxy' }),
58
+ httpsProxy: httpProxyValidationSchema({ values, pairValueName: 'httpProxy' }), // share the schema, httpS is currently not supported
59
59
  noProxy: noProxyValidationSchema,
60
60
  }),
61
61
  );
@@ -14,6 +14,5 @@ export const hostCountValidationSchema = (t: TFunction) => {
14
14
  HOSTS_MAX_COUNT,
15
15
  t('ai:Maximum hosts count {{HOSTS_MAX_COUNT}} reached.', { HOSTS_MAX_COUNT }),
16
16
  )
17
- .test('not-four', t('ai:A cluster needs 2 or more worker nodes.'), (value) => value !== 4)
18
17
  .required(t('ai:Required field'));
19
18
  };
@@ -28,8 +28,8 @@ const getValidationSchema = (t: TFunction) =>
28
28
  clusterNetworkHostPrefix: values.isAdvanced
29
29
  ? hostPrefixValidationSchema(values.clusterNetworkCidr)
30
30
  : Yup.number(),
31
- httpProxy: httpProxyValidationSchema(values, 'httpsProxy'),
32
- httpsProxy: httpProxyValidationSchema(values, 'httpProxy'), // share the schema, httpS is currently not supported
31
+ httpProxy: httpProxyValidationSchema({ values, pairValueName: 'httpsProxy' }),
32
+ httpsProxy: httpProxyValidationSchema({ values, pairValueName: 'httpProxy' }), // share the schema, httpS is currently not supported
33
33
  noProxy: noProxyValidationSchema,
34
34
  nodePortAddress:
35
35
  values.apiPublishingStrategy === 'NodePort'
@@ -21,5 +21,4 @@ export type NetworkStepProps = {
21
21
  formRef: React.Ref<FormikProps<NetworkFormValues>>;
22
22
  onValuesChanged: (values: NetworkFormValues, initRender: boolean) => void;
23
23
  initialValues: NetworkFormValues;
24
- count: number;
25
24
  };
@@ -14,7 +14,7 @@ import * as React from 'react';
14
14
  import { AgentK8sResource } from '../../../types';
15
15
  import { NodePoolK8sResource, HostedClusterK8sResource, AgentMachineK8sResource } from '../types';
16
16
  import NodePoolForm, { NodePoolFormValues } from './NodePoolForm';
17
- import { formikLabelsToLabels, labelsToFormikValue } from '../utils';
17
+ import { labelsToFormikValue } from '../utils';
18
18
  import { useTranslation } from '../../../../common/hooks/use-translation-wrapper';
19
19
  import { getErrorMessage } from '../../../../common/utils';
20
20
 
@@ -57,11 +57,6 @@ const ManageHostsModal = ({
57
57
  path: '/spec/replicas',
58
58
  });
59
59
  }
60
- patches.push({
61
- op: 'replace',
62
- value: formikLabelsToLabels(values.agentLabels),
63
- path: '/spec/platform/agent/agentLabelSelector/matchLabels',
64
- });
65
60
  try {
66
61
  await onSubmit(nodePool, patches);
67
62
  onClose();
@@ -15,7 +15,7 @@ export const getNodepoolAgents = (
15
15
  (am) =>
16
16
  am.metadata?.namespace ===
17
17
  `${hostedCluster.metadata?.namespace || ''}-${hostedCluster.metadata?.name || ''}` &&
18
- am.metadata?.labels?.[CLUSTER_NAME_LABEL] === hostedCluster.metadata?.name &&
18
+ am.metadata?.labels?.[CLUSTER_NAME_LABEL] === hostedCluster.spec.infraID &&
19
19
  am.metadata?.annotations?.[NODEPOOL_NAME_ANNOTATION] === nodePool.metadata?.name &&
20
20
  am.status?.agentRef?.name &&
21
21
  am.status?.agentRef?.namespace,