@openshift-assisted/ui-lib 2.16.4-cim → 2.17.0-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 (447) hide show
  1. package/build/@types/cim/components/Agent/tableUtils.d.ts +4 -1
  2. package/build/@types/cim/components/Agent/tableUtils.d.ts.map +1 -1
  3. package/build/@types/cim/components/ClusterDeployment/ClusterDeploymentWizard.d.ts.map +1 -1
  4. package/build/@types/cim/components/ClusterDeployment/{ACMClusterDeploymentDetailsStep.d.ts → clusterDetails/ACMClusterDeploymentDetailsStep.d.ts} +5 -5
  5. package/build/@types/cim/components/ClusterDeployment/clusterDetails/ACMClusterDeploymentDetailsStep.d.ts.map +1 -0
  6. package/build/@types/cim/components/ClusterDeployment/{ClusterDeploymentDetailsForm.d.ts → clusterDetails/ClusterDeploymentDetailsForm.d.ts} +4 -4
  7. package/build/@types/cim/components/ClusterDeployment/clusterDetails/ClusterDeploymentDetailsForm.d.ts.map +1 -0
  8. package/build/@types/cim/components/ClusterDeployment/{ClusterDeploymentDetailsStep.d.ts → clusterDetails/ClusterDeploymentDetailsStep.d.ts} +5 -5
  9. package/build/@types/cim/components/ClusterDeployment/clusterDetails/ClusterDeploymentDetailsStep.d.ts.map +1 -0
  10. package/build/@types/cim/components/ClusterDeployment/{ClusterDetailsFormFields.d.ts → clusterDetails/ClusterDetailsFormFields.d.ts} +1 -1
  11. package/build/@types/cim/components/ClusterDeployment/clusterDetails/ClusterDetailsFormFields.d.ts.map +1 -0
  12. package/build/@types/cim/components/ClusterDeployment/clusterDetails/index.d.ts +5 -0
  13. package/build/@types/cim/components/ClusterDeployment/clusterDetails/index.d.ts.map +1 -0
  14. package/build/@types/cim/components/ClusterDeployment/components/AdditionalNTPSourcesDialogToggle.d.ts.map +1 -0
  15. package/build/@types/cim/components/ClusterDeployment/components/index.d.ts +2 -0
  16. package/build/@types/cim/components/ClusterDeployment/components/index.d.ts.map +1 -0
  17. package/build/@types/cim/components/ClusterDeployment/constants.d.ts +1 -0
  18. package/build/@types/cim/components/ClusterDeployment/constants.d.ts.map +1 -1
  19. package/build/@types/cim/components/ClusterDeployment/customManifests/ClusterDeploymentCustomManifestsStep.d.ts +6 -0
  20. package/build/@types/cim/components/ClusterDeployment/customManifests/ClusterDeploymentCustomManifestsStep.d.ts.map +1 -0
  21. package/build/@types/cim/components/ClusterDeployment/customManifests/ConfigMapDetail.d.ts +10 -0
  22. package/build/@types/cim/components/ClusterDeployment/customManifests/ConfigMapDetail.d.ts.map +1 -0
  23. package/build/@types/cim/components/ClusterDeployment/customManifests/ConfigMapForm.d.ts +12 -0
  24. package/build/@types/cim/components/ClusterDeployment/customManifests/ConfigMapForm.d.ts.map +1 -0
  25. package/build/@types/cim/components/ClusterDeployment/customManifests/index.d.ts +2 -0
  26. package/build/@types/cim/components/ClusterDeployment/customManifests/index.d.ts.map +1 -0
  27. package/build/@types/cim/components/ClusterDeployment/{ClusterDeploymentHostDiscoveryTable.d.ts → hostDiscovery/ClusterDeploymentHostDiscoveryTable.d.ts} +1 -1
  28. package/build/@types/cim/components/ClusterDeployment/hostDiscovery/ClusterDeploymentHostDiscoveryTable.d.ts.map +1 -0
  29. package/build/@types/cim/components/ClusterDeployment/{ClusterDeploymentHostsDiscovery.d.ts → hostDiscovery/ClusterDeploymentHostsDiscovery.d.ts} +1 -1
  30. package/build/@types/cim/components/ClusterDeployment/hostDiscovery/ClusterDeploymentHostsDiscovery.d.ts.map +1 -0
  31. package/build/@types/cim/components/ClusterDeployment/hostDiscovery/ClusterDeploymentHostsDiscoveryStep.d.ts +4 -0
  32. package/build/@types/cim/components/ClusterDeployment/hostDiscovery/ClusterDeploymentHostsDiscoveryStep.d.ts.map +1 -0
  33. package/build/@types/cim/components/ClusterDeployment/hostDiscovery/index.d.ts +2 -0
  34. package/build/@types/cim/components/ClusterDeployment/hostDiscovery/index.d.ts.map +1 -0
  35. package/build/@types/cim/components/ClusterDeployment/{ClusterDeploymentHostSelectionStep.d.ts → hostSelection/ClusterDeploymentHostSelectionStep.d.ts} +4 -4
  36. package/build/@types/cim/components/ClusterDeployment/hostSelection/ClusterDeploymentHostSelectionStep.d.ts.map +1 -0
  37. package/build/@types/cim/components/ClusterDeployment/{ClusterDeploymentHostsSelection.d.ts → hostSelection/ClusterDeploymentHostsSelection.d.ts} +1 -1
  38. package/build/@types/cim/components/ClusterDeployment/hostSelection/ClusterDeploymentHostsSelection.d.ts.map +1 -0
  39. package/build/@types/cim/components/ClusterDeployment/{ClusterDeploymentHostsSelectionAdvanced.d.ts → hostSelection/ClusterDeploymentHostsSelectionAdvanced.d.ts} +6 -6
  40. package/build/@types/cim/components/ClusterDeployment/hostSelection/ClusterDeploymentHostsSelectionAdvanced.d.ts.map +1 -0
  41. package/build/@types/cim/components/ClusterDeployment/{ClusterDeploymentHostsSelectionBasic.d.ts → hostSelection/ClusterDeploymentHostsSelectionBasic.d.ts} +1 -1
  42. package/build/@types/cim/components/ClusterDeployment/hostSelection/ClusterDeploymentHostsSelectionBasic.d.ts.map +1 -0
  43. package/build/@types/cim/components/ClusterDeployment/hostSelection/index.d.ts +3 -0
  44. package/build/@types/cim/components/ClusterDeployment/hostSelection/index.d.ts.map +1 -0
  45. package/build/@types/cim/components/ClusterDeployment/index.d.ts +2 -2
  46. package/build/@types/cim/components/ClusterDeployment/index.d.ts.map +1 -1
  47. package/build/@types/cim/components/ClusterDeployment/{ClusterDeploymentHostsNetworkTable.d.ts → networking/ClusterDeploymentHostsNetworkTable.d.ts} +2 -2
  48. package/build/@types/cim/components/ClusterDeployment/networking/ClusterDeploymentHostsNetworkTable.d.ts.map +1 -0
  49. package/build/@types/cim/components/ClusterDeployment/{ClusterDeploymentNetworkingForm.d.ts → networking/ClusterDeploymentNetworkingForm.d.ts} +2 -4
  50. package/build/@types/cim/components/ClusterDeployment/networking/ClusterDeploymentNetworkingForm.d.ts.map +1 -0
  51. package/build/@types/cim/components/ClusterDeployment/{ClusterDeploymentNetworkingStep.d.ts → networking/ClusterDeploymentNetworkingStep.d.ts} +4 -4
  52. package/build/@types/cim/components/ClusterDeployment/networking/ClusterDeploymentNetworkingStep.d.ts.map +1 -0
  53. package/build/@types/cim/components/ClusterDeployment/networking/index.d.ts +2 -0
  54. package/build/@types/cim/components/ClusterDeployment/networking/index.d.ts.map +1 -0
  55. package/build/@types/cim/components/ClusterDeployment/{ClusterDeploymentReviewStep.d.ts → review/ClusterDeploymentReviewStep.d.ts} +3 -3
  56. package/build/@types/cim/components/ClusterDeployment/review/ClusterDeploymentReviewStep.d.ts.map +1 -0
  57. package/build/@types/cim/components/ClusterDeployment/review/ReviewConfigMapsTable.d.ts +6 -0
  58. package/build/@types/cim/components/ClusterDeployment/review/ReviewConfigMapsTable.d.ts.map +1 -0
  59. package/build/@types/cim/components/ClusterDeployment/review/index.d.ts +2 -0
  60. package/build/@types/cim/components/ClusterDeployment/review/index.d.ts.map +1 -0
  61. package/build/@types/cim/components/ClusterDeployment/types.d.ts +2 -1
  62. package/build/@types/cim/components/ClusterDeployment/types.d.ts.map +1 -1
  63. package/build/@types/cim/components/ClusterDeployment/wizardTransition.d.ts +1 -1
  64. package/build/@types/cim/components/ClusterDeployment/wizardTransition.d.ts.map +1 -1
  65. package/build/@types/cim/components/Hypershift/HostedClusterWizard/DetailsStep/DetailsForm.d.ts.map +1 -1
  66. package/build/@types/cim/components/Hypershift/HostedClusterWizard/DetailsStep/types.d.ts +1 -1
  67. package/build/@types/cim/components/Hypershift/HostedClusterWizard/DetailsStep/types.d.ts.map +1 -1
  68. package/build/@types/cim/components/InfraEnv/InfraEnvAgentTable.d.ts.map +1 -1
  69. package/build/@types/cim/components/InfraEnv/InfraTableToolbar.d.ts +5 -0
  70. package/build/@types/cim/components/InfraEnv/InfraTableToolbar.d.ts.map +1 -1
  71. package/build/@types/cim/components/helpers/agentClusterInstall.d.ts +1 -0
  72. package/build/@types/cim/components/helpers/agentClusterInstall.d.ts.map +1 -1
  73. package/build/@types/cim/components/helpers/agents.d.ts +1 -1
  74. package/build/@types/cim/components/helpers/agents.d.ts.map +1 -1
  75. package/build/@types/cim/components/helpers/toAssisted.d.ts.map +1 -1
  76. package/build/@types/cim/components/helpers/versions.d.ts.map +1 -1
  77. package/build/@types/cim/components/modals/AddHostModal.d.ts.map +1 -1
  78. package/build/@types/cim/components/modals/CimConfiguration/CimConfigurationFormFields.d.ts +4 -0
  79. package/build/@types/cim/components/modals/CimConfiguration/CimConfigurationFormFields.d.ts.map +1 -0
  80. package/build/@types/cim/components/modals/CimConfiguration/CimConfigurationModal.d.ts +0 -1
  81. package/build/@types/cim/components/modals/CimConfiguration/CimConfigurationModal.d.ts.map +1 -1
  82. package/build/@types/cim/components/modals/CimConfiguration/persist.d.ts +4 -7
  83. package/build/@types/cim/components/modals/CimConfiguration/persist.d.ts.map +1 -1
  84. package/build/@types/cim/components/modals/CimConfiguration/types.d.ts +7 -16
  85. package/build/@types/cim/components/modals/CimConfiguration/types.d.ts.map +1 -1
  86. package/build/@types/cim/hooks/index.d.ts +3 -0
  87. package/build/@types/cim/hooks/index.d.ts.map +1 -0
  88. package/build/@types/cim/hooks/types.d.ts +4 -0
  89. package/build/@types/cim/hooks/types.d.ts.map +1 -0
  90. package/build/@types/cim/hooks/useAgentServiceConfig.d.ts +4 -0
  91. package/build/@types/cim/hooks/useAgentServiceConfig.d.ts.map +1 -0
  92. package/build/@types/cim/hooks/useConfigMaps.d.ts +4 -0
  93. package/build/@types/cim/hooks/useConfigMaps.d.ts.map +1 -0
  94. package/build/@types/cim/hooks/useK8sWatchResource.d.ts +8 -0
  95. package/build/@types/cim/hooks/useK8sWatchResource.d.ts.map +1 -0
  96. package/build/@types/cim/types/index.d.ts +1 -1
  97. package/build/@types/cim/types/index.d.ts.map +1 -1
  98. package/build/@types/cim/types/k8s/agent-cluster-install.d.ts +3 -0
  99. package/build/@types/cim/types/k8s/agent-cluster-install.d.ts.map +1 -1
  100. package/build/@types/cim/types/models.d.ts +7 -0
  101. package/build/@types/cim/types/models.d.ts.map +1 -0
  102. package/build/@types/cim/utils.d.ts +2 -0
  103. package/build/@types/cim/utils.d.ts.map +1 -1
  104. package/build/@types/common/components/clusterConfiguration/ControlPlaneNodesDropdown.d.ts.map +1 -1
  105. package/build/@types/common/components/clusterConfiguration/DownloadIso.d.ts +2 -1
  106. package/build/@types/common/components/clusterConfiguration/DownloadIso.d.ts.map +1 -1
  107. package/build/@types/common/components/clusterConfiguration/ExternalPlatformsDropdown.d.ts +14 -0
  108. package/build/@types/common/components/clusterConfiguration/ExternalPlatformsDropdown.d.ts.map +1 -0
  109. package/build/@types/common/components/clusterConfiguration/SecurityFields.d.ts +3 -1
  110. package/build/@types/common/components/clusterConfiguration/SecurityFields.d.ts.map +1 -1
  111. package/build/@types/common/components/clusterConfiguration/index.d.ts +1 -0
  112. package/build/@types/common/components/clusterConfiguration/index.d.ts.map +1 -1
  113. package/build/@types/common/components/clusterWizard/types.d.ts +1 -2
  114. package/build/@types/common/components/clusterWizard/types.d.ts.map +1 -1
  115. package/build/@types/common/components/hosts/status.d.ts.map +1 -1
  116. package/build/@types/common/components/hosts/tableUtils.d.ts +2 -0
  117. package/build/@types/common/components/hosts/tableUtils.d.ts.map +1 -1
  118. package/build/@types/common/components/hosts/utils.d.ts +3 -0
  119. package/build/@types/common/components/hosts/utils.d.ts.map +1 -1
  120. package/build/@types/common/components/ui/OpenShiftSelectWithSearch.d.ts +1 -2
  121. package/build/@types/common/components/ui/OpenShiftSelectWithSearch.d.ts.map +1 -1
  122. package/build/@types/common/components/ui/OpenShiftVersionDropdown.d.ts +3 -3
  123. package/build/@types/common/components/ui/OpenShiftVersionDropdown.d.ts.map +1 -1
  124. package/build/@types/common/components/ui/OpenShiftVersionModal.d.ts.map +1 -1
  125. package/build/@types/common/components/ui/formik/InputField.d.ts.map +1 -1
  126. package/build/@types/common/components/ui/formik/SelectFieldWithSearch.d.ts +16 -0
  127. package/build/@types/common/components/ui/formik/SelectFieldWithSearch.d.ts.map +1 -0
  128. package/build/@types/common/components/ui/formik/index.d.ts +1 -0
  129. package/build/@types/common/components/ui/formik/index.d.ts.map +1 -1
  130. package/build/@types/common/components/ui/formik/types.d.ts +2 -2
  131. package/build/@types/common/components/ui/formik/types.d.ts.map +1 -1
  132. package/build/@types/common/components/ui/formik/validationSchemas.d.ts.map +1 -1
  133. package/build/@types/common/config/docs_links.d.ts +1 -1
  134. package/build/@types/common/config/docs_links.d.ts.map +1 -1
  135. package/build/@types/common/utils.d.ts +1 -0
  136. package/build/@types/common/utils.d.ts.map +1 -1
  137. package/build/@types/ocm/components/Routes.d.ts +6 -4
  138. package/build/@types/ocm/components/Routes.d.ts.map +1 -1
  139. package/build/@types/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.d.ts.map +1 -1
  140. package/build/@types/ocm/components/clusterConfiguration/OcmOpenShiftVersionSelect.d.ts.map +1 -1
  141. package/build/@types/ocm/components/clusterConfiguration/OpenshiftVersionHelperText.d.ts +1 -1
  142. package/build/@types/ocm/components/clusterConfiguration/OpenshiftVersionHelperText.d.ts.map +1 -1
  143. package/build/cjs/cim/components/Agent/AgentStatus.js +2 -2
  144. package/build/cjs/cim/components/Agent/AgentStatus.js.map +1 -1
  145. package/build/cjs/cim/components/Agent/tableUtils.js +31 -12
  146. package/build/cjs/cim/components/Agent/tableUtils.js.map +1 -1
  147. package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentWizard.js +12 -9
  148. package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentWizard.js.map +1 -1
  149. package/build/cjs/cim/components/ClusterDeployment/ScaleUpForm.js +2 -2
  150. package/build/cjs/cim/components/ClusterDeployment/ScaleUpForm.js.map +1 -1
  151. package/build/cjs/cim/components/ClusterDeployment/{ACMClusterDeploymentDetailsStep.js → clusterDetails/ACMClusterDeploymentDetailsStep.js} +6 -5
  152. package/build/cjs/cim/components/ClusterDeployment/clusterDetails/ACMClusterDeploymentDetailsStep.js.map +1 -0
  153. package/build/cjs/cim/components/ClusterDeployment/{ClusterDeploymentDetailsForm.js → clusterDetails/ClusterDeploymentDetailsForm.js} +8 -8
  154. package/build/cjs/cim/components/ClusterDeployment/clusterDetails/ClusterDeploymentDetailsForm.js.map +1 -0
  155. package/build/cjs/cim/components/ClusterDeployment/{ClusterDeploymentDetailsStep.js → clusterDetails/ClusterDeploymentDetailsStep.js} +8 -8
  156. package/build/cjs/cim/components/ClusterDeployment/clusterDetails/ClusterDeploymentDetailsStep.js.map +1 -0
  157. package/build/cjs/cim/components/ClusterDeployment/{ClusterDetailsFormFields.js → clusterDetails/ClusterDetailsFormFields.js} +20 -25
  158. package/build/cjs/cim/components/ClusterDeployment/clusterDetails/ClusterDetailsFormFields.js.map +1 -0
  159. package/build/cjs/cim/components/ClusterDeployment/clusterDetails/index.js +8 -0
  160. package/build/cjs/cim/components/ClusterDeployment/clusterDetails/index.js.map +1 -0
  161. package/build/cjs/cim/components/ClusterDeployment/{AdditionalNTPSourcesDialogToggle.js → components/AdditionalNTPSourcesDialogToggle.js} +1 -1
  162. package/build/cjs/cim/components/ClusterDeployment/components/AdditionalNTPSourcesDialogToggle.js.map +1 -0
  163. package/build/cjs/cim/components/ClusterDeployment/components/index.js +5 -0
  164. package/build/cjs/cim/components/ClusterDeployment/components/index.js.map +1 -0
  165. package/build/cjs/cim/components/ClusterDeployment/constants.js +1 -0
  166. package/build/cjs/cim/components/ClusterDeployment/constants.js.map +1 -1
  167. package/build/cjs/cim/components/ClusterDeployment/customManifests/ClusterDeploymentCustomManifestsStep.js +71 -0
  168. package/build/cjs/cim/components/ClusterDeployment/customManifests/ClusterDeploymentCustomManifestsStep.js.map +1 -0
  169. package/build/cjs/cim/components/ClusterDeployment/customManifests/ConfigMapDetail.js +64 -0
  170. package/build/cjs/cim/components/ClusterDeployment/customManifests/ConfigMapDetail.js.map +1 -0
  171. package/build/cjs/cim/components/ClusterDeployment/customManifests/ConfigMapForm.js +134 -0
  172. package/build/cjs/cim/components/ClusterDeployment/customManifests/ConfigMapForm.js.map +1 -0
  173. package/build/cjs/cim/components/ClusterDeployment/customManifests/index.js +5 -0
  174. package/build/cjs/cim/components/ClusterDeployment/customManifests/index.js.map +1 -0
  175. package/build/cjs/cim/components/ClusterDeployment/{ClusterDeploymentHostDiscoveryTable.js → hostDiscovery/ClusterDeploymentHostDiscoveryTable.js} +20 -13
  176. package/build/cjs/cim/components/ClusterDeployment/hostDiscovery/ClusterDeploymentHostDiscoveryTable.js.map +1 -0
  177. package/build/cjs/cim/components/ClusterDeployment/{ClusterDeploymentHostsDiscovery.js → hostDiscovery/ClusterDeploymentHostsDiscovery.js} +6 -6
  178. package/build/cjs/cim/components/ClusterDeployment/hostDiscovery/ClusterDeploymentHostsDiscovery.js.map +1 -0
  179. package/build/cjs/cim/components/ClusterDeployment/{ClusterDeploymentHostsDiscoveryStep.js → hostDiscovery/ClusterDeploymentHostsDiscoveryStep.js} +10 -9
  180. package/build/cjs/cim/components/ClusterDeployment/hostDiscovery/ClusterDeploymentHostsDiscoveryStep.js.map +1 -0
  181. package/build/cjs/cim/components/ClusterDeployment/hostDiscovery/index.js +5 -0
  182. package/build/cjs/cim/components/ClusterDeployment/hostDiscovery/index.js.map +1 -0
  183. package/build/cjs/cim/components/ClusterDeployment/{ClusterDeploymentHostSelectionStep.js → hostSelection/ClusterDeploymentHostSelectionStep.js} +15 -14
  184. package/build/cjs/cim/components/ClusterDeployment/hostSelection/ClusterDeploymentHostSelectionStep.js.map +1 -0
  185. package/build/cjs/cim/components/ClusterDeployment/{ClusterDeploymentHostsSelection.js → hostSelection/ClusterDeploymentHostsSelection.js} +23 -14
  186. package/build/cjs/cim/components/ClusterDeployment/hostSelection/ClusterDeploymentHostsSelection.js.map +1 -0
  187. package/build/cjs/cim/components/ClusterDeployment/{ClusterDeploymentHostsSelectionAdvanced.js → hostSelection/ClusterDeploymentHostsSelectionAdvanced.js} +7 -6
  188. package/build/cjs/cim/components/ClusterDeployment/hostSelection/ClusterDeploymentHostsSelectionAdvanced.js.map +1 -0
  189. package/build/cjs/cim/components/ClusterDeployment/{ClusterDeploymentHostsSelectionBasic.js → hostSelection/ClusterDeploymentHostsSelectionBasic.js} +7 -7
  190. package/build/cjs/cim/components/ClusterDeployment/hostSelection/ClusterDeploymentHostsSelectionBasic.js.map +1 -0
  191. package/build/cjs/cim/components/ClusterDeployment/hostSelection/index.js +6 -0
  192. package/build/cjs/cim/components/ClusterDeployment/hostSelection/index.js.map +1 -0
  193. package/build/cjs/cim/components/ClusterDeployment/index.js +4 -4
  194. package/build/cjs/cim/components/ClusterDeployment/index.js.map +1 -1
  195. package/build/cjs/cim/components/ClusterDeployment/{ClusterDeploymentHostsNetworkTable.js → networking/ClusterDeploymentHostsNetworkTable.js} +10 -10
  196. package/build/cjs/cim/components/ClusterDeployment/networking/ClusterDeploymentHostsNetworkTable.js.map +1 -0
  197. package/build/cjs/cim/components/ClusterDeployment/{ClusterDeploymentNetworkingForm.js → networking/ClusterDeploymentNetworkingForm.js} +7 -10
  198. package/build/cjs/cim/components/ClusterDeployment/networking/ClusterDeploymentNetworkingForm.js.map +1 -0
  199. package/build/cjs/cim/components/ClusterDeployment/{ClusterDeploymentNetworkingStep.js → networking/ClusterDeploymentNetworkingStep.js} +10 -10
  200. package/build/cjs/cim/components/ClusterDeployment/networking/ClusterDeploymentNetworkingStep.js.map +1 -0
  201. package/build/cjs/cim/components/ClusterDeployment/networking/index.js +5 -0
  202. package/build/cjs/cim/components/ClusterDeployment/networking/index.js.map +1 -0
  203. package/build/cjs/cim/components/ClusterDeployment/{ClusterDeploymentReviewStep.js → review/ClusterDeploymentReviewStep.js} +21 -16
  204. package/build/cjs/cim/components/ClusterDeployment/review/ClusterDeploymentReviewStep.js.map +1 -0
  205. package/build/cjs/cim/components/ClusterDeployment/review/ReviewConfigMapsTable.js +51 -0
  206. package/build/cjs/cim/components/ClusterDeployment/review/ReviewConfigMapsTable.js.map +1 -0
  207. package/build/cjs/cim/components/ClusterDeployment/review/index.js +5 -0
  208. package/build/cjs/cim/components/ClusterDeployment/review/index.js.map +1 -0
  209. package/build/cjs/cim/components/ClusterDeployment/use-networking-formik.js +2 -3
  210. package/build/cjs/cim/components/ClusterDeployment/use-networking-formik.js.map +1 -1
  211. package/build/cjs/cim/components/ClusterDeployment/wizardTransition.js +1 -0
  212. package/build/cjs/cim/components/ClusterDeployment/wizardTransition.js.map +1 -1
  213. package/build/cjs/cim/components/Hypershift/HostedClusterWizard/DetailsStep/DetailsForm.js +7 -12
  214. package/build/cjs/cim/components/Hypershift/HostedClusterWizard/DetailsStep/DetailsForm.js.map +1 -1
  215. package/build/cjs/cim/components/Hypershift/modals/ManageHostsModal.js +2 -2
  216. package/build/cjs/cim/components/Hypershift/modals/ManageHostsModal.js.map +1 -1
  217. package/build/cjs/cim/components/InfraEnv/InfraEnvAgentTable.js +5 -2
  218. package/build/cjs/cim/components/InfraEnv/InfraEnvAgentTable.js.map +1 -1
  219. package/build/cjs/cim/components/InfraEnv/InfraTableToolbar.js +25 -3
  220. package/build/cjs/cim/components/InfraEnv/InfraTableToolbar.js.map +1 -1
  221. package/build/cjs/cim/components/helpers/agentClusterInstall.js +7 -1
  222. package/build/cjs/cim/components/helpers/agentClusterInstall.js.map +1 -1
  223. package/build/cjs/cim/components/helpers/agents.js +4 -1
  224. package/build/cjs/cim/components/helpers/agents.js.map +1 -1
  225. package/build/cjs/cim/components/helpers/toAssisted.js +43 -25
  226. package/build/cjs/cim/components/helpers/toAssisted.js.map +1 -1
  227. package/build/cjs/cim/components/helpers/versions.js +5 -1
  228. package/build/cjs/cim/components/helpers/versions.js.map +1 -1
  229. package/build/cjs/cim/components/modals/AddHostModal.js +10 -5
  230. package/build/cjs/cim/components/modals/AddHostModal.js.map +1 -1
  231. package/build/cjs/cim/components/modals/CimConfiguration/CimConfigurationFormFields.js +91 -0
  232. package/build/cjs/cim/components/modals/CimConfiguration/CimConfigurationFormFields.js.map +1 -0
  233. package/build/cjs/cim/components/modals/CimConfiguration/CimConfigurationModal.js +77 -121
  234. package/build/cjs/cim/components/modals/CimConfiguration/CimConfigurationModal.js.map +1 -1
  235. package/build/cjs/cim/components/modals/CimConfiguration/persist.js +44 -95
  236. package/build/cjs/cim/components/modals/CimConfiguration/persist.js.map +1 -1
  237. package/build/cjs/cim/components/modals/EditProxyModal.js +1 -1
  238. package/build/cjs/cim/components/modals/EditProxyModal.js.map +1 -1
  239. package/build/cjs/cim/components/modals/EditSSHKeyModal.js +1 -1
  240. package/build/cjs/cim/components/modals/EditSSHKeyModal.js.map +1 -1
  241. package/build/cjs/cim/components/modals/MassApproveAgentModal.js +3 -3
  242. package/build/cjs/cim/components/modals/MassApproveAgentModal.js.map +1 -1
  243. package/build/cjs/cim/hooks/index.js +6 -0
  244. package/build/cjs/cim/hooks/index.js.map +1 -0
  245. package/build/cjs/cim/hooks/types.js +3 -0
  246. package/build/cjs/cim/hooks/types.js.map +1 -0
  247. package/build/cjs/cim/hooks/useAgentServiceConfig.js +13 -0
  248. package/build/cjs/cim/hooks/useAgentServiceConfig.js.map +1 -0
  249. package/build/cjs/cim/hooks/useConfigMaps.js +12 -0
  250. package/build/cjs/cim/hooks/useConfigMaps.js.map +1 -0
  251. package/build/cjs/cim/hooks/useK8sWatchResource.js +12 -0
  252. package/build/cjs/cim/hooks/useK8sWatchResource.js.map +1 -0
  253. package/build/cjs/cim/types/index.js +1 -1
  254. package/build/cjs/cim/types/index.js.map +1 -1
  255. package/build/cjs/cim/types/models.js +54 -0
  256. package/build/cjs/cim/types/models.js.map +1 -0
  257. package/build/cjs/cim/utils.js +12 -1
  258. package/build/cjs/cim/utils.js.map +1 -1
  259. package/build/cjs/common/components/clusterConfiguration/ControlPlaneNodesDropdown.js +10 -1
  260. package/build/cjs/common/components/clusterConfiguration/ControlPlaneNodesDropdown.js.map +1 -1
  261. package/build/cjs/common/components/clusterConfiguration/DownloadIso.js +2 -2
  262. package/build/cjs/common/components/clusterConfiguration/DownloadIso.js.map +1 -1
  263. package/build/cjs/common/components/clusterConfiguration/ExternalPlatformsDropdown.js +49 -0
  264. package/build/cjs/common/components/clusterConfiguration/ExternalPlatformsDropdown.js.map +1 -0
  265. package/build/cjs/common/components/clusterConfiguration/SecurityFields.js +6 -4
  266. package/build/cjs/common/components/clusterConfiguration/SecurityFields.js.map +1 -1
  267. package/build/cjs/common/components/clusterConfiguration/index.js +1 -0
  268. package/build/cjs/common/components/clusterConfiguration/index.js.map +1 -1
  269. package/build/cjs/common/components/clusterWizard/clusterDetailsValidation.js +7 -7
  270. package/build/cjs/common/components/clusterWizard/clusterDetailsValidation.js.map +1 -1
  271. package/build/cjs/common/components/hosts/status.js +1 -2
  272. package/build/cjs/common/components/hosts/status.js.map +1 -1
  273. package/build/cjs/common/components/hosts/tableUtils.js +41 -1
  274. package/build/cjs/common/components/hosts/tableUtils.js.map +1 -1
  275. package/build/cjs/common/components/hosts/utils.js +5 -1
  276. package/build/cjs/common/components/hosts/utils.js.map +1 -1
  277. package/build/cjs/common/components/ui/OpenShiftSelectWithSearch.js +20 -139
  278. package/build/cjs/common/components/ui/OpenShiftSelectWithSearch.js.map +1 -1
  279. package/build/cjs/common/components/ui/OpenShiftVersionDropdown.js +10 -15
  280. package/build/cjs/common/components/ui/OpenShiftVersionDropdown.js.map +1 -1
  281. package/build/cjs/common/components/ui/OpenShiftVersionModal.js +8 -12
  282. package/build/cjs/common/components/ui/OpenShiftVersionModal.js.map +1 -1
  283. package/build/cjs/common/components/ui/formik/InputField.js +4 -5
  284. package/build/cjs/common/components/ui/formik/InputField.js.map +1 -1
  285. package/build/cjs/common/components/ui/formik/SelectFieldWithSearch.js +153 -0
  286. package/build/cjs/common/components/ui/formik/SelectFieldWithSearch.js.map +1 -0
  287. package/build/cjs/common/components/ui/formik/index.js +3 -1
  288. package/build/cjs/common/components/ui/formik/index.js.map +1 -1
  289. package/build/cjs/common/components/ui/formik/validationSchemas.js +4 -8
  290. package/build/cjs/common/components/ui/formik/validationSchemas.js.map +1 -1
  291. package/build/cjs/common/config/docs_links.js +9 -3
  292. package/build/cjs/common/config/docs_links.js.map +1 -1
  293. package/build/cjs/common/utils.js +4 -3
  294. package/build/cjs/common/utils.js.map +1 -1
  295. package/build/cjs/ocm/components/Routes.js.map +1 -1
  296. package/build/cjs/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.js +2 -1
  297. package/build/cjs/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.js.map +1 -1
  298. package/build/cjs/ocm/components/clusterConfiguration/OcmDiscoveryImageConfigForm.js +1 -1
  299. package/build/cjs/ocm/components/clusterConfiguration/OcmDiscoveryImageConfigForm.js.map +1 -1
  300. package/build/cjs/ocm/components/clusterConfiguration/OcmOpenShiftVersionSelect.js +10 -15
  301. package/build/cjs/ocm/components/clusterConfiguration/OcmOpenShiftVersionSelect.js.map +1 -1
  302. package/build/cjs/ocm/components/clusterConfiguration/OpenshiftVersionHelperText.js.map +1 -1
  303. package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/networkConfigurationValidation.js +1 -1
  304. package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/networkConfigurationValidation.js.map +1 -1
  305. package/build/cjs/ocm/components/clusterWizard/OperatorsBundle.js +2 -2
  306. package/build/cjs/ocm/components/clusterWizard/OperatorsBundle.js.map +1 -1
  307. package/build/cjs/ocm/components/clusterWizard/disconnected/ReviewStep.js +1 -1
  308. package/build/cjs/ocm/components/clusterWizard/disconnected/ReviewStep.js.map +1 -1
  309. package/lib/cim/components/Agent/AgentStatus.tsx +1 -1
  310. package/lib/cim/components/Agent/tableUtils.tsx +43 -13
  311. package/lib/cim/components/ClusterDeployment/ClusterDeploymentWizard.tsx +15 -5
  312. package/lib/cim/components/ClusterDeployment/ScaleUpForm.tsx +1 -1
  313. package/lib/cim/components/ClusterDeployment/{ACMClusterDeploymentDetailsStep.tsx → clusterDetails/ACMClusterDeploymentDetailsStep.tsx} +6 -8
  314. package/lib/cim/components/ClusterDeployment/{ClusterDeploymentDetailsForm.tsx → clusterDetails/ClusterDeploymentDetailsForm.tsx} +17 -11
  315. package/lib/cim/components/ClusterDeployment/{ClusterDeploymentDetailsStep.tsx → clusterDetails/ClusterDeploymentDetailsStep.tsx} +9 -10
  316. package/lib/cim/components/ClusterDeployment/{ClusterDetailsFormFields.tsx → clusterDetails/ClusterDetailsFormFields.tsx} +22 -24
  317. package/lib/cim/components/ClusterDeployment/clusterDetails/index.tsx +4 -0
  318. package/lib/cim/components/ClusterDeployment/{AdditionalNTPSourcesDialogToggle.tsx → components/AdditionalNTPSourcesDialogToggle.tsx} +1 -1
  319. package/lib/cim/components/ClusterDeployment/components/index.tsx +1 -0
  320. package/lib/cim/components/ClusterDeployment/constants.ts +1 -0
  321. package/lib/cim/components/ClusterDeployment/customManifests/ClusterDeploymentCustomManifestsStep.tsx +128 -0
  322. package/lib/cim/components/ClusterDeployment/customManifests/ConfigMapDetail.tsx +191 -0
  323. package/lib/cim/components/ClusterDeployment/customManifests/ConfigMapForm.tsx +247 -0
  324. package/lib/cim/components/ClusterDeployment/customManifests/index.tsx +1 -0
  325. package/lib/cim/components/ClusterDeployment/{ClusterDeploymentHostDiscoveryTable.tsx → hostDiscovery/ClusterDeploymentHostDiscoveryTable.tsx} +23 -14
  326. package/lib/cim/components/ClusterDeployment/{ClusterDeploymentHostsDiscovery.tsx → hostDiscovery/ClusterDeploymentHostsDiscovery.tsx} +8 -8
  327. package/lib/cim/components/ClusterDeployment/{ClusterDeploymentHostsDiscoveryStep.tsx → hostDiscovery/ClusterDeploymentHostsDiscoveryStep.tsx} +10 -11
  328. package/lib/cim/components/ClusterDeployment/hostDiscovery/index.tsx +1 -0
  329. package/lib/cim/components/ClusterDeployment/{ClusterDeploymentHostSelectionStep.tsx → hostSelection/ClusterDeploymentHostSelectionStep.tsx} +17 -16
  330. package/lib/cim/components/ClusterDeployment/{ClusterDeploymentHostsSelection.tsx → hostSelection/ClusterDeploymentHostsSelection.tsx} +33 -17
  331. package/lib/cim/components/ClusterDeployment/{ClusterDeploymentHostsSelectionAdvanced.tsx → hostSelection/ClusterDeploymentHostsSelectionAdvanced.tsx} +10 -12
  332. package/lib/cim/components/ClusterDeployment/{ClusterDeploymentHostsSelectionBasic.tsx → hostSelection/ClusterDeploymentHostsSelectionBasic.tsx} +9 -9
  333. package/lib/cim/components/ClusterDeployment/hostSelection/index.tsx +2 -0
  334. package/lib/cim/components/ClusterDeployment/index.ts +2 -2
  335. package/lib/cim/components/ClusterDeployment/{ClusterDeploymentHostsNetworkTable.tsx → networking/ClusterDeploymentHostsNetworkTable.tsx} +12 -12
  336. package/lib/cim/components/ClusterDeployment/{ClusterDeploymentNetworkingForm.tsx → networking/ClusterDeploymentNetworkingForm.tsx} +9 -13
  337. package/lib/cim/components/ClusterDeployment/{ClusterDeploymentNetworkingStep.tsx → networking/ClusterDeploymentNetworkingStep.tsx} +11 -13
  338. package/lib/cim/components/ClusterDeployment/networking/index.tsx +1 -0
  339. package/lib/cim/components/ClusterDeployment/{ClusterDeploymentReviewStep.tsx → review/ClusterDeploymentReviewStep.tsx} +36 -15
  340. package/lib/cim/components/ClusterDeployment/review/ReviewConfigMapsTable.tsx +70 -0
  341. package/lib/cim/components/ClusterDeployment/review/index.tsx +1 -0
  342. package/lib/cim/components/ClusterDeployment/types.ts +2 -0
  343. package/lib/cim/components/ClusterDeployment/use-networking-formik.ts +4 -4
  344. package/lib/cim/components/ClusterDeployment/wizardTransition.ts +2 -0
  345. package/lib/cim/components/Hypershift/HostedClusterWizard/DetailsStep/DetailsForm.tsx +7 -12
  346. package/lib/cim/components/Hypershift/HostedClusterWizard/DetailsStep/types.ts +1 -1
  347. package/lib/cim/components/Hypershift/modals/ManageHostsModal.tsx +2 -2
  348. package/lib/cim/components/InfraEnv/InfraEnvAgentTable.tsx +11 -0
  349. package/lib/cim/components/InfraEnv/InfraTableToolbar.tsx +77 -1
  350. package/lib/cim/components/helpers/agentClusterInstall.ts +4 -0
  351. package/lib/cim/components/helpers/agents.ts +5 -1
  352. package/lib/cim/components/helpers/toAssisted.ts +27 -2
  353. package/lib/cim/components/helpers/versions.ts +7 -3
  354. package/lib/cim/components/modals/AddHostModal.tsx +13 -1
  355. package/lib/cim/components/modals/CimConfiguration/CimConfigurationFormFields.tsx +259 -0
  356. package/lib/cim/components/modals/CimConfiguration/CimConfigurationModal.tsx +170 -193
  357. package/lib/cim/components/modals/CimConfiguration/persist.ts +62 -125
  358. package/lib/cim/components/modals/CimConfiguration/types.ts +7 -22
  359. package/lib/cim/components/modals/EditProxyModal.tsx +1 -1
  360. package/lib/cim/components/modals/EditSSHKeyModal.tsx +1 -1
  361. package/lib/cim/components/modals/MassApproveAgentModal.tsx +2 -2
  362. package/lib/cim/hooks/index.tsx +2 -0
  363. package/lib/cim/hooks/types.tsx +8 -0
  364. package/lib/cim/hooks/useAgentServiceConfig.tsx +15 -0
  365. package/lib/cim/hooks/useConfigMaps.tsx +14 -0
  366. package/lib/cim/hooks/useK8sWatchResource.tsx +27 -0
  367. package/lib/cim/types/index.ts +1 -1
  368. package/lib/cim/types/k8s/agent-cluster-install.ts +1 -0
  369. package/lib/cim/types/models.tsx +56 -0
  370. package/lib/cim/utils.ts +12 -0
  371. package/lib/common/components/clusterConfiguration/ControlPlaneNodesDropdown.tsx +10 -1
  372. package/lib/common/components/clusterConfiguration/DownloadIso.tsx +3 -1
  373. package/lib/common/components/clusterConfiguration/ExternalPlatformsDropdown.tsx +88 -0
  374. package/lib/common/components/clusterConfiguration/SecurityFields.tsx +12 -5
  375. package/lib/common/components/clusterConfiguration/index.ts +1 -0
  376. package/lib/common/components/clusterWizard/clusterDetailsValidation.ts +7 -7
  377. package/lib/common/components/clusterWizard/types.ts +1 -2
  378. package/lib/common/components/hosts/status.tsx +1 -2
  379. package/lib/common/components/hosts/tableUtils.tsx +48 -0
  380. package/lib/common/components/hosts/utils.ts +4 -0
  381. package/lib/common/components/ui/OpenShiftSelectWithSearch.tsx +38 -239
  382. package/lib/common/components/ui/OpenShiftVersionDropdown.tsx +14 -23
  383. package/lib/common/components/ui/OpenShiftVersionModal.tsx +12 -16
  384. package/lib/common/components/ui/formik/InputField.tsx +16 -12
  385. package/lib/common/components/ui/formik/SelectFieldWithSearch.tsx +278 -0
  386. package/lib/common/components/ui/formik/index.tsx +1 -0
  387. package/lib/common/components/ui/formik/types.ts +2 -2
  388. package/lib/common/components/ui/formik/validationSchemas.ts +7 -9
  389. package/lib/common/config/docs_links.ts +9 -6
  390. package/lib/common/utils.ts +1 -1
  391. package/lib/ocm/components/Routes.tsx +9 -7
  392. package/lib/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.tsx +17 -16
  393. package/lib/ocm/components/clusterConfiguration/OcmDiscoveryImageConfigForm.tsx +2 -2
  394. package/lib/ocm/components/clusterConfiguration/OcmOpenShiftVersionSelect.tsx +13 -18
  395. package/lib/ocm/components/clusterConfiguration/OpenshiftVersionHelperText.tsx +1 -1
  396. package/lib/ocm/components/clusterConfiguration/networkConfiguration/networkConfigurationValidation.ts +2 -2
  397. package/lib/ocm/components/clusterWizard/OperatorsBundle.tsx +2 -2
  398. package/lib/ocm/components/clusterWizard/disconnected/ReviewStep.tsx +1 -1
  399. package/package.json +4 -4
  400. package/build/@types/cim/components/ClusterDeployment/ACMClusterDeploymentDetailsStep.d.ts.map +0 -1
  401. package/build/@types/cim/components/ClusterDeployment/AdditionalNTPSourcesDialogToggle.d.ts.map +0 -1
  402. package/build/@types/cim/components/ClusterDeployment/ClusterDeploymentDetailsForm.d.ts.map +0 -1
  403. package/build/@types/cim/components/ClusterDeployment/ClusterDeploymentDetailsStep.d.ts.map +0 -1
  404. package/build/@types/cim/components/ClusterDeployment/ClusterDeploymentHostDiscoveryTable.d.ts.map +0 -1
  405. package/build/@types/cim/components/ClusterDeployment/ClusterDeploymentHostSelectionStep.d.ts.map +0 -1
  406. package/build/@types/cim/components/ClusterDeployment/ClusterDeploymentHostsDiscovery.d.ts.map +0 -1
  407. package/build/@types/cim/components/ClusterDeployment/ClusterDeploymentHostsDiscoveryStep.d.ts +0 -5
  408. package/build/@types/cim/components/ClusterDeployment/ClusterDeploymentHostsDiscoveryStep.d.ts.map +0 -1
  409. package/build/@types/cim/components/ClusterDeployment/ClusterDeploymentHostsNetworkTable.d.ts.map +0 -1
  410. package/build/@types/cim/components/ClusterDeployment/ClusterDeploymentHostsSelection.d.ts.map +0 -1
  411. package/build/@types/cim/components/ClusterDeployment/ClusterDeploymentHostsSelectionAdvanced.d.ts.map +0 -1
  412. package/build/@types/cim/components/ClusterDeployment/ClusterDeploymentHostsSelectionBasic.d.ts.map +0 -1
  413. package/build/@types/cim/components/ClusterDeployment/ClusterDeploymentNetworkingForm.d.ts.map +0 -1
  414. package/build/@types/cim/components/ClusterDeployment/ClusterDeploymentNetworkingStep.d.ts.map +0 -1
  415. package/build/@types/cim/components/ClusterDeployment/ClusterDeploymentReviewStep.d.ts.map +0 -1
  416. package/build/@types/cim/components/ClusterDeployment/ClusterDetailsFormFields.d.ts.map +0 -1
  417. package/build/@types/cim/components/modals/CimConfiguration/CimConfigurationForm.d.ts +0 -5
  418. package/build/@types/cim/components/modals/CimConfiguration/CimConfigurationForm.d.ts.map +0 -1
  419. package/build/@types/cim/types/resources.d.ts +0 -45
  420. package/build/@types/cim/types/resources.d.ts.map +0 -1
  421. package/build/cjs/cim/components/ClusterDeployment/ACMClusterDeploymentDetailsStep.js.map +0 -1
  422. package/build/cjs/cim/components/ClusterDeployment/AdditionalNTPSourcesDialogToggle.js.map +0 -1
  423. package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentDetailsForm.js.map +0 -1
  424. package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentDetailsStep.js.map +0 -1
  425. package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentHostDiscoveryTable.js.map +0 -1
  426. package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentHostSelectionStep.js.map +0 -1
  427. package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentHostsDiscovery.js.map +0 -1
  428. package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentHostsDiscoveryStep.js.map +0 -1
  429. package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentHostsNetworkTable.js.map +0 -1
  430. package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentHostsSelection.js.map +0 -1
  431. package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentHostsSelectionAdvanced.js.map +0 -1
  432. package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentHostsSelectionBasic.js.map +0 -1
  433. package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentNetworkingForm.js.map +0 -1
  434. package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentNetworkingStep.js.map +0 -1
  435. package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentReviewStep.js.map +0 -1
  436. package/build/cjs/cim/components/ClusterDeployment/ClusterDetailsFormFields.js.map +0 -1
  437. package/build/cjs/cim/components/modals/CimConfiguration/CimConfigurationForm.css +0 -23
  438. package/build/cjs/cim/components/modals/CimConfiguration/CimConfigurationForm.js +0 -85
  439. package/build/cjs/cim/components/modals/CimConfiguration/CimConfigurationForm.js.map +0 -1
  440. package/build/cjs/cim/components/modals/CimConfiguration/CimConfigurationModal.css +0 -3
  441. package/build/cjs/cim/types/resources.js +0 -10
  442. package/build/cjs/cim/types/resources.js.map +0 -1
  443. package/lib/cim/components/modals/CimConfiguration/CimConfigurationForm.css +0 -23
  444. package/lib/cim/components/modals/CimConfiguration/CimConfigurationForm.tsx +0 -290
  445. package/lib/cim/components/modals/CimConfiguration/CimConfigurationModal.css +0 -3
  446. package/lib/cim/types/resources.ts +0 -50
  447. /package/build/@types/cim/components/ClusterDeployment/{AdditionalNTPSourcesDialogToggle.d.ts → components/AdditionalNTPSourcesDialogToggle.d.ts} +0 -0
@@ -1,5 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { Link } from 'react-router-dom-v5-compat';
3
+ import countBy from 'lodash-es/countBy';
3
4
 
4
5
  import {
5
6
  HostsTableActions,
@@ -25,7 +26,7 @@ import {
25
26
  getBMHStatusKey,
26
27
  getWizardStepAgentStatus,
27
28
  } from '../helpers/status';
28
- import { filterByHostname } from '../../../common/components/hosts/utils';
29
+ import { filterByHostname, getHostLabels } from '../../../common/components/hosts/utils';
29
30
  import { agentStatus } from '../helpers/agentStatus';
30
31
  import noop from 'lodash-es/noop.js';
31
32
  import { useTranslation } from '../../../common/hooks/use-translation-wrapper';
@@ -318,17 +319,6 @@ export const canUnbindAgent = (
318
319
  }
319
320
 
320
321
  const statusKey = getAgentStatusKey(agent);
321
- if (
322
- [
323
- 'preparing-for-installation',
324
- 'installing',
325
- 'installing-in-progress',
326
- 'installing-pending-user-action',
327
- 'resetting-pending-user-action',
328
- ].includes(statusKey)
329
- ) {
330
- return [false, t('ai:It is not possible to remove a host which is being installed.')];
331
- }
332
322
 
333
323
  if (
334
324
  ['installed', 'error', 'cancelled'].includes(statusKey) &&
@@ -401,6 +391,7 @@ export const useAgentsTable = (
401
391
  } = tableActions || {};
402
392
  const { t } = useTranslation();
403
393
  const agentStatuses = agentStatus(t);
394
+
404
395
  const [hosts, actions] = React.useMemo(
405
396
  (): [Host[], HostsTableActions] => [
406
397
  getAIHosts(agents, bmhs, infraEnv),
@@ -548,6 +539,22 @@ const filterByStatus = (
548
539
  });
549
540
  };
550
541
 
542
+ const filterByLabels = (hosts: Host[], labelFilter: string[]) => {
543
+ if (!labelFilter.length) {
544
+ return hosts;
545
+ }
546
+
547
+ return hosts.filter((h) => {
548
+ const labels = getHostLabels(h);
549
+
550
+ return labelFilter.some((l) =>
551
+ Object.entries(labels)
552
+ .map(([key, value]) => `${key} = ${value}`)
553
+ .includes(l),
554
+ );
555
+ });
556
+ };
557
+
551
558
  export const filterHosts = (
552
559
  hosts: Host[],
553
560
  agents: AgentK8sResource[],
@@ -555,11 +562,26 @@ export const filterHosts = (
555
562
  bareMetalHosts: BareMetalHostK8sResource[],
556
563
  hostnameFilter: string | undefined,
557
564
  statusFilter: string[],
565
+ labelFilter: string[],
558
566
  ) => {
559
567
  const { hosts: byHostname, sorted } = filterByHostname(hosts, hostnameFilter);
560
568
  const byStatus = filterByStatus(byHostname, agents, agentStatuses, bareMetalHosts, statusFilter);
569
+ const byLabels = filterByLabels(byStatus, labelFilter);
561
570
 
562
- return { hosts: byStatus, sorted };
571
+ return { hosts: byLabels, sorted };
572
+ };
573
+
574
+ const getAllLabels = (hosts: Host[]) => {
575
+ const labelArray = hosts
576
+ .map((host) => {
577
+ const labels = getHostLabels(host);
578
+
579
+ return Object.entries(labels).map(([key, val]) => `${key} = ${val}`);
580
+ })
581
+ .flat()
582
+ .sort();
583
+
584
+ return countBy(labelArray);
563
585
  };
564
586
 
565
587
  type UseAgentsFilterArgs = {
@@ -581,10 +603,12 @@ export const useAgentsFilter = ({
581
603
  }: UseAgentsFilterArgs) => {
582
604
  const [hostnameFilter, setHostnameFilter] = React.useState<string>();
583
605
  const [statusFilter, setStatusFilter] = React.useState<string[]>([]);
606
+ const [labelFilter, setLabelFilter] = React.useState<string[]>([]);
584
607
  const statusCount = Object.keys(agentStatuses).reduce((acc, curr) => {
585
608
  acc[agentStatuses[curr].title] = 0;
586
609
  return acc;
587
610
  }, {} as StatusCount);
611
+
588
612
  hosts.forEach((host) => {
589
613
  const agent = agents.find((a) => a.metadata?.uid === host.id);
590
614
  const bmh = bmhs.find((bmh) => bmh.metadata?.uid === host.id);
@@ -597,6 +621,8 @@ export const useAgentsFilter = ({
597
621
  }
598
622
  });
599
623
 
624
+ const hostLabels = getAllLabels(hosts);
625
+
600
626
  const { hosts: filteredHosts, sorted } = filterHosts(
601
627
  hosts,
602
628
  agents,
@@ -604,6 +630,7 @@ export const useAgentsFilter = ({
604
630
  bmhs,
605
631
  hostnameFilter,
606
632
  statusFilter,
633
+ labelFilter,
607
634
  );
608
635
 
609
636
  return {
@@ -612,6 +639,9 @@ export const useAgentsFilter = ({
612
639
  setHostnameFilter,
613
640
  statusFilter,
614
641
  setStatusFilter,
642
+ hostLabels,
643
+ labelFilter,
644
+ setLabelFilter,
615
645
  filteredHosts,
616
646
  sorted,
617
647
  };
@@ -2,17 +2,18 @@ import * as React from 'react';
2
2
  import { useTranslation } from '../../../common/hooks/use-translation-wrapper';
3
3
  import { Grid, GridItem, Wizard, WizardStep } from '@patternfly/react-core';
4
4
  import { AlertsContextProvider, LoadingState } from '../../../common';
5
- import ClusterDeploymentDetailsStep from './ClusterDeploymentDetailsStep';
6
- import ClusterDeploymentNetworkingStep from './ClusterDeploymentNetworkingStep';
7
- import ClusterDeploymentHostSelectionStep from './ClusterDeploymentHostSelectionStep';
8
5
  import { ClusterDeploymentWizardProps } from './types';
9
- import ClusterDeploymentHostsDiscoveryStep from './ClusterDeploymentHostsDiscoveryStep';
10
6
  import { ACMFeatureSupportLevelProvider } from '../featureSupportLevels';
11
- import ClusterDeploymentReviewStep from './ClusterDeploymentReviewStep';
12
7
  import { YamlPreview, useYamlPreview } from '../YamlPreview';
13
8
  import { wizardStepNames } from './constants';
14
9
  import { ClusterDeploymentWizardContextProvider } from './ClusterDeploymentWizardContext';
15
10
  import { isCIMFlow } from './helpers';
11
+ import { ClusterDeploymentDetailsStep } from './clusterDetails';
12
+ import { ClusterDeploymentHostSelectionStep } from './hostSelection';
13
+ import { ClusterDeploymentHostsDiscoveryStep } from './hostDiscovery';
14
+ import { ClusterDeploymentNetworkingStep } from './networking';
15
+ import { ClusterDeploymentReviewStep } from './review';
16
+ import { ClusterDeploymentCustomManifestsStep } from './customManifests';
16
17
 
17
18
  export const ClusterDeploymentWizard = ({
18
19
  className,
@@ -76,6 +77,7 @@ export const ClusterDeploymentWizard = ({
76
77
  id={'installation-type'}
77
78
  isDisabled
78
79
  />
80
+
79
81
  <WizardStep name={stepNames['cluster-details']} id={'cluster-details'}>
80
82
  <ClusterDeploymentDetailsStep
81
83
  clusterImages={clusterImages}
@@ -89,7 +91,9 @@ export const ClusterDeploymentWizard = ({
89
91
  isNutanix={isNutanix}
90
92
  />
91
93
  </WizardStep>
94
+
92
95
  <WizardStep name={stepNames['automation']} id={'automation'} isDisabled />
96
+
93
97
  {isCIMFlow(clusterDeployment) ? (
94
98
  <WizardStep name={stepNames['hosts-selection']} id={'host-selection'}>
95
99
  {agentClusterInstall?.metadata?.name ? (
@@ -131,6 +135,7 @@ export const ClusterDeploymentWizard = ({
131
135
  )}
132
136
  </WizardStep>
133
137
  )}
138
+
134
139
  <WizardStep name={stepNames['networking']} id={'networking'}>
135
140
  <ClusterDeploymentNetworkingStep
136
141
  clusterDeployment={clusterDeployment}
@@ -145,6 +150,11 @@ export const ClusterDeploymentWizard = ({
145
150
  isNutanix={isNutanix}
146
151
  />
147
152
  </WizardStep>
153
+
154
+ <WizardStep name={stepNames['custom-manifests']} id={'custom-manifests'}>
155
+ <ClusterDeploymentCustomManifestsStep agentClusterInstall={agentClusterInstall} />
156
+ </WizardStep>
157
+
148
158
  <WizardStep name={stepNames['review']} id={'review'}>
149
159
  <ClusterDeploymentReviewStep
150
160
  onFinish={onFinish}
@@ -3,7 +3,7 @@ import { useFormikContext } from 'formik';
3
3
  import { Flex, FlexItem, Form, FormGroup } from '@patternfly/react-core';
4
4
  import { getAgentsForSelection } from '../helpers/agents';
5
5
  import { AgentK8sResource } from '../../types/k8s/agent';
6
- import ClusterDeploymentHostsSelectionAdvanced from './ClusterDeploymentHostsSelectionAdvanced';
6
+ import { ClusterDeploymentHostsSelectionAdvanced } from './hostSelection';
7
7
  import { ScaleUpFormValues } from './types';
8
8
  import SwitchField from '../../../common/components/ui/formik/SwitchField';
9
9
  import ClusterScaleUpAutoHostsSelection from './ClusterScaleUpAutoHostsSelection';
@@ -2,13 +2,13 @@ import React from 'react';
2
2
  import { Formik, FormikProps, useFormikContext } from 'formik';
3
3
  import { Stack } from '@patternfly/react-core';
4
4
  import noop from 'lodash-es/noop.js';
5
- import { ClusterDetailsValues, getRichTextValidation } from '../../../common';
6
- import { ClusterImageSetK8sResource } from '../../types/k8s/cluster-image-set';
7
- import ClusterDeploymentDetailsForm from './ClusterDeploymentDetailsForm';
5
+ import { ClusterDetailsValues, getRichTextValidation } from '../../../../common';
6
+ import { ClusterImageSetK8sResource } from '../../../types/k8s/cluster-image-set';
8
7
  import { useDetailsFormik } from './ClusterDeploymentDetailsStep';
9
8
  import { ClusterDetailsFormFieldsProps } from './ClusterDetailsFormFields';
10
- import { OsImage } from '../../types';
11
- import { getOCPVersions } from '../helpers';
9
+ import { OsImage } from '../../../types';
10
+ import { getOCPVersions } from '../../helpers';
11
+ import { ClusterDeploymentDetailsForm } from './ClusterDeploymentDetailsForm';
12
12
 
13
13
  type DetailsFormBodyProps = {
14
14
  clusterImages: ClusterImageSetK8sResource[];
@@ -49,7 +49,7 @@ type ACMClusterDeploymentDetailsStepProps = DetailsFormBodyProps & {
49
49
  formRef: React.Ref<FormikProps<ClusterDetailsValues>>;
50
50
  };
51
51
 
52
- const ACMClusterDeploymentDetailsStep: React.FC<ACMClusterDeploymentDetailsStepProps> = ({
52
+ export const ACMClusterDeploymentDetailsStep: React.FC<ACMClusterDeploymentDetailsStepProps> = ({
53
53
  clusterImages,
54
54
  formRef,
55
55
  usedClusterNames,
@@ -80,5 +80,3 @@ const ACMClusterDeploymentDetailsStep: React.FC<ACMClusterDeploymentDetailsStepP
80
80
  </Formik>
81
81
  );
82
82
  };
83
-
84
- export default ACMClusterDeploymentDetailsStep;
@@ -8,18 +8,26 @@ import {
8
8
  useWizardFooter,
9
9
  WizardFooter,
10
10
  } from '@patternfly/react-core';
11
- import { AgentClusterInstallK8sResource, ClusterDeploymentK8sResource, OsImage } from '../../types';
12
- import { ClusterImageSetK8sResource } from '../../types/k8s/cluster-image-set';
13
- import { getOCPVersions, getSelectedVersion } from '../helpers';
14
- import { useTranslation } from '../../../common/hooks/use-translation-wrapper';
11
+ import {
12
+ AgentClusterInstallK8sResource,
13
+ ClusterDeploymentK8sResource,
14
+ OsImage,
15
+ } from '../../../types';
16
+ import { ClusterImageSetK8sResource } from '../../../types/k8s/cluster-image-set';
17
+ import { getOCPVersions, getSelectedVersion } from '../../helpers';
18
+ import { useTranslation } from '../../../../common/hooks/use-translation-wrapper';
15
19
  import {
16
20
  ClusterDetailsFormFields,
17
21
  ClusterDetailsFormFieldsProps,
18
22
  } from './ClusterDetailsFormFields';
19
23
  import { useFormikContext } from 'formik';
20
- import { ClusterDetailsValues, CpuArchitecture, SupportedCpuArchitecture } from '../../../common';
21
- import { ClusterDeploymentWizardContext } from './ClusterDeploymentWizardContext';
22
- import { ValidationSection } from './components/ValidationSection';
24
+ import {
25
+ ClusterDetailsValues,
26
+ CpuArchitecture,
27
+ SupportedCpuArchitecture,
28
+ } from '../../../../common';
29
+ import { ClusterDeploymentWizardContext } from '../ClusterDeploymentWizardContext';
30
+ import { ValidationSection } from '../components/ValidationSection';
23
31
  import { toNumber } from 'lodash-es';
24
32
 
25
33
  type ClusterDeploymentDetailsFormProps = {
@@ -74,7 +82,7 @@ export const ClusterDeploymentDetailsFormWrapper = ({
74
82
  {syncError && (
75
83
  <StackItem>
76
84
  <ValidationSection currentStepId={'networking'} hosts={[]}>
77
- <Alert variant={AlertVariant.danger} title={t('ai:An error occured')} isInline>
85
+ <Alert variant={AlertVariant.danger} title={t('ai:An error occurred')} isInline>
78
86
  {syncError}
79
87
  </Alert>
80
88
  </ValidationSection>
@@ -84,7 +92,7 @@ export const ClusterDeploymentDetailsFormWrapper = ({
84
92
  );
85
93
  };
86
94
 
87
- const ClusterDeploymentDetailsForm: React.FC<ClusterDeploymentDetailsFormProps> = ({
95
+ export const ClusterDeploymentDetailsForm: React.FC<ClusterDeploymentDetailsFormProps> = ({
88
96
  agentClusterInstall,
89
97
  clusterDeployment,
90
98
  clusterImages,
@@ -150,5 +158,3 @@ const ClusterDeploymentDetailsForm: React.FC<ClusterDeploymentDetailsFormProps>
150
158
  </>
151
159
  );
152
160
  };
153
-
154
- export default ClusterDeploymentDetailsForm;
@@ -11,21 +11,22 @@ import {
11
11
  ClusterDetailsValues,
12
12
  getRichTextValidation,
13
13
  OpenshiftVersionOptionType,
14
- } from '../../../common';
14
+ } from '../../../../common';
15
15
 
16
- import { ClusterDeploymentDetailsStepProps, ClusterDeploymentDetailsValues } from './types';
17
- import { getAICluster, getNetworkType, getOCPVersions } from '../helpers';
16
+ import { ClusterDeploymentDetailsStepProps, ClusterDeploymentDetailsValues } from '../types';
17
+ import { getAICluster, getNetworkType, getOCPVersions } from '../../helpers';
18
18
  import {
19
19
  AgentClusterInstallK8sResource,
20
20
  AgentK8sResource,
21
21
  ClusterDeploymentK8sResource,
22
22
  InfraEnvK8sResource,
23
- } from '../../types';
24
- import ClusterDeploymentDetailsForm, {
23
+ } from '../../../types';
24
+ import {
25
+ ClusterDeploymentDetailsForm,
25
26
  ClusterDeploymentDetailsFormWrapper,
26
27
  } from './ClusterDeploymentDetailsForm';
27
- import { getGridSpans } from './helpers';
28
- import { useTranslation } from '../../../common/hooks/use-translation-wrapper';
28
+ import { getGridSpans } from '../helpers';
29
+ import { useTranslation } from '../../../../common/hooks/use-translation-wrapper';
29
30
 
30
31
  type UseDetailsFormikArgs = {
31
32
  usedClusterNames: string[];
@@ -96,7 +97,7 @@ export const useDetailsFormik = ({
96
97
  return [initialValues, validationSchema];
97
98
  };
98
99
 
99
- const ClusterDeploymentDetailsStep: React.FC<ClusterDeploymentDetailsStepProps> = ({
100
+ export const ClusterDeploymentDetailsStep: React.FC<ClusterDeploymentDetailsStepProps> = ({
100
101
  clusterImages,
101
102
  clusterDeployment,
102
103
  agentClusterInstall,
@@ -159,5 +160,3 @@ const ClusterDeploymentDetailsStep: React.FC<ClusterDeploymentDetailsStepProps>
159
160
  </Formik>
160
161
  );
161
162
  };
162
-
163
- export default ClusterDeploymentDetailsStep;
@@ -3,23 +3,24 @@ import { Form } from '@patternfly/react-core';
3
3
  import { useFormikContext } from 'formik';
4
4
 
5
5
  import {
6
+ ExternalPlatformsDropdown,
6
7
  isMajorMinorVersionEqualOrGreater,
7
8
  OpenShiftVersionDropdown,
8
9
  OpenShiftVersionModal,
9
- } from '../../../common';
10
- import { StaticTextField } from '../../../common/components/ui/StaticTextField';
11
- import { PullSecret } from '../../../common/components/clusters';
12
- import { OpenshiftVersionOptionType, SupportedCpuArchitecture } from '../../../common/types';
10
+ } from '../../../../common';
11
+ import { StaticTextField } from '../../../../common/components/ui/StaticTextField';
12
+ import { PullSecret } from '../../../../common/components/clusters';
13
+ import { OpenshiftVersionOptionType, SupportedCpuArchitecture } from '../../../../common/types';
13
14
  import {
14
15
  InputField,
15
16
  RichInputField,
16
17
  acmClusterNameValidationMessages,
17
- } from '../../../common/components/ui/formik';
18
- import { ClusterDetailsValues } from '../../../common/components/clusterWizard/types';
19
- import { useTranslation } from '../../../common/hooks/use-translation-wrapper';
20
- import CpuArchitectureDropdown from '../common/CpuArchitectureDropdown';
21
- import ControlPlaneNodesDropdown from '../../../common/components/clusterConfiguration/ControlPlaneNodesDropdown';
22
- import { getNetworkType } from '../helpers';
18
+ } from '../../../../common/components/ui/formik';
19
+ import { ClusterDetailsValues } from '../../../../common/components/clusterWizard/types';
20
+ import { useTranslation } from '../../../../common/hooks/use-translation-wrapper';
21
+ import CpuArchitectureDropdown from '../../common/CpuArchitectureDropdown';
22
+ import ControlPlaneNodesDropdown from '../../../../common/components/clusterConfiguration/ControlPlaneNodesDropdown';
23
+ import { getNetworkType } from '../../helpers';
23
24
 
24
25
  export type ClusterDetailsFormFieldsProps = {
25
26
  isEditFlow: boolean;
@@ -69,7 +70,7 @@ export const ClusterDetailsFormFields: React.FC<ClusterDetailsFormFieldsProps> =
69
70
  React.useEffect(() => {
70
71
  if (!versions.length && !values.openshiftVersion) {
71
72
  const fallbackOpenShiftVersion = allVersions.find((version) => version.default);
72
- setFieldValue('customOpenshiftSelect', fallbackOpenShiftVersion);
73
+ setFieldValue('customOpenshiftSelect', fallbackOpenShiftVersion?.value);
73
74
  setFieldValue('openshiftVersion', fallbackOpenShiftVersion?.value);
74
75
  setFieldValue('networkType', getNetworkType(fallbackOpenShiftVersion));
75
76
  }
@@ -89,28 +90,23 @@ export const ClusterDetailsFormFields: React.FC<ClusterDetailsFormFieldsProps> =
89
90
  [versions],
90
91
  );
91
92
 
92
- const additionalSelectOptions = React.useMemo(() => {
93
+ const additionalSelectOption = React.useMemo(() => {
93
94
  if (
94
95
  values.customOpenshiftSelect &&
95
- !selectOptions.some((option) => option.value === values.customOpenshiftSelect?.value)
96
+ !versions.some((version) => version.value === values.customOpenshiftSelect)
96
97
  ) {
97
- return [
98
- {
99
- value: values.customOpenshiftSelect.value,
100
- label: values.customOpenshiftSelect.label,
101
- },
102
- ];
98
+ return allVersions.find((option) => option.value === values.customOpenshiftSelect);
103
99
  }
104
- return [];
105
- }, [selectOptions, values.customOpenshiftSelect]);
100
+ return undefined;
101
+ }, [allVersions, values.customOpenshiftSelect, versions]);
106
102
 
107
103
  const allowTNA = React.useMemo(() => {
108
104
  const current =
109
- values.customOpenshiftSelect?.version ||
105
+ values.customOpenshiftSelect ||
110
106
  versions.find((version) => version.value === values.openshiftVersion)?.version;
111
107
 
112
108
  return isMajorMinorVersionEqualOrGreater(current, '4.19') && values.platform === 'baremetal';
113
- }, [values.customOpenshiftSelect?.version, values.openshiftVersion, values.platform, versions]);
109
+ }, [values.customOpenshiftSelect, values.openshiftVersion, values.platform, versions]);
114
110
 
115
111
  return (
116
112
  <Form id="wizard-cluster-details__form">
@@ -159,7 +155,7 @@ export const ClusterDetailsFormFields: React.FC<ClusterDetailsFormFieldsProps> =
159
155
  versions={versions}
160
156
  showReleasesLink={false}
161
157
  showOpenshiftVersionModal={() => setOpenshiftVersionModalOpen(true)}
162
- customItems={additionalSelectOptions}
158
+ customItem={additionalSelectOption}
163
159
  />
164
160
  {openshiftVersionModalOpen && (
165
161
  <OpenShiftVersionModal
@@ -178,6 +174,8 @@ export const ClusterDetailsFormFields: React.FC<ClusterDetailsFormFieldsProps> =
178
174
  <CpuArchitectureDropdown cpuArchitectures={cpuArchitectures} isDisabled={isEditFlow} />
179
175
  )}
180
176
 
177
+ <ExternalPlatformsDropdown isDisabled={isEditFlow} />
178
+
181
179
  {extensionAfter?.['openshiftVersion'] && extensionAfter['openshiftVersion']}
182
180
 
183
181
  {!isEditFlow && <PullSecret />}
@@ -0,0 +1,4 @@
1
+ export * from './ClusterDeploymentDetailsStep';
2
+ export * from './ClusterDeploymentDetailsForm';
3
+ export * from './ACMClusterDeploymentDetailsStep';
4
+ export * from './ClusterDetailsFormFields';
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { useTranslation } from '../../../common/hooks/use-translation-wrapper';
2
+ import { useTranslation } from '../../../../common/hooks/use-translation-wrapper';
3
3
 
4
4
  // TODO we should use hostValidationFailureHints instead of passing this 'action' which is actually a hint
5
5
  export const AdditionalNTPSourcesDialogToggle: React.FC = () => {
@@ -0,0 +1 @@
1
+ export * from './AdditionalNTPSourcesDialogToggle';
@@ -18,6 +18,7 @@ export const wizardStepNames = (
18
18
  'hosts-selection': t('ai:Cluster hosts'),
19
19
  'hosts-discovery': t('ai:Cluster hosts'),
20
20
  networking: t('ai:Networking'),
21
+ 'custom-manifests': t('ai:Custom manifests'),
21
22
  review: t('ai:Review and create'),
22
23
  });
23
24
 
@@ -0,0 +1,128 @@
1
+ import React from 'react';
2
+ import * as Yup from 'yup';
3
+ import { Formik } from 'formik';
4
+ import { k8sPatch, Patch } from '@openshift-console/dynamic-plugin-sdk';
5
+ import {
6
+ Alert,
7
+ AlertActionLink,
8
+ Content,
9
+ ContentVariants,
10
+ Grid,
11
+ GridItem,
12
+ } from '@patternfly/react-core';
13
+ import ExternalLinkAltIcon from '@patternfly/react-icons/dist/js/icons/external-link-alt-icon';
14
+ import { ClusterWizardStepHeader, useTranslation } from '../../../../common';
15
+ import { AgentClusterInstallK8sResource, AgentClusterInstallModel } from '../../../types';
16
+ import { ConfigMapForm, CustomManifestFormType } from './ConfigMapForm';
17
+ import { appendPatch } from '../../../utils';
18
+
19
+ export const ClusterDeploymentCustomManifestsStep = ({
20
+ agentClusterInstall,
21
+ }: {
22
+ agentClusterInstall: AgentClusterInstallK8sResource;
23
+ }) => {
24
+ const { t } = useTranslation();
25
+
26
+ const initialValues: CustomManifestFormType = {
27
+ configMaps:
28
+ agentClusterInstall.spec?.manifestsConfigMapRefs?.map(({ name }) => ({
29
+ name,
30
+ valid: false,
31
+ })) || [],
32
+ };
33
+
34
+ const validationSchema = Yup.lazy((values: CustomManifestFormType) =>
35
+ Yup.object<CustomManifestFormType>({
36
+ configMaps: Yup.array()
37
+ .of(
38
+ Yup.object().shape({
39
+ name: Yup.string().required(t('ai:Config map name is required')),
40
+ valid: Yup.boolean().isTrue(t('ai:Config map not found')),
41
+ manifestNames: Yup.array()
42
+ .of(Yup.string())
43
+ .test(
44
+ 'unique-manifests',
45
+ t(
46
+ 'ai:Manifest names in each config map should be unique across all referenced config maps.',
47
+ ),
48
+ (value) =>
49
+ // check if another config map has any manifests with the same names as this one
50
+ values.configMaps
51
+ .flatMap(({ manifestNames }) => manifestNames)
52
+ .filter((v) => value?.includes(v)).length === value?.length,
53
+ ),
54
+ }),
55
+ )
56
+ .min(
57
+ agentClusterInstall.spec?.platformType === 'External' ? 1 : 0,
58
+ t('ai:At least one config map is required'),
59
+ ),
60
+ }),
61
+ );
62
+
63
+ const onSubmit = async (values: CustomManifestFormType) => {
64
+ const patches: Patch[] = [];
65
+ appendPatch(
66
+ patches,
67
+ '/spec/manifestsConfigMapRefs',
68
+ values.configMaps.map(({ name }) => ({ name })),
69
+ agentClusterInstall.spec?.manifestsConfigMapRefs,
70
+ );
71
+
72
+ if (patches.length > 0) {
73
+ await k8sPatch({
74
+ model: AgentClusterInstallModel,
75
+ resource: agentClusterInstall,
76
+ data: patches,
77
+ });
78
+ }
79
+ };
80
+
81
+ return (
82
+ <Grid hasGutter>
83
+ <GridItem>
84
+ <ClusterWizardStepHeader>{t('ai:Custom manifests')}</ClusterWizardStepHeader>
85
+ </GridItem>
86
+ <GridItem>
87
+ <Alert
88
+ variant="info"
89
+ isInline
90
+ title={t('ai:Add custom manifests')}
91
+ actionLinks={[
92
+ <AlertActionLink
93
+ key="define-config-map"
94
+ component={'a'}
95
+ href={`/k8s/ns/${
96
+ agentClusterInstall.metadata?.namespace as string
97
+ }/core~v1~ConfigMap`}
98
+ target="_blank"
99
+ rel="noopener noreferrer"
100
+ >
101
+ {t('ai:Define a config map')} <ExternalLinkAltIcon />
102
+ </AlertActionLink>,
103
+ ]}
104
+ >
105
+ <Content component={ContentVariants.p}>
106
+ {t(
107
+ 'ai:Define a config map with your custom manifests and select it in the form below.',
108
+ )}
109
+ </Content>
110
+ <Content component={ContentVariants.p}>
111
+ {t(
112
+ 'ai:Manifest names in each config map should be unique across all referenced config maps.',
113
+ )}
114
+ </Content>
115
+ </Alert>
116
+ </GridItem>
117
+ <GridItem>
118
+ <Formik
119
+ initialValues={initialValues}
120
+ onSubmit={onSubmit}
121
+ validationSchema={validationSchema}
122
+ >
123
+ <ConfigMapForm namespace={agentClusterInstall.metadata?.namespace as string} />
124
+ </Formik>
125
+ </GridItem>
126
+ </Grid>
127
+ );
128
+ };