@openshift-assisted/ui-lib 2.52.2 → 2.53.1

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 (275) hide show
  1. package/build/@types/cim/components/ClusterDeployment/ClusterDeploymentWizard.d.ts +1 -1
  2. package/build/@types/cim/components/ClusterDeployment/ClusterDeploymentWizard.d.ts.map +1 -1
  3. package/build/@types/cim/components/ClusterDeployment/NetworkConfiguration.d.ts +1 -1
  4. package/build/@types/cim/components/ClusterDeployment/NetworkConfiguration.d.ts.map +1 -1
  5. package/build/@types/cim/components/ClusterDeployment/customManifests/ClusterDeploymentCustomManifestsStep.d.ts.map +1 -1
  6. package/build/@types/cim/components/ClusterDeployment/networkConfigurationValidation.d.ts +1 -1
  7. package/build/@types/cim/components/ClusterDeployment/networkConfigurationValidation.d.ts.map +1 -1
  8. package/build/@types/cim/components/ClusterDeployment/networking/NetworkTypeDropdown.d.ts +5 -0
  9. package/build/@types/cim/components/ClusterDeployment/networking/NetworkTypeDropdown.d.ts.map +1 -0
  10. package/build/@types/cim/components/ClusterDeployment/review/ClusterDeploymentReviewStep.d.ts.map +1 -1
  11. package/build/@types/cim/components/ClusterDeployment/types.d.ts +0 -1
  12. package/build/@types/cim/components/ClusterDeployment/types.d.ts.map +1 -1
  13. package/build/@types/cim/components/ClusterDeployment/use-networking-formik.d.ts +4 -4
  14. package/build/@types/cim/components/ClusterDeployment/use-networking-formik.d.ts.map +1 -1
  15. package/build/@types/cim/components/ClusterDeployment/wizardTransition.d.ts.map +1 -1
  16. package/build/@types/cim/components/featureSupportLevels/ACMFeatureSupportLevelProvider.d.ts.map +1 -1
  17. package/build/@types/cim/components/helpers/clusterDeployment.d.ts.map +1 -1
  18. package/build/@types/cim/components/helpers/versions.d.ts +2 -2
  19. package/build/@types/cim/components/helpers/versions.d.ts.map +1 -1
  20. package/build/@types/cim/components/helpers/versions.test.d.ts +2 -0
  21. package/build/@types/cim/components/helpers/versions.test.d.ts.map +1 -0
  22. package/build/@types/cim/components/modals/CimConfiguration/CimConfigurationModal.d.ts.map +1 -1
  23. package/build/@types/cim/components/modals/CimConfiguration/persist.d.ts +14 -17
  24. package/build/@types/cim/components/modals/CimConfiguration/persist.d.ts.map +1 -1
  25. package/build/@types/cim/hooks/index.d.ts +1 -0
  26. package/build/@types/cim/hooks/index.d.ts.map +1 -1
  27. package/build/@types/cim/hooks/useAgents.d.ts +4 -0
  28. package/build/@types/cim/hooks/useAgents.d.ts.map +1 -0
  29. package/build/@types/cim/types/k8s/agent-cluster-install.d.ts +1 -1
  30. package/build/@types/cim/types/k8s/agent-cluster-install.d.ts.map +1 -1
  31. package/build/@types/common/components/clusterDetail/ClusterCredentials.d.ts.map +1 -1
  32. package/build/@types/common/components/clusterDetail/ConsoleModal.d.ts +0 -5
  33. package/build/@types/common/components/clusterDetail/ConsoleModal.d.ts.map +1 -1
  34. package/build/@types/common/components/clusterWizard/clusterDetailsValidation.d.ts.map +1 -1
  35. package/build/@types/common/components/clusterWizard/customManifests/CustomManifestsAlert.d.ts +6 -0
  36. package/build/@types/common/components/clusterWizard/customManifests/CustomManifestsAlert.d.ts.map +1 -0
  37. package/build/@types/common/components/clusterWizard/customManifests/index.d.ts +2 -0
  38. package/build/@types/common/components/clusterWizard/customManifests/index.d.ts.map +1 -0
  39. package/build/@types/common/components/clusterWizard/index.d.ts +2 -0
  40. package/build/@types/common/components/clusterWizard/index.d.ts.map +1 -1
  41. package/build/@types/common/components/clusterWizard/networkingSteps/AvailableSubnetsControl.d.ts +2 -1
  42. package/build/@types/common/components/clusterWizard/networkingSteps/AvailableSubnetsControl.d.ts.map +1 -1
  43. package/build/@types/common/components/clusterWizard/networkingSteps/StackTypeControlGroup.d.ts +2 -1
  44. package/build/@types/common/components/clusterWizard/networkingSteps/StackTypeControlGroup.d.ts.map +1 -1
  45. package/build/@types/common/components/clusterWizard/networkingSteps/ThirdPartyCNIBanner.d.ts +3 -0
  46. package/build/@types/common/components/clusterWizard/networkingSteps/ThirdPartyCNIBanner.d.ts.map +1 -0
  47. package/build/@types/common/components/clusterWizard/networkingSteps/index.d.ts +1 -0
  48. package/build/@types/common/components/clusterWizard/networkingSteps/index.d.ts.map +1 -1
  49. package/build/@types/common/components/ui/formik/utils.d.ts +1 -0
  50. package/build/@types/common/components/ui/formik/utils.d.ts.map +1 -1
  51. package/build/@types/common/config/constants.d.ts +2 -2
  52. package/build/@types/common/config/constants.d.ts.map +1 -1
  53. package/build/@types/common/types/networkType.d.ts +2 -1
  54. package/build/@types/common/types/networkType.d.ts.map +1 -1
  55. package/build/@types/common/validationSchemas/networkingValidation.d.ts +10 -0
  56. package/build/@types/common/validationSchemas/networkingValidation.d.ts.map +1 -1
  57. package/build/@types/ocm/components/clusterConfiguration/ControlPlaneNodesDropdown.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/NetworkTypeDropdown.d.ts.map +1 -1
  60. package/build/@types/ocm/components/clusterConfiguration/networkConfiguration/networkConfigurationValidation.d.ts.map +1 -1
  61. package/build/@types/ocm/components/clusterConfiguration/review/ReviewNetworkingTable.d.ts.map +1 -1
  62. package/build/@types/ocm/components/clusterConfiguration/review/ReviewSummary.d.ts.map +1 -1
  63. package/build/@types/ocm/components/{clusterDetail/ClusterProperties.d.ts → clusterConfiguration/review/utils.d.ts} +1 -8
  64. package/build/@types/ocm/components/clusterConfiguration/review/utils.d.ts.map +1 -0
  65. package/build/@types/ocm/components/clusterConfiguration/review/utils.test.d.ts +2 -0
  66. package/build/@types/ocm/components/clusterConfiguration/review/utils.test.d.ts.map +1 -0
  67. package/build/@types/ocm/components/clusterConfiguration/staticIp/data/formDataToInfraEnvField.d.ts.map +1 -1
  68. package/build/@types/ocm/components/clusterConfiguration/staticIp/data/nmstateTypes.d.ts +1 -0
  69. package/build/@types/ocm/components/clusterConfiguration/staticIp/data/nmstateTypes.d.ts.map +1 -1
  70. package/build/@types/ocm/components/clusterConfiguration/staticIp/data/nmstateYaml.d.ts +1 -1
  71. package/build/@types/ocm/components/clusterConfiguration/staticIp/data/nmstateYaml.d.ts.map +1 -1
  72. package/build/@types/ocm/components/clusterDetail/ClusterDetailsButtonGroup.d.ts.map +1 -1
  73. package/build/@types/ocm/components/clusterDetail/index.d.ts +0 -1
  74. package/build/@types/ocm/components/clusterDetail/index.d.ts.map +1 -1
  75. package/build/@types/ocm/components/clusterWizard/ClusterDetailsForm.d.ts.map +1 -1
  76. package/build/@types/ocm/components/clusters/AssistedInstallerHeader.d.ts +5 -1
  77. package/build/@types/ocm/components/clusters/AssistedInstallerHeader.d.ts.map +1 -1
  78. package/build/@types/ocm/components/clusters/ClustersListToolbar.d.ts +1 -2
  79. package/build/@types/ocm/components/clusters/ClustersListToolbar.d.ts.map +1 -1
  80. package/build/@types/ocm/components/clusters/ClustersTable.d.ts.map +1 -1
  81. package/build/@types/ocm/hooks/useClusterCustomManifests.d.ts.map +1 -1
  82. package/build/@types/ocm/hooks/useLateBinding.d.ts.map +1 -1
  83. package/build/@types/ocm/hooks/useUISettings.d.ts.map +1 -1
  84. package/build/@types/ocm/services/ClusterDetailsService.d.ts +2 -1
  85. package/build/@types/ocm/services/ClusterDetailsService.d.ts.map +1 -1
  86. package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentWizard.js +9 -1
  87. package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentWizard.js.map +1 -1
  88. package/build/cjs/cim/components/ClusterDeployment/NetworkConfiguration.js +46 -7
  89. package/build/cjs/cim/components/ClusterDeployment/NetworkConfiguration.js.map +1 -1
  90. package/build/cjs/cim/components/ClusterDeployment/customManifests/ClusterDeploymentCustomManifestsStep.js +22 -21
  91. package/build/cjs/cim/components/ClusterDeployment/customManifests/ClusterDeploymentCustomManifestsStep.js.map +1 -1
  92. package/build/cjs/cim/components/ClusterDeployment/networkConfigurationValidation.js +25 -9
  93. package/build/cjs/cim/components/ClusterDeployment/networkConfigurationValidation.js.map +1 -1
  94. package/build/cjs/cim/components/ClusterDeployment/networking/NetworkTypeDropdown.js +35 -0
  95. package/build/cjs/cim/components/ClusterDeployment/networking/NetworkTypeDropdown.js.map +1 -0
  96. package/build/cjs/cim/components/ClusterDeployment/review/ClusterDeploymentReviewStep.js +4 -4
  97. package/build/cjs/cim/components/ClusterDeployment/review/ClusterDeploymentReviewStep.js.map +1 -1
  98. package/build/cjs/cim/components/ClusterDeployment/use-networking-formik.js +13 -18
  99. package/build/cjs/cim/components/ClusterDeployment/use-networking-formik.js.map +1 -1
  100. package/build/cjs/cim/components/ClusterDeployment/wizardTransition.js +5 -1
  101. package/build/cjs/cim/components/ClusterDeployment/wizardTransition.js.map +1 -1
  102. package/build/cjs/cim/components/Hypershift/modals/NodePoolForm.js +1 -1
  103. package/build/cjs/cim/components/Hypershift/modals/NodePoolForm.js.map +1 -1
  104. package/build/cjs/cim/components/featureSupportLevels/ACMFeatureSupportLevelProvider.js +1 -4
  105. package/build/cjs/cim/components/featureSupportLevels/ACMFeatureSupportLevelProvider.js.map +1 -1
  106. package/build/cjs/cim/components/helpers/clusterDeployment.js +14 -10
  107. package/build/cjs/cim/components/helpers/clusterDeployment.js.map +1 -1
  108. package/build/cjs/cim/components/helpers/versions.js +39 -28
  109. package/build/cjs/cim/components/helpers/versions.js.map +1 -1
  110. package/build/cjs/cim/components/helpers/versions.test.js +423 -0
  111. package/build/cjs/cim/components/helpers/versions.test.js.map +1 -0
  112. package/build/cjs/cim/components/modals/CimConfiguration/CimConfigurationModal.js +39 -16
  113. package/build/cjs/cim/components/modals/CimConfiguration/CimConfigurationModal.js.map +1 -1
  114. package/build/cjs/cim/components/modals/CimConfiguration/persist.js +96 -136
  115. package/build/cjs/cim/components/modals/CimConfiguration/persist.js.map +1 -1
  116. package/build/cjs/cim/hooks/index.js +1 -0
  117. package/build/cjs/cim/hooks/index.js.map +1 -1
  118. package/build/cjs/cim/hooks/useAgents.js +13 -0
  119. package/build/cjs/cim/hooks/useAgents.js.map +1 -0
  120. package/build/cjs/common/components/clusterDetail/ClusterCredentials.js +10 -9
  121. package/build/cjs/common/components/clusterDetail/ClusterCredentials.js.map +1 -1
  122. package/build/cjs/common/components/clusterDetail/ConsoleModal.js +1 -10
  123. package/build/cjs/common/components/clusterDetail/ConsoleModal.js.map +1 -1
  124. package/build/cjs/common/components/clusterWizard/clusterDetailsValidation.js +34 -19
  125. package/build/cjs/common/components/clusterWizard/clusterDetailsValidation.js.map +1 -1
  126. package/build/cjs/common/components/clusterWizard/customManifests/CustomManifestsAlert.js +32 -0
  127. package/build/cjs/common/components/clusterWizard/customManifests/CustomManifestsAlert.js.map +1 -0
  128. package/build/cjs/common/components/clusterWizard/customManifests/index.js +5 -0
  129. package/build/cjs/common/components/clusterWizard/customManifests/index.js.map +1 -0
  130. package/build/cjs/common/components/clusterWizard/index.js +2 -0
  131. package/build/cjs/common/components/clusterWizard/index.js.map +1 -1
  132. package/build/cjs/common/components/clusterWizard/networkingSteps/AvailableSubnetsControl.js +8 -2
  133. package/build/cjs/common/components/clusterWizard/networkingSteps/AvailableSubnetsControl.js.map +1 -1
  134. package/build/cjs/common/components/clusterWizard/networkingSteps/ManagedNetworkingControlGroup.js +3 -3
  135. package/build/cjs/common/components/clusterWizard/networkingSteps/StackTypeControlGroup.js +29 -19
  136. package/build/cjs/common/components/clusterWizard/networkingSteps/StackTypeControlGroup.js.map +1 -1
  137. package/build/cjs/common/components/clusterWizard/networkingSteps/ThirdPartyCNIBanner.js +20 -0
  138. package/build/cjs/common/components/clusterWizard/networkingSteps/ThirdPartyCNIBanner.js.map +1 -0
  139. package/build/cjs/common/components/clusterWizard/networkingSteps/index.js +1 -0
  140. package/build/cjs/common/components/clusterWizard/networkingSteps/index.js.map +1 -1
  141. package/build/cjs/common/components/ui/formik/utils.js +5 -1
  142. package/build/cjs/common/components/ui/formik/utils.js.map +1 -1
  143. package/build/cjs/common/config/constants.js +13 -2
  144. package/build/cjs/common/config/constants.js.map +1 -1
  145. package/build/cjs/common/types/networkType.js +9 -8
  146. package/build/cjs/common/types/networkType.js.map +1 -1
  147. package/build/cjs/common/validationSchemas/networkingValidation.js +19 -1
  148. package/build/cjs/common/validationSchemas/networkingValidation.js.map +1 -1
  149. package/build/cjs/ocm/components/clusterConfiguration/ControlPlaneNodesDropdown.js +4 -1
  150. package/build/cjs/ocm/components/clusterConfiguration/ControlPlaneNodesDropdown.js.map +1 -1
  151. package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/CustomManifestsPage.js +1 -20
  152. package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/CustomManifestsPage.js.map +1 -1
  153. package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfigurationForm.js +1 -1
  154. package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfigurationForm.js.map +1 -1
  155. package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/NetworkTypeDropdown.js +6 -9
  156. package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/NetworkTypeDropdown.js.map +1 -1
  157. package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/networkConfigurationValidation.js +4 -4
  158. package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/networkConfigurationValidation.js.map +1 -1
  159. package/build/cjs/ocm/components/clusterConfiguration/review/ReviewClusterDetailTable.js +2 -2
  160. package/build/cjs/ocm/components/clusterConfiguration/review/ReviewClusterDetailTable.js.map +1 -1
  161. package/build/cjs/ocm/components/clusterConfiguration/review/ReviewNetworkingTable.js +6 -5
  162. package/build/cjs/ocm/components/clusterConfiguration/review/ReviewNetworkingTable.js.map +1 -1
  163. package/build/cjs/ocm/components/clusterConfiguration/review/ReviewSummary.js +5 -2
  164. package/build/cjs/ocm/components/clusterConfiguration/review/ReviewSummary.js.map +1 -1
  165. package/build/cjs/ocm/components/clusterConfiguration/review/utils.js +57 -0
  166. package/build/cjs/ocm/components/clusterConfiguration/review/utils.js.map +1 -0
  167. package/build/cjs/ocm/components/{clusterDetail/ClusterProperties.test.js → clusterConfiguration/review/utils.test.js} +13 -13
  168. package/build/cjs/ocm/components/clusterConfiguration/review/utils.test.js.map +1 -0
  169. package/build/cjs/ocm/components/clusterConfiguration/staticIp/data/formDataToInfraEnvField.js +2 -2
  170. package/build/cjs/ocm/components/clusterConfiguration/staticIp/data/formDataToInfraEnvField.js.map +1 -1
  171. package/build/cjs/ocm/components/clusterConfiguration/staticIp/data/nmstateTypes.js.map +1 -1
  172. package/build/cjs/ocm/components/clusterConfiguration/staticIp/data/nmstateYaml.js +3 -7
  173. package/build/cjs/ocm/components/clusterConfiguration/staticIp/data/nmstateYaml.js.map +1 -1
  174. package/build/cjs/ocm/components/clusterDetail/ClusterDetailsButtonGroup.js +8 -2
  175. package/build/cjs/ocm/components/clusterDetail/ClusterDetailsButtonGroup.js.map +1 -1
  176. package/build/cjs/ocm/components/clusterDetail/index.js +1 -3
  177. package/build/cjs/ocm/components/clusterDetail/index.js.map +1 -1
  178. package/build/cjs/ocm/components/clusterWizard/ClusterDetailsForm.js +10 -1
  179. package/build/cjs/ocm/components/clusterWizard/ClusterDetailsForm.js.map +1 -1
  180. package/build/cjs/ocm/components/clusters/AssistedInstallerHeader.js +2 -2
  181. package/build/cjs/ocm/components/clusters/AssistedInstallerHeader.js.map +1 -1
  182. package/build/cjs/ocm/components/clusters/ClusterPage.js +1 -1
  183. package/build/cjs/ocm/components/clusters/ClusterPage.js.map +1 -1
  184. package/build/cjs/ocm/components/clusters/ClustersListToolbar.js +2 -2
  185. package/build/cjs/ocm/components/clusters/ClustersListToolbar.js.map +1 -1
  186. package/build/cjs/ocm/components/clusters/ClustersTable.js +4 -3
  187. package/build/cjs/ocm/components/clusters/ClustersTable.js.map +1 -1
  188. package/build/cjs/ocm/components/featureSupportLevels/featureStateUtils.js +1 -1
  189. package/build/cjs/ocm/hooks/useClusterCustomManifests.js +3 -15
  190. package/build/cjs/ocm/hooks/useClusterCustomManifests.js.map +1 -1
  191. package/build/cjs/ocm/hooks/useLateBinding.js +41 -26
  192. package/build/cjs/ocm/hooks/useLateBinding.js.map +1 -1
  193. package/build/cjs/ocm/hooks/usePullSecret.js +2 -2
  194. package/build/cjs/ocm/hooks/useUISettings.js +1 -1
  195. package/build/cjs/ocm/hooks/useUISettings.js.map +1 -1
  196. package/build/cjs/ocm/services/ClusterDetailsService.js +4 -2
  197. package/build/cjs/ocm/services/ClusterDetailsService.js.map +1 -1
  198. package/lib/cim/components/ClusterDeployment/ClusterDeploymentWizard.tsx +10 -2
  199. package/lib/cim/components/ClusterDeployment/NetworkConfiguration.tsx +55 -6
  200. package/lib/cim/components/ClusterDeployment/customManifests/ClusterDeploymentCustomManifestsStep.tsx +18 -2
  201. package/lib/cim/components/ClusterDeployment/networkConfigurationValidation.ts +22 -8
  202. package/lib/cim/components/ClusterDeployment/networking/NetworkTypeDropdown.tsx +81 -0
  203. package/lib/cim/components/ClusterDeployment/review/ClusterDeploymentReviewStep.tsx +18 -14
  204. package/lib/cim/components/ClusterDeployment/types.ts +0 -1
  205. package/lib/cim/components/ClusterDeployment/use-networking-formik.ts +14 -22
  206. package/lib/cim/components/ClusterDeployment/wizardTransition.ts +5 -1
  207. package/lib/cim/components/Hypershift/modals/NodePoolForm.tsx +2 -2
  208. package/lib/cim/components/featureSupportLevels/ACMFeatureSupportLevelProvider.tsx +2 -5
  209. package/lib/cim/components/helpers/clusterDeployment.ts +9 -4
  210. package/lib/cim/components/helpers/versions.test.ts +465 -0
  211. package/lib/cim/components/helpers/versions.ts +37 -31
  212. package/lib/cim/components/modals/CimConfiguration/CimConfigurationModal.tsx +45 -18
  213. package/lib/cim/components/modals/CimConfiguration/persist.ts +97 -199
  214. package/lib/cim/hooks/index.tsx +1 -0
  215. package/lib/cim/hooks/useAgents.tsx +15 -0
  216. package/lib/cim/types/k8s/agent-cluster-install.ts +1 -1
  217. package/lib/common/components/clusterDetail/ClusterCredentials.tsx +49 -53
  218. package/lib/common/components/clusterDetail/ConsoleModal.tsx +0 -35
  219. package/lib/common/components/clusterWizard/clusterDetailsValidation.ts +38 -12
  220. package/lib/common/components/clusterWizard/customManifests/CustomManifestsAlert.tsx +39 -0
  221. package/lib/common/components/clusterWizard/customManifests/index.tsx +1 -0
  222. package/lib/common/components/clusterWizard/index.ts +2 -0
  223. package/lib/common/components/clusterWizard/networkingSteps/AvailableSubnetsControl.tsx +8 -1
  224. package/lib/common/components/clusterWizard/networkingSteps/ManagedNetworkingControlGroup.tsx +3 -3
  225. package/lib/common/components/clusterWizard/networkingSteps/StackTypeControlGroup.tsx +36 -26
  226. package/lib/common/components/clusterWizard/networkingSteps/ThirdPartyCNIBanner.tsx +28 -0
  227. package/lib/common/components/clusterWizard/networkingSteps/index.ts +1 -0
  228. package/lib/common/components/ui/formik/utils.ts +6 -0
  229. package/lib/common/config/constants.ts +14 -1
  230. package/lib/common/types/networkType.ts +9 -8
  231. package/lib/common/validationSchemas/networkingValidation.tsx +39 -1
  232. package/lib/ocm/components/clusterConfiguration/ControlPlaneNodesDropdown.tsx +6 -3
  233. package/lib/ocm/components/clusterConfiguration/manifestsConfiguration/CustomManifestsPage.tsx +10 -45
  234. package/lib/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfigurationForm.tsx +2 -2
  235. package/lib/ocm/components/clusterConfiguration/networkConfiguration/NetworkTypeDropdown.tsx +7 -24
  236. package/lib/ocm/components/clusterConfiguration/networkConfiguration/networkConfigurationValidation.ts +6 -5
  237. package/lib/ocm/components/clusterConfiguration/review/ReviewClusterDetailTable.tsx +1 -1
  238. package/lib/ocm/components/clusterConfiguration/review/ReviewNetworkingTable.tsx +10 -4
  239. package/lib/ocm/components/clusterConfiguration/review/ReviewSummary.tsx +9 -2
  240. package/lib/ocm/components/{clusterDetail/ClusterProperties.test.ts → clusterConfiguration/review/utils.test.ts} +1 -1
  241. package/lib/ocm/components/clusterConfiguration/review/utils.tsx +61 -0
  242. package/lib/ocm/components/clusterConfiguration/staticIp/data/formDataToInfraEnvField.ts +2 -0
  243. package/lib/ocm/components/clusterConfiguration/staticIp/data/nmstateTypes.ts +1 -0
  244. package/lib/ocm/components/clusterConfiguration/staticIp/data/nmstateYaml.ts +2 -0
  245. package/lib/ocm/components/clusterDetail/ClusterDetailsButtonGroup.tsx +27 -2
  246. package/lib/ocm/components/clusterDetail/index.ts +0 -1
  247. package/lib/ocm/components/clusterWizard/ClusterDetailsForm.tsx +10 -1
  248. package/lib/ocm/components/clusters/AssistedInstallerHeader.tsx +6 -2
  249. package/lib/ocm/components/clusters/ClusterPage.tsx +1 -1
  250. package/lib/ocm/components/clusters/ClustersListToolbar.tsx +3 -5
  251. package/lib/ocm/components/clusters/ClustersTable.tsx +60 -50
  252. package/lib/ocm/components/featureSupportLevels/featureStateUtils.ts +1 -1
  253. package/lib/ocm/hooks/useClusterCustomManifests.ts +3 -0
  254. package/lib/ocm/hooks/useLateBinding.ts +45 -24
  255. package/lib/ocm/hooks/usePullSecret.ts +2 -2
  256. package/lib/ocm/hooks/useUISettings.ts +3 -1
  257. package/lib/ocm/services/ClusterDetailsService.ts +6 -0
  258. package/package.json +9 -9
  259. package/build/@types/common/components/clusterWizard/networkingSteps/NetworkTypeControlGroup.d.ts +0 -7
  260. package/build/@types/common/components/clusterWizard/networkingSteps/NetworkTypeControlGroup.d.ts.map +0 -1
  261. package/build/@types/ocm/components/clusterDetail/AssistedInstallerExtraDetailCard.d.ts +0 -8
  262. package/build/@types/ocm/components/clusterDetail/AssistedInstallerExtraDetailCard.d.ts.map +0 -1
  263. package/build/@types/ocm/components/clusterDetail/ClusterProperties.d.ts.map +0 -1
  264. package/build/@types/ocm/components/clusterDetail/ClusterProperties.test.d.ts +0 -2
  265. package/build/@types/ocm/components/clusterDetail/ClusterProperties.test.d.ts.map +0 -1
  266. package/build/cjs/common/components/clusterWizard/networkingSteps/NetworkTypeControlGroup.js +0 -33
  267. package/build/cjs/common/components/clusterWizard/networkingSteps/NetworkTypeControlGroup.js.map +0 -1
  268. package/build/cjs/ocm/components/clusterDetail/AssistedInstallerExtraDetailCard.js +0 -40
  269. package/build/cjs/ocm/components/clusterDetail/AssistedInstallerExtraDetailCard.js.map +0 -1
  270. package/build/cjs/ocm/components/clusterDetail/ClusterProperties.js +0 -77
  271. package/build/cjs/ocm/components/clusterDetail/ClusterProperties.js.map +0 -1
  272. package/build/cjs/ocm/components/clusterDetail/ClusterProperties.test.js.map +0 -1
  273. package/lib/common/components/clusterWizard/networkingSteps/NetworkTypeControlGroup.tsx +0 -74
  274. package/lib/ocm/components/clusterDetail/AssistedInstallerExtraDetailCard.tsx +0 -69
  275. package/lib/ocm/components/clusterDetail/ClusterProperties.tsx +0 -169
@@ -1,8 +1,6 @@
1
1
  import React from 'react';
2
2
  import { useField, useFormikContext } from 'formik';
3
3
  import {
4
- Alert,
5
- AlertVariant,
6
4
  Dropdown,
7
5
  DropdownItem,
8
6
  FormGroup,
@@ -12,7 +10,7 @@ import {
12
10
  StackItem,
13
11
  Tooltip,
14
12
  } from '@patternfly/react-core';
15
- import { getFieldId, ExternalLink } from '../../../../common/components/ui';
13
+ import { getFieldId } from '../../../../common/components/ui';
16
14
  import {
17
15
  NewFeatureSupportLevelMap,
18
16
  useNewFeatureSupportLevel,
@@ -25,7 +23,8 @@ import {
25
23
  NETWORK_TYPE_FEATURE_IDS,
26
24
  isThirdPartyCNI,
27
25
  } from '../../../../common/types/networkType';
28
- import { RED_HAT_CNI_SUPPORT_MATRIX_LINK } from '../../../../common/config/docs_links';
26
+ import { useTranslation } from '../../../../common/hooks';
27
+ import { ThirdPartyCNIBanner } from '../../../../common';
29
28
 
30
29
  export interface NetworkTypeDropDownProps {
31
30
  isDisabled?: boolean;
@@ -36,6 +35,7 @@ export const NetworkTypeDropDown = ({
36
35
  isDisabled = false,
37
36
  featureSupportLevelData,
38
37
  }: NetworkTypeDropDownProps) => {
38
+ const { t } = useTranslation();
39
39
  const [field, , { setValue }] = useField<string>('networkType');
40
40
  const [isOpen, setOpen] = React.useState(false);
41
41
  const { values } = useFormikContext<NetworkConfigurationValues>();
@@ -54,9 +54,9 @@ export const NetworkTypeDropDown = ({
54
54
  }
55
55
  }, [field.value, setValue, featureSupportLevelData, getFeatureDisabledReason]);
56
56
 
57
- const currentDisplayValue = NETWORK_TYPE_LABELS[field.value];
57
+ const currentDisplayValue = NETWORK_TYPE_LABELS(t)[field.value];
58
58
 
59
- const dropdownItems = Object.entries(NETWORK_TYPE_LABELS).map(([value, label]) => {
59
+ const dropdownItems = Object.entries(NETWORK_TYPE_LABELS(t)).map(([value, label]) => {
60
60
  const disabledReason = getFeatureDisabledReason(
61
61
  NETWORK_TYPE_FEATURE_IDS[value],
62
62
  featureSupportLevelData ?? undefined,
@@ -119,24 +119,7 @@ export const NetworkTypeDropDown = ({
119
119
  </Dropdown>
120
120
  </FormGroup>
121
121
  </StackItem>
122
- {showThirdPartyBanner && (
123
- <StackItem>
124
- <Alert variant={AlertVariant.warning} isInline title="Third-party CNI">
125
- <Stack hasGutter>
126
- <StackItem>
127
- Third-party CNIs require uploading CNI manifests. Please verify you have the
128
- required manifests and that the chosen CNI is compatible with your platform and
129
- OpenShift version.
130
- </StackItem>
131
- <StackItem>
132
- <ExternalLink href={RED_HAT_CNI_SUPPORT_MATRIX_LINK}>
133
- Red Hat CNI Support Matrix
134
- </ExternalLink>
135
- </StackItem>
136
- </Stack>
137
- </Alert>
138
- </StackItem>
139
- )}
122
+ {showThirdPartyBanner && <ThirdPartyCNIBanner />}
140
123
  </Stack>
141
124
  );
142
125
  };
@@ -11,7 +11,7 @@ import {
11
11
  serviceNetworkValidationSchema,
12
12
  IPv4ValidationSchema,
13
13
  sshPublicKeyValidationSchema,
14
- IPV4_STACK,
14
+ SINGLE_STACK,
15
15
  DUAL_STACK,
16
16
  vipArrayValidationSchema,
17
17
  NETWORK_TYPE_OVN,
@@ -50,7 +50,7 @@ export const getNetworkInitialValues = (
50
50
  : 'clusterManaged',
51
51
  networkType: cluster.networkType || NETWORK_TYPE_OVN,
52
52
  machineNetworks: cluster.machineNetworks || [],
53
- stackType: isDualStackType ? DUAL_STACK : IPV4_STACK,
53
+ stackType: isDualStackType ? DUAL_STACK : SINGLE_STACK,
54
54
  clusterNetworks:
55
55
  cluster.clusterNetworks ||
56
56
  (isDualStackType
@@ -85,7 +85,8 @@ export const getNetworkConfigurationValidationSchema = (
85
85
  values.managedNetworkingType === 'userManaged'
86
86
  ? Yup.array()
87
87
  : machineNetworksValidationSchema.when('stackType', {
88
- is: (stackType: NetworkConfigurationValues['stackType']) => stackType === IPV4_STACK,
88
+ is: (stackType: NetworkConfigurationValues['stackType']) =>
89
+ stackType === SINGLE_STACK,
89
90
  then: () => machineNetworksValidationSchema.concat(IPv4ValidationSchema),
90
91
  otherwise: () =>
91
92
  values.machineNetworks && values.machineNetworks?.length >= 2
@@ -95,13 +96,13 @@ export const getNetworkConfigurationValidationSchema = (
95
96
  : Yup.array(),
96
97
  }),
97
98
  clusterNetworks: clusterNetworksValidationSchema(t).when('stackType', {
98
- is: (stackType: NetworkConfigurationValues['stackType']) => stackType === IPV4_STACK,
99
+ is: (stackType: NetworkConfigurationValues['stackType']) => stackType === SINGLE_STACK,
99
100
  then: (schema) => schema.concat(IPv4ValidationSchema),
100
101
  otherwise: (schema) =>
101
102
  schema.concat(dualStackValidationSchema('cluster network', t, openshiftVersion)),
102
103
  }),
103
104
  serviceNetworks: serviceNetworkValidationSchema(t).when('stackType', {
104
- is: (stackType: NetworkConfigurationValues['stackType']) => stackType === IPV4_STACK,
105
+ is: (stackType: NetworkConfigurationValues['stackType']) => stackType === SINGLE_STACK,
105
106
  then: (schema) => schema.concat(IPv4ValidationSchema),
106
107
  otherwise: (schema) =>
107
108
  schema.concat(dualStackValidationSchema('service network', t, openshiftVersion)),
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { Table, TableVariant, Tbody, Td, Tr } from '@patternfly/react-table';
3
3
  import { genericTableRowKey, getDefaultCpuArchitecture } from '../../../../common';
4
- import { getDiskEncryptionEnabledOnStatus } from '../../clusterDetail/ClusterProperties';
4
+ import { getDiskEncryptionEnabledOnStatus } from './utils';
5
5
  import OpenShiftVersionDetail from '../../clusterDetail/OpenShiftVersionDetail';
6
6
  import { useNewFeatureSupportLevel } from '../../../../common/components/newFeatureSupportLevels';
7
7
  import { Cluster } from '@openshift-assisted/types/assisted-installer-service';
@@ -1,8 +1,13 @@
1
1
  import { Title } from '@patternfly/react-core';
2
2
  import { Table, TableVariant, Tbody, Td, Tr } from '@patternfly/react-table';
3
3
  import React from 'react';
4
- import { genericTableRowKey, isDualStack, NETWORK_TYPE_LABELS } from '../../../../common';
5
- import { getManagementType, getStackTypeLabel } from '../../clusterDetail/ClusterProperties';
4
+ import {
5
+ genericTableRowKey,
6
+ isDualStack,
7
+ NETWORK_TYPE_LABELS,
8
+ useTranslation,
9
+ } from '../../../../common';
10
+ import { getManagementType, getStackTypeLabel } from './utils';
6
11
  import { Cluster } from '@openshift-assisted/types/assisted-installer-service';
7
12
 
8
13
  type ReviewTableRowsType = {
@@ -11,6 +16,7 @@ type ReviewTableRowsType = {
11
16
  }[];
12
17
 
13
18
  export const ReviewNetworkingTable = ({ cluster }: { cluster: Cluster }) => {
19
+ const { t } = useTranslation();
14
20
  const rows = React.useMemo(() => {
15
21
  const networkRows = [
16
22
  {
@@ -197,13 +203,13 @@ export const ReviewNetworkingTable = ({ cluster }: { cluster: Cluster }) => {
197
203
  cells: [
198
204
  { title: 'Networking type' },
199
205
  {
200
- title: cluster.networkType ? NETWORK_TYPE_LABELS[cluster.networkType] : '-',
206
+ title: cluster.networkType ? NETWORK_TYPE_LABELS(t)[cluster.networkType] : '-',
201
207
  props: { 'data-testid': 'networking-type', colSpan: 2 },
202
208
  },
203
209
  ],
204
210
  },
205
211
  ] as ReviewTableRowsType;
206
- }, [cluster]);
212
+ }, [cluster, t]);
207
213
 
208
214
  return (
209
215
  <>
@@ -19,9 +19,16 @@ import { ReviewCustomManifestsTable } from './ReviewCustomManifestsTable';
19
19
  import PlatformIntegrationNote from '../platformIntegration/PlatformIntegrationNote';
20
20
  import useClusterCustomManifests from '../../../hooks/useClusterCustomManifests';
21
21
  import { Cluster } from '@openshift-assisted/types/assisted-installer-service';
22
+ import { ListManifestsExtended } from '../manifestsConfiguration/data/dataTypes';
23
+
24
+ const userProvidedManifests = (manifests: ListManifestsExtended | undefined) =>
25
+ (manifests ?? []).filter((m) => m.manifestSource !== 'system');
22
26
 
23
27
  export const ReviewSummaryContent = ({ cluster }: { cluster: Cluster }) => {
24
28
  const { customManifests } = useClusterCustomManifests(cluster.id, false);
29
+ const manifestsForReview = userProvidedManifests(customManifests);
30
+ const showCustomManifests = manifestsForReview.length > 0;
31
+
25
32
  return (
26
33
  <>
27
34
  <TableSummaryExpandable title={'Cluster details'} id={'cluster-details-expandable'}>
@@ -57,9 +64,9 @@ export const ReviewSummaryContent = ({ cluster }: { cluster: Cluster }) => {
57
64
  <ReviewNetworkingTable cluster={cluster} />
58
65
  </TableSummaryExpandable>
59
66
 
60
- {customManifests && customManifests.length > 0 && (
67
+ {showCustomManifests && (
61
68
  <TableSummaryExpandable title={'Custom manifests'} id={'custom-manifests-expandable'}>
62
- <ReviewCustomManifestsTable manifests={customManifests} />
69
+ <ReviewCustomManifestsTable manifests={manifestsForReview} />
63
70
  </TableSummaryExpandable>
64
71
  )}
65
72
  </>
@@ -1,5 +1,5 @@
1
1
  import { test, describe, expect } from 'vitest';
2
- import { getStackTypeLabel } from './ClusterProperties';
2
+ import { getStackTypeLabel } from './utils';
3
3
  import { Cluster } from '@openshift-assisted/types/assisted-installer-service';
4
4
 
5
5
  const createCluster = (overrides: Partial<Cluster> = {}): Cluster =>
@@ -0,0 +1,61 @@
1
+ import React from 'react';
2
+ import { isDualStack } from '../../../../common';
3
+ import { Cluster, DiskEncryption } from '@openshift-assisted/types/assisted-installer-service';
4
+
5
+ export const getManagementType = ({ userManagedNetworking }: Cluster): string =>
6
+ userManagedNetworking ? 'User-managed networking' : 'Cluster-managed networking';
7
+
8
+ export const getStackTypeLabel = (cluster: Cluster): string =>
9
+ isDualStack(cluster) ? 'Dual-stack' : 'IPv4';
10
+
11
+ export const getDiskEncryptionEnabledOnStatus = (diskEncryption: DiskEncryption['enableOn']) => {
12
+ let diskEncryptionType = null;
13
+ switch (diskEncryption) {
14
+ case undefined:
15
+ case 'none':
16
+ break;
17
+ case 'all':
18
+ diskEncryptionType = (
19
+ <>
20
+ Enabled on control plane nodes
21
+ <br />
22
+ Enabled on workers
23
+ </>
24
+ );
25
+ break;
26
+ case 'masters':
27
+ diskEncryptionType = <>Enabled on control plane nodes</>;
28
+ break;
29
+ case 'workers':
30
+ diskEncryptionType = <>Enabled on workers</>;
31
+ break;
32
+ case 'arbiters':
33
+ diskEncryptionType = <>Enabled on arbiters</>;
34
+ break;
35
+ case 'masters,arbiters':
36
+ diskEncryptionType = <>Enabled on control plane nodes and arbiters</>;
37
+ break;
38
+ case 'masters,workers':
39
+ diskEncryptionType = <>Enabled on control plane nodes and workers</>;
40
+ break;
41
+ case 'arbiters,workers':
42
+ diskEncryptionType = <>Enabled on arbiters and workers</>;
43
+ break;
44
+ case 'masters,arbiters,workers':
45
+ diskEncryptionType = (
46
+ <>
47
+ Enabled on control plane nodes
48
+ <br />
49
+ Enabled on arbiters
50
+ <br />
51
+ Enabled on workers
52
+ </>
53
+ );
54
+ break;
55
+ default: {
56
+ const _exhaustive: never = diskEncryption;
57
+ return _exhaustive;
58
+ }
59
+ }
60
+ return diskEncryptionType;
61
+ };
@@ -73,6 +73,7 @@ const getNmstateObject = (
73
73
  realProtocolConfigs[protocolVersion] = getNmstateProtocolConfig(
74
74
  hostIp,
75
75
  getPrefixLength(networkWide, protocolVersion),
76
+ protocolVersion,
76
77
  );
77
78
  if (networkWide.useVlan && networkWide.vlanId) {
78
79
  if (bondType && hasBondsConfigured) {
@@ -94,6 +95,7 @@ const getNmstateObject = (
94
95
  [protocolVersion]: getNmstateProtocolConfig(
95
96
  DUMMY_NMSTATE_ADDRESSES[protocolVersion].ip,
96
97
  DUMMY_NMSTATE_ADDRESSES[protocolVersion].prefixLength,
98
+ protocolVersion,
97
99
  ),
98
100
  };
99
101
  nicName = getDummyNicName(protocolVersion);
@@ -15,6 +15,7 @@ export type NmstateProtocolConfig = {
15
15
  address: NmstateAddress[];
16
16
  enabled: boolean;
17
17
  dhcp: boolean;
18
+ autoconf?: boolean;
18
19
  };
19
20
 
20
21
  export type NmstateProtocolConfigs = {
@@ -80,6 +80,7 @@ export const getProtocolType = (comments: string[]): StaticProtocolType | null =
80
80
  export const getNmstateProtocolConfig = (
81
81
  ipAddress: string,
82
82
  prefixLength: number,
83
+ protocolVersion?: ProtocolVersion,
83
84
  ): NmstateProtocolConfig => {
84
85
  return {
85
86
  address: [
@@ -90,6 +91,7 @@ export const getNmstateProtocolConfig = (
90
91
  ],
91
92
  enabled: true,
92
93
  dhcp: false,
94
+ ...(protocolVersion === ProtocolVersion.ipv6 && { autoconf: false }),
93
95
  };
94
96
  };
95
97
 
@@ -7,13 +7,15 @@ import {
7
7
  RenderIf,
8
8
  canOpenConsole,
9
9
  } from '../../../common';
10
+ import { ExternalLinkAltIcon } from '@patternfly/react-icons/dist/js/icons/external-link-alt-icon';
10
11
  import { downloadClusterInstallationLogs } from './utils';
11
12
  import { useModalDialogsContext } from '../hosts/ModalDialogsContext';
12
13
  import { canAbortInstallation } from '../clusters/utils';
13
14
  import { onFetchEvents } from '../fetching/fetchEvents';
14
15
  import ViewClusterEventsButton from '../../../common/components/ui/ViewClusterEventsButton';
15
- import { LaunchOpenshiftConsoleButton } from '../../../common/components/clusterDetail/ConsoleModal';
16
+ import { ToolbarButton } from '../../../common/components/ui/Toolbar';
16
17
  import { Cluster, Credentials } from '@openshift-assisted/types/assisted-installer-service';
18
+ import { useTranslation } from '../../../common/hooks/use-translation-wrapper';
17
19
 
18
20
  import './ClusterDetailsButtonGroup.css';
19
21
 
@@ -24,6 +26,30 @@ type ClusterDetailsButtonGroupProps = {
24
26
  showKubeConfig?: boolean;
25
27
  };
26
28
 
29
+ const LaunchOpenshiftConsoleButton: React.FC<{
30
+ consoleUrl?: string;
31
+ isDisabled: boolean;
32
+ id?: string;
33
+ }> = ({ consoleUrl, isDisabled, id }) => {
34
+ const { t } = useTranslation();
35
+ return (
36
+ <ToolbarButton
37
+ variant={ButtonVariant.primary}
38
+ component="a"
39
+ href={consoleUrl}
40
+ target="_blank"
41
+ rel="noopener"
42
+ isDisabled={isDisabled}
43
+ icon={<ExternalLinkAltIcon />}
44
+ iconPosition="right"
45
+ id={id}
46
+ data-testid={id}
47
+ >
48
+ {t('ai:Launch OpenShift Console')}
49
+ </ToolbarButton>
50
+ );
51
+ };
52
+
27
53
  const getID = (suffix: string) => `cluster-detail-${suffix}`;
28
54
 
29
55
  const ClusterDetailsButtonGroup: React.FC<ClusterDetailsButtonGroupProps> = ({
@@ -60,7 +86,6 @@ const ClusterDetailsButtonGroup: React.FC<ClusterDetailsButtonGroupProps> = ({
60
86
  <FlexItem>
61
87
  <LaunchOpenshiftConsoleButton
62
88
  isDisabled={false}
63
- cluster={cluster}
64
89
  consoleUrl={credentials?.consoleUrl}
65
90
  id={getID('button-launch-console')}
66
91
  />
@@ -2,4 +2,3 @@ export * from './utils';
2
2
  export { default as ClusterDetail } from './ClusterDetail';
3
3
  export { default as ClusterInstallationProgressCard } from './ClusterInstallationProgressCard';
4
4
  export { default as AssistedInstallerDetailCard } from './AssistedInstallerDetailCard';
5
- export { default as AssistedInstallerExtraDetailCard } from './AssistedInstallerExtraDetailCard';
@@ -123,8 +123,17 @@ const ClusterDetailsForm = (props: ClusterDetailsFormProps) => {
123
123
  managedDomains,
124
124
  ocpVersions,
125
125
  urlSearchParams: search,
126
+ isSingleClusterFeatureEnabled,
126
127
  }),
127
- [infraEnv, cluster, pullSecret, managedDomains, ocpVersions, search],
128
+ [
129
+ infraEnv,
130
+ cluster,
131
+ pullSecret,
132
+ managedDomains,
133
+ ocpVersions,
134
+ search,
135
+ isSingleClusterFeatureEnabled,
136
+ ],
128
137
  );
129
138
 
130
139
  const { t } = useTranslation();
@@ -8,12 +8,16 @@ import {
8
8
  } from '../../../common';
9
9
  import { useFeature } from '../../hooks/use-feature';
10
10
 
11
- export const AssistedInstallerHeader = () => {
11
+ type AssistedInstallerHeaderProps = {
12
+ clusterName?: string;
13
+ };
14
+
15
+ export const AssistedInstallerHeader = ({ clusterName }: AssistedInstallerHeaderProps) => {
12
16
  const isSingleClusterFeatureEnabled = useFeature('ASSISTED_INSTALLER_SINGLE_CLUSTER_FEATURE');
13
17
  return (
14
18
  <>
15
19
  <Content component="h1" className="pf-v6-u-display-inline">
16
- Install OpenShift with the Assisted Installer
20
+ {clusterName || 'Install OpenShift with the Assisted Installer'}
17
21
  </Content>
18
22
  {isSingleClusterFeatureEnabled && <TechnologyPreview />}
19
23
  <Split hasGutter>
@@ -104,7 +104,7 @@ const ClusterPageGeneric = ({
104
104
  {showBreadcrumbs && <ClusterBreadcrumbs clusterName={cluster.name} />}
105
105
  {showBreadcrumbs && (
106
106
  <PageSection hasBodyWrapper={false}>
107
- <AssistedInstallerHeader />
107
+ <AssistedInstallerHeader clusterName={cluster.name} />
108
108
  </PageSection>
109
109
  )}
110
110
 
@@ -8,7 +8,6 @@ import {
8
8
  TextInput,
9
9
  ToolbarProps,
10
10
  ToolbarFilterProps,
11
- TextInputProps,
12
11
  ButtonVariant,
13
12
  Spinner,
14
13
  ToolbarGroup,
@@ -39,7 +38,7 @@ export type ClusterFiltersType = {
39
38
 
40
39
  type ClustersListToolbarProps = {
41
40
  searchString: string;
42
- setSearchString: TextInputProps['onChange'];
41
+ setSearchString: (value: string) => void;
43
42
  filters: ClusterFiltersType;
44
43
  setFilters: (filters: ClusterFiltersType) => void;
45
44
  };
@@ -63,10 +62,9 @@ const ClustersListToolbar: React.FC<ClustersListToolbarProps> = ({
63
62
  setFilters({
64
63
  status: [],
65
64
  });
65
+ setSearchString('');
66
66
  };
67
67
 
68
- const onSearchNameChanged: TextInputProps['onChange'] = setSearchString;
69
-
70
68
  const onSelect = (type: string, isChecked: boolean, value: Cluster['status']) => {
71
69
  setFilters({
72
70
  ...filters,
@@ -126,7 +124,7 @@ const ClustersListToolbar: React.FC<ClustersListToolbarProps> = ({
126
124
  id="search-string"
127
125
  type="search"
128
126
  aria-label="string to be searched in cluster names or ids"
129
- onChange={onSearchNameChanged}
127
+ onChange={(_event, value) => setSearchString(value)}
130
128
  value={searchString}
131
129
  placeholder="Filter by Name, ID or Base domain"
132
130
  title="Filter by Name, ID or Base domain"
@@ -25,6 +25,7 @@ import {
25
25
  ClusterTableRows,
26
26
  HumanizedSortable,
27
27
  rowSorter,
28
+ EmptyState,
28
29
  } from '../../../common';
29
30
  import { useTranslation } from '../../../common/hooks/use-translation-wrapper';
30
31
  import DeleteClusterModal from './DeleteClusterModal';
@@ -151,64 +152,73 @@ const ClustersTable = ({ rows, deleteCluster }: ClustersTableProps) => {
151
152
  closeModal();
152
153
  };
153
154
 
155
+ const hasActiveFilters = searchString.length > 0 || filters.status.length > 0;
156
+
154
157
  return (
155
158
  <>
156
159
  <ClustersListToolbar
157
160
  searchString={searchString}
158
- setSearchString={(_event, value) => setSearchString(value)}
161
+ setSearchString={setSearchString}
159
162
  filters={filters}
160
163
  setFilters={setFilters}
161
164
  />
162
- <Table aria-label="Clusters table" data-testid={'clusters-table'}>
163
- <Thead>
164
- <Tr>
165
- {columns.map((col, i) => (
166
- <Th
167
- key={`col-${i}`}
168
- width={col.cellWidth as BaseCellProps['width']}
169
- sort={getSortParams(i)}
170
- >
171
- <TableText>{col.title}</TableText>
172
- </Th>
173
- ))}
174
- <Th key="col-action" />
175
- </Tr>
176
- </Thead>
177
- <Tbody>
178
- {sortedRows.map((row, i) => (
179
- <Tr {...getRowProps(row.props as ClusterRowDataProps)} key={`row-${i}`}>
180
- {row.cells?.map((cell, j) => {
181
- const humanized = cell as HumanizedSortable;
182
- return (
183
- <Td dataLabel={columns[j].title} key={`cell-${i}-${j}`} {...humanized.props}>
184
- <TableText wrapModifier="breakWord">{humanized?.title}</TableText>
185
- </Td>
186
- );
187
- })}
188
- <Td isActionCell>
189
- <ActionsColumn
190
- items={[
191
- {
192
- title: 'Delete',
193
- id: `button-delete-${(row.props as ClusterRowDataProps).name}`,
194
- isDisabled:
195
- getClusterTableStatusCell(row).sortableValue ===
196
- clusterStatusLabels(t).installing,
197
- onClick: () => {
198
- setDeleteClusterID({
199
- id: (row.props as ClusterRowDataProps).id,
200
- name: (row.props as ClusterRowDataProps).name,
201
- });
202
- setDeleteModalOpen(true);
203
- },
204
- },
205
- ]}
206
- />
207
- </Td>
165
+ {sortedRows.length === 0 && hasActiveFilters ? (
166
+ <EmptyState
167
+ title="No matching clusters"
168
+ content="No clusters match the current filter criteria. Try adjusting your filters."
169
+ />
170
+ ) : (
171
+ <Table aria-label="Clusters table" data-testid={'clusters-table'}>
172
+ <Thead>
173
+ <Tr>
174
+ {columns.map((col, i) => (
175
+ <Th
176
+ key={`col-${i}`}
177
+ width={col.cellWidth as BaseCellProps['width']}
178
+ sort={getSortParams(i)}
179
+ >
180
+ <TableText>{col.title}</TableText>
181
+ </Th>
182
+ ))}
183
+ <Th key="col-action" />
208
184
  </Tr>
209
- ))}
210
- </Tbody>
211
- </Table>
185
+ </Thead>
186
+ <Tbody>
187
+ {sortedRows.map((row, i) => (
188
+ <Tr {...getRowProps(row.props as ClusterRowDataProps)} key={`row-${i}`}>
189
+ {row.cells?.map((cell, j) => {
190
+ const humanized = cell as HumanizedSortable;
191
+ return (
192
+ <Td dataLabel={columns[j].title} key={`cell-${i}-${j}`} {...humanized.props}>
193
+ <TableText wrapModifier="breakWord">{humanized?.title}</TableText>
194
+ </Td>
195
+ );
196
+ })}
197
+ <Td isActionCell>
198
+ <ActionsColumn
199
+ items={[
200
+ {
201
+ title: 'Delete',
202
+ id: `button-delete-${(row.props as ClusterRowDataProps).name}`,
203
+ isDisabled:
204
+ getClusterTableStatusCell(row).sortableValue ===
205
+ clusterStatusLabels(t).installing,
206
+ onClick: () => {
207
+ setDeleteClusterID({
208
+ id: (row.props as ClusterRowDataProps).id,
209
+ name: (row.props as ClusterRowDataProps).name,
210
+ });
211
+ setDeleteModalOpen(true);
212
+ },
213
+ },
214
+ ]}
215
+ />
216
+ </Td>
217
+ </Tr>
218
+ ))}
219
+ </Tbody>
220
+ </Table>
221
+ )}
212
222
  <DeleteClusterModal
213
223
  name={deleteClusterID?.name || ''}
214
224
  onClose={closeModal}
@@ -229,7 +229,7 @@ export const getNewFeatureDisabledReason = (
229
229
  }
230
230
  case 'USER_MANAGED_NETWORKING': {
231
231
  if (!isSupported) {
232
- return `User-Managed Networking is not supported when using ${
232
+ return `User-managed networking is not supported when using ${
233
233
  platformType ? ExternalPlatformLabels[platformType] : ''
234
234
  }`;
235
235
  }
@@ -34,12 +34,14 @@ const getManifestsInfo = async (customManifests: ListManifests, clusterId: strin
34
34
  );
35
35
  const yamlString = await convertBlobToString(yamlContent);
36
36
  manifestsExtended.push({
37
+ ...manifest,
37
38
  folder: manifest.folder || 'manifests',
38
39
  fileName: manifest.fileName || '',
39
40
  yamlContent: yamlString,
40
41
  });
41
42
  } catch (e) {
42
43
  manifestsExtended.push({
44
+ ...manifest,
43
45
  folder: manifest.folder || 'manifests',
44
46
  fileName: manifest.fileName || '',
45
47
  yamlContent: '',
@@ -65,6 +67,7 @@ const useClusterCustomManifests = (clusterId: Cluster['id'], extendedVersion: bo
65
67
  });
66
68
  } else {
67
69
  const manifestsExtended = data.map((manifest: Manifest) => ({
70
+ ...manifest,
68
71
  folder: manifest.folder || 'manifests',
69
72
  fileName: manifest.fileName || '',
70
73
  yamlContent: '',