@openshift-assisted/ui-lib 2.50.1 → 2.51.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (362) hide show
  1. package/build/@types/cim/components/Agent/BMHStatusInfo.d.ts.map +1 -1
  2. package/build/@types/cim/components/Agent/MinimalHWRequirements.d.ts.map +1 -1
  3. package/build/@types/cim/components/ClusterDeployment/use-networking-formik.d.ts +1 -1
  4. package/build/@types/cim/components/ClusterDeployment/wizardTransition.d.ts +1 -1
  5. package/build/@types/cim/components/ClusterDeployment/wizardTransition.d.ts.map +1 -1
  6. package/build/@types/cim/components/Hypershift/DetailsPage/ConditionsTable.d.ts.map +1 -1
  7. package/build/@types/cim/components/Hypershift/DetailsPage/HostedClusterProgress.d.ts.map +1 -1
  8. package/build/@types/cim/components/Hypershift/DetailsPage/NodePoolsProgress.d.ts.map +1 -1
  9. package/build/@types/cim/components/Hypershift/utils/status.d.ts +2 -2
  10. package/build/@types/cim/components/Hypershift/utils/status.d.ts.map +1 -1
  11. package/build/@types/cim/components/InfraEnv/EnvironmentDetails.d.ts.map +1 -1
  12. package/build/@types/cim/components/InfraEnv/InfraEnvHostsTabAgentsWarning.d.ts.map +1 -1
  13. package/build/@types/cim/components/helpers/agentStatus.d.ts +1 -1
  14. package/build/@types/cim/components/helpers/agentStatus.d.ts.map +1 -1
  15. package/build/@types/cim/components/modals/MassDeleteAgentModal.d.ts.map +1 -1
  16. package/build/@types/common/api/assisted-service/ClustersAPI.d.ts +4 -0
  17. package/build/@types/common/api/assisted-service/ClustersAPI.d.ts.map +1 -1
  18. package/build/@types/common/components/clusterConfiguration/DiscoveryTroubleshootingModal.d.ts.map +1 -1
  19. package/build/@types/common/components/clusterDetail/FinalizingProgress.d.ts +1 -1
  20. package/build/@types/common/components/clusterDetail/FinalizingProgress.d.ts.map +1 -1
  21. package/build/@types/common/components/clusterDetail/OperatorsProgressItem.d.ts.map +1 -1
  22. package/build/@types/common/components/clusterDetail/ProgressBarTexts.d.ts.map +1 -1
  23. package/build/@types/common/components/clusterWizard/ReviewValidations.d.ts.map +1 -1
  24. package/build/@types/common/components/clusterWizard/clusterDetailsValidation.d.ts.map +1 -1
  25. package/build/@types/common/components/hosts/HostPropertyValidationPopover.d.ts.map +1 -1
  26. package/build/@types/common/components/hosts/HostStatus.d.ts.map +1 -1
  27. package/build/@types/common/components/hosts/HostValidationGroups.d.ts.map +1 -1
  28. package/build/@types/common/components/hosts/Hostname.d.ts.map +1 -1
  29. package/build/@types/common/components/hosts/MassChangeHostnameModal.d.ts.map +1 -1
  30. package/build/@types/common/components/hosts/VMRebootConfigurationInfo.d.ts.map +1 -1
  31. package/build/@types/common/components/hosts/status.d.ts.map +1 -1
  32. package/build/@types/common/components/storage/DisksTable.d.ts.map +1 -1
  33. package/build/@types/common/components/storage/StorageUtils.d.ts +1 -1
  34. package/build/@types/common/components/storage/StorageUtils.d.ts.map +1 -1
  35. package/build/@types/common/components/ui/OpenShiftVersionModal.d.ts.map +1 -1
  36. package/build/@types/common/components/ui/WizardNavItem.d.ts.map +1 -1
  37. package/build/@types/common/components/ui/formik/PullSecretField.d.ts.map +1 -1
  38. package/build/@types/common/components/ui/formik/RemovableField.d.ts.map +1 -1
  39. package/build/@types/common/components/ui/formik/RichInputField.d.ts.map +1 -1
  40. package/build/@types/common/components/ui/index.d.ts +0 -1
  41. package/build/@types/common/components/ui/index.d.ts.map +1 -1
  42. package/build/@types/common/config/constants.d.ts +7 -0
  43. package/build/@types/common/config/constants.d.ts.map +1 -1
  44. package/build/@types/common/config/docs_links.d.ts +1 -0
  45. package/build/@types/common/config/docs_links.d.ts.map +1 -1
  46. package/build/@types/common/types/ui-settings.d.ts +0 -1
  47. package/build/@types/common/types/ui-settings.d.ts.map +1 -1
  48. package/build/@types/common/validationSchemas/addressValidation.d.ts.map +1 -1
  49. package/build/@types/common/validationSchemas/clusterDetailsValidation.d.ts +5 -0
  50. package/build/@types/common/validationSchemas/clusterDetailsValidation.d.ts.map +1 -1
  51. package/build/@types/ocm/components/Routes.d.ts.map +1 -1
  52. package/build/@types/ocm/components/clusterConfiguration/DiscoveryImageTypeDropdown.d.ts.map +1 -1
  53. package/build/@types/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.d.ts.map +1 -1
  54. package/build/@types/ocm/components/clusterConfiguration/OcmDiscoveryImageConfigForm.d.ts +2 -2
  55. package/build/@types/ocm/components/clusterConfiguration/OcmDiscoveryImageConfigForm.d.ts.map +1 -1
  56. package/build/@types/ocm/components/clusterConfiguration/OcmOperatorProgressItem.d.ts.map +1 -1
  57. package/build/@types/ocm/components/clusterConfiguration/OpenshiftVersionHelperText.d.ts.map +1 -1
  58. package/build/@types/ocm/components/clusterConfiguration/manifestsConfiguration/CustomManifestsPage.d.ts.map +1 -1
  59. package/build/@types/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfiguration.d.ts.map +1 -1
  60. package/build/@types/ocm/components/clusterConfiguration/networkConfiguration/NetworkTypeDropdown.d.ts +9 -0
  61. package/build/@types/ocm/components/clusterConfiguration/networkConfiguration/NetworkTypeDropdown.d.ts.map +1 -0
  62. package/build/@types/ocm/components/clusterConfiguration/platformIntegration/PlatformIntegrationNote.d.ts.map +1 -1
  63. package/build/@types/ocm/components/clusterConfiguration/review/ReviewNetworkingTable.d.ts.map +1 -1
  64. package/build/@types/ocm/components/clusterConfiguration/review/ReviewPreflightChecks.d.ts.map +1 -1
  65. package/build/@types/ocm/components/clusterConfiguration/staticIp/commonValidationSchemas.d.ts.map +1 -1
  66. package/build/@types/ocm/components/clusterConfiguration/staticIp/components/FormViewHosts/FormViewHostsFields.d.ts.map +1 -1
  67. package/build/@types/ocm/components/clusterConfiguration/staticIp/components/FormViewNetworkWide/formViewNetworkWideValidationSchema.d.ts +22 -0
  68. package/build/@types/ocm/components/clusterConfiguration/staticIp/components/FormViewNetworkWide/formViewNetworkWideValidationSchema.d.ts.map +1 -1
  69. package/build/@types/ocm/components/clusterDetail/ClusterProperties.d.ts.map +1 -1
  70. package/build/@types/ocm/components/clusterDetail/HostInventoryExpandable.d.ts +1 -1
  71. package/build/@types/ocm/components/clusterDetail/HostInventoryExpandable.d.ts.map +1 -1
  72. package/build/@types/ocm/components/clusterDetail/OpenShiftVersionDetail.d.ts.map +1 -1
  73. package/build/@types/ocm/components/clusterDetail/ResetClusterModal.d.ts.map +1 -1
  74. package/build/@types/ocm/components/clusterWizard/ClusterDetails.d.ts.map +1 -1
  75. package/build/@types/ocm/components/clusterWizard/ClusterDetailsForm.d.ts +2 -2
  76. package/build/@types/ocm/components/clusterWizard/ClusterDetailsForm.d.ts.map +1 -1
  77. package/build/@types/ocm/components/clusterWizard/ClusterWizardContext.d.ts +3 -2
  78. package/build/@types/ocm/components/clusterWizard/ClusterWizardContext.d.ts.map +1 -1
  79. package/build/@types/ocm/components/clusterWizard/ClusterWizardContextProvider.d.ts.map +1 -1
  80. package/build/@types/ocm/components/clusterWizard/ClusterWizardFooter.d.ts +2 -1
  81. package/build/@types/ocm/components/clusterWizard/ClusterWizardFooter.d.ts.map +1 -1
  82. package/build/@types/ocm/components/clusterWizard/NewClusterWizard.d.ts.map +1 -1
  83. package/build/@types/ocm/components/clusterWizard/constants.d.ts.map +1 -1
  84. package/build/@types/ocm/components/clusterWizard/disconnected/BasicStep.d.ts.map +1 -1
  85. package/build/@types/ocm/components/clusterWizard/disconnected/DisconnectedStaticIp.d.ts +4 -0
  86. package/build/@types/ocm/components/clusterWizard/disconnected/DisconnectedStaticIp.d.ts.map +1 -0
  87. package/build/@types/ocm/components/clusterWizard/disconnected/OptionalConfigurationsStep.d.ts +4 -0
  88. package/build/@types/ocm/components/clusterWizard/disconnected/OptionalConfigurationsStep.d.ts.map +1 -0
  89. package/build/@types/ocm/components/clusterWizard/disconnected/ReviewStep.d.ts.map +1 -1
  90. package/build/@types/ocm/components/clusterWizard/index.d.ts +1 -0
  91. package/build/@types/ocm/components/clusterWizard/index.d.ts.map +1 -1
  92. package/build/@types/ocm/components/clusterWizard/wizardTransition.d.ts +2 -2
  93. package/build/@types/ocm/components/clusterWizard/wizardTransition.d.ts.map +1 -1
  94. package/build/@types/ocm/components/clusters/ClusterStatus.d.ts.map +1 -1
  95. package/build/@types/ocm/components/featureSupportLevels/ReviewClusterFeatureSupportLevels.d.ts.map +1 -1
  96. package/build/@types/ocm/components/featureSupportLevels/featureStateUtils.d.ts.map +1 -1
  97. package/build/@types/ocm/components/ui/InfoLinkWithModal.d.ts.map +1 -1
  98. package/build/@types/ocm/components/utils.d.ts +1 -0
  99. package/build/@types/ocm/components/utils.d.ts.map +1 -1
  100. package/build/@types/ocm/hooks/useUISettings.d.ts.map +1 -1
  101. package/build/@types/ocm/services/ClusterDetailsService.d.ts +1 -2
  102. package/build/@types/ocm/services/ClusterDetailsService.d.ts.map +1 -1
  103. package/build/@types/ocm/services/ClustersService.d.ts +4 -0
  104. package/build/@types/ocm/services/ClustersService.d.ts.map +1 -1
  105. package/build/@types/ocm/services/InfraEnvsService.d.ts.map +1 -1
  106. package/build/@types/ocm/services/types.d.ts +0 -1
  107. package/build/@types/ocm/services/types.d.ts.map +1 -1
  108. package/build/@types/ocm/store/slices/current-cluster/slice.d.ts +3 -3
  109. package/build/cjs/cim/components/Agent/BMHStatusInfo.js +4 -4
  110. package/build/cjs/cim/components/Agent/BMHStatusInfo.js.map +1 -1
  111. package/build/cjs/cim/components/Agent/MinimalHWRequirements.js +2 -2
  112. package/build/cjs/cim/components/Agent/MinimalHWRequirements.js.map +1 -1
  113. package/build/cjs/cim/components/Hypershift/DetailsPage/ConditionsTable.js +7 -6
  114. package/build/cjs/cim/components/Hypershift/DetailsPage/ConditionsTable.js.map +1 -1
  115. package/build/cjs/cim/components/Hypershift/DetailsPage/HostedClusterProgress.js +3 -2
  116. package/build/cjs/cim/components/Hypershift/DetailsPage/HostedClusterProgress.js.map +1 -1
  117. package/build/cjs/cim/components/Hypershift/DetailsPage/NodePoolsProgress.js +2 -2
  118. package/build/cjs/cim/components/Hypershift/DetailsPage/NodePoolsProgress.js.map +1 -1
  119. package/build/cjs/cim/components/Hypershift/utils/status.js +8 -7
  120. package/build/cjs/cim/components/Hypershift/utils/status.js.map +1 -1
  121. package/build/cjs/cim/components/InfraEnv/EnvironmentDetails.js +4 -4
  122. package/build/cjs/cim/components/InfraEnv/EnvironmentDetails.js.map +1 -1
  123. package/build/cjs/cim/components/InfraEnv/InfraEnvHostsTabAgentsWarning.js +3 -3
  124. package/build/cjs/cim/components/InfraEnv/InfraEnvHostsTabAgentsWarning.js.map +1 -1
  125. package/build/cjs/cim/components/helpers/agentStatus.js +3 -2
  126. package/build/cjs/cim/components/helpers/agentStatus.js.map +1 -1
  127. package/build/cjs/cim/components/modals/MassDeleteAgentModal.js +2 -2
  128. package/build/cjs/cim/components/modals/MassDeleteAgentModal.js.map +1 -1
  129. package/build/cjs/common/api/assisted-service/ClustersAPI.js +3 -0
  130. package/build/cjs/common/api/assisted-service/ClustersAPI.js.map +1 -1
  131. package/build/cjs/common/components/clusterConfiguration/DiscoveryTroubleshootingModal.js +2 -1
  132. package/build/cjs/common/components/clusterConfiguration/DiscoveryTroubleshootingModal.js.map +1 -1
  133. package/build/cjs/common/components/clusterDetail/FinalizingProgress.js +8 -7
  134. package/build/cjs/common/components/clusterDetail/FinalizingProgress.js.map +1 -1
  135. package/build/cjs/common/components/clusterDetail/OperatorsProgressItem.js +4 -4
  136. package/build/cjs/common/components/clusterDetail/OperatorsProgressItem.js.map +1 -1
  137. package/build/cjs/common/components/clusterDetail/ProgressBarTexts.js +5 -4
  138. package/build/cjs/common/components/clusterDetail/ProgressBarTexts.js.map +1 -1
  139. package/build/cjs/common/components/clusterWizard/ReviewValidations.js +7 -6
  140. package/build/cjs/common/components/clusterWizard/ReviewValidations.js.map +1 -1
  141. package/build/cjs/common/components/clusterWizard/clusterDetailsValidation.js +17 -8
  142. package/build/cjs/common/components/clusterWizard/clusterDetailsValidation.js.map +1 -1
  143. package/build/cjs/common/components/hosts/HostPropertyValidationPopover.js +6 -6
  144. package/build/cjs/common/components/hosts/HostPropertyValidationPopover.js.map +1 -1
  145. package/build/cjs/common/components/hosts/HostStatus.js +2 -1
  146. package/build/cjs/common/components/hosts/HostStatus.js.map +1 -1
  147. package/build/cjs/common/components/hosts/HostValidationGroups.js +6 -6
  148. package/build/cjs/common/components/hosts/HostValidationGroups.js.map +1 -1
  149. package/build/cjs/common/components/hosts/Hostname.js +4 -3
  150. package/build/cjs/common/components/hosts/Hostname.js.map +1 -1
  151. package/build/cjs/common/components/hosts/MassChangeHostnameModal.js +2 -2
  152. package/build/cjs/common/components/hosts/MassChangeHostnameModal.js.map +1 -1
  153. package/build/cjs/common/components/hosts/VMRebootConfigurationInfo.js +2 -1
  154. package/build/cjs/common/components/hosts/VMRebootConfigurationInfo.js.map +1 -1
  155. package/build/cjs/common/components/hosts/status.js +19 -13
  156. package/build/cjs/common/components/hosts/status.js.map +1 -1
  157. package/build/cjs/common/components/storage/DisksTable.js +4 -2
  158. package/build/cjs/common/components/storage/DisksTable.js.map +1 -1
  159. package/build/cjs/common/components/storage/StorageUtils.js +3 -2
  160. package/build/cjs/common/components/storage/StorageUtils.js.map +1 -1
  161. package/build/cjs/common/components/ui/OpenShiftVersionModal.js +3 -1
  162. package/build/cjs/common/components/ui/OpenShiftVersionModal.js.map +1 -1
  163. package/build/cjs/common/components/ui/WizardFooter.js +1 -1
  164. package/build/cjs/common/components/ui/WizardFooter.js.map +1 -1
  165. package/build/cjs/common/components/ui/WizardNavItem.js +2 -2
  166. package/build/cjs/common/components/ui/WizardNavItem.js.map +1 -1
  167. package/build/cjs/common/components/ui/formik/PullSecretField.js.map +1 -1
  168. package/build/cjs/common/components/ui/formik/RemovableField.js +3 -3
  169. package/build/cjs/common/components/ui/formik/RemovableField.js.map +1 -1
  170. package/build/cjs/common/components/ui/formik/RichInputField.js +4 -4
  171. package/build/cjs/common/components/ui/formik/RichInputField.js.map +1 -1
  172. package/build/cjs/common/components/ui/formik/TextAreaField.js +1 -1
  173. package/build/cjs/common/components/ui/formik/TextAreaField.js.map +1 -1
  174. package/build/cjs/common/components/ui/index.js +1 -3
  175. package/build/cjs/common/components/ui/index.js.map +1 -1
  176. package/build/cjs/common/config/constants.js +20 -2
  177. package/build/cjs/common/config/constants.js.map +1 -1
  178. package/build/cjs/common/config/docs_links.js +3 -2
  179. package/build/cjs/common/config/docs_links.js.map +1 -1
  180. package/build/cjs/common/validationSchemas/addressValidation.js +3 -1
  181. package/build/cjs/common/validationSchemas/addressValidation.js.map +1 -1
  182. package/build/cjs/common/validationSchemas/clusterDetailsValidation.js +31 -2
  183. package/build/cjs/common/validationSchemas/clusterDetailsValidation.js.map +1 -1
  184. package/build/cjs/ocm/components/Routes.js +2 -1
  185. package/build/cjs/ocm/components/Routes.js.map +1 -1
  186. package/build/cjs/ocm/components/clusterConfiguration/DiscoveryImageTypeDropdown.js +1 -0
  187. package/build/cjs/ocm/components/clusterConfiguration/DiscoveryImageTypeDropdown.js.map +1 -1
  188. package/build/cjs/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.js +1 -7
  189. package/build/cjs/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.js.map +1 -1
  190. package/build/cjs/ocm/components/clusterConfiguration/OcmDiscoveryImageConfigForm.js +1 -1
  191. package/build/cjs/ocm/components/clusterConfiguration/OcmDiscoveryImageConfigForm.js.map +1 -1
  192. package/build/cjs/ocm/components/clusterConfiguration/OcmOperatorProgressItem.js +4 -4
  193. package/build/cjs/ocm/components/clusterConfiguration/OcmOperatorProgressItem.js.map +1 -1
  194. package/build/cjs/ocm/components/clusterConfiguration/OpenshiftVersionHelperText.js +5 -2
  195. package/build/cjs/ocm/components/clusterConfiguration/OpenshiftVersionHelperText.js.map +1 -1
  196. package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/CustomManifestsPage.js +90 -6
  197. package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/CustomManifestsPage.js.map +1 -1
  198. package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfiguration.js +3 -3
  199. package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfiguration.js.map +1 -1
  200. package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/NetworkTypeDropdown.js +68 -0
  201. package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/NetworkTypeDropdown.js.map +1 -0
  202. package/build/cjs/ocm/components/clusterConfiguration/platformIntegration/PlatformIntegrationNote.js +5 -3
  203. package/build/cjs/ocm/components/clusterConfiguration/platformIntegration/PlatformIntegrationNote.js.map +1 -1
  204. package/build/cjs/ocm/components/clusterConfiguration/review/ReviewNetworkingTable.js +1 -1
  205. package/build/cjs/ocm/components/clusterConfiguration/review/ReviewNetworkingTable.js.map +1 -1
  206. package/build/cjs/ocm/components/clusterConfiguration/review/ReviewPreflightChecks.js +11 -7
  207. package/build/cjs/ocm/components/clusterConfiguration/review/ReviewPreflightChecks.js.map +1 -1
  208. package/build/cjs/ocm/components/clusterConfiguration/staticIp/commonValidationSchemas.js +5 -2
  209. package/build/cjs/ocm/components/clusterConfiguration/staticIp/commonValidationSchemas.js.map +1 -1
  210. package/build/cjs/ocm/components/clusterConfiguration/staticIp/components/FormViewHosts/FormViewHostsFields.js +1 -1
  211. package/build/cjs/ocm/components/clusterConfiguration/staticIp/components/FormViewHosts/FormViewHostsFields.js.map +1 -1
  212. package/build/cjs/ocm/components/clusterConfiguration/staticIp/components/FormViewNetworkWide/FormViewNetworkWide.js +1 -1
  213. package/build/cjs/ocm/components/clusterConfiguration/staticIp/components/FormViewNetworkWide/FormViewNetworkWide.js.map +1 -1
  214. package/build/cjs/ocm/components/clusterConfiguration/staticIp/components/FormViewNetworkWide/formViewNetworkWideValidationSchema.js +31 -3
  215. package/build/cjs/ocm/components/clusterConfiguration/staticIp/components/FormViewNetworkWide/formViewNetworkWideValidationSchema.js.map +1 -1
  216. package/build/cjs/ocm/components/clusterDetail/ClusterProperties.js +1 -5
  217. package/build/cjs/ocm/components/clusterDetail/ClusterProperties.js.map +1 -1
  218. package/build/cjs/ocm/components/clusterDetail/HostInventoryExpandable.js +5 -4
  219. package/build/cjs/ocm/components/clusterDetail/HostInventoryExpandable.js.map +1 -1
  220. package/build/cjs/ocm/components/clusterDetail/OpenShiftVersionDetail.js +4 -3
  221. package/build/cjs/ocm/components/clusterDetail/OpenShiftVersionDetail.js.map +1 -1
  222. package/build/cjs/ocm/components/clusterDetail/ResetClusterModal.js +4 -2
  223. package/build/cjs/ocm/components/clusterDetail/ResetClusterModal.js.map +1 -1
  224. package/build/cjs/ocm/components/clusterWizard/ClusterDetails.js +18 -10
  225. package/build/cjs/ocm/components/clusterWizard/ClusterDetails.js.map +1 -1
  226. package/build/cjs/ocm/components/clusterWizard/ClusterDetailsForm.js +4 -5
  227. package/build/cjs/ocm/components/clusterWizard/ClusterDetailsForm.js.map +1 -1
  228. package/build/cjs/ocm/components/clusterWizard/ClusterWizardContext.js.map +1 -1
  229. package/build/cjs/ocm/components/clusterWizard/ClusterWizardContextProvider.js +70 -28
  230. package/build/cjs/ocm/components/clusterWizard/ClusterWizardContextProvider.js.map +1 -1
  231. package/build/cjs/ocm/components/clusterWizard/ClusterWizardFooter.js +21 -6
  232. package/build/cjs/ocm/components/clusterWizard/ClusterWizardFooter.js.map +1 -1
  233. package/build/cjs/ocm/components/clusterWizard/NewClusterWizard.js +11 -1
  234. package/build/cjs/ocm/components/clusterWizard/NewClusterWizard.js.map +1 -1
  235. package/build/cjs/ocm/components/clusterWizard/constants.js +2 -0
  236. package/build/cjs/ocm/components/clusterWizard/constants.js.map +1 -1
  237. package/build/cjs/ocm/components/clusterWizard/disconnected/BasicStep.js +96 -18
  238. package/build/cjs/ocm/components/clusterWizard/disconnected/BasicStep.js.map +1 -1
  239. package/build/cjs/ocm/components/clusterWizard/disconnected/DisconnectedStaticIp.js +48 -0
  240. package/build/cjs/ocm/components/clusterWizard/disconnected/DisconnectedStaticIp.js.map +1 -0
  241. package/build/cjs/ocm/components/clusterWizard/disconnected/OptionalConfigurationsStep.js +182 -0
  242. package/build/cjs/ocm/components/clusterWizard/disconnected/OptionalConfigurationsStep.js.map +1 -0
  243. package/build/cjs/ocm/components/clusterWizard/disconnected/ReviewStep.js +11 -7
  244. package/build/cjs/ocm/components/clusterWizard/disconnected/ReviewStep.js.map +1 -1
  245. package/build/cjs/ocm/components/clusterWizard/index.js +3 -1
  246. package/build/cjs/ocm/components/clusterWizard/index.js.map +1 -1
  247. package/build/cjs/ocm/components/clusterWizard/wizardTransition.js +12 -1
  248. package/build/cjs/ocm/components/clusterWizard/wizardTransition.js.map +1 -1
  249. package/build/cjs/ocm/components/clusters/ClusterStatus.js +13 -7
  250. package/build/cjs/ocm/components/clusters/ClusterStatus.js.map +1 -1
  251. package/build/cjs/ocm/components/featureSupportLevels/ReviewClusterFeatureSupportLevels.js +7 -6
  252. package/build/cjs/ocm/components/featureSupportLevels/ReviewClusterFeatureSupportLevels.js.map +1 -1
  253. package/build/cjs/ocm/components/featureSupportLevels/featureStateUtils.js +6 -0
  254. package/build/cjs/ocm/components/featureSupportLevels/featureStateUtils.js.map +1 -1
  255. package/build/cjs/ocm/components/ui/InfoLinkWithModal.js +2 -2
  256. package/build/cjs/ocm/components/ui/InfoLinkWithModal.js.map +1 -1
  257. package/build/cjs/ocm/components/utils.js +4 -1
  258. package/build/cjs/ocm/components/utils.js.map +1 -1
  259. package/build/cjs/ocm/hooks/useInfraEnvId.js +2 -2
  260. package/build/cjs/ocm/hooks/useInfraEnvId.js.map +1 -1
  261. package/build/cjs/ocm/hooks/useUISettings.js +0 -1
  262. package/build/cjs/ocm/hooks/useUISettings.js.map +1 -1
  263. package/build/cjs/ocm/services/ClusterDetailsService.js +2 -2
  264. package/build/cjs/ocm/services/ClusterDetailsService.js.map +1 -1
  265. package/build/cjs/ocm/services/ClustersService.js +6 -0
  266. package/build/cjs/ocm/services/ClustersService.js.map +1 -1
  267. package/build/cjs/ocm/services/InfraEnvsService.js +4 -1
  268. package/build/cjs/ocm/services/InfraEnvsService.js.map +1 -1
  269. package/lib/cim/components/Agent/BMHStatusInfo.tsx +12 -4
  270. package/lib/cim/components/Agent/MinimalHWRequirements.tsx +4 -2
  271. package/lib/cim/components/Hypershift/DetailsPage/ConditionsTable.tsx +13 -7
  272. package/lib/cim/components/Hypershift/DetailsPage/HostedClusterProgress.tsx +8 -4
  273. package/lib/cim/components/Hypershift/DetailsPage/NodePoolsProgress.tsx +6 -2
  274. package/lib/cim/components/Hypershift/utils/status.tsx +20 -9
  275. package/lib/cim/components/InfraEnv/EnvironmentDetails.tsx +11 -4
  276. package/lib/cim/components/InfraEnv/InfraEnvHostsTabAgentsWarning.tsx +4 -6
  277. package/lib/cim/components/helpers/agentStatus.tsx +7 -3
  278. package/lib/cim/components/modals/MassDeleteAgentModal.tsx +12 -5
  279. package/lib/common/api/assisted-service/ClustersAPI.ts +6 -0
  280. package/lib/common/components/clusterConfiguration/DiscoveryTroubleshootingModal.tsx +5 -2
  281. package/lib/common/components/clusterDetail/FinalizingProgress.tsx +21 -10
  282. package/lib/common/components/clusterDetail/OperatorsProgressItem.tsx +11 -5
  283. package/lib/common/components/clusterDetail/ProgressBarTexts.tsx +17 -5
  284. package/lib/common/components/clusterWizard/ReviewValidations.tsx +15 -6
  285. package/lib/common/components/clusterWizard/clusterDetailsValidation.ts +19 -9
  286. package/lib/common/components/hosts/HostPropertyValidationPopover.tsx +9 -5
  287. package/lib/common/components/hosts/HostStatus.tsx +14 -3
  288. package/lib/common/components/hosts/HostValidationGroups.tsx +9 -5
  289. package/lib/common/components/hosts/Hostname.tsx +7 -4
  290. package/lib/common/components/hosts/MassChangeHostnameModal.tsx +6 -2
  291. package/lib/common/components/hosts/VMRebootConfigurationInfo.tsx +12 -3
  292. package/lib/common/components/hosts/status.tsx +46 -13
  293. package/lib/common/components/storage/DisksTable.tsx +15 -4
  294. package/lib/common/components/storage/StorageUtils.tsx +6 -4
  295. package/lib/common/components/ui/OpenShiftVersionModal.tsx +3 -1
  296. package/lib/common/components/ui/WizardFooter.tsx +1 -1
  297. package/lib/common/components/ui/WizardNavItem.tsx +4 -7
  298. package/lib/common/components/ui/formik/PullSecretField.tsx +1 -0
  299. package/lib/common/components/ui/formik/RemovableField.tsx +8 -4
  300. package/lib/common/components/ui/formik/RichInputField.tsx +10 -6
  301. package/lib/common/components/ui/formik/TextAreaField.tsx +1 -1
  302. package/lib/common/components/ui/index.ts +0 -2
  303. package/lib/common/config/constants.ts +19 -0
  304. package/lib/common/config/docs_links.ts +2 -0
  305. package/lib/common/types/ui-settings.ts +0 -1
  306. package/lib/common/validationSchemas/addressValidation.tsx +4 -1
  307. package/lib/common/validationSchemas/clusterDetailsValidation.tsx +47 -15
  308. package/lib/ocm/components/Routes.tsx +3 -1
  309. package/lib/ocm/components/clusterConfiguration/DiscoveryImageTypeDropdown.tsx +1 -0
  310. package/lib/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.tsx +1 -8
  311. package/lib/ocm/components/clusterConfiguration/OcmDiscoveryImageConfigForm.tsx +2 -3
  312. package/lib/ocm/components/clusterConfiguration/OcmOperatorProgressItem.tsx +11 -5
  313. package/lib/ocm/components/clusterConfiguration/OpenshiftVersionHelperText.tsx +8 -7
  314. package/lib/ocm/components/clusterConfiguration/manifestsConfiguration/CustomManifestsPage.tsx +155 -20
  315. package/lib/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfiguration.tsx +8 -6
  316. package/lib/ocm/components/clusterConfiguration/networkConfiguration/NetworkTypeDropdown.tsx +157 -0
  317. package/lib/ocm/components/clusterConfiguration/platformIntegration/PlatformIntegrationNote.tsx +6 -3
  318. package/lib/ocm/components/clusterConfiguration/review/ReviewNetworkingTable.tsx +3 -7
  319. package/lib/ocm/components/clusterConfiguration/review/ReviewPreflightChecks.tsx +28 -15
  320. package/lib/ocm/components/clusterConfiguration/staticIp/commonValidationSchemas.tsx +8 -2
  321. package/lib/ocm/components/clusterConfiguration/staticIp/components/FormViewHosts/FormViewHostsFields.tsx +1 -0
  322. package/lib/ocm/components/clusterConfiguration/staticIp/components/FormViewNetworkWide/FormViewNetworkWide.tsx +2 -2
  323. package/lib/ocm/components/clusterConfiguration/staticIp/components/FormViewNetworkWide/formViewNetworkWideValidationSchema.tsx +63 -24
  324. package/lib/ocm/components/clusterDetail/ClusterProperties.tsx +2 -6
  325. package/lib/ocm/components/clusterDetail/HostInventoryExpandable.tsx +11 -5
  326. package/lib/ocm/components/clusterDetail/OpenShiftVersionDetail.tsx +8 -5
  327. package/lib/ocm/components/clusterDetail/ResetClusterModal.tsx +6 -3
  328. package/lib/ocm/components/clusterWizard/ClusterDetails.tsx +19 -14
  329. package/lib/ocm/components/clusterWizard/ClusterDetailsForm.tsx +5 -7
  330. package/lib/ocm/components/clusterWizard/ClusterWizardContext.tsx +3 -2
  331. package/lib/ocm/components/clusterWizard/ClusterWizardContextProvider.tsx +101 -59
  332. package/lib/ocm/components/clusterWizard/ClusterWizardFooter.tsx +26 -5
  333. package/lib/ocm/components/clusterWizard/NewClusterWizard.tsx +14 -3
  334. package/lib/ocm/components/clusterWizard/constants.ts +2 -0
  335. package/lib/ocm/components/clusterWizard/disconnected/BasicStep.tsx +138 -37
  336. package/lib/ocm/components/clusterWizard/disconnected/DisconnectedStaticIp.tsx +78 -0
  337. package/lib/ocm/components/clusterWizard/disconnected/OptionalConfigurationsStep.tsx +364 -0
  338. package/lib/ocm/components/clusterWizard/disconnected/ReviewStep.tsx +19 -9
  339. package/lib/ocm/components/clusterWizard/index.ts +1 -0
  340. package/lib/ocm/components/clusterWizard/wizardTransition.ts +14 -2
  341. package/lib/ocm/components/clusters/ClusterStatus.tsx +30 -8
  342. package/lib/ocm/components/featureSupportLevels/ReviewClusterFeatureSupportLevels.tsx +12 -8
  343. package/lib/ocm/components/featureSupportLevels/featureStateUtils.ts +6 -0
  344. package/lib/ocm/components/ui/InfoLinkWithModal.tsx +4 -2
  345. package/lib/ocm/components/utils.ts +4 -0
  346. package/lib/ocm/hooks/useInfraEnvId.ts +2 -2
  347. package/lib/ocm/hooks/useUISettings.ts +0 -1
  348. package/lib/ocm/services/ClusterDetailsService.ts +0 -3
  349. package/lib/ocm/services/ClustersService.ts +6 -0
  350. package/lib/ocm/services/InfraEnvsService.ts +4 -1
  351. package/lib/ocm/services/types.ts +0 -1
  352. package/package.json +4 -4
  353. package/build/@types/common/components/ui/UiIcon.d.ts +0 -11
  354. package/build/@types/common/components/ui/UiIcon.d.ts.map +0 -1
  355. package/build/@types/ocm/components/clusterConfiguration/CustomManifestCheckbox.d.ts +0 -8
  356. package/build/@types/ocm/components/clusterConfiguration/CustomManifestCheckbox.d.ts.map +0 -1
  357. package/build/cjs/common/components/ui/UiIcon.js +0 -11
  358. package/build/cjs/common/components/ui/UiIcon.js.map +0 -1
  359. package/build/cjs/ocm/components/clusterConfiguration/CustomManifestCheckbox.js +0 -58
  360. package/build/cjs/ocm/components/clusterConfiguration/CustomManifestCheckbox.js.map +0 -1
  361. package/lib/common/components/ui/UiIcon.tsx +0 -21
  362. package/lib/ocm/components/clusterConfiguration/CustomManifestCheckbox.tsx +0 -114
@@ -3,6 +3,7 @@ import { HostsNetworkConfigurationType } from '../../services';
3
3
  import { StaticIpView } from '../clusterConfiguration/staticIp/data/dataTypes';
4
4
  import { ClusterWizardStepsType } from './wizardTransition';
5
5
  import { UISettingsValues } from '../../../common';
6
+ import { InfraEnv } from '@openshift-assisted/types/assisted-installer-service';
6
7
 
7
8
  export type ClusterWizardContextType = {
8
9
  currentStepId: ClusterWizardStepsType;
@@ -12,14 +13,14 @@ export type ClusterWizardContextType = {
12
13
  wizardStepIds: ClusterWizardStepsType[];
13
14
  onUpdateStaticIpView(view: StaticIpView): void;
14
15
  onUpdateHostNetworkConfigType(type: HostsNetworkConfigurationType): void;
15
- setCustomManifestsStep(addCustomManifest: boolean): void;
16
- customManifestsStep: boolean;
17
16
  wizardPerPage: number;
18
17
  setWizardPerPage: (perPage: number) => void;
19
18
  updateUISettings: (data: UISettingsValues) => Promise<void>;
20
19
  uiSettings?: UISettingsValues;
21
20
  installDisconnected: boolean;
22
21
  setInstallDisconnected: (enabled: boolean) => void;
22
+ disconnectedInfraEnv?: InfraEnv;
23
+ setDisconnectedInfraEnv: (infraEnv: InfraEnv | undefined) => void;
23
24
  };
24
25
 
25
26
  export const ClusterWizardContext = React.createContext<ClusterWizardContextType | null>(null);
@@ -19,6 +19,7 @@ import { Cluster, InfraEnv } from '@openshift-assisted/types/assisted-installer-
19
19
  import { useUISettings } from '../../hooks';
20
20
  import { AlertVariant } from '@patternfly/react-core';
21
21
  import { useFeature } from '../../hooks/use-feature';
22
+ import { isOciPlatformType, isThirdPartyCNI } from '../utils';
22
23
 
23
24
  const addStepToClusterWizard = (
24
25
  wizardStepIds: ClusterWizardStepsType[],
@@ -50,7 +51,7 @@ const removeStepFromClusterWizard = (
50
51
  const getWizardStepIds = (
51
52
  wizardStepIds: ClusterWizardStepsType[] | undefined,
52
53
  staticIpView?: StaticIpView | 'dhcp-selected',
53
- customManifestsStep?: boolean,
54
+
54
55
  isSingleClusterFeatureEnabled?: boolean,
55
56
  ): ClusterWizardStepsType[] => {
56
57
  let stepsCopy = wizardStepIds ? [...wizardStepIds] : [...defaultWizardSteps];
@@ -64,11 +65,6 @@ const getWizardStepIds = (
64
65
  stepsCopy = removeStepFromClusterWizard(stepsCopy, 'static-ip-network-wide-configurations', 2);
65
66
  }
66
67
 
67
- if (customManifestsStep) {
68
- stepsCopy = addStepToClusterWizard(stepsCopy, 'networking', ['custom-manifests']);
69
- } else {
70
- stepsCopy = removeStepFromClusterWizard(stepsCopy, 'custom-manifests', 1);
71
- }
72
68
  if (isSingleClusterFeatureEnabled) {
73
69
  stepsCopy = addStepToClusterWizard(stepsCopy, 'networking', ['credentials-download']);
74
70
  }
@@ -76,6 +72,33 @@ const getWizardStepIds = (
76
72
  return stepsCopy;
77
73
  };
78
74
 
75
+ // Same logic as getWizardStepIds but for disconnected flow
76
+ // Adds static IP steps after 'disconnected-optional-configurations' instead of 'cluster-details'
77
+ const getDisconnectedWizardStepIds = (
78
+ wizardStepIds: ClusterWizardStepsType[] | undefined,
79
+ staticIpView?: StaticIpView | 'dhcp-selected',
80
+ ): ClusterWizardStepsType[] => {
81
+ let stepsCopy = wizardStepIds ? [...wizardStepIds] : [...disconnectedSteps];
82
+ if (staticIpView === StaticIpView.YAML) {
83
+ stepsCopy = removeStepFromClusterWizard(stepsCopy, 'static-ip-network-wide-configurations', 2);
84
+ stepsCopy = addStepToClusterWizard(stepsCopy, 'disconnected-optional-configurations', [
85
+ 'static-ip-yaml-view',
86
+ ]);
87
+ } else if (staticIpView === StaticIpView.FORM) {
88
+ stepsCopy = removeStepFromClusterWizard(stepsCopy, 'static-ip-yaml-view', 1);
89
+ stepsCopy = addStepToClusterWizard(
90
+ stepsCopy,
91
+ 'disconnected-optional-configurations',
92
+ staticIpFormViewSubSteps,
93
+ );
94
+ } else if (staticIpView === 'dhcp-selected') {
95
+ stepsCopy = removeStepFromClusterWizard(stepsCopy, 'static-ip-network-wide-configurations', 2);
96
+ stepsCopy = removeStepFromClusterWizard(stepsCopy, 'static-ip-yaml-view', 1);
97
+ }
98
+
99
+ return stepsCopy;
100
+ };
101
+
79
102
  const ClusterWizardContextProvider = ({
80
103
  children,
81
104
  cluster,
@@ -89,9 +112,13 @@ const ClusterWizardContextProvider = ({
89
112
  const isSingleClusterFeatureEnabled = useFeature('ASSISTED_INSTALLER_SINGLE_CLUSTER_FEATURE');
90
113
  const [currentStepId, setCurrentStepId] = React.useState<ClusterWizardStepsType>();
91
114
  const [connectedWizardStepIds, setWizardStepIds] = React.useState<ClusterWizardStepsType[]>();
115
+ const [disconnectedWizardStepIds, setDisconnectedWizardStepIds] =
116
+ React.useState<ClusterWizardStepsType[]>(disconnectedSteps);
92
117
  const [wizardPerPage, setWizardPerPage] = React.useState(10);
93
- const [customManifestsStep, setCustomManifestsStep] = React.useState<boolean>(false);
94
118
  const [installDisconnected, setInstallDisconnected] = React.useState(false);
119
+ const [disconnectedInfraEnv, setDisconnectedInfraEnv] = React.useState<InfraEnv | undefined>(
120
+ infraEnv,
121
+ );
95
122
  const location = useLocation();
96
123
  const locationState = location.state as ClusterWizardFlowStateType | undefined;
97
124
  const {
@@ -103,15 +130,18 @@ const ClusterWizardContextProvider = ({
103
130
  const { clearAlerts, addAlert, alerts } = useAlerts();
104
131
  const setClusterPermissions = useSetClusterPermissions();
105
132
 
106
- const wizardStepIds = installDisconnected ? disconnectedSteps : connectedWizardStepIds;
133
+ const wizardStepIds = installDisconnected ? disconnectedWizardStepIds : connectedWizardStepIds;
107
134
 
108
135
  React.useEffect(() => {
109
136
  if (!UISettingsLoading) {
110
137
  const staticIpInfo = infraEnv ? getStaticIpInfo(infraEnv) : undefined;
111
- const customManifestsStepEnabled = !!uiSettings?.addCustomManifests;
112
- const customManifestsStepNeedsToBeFilled = !!(
113
- uiSettings?.addCustomManifests && !uiSettings?.customManifestsAdded
114
- );
138
+ let customManifestsRequired = false;
139
+ if (cluster) {
140
+ customManifestsRequired =
141
+ isThirdPartyCNI(cluster.networkType) || isOciPlatformType(cluster);
142
+ }
143
+ const customManifestsStepNeedsToBeFilled =
144
+ customManifestsRequired && !uiSettings?.customManifestsAdded;
115
145
 
116
146
  const requiredStepId = getClusterWizardFirstStep(
117
147
  locationState,
@@ -120,11 +150,10 @@ const ClusterWizardContextProvider = ({
120
150
  cluster?.hosts,
121
151
  customManifestsStepNeedsToBeFilled,
122
152
  );
123
-
124
153
  const firstStepIds = getWizardStepIds(
125
154
  wizardStepIds,
126
155
  staticIpInfo?.view,
127
- customManifestsStepEnabled,
156
+
128
157
  isSingleClusterFeatureEnabled,
129
158
  );
130
159
 
@@ -138,7 +167,6 @@ const ClusterWizardContextProvider = ({
138
167
 
139
168
  setWizardStepIds(firstStepIds);
140
169
  setClusterPermissions(cluster, permissions);
141
- setCustomManifestsStep(!!uiSettings?.addCustomManifests);
142
170
  }
143
171
 
144
172
  if (
@@ -162,17 +190,29 @@ const ClusterWizardContextProvider = ({
162
190
 
163
191
  const handleMoveFromStaticIp = () => {
164
192
  //if static ip view change wasn't persisted, moving from static ip step should change the wizard steps to match the view in the infra env
165
- const staticIpInfo = infraEnv ? getStaticIpInfo(infraEnv) : undefined;
193
+ const currentInfraEnv = installDisconnected ? disconnectedInfraEnv : infraEnv;
194
+ const staticIpInfo = currentInfraEnv ? getStaticIpInfo(currentInfraEnv) : undefined;
166
195
  if (!staticIpInfo) {
167
196
  throw `Wizard step is currently ${currentStepId}, but no static ip info is defined`;
168
197
  }
169
- const newStepIds = getWizardStepIds(
170
- wizardStepIds,
171
- staticIpInfo.view,
172
- customManifestsStep,
173
- isSingleClusterFeatureEnabled,
174
- );
175
- setWizardStepIds(newStepIds);
198
+
199
+ if (installDisconnected) {
200
+ // For disconnected wizard, update wizard steps directly (same pattern as connected)
201
+ const newStepIds = getDisconnectedWizardStepIds(
202
+ disconnectedWizardStepIds,
203
+ staticIpInfo.view,
204
+ );
205
+ setDisconnectedWizardStepIds(newStepIds);
206
+ } else {
207
+ // For connected wizard, update wizard steps directly
208
+ const newStepIds = getWizardStepIds(
209
+ wizardStepIds,
210
+ staticIpInfo.view,
211
+
212
+ isSingleClusterFeatureEnabled,
213
+ );
214
+ setWizardStepIds(newStepIds);
215
+ }
176
216
  };
177
217
 
178
218
  const onSetCurrentStepId = (stepId: ClusterWizardStepsType) => {
@@ -183,18 +223,6 @@ const ClusterWizardContextProvider = ({
183
223
  setCurrentStepId(stepId);
184
224
  };
185
225
 
186
- const onSetAddCustomManifestsStep = (addCustomManifest: boolean) => {
187
- setCustomManifestsStep(addCustomManifest);
188
- setWizardStepIds(
189
- getWizardStepIds(
190
- wizardStepIds,
191
- undefined,
192
- addCustomManifest,
193
- isSingleClusterFeatureEnabled,
194
- ),
195
- );
196
- };
197
-
198
226
  return {
199
227
  moveBack(): void {
200
228
  clearAlerts();
@@ -216,36 +244,48 @@ const ClusterWizardContextProvider = ({
216
244
  } else {
217
245
  setCurrentStepId('static-ip-network-wide-configurations');
218
246
  }
219
- setWizardStepIds(
220
- getWizardStepIds(wizardStepIds, view, customManifestsStep, isSingleClusterFeatureEnabled),
221
- );
247
+ if (installDisconnected) {
248
+ // For disconnected wizard, update wizard steps (same pattern as connected)
249
+ setDisconnectedWizardStepIds(
250
+ getDisconnectedWizardStepIds(disconnectedWizardStepIds, view),
251
+ );
252
+ } else {
253
+ setWizardStepIds(getWizardStepIds(wizardStepIds, view, isSingleClusterFeatureEnabled));
254
+ }
222
255
  },
223
256
  onUpdateHostNetworkConfigType(type: HostsNetworkConfigurationType): void {
224
- if (type === HostsNetworkConfigurationType.STATIC) {
225
- setWizardStepIds(
226
- getWizardStepIds(
227
- wizardStepIds,
228
- StaticIpView.FORM,
229
- customManifestsStep,
230
- isSingleClusterFeatureEnabled,
231
- ),
232
- );
257
+ if (installDisconnected) {
258
+ // For disconnected wizard, update wizard steps (same pattern as connected)
259
+ if (type === HostsNetworkConfigurationType.STATIC) {
260
+ setDisconnectedWizardStepIds(
261
+ getDisconnectedWizardStepIds(disconnectedWizardStepIds, StaticIpView.FORM),
262
+ );
263
+ } else {
264
+ setDisconnectedWizardStepIds(
265
+ getDisconnectedWizardStepIds(disconnectedWizardStepIds, 'dhcp-selected'),
266
+ );
267
+ }
233
268
  } else {
234
- setWizardStepIds(
235
- getWizardStepIds(
236
- wizardStepIds,
237
- 'dhcp-selected',
238
- customManifestsStep,
239
- isSingleClusterFeatureEnabled,
240
- ),
241
- );
269
+ // For connected wizard, update wizard steps directly
270
+ if (type === HostsNetworkConfigurationType.STATIC) {
271
+ setWizardStepIds(
272
+ getWizardStepIds(
273
+ wizardStepIds,
274
+ StaticIpView.FORM,
275
+
276
+ isSingleClusterFeatureEnabled,
277
+ ),
278
+ );
279
+ } else {
280
+ setWizardStepIds(
281
+ getWizardStepIds(wizardStepIds, 'dhcp-selected', isSingleClusterFeatureEnabled),
282
+ );
283
+ }
242
284
  }
243
285
  },
244
286
  wizardStepIds: wizardStepIds,
245
287
  currentStepId,
246
288
  setCurrentStepId: onSetCurrentStepId,
247
- customManifestsStep,
248
- setCustomManifestsStep: onSetAddCustomManifestsStep,
249
289
  wizardPerPage,
250
290
  setWizardPerPage,
251
291
  uiSettings,
@@ -259,20 +299,22 @@ const ClusterWizardContextProvider = ({
259
299
  connectedWizardStepIds?.length && onSetCurrentStepId(connectedWizardStepIds[0]);
260
300
  }
261
301
  },
302
+ disconnectedInfraEnv,
303
+ setDisconnectedInfraEnv,
262
304
  };
263
305
  }, [
264
306
  wizardStepIds,
265
307
  currentStepId,
266
308
  infraEnv,
267
- customManifestsStep,
268
309
  wizardPerPage,
269
310
  isSingleClusterFeatureEnabled,
270
311
  clearAlerts,
271
312
  uiSettings,
272
313
  updateUISettings,
273
314
  installDisconnected,
274
- setInstallDisconnected,
275
315
  connectedWizardStepIds,
316
+ disconnectedWizardStepIds,
317
+ disconnectedInfraEnv,
276
318
  ]);
277
319
 
278
320
  if (!contextValue) {
@@ -17,6 +17,8 @@ import { onFetchEvents } from '../fetching/fetchEvents';
17
17
  import { Cluster } from '@openshift-assisted/types/assisted-installer-service';
18
18
  import { useFeature } from '../../hooks/use-feature';
19
19
  import { useModalDialogsContext } from '../hosts/ModalDialogsContext';
20
+ import ClustersService from '../../services/ClustersService';
21
+ import { handleApiError, getApiErrorMessage } from '../../../common/api';
20
22
 
21
23
  type ClusterValidationSectionProps = {
22
24
  cluster?: Cluster;
@@ -71,6 +73,7 @@ type ClusterWizardFooterProps = WizardFooterGenericProps & {
71
73
  errorFields?: string[];
72
74
  alertTitle?: string;
73
75
  alertContent?: string | null;
76
+ disconnectedClusterId?: string;
74
77
  };
75
78
 
76
79
  const ClusterWizardFooter = ({
@@ -80,19 +83,37 @@ const ClusterWizardFooter = ({
80
83
  alertTitle,
81
84
  alertContent,
82
85
  onCancel,
86
+ disconnectedClusterId,
83
87
  ...rest
84
88
  }: ClusterWizardFooterProps) => {
85
- const { alerts } = useAlerts();
89
+ const { alerts, addAlert } = useAlerts();
86
90
  const navigate = useNavigate();
87
91
  const isSingleClusterFeatureEnabled = useFeature('ASSISTED_INSTALLER_SINGLE_CLUSTER_FEATURE');
88
92
  const { currentStepId } = useClusterWizardContext();
89
93
  const { resetSingleClusterDialog } = useModalDialogsContext();
94
+ const { setDisconnectedInfraEnv } = useClusterWizardContext();
90
95
 
91
- const handleCancel = React.useCallback(() => navigate('/cluster-list'), [navigate]);
96
+ const handleCancel = React.useCallback(async () => {
97
+ if (disconnectedClusterId) {
98
+ try {
99
+ await ClustersService.remove(disconnectedClusterId);
100
+ } catch (e) {
101
+ handleApiError(e, () =>
102
+ addAlert({
103
+ title: 'Failed to remove cluster',
104
+ message: getApiErrorMessage(e),
105
+ }),
106
+ );
107
+ }
108
+ }
109
+ setDisconnectedInfraEnv(undefined);
110
+ navigate('/cluster-list');
111
+ }, [navigate, setDisconnectedInfraEnv, addAlert, disconnectedClusterId]);
92
112
 
93
- const handleReset = React.useCallback(() => {
94
- resetSingleClusterDialog.open({ cluster });
95
- }, [resetSingleClusterDialog, cluster]);
113
+ const handleReset = React.useCallback(
114
+ () => resetSingleClusterDialog.open({ cluster }),
115
+ [resetSingleClusterDialog, cluster],
116
+ );
96
117
 
97
118
  const alertsSection = alerts.length ? <Alerts /> : undefined;
98
119
 
@@ -4,7 +4,10 @@ import ClusterDetails from './ClusterDetails';
4
4
  import { useClusterWizardContext } from './ClusterWizardContext';
5
5
  import ReviewStep from './disconnected/ReviewStep';
6
6
  import BasicStep from './disconnected/BasicStep';
7
+ import OptionalConfigurationsStep from './disconnected/OptionalConfigurationsStep';
8
+ import DisconnectedStaticIp from './disconnected/DisconnectedStaticIp';
7
9
  import { ClusterWizardStepsType } from './wizardTransition';
10
+ import { ModalDialogsContextProvider } from '../hosts/ModalDialogsContext';
8
11
 
9
12
  const getCurrentStep = (currentStepId: ClusterWizardStepsType) => {
10
13
  switch (currentStepId) {
@@ -12,6 +15,12 @@ const getCurrentStep = (currentStepId: ClusterWizardStepsType) => {
12
15
  return <ReviewStep />;
13
16
  case 'disconnected-basic':
14
17
  return <BasicStep />;
18
+ case 'disconnected-optional-configurations':
19
+ return <OptionalConfigurationsStep />;
20
+ case 'static-ip-yaml-view':
21
+ case 'static-ip-network-wide-configurations':
22
+ case 'static-ip-host-configurations':
23
+ return <DisconnectedStaticIp />;
15
24
  default:
16
25
  return <ClusterDetails />;
17
26
  }
@@ -20,9 +29,11 @@ const getCurrentStep = (currentStepId: ClusterWizardStepsType) => {
20
29
  const NewClusterWizard: React.FC = () => {
21
30
  const { currentStepId } = useClusterWizardContext();
22
31
  return (
23
- <div className={classNames('pf-v6-c-wizard', 'cluster-wizard')}>
24
- {getCurrentStep(currentStepId)}
25
- </div>
32
+ <ModalDialogsContextProvider>
33
+ <div className={classNames('pf-v6-c-wizard', 'cluster-wizard')}>
34
+ {getCurrentStep(currentStepId)}
35
+ </div>
36
+ </ModalDialogsContextProvider>
26
37
  );
27
38
  };
28
39
 
@@ -14,6 +14,7 @@ export const wizardStepNames: { [key in ClusterWizardStepsType]: string } = {
14
14
  'credentials-download': 'Download credentials',
15
15
  'disconnected-review': 'Review and download ISO',
16
16
  'disconnected-basic': 'Basic information',
17
+ 'disconnected-optional-configurations': 'Optional configurations',
17
18
  };
18
19
 
19
20
  export const defaultWizardSteps: ClusterWizardStepsType[] = [
@@ -22,6 +23,7 @@ export const defaultWizardSteps: ClusterWizardStepsType[] = [
22
23
  'host-discovery',
23
24
  'storage',
24
25
  'networking',
26
+ 'custom-manifests',
25
27
  'review',
26
28
  ];
27
29
 
@@ -7,61 +7,162 @@ import {
7
7
  StaticTextField,
8
8
  useTranslation,
9
9
  } from '../../../../common';
10
- import { Flex, Grid, GridItem, Form, Content } from '@patternfly/react-core';
10
+ import { Flex, Grid, GridItem, Form, Content, Spinner } from '@patternfly/react-core';
11
11
  import OcmOpenShiftVersion from '../../clusterConfiguration/OcmOpenShiftVersion';
12
12
  import { useClusterWizardContext } from '../ClusterWizardContext';
13
13
  import ClusterWizardFooter from '../ClusterWizardFooter';
14
14
  import ClusterWizardNavigation from '../ClusterWizardNavigation';
15
15
  import { WithErrorBoundary } from '../../../../common/components/ErrorHandling/WithErrorBoundary';
16
16
  import InstallDisconnectedSwitch from './InstallDisconnectedSwitch';
17
- import { Formik } from 'formik';
17
+ import { Formik, useFormikContext } from 'formik';
18
+ import ClustersService from '../../../services/ClustersService';
19
+ import { handleApiError, getApiErrorMessage } from '../../../../common/api';
20
+ import { useAlerts } from '../../../../common/components/AlertsContextProvider';
21
+ import { AlertVariant } from '@patternfly/react-core';
22
+ import { ClusterWizardFlowStateNew } from '../wizardTransition';
23
+ import { useLocation, useNavigate, useParams } from 'react-router-dom-v5-compat';
24
+ import { AxiosResponse } from 'axios';
25
+ import { Cluster } from '@openshift-assisted/types/assisted-installer-service';
26
+ import OcmOpenShiftVersionSelect from '../../clusterConfiguration/OcmOpenShiftVersionSelect';
18
27
 
19
- const BasicStep = () => {
28
+ type BasicStepFormikValues = {
29
+ openshiftVersion: string;
30
+ customOpenshiftSelect: string | null;
31
+ };
32
+
33
+ const BasicStepForm = () => {
34
+ const { clusterId } = useParams<{ clusterId: string }>();
35
+ const [isLoading, setIsLoading] = React.useState(true);
36
+ const [cluster, setCluster] = React.useState<Cluster>();
37
+
38
+ const { values } = useFormikContext<BasicStepFormikValues>();
20
39
  const { t } = useTranslation();
21
40
  const { moveNext } = useClusterWizardContext();
41
+ const { addAlert } = useAlerts();
42
+ const [isSubmitting, setIsSubmitting] = React.useState(false);
43
+ const navigate = useNavigate();
44
+ const location = useLocation();
45
+ const currentPath = location.pathname;
46
+
47
+ React.useEffect(() => {
48
+ if (!clusterId) {
49
+ setIsLoading(false);
50
+ } else {
51
+ void (async () => {
52
+ setIsLoading(true);
53
+ try {
54
+ setCluster(await ClustersService.get(clusterId));
55
+ } catch (error) {
56
+ handleApiError(error, () => {
57
+ addAlert({
58
+ title: 'Failed to fetch disconnected cluster',
59
+ message: getApiErrorMessage(error),
60
+ variant: AlertVariant.danger,
61
+ });
62
+ });
63
+ } finally {
64
+ setIsLoading(false);
65
+ }
66
+ })();
67
+ }
68
+ }, [clusterId, addAlert]);
69
+
70
+ const createCluster = async () => {
71
+ try {
72
+ setIsSubmitting(true);
73
+ // Create cluster only - infraEnv will be created in OptionalConfigurationsStep
74
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
75
+ const { data: disconnectedCluster }: AxiosResponse<Cluster> =
76
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call
77
+ await ClustersService.registerDisconnected({
78
+ name: 'disconnected-cluster',
79
+ openshiftVersion: values.openshiftVersion,
80
+ });
81
+ navigate(`${currentPath}/${disconnectedCluster.id}`, {
82
+ state: ClusterWizardFlowStateNew,
83
+ });
84
+ moveNext();
85
+ } catch (error: unknown) {
86
+ handleApiError(error, () => {
87
+ addAlert({
88
+ title: 'Failed to create disconnected cluster',
89
+ message: getApiErrorMessage(error),
90
+ variant: AlertVariant.danger,
91
+ });
92
+ });
93
+ } finally {
94
+ setIsSubmitting(false);
95
+ }
96
+ };
22
97
 
23
98
  return (
24
- <Formik
25
- initialValues={{}}
26
- onSubmit={() => {
27
- // nothing to do
28
- }}
99
+ <ClusterWizardStep
100
+ navigation={<ClusterWizardNavigation />}
101
+ footer={
102
+ <ClusterWizardFooter
103
+ onNext={() => {
104
+ clusterId ? moveNext() : void createCluster();
105
+ }}
106
+ isSubmitting={isSubmitting}
107
+ isNextDisabled={isLoading || (cluster ? false : !values.openshiftVersion)}
108
+ disconnectedClusterId={clusterId}
109
+ />
110
+ }
29
111
  >
30
- <ClusterWizardStep
31
- navigation={<ClusterWizardNavigation />}
32
- footer={<ClusterWizardFooter onNext={moveNext} />}
33
- >
34
- <WithErrorBoundary title="Failed to load Basic step">
35
- <Grid hasGutter>
36
- <GridItem>
37
- <Content component="h2">Basic information</Content>
38
- </GridItem>
39
- <GridItem>
40
- <Flex alignItems={{ default: 'alignItemsCenter' }} gap={{ default: 'gapSm' }}>
41
- <TechnologyPreview />
42
- <InstallDisconnectedSwitch />
43
- <span>
44
- {t("ai:I'm installing on a disconnected/air-gapped/secured environment")}
45
- </span>
46
- </Flex>
47
- </GridItem>
48
- <GridItem>
49
- <Form id="wizard-cluster-basic-info__form">
50
- <OcmOpenShiftVersion openshiftVersion="4.20" withPreviewText withMultiText>
112
+ <WithErrorBoundary title="Failed to load Basic step">
113
+ <Grid hasGutter>
114
+ <GridItem>
115
+ <Content component="h2">Basic information</Content>
116
+ </GridItem>
117
+ <GridItem>
118
+ <Flex alignItems={{ default: 'alignItemsCenter' }} gap={{ default: 'gapSm' }}>
119
+ <TechnologyPreview />
120
+ <InstallDisconnectedSwitch isDisabled={!!clusterId} />
121
+ <span>{t("ai:I'm installing on a disconnected/air-gapped/secured environment")}</span>
122
+ </Flex>
123
+ </GridItem>
124
+ <GridItem>
125
+ <Form id="wizard-cluster-basic-info__form">
126
+ {isLoading ? (
127
+ <Spinner />
128
+ ) : cluster ? (
129
+ <OcmOpenShiftVersion
130
+ openshiftVersion={cluster.openshiftVersion || ''}
131
+ withPreviewText
132
+ withMultiText
133
+ >
51
134
  <ExternalLink href={`${window.location.origin}/${OCP_RELEASES_PAGE}`}>
52
135
  <span data-ouia-id="openshift-releases-link">
53
136
  {t('ai:Learn more about OpenShift releases')}
54
137
  </span>
55
138
  </ExternalLink>
56
139
  </OcmOpenShiftVersion>
57
- <StaticTextField name="cpuArchitecture" label="CPU architecture" isRequired>
58
- x86_64
59
- </StaticTextField>
60
- </Form>
61
- </GridItem>
62
- </Grid>
63
- </WithErrorBoundary>
64
- </ClusterWizardStep>
140
+ ) : (
141
+ <OcmOpenShiftVersionSelect minVersionAllowed={4021} />
142
+ )}
143
+ <StaticTextField name="cpuArchitecture" label="CPU architecture" isRequired>
144
+ x86_64
145
+ </StaticTextField>
146
+ </Form>
147
+ </GridItem>
148
+ </Grid>
149
+ </WithErrorBoundary>
150
+ </ClusterWizardStep>
151
+ );
152
+ };
153
+
154
+ const BasicStep = () => {
155
+ return (
156
+ <Formik<BasicStepFormikValues>
157
+ initialValues={{
158
+ openshiftVersion: '',
159
+ customOpenshiftSelect: null,
160
+ }}
161
+ onSubmit={() => {
162
+ // nothing to do
163
+ }}
164
+ >
165
+ <BasicStepForm />
65
166
  </Formik>
66
167
  );
67
168
  };