@openshift-assisted/ui-lib 2.37.3 → 2.38.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (232) hide show
  1. package/build/@types/cim/components/ClusterDeployment/ClusterDetailsFormFields.d.ts.map +1 -1
  2. package/build/@types/cim/components/ClusterDeployment/wizardTransition.d.ts +1 -1
  3. package/build/@types/cim/components/ClusterDeployment/wizardTransition.d.ts.map +1 -1
  4. package/build/@types/cim/components/common/constants.d.ts.map +1 -1
  5. package/build/@types/cim/components/helpers/toAssisted.d.ts.map +1 -1
  6. package/build/@types/cim/components/modals/AddHostModal.d.ts.map +1 -1
  7. package/build/@types/cim/types/k8s/infra-env-k8s-resource.d.ts +1 -0
  8. package/build/@types/cim/types/k8s/infra-env-k8s-resource.d.ts.map +1 -1
  9. package/build/@types/common/api/assisted-service/BundleAPI.d.ts +8 -0
  10. package/build/@types/common/api/assisted-service/BundleAPI.d.ts.map +1 -0
  11. package/build/@types/common/api/assisted-service/OperatorsAPI.d.ts +6 -0
  12. package/build/@types/common/api/assisted-service/OperatorsAPI.d.ts.map +1 -0
  13. package/build/@types/common/components/clusterConfiguration/ControlPlaneNodesDropdown.d.ts +7 -0
  14. package/build/@types/common/components/clusterConfiguration/ControlPlaneNodesDropdown.d.ts.map +1 -0
  15. package/build/@types/common/components/clusterConfiguration/DiscoveryImageConfigForm.d.ts.map +1 -1
  16. package/build/@types/common/components/clusterWizard/types.d.ts +3 -1
  17. package/build/@types/common/components/clusterWizard/types.d.ts.map +1 -1
  18. package/build/@types/common/components/hosts/HostRowDetail.d.ts.map +1 -1
  19. package/build/@types/common/components/storage/DisksTable.d.ts.map +1 -1
  20. package/build/@types/common/config/constants.d.ts +5 -0
  21. package/build/@types/common/config/constants.d.ts.map +1 -1
  22. package/build/@types/common/config/docs_links.d.ts +1 -1
  23. package/build/@types/common/config/docs_links.d.ts.map +1 -1
  24. package/build/@types/common/selectors/clusterSelectors.d.ts +1 -0
  25. package/build/@types/common/selectors/clusterSelectors.d.ts.map +1 -1
  26. package/build/@types/common/types/clusters.d.ts +8 -0
  27. package/build/@types/common/types/clusters.d.ts.map +1 -1
  28. package/build/@types/common/types/ui-settings.d.ts +1 -0
  29. package/build/@types/common/types/ui-settings.d.ts.map +1 -1
  30. package/build/@types/ocm/components/SentryErrorMonitorContextProvider.d.ts.map +1 -1
  31. package/build/@types/ocm/components/clusterConfiguration/ControlPlaneNodesDropdown.d.ts.map +1 -1
  32. package/build/@types/ocm/components/clusterConfiguration/operators/AuthorinoCheckbox.d.ts +8 -0
  33. package/build/@types/ocm/components/clusterConfiguration/operators/AuthorinoCheckbox.d.ts.map +1 -0
  34. package/build/@types/ocm/components/clusterConfiguration/operators/CnvCheckbox.d.ts +4 -1
  35. package/build/@types/ocm/components/clusterConfiguration/operators/CnvCheckbox.d.ts.map +1 -1
  36. package/build/@types/ocm/components/clusterConfiguration/operators/LsoCheckbox.d.ts +8 -0
  37. package/build/@types/ocm/components/clusterConfiguration/operators/LsoCheckbox.d.ts.map +1 -0
  38. package/build/@types/ocm/components/clusterConfiguration/operators/LvmCheckbox.d.ts +4 -1
  39. package/build/@types/ocm/components/clusterConfiguration/operators/LvmCheckbox.d.ts.map +1 -1
  40. package/build/@types/ocm/components/clusterConfiguration/operators/MceCheckbox.d.ts +4 -1
  41. package/build/@types/ocm/components/clusterConfiguration/operators/MceCheckbox.d.ts.map +1 -1
  42. package/build/@types/ocm/components/clusterConfiguration/operators/MtvOperatorCheckbox.d.ts +4 -1
  43. package/build/@types/ocm/components/clusterConfiguration/operators/MtvOperatorCheckbox.d.ts.map +1 -1
  44. package/build/@types/ocm/components/clusterConfiguration/operators/NmstateCheckbox.d.ts +10 -0
  45. package/build/@types/ocm/components/clusterConfiguration/operators/NmstateCheckbox.d.ts.map +1 -0
  46. package/build/@types/ocm/components/clusterConfiguration/operators/NmstateRequirements.d.ts +7 -0
  47. package/build/@types/ocm/components/clusterConfiguration/operators/NmstateRequirements.d.ts.map +1 -0
  48. package/build/@types/ocm/components/clusterConfiguration/operators/NodeFeatureDiscoveryCheckbox.d.ts +8 -0
  49. package/build/@types/ocm/components/clusterConfiguration/operators/NodeFeatureDiscoveryCheckbox.d.ts.map +1 -0
  50. package/build/@types/ocm/components/clusterConfiguration/operators/NvidiaGpuCheckbox.d.ts +8 -0
  51. package/build/@types/ocm/components/clusterConfiguration/operators/NvidiaGpuCheckbox.d.ts.map +1 -0
  52. package/build/@types/ocm/components/clusterConfiguration/operators/OdfCheckbox.d.ts +5 -1
  53. package/build/@types/ocm/components/clusterConfiguration/operators/OdfCheckbox.d.ts.map +1 -1
  54. package/build/@types/ocm/components/clusterConfiguration/operators/OpenShiftAICheckbox.d.ts +5 -1
  55. package/build/@types/ocm/components/clusterConfiguration/operators/OpenShiftAICheckbox.d.ts.map +1 -1
  56. package/build/@types/ocm/components/clusterConfiguration/operators/OscCheckbox.d.ts +5 -1
  57. package/build/@types/ocm/components/clusterConfiguration/operators/OscCheckbox.d.ts.map +1 -1
  58. package/build/@types/ocm/components/clusterConfiguration/operators/PipelinesChekbox.d.ts +8 -0
  59. package/build/@types/ocm/components/clusterConfiguration/operators/PipelinesChekbox.d.ts.map +1 -0
  60. package/build/@types/ocm/components/clusterConfiguration/operators/ServerlessCheckbox.d.ts +8 -0
  61. package/build/@types/ocm/components/clusterConfiguration/operators/ServerlessCheckbox.d.ts.map +1 -0
  62. package/build/@types/ocm/components/clusterConfiguration/operators/ServicemeshCheckbox.d.ts +8 -0
  63. package/build/@types/ocm/components/clusterConfiguration/operators/ServicemeshCheckbox.d.ts.map +1 -0
  64. package/build/@types/ocm/components/clusterConfiguration/operators/SupportedOperators.d.ts +24 -0
  65. package/build/@types/ocm/components/clusterConfiguration/operators/SupportedOperators.d.ts.map +1 -0
  66. package/build/@types/ocm/components/clusterWizard/ClusterDetails.d.ts.map +1 -1
  67. package/build/@types/ocm/components/clusterWizard/Operators.d.ts.map +1 -1
  68. package/build/@types/ocm/components/clusterWizard/OperatorsStep.d.ts.map +1 -1
  69. package/build/@types/ocm/components/clusterWizard/wizardTransition.d.ts +1 -1
  70. package/build/@types/ocm/components/clusterWizard/wizardTransition.d.ts.map +1 -1
  71. package/build/@types/ocm/components/featureSupportLevels/featureStateUtils.d.ts.map +1 -1
  72. package/build/@types/ocm/config/constants.d.ts +2 -0
  73. package/build/@types/ocm/config/constants.d.ts.map +1 -1
  74. package/build/@types/ocm/sentry.d.ts +2 -2
  75. package/build/@types/ocm/sentry.d.ts.map +1 -1
  76. package/build/@types/ocm/services/BundleService.d.ts +6 -0
  77. package/build/@types/ocm/services/BundleService.d.ts.map +1 -0
  78. package/build/@types/ocm/services/ClustersService.d.ts +1 -0
  79. package/build/@types/ocm/services/ClustersService.d.ts.map +1 -1
  80. package/build/@types/ocm/services/OperatorsService.d.ts +1 -0
  81. package/build/@types/ocm/services/OperatorsService.d.ts.map +1 -1
  82. package/build/@types/ocm/store/slices/current-cluster/slice.d.ts +1 -0
  83. package/build/@types/ocm/store/slices/current-cluster/slice.d.ts.map +1 -1
  84. package/build/cjs/cim/components/ClusterDeployment/ClusterDetailsFormFields.js +4 -5
  85. package/build/cjs/cim/components/ClusterDeployment/ClusterDetailsFormFields.js.map +1 -1
  86. package/build/cjs/cim/components/InfraEnv/OpenshiftVersionDropdown.js +1 -1
  87. package/build/cjs/cim/components/InfraEnv/OpenshiftVersionDropdown.js.map +1 -1
  88. package/build/cjs/cim/components/common/constants.js +1 -1
  89. package/build/cjs/cim/components/common/constants.js.map +1 -1
  90. package/build/cjs/cim/components/helpers/toAssisted.js +2 -1
  91. package/build/cjs/cim/components/helpers/toAssisted.js.map +1 -1
  92. package/build/cjs/cim/components/modals/AddHostModal.js +4 -5
  93. package/build/cjs/cim/components/modals/AddHostModal.js.map +1 -1
  94. package/build/cjs/common/api/assisted-service/BundleAPI.js +16 -0
  95. package/build/cjs/common/api/assisted-service/BundleAPI.js.map +1 -0
  96. package/build/cjs/common/api/assisted-service/OperatorsAPI.js +13 -0
  97. package/build/cjs/common/api/assisted-service/OperatorsAPI.js.map +1 -0
  98. package/build/cjs/common/components/clusterConfiguration/ControlPlaneNodesDropdown.js +41 -0
  99. package/build/cjs/common/components/clusterConfiguration/ControlPlaneNodesDropdown.js.map +1 -0
  100. package/build/cjs/common/components/clusterConfiguration/DiscoveryImageConfigForm.js +4 -5
  101. package/build/cjs/common/components/clusterConfiguration/DiscoveryImageConfigForm.js.map +1 -1
  102. package/build/cjs/common/components/clusterConfiguration/DiscoveryImageTypeControlGroup.js +5 -5
  103. package/build/cjs/common/components/clusterConfiguration/DiscoveryImageTypeControlGroup.js.map +1 -1
  104. package/build/cjs/common/components/clusterWizard/clusterDetailsValidation.js +2 -2
  105. package/build/cjs/common/components/clusterWizard/clusterDetailsValidation.js.map +1 -1
  106. package/build/cjs/common/components/hosts/AITableMemo.js +16 -13
  107. package/build/cjs/common/components/hosts/AITableMemo.js.map +1 -1
  108. package/build/cjs/common/components/hosts/HostRowDetail.js +35 -1
  109. package/build/cjs/common/components/hosts/HostRowDetail.js.map +1 -1
  110. package/build/cjs/common/components/storage/DisksTable.js +16 -10
  111. package/build/cjs/common/components/storage/DisksTable.js.map +1 -1
  112. package/build/cjs/common/config/constants.js +11 -1
  113. package/build/cjs/common/config/constants.js.map +1 -1
  114. package/build/cjs/common/config/docs_links.js +1 -1
  115. package/build/cjs/common/config/docs_links.js.map +1 -1
  116. package/build/cjs/common/selectors/clusterSelectors.js +7 -1
  117. package/build/cjs/common/selectors/clusterSelectors.js.map +1 -1
  118. package/build/cjs/common/types/clusters.js.map +1 -1
  119. package/build/cjs/ocm/components/SentryErrorMonitorContextProvider.js.map +1 -1
  120. package/build/cjs/ocm/components/clusterConfiguration/ControlPlaneNodesDropdown.js +10 -9
  121. package/build/cjs/ocm/components/clusterConfiguration/ControlPlaneNodesDropdown.js.map +1 -1
  122. package/build/cjs/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.js +2 -2
  123. package/build/cjs/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.js.map +1 -1
  124. package/build/cjs/ocm/components/clusterConfiguration/operators/AuthorinoCheckbox.js +29 -0
  125. package/build/cjs/ocm/components/clusterConfiguration/operators/AuthorinoCheckbox.js.map +1 -0
  126. package/build/cjs/ocm/components/clusterConfiguration/operators/CnvCheckbox.js +3 -20
  127. package/build/cjs/ocm/components/clusterConfiguration/operators/CnvCheckbox.js.map +1 -1
  128. package/build/cjs/ocm/components/clusterConfiguration/operators/LsoCheckbox.js +29 -0
  129. package/build/cjs/ocm/components/clusterConfiguration/operators/LsoCheckbox.js.map +1 -0
  130. package/build/cjs/ocm/components/clusterConfiguration/operators/LvmCheckbox.js +5 -21
  131. package/build/cjs/ocm/components/clusterConfiguration/operators/LvmCheckbox.js.map +1 -1
  132. package/build/cjs/ocm/components/clusterConfiguration/operators/MceCheckbox.js +6 -7
  133. package/build/cjs/ocm/components/clusterConfiguration/operators/MceCheckbox.js.map +1 -1
  134. package/build/cjs/ocm/components/clusterConfiguration/operators/MtvOperatorCheckbox.js +8 -13
  135. package/build/cjs/ocm/components/clusterConfiguration/operators/MtvOperatorCheckbox.js.map +1 -1
  136. package/build/cjs/ocm/components/clusterConfiguration/operators/NmstateCheckbox.js +30 -0
  137. package/build/cjs/ocm/components/clusterConfiguration/operators/NmstateCheckbox.js.map +1 -0
  138. package/build/cjs/ocm/components/clusterConfiguration/operators/NmstateRequirements.js +48 -0
  139. package/build/cjs/ocm/components/clusterConfiguration/operators/NmstateRequirements.js.map +1 -0
  140. package/build/cjs/ocm/components/clusterConfiguration/operators/NodeFeatureDiscoveryCheckbox.js +29 -0
  141. package/build/cjs/ocm/components/clusterConfiguration/operators/NodeFeatureDiscoveryCheckbox.js.map +1 -0
  142. package/build/cjs/ocm/components/clusterConfiguration/operators/NvidiaGpuCheckbox.js +29 -0
  143. package/build/cjs/ocm/components/clusterConfiguration/operators/NvidiaGpuCheckbox.js.map +1 -0
  144. package/build/cjs/ocm/components/clusterConfiguration/operators/OdfCheckbox.js +7 -18
  145. package/build/cjs/ocm/components/clusterConfiguration/operators/OdfCheckbox.js.map +1 -1
  146. package/build/cjs/ocm/components/clusterConfiguration/operators/OpenShiftAICheckbox.js +4 -17
  147. package/build/cjs/ocm/components/clusterConfiguration/operators/OpenShiftAICheckbox.js.map +1 -1
  148. package/build/cjs/ocm/components/clusterConfiguration/operators/OscCheckbox.js +3 -12
  149. package/build/cjs/ocm/components/clusterConfiguration/operators/OscCheckbox.js.map +1 -1
  150. package/build/cjs/ocm/components/clusterConfiguration/operators/PipelinesChekbox.js +29 -0
  151. package/build/cjs/ocm/components/clusterConfiguration/operators/PipelinesChekbox.js.map +1 -0
  152. package/build/cjs/ocm/components/clusterConfiguration/operators/ServerlessCheckbox.js +29 -0
  153. package/build/cjs/ocm/components/clusterConfiguration/operators/ServerlessCheckbox.js.map +1 -0
  154. package/build/cjs/ocm/components/clusterConfiguration/operators/ServicemeshCheckbox.js +29 -0
  155. package/build/cjs/ocm/components/clusterConfiguration/operators/ServicemeshCheckbox.js.map +1 -0
  156. package/build/cjs/ocm/components/clusterConfiguration/operators/SupportedOperators.js +73 -0
  157. package/build/cjs/ocm/components/clusterConfiguration/operators/SupportedOperators.js.map +1 -0
  158. package/build/cjs/ocm/components/clusterConfiguration/staticIp/components/FormViewHosts/FormViewHostsFields.js +1 -1
  159. package/build/cjs/ocm/components/clusterConfiguration/staticIp/components/FormViewHosts/FormViewHostsFields.js.map +1 -1
  160. package/build/cjs/ocm/components/clusterWizard/ClusterDetails.js +4 -0
  161. package/build/cjs/ocm/components/clusterWizard/ClusterDetails.js.map +1 -1
  162. package/build/cjs/ocm/components/clusterWizard/Operators.js +9 -1
  163. package/build/cjs/ocm/components/clusterWizard/Operators.js.map +1 -1
  164. package/build/cjs/ocm/components/clusterWizard/OperatorsStep.js +209 -22
  165. package/build/cjs/ocm/components/clusterWizard/OperatorsStep.js.map +1 -1
  166. package/build/cjs/ocm/components/clusterWizard/wizardTransition.js +1 -1
  167. package/build/cjs/ocm/components/clusterWizard/wizardTransition.js.map +1 -1
  168. package/build/cjs/ocm/components/featureSupportLevels/featureStateUtils.js +40 -0
  169. package/build/cjs/ocm/components/featureSupportLevels/featureStateUtils.js.map +1 -1
  170. package/build/cjs/ocm/config/constants.js +155 -1
  171. package/build/cjs/ocm/config/constants.js.map +1 -1
  172. package/build/cjs/ocm/sentry.js +1 -1
  173. package/build/cjs/ocm/sentry.js.map +1 -1
  174. package/build/cjs/ocm/services/BundleService.js +20 -0
  175. package/build/cjs/ocm/services/BundleService.js.map +1 -0
  176. package/build/cjs/ocm/services/ClustersService.js +26 -0
  177. package/build/cjs/ocm/services/ClustersService.js.map +1 -1
  178. package/build/cjs/ocm/services/OperatorsService.js +16 -8
  179. package/build/cjs/ocm/services/OperatorsService.js.map +1 -1
  180. package/lib/cim/components/ClusterDeployment/ClusterDetailsFormFields.tsx +4 -6
  181. package/lib/cim/components/InfraEnv/OpenshiftVersionDropdown.tsx +1 -1
  182. package/lib/cim/components/common/constants.ts +1 -2
  183. package/lib/cim/components/helpers/toAssisted.ts +1 -0
  184. package/lib/cim/components/modals/AddHostModal.tsx +4 -5
  185. package/lib/cim/types/k8s/infra-env-k8s-resource.ts +1 -0
  186. package/lib/common/api/assisted-service/BundleAPI.ts +18 -0
  187. package/lib/common/api/assisted-service/OperatorsAPI.ts +13 -0
  188. package/lib/common/components/clusterConfiguration/ControlPlaneNodesDropdown.tsx +93 -0
  189. package/lib/common/components/clusterConfiguration/DiscoveryImageConfigForm.tsx +10 -12
  190. package/lib/common/components/clusterConfiguration/DiscoveryImageTypeControlGroup.tsx +9 -9
  191. package/lib/common/components/clusterWizard/clusterDetailsValidation.ts +1 -1
  192. package/lib/common/components/clusterWizard/types.ts +4 -2
  193. package/lib/common/components/hosts/AITableMemo.tsx +1 -1
  194. package/lib/common/components/hosts/HostRowDetail.tsx +71 -1
  195. package/lib/common/components/storage/DisksTable.tsx +25 -18
  196. package/lib/common/config/constants.ts +10 -0
  197. package/lib/common/config/docs_links.ts +1 -1
  198. package/lib/common/selectors/clusterSelectors.ts +8 -0
  199. package/lib/common/types/clusters.ts +8 -0
  200. package/lib/common/types/ui-settings.ts +1 -0
  201. package/lib/ocm/components/SentryErrorMonitorContextProvider.tsx +1 -2
  202. package/lib/ocm/components/clusterConfiguration/ControlPlaneNodesDropdown.tsx +13 -12
  203. package/lib/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.tsx +2 -2
  204. package/lib/ocm/components/clusterConfiguration/operators/AuthorinoCheckbox.tsx +63 -0
  205. package/lib/ocm/components/clusterConfiguration/operators/CnvCheckbox.tsx +7 -31
  206. package/lib/ocm/components/clusterConfiguration/operators/LsoCheckbox.tsx +63 -0
  207. package/lib/ocm/components/clusterConfiguration/operators/LvmCheckbox.tsx +8 -26
  208. package/lib/ocm/components/clusterConfiguration/operators/MceCheckbox.tsx +10 -3
  209. package/lib/ocm/components/clusterConfiguration/operators/MtvOperatorCheckbox.tsx +23 -12
  210. package/lib/ocm/components/clusterConfiguration/operators/NmstateCheckbox.tsx +76 -0
  211. package/lib/ocm/components/clusterConfiguration/operators/NmstateRequirements.tsx +53 -0
  212. package/lib/ocm/components/clusterConfiguration/operators/NodeFeatureDiscoveryCheckbox.tsx +66 -0
  213. package/lib/ocm/components/clusterConfiguration/operators/NvidiaGpuCheckbox.tsx +63 -0
  214. package/lib/ocm/components/clusterConfiguration/operators/OdfCheckbox.tsx +20 -25
  215. package/lib/ocm/components/clusterConfiguration/operators/OpenShiftAICheckbox.tsx +11 -24
  216. package/lib/ocm/components/clusterConfiguration/operators/OscCheckbox.tsx +10 -25
  217. package/lib/ocm/components/clusterConfiguration/operators/PipelinesChekbox.tsx +64 -0
  218. package/lib/ocm/components/clusterConfiguration/operators/ServerlessCheckbox.tsx +63 -0
  219. package/lib/ocm/components/clusterConfiguration/operators/ServicemeshCheckbox.tsx +63 -0
  220. package/lib/ocm/components/clusterConfiguration/operators/SupportedOperators.tsx +105 -0
  221. package/lib/ocm/components/clusterConfiguration/staticIp/components/FormViewHosts/FormViewHostsFields.tsx +1 -1
  222. package/lib/ocm/components/clusterWizard/ClusterDetails.tsx +4 -0
  223. package/lib/ocm/components/clusterWizard/Operators.tsx +21 -1
  224. package/lib/ocm/components/clusterWizard/OperatorsStep.tsx +374 -38
  225. package/lib/ocm/components/clusterWizard/wizardTransition.ts +1 -1
  226. package/lib/ocm/components/featureSupportLevels/featureStateUtils.ts +40 -0
  227. package/lib/ocm/config/constants.ts +156 -0
  228. package/lib/ocm/sentry.ts +2 -1
  229. package/lib/ocm/services/BundleService.ts +14 -0
  230. package/lib/ocm/services/ClustersService.ts +28 -0
  231. package/lib/ocm/services/OperatorsService.tsx +21 -10
  232. package/package.json +3 -3
@@ -7,6 +7,8 @@ const HostsService_1 = tslib_1.__importDefault(require("./HostsService"));
7
7
  const InfraEnvsService_1 = tslib_1.__importDefault(require("./InfraEnvsService"));
8
8
  const constants_1 = require("../../common/config/constants");
9
9
  const axiosClient_1 = require("../../common/api/axiosClient");
10
+ const config_1 = require("../config");
11
+ const js_yaml_1 = tslib_1.__importDefault(require("js-yaml"));
10
12
  const ClustersService = {
11
13
  findHost(hosts = [], hostId) {
12
14
  return hosts.find((host) => host.id === hostId);
@@ -126,6 +128,30 @@ const ClustersService = {
126
128
  updateCustomManifest(existingManifest, updatedManifest, clusterId) {
127
129
  return ClustersAPI_1.default.updateCustomManifest(clusterId, this.getUpdateManifestParams(existingManifest, updatedManifest));
128
130
  },
131
+ //TO-DO: Assisted-Migration. Provisional code. Needs to be removed when MTV integration be finished
132
+ createClusterManifestsForAssistedMigration(clusterId) {
133
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
134
+ const manifests = [];
135
+ const parsedYaml1 = js_yaml_1.default.dump(config_1.yamlContentAssistedMigration1);
136
+ manifests.push({
137
+ folder: 'openshift',
138
+ filename: '0gitops.yaml',
139
+ manifestYaml: parsedYaml1,
140
+ created: true,
141
+ });
142
+ const parsedYaml2 = js_yaml_1.default.dump(config_1.yamlContentAssistedMigration2);
143
+ manifests.push({
144
+ folder: 'openshift',
145
+ filename: '1rolebindings.yaml',
146
+ manifestYaml: parsedYaml2,
147
+ created: true,
148
+ });
149
+ const promises = manifests.map((manifest) => {
150
+ return ClustersAPI_1.default.createCustomManifest(clusterId, this.transformFormViewManifest(manifest));
151
+ });
152
+ return Promise.all(promises);
153
+ });
154
+ },
129
155
  };
130
156
  exports.default = ClustersService;
131
157
  //# sourceMappingURL=ClustersService.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ClustersService.js","sourceRoot":"","sources":["../../../../lib/ocm/services/ClustersService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ClustersService.js","sourceRoot":"","sources":["../../../../lib/ocm/services/ClustersService.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
3
4
  const common_1 = require("../../common");
4
5
  const utils_1 = require("../components/clusters/utils");
5
- const utils_2 = require("../../common/utils");
6
- const hasActiveOperators = (values) => {
7
- return (0, utils_2.getKeys)(values).some((operatorParam) => values[operatorParam]);
8
- };
6
+ const OperatorsAPI_1 = tslib_1.__importDefault(require("../../common/api/assisted-service/OperatorsAPI"));
9
7
  const OperatorsService = {
10
8
  getOLMOperators(values, cluster) {
11
9
  const enabledOlmOperatorsByName = (0, utils_1.getOlmOperatorCreateParamsByName)(cluster);
@@ -25,10 +23,14 @@ const OperatorsService = {
25
23
  setOperator(common_1.OPERATOR_NAME_MTV, values.useMigrationToolkitforVirtualization);
26
24
  setOperator(common_1.OPERATOR_NAME_OPENSHIFT_AI, values.useOpenShiftAI);
27
25
  setOperator(common_1.OPERATOR_NAME_OSC, values.useOsc);
28
- // TODO: remove following once the LSO option is exposed to the user
29
- if (!hasActiveOperators(values)) {
30
- setOperator(common_1.OPERATOR_NAME_LSO, false);
31
- }
26
+ setOperator(common_1.OPERATOR_NAME_NODE_FEATURE_DISCOVERY, values.useNodeFeatureDiscovery);
27
+ setOperator(common_1.OPERATOR_NAME_NMSTATE, values.useNmstate);
28
+ setOperator(common_1.OPERATOR_NAME_LSO, values.useLso);
29
+ setOperator(common_1.OPERATOR_NAME_SERVERLESS, values.useServerless);
30
+ setOperator(common_1.OPERATOR_NAME_AUTHORINO, values.useAuthorino);
31
+ setOperator(common_1.OPERATOR_NAME_PIPELINES, values.usePipelines);
32
+ setOperator(common_1.OPERATOR_NAME_SERVICEMESH, values.useServicemesh);
33
+ setOperator(common_1.OPERATOR_NAME_NVIDIA_GPU, values.useNvidiaGpu);
32
34
  return Object.values(enabledOlmOperatorsByName);
33
35
  },
34
36
  /**
@@ -52,6 +54,12 @@ const OperatorsService = {
52
54
  }
53
55
  return updates;
54
56
  },
57
+ getSupportedOperators() {
58
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
59
+ const { data: operators } = yield OperatorsAPI_1.default.list();
60
+ return operators;
61
+ });
62
+ },
55
63
  };
56
64
  exports.default = OperatorsService;
57
65
  //# sourceMappingURL=OperatorsService.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OperatorsService.js","sourceRoot":"","sources":["../../../../lib/ocm/services/OperatorsService.tsx"],"names":[],"mappings":";;AAAA,yCAWsB;AACtB,wDAAgF;AAChF,8CAA6C;AAM7C,MAAM,kBAAkB,GAAG,CAAC,MAAuB,EAAE,EAAE;IACrD,OAAO,IAAA,eAAO,EAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;AACxE,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG;IACvB,eAAe,CAAC,MAAuB,EAAE,OAAgB;QACvD,MAAM,yBAAyB,GAAG,IAAA,wCAAgC,EAAC,OAAO,CAAC,CAAC;QAE5E,8FAA8F;QAC9F,MAAM,WAAW,GAAG,CAAC,IAAkB,EAAE,OAAgB,EAAE,EAAE;YAC3D,IAAI,OAAO,EAAE;gBACX,yBAAyB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;aAC5C;iBAAM;gBACL,OAAO,yBAAyB,CAAC,IAAI,CAAC,CAAC;aACxC;QACH,CAAC,CAAC;QAEF,WAAW,CAAC,0BAAiB,EAAE,MAAM,CAAC,0BAA0B,CAAC,CAAC;QAClE,WAAW,CAAC,0BAAiB,EAAE,MAAM,CAAC,gCAAgC,CAAC,CAAC;QACxE,WAAW,CAAC,0BAAiB,EAAE,MAAM,CAAC,0BAA0B,CAAC,CAAC;QAClE,WAAW,CAAC,0BAAiB,EAAE,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAC7D,WAAW,CAAC,0BAAiB,EAAE,MAAM,CAAC,oCAAoC,CAAC,CAAC;QAC5E,WAAW,CAAC,mCAA0B,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;QAC/D,WAAW,CAAC,0BAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAE9C,oEAAoE;QACpE,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE;YAC/B,WAAW,CAAC,0BAAiB,EAAE,KAAK,CAAC,CAAC;SACvC;QAED,OAAO,MAAM,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;IAClD,CAAC;IAED;;;;OAIG;IACH,aAAa,CACX,WAAmC,EACnC,gBAA+C;QAE/C,MAAM,OAAO,GAA6B,EAAE,CAAC;QAE7C,8FAA8F;QAC9F,MAAM,eAAe,GAAG,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,0BAAiB,CAAC,MAAK,SAAS,CAAC;QAC/F,MAAM,YAAY,GAChB,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,0BAAiB,CAAC,MAAK,SAAS,CAAC;QAC9E,IAAI,eAAe,IAAI,YAAY,EAAE;YACnC,OAAO,CAAC,0BAA0B,GAAG,IAAI,CAAC;SAC3C;QAED,0FAA0F;QAC1F,MAAM,eAAe,GAAG,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,0BAAiB,CAAC,MAAK,SAAS,CAAC;QAC/F,MAAM,YAAY,GAChB,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,0BAAiB,CAAC,MAAK,SAAS,CAAC;QAC9E,IAAI,eAAe,IAAI,YAAY,EAAE;YACnC,OAAO,CAAC,0BAA0B,GAAG,IAAI,CAAC;SAC3C;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC;AACF,kBAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"OperatorsService.js","sourceRoot":"","sources":["../../../../lib/ocm/services/OperatorsService.tsx"],"names":[],"mappings":";;;AAAA,yCAkBsB;AACtB,wDAAgF;AAKhF,0GAA0E;AAE1E,MAAM,gBAAgB,GAAG;IACvB,eAAe,CAAC,MAAuB,EAAE,OAAgB;QACvD,MAAM,yBAAyB,GAAG,IAAA,wCAAgC,EAAC,OAAO,CAAC,CAAC;QAE5E,8FAA8F;QAC9F,MAAM,WAAW,GAAG,CAAC,IAAkB,EAAE,OAAgB,EAAE,EAAE;YAC3D,IAAI,OAAO,EAAE;gBACX,yBAAyB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;aAC5C;iBAAM;gBACL,OAAO,yBAAyB,CAAC,IAAI,CAAC,CAAC;aACxC;QACH,CAAC,CAAC;QAEF,WAAW,CAAC,0BAAiB,EAAE,MAAM,CAAC,0BAA0B,CAAC,CAAC;QAClE,WAAW,CAAC,0BAAiB,EAAE,MAAM,CAAC,gCAAgC,CAAC,CAAC;QACxE,WAAW,CAAC,0BAAiB,EAAE,MAAM,CAAC,0BAA0B,CAAC,CAAC;QAClE,WAAW,CAAC,0BAAiB,EAAE,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAC7D,WAAW,CAAC,0BAAiB,EAAE,MAAM,CAAC,oCAAoC,CAAC,CAAC;QAC5E,WAAW,CAAC,mCAA0B,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;QAC/D,WAAW,CAAC,0BAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAC9C,WAAW,CAAC,6CAAoC,EAAE,MAAM,CAAC,uBAAuB,CAAC,CAAC;QAClF,WAAW,CAAC,8BAAqB,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QACtD,WAAW,CAAC,0BAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAC9C,WAAW,CAAC,iCAAwB,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;QAC5D,WAAW,CAAC,gCAAuB,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;QAC1D,WAAW,CAAC,gCAAuB,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;QAC1D,WAAW,CAAC,kCAAyB,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;QAC9D,WAAW,CAAC,iCAAwB,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;QAE3D,OAAO,MAAM,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;IAClD,CAAC;IAED;;;;OAIG;IACH,aAAa,CACX,WAAmC,EACnC,gBAA+C;QAE/C,MAAM,OAAO,GAA6B,EAAE,CAAC;QAE7C,8FAA8F;QAC9F,MAAM,eAAe,GAAG,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,0BAAiB,CAAC,MAAK,SAAS,CAAC;QAC/F,MAAM,YAAY,GAChB,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,0BAAiB,CAAC,MAAK,SAAS,CAAC;QAC9E,IAAI,eAAe,IAAI,YAAY,EAAE;YACnC,OAAO,CAAC,0BAA0B,GAAG,IAAI,CAAC;SAC3C;QAED,0FAA0F;QAC1F,MAAM,eAAe,GAAG,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,0BAAiB,CAAC,MAAK,SAAS,CAAC;QAC/F,MAAM,YAAY,GAChB,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,0BAAiB,CAAC,MAAK,SAAS,CAAC;QAC9E,IAAI,eAAe,IAAI,YAAY,EAAE;YACnC,OAAO,CAAC,0BAA0B,GAAG,IAAI,CAAC;SAC3C;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEK,qBAAqB;;YACzB,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,MAAM,sBAAY,CAAC,IAAI,EAAE,CAAC;YACtD,OAAO,SAAS,CAAC;QACnB,CAAC;KAAA;CACF,CAAC;AACF,kBAAe,gBAAgB,CAAC"}
@@ -14,8 +14,8 @@ import {
14
14
  import { ClusterDetailsValues } from '../../../common/components/clusterWizard/types';
15
15
  import { useTranslation } from '../../../common/hooks/use-translation-wrapper';
16
16
  import CpuArchitectureDropdown from '../common/CpuArchitectureDropdown';
17
- import { SNOControlGroup } from '../../../common';
18
17
  import { getNetworkType } from '../helpers';
18
+ import ControlPlaneNodesDropdown from '../../../common/components/clusterConfiguration/ControlPlaneNodesDropdown';
19
19
  export type ClusterDetailsFormFieldsProps = {
20
20
  isEditFlow: boolean;
21
21
  forceOpenshiftVersion?: string;
@@ -52,7 +52,7 @@ export const ClusterDetailsFormFields: React.FC<ClusterDetailsFormFieldsProps> =
52
52
  cpuArchitectures,
53
53
  }) => {
54
54
  const { values, setFieldValue } = useFormikContext<ClusterDetailsValues>();
55
- const { name, baseDnsDomain, highAvailabilityMode } = values;
55
+ const { name, baseDnsDomain } = values;
56
56
 
57
57
  const nameInputRef = React.useRef<HTMLInputElement>();
58
58
  React.useEffect(() => {
@@ -110,11 +110,9 @@ export const ClusterDetailsFormFields: React.FC<ClusterDetailsFormFieldsProps> =
110
110
  }}
111
111
  />
112
112
  )}
113
+ <ControlPlaneNodesDropdown isNutanix={isNutanix} isDisabled={isEditFlow} />
113
114
  {!isNutanix && (
114
- <>
115
- <SNOControlGroup versions={versions} highAvailabilityMode={highAvailabilityMode} />
116
- <CpuArchitectureDropdown isDisabled={isEditFlow} cpuArchitectures={cpuArchitectures} />
117
- </>
115
+ <CpuArchitectureDropdown cpuArchitectures={cpuArchitectures} isDisabled={isEditFlow} />
118
116
  )}
119
117
  {extensionAfter?.['openshiftVersion'] && extensionAfter['openshiftVersion']}
120
118
  {!isEditFlow && <PullSecret />}
@@ -35,7 +35,7 @@ const OpenshiftVersionDropdown = ({ osImages }: { osImages: OsImage[] }) => {
35
35
  <Tooltip
36
36
  content={t(
37
37
  'ai:No OpenShift images available for selected CPU architecture {{cpuArchitecture}}.',
38
- architectureData[cpuArchitecture as SupportedCpuArchitecture].label,
38
+ { cpuArchitecture: architectureData[cpuArchitecture as SupportedCpuArchitecture].label },
39
39
  )}
40
40
  hidden={!!filteredImages.length}
41
41
  >
@@ -16,8 +16,7 @@ export const INFRAENV_GENERATED_AI_FLOW = 'agentBareMetal-generated-infraenv-ai-
16
16
  export const CPU_ARCHITECTURE_ANNOTATION_KEY = 'agentBareMetal-cpuArchitecture';
17
17
 
18
18
  export const getInfraEnvDocs = (docVersion: string) =>
19
- `https://access.redhat.com/documentation/en-us/red_hat_advanced_cluster_management_for_kubernetes/${docVersion}/html-single/clusters/index#enable-cim`;
20
-
19
+ `https://docs.redhat.com/en/documentation/red_hat_advanced_cluster_management_for_kubernetes/${docVersion}/html-single/clusters/index#enable-cim-prerequisites`;
21
20
  export const BMH_HOSTNAME_ANNOTATION = 'bmac.agent-install.openshift.io/hostname';
22
21
 
23
22
  export const OCP_VERSION_MAJOR_MINOR = 'hive.openshift.io/version-major-minor';
@@ -170,6 +170,7 @@ export const getAICluster = ({
170
170
  validationsInfo: JSON.stringify(agentClusterInstall?.status?.validationsInfo || {}),
171
171
  cpuArchitecture: getClusterDeploymentCpuArchitecture(clusterDeployment, infraEnv),
172
172
  networkType: agentClusterInstall?.spec?.networking.networkType,
173
+ controlPlaneCount: agentClusterInstall?.spec?.provisionRequirements.controlPlaneAgents || 3,
173
174
  };
174
175
  /*
175
176
  aiCluster.agentSelectorMasterLabels =
@@ -30,9 +30,8 @@ const AddHostModal: React.FC<AddHostModalProps> = ({
30
30
  const hasDHCP = infraEnv.metadata?.labels?.networkType !== 'static';
31
31
  const sshPublicKey = infraEnv.spec?.sshAuthorizedKey || agentClusterInstall?.spec?.sshPublicKey;
32
32
  const { httpProxy, httpsProxy, noProxy } = infraEnv.spec?.proxy || {};
33
-
34
- const isoDialog = agentClusterInstall ? 'config' : 'download';
35
- const [dialogType, setDialogType] = React.useState<AddHostModalStepType>(isoDialog);
33
+ const imageType = infraEnv.spec?.imageType || 'minimal-iso';
34
+ const [dialogType, setDialogType] = React.useState<AddHostModalStepType>('config');
36
35
  const { t } = useTranslation();
37
36
  const handleIsoConfigSubmit = async (
38
37
  values: DiscoveryImageFormValues,
@@ -66,8 +65,8 @@ const AddHostModal: React.FC<AddHostModalProps> = ({
66
65
  <DiscoveryImageConfigForm
67
66
  onCancel={onClose}
68
67
  handleSubmit={handleIsoConfigSubmit}
69
- hideDiscoveryImageType={true} // So far configured by env variable on backend
70
- imageType="full-iso" // So far the only option for CIM
68
+ hideDiscoveryImageType={isIPXE}
69
+ imageType={imageType}
71
70
  sshPublicKey={sshPublicKey}
72
71
  httpProxy={httpProxy}
73
72
  httpsProxy={httpsProxy}
@@ -25,6 +25,7 @@ export type InfraEnvK8sResource = K8sResourceCommon & {
25
25
  additionalNTPSources?: string[];
26
26
  cpuArchitecture?: 'x86_64' | 'arm64' | 's390x';
27
27
  osImageVersion?: string;
28
+ imageType?: 'full-iso' | 'minimal-iso';
28
29
  };
29
30
  status?: {
30
31
  agentLabelSelector?: Selector;
@@ -0,0 +1,18 @@
1
+ import { client } from '../axiosClient';
2
+ import { Bundle } from '@openshift-assisted/types/assisted-installer-service';
3
+
4
+ const BundleAPI = {
5
+ makeBaseURI() {
6
+ return `/v2/operators/bundles`;
7
+ },
8
+
9
+ list() {
10
+ return client.get<Bundle[]>(`${BundleAPI.makeBaseURI()}`);
11
+ },
12
+
13
+ listOperatorsForBundle(bundleName: string) {
14
+ return client.get<string[]>(`${BundleAPI.makeBaseURI()}?bundle_name=${bundleName}`);
15
+ },
16
+ };
17
+
18
+ export default BundleAPI;
@@ -0,0 +1,13 @@
1
+ import { client } from '../axiosClient';
2
+
3
+ const OperatorsAPI = {
4
+ makeBaseURI() {
5
+ return `/v2/supported-operators`;
6
+ },
7
+
8
+ list() {
9
+ return client.get<string[]>(`${OperatorsAPI.makeBaseURI()}`);
10
+ },
11
+ };
12
+
13
+ export default OperatorsAPI;
@@ -0,0 +1,93 @@
1
+ import * as React from 'react';
2
+ import { Dropdown, DropdownItem, DropdownToggle } from '@patternfly/react-core/deprecated';
3
+ import { FormGroup, Tooltip } from '@patternfly/react-core';
4
+ import { useTranslation } from '../../hooks/use-translation-wrapper';
5
+ import { getFieldId, StaticField } from '../..';
6
+ import { useField } from 'formik';
7
+ import toNumber from 'lodash-es/toNumber';
8
+
9
+ interface ControlPlaneNodesOption {
10
+ value: number;
11
+ label: string;
12
+ }
13
+
14
+ const isDropdownItemEnabled = (controlPlaneNodeCount: number, isNutanix?: boolean): boolean => {
15
+ return (controlPlaneNodeCount === 1 && !isNutanix) || controlPlaneNodeCount !== 1;
16
+ };
17
+
18
+ const ControlPlaneNodesDropdown = ({
19
+ isDisabled = false,
20
+ isNutanix,
21
+ }: {
22
+ isDisabled?: boolean;
23
+ isNutanix?: boolean;
24
+ }) => {
25
+ const { t } = useTranslation();
26
+ const [{ name, value: selectedValue }, , { setValue }] = useField<number | 3>(
27
+ 'controlPlaneCount',
28
+ );
29
+
30
+ const options: ControlPlaneNodesOption[] = [
31
+ { value: 1, label: t('ai:1 (Single Node OpenShift - not highly available cluster)') },
32
+ { value: 3, label: t('ai:3 (highly available cluster)') },
33
+ { value: 4, label: t('ai:4 (highly available cluster+)') },
34
+ { value: 5, label: t('ai:5 (highly available cluster++)') },
35
+ ];
36
+
37
+ const dropdownItems = options.map(({ value, label }) => {
38
+ const isItemEnabled = isDropdownItemEnabled(value, isNutanix);
39
+ const disabledReason = t('ai:This option is not available for Nutanix platform');
40
+ return (
41
+ <DropdownItem
42
+ key={value}
43
+ id={value.toString()}
44
+ isAriaDisabled={!isItemEnabled}
45
+ selected={selectedValue === value}
46
+ value={value}
47
+ >
48
+ <Tooltip hidden={isItemEnabled} content={disabledReason} position="top">
49
+ <div>{label}</div>
50
+ </Tooltip>
51
+ </DropdownItem>
52
+ );
53
+ });
54
+
55
+ const [controlPlanelOpen, setControlPlanelOpen] = React.useState(false);
56
+ const fieldId = getFieldId(name, 'input');
57
+
58
+ const onControlPlaneSelect = (e?: React.SyntheticEvent<HTMLDivElement>) => {
59
+ const val = e?.currentTarget.id as string;
60
+ setValue(toNumber(val));
61
+ setControlPlanelOpen(false);
62
+ };
63
+
64
+ return !isDisabled ? (
65
+ <FormGroup isInline fieldId={fieldId} label={t('ai:Number of control plane nodes')} isRequired>
66
+ <Dropdown
67
+ toggle={
68
+ <DropdownToggle
69
+ onToggle={() => setControlPlanelOpen(!controlPlanelOpen)}
70
+ className="pf-u-w-100"
71
+ >
72
+ {selectedValue ? selectedValue : '3'}
73
+ </DropdownToggle>
74
+ }
75
+ name="controlPlaneCount"
76
+ isOpen={controlPlanelOpen}
77
+ onSelect={onControlPlaneSelect}
78
+ dropdownItems={dropdownItems}
79
+ className="pf-u-w-100"
80
+ />
81
+ </FormGroup>
82
+ ) : (
83
+ <StaticField
84
+ name={'controlPlaneCount'}
85
+ label={t('ai:Number of control plane nodes')}
86
+ isRequired
87
+ >
88
+ {selectedValue}
89
+ </StaticField>
90
+ );
91
+ };
92
+
93
+ export default ControlPlaneNodesDropdown;
@@ -116,17 +116,6 @@ export const DiscoveryImageConfigForm: React.FC<DiscoveryImageConfigFormProps> =
116
116
  <>
117
117
  <ModalBoxBody>
118
118
  <Stack hasGutter>
119
- <StackItem>
120
- <Alert
121
- variant={AlertVariant.info}
122
- isInline
123
- title={
124
- isIPXE
125
- ? t('ai:To add hosts to the cluster, generate iPXE script.')
126
- : t('ai:To add hosts to the cluster, generate a Discovery ISO.')
127
- }
128
- />
129
- </StackItem>
130
119
  {hasDHCP === false && (
131
120
  <StackItem>
132
121
  <StaticIPInfo docVersion={docVersion} />
@@ -134,8 +123,17 @@ export const DiscoveryImageConfigForm: React.FC<DiscoveryImageConfigFormProps> =
134
123
  )}
135
124
  <StackItem>
136
125
  <Form>
137
- <AlertFormikError status={status as StatusErrorType} />
138
126
  {!hideDiscoveryImageType && <DiscoveryImageTypeControlGroup />}
127
+ <AlertFormikError status={status as StatusErrorType} />
128
+ <Alert
129
+ variant={AlertVariant.info}
130
+ isInline
131
+ title={
132
+ isIPXE
133
+ ? t('ai:To add hosts to the cluster, generate iPXE script.')
134
+ : t('ai:To add hosts to the cluster, generate a Discovery ISO.')
135
+ }
136
+ />
139
137
  <UploadSSH />
140
138
  <ProxyFields />
141
139
  </Form>
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { Stack, StackItem } from '@patternfly/react-core';
2
+ import { Flex, FlexItem } from '@patternfly/react-core';
3
3
  import { PopoverIcon, RadioField } from '../ui';
4
4
  import { useTranslation } from '../../hooks/use-translation-wrapper';
5
5
 
@@ -20,38 +20,38 @@ const DiscoveryImageTypeControlGroupLabel = ({
20
20
  const DiscoveryImageTypeControlGroup = () => {
21
21
  const { t } = useTranslation();
22
22
  return (
23
- <Stack hasGutter>
24
- <StackItem>
23
+ <Flex>
24
+ <FlexItem spacer={{ default: 'spacer3xl' }}>
25
25
  <RadioField
26
26
  name={GROUP_NAME}
27
27
  id={'minimal-iso'}
28
28
  value={'minimal-iso'}
29
29
  label={
30
30
  <DiscoveryImageTypeControlGroupLabel
31
- text={t('ai:Minimal image file: Provision with virtual media')}
31
+ text={t('ai:Minimal image file')}
32
32
  popoverContent={t(
33
33
  "ai:Recommended option. The generated discovery ISO will be smaller, but will need to download additional data during boot. This option is useful if ISO storage capacity is limited or if it's being served over a constrained network.",
34
34
  )}
35
35
  />
36
36
  }
37
37
  />
38
- </StackItem>
39
- <StackItem>
38
+ </FlexItem>
39
+ <FlexItem>
40
40
  <RadioField
41
41
  name={GROUP_NAME}
42
42
  id={'full-iso'}
43
43
  value={'full-iso'}
44
44
  label={
45
45
  <DiscoveryImageTypeControlGroupLabel
46
- text={t('ai:Full image file: Provision with physical media')}
46
+ text={t('ai:Full image file')}
47
47
  popoverContent={t(
48
48
  'ai:The generated discovery ISO will contain everything needed to boot.',
49
49
  )}
50
50
  />
51
51
  }
52
52
  />
53
- </StackItem>
54
- </Stack>
53
+ </FlexItem>
54
+ </Flex>
55
55
  );
56
56
  };
57
57
 
@@ -82,7 +82,7 @@ export const getClusterDetailsInitialValues = ({
82
82
  platform: cluster?.platform?.type || 'none',
83
83
  customOpenshiftSelect: null,
84
84
  userManagedNetworking: cluster?.userManagedNetworking || false,
85
- controlPlaneCount: cluster?.controlPlaneCount?.toString() || '3',
85
+ controlPlaneCount: cluster?.controlPlaneCount || 3,
86
86
  };
87
87
  };
88
88
 
@@ -34,7 +34,7 @@ export type ClusterDetailsValues = {
34
34
  platform: PlatformType;
35
35
  customOpenshiftSelect: OpenshiftVersionOptionType | null;
36
36
  userManagedNetworking: boolean;
37
- controlPlaneCount: string;
37
+ controlPlaneCount: number;
38
38
  };
39
39
 
40
40
  export type HostsValidationsProps<S extends string, V extends string[]> = {
@@ -69,7 +69,9 @@ export type ValidationActionLinkProps<S extends string> = {
69
69
  wizardStepNames: { [key in S]: string };
70
70
  };
71
71
 
72
- export type ClusterOperatorProps = Pick<Cluster, 'openshiftVersion'> & { clusterId: Cluster['id'] };
72
+ export type ClusterOperatorProps = Pick<Cluster, 'openshiftVersion'> & {
73
+ clusterId: Cluster['id'];
74
+ } & { monitoredOperators?: Cluster['monitoredOperators'] };
73
75
 
74
76
  export type ItemDropdown = {
75
77
  label: string;
@@ -94,7 +94,7 @@ export const AITableMemo = React.memo(
94
94
  </Td>
95
95
  ))}
96
96
 
97
- {row.actions && (
97
+ {!!row.actions?.length && (
98
98
  <Td isActionCell>
99
99
  <ActionsColumn
100
100
  items={row.actions}
@@ -2,7 +2,12 @@ import React from 'react';
2
2
  import { Grid, GridItem } from '@patternfly/react-core';
3
3
  import { TableVariant, Tbody, Thead, Table, Th, Tr, Td } from '@patternfly/react-table';
4
4
  import { DetailItem, DetailList, DetailListProps } from '../ui';
5
- import type { Disk, Host, Interface } from '@openshift-assisted/types/assisted-installer-service';
5
+ import type {
6
+ Disk,
7
+ Host,
8
+ Interface,
9
+ Gpu,
10
+ } from '@openshift-assisted/types/assisted-installer-service';
6
11
  import type { ValidationsInfo } from '../../types/hosts';
7
12
  import type { WithTestID } from '../../types/index';
8
13
  import { DASH } from '../constants';
@@ -107,6 +112,62 @@ const NicsTable: React.FC<NicsTableProps & WithTestID> = ({ interfaces, testId }
107
112
  );
108
113
  };
109
114
 
115
+ type GpusTableProps = {
116
+ gpus: Gpu[];
117
+ };
118
+
119
+ const gpusColumns = (t: TFunction) => [
120
+ { title: t('ai:Vendor') },
121
+ { title: t('ai:Vendor ID') },
122
+ { title: t('ai:Model') },
123
+ { title: t('ai:Device ID') },
124
+ { title: t('ai:Address') },
125
+ ];
126
+
127
+ const GpusTable: React.FC<GpusTableProps & WithTestID> = ({ gpus: gpus, testId }) => {
128
+ const { t } = useTranslation();
129
+ const rows = gpus
130
+ .sort((gpuA, gpuB) => gpuA.name?.localeCompare(gpuB.name || '') || 0)
131
+ .map((gpu) => ({
132
+ cells: [
133
+ { title: gpu.vendor, props: { 'data-testid': 'gpu-vendor' } },
134
+ { title: gpu.vendorId, props: { 'data-testid': 'gpu-vendor-id' } },
135
+ { title: gpu.name, props: { 'data-testid': 'gpu-name' } },
136
+ { title: gpu.deviceId, props: { 'data-testid': 'gpu-device-id' } },
137
+ { title: gpu.address, props: { 'data-testid': 'gpu-address' } },
138
+ ],
139
+ key: gpu.name,
140
+ })) as { cells: { title: string | React.ReactNode; props?: object }[]; key: string }[];
141
+
142
+ return (
143
+ <Table
144
+ data-testid={testId}
145
+ variant={TableVariant.compact}
146
+ aria-label={t("ai:Host's graphics processing units table")}
147
+ borders={false}
148
+ >
149
+ <Thead>
150
+ <Tr>
151
+ {gpusColumns(t).map((col, i) => (
152
+ <Th key={`col-${i}`}>{col.title}</Th>
153
+ ))}
154
+ </Tr>
155
+ </Thead>
156
+ <Tbody>
157
+ {rows.map((row, i) => (
158
+ <Tr key={`gpu-row:${row.key}`}>
159
+ {row.cells?.map((cell, j) => (
160
+ <Td key={`cell-${i}-${j}`} {...cell.props}>
161
+ {cell.title}
162
+ </Td>
163
+ ))}
164
+ </Tr>
165
+ ))}
166
+ </Tbody>
167
+ </Table>
168
+ );
169
+ };
170
+
110
171
  export const HostDetail = ({
111
172
  host,
112
173
  canEditDisks,
@@ -124,6 +185,7 @@ export const HostDetail = ({
124
185
  );
125
186
  const rowInfo = getHostRowHardwareInfo(inventory);
126
187
  const nics = inventory.interfaces || [];
188
+ const gpus = inventory.gpus || [];
127
189
 
128
190
  let bmcAddress = inventory.bmcAddress;
129
191
  if (inventory.bmcV6address) {
@@ -218,6 +280,14 @@ export const HostDetail = ({
218
280
  <GridItem>
219
281
  <NicsTable interfaces={nics} testId={'nics-table'} />
220
282
  </GridItem>
283
+ {gpus.length > 0 && (
284
+ <div>
285
+ <SectionTitle testId={'gpus-section'} title={t('ai:GPU', { count: gpus.length })} />
286
+ <GridItem>
287
+ <GpusTable gpus={gpus} testId={'gpus-table'} />
288
+ </GridItem>
289
+ </div>
290
+ )}
221
291
  </Grid>
222
292
  );
223
293
  };
@@ -151,11 +151,10 @@ const DisksTable = ({
151
151
  .sort((a, b) => {
152
152
  const aVal = (a.holders || a.name) as string;
153
153
  const bVal = (b.holders || b.name) as string;
154
-
155
154
  return aVal?.localeCompare(bVal) || 0;
156
155
  })
157
- .map((disk, index) => ({
158
- cells: [
156
+ .map((disk, index) => {
157
+ const rowCells = [
159
158
  {
160
159
  title: (
161
160
  <DiskName
@@ -180,27 +179,34 @@ const DisksTable = ({
180
179
  props: { 'data-testid': 'disk-role' },
181
180
  },
182
181
  { title: <DiskLimitations disk={disk} />, props: { 'data-testid': 'disk-limitations' } },
183
- isEditable && {
184
- title: (
185
- <FormatDiskCheckbox
186
- host={host}
187
- diskId={disk.id}
188
- installationDiskId={installationDiskId}
189
- index={index}
190
- updateDiskSkipFormatting={updateDiskSkipFormatting}
191
- />
192
- ),
193
- props: { 'data-testid': 'disk-formatted' },
194
- },
182
+ isEditable
183
+ ? {
184
+ title: (
185
+ <FormatDiskCheckbox
186
+ host={host}
187
+ diskId={disk.id}
188
+ installationDiskId={installationDiskId}
189
+ index={index}
190
+ updateDiskSkipFormatting={updateDiskSkipFormatting}
191
+ />
192
+ ),
193
+ props: { 'data-testid': 'disk-formatted' },
194
+ }
195
+ : null,
195
196
  { title: disk.driveType, props: { 'data-testid': 'drive-type' } },
196
197
  { title: fileSize(disk.sizeBytes || 0, 2, 'si'), props: { 'data-testid': 'disk-size' } },
197
198
  { title: disk.serial, props: { 'data-testid': 'disk-serial' } },
198
199
  { title: disk.model, props: { 'data-testid': 'disk-model' } },
199
200
  { title: disk.wwn, props: { 'data-testid': 'disk-wwn' } },
200
- ],
201
- key: disk.path,
202
- })) as { key: string; cells: { title: string | React.ReactNode; props: object }[] }[];
201
+ ].filter(Boolean); // Remove null values to keep alignment
203
202
 
203
+ return { key: disk.path, cells: rowCells } as {
204
+ key: string;
205
+ cells: { title: string | React.ReactNode; props: object }[];
206
+ };
207
+ });
208
+ // eslint-disable-next-line no-console
209
+ console.log(rows);
204
210
  return (
205
211
  <Table data-testid={testId} variant={TableVariant.compact} aria-label="Host's disks table">
206
212
  <Thead>
@@ -212,6 +218,7 @@ const DisksTable = ({
212
218
  </Thead>
213
219
  <Tbody>
214
220
  {rows.map((row, i) => (
221
+ // eslint-disable-next-line no-console
215
222
  <Tr key={`disk-row-${row.key}`} data-testid={`disk-row-${row.key}`}>
216
223
  {row.cells.map((cell, j) => (
217
224
  <Td key={`cell-${i}-${j}`} {...cell.props}>