@openshift-assisted/ui-lib 2.17.0-cim → 2.17.1-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 (397) hide show
  1. package/build/@types/cim/components/Agent/AgentStatus.d.ts +1 -0
  2. package/build/@types/cim/components/Agent/AgentStatus.d.ts.map +1 -1
  3. package/build/@types/cim/components/Agent/AgentTable.d.ts.map +1 -1
  4. package/build/@types/cim/components/Agent/AgentsSelectionTable.d.ts.map +1 -1
  5. package/build/@types/cim/components/Agent/BMCForm.d.ts.map +1 -1
  6. package/build/@types/cim/components/Agent/BMHEventsModal.d.ts +8 -0
  7. package/build/@types/cim/components/Agent/BMHEventsModal.d.ts.map +1 -0
  8. package/build/@types/cim/components/Agent/BMHStatus.d.ts +2 -0
  9. package/build/@types/cim/components/Agent/BMHStatus.d.ts.map +1 -1
  10. package/build/@types/cim/components/Agent/BMHStatusInfo.d.ts +8 -0
  11. package/build/@types/cim/components/Agent/BMHStatusInfo.d.ts.map +1 -0
  12. package/build/@types/cim/components/Agent/MinimalHWRequirements.d.ts.map +1 -1
  13. package/build/@types/cim/components/Agent/index.d.ts +2 -0
  14. package/build/@types/cim/components/Agent/index.d.ts.map +1 -1
  15. package/build/@types/cim/components/Agent/tableColumns.d.ts +29 -0
  16. package/build/@types/cim/components/Agent/tableColumns.d.ts.map +1 -0
  17. package/build/@types/cim/components/Agent/tableUtils.d.ts +2 -22
  18. package/build/@types/cim/components/Agent/tableUtils.d.ts.map +1 -1
  19. package/build/@types/cim/components/ClusterDeployment/NetworkConfiguration.d.ts +1 -1
  20. package/build/@types/cim/components/ClusterDeployment/NetworkConfiguration.d.ts.map +1 -1
  21. package/build/@types/cim/components/ClusterDeployment/hostDiscovery/ClusterDeploymentHostDiscoveryTable.d.ts.map +1 -1
  22. package/build/@types/cim/components/ClusterDeployment/hostSelection/ClusterDeploymentHostSelectionStep.d.ts.map +1 -1
  23. package/build/@types/cim/components/ClusterDeployment/networkConfigurationValidation.d.ts +1 -1
  24. package/build/@types/cim/components/ClusterDeployment/networkConfigurationValidation.d.ts.map +1 -1
  25. package/build/@types/cim/components/ClusterDeployment/networking/ClusterDeploymentHostsNetworkTable.d.ts.map +1 -1
  26. package/build/@types/cim/components/ClusterDeployment/review/ClusterDeploymentReviewStep.d.ts.map +1 -1
  27. package/build/@types/cim/components/ClusterDeployment/use-networking-formik.d.ts +9 -5
  28. package/build/@types/cim/components/ClusterDeployment/use-networking-formik.d.ts.map +1 -1
  29. package/build/@types/cim/components/Hypershift/HostedClusterWizard/NetworkStep/AdvancedNetworkFields.d.ts.map +1 -0
  30. package/build/@types/cim/components/Hypershift/modals/AddNodePoolModal.d.ts.map +1 -1
  31. package/build/@types/cim/components/Hypershift/modals/ManageHostsModal.d.ts.map +1 -1
  32. package/build/@types/cim/components/Hypershift/modals/RemoveNodePoolModal.d.ts.map +1 -1
  33. package/build/@types/cim/components/InfraEnv/EnvironmentDetails.d.ts.map +1 -1
  34. package/build/@types/cim/components/InfraEnv/EnvironmentErrors.d.ts +0 -1
  35. package/build/@types/cim/components/InfraEnv/EnvironmentErrors.d.ts.map +1 -1
  36. package/build/@types/cim/components/helpers/agentStatus.d.ts.map +1 -1
  37. package/build/@types/cim/components/modals/AddBmcHostModal.d.ts.map +1 -1
  38. package/build/@types/cim/components/modals/AddBmcHostYamlForm.d.ts.map +1 -1
  39. package/build/@types/cim/components/modals/AddBmcHostYamlModal.d.ts.map +1 -1
  40. package/build/@types/cim/components/modals/AddHostModal.d.ts.map +1 -1
  41. package/build/@types/cim/components/modals/CimConfiguration/CimConfigurationModal.d.ts.map +1 -1
  42. package/build/@types/cim/components/modals/EditBMHModal.d.ts.map +1 -1
  43. package/build/@types/cim/components/modals/EditNtpSourcesModal.d.ts.map +1 -1
  44. package/build/@types/cim/components/modals/EditProxyModal.d.ts.map +1 -1
  45. package/build/@types/cim/components/modals/EditPullSecretModal.d.ts.map +1 -1
  46. package/build/@types/cim/components/modals/EditSSHKeyModal.d.ts.map +1 -1
  47. package/build/@types/cim/components/modals/MassApproveAgentModal.d.ts.map +1 -1
  48. package/build/@types/cim/components/modals/ScaleUpModal.d.ts.map +1 -1
  49. package/build/@types/cim/hooks/index.d.ts +1 -0
  50. package/build/@types/cim/hooks/index.d.ts.map +1 -1
  51. package/build/@types/cim/hooks/types.d.ts +1 -1
  52. package/build/@types/cim/hooks/types.d.ts.map +1 -1
  53. package/build/@types/cim/hooks/useEvents.d.ts +4 -0
  54. package/build/@types/cim/hooks/useEvents.d.ts.map +1 -0
  55. package/build/@types/cim/types/fromOCP/k8sTypes.d.ts +12 -0
  56. package/build/@types/cim/types/fromOCP/k8sTypes.d.ts.map +1 -1
  57. package/build/@types/cim/types/k8s/agent-cluster-install.d.ts +4 -0
  58. package/build/@types/cim/types/k8s/agent-cluster-install.d.ts.map +1 -1
  59. package/build/@types/cim/types/k8s/bare-metal-host.d.ts +20 -0
  60. package/build/@types/cim/types/k8s/bare-metal-host.d.ts.map +1 -1
  61. package/build/@types/common/components/clusterConfiguration/DiscoveryTroubleshootingModal.d.ts.map +1 -1
  62. package/build/@types/common/components/clusterConfiguration/utils.d.ts +2 -2
  63. package/build/@types/common/components/clusterConfiguration/utils.d.ts.map +1 -1
  64. package/build/@types/common/components/clusterWizard/networkingSteps/AdvancedNetworkFields.d.ts +7 -0
  65. package/build/@types/common/components/clusterWizard/networkingSteps/AdvancedNetworkFields.d.ts.map +1 -0
  66. package/build/@types/common/components/clusterWizard/networkingSteps/AvailableSubnetsControl.d.ts +10 -6
  67. package/build/@types/common/components/clusterWizard/networkingSteps/AvailableSubnetsControl.d.ts.map +1 -1
  68. package/build/@types/common/components/clusterWizard/networkingSteps/StackTypeControlGroup.d.ts +13 -0
  69. package/build/@types/common/components/clusterWizard/networkingSteps/StackTypeControlGroup.d.ts.map +1 -0
  70. package/build/@types/{ocm/components/clusterConfiguration/networkConfiguration → common/components/clusterWizard/networkingSteps}/SubnetsDropdown.d.ts +1 -1
  71. package/build/@types/common/components/clusterWizard/networkingSteps/SubnetsDropdown.d.ts.map +1 -0
  72. package/build/@types/common/components/clusterWizard/networkingSteps/VirtualIPControlGroup.d.ts +4 -2
  73. package/build/@types/common/components/clusterWizard/networkingSteps/VirtualIPControlGroup.d.ts.map +1 -1
  74. package/build/@types/common/components/clusterWizard/networkingSteps/index.d.ts +7 -2
  75. package/build/@types/common/components/clusterWizard/networkingSteps/index.d.ts.map +1 -1
  76. package/build/@types/{ocm/components/clusterConfiguration/networkConfiguration → common/components/clusterWizard/networkingSteps}/reorderNetworks.d.ts +1 -1
  77. package/build/@types/common/components/clusterWizard/networkingSteps/reorderNetworks.d.ts.map +1 -0
  78. package/build/@types/common/components/hosts/HostStatus.d.ts.map +1 -1
  79. package/build/@types/common/components/hosts/HostValidationGroups.d.ts.map +1 -1
  80. package/build/@types/common/components/hosts/MassChangeHostnameModal.d.ts.map +1 -1
  81. package/build/@types/common/components/hosts/index.d.ts +2 -0
  82. package/build/@types/common/components/hosts/index.d.ts.map +1 -1
  83. package/build/@types/common/components/hosts/tableColumns.d.ts +21 -0
  84. package/build/@types/common/components/hosts/tableColumns.d.ts.map +1 -0
  85. package/build/@types/common/components/hosts/tableUtils.d.ts +3 -21
  86. package/build/@types/common/components/hosts/tableUtils.d.ts.map +1 -1
  87. package/build/@types/common/components/hosts/types.d.ts +1 -0
  88. package/build/@types/common/components/hosts/types.d.ts.map +1 -1
  89. package/build/@types/common/components/ui/EventsList.d.ts.map +1 -1
  90. package/build/@types/common/components/ui/PrismCode.d.ts +13 -11
  91. package/build/@types/common/components/ui/PrismCode.d.ts.map +1 -1
  92. package/build/@types/common/components/ui/formik/LabelField.d.ts +3 -11
  93. package/build/@types/common/components/ui/formik/LabelField.d.ts.map +1 -1
  94. package/build/@types/common/components/ui/formik/validationSchemas.d.ts +3 -5
  95. package/build/@types/common/components/ui/formik/validationSchemas.d.ts.map +1 -1
  96. package/build/@types/common/components/ui/index.d.ts +1 -1
  97. package/build/@types/common/components/ui/index.d.ts.map +1 -1
  98. package/build/@types/common/config/constants.d.ts +2 -1
  99. package/build/@types/common/config/constants.d.ts.map +1 -1
  100. package/build/@types/common/types/clusters.d.ts +0 -1
  101. package/build/@types/common/types/clusters.d.ts.map +1 -1
  102. package/build/@types/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfiguration.d.ts +1 -1
  103. package/build/@types/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfiguration.d.ts.map +1 -1
  104. package/build/@types/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfigurationTableBase.d.ts.map +1 -1
  105. package/build/@types/ocm/components/clusterConfiguration/networkConfiguration/networkConfigurationValidation.d.ts.map +1 -1
  106. package/build/@types/ocm/components/clusterDetail/ResetClusterModal.d.ts.map +1 -1
  107. package/build/@types/ocm/components/hosts/ClusterHostsTable.d.ts.map +1 -1
  108. package/build/@types/ocm/components/hosts/HostsDiscoveryTable.d.ts.map +1 -1
  109. package/build/@types/ocm/components/hosts/HostsStorageTable.d.ts.map +1 -1
  110. package/build/@types/ocm/components/hosts/use-hosts-table.d.ts.map +1 -1
  111. package/build/cjs/cim/components/Agent/AgentStatus.js +2 -2
  112. package/build/cjs/cim/components/Agent/AgentStatus.js.map +1 -1
  113. package/build/cjs/cim/components/Agent/AgentTable.js +10 -9
  114. package/build/cjs/cim/components/Agent/AgentTable.js.map +1 -1
  115. package/build/cjs/cim/components/Agent/AgentsSelectionTable.js +9 -8
  116. package/build/cjs/cim/components/Agent/AgentsSelectionTable.js.map +1 -1
  117. package/build/cjs/cim/components/Agent/BMCForm.js +4 -5
  118. package/build/cjs/cim/components/Agent/BMCForm.js.map +1 -1
  119. package/build/cjs/cim/components/Agent/BMHEventsModal.js +54 -0
  120. package/build/cjs/cim/components/Agent/BMHEventsModal.js.map +1 -0
  121. package/build/cjs/cim/components/Agent/BMHStatus.js +3 -2
  122. package/build/cjs/cim/components/Agent/BMHStatus.js.map +1 -1
  123. package/build/cjs/cim/components/Agent/BMHStatusInfo.js +59 -0
  124. package/build/cjs/cim/components/Agent/BMHStatusInfo.js.map +1 -0
  125. package/build/cjs/cim/components/Agent/MinimalHWRequirements.js +6 -5
  126. package/build/cjs/cim/components/Agent/MinimalHWRequirements.js.map +1 -1
  127. package/build/cjs/cim/components/Agent/index.js +2 -0
  128. package/build/cjs/cim/components/Agent/index.js.map +1 -1
  129. package/build/cjs/cim/components/Agent/tableColumns.js +184 -0
  130. package/build/cjs/cim/components/Agent/tableColumns.js.map +1 -0
  131. package/build/cjs/cim/components/Agent/tableUtils.js +4 -174
  132. package/build/cjs/cim/components/Agent/tableUtils.js.map +1 -1
  133. package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentDetailsTable.js +10 -10
  134. package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentDetailsTable.js.map +1 -1
  135. package/build/cjs/cim/components/ClusterDeployment/LocationsSelector.js +2 -2
  136. package/build/cjs/cim/components/ClusterDeployment/LocationsSelector.js.map +1 -1
  137. package/build/cjs/cim/components/ClusterDeployment/NetworkConfiguration.js +28 -38
  138. package/build/cjs/cim/components/ClusterDeployment/NetworkConfiguration.js.map +1 -1
  139. package/build/cjs/cim/components/ClusterDeployment/clusterDetails/ClusterDetailsFormFields.js +1 -1
  140. package/build/cjs/cim/components/ClusterDeployment/clusterDetails/ClusterDetailsFormFields.js.map +1 -1
  141. package/build/cjs/cim/components/ClusterDeployment/hostDiscovery/ClusterDeploymentHostDiscoveryTable.js +13 -14
  142. package/build/cjs/cim/components/ClusterDeployment/hostDiscovery/ClusterDeploymentHostDiscoveryTable.js.map +1 -1
  143. package/build/cjs/cim/components/ClusterDeployment/hostSelection/ClusterDeploymentHostSelectionStep.js +13 -10
  144. package/build/cjs/cim/components/ClusterDeployment/hostSelection/ClusterDeploymentHostSelectionStep.js.map +1 -1
  145. package/build/cjs/cim/components/ClusterDeployment/networkConfigurationValidation.js +19 -18
  146. package/build/cjs/cim/components/ClusterDeployment/networkConfigurationValidation.js.map +1 -1
  147. package/build/cjs/cim/components/ClusterDeployment/networking/ClusterDeploymentHostsNetworkTable.js +9 -10
  148. package/build/cjs/cim/components/ClusterDeployment/networking/ClusterDeploymentHostsNetworkTable.js.map +1 -1
  149. package/build/cjs/cim/components/ClusterDeployment/networking/ClusterDeploymentNetworkingForm.js +2 -2
  150. package/build/cjs/cim/components/ClusterDeployment/networking/ClusterDeploymentNetworkingForm.js.map +1 -1
  151. package/build/cjs/cim/components/ClusterDeployment/networking/ClusterDeploymentNetworkingStep.js +12 -8
  152. package/build/cjs/cim/components/ClusterDeployment/networking/ClusterDeploymentNetworkingStep.js.map +1 -1
  153. package/build/cjs/cim/components/ClusterDeployment/review/ClusterDeploymentReviewStep.js +6 -4
  154. package/build/cjs/cim/components/ClusterDeployment/review/ClusterDeploymentReviewStep.js.map +1 -1
  155. package/build/cjs/cim/components/ClusterDeployment/use-networking-formik.js +15 -9
  156. package/build/cjs/cim/components/ClusterDeployment/use-networking-formik.js.map +1 -1
  157. package/build/cjs/cim/components/Hypershift/DetailsPage/NodePoolsTable.js +2 -2
  158. package/build/cjs/cim/components/Hypershift/HostedClusterWizard/HostsStep/HostsForm.js +1 -1
  159. package/build/cjs/{common/components/clusterConfiguration → cim/components/Hypershift/HostedClusterWizard/NetworkStep}/AdvancedNetworkFields.js +3 -3
  160. package/build/cjs/cim/components/Hypershift/HostedClusterWizard/NetworkStep/AdvancedNetworkFields.js.map +1 -0
  161. package/build/cjs/cim/components/Hypershift/HostedClusterWizard/NetworkStep/NetworkForm.js +1 -1
  162. package/build/cjs/cim/components/Hypershift/HostedClusterWizard/NetworkStep/NetworkForm.js.map +1 -1
  163. package/build/cjs/cim/components/Hypershift/modals/AddNodePoolModal.js +4 -4
  164. package/build/cjs/cim/components/Hypershift/modals/AddNodePoolModal.js.map +1 -1
  165. package/build/cjs/cim/components/Hypershift/modals/ManageHostsModal.js +4 -4
  166. package/build/cjs/cim/components/Hypershift/modals/ManageHostsModal.js.map +1 -1
  167. package/build/cjs/cim/components/Hypershift/modals/NodePoolForm.js +1 -1
  168. package/build/cjs/cim/components/Hypershift/modals/NodePoolForm.js.map +1 -1
  169. package/build/cjs/cim/components/Hypershift/modals/RemoveNodePoolModal.js +4 -4
  170. package/build/cjs/cim/components/Hypershift/modals/RemoveNodePoolModal.js.map +1 -1
  171. package/build/cjs/cim/components/InfraEnv/EnvironmentDetails.js +5 -2
  172. package/build/cjs/cim/components/InfraEnv/EnvironmentDetails.js.map +1 -1
  173. package/build/cjs/cim/components/InfraEnv/EnvironmentErrors.js +2 -4
  174. package/build/cjs/cim/components/InfraEnv/EnvironmentErrors.js.map +1 -1
  175. package/build/cjs/cim/components/InfraEnv/InfraEnvAgentTable.js +11 -11
  176. package/build/cjs/cim/components/InfraEnv/InfraEnvAgentTable.js.map +1 -1
  177. package/build/cjs/cim/components/common/ResourceAlerts.js +2 -4
  178. package/build/cjs/cim/components/common/ResourceAlerts.js.map +1 -1
  179. package/build/cjs/cim/components/helpers/agentStatus.js +5 -0
  180. package/build/cjs/cim/components/helpers/agentStatus.js.map +1 -1
  181. package/build/cjs/cim/components/helpers/toAssisted.js +28 -26
  182. package/build/cjs/cim/components/helpers/toAssisted.js.map +1 -1
  183. package/build/cjs/cim/components/modals/AddBmcHostModal.js +7 -5
  184. package/build/cjs/cim/components/modals/AddBmcHostModal.js.map +1 -1
  185. package/build/cjs/cim/components/modals/AddBmcHostYamlForm.js +2 -3
  186. package/build/cjs/cim/components/modals/AddBmcHostYamlForm.js.map +1 -1
  187. package/build/cjs/cim/components/modals/AddBmcHostYamlModal.js +7 -5
  188. package/build/cjs/cim/components/modals/AddBmcHostYamlModal.js.map +1 -1
  189. package/build/cjs/cim/components/modals/AddHostModal.js +9 -7
  190. package/build/cjs/cim/components/modals/AddHostModal.js.map +1 -1
  191. package/build/cjs/cim/components/modals/CimConfiguration/CimConfigurationModal.js +17 -22
  192. package/build/cjs/cim/components/modals/CimConfiguration/CimConfigurationModal.js.map +1 -1
  193. package/build/cjs/cim/components/modals/EditBMHModal.js +4 -2
  194. package/build/cjs/cim/components/modals/EditBMHModal.js.map +1 -1
  195. package/build/cjs/cim/components/modals/EditNtpSourcesModal.js +4 -4
  196. package/build/cjs/cim/components/modals/EditNtpSourcesModal.js.map +1 -1
  197. package/build/cjs/cim/components/modals/EditProxyModal.js +4 -4
  198. package/build/cjs/cim/components/modals/EditProxyModal.js.map +1 -1
  199. package/build/cjs/cim/components/modals/EditPullSecretModal.js +4 -4
  200. package/build/cjs/cim/components/modals/EditPullSecretModal.js.map +1 -1
  201. package/build/cjs/cim/components/modals/EditSSHKeyModal.js +5 -5
  202. package/build/cjs/cim/components/modals/EditSSHKeyModal.js.map +1 -1
  203. package/build/cjs/cim/components/modals/MassApproveAgentModal.js +4 -4
  204. package/build/cjs/cim/components/modals/MassApproveAgentModal.js.map +1 -1
  205. package/build/cjs/cim/components/modals/MassDeleteAgentModal.js +1 -1
  206. package/build/cjs/cim/components/modals/MassDeleteAgentModal.js.map +1 -1
  207. package/build/cjs/cim/components/modals/ScaleUpModal.js +4 -4
  208. package/build/cjs/cim/components/modals/ScaleUpModal.js.map +1 -1
  209. package/build/cjs/cim/hooks/index.js +1 -0
  210. package/build/cjs/cim/hooks/index.js.map +1 -1
  211. package/build/cjs/cim/hooks/useEvents.js +12 -0
  212. package/build/cjs/cim/hooks/useEvents.js.map +1 -0
  213. package/build/cjs/common/components/clusterConfiguration/DiscoveryInstructions.js +1 -1
  214. package/build/cjs/common/components/clusterConfiguration/DiscoveryInstructions.js.map +1 -1
  215. package/build/cjs/common/components/clusterConfiguration/DiscoveryTroubleshootingModal.js +9 -9
  216. package/build/cjs/common/components/clusterConfiguration/DiscoveryTroubleshootingModal.js.map +1 -1
  217. package/build/cjs/common/components/clusterConfiguration/ProxyFields.js +3 -3
  218. package/build/cjs/common/components/clusterConfiguration/ProxyFields.js.map +1 -1
  219. package/build/cjs/common/components/clusterConfiguration/utils.js +3 -4
  220. package/build/cjs/common/components/clusterConfiguration/utils.js.map +1 -1
  221. package/build/cjs/common/components/clusterWizard/networkingSteps/AdvancedNetworkFields.js +62 -0
  222. package/build/cjs/common/components/clusterWizard/networkingSteps/AdvancedNetworkFields.js.map +1 -0
  223. package/build/cjs/common/components/clusterWizard/networkingSteps/AvailableSubnetsControl.js +130 -46
  224. package/build/cjs/common/components/clusterWizard/networkingSteps/AvailableSubnetsControl.js.map +1 -1
  225. package/build/cjs/{ocm/components/clusterConfiguration/networkConfiguration/StackTypeControl.js → common/components/clusterWizard/networkingSteps/StackTypeControlGroup.js} +59 -38
  226. package/build/cjs/common/components/clusterWizard/networkingSteps/StackTypeControlGroup.js.map +1 -0
  227. package/build/cjs/{ocm/components/clusterConfiguration/networkConfiguration → common/components/clusterWizard/networkingSteps}/SubnetsDropdown.js +7 -5
  228. package/build/cjs/common/components/clusterWizard/networkingSteps/SubnetsDropdown.js.map +1 -0
  229. package/build/cjs/common/components/clusterWizard/networkingSteps/VirtualIPControlGroup.js +96 -38
  230. package/build/cjs/common/components/clusterWizard/networkingSteps/VirtualIPControlGroup.js.map +1 -1
  231. package/build/cjs/common/components/clusterWizard/networkingSteps/index.js +13 -3
  232. package/build/cjs/common/components/clusterWizard/networkingSteps/index.js.map +1 -1
  233. package/build/cjs/{ocm/components/clusterConfiguration/networkConfiguration → common/components/clusterWizard/networkingSteps}/reorderNetworks.js +2 -2
  234. package/build/cjs/common/components/clusterWizard/networkingSteps/reorderNetworks.js.map +1 -0
  235. package/build/cjs/common/components/hosts/HostStatus.js +8 -6
  236. package/build/cjs/common/components/hosts/HostStatus.js.map +1 -1
  237. package/build/cjs/common/components/hosts/HostValidationGroups.js +2 -3
  238. package/build/cjs/common/components/hosts/HostValidationGroups.js.map +1 -1
  239. package/build/cjs/common/components/hosts/MassChangeHostnameModal.js +7 -13
  240. package/build/cjs/common/components/hosts/MassChangeHostnameModal.js.map +1 -1
  241. package/build/cjs/common/components/hosts/index.js +2 -0
  242. package/build/cjs/common/components/hosts/index.js.map +1 -1
  243. package/build/cjs/common/components/hosts/tableColumns.js +336 -0
  244. package/build/cjs/common/components/hosts/tableColumns.js.map +1 -0
  245. package/build/cjs/common/components/hosts/tableUtils.js +1 -331
  246. package/build/cjs/common/components/hosts/tableUtils.js.map +1 -1
  247. package/build/cjs/common/components/ui/EventsList.js +1 -1
  248. package/build/cjs/common/components/ui/EventsList.js.map +1 -1
  249. package/build/cjs/common/components/ui/PrismCode.js +29 -20
  250. package/build/cjs/common/components/ui/PrismCode.js.map +1 -1
  251. package/build/cjs/common/components/ui/formik/LabelField.js +34 -26
  252. package/build/cjs/common/components/ui/formik/LabelField.js.map +1 -1
  253. package/build/cjs/common/components/ui/formik/validationSchemas.js +60 -78
  254. package/build/cjs/common/components/ui/formik/validationSchemas.js.map +1 -1
  255. package/build/cjs/common/components/ui/index.js +1 -2
  256. package/build/cjs/common/components/ui/index.js.map +1 -1
  257. package/build/cjs/common/config/constants.js +27 -4
  258. package/build/cjs/common/config/constants.js.map +1 -1
  259. package/build/cjs/common/types/clusters.js.map +1 -1
  260. package/build/cjs/ocm/components/clusterConfiguration/OcmBaseDomainField.js +1 -1
  261. package/build/cjs/ocm/components/clusterConfiguration/OcmBaseDomainField.js.map +1 -1
  262. package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfiguration.js +6 -12
  263. package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfiguration.js.map +1 -1
  264. package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfigurationTableBase.js +8 -9
  265. package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfigurationTableBase.js.map +1 -1
  266. package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/networkConfigurationValidation.js +6 -16
  267. package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/networkConfigurationValidation.js.map +1 -1
  268. package/build/cjs/ocm/components/clusterDetail/ResetClusterModal.js +1 -1
  269. package/build/cjs/ocm/components/clusterDetail/ResetClusterModal.js.map +1 -1
  270. package/build/cjs/ocm/components/clusterWizard/OperatorsSelect.js +1 -1
  271. package/build/cjs/ocm/components/clusterWizard/OperatorsSelect.js.map +1 -1
  272. package/build/cjs/ocm/components/hosts/ClusterHostsTable.js +7 -8
  273. package/build/cjs/ocm/components/hosts/ClusterHostsTable.js.map +1 -1
  274. package/build/cjs/ocm/components/hosts/HostsDiscoveryTable.js +7 -8
  275. package/build/cjs/ocm/components/hosts/HostsDiscoveryTable.js.map +1 -1
  276. package/build/cjs/ocm/components/hosts/HostsStorageTable.js +5 -6
  277. package/build/cjs/ocm/components/hosts/HostsStorageTable.js.map +1 -1
  278. package/build/cjs/ocm/components/hosts/use-hosts-table.js +2 -3
  279. package/build/cjs/ocm/components/hosts/use-hosts-table.js.map +1 -1
  280. package/lib/cim/components/Agent/AgentStatus.tsx +3 -0
  281. package/lib/cim/components/Agent/AgentTable.tsx +3 -2
  282. package/lib/cim/components/Agent/AgentsSelectionTable.tsx +3 -12
  283. package/lib/cim/components/Agent/BMCForm.tsx +8 -7
  284. package/lib/cim/components/Agent/BMHEventsModal.tsx +87 -0
  285. package/lib/cim/components/Agent/BMHStatus.tsx +17 -17
  286. package/lib/cim/components/Agent/BMHStatusInfo.tsx +94 -0
  287. package/lib/cim/components/Agent/MinimalHWRequirements.tsx +17 -12
  288. package/lib/cim/components/Agent/index.ts +2 -0
  289. package/lib/cim/components/Agent/tableColumns.tsx +257 -0
  290. package/lib/cim/components/Agent/tableUtils.tsx +4 -243
  291. package/lib/cim/components/ClusterDeployment/ClusterDeploymentDetailsTable.tsx +2 -2
  292. package/lib/cim/components/ClusterDeployment/LocationsSelector.tsx +2 -2
  293. package/lib/cim/components/ClusterDeployment/NetworkConfiguration.tsx +61 -44
  294. package/lib/cim/components/ClusterDeployment/clusterDetails/ClusterDetailsFormFields.tsx +2 -2
  295. package/lib/cim/components/ClusterDeployment/hostDiscovery/ClusterDeploymentHostDiscoveryTable.tsx +3 -5
  296. package/lib/cim/components/ClusterDeployment/hostSelection/ClusterDeploymentHostSelectionStep.tsx +27 -28
  297. package/lib/cim/components/ClusterDeployment/networkConfigurationValidation.ts +30 -36
  298. package/lib/cim/components/ClusterDeployment/networking/ClusterDeploymentHostsNetworkTable.tsx +2 -7
  299. package/lib/cim/components/ClusterDeployment/networking/ClusterDeploymentNetworkingForm.tsx +3 -3
  300. package/lib/cim/components/ClusterDeployment/networking/ClusterDeploymentNetworkingStep.tsx +26 -26
  301. package/lib/cim/components/ClusterDeployment/review/ClusterDeploymentReviewStep.tsx +20 -6
  302. package/lib/cim/components/ClusterDeployment/use-networking-formik.ts +32 -12
  303. package/lib/cim/components/Hypershift/DetailsPage/NodePoolsTable.tsx +2 -2
  304. package/lib/cim/components/Hypershift/HostedClusterWizard/HostsStep/HostsForm.tsx +1 -1
  305. package/lib/{common/components/clusterConfiguration → cim/components/Hypershift/HostedClusterWizard/NetworkStep}/AdvancedNetworkFields.tsx +4 -4
  306. package/lib/cim/components/Hypershift/HostedClusterWizard/NetworkStep/NetworkForm.tsx +1 -1
  307. package/lib/cim/components/Hypershift/modals/AddNodePoolModal.tsx +15 -16
  308. package/lib/cim/components/Hypershift/modals/ManageHostsModal.tsx +15 -16
  309. package/lib/cim/components/Hypershift/modals/NodePoolForm.tsx +1 -1
  310. package/lib/cim/components/Hypershift/modals/RemoveNodePoolModal.tsx +14 -11
  311. package/lib/cim/components/InfraEnv/EnvironmentDetails.tsx +6 -3
  312. package/lib/cim/components/InfraEnv/EnvironmentErrors.tsx +1 -6
  313. package/lib/cim/components/InfraEnv/InfraEnvAgentTable.tsx +6 -6
  314. package/lib/cim/components/common/ResourceAlerts.tsx +4 -4
  315. package/lib/cim/components/helpers/agentStatus.tsx +5 -0
  316. package/lib/cim/components/helpers/toAssisted.ts +15 -15
  317. package/lib/cim/components/modals/AddBmcHostModal.tsx +14 -13
  318. package/lib/cim/components/modals/AddBmcHostYamlForm.tsx +6 -5
  319. package/lib/cim/components/modals/AddBmcHostYamlModal.tsx +8 -7
  320. package/lib/cim/components/modals/AddHostModal.tsx +22 -11
  321. package/lib/cim/components/modals/CimConfiguration/CimConfigurationModal.tsx +70 -66
  322. package/lib/cim/components/modals/EditBMHModal.tsx +2 -3
  323. package/lib/cim/components/modals/EditNtpSourcesModal.tsx +15 -10
  324. package/lib/cim/components/modals/EditProxyModal.tsx +16 -10
  325. package/lib/cim/components/modals/EditPullSecretModal.tsx +14 -10
  326. package/lib/cim/components/modals/EditSSHKeyModal.tsx +16 -13
  327. package/lib/cim/components/modals/MassApproveAgentModal.tsx +16 -8
  328. package/lib/cim/components/modals/MassDeleteAgentModal.tsx +1 -1
  329. package/lib/cim/components/modals/ScaleUpModal.tsx +9 -7
  330. package/lib/cim/hooks/index.tsx +1 -0
  331. package/lib/cim/hooks/types.tsx +4 -1
  332. package/lib/cim/hooks/useEvents.tsx +14 -0
  333. package/lib/cim/types/fromOCP/k8sTypes.ts +13 -0
  334. package/lib/cim/types/k8s/agent-cluster-install.ts +4 -0
  335. package/lib/cim/types/k8s/bare-metal-host.ts +20 -0
  336. package/lib/common/components/clusterConfiguration/DiscoveryInstructions.tsx +1 -1
  337. package/lib/common/components/clusterConfiguration/DiscoveryTroubleshootingModal.tsx +7 -10
  338. package/lib/common/components/clusterConfiguration/ProxyFields.tsx +3 -3
  339. package/lib/common/components/clusterConfiguration/utils.ts +22 -12
  340. package/lib/{ocm/components/clusterConfiguration/networkConfiguration → common/components/clusterWizard/networkingSteps}/AdvancedNetworkFields.tsx +54 -38
  341. package/lib/common/components/clusterWizard/networkingSteps/AvailableSubnetsControl.tsx +221 -53
  342. package/lib/{ocm/components/clusterConfiguration/networkConfiguration/StackTypeControl.tsx → common/components/clusterWizard/networkingSteps/StackTypeControlGroup.tsx} +64 -28
  343. package/lib/{ocm/components/clusterConfiguration/networkConfiguration → common/components/clusterWizard/networkingSteps}/SubnetsDropdown.tsx +4 -7
  344. package/lib/common/components/clusterWizard/networkingSteps/VirtualIPControlGroup.tsx +199 -80
  345. package/lib/common/components/clusterWizard/networkingSteps/index.ts +10 -2
  346. package/lib/{ocm/components/clusterConfiguration/networkConfiguration → common/components/clusterWizard/networkingSteps}/reorderNetworks.ts +2 -1
  347. package/lib/common/components/hosts/HostStatus.tsx +14 -3
  348. package/lib/common/components/hosts/HostValidationGroups.tsx +5 -4
  349. package/lib/common/components/hosts/MassChangeHostnameModal.tsx +44 -38
  350. package/lib/common/components/hosts/index.ts +2 -0
  351. package/lib/common/components/hosts/tableColumns.tsx +411 -0
  352. package/lib/common/components/hosts/tableUtils.tsx +4 -409
  353. package/lib/common/components/hosts/types.ts +1 -0
  354. package/lib/common/components/ui/EventsList.tsx +4 -2
  355. package/lib/common/components/ui/PrismCode.tsx +35 -22
  356. package/lib/common/components/ui/formik/LabelField.tsx +77 -60
  357. package/lib/common/components/ui/formik/validationSchemas.ts +64 -107
  358. package/lib/common/components/ui/index.ts +1 -1
  359. package/lib/common/config/constants.ts +33 -2
  360. package/lib/common/types/clusters.ts +0 -1
  361. package/lib/ocm/components/clusterConfiguration/OcmBaseDomainField.tsx +2 -2
  362. package/lib/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfiguration.tsx +12 -23
  363. package/lib/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfigurationTableBase.tsx +3 -2
  364. package/lib/ocm/components/clusterConfiguration/networkConfiguration/networkConfigurationValidation.ts +10 -18
  365. package/lib/ocm/components/clusterDetail/ResetClusterModal.tsx +2 -1
  366. package/lib/ocm/components/clusterWizard/OperatorsSelect.tsx +2 -2
  367. package/lib/ocm/components/hosts/ClusterHostsTable.tsx +4 -3
  368. package/lib/ocm/components/hosts/HostsDiscoveryTable.tsx +2 -4
  369. package/lib/ocm/components/hosts/HostsStorageTable.tsx +5 -7
  370. package/lib/ocm/components/hosts/use-hosts-table.tsx +2 -1
  371. package/package.json +3 -3
  372. package/build/@types/common/components/clusterConfiguration/AdvancedNetworkFields.d.ts.map +0 -1
  373. package/build/@types/ocm/components/clusterConfiguration/networkConfiguration/AdvancedNetworkFields.d.ts +0 -4
  374. package/build/@types/ocm/components/clusterConfiguration/networkConfiguration/AdvancedNetworkFields.d.ts.map +0 -1
  375. package/build/@types/ocm/components/clusterConfiguration/networkConfiguration/AvailableSubnetsControl.d.ts +0 -12
  376. package/build/@types/ocm/components/clusterConfiguration/networkConfiguration/AvailableSubnetsControl.d.ts.map +0 -1
  377. package/build/@types/ocm/components/clusterConfiguration/networkConfiguration/StackTypeControl.d.ts +0 -11
  378. package/build/@types/ocm/components/clusterConfiguration/networkConfiguration/StackTypeControl.d.ts.map +0 -1
  379. package/build/@types/ocm/components/clusterConfiguration/networkConfiguration/SubnetsDropdown.d.ts.map +0 -1
  380. package/build/@types/ocm/components/clusterConfiguration/networkConfiguration/VirtualIPControlGroup.d.ts +0 -9
  381. package/build/@types/ocm/components/clusterConfiguration/networkConfiguration/VirtualIPControlGroup.d.ts.map +0 -1
  382. package/build/@types/ocm/components/clusterConfiguration/networkConfiguration/reorderNetworks.d.ts.map +0 -1
  383. package/build/cjs/common/components/clusterConfiguration/AdvancedNetworkFields.js.map +0 -1
  384. package/build/cjs/common/components/ui/formik/LabelField.css +0 -43
  385. package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/AdvancedNetworkFields.js +0 -53
  386. package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/AdvancedNetworkFields.js.map +0 -1
  387. package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/AvailableSubnetsControl.js +0 -124
  388. package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/AvailableSubnetsControl.js.map +0 -1
  389. package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/StackTypeControl.js.map +0 -1
  390. package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/SubnetsDropdown.js.map +0 -1
  391. package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/VirtualIPControlGroup.js +0 -98
  392. package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/VirtualIPControlGroup.js.map +0 -1
  393. package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/reorderNetworks.js.map +0 -1
  394. package/lib/common/components/ui/formik/LabelField.css +0 -43
  395. package/lib/ocm/components/clusterConfiguration/networkConfiguration/AvailableSubnetsControl.tsx +0 -208
  396. package/lib/ocm/components/clusterConfiguration/networkConfiguration/VirtualIPControlGroup.tsx +0 -283
  397. /package/build/@types/{common/components/clusterConfiguration → cim/components/Hypershift/HostedClusterWizard/NetworkStep}/AdvancedNetworkFields.d.ts +0 -0
@@ -1,208 +0,0 @@
1
- import React, { useEffect } from 'react';
2
- import { useSelector } from 'react-redux';
3
- import { Alert, AlertVariant, FormGroup, Stack, StackItem } from '@patternfly/react-core';
4
- import { FieldArray, useFormikContext, FormikHelpers } from 'formik';
5
- import { Address4, Address6 } from 'ip-address';
6
-
7
- import {
8
- HostSubnet,
9
- NetworkConfigurationValues,
10
- DUAL_STACK,
11
- NO_SUBNET_SET,
12
- isMajorMinorVersionEqualOrGreater,
13
- } from '../../../../common';
14
- import { selectCurrentClusterPermissionsState } from '../../../store/slices/current-cluster/selectors';
15
- import { SubnetsDropdown } from './SubnetsDropdown';
16
- import { reorderNetworksForPrimary } from './reorderNetworks';
17
- import { Cluster, MachineNetwork } from '@openshift-assisted/types/assisted-installer-service';
18
-
19
- const subnetSort = (subA: HostSubnet, subB: HostSubnet) =>
20
- subA.humanized.localeCompare(subB.humanized);
21
-
22
- const useAutoSelectSingleAvailableSubnet = (
23
- autoSelectNetwork: boolean,
24
- setFieldValue: FormikHelpers<NetworkConfigurationValues>['setFieldValue'],
25
- cidr: MachineNetwork['cidr'],
26
- clusterId: string,
27
- ) => {
28
- useEffect(() => {
29
- if (autoSelectNetwork) {
30
- setFieldValue('machineNetworks', [{ cidr, clusterId }], false);
31
- }
32
- }, [autoSelectNetwork, cidr, clusterId, setFieldValue]);
33
- };
34
-
35
- export interface AvailableSubnetsControlProps {
36
- clusterId: Cluster['id'];
37
- hostSubnets: HostSubnet[];
38
- isRequired: boolean;
39
- isDisabled: boolean;
40
- openshiftVersion?: string;
41
- }
42
-
43
- export const AvailableSubnetsControl = ({
44
- clusterId,
45
- hostSubnets,
46
- isRequired = false,
47
- isDisabled,
48
- openshiftVersion,
49
- }: AvailableSubnetsControlProps) => {
50
- const { values, errors, setFieldValue } = useFormikContext<NetworkConfigurationValues>();
51
- const isDualStack = values.stackType === DUAL_STACK;
52
- const { isViewerMode } = useSelector(selectCurrentClusterPermissionsState);
53
-
54
- // Check if OCP version supports IPv6 as primary network
55
- const supportsIPv6Primary =
56
- openshiftVersion && isMajorMinorVersionEqualOrGreater(openshiftVersion, '4.12');
57
-
58
- const IPv4Subnets = hostSubnets
59
- .filter((subnet) => Address4.isValid(subnet.subnet))
60
- .sort(subnetSort);
61
- const IPv6Subnets = hostSubnets
62
- .filter((subnet) => Address6.isValid(subnet.subnet))
63
- .sort(subnetSort);
64
-
65
- // For OCP >= 4.12, both networks can use either IPv4 or IPv6
66
- const allSubnets = supportsIPv6Primary
67
- ? [...IPv4Subnets, ...IPv6Subnets].sort(subnetSort)
68
- : IPv4Subnets;
69
-
70
- // For auto-selection, always use IPv4 subnets for single-stack
71
- const cidr = IPv4Subnets.length >= 1 ? IPv4Subnets[0].subnet : NO_SUBNET_SET;
72
- const hasEmptySelection = (values.machineNetworks ?? []).length === 0;
73
- const autoSelectNetwork = !isViewerMode && hasEmptySelection;
74
- useAutoSelectSingleAvailableSubnet(autoSelectNetwork, setFieldValue, cidr, clusterId);
75
-
76
- // Ensure primary and secondary machine networks are not duplicated.
77
- // If the user switches primary to the same CIDR as secondary, adjust secondary to the opposite family or clear it.
78
- React.useEffect(() => {
79
- if (!isDualStack) {
80
- return;
81
- }
82
- if (!values.machineNetworks || values.machineNetworks.length < 2) {
83
- return;
84
- }
85
- const first = values.machineNetworks?.[0]?.cidr || '';
86
- const second = values.machineNetworks?.[1]?.cidr || '';
87
- if (!first || !second) {
88
- return;
89
- }
90
- if (first === second) {
91
- if (Address6.isValid(first)) {
92
- const nextIPv4 = IPv4Subnets[0]?.subnet || NO_SUBNET_SET;
93
- const replacement = nextIPv4 !== first ? nextIPv4 : NO_SUBNET_SET;
94
- if (replacement !== second) {
95
- setFieldValue('machineNetworks.1.cidr', replacement, false);
96
- }
97
- } else if (Address4.isValid(first)) {
98
- const nextIPv6 = IPv6Subnets[0]?.subnet || NO_SUBNET_SET;
99
- const replacement = nextIPv6 !== first ? nextIPv6 : NO_SUBNET_SET;
100
- if (replacement !== second) {
101
- setFieldValue('machineNetworks.1.cidr', replacement, false);
102
- }
103
- } else {
104
- if (second !== NO_SUBNET_SET) {
105
- setFieldValue('machineNetworks.1.cidr', NO_SUBNET_SET, false);
106
- }
107
- }
108
- }
109
- }, [isDualStack, values.machineNetworks, IPv4Subnets, IPv6Subnets, setFieldValue]);
110
-
111
- return (
112
- <>
113
- <FormGroup
114
- label="Machine network"
115
- labelInfo={isDualStack && 'Primary'}
116
- fieldId="machine-networks"
117
- isRequired={isRequired}
118
- >
119
- <FieldArray name="machineNetworks">
120
- {() => (
121
- <Stack>
122
- {isDualStack ? (
123
- values.machineNetworks?.map((machineNetwork, index) => {
124
- if (index > 0) return null;
125
-
126
- const machineSubnets = supportsIPv6Primary ? allSubnets : IPv4Subnets;
127
-
128
- return (
129
- <StackItem key={index}>
130
- <SubnetsDropdown
131
- name={`machineNetworks.${index}.cidr`}
132
- machineSubnets={machineSubnets}
133
- isDisabled={isDisabled}
134
- onAfterSelect={(newSelection) =>
135
- reorderNetworksForPrimary(newSelection, values, setFieldValue)
136
- }
137
- data-testid={`subnets-dropdown-toggle-${index ? 'ipv6' : 'ipv4'}`}
138
- />
139
- </StackItem>
140
- );
141
- })
142
- ) : (
143
- <StackItem>
144
- <SubnetsDropdown
145
- name={`machineNetworks.0.cidr`}
146
- machineSubnets={IPv4Subnets}
147
- isDisabled={isDisabled}
148
- onAfterSelect={(newSelection) =>
149
- reorderNetworksForPrimary(newSelection, values, setFieldValue)
150
- }
151
- data-testid={'subnets-dropdown-toggle-primary'}
152
- />
153
- </StackItem>
154
- )}
155
- </Stack>
156
- )}
157
- </FieldArray>
158
-
159
- {typeof errors.machineNetworks === 'string' && (
160
- <Alert variant={AlertVariant.warning} title={errors.machineNetworks} isInline />
161
- )}
162
- </FormGroup>
163
-
164
- {isDualStack && values.machineNetworks && values.machineNetworks.length > 1 && (
165
- <FormGroup
166
- label="Machine network"
167
- labelInfo="Secondary"
168
- fieldId="machine-networks-secondary"
169
- isRequired={isRequired}
170
- >
171
- <FieldArray name="machineNetworks">
172
- {() => {
173
- const index = 1;
174
- let machineSubnets;
175
-
176
- if (supportsIPv6Primary) {
177
- // For OCP >= 4.12, smart filtering based on the other network's selection
178
- const firstNetworkCidr = values.machineNetworks?.[0]?.cidr;
179
- if (firstNetworkCidr && Address6.isValid(firstNetworkCidr)) {
180
- // If first is IPv6, second should be IPv4
181
- machineSubnets = IPv4Subnets;
182
- } else if (firstNetworkCidr && Address4.isValid(firstNetworkCidr)) {
183
- // If first is IPv4, second should be IPv6
184
- machineSubnets = IPv6Subnets;
185
- } else {
186
- // If first is not selected yet, show all subnets
187
- machineSubnets = allSubnets;
188
- }
189
- } else {
190
- // For older versions, second network is IPv6
191
- machineSubnets = IPv6Subnets;
192
- }
193
-
194
- return (
195
- <SubnetsDropdown
196
- name={`machineNetworks.${index}.cidr`}
197
- machineSubnets={machineSubnets}
198
- isDisabled={isDisabled}
199
- data-testid={`subnets-dropdown-toggle-${index ? 'ipv6' : 'ipv4'}`}
200
- />
201
- );
202
- }}
203
- </FieldArray>
204
- </FormGroup>
205
- )}
206
- </>
207
- );
208
- };
@@ -1,283 +0,0 @@
1
- import React from 'react';
2
- import { useSelector } from 'react-redux';
3
- import { FieldArray, useFormikContext } from 'formik';
4
- import {
5
- Spinner,
6
- Alert,
7
- AlertVariant,
8
- Tooltip,
9
- FormGroup,
10
- Stack,
11
- StackItem,
12
- } from '@patternfly/react-core';
13
- import {
14
- NetworkConfigurationValues,
15
- FormikStaticField,
16
- NETWORK_TYPE_SDN,
17
- DUAL_STACK,
18
- selectMachineNetworkCIDR,
19
- getVipValidationsById,
20
- PopoverIcon,
21
- selectApiVip,
22
- selectIngressVip,
23
- } from '../../../../common';
24
- import { selectCurrentClusterPermissionsState } from '../../../store/slices/current-cluster/selectors';
25
- import { OcmCheckboxField, OcmInputField } from '../../ui/OcmFormFields';
26
- import { useTranslation } from '../../../../common/hooks/use-translation-wrapper';
27
- import NewFeatureSupportLevelBadge from '../../../../common/components/newFeatureSupportLevels/NewFeatureSupportLevelBadge';
28
- import {
29
- ApiVip,
30
- Cluster,
31
- Ip,
32
- SupportLevel,
33
- } from '@openshift-assisted/types/assisted-installer-service';
34
-
35
- interface VipStaticValueProps {
36
- id?: string;
37
- vipValue: Ip;
38
- cluster: Cluster;
39
- validationErrorMessage?: string;
40
- }
41
-
42
- const VipStaticValue = ({
43
- vipValue,
44
- cluster,
45
- validationErrorMessage,
46
- id = 'vip-static',
47
- }: VipStaticValueProps) => {
48
- const { vipDhcpAllocation } = cluster;
49
- const machineNetworkCidr = selectMachineNetworkCIDR(cluster);
50
-
51
- if (vipDhcpAllocation && !!vipValue) {
52
- return <span id={`${id}-allocated`}>{vipValue}</span>;
53
- }
54
- if (vipDhcpAllocation && validationErrorMessage) {
55
- return (
56
- <Alert
57
- id={`${id}-alert-allocation-failed`}
58
- variant={AlertVariant.danger}
59
- title="The DHCP server failed to allocate the IP"
60
- isInline
61
- >
62
- {validationErrorMessage}
63
- </Alert>
64
- );
65
- }
66
- if (vipDhcpAllocation && machineNetworkCidr) {
67
- return (
68
- <>
69
- <Spinner size="md" id={`${id}-allocating`} data-testid={`vip-static-${id}-value-spinner`} />
70
- <i> This IP is being allocated by the DHCP server</i>
71
- </>
72
- );
73
- }
74
- return <i>This IP will be allocated by the DHCP server</i>;
75
- };
76
-
77
- export type VirtualIPControlGroupProps = {
78
- cluster: Cluster;
79
- isVipDhcpAllocationDisabled?: boolean;
80
- supportLevel?: SupportLevel;
81
- };
82
-
83
- export const VirtualIPControlGroup = ({
84
- cluster,
85
- isVipDhcpAllocationDisabled,
86
- supportLevel,
87
- }: VirtualIPControlGroupProps) => {
88
- const { values, setFieldValue } = useFormikContext<NetworkConfigurationValues>();
89
- const { isViewerMode } = useSelector(selectCurrentClusterPermissionsState);
90
- const { t } = useTranslation();
91
-
92
- const ipHelperText = 'Make sure the IP is not used by any other device on your network.';
93
- const ipPopoverContent =
94
- 'Provides an endpoint for users, both human and machine, to interact with and configure the platform.';
95
-
96
- const {
97
- 'api-vips-defined': apiVipFailedValidationMessage,
98
- 'ingress-vips-defined': ingressVipFailedValidationMessage,
99
- } = React.useMemo(
100
- () => getVipValidationsById(t, cluster.validationsInfo),
101
- [t, cluster.validationsInfo],
102
- );
103
-
104
- const enableAllocation = values.networkType === NETWORK_TYPE_SDN;
105
- const isDualStack = values.stackType === DUAL_STACK;
106
-
107
- React.useEffect(() => {
108
- if (!isViewerMode && !enableAllocation) {
109
- setFieldValue('vipDhcpAllocation', false);
110
- }
111
- }, [enableAllocation, isViewerMode, setFieldValue]);
112
-
113
- const onChangeDhcp = React.useCallback(
114
- (hasDhcp: boolean) => {
115
- // We need to sync the values back to the form
116
- setFieldValue('apiVips', hasDhcp ? [] : cluster.apiVips, true);
117
- setFieldValue('ingressVips', hasDhcp ? [] : cluster.ingressVips, true);
118
- },
119
- [cluster.apiVips, cluster.ingressVips, setFieldValue],
120
- );
121
-
122
- const setVipValueAtIndex = (
123
- field: 'apiVips' | 'ingressVips',
124
- index: number,
125
- e: React.ChangeEvent<HTMLInputElement>,
126
- ) => {
127
- const fieldArray: ApiVip[] =
128
- field === 'apiVips' ? values.apiVips || [] : values.ingressVips || [];
129
- const next: ApiVip[] = Array.isArray(fieldArray) ? [...fieldArray] : [];
130
- // Ensure array has the desired length
131
- while (next.length <= index) {
132
- next.push({ ip: '', clusterId: cluster.id });
133
- }
134
- next[index] = { ip: e.target.value, clusterId: cluster.id };
135
- setFieldValue(field, next, true);
136
- };
137
-
138
- return (
139
- <>
140
- {!isVipDhcpAllocationDisabled && (
141
- <OcmCheckboxField
142
- onChange={onChangeDhcp}
143
- label={
144
- <>
145
- <Tooltip
146
- hidden={enableAllocation}
147
- content={
148
- "A cluster with OVN networking type cannot use 'allocate IPs via DHCP server'"
149
- }
150
- >
151
- <span>Allocate IPs via DHCP server</span>
152
- </Tooltip>
153
- <NewFeatureSupportLevelBadge featureId="VIP_AUTO_ALLOC" supportLevel={supportLevel} />
154
- </>
155
- }
156
- name="vipDhcpAllocation"
157
- isDisabled={!enableAllocation}
158
- />
159
- )}
160
- {values.vipDhcpAllocation ? (
161
- <>
162
- <FormikStaticField
163
- label={
164
- <>
165
- <span>API IP</span> <PopoverIcon bodyContent={ipPopoverContent} />
166
- </>
167
- }
168
- name="apiVip"
169
- helperText={ipHelperText}
170
- value={selectApiVip(values)}
171
- isValid={!apiVipFailedValidationMessage}
172
- isRequired
173
- >
174
- <VipStaticValue
175
- id="vip-api"
176
- vipValue={selectApiVip(cluster)}
177
- cluster={cluster}
178
- validationErrorMessage={apiVipFailedValidationMessage}
179
- />
180
- </FormikStaticField>
181
- <FormikStaticField
182
- label={
183
- <>
184
- <span>Ingress IP</span> <PopoverIcon bodyContent={ipPopoverContent} />
185
- </>
186
- }
187
- name="ingressVip"
188
- helperText={ipHelperText}
189
- value={selectIngressVip(values)}
190
- isValid={!ingressVipFailedValidationMessage}
191
- isRequired
192
- >
193
- <VipStaticValue
194
- id="vip-ingress"
195
- vipValue={selectIngressVip(cluster)}
196
- cluster={cluster}
197
- validationErrorMessage={ingressVipFailedValidationMessage}
198
- />
199
- </FormikStaticField>
200
- </>
201
- ) : (
202
- <FormGroup>
203
- <FieldArray name="vips">
204
- {() => (
205
- <Stack>
206
- <StackItem>
207
- <OcmInputField
208
- label={
209
- <>
210
- <span>API IP</span> <PopoverIcon bodyContent={ipPopoverContent} />
211
- </>
212
- }
213
- name="apiVips.0.ip"
214
- helperText={ipHelperText}
215
- isRequired
216
- labelInfo={isDualStack ? 'Primary' : undefined}
217
- onChange={(e) =>
218
- setVipValueAtIndex('apiVips', 0, e as React.ChangeEvent<HTMLInputElement>)
219
- }
220
- />
221
- </StackItem>
222
- {isDualStack && (
223
- <StackItem>
224
- <OcmInputField
225
- label={
226
- <>
227
- <span>API IP</span> <PopoverIcon bodyContent={ipPopoverContent} />
228
- </>
229
- }
230
- name="apiVips.1.ip"
231
- helperText={ipHelperText}
232
- labelInfo={'Secondary'}
233
- onChange={(e) =>
234
- setVipValueAtIndex('apiVips', 1, e as React.ChangeEvent<HTMLInputElement>)
235
- }
236
- />
237
- </StackItem>
238
- )}
239
- <StackItem>
240
- <OcmInputField
241
- name="ingressVips.0.ip"
242
- label={
243
- <>
244
- <span>Ingress IP</span> <PopoverIcon bodyContent={ipPopoverContent} />
245
- </>
246
- }
247
- helperText={ipHelperText}
248
- isRequired
249
- labelInfo={isDualStack ? 'Primary' : undefined}
250
- onChange={(e) =>
251
- setVipValueAtIndex('ingressVips', 0, e as React.ChangeEvent<HTMLInputElement>)
252
- }
253
- />
254
- </StackItem>
255
- {isDualStack && (
256
- <StackItem>
257
- <OcmInputField
258
- name="ingressVips.1.ip"
259
- label={
260
- <>
261
- <span>Ingress IP</span> <PopoverIcon bodyContent={ipPopoverContent} />
262
- </>
263
- }
264
- helperText={ipHelperText}
265
- labelInfo={'Secondary'}
266
- onChange={(e) =>
267
- setVipValueAtIndex(
268
- 'ingressVips',
269
- 1,
270
- e as React.ChangeEvent<HTMLInputElement>,
271
- )
272
- }
273
- />
274
- </StackItem>
275
- )}
276
- </Stack>
277
- )}
278
- </FieldArray>
279
- </FormGroup>
280
- )}
281
- </>
282
- );
283
- };