@openshift-assisted/ui-lib 2.9.6-cim → 2.9.8-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 (203) hide show
  1. package/build/@types/cim/components/ClusterDeployment/ACMClusterDeploymentDetailsStep.d.ts +1 -0
  2. package/build/@types/cim/components/ClusterDeployment/ACMClusterDeploymentDetailsStep.d.ts.map +1 -1
  3. package/build/@types/cim/components/ClusterDeployment/ClusterDeploymentDetails.d.ts.map +1 -1
  4. package/build/@types/cim/components/ClusterDeployment/ClusterDeploymentDetailsForm.d.ts +1 -0
  5. package/build/@types/cim/components/ClusterDeployment/ClusterDeploymentDetailsForm.d.ts.map +1 -1
  6. package/build/@types/cim/components/ClusterDeployment/ClusterDeploymentDetailsStep.d.ts +2 -1
  7. package/build/@types/cim/components/ClusterDeployment/ClusterDeploymentDetailsStep.d.ts.map +1 -1
  8. package/build/@types/cim/components/ClusterDeployment/ClusterDeploymentHostSelectionStep.d.ts.map +1 -1
  9. package/build/@types/cim/components/ClusterDeployment/ClusterDeploymentHostsSelection.d.ts.map +1 -1
  10. package/build/@types/cim/components/ClusterDeployment/ClusterDeploymentNetworkingForm.d.ts +1 -0
  11. package/build/@types/cim/components/ClusterDeployment/ClusterDeploymentNetworkingForm.d.ts.map +1 -1
  12. package/build/@types/cim/components/ClusterDeployment/ClusterDeploymentNetworkingStep.d.ts.map +1 -1
  13. package/build/@types/cim/components/ClusterDeployment/ClusterDeploymentWizard.d.ts.map +1 -1
  14. package/build/@types/cim/components/ClusterDeployment/ClusterDetailsFormFields.d.ts +1 -0
  15. package/build/@types/cim/components/ClusterDeployment/ClusterDetailsFormFields.d.ts.map +1 -1
  16. package/build/@types/cim/components/ClusterDeployment/helpers.d.ts.map +1 -1
  17. package/build/@types/cim/components/ClusterDeployment/types.d.ts +4 -0
  18. package/build/@types/cim/components/ClusterDeployment/types.d.ts.map +1 -1
  19. package/build/@types/cim/components/Hypershift/utils/nodepool.d.ts.map +1 -1
  20. package/build/@types/cim/components/InfraEnv/InfraEnvFormPage.d.ts +2 -0
  21. package/build/@types/cim/components/InfraEnv/InfraEnvFormPage.d.ts.map +1 -1
  22. package/build/@types/cim/components/helpers/versions.d.ts +1 -1
  23. package/build/@types/cim/components/helpers/versions.d.ts.map +1 -1
  24. package/build/@types/cim/components/modals/AddHostModal.d.ts.map +1 -1
  25. package/build/@types/common/api/assisted-service/ClustersAPI.d.ts +1 -3
  26. package/build/@types/common/api/assisted-service/ClustersAPI.d.ts.map +1 -1
  27. package/build/@types/common/api/assisted-service/NewFeatureSupportLevelsAPI.d.ts +1 -1
  28. package/build/@types/common/api/assisted-service/NewFeatureSupportLevelsAPI.d.ts.map +1 -1
  29. package/build/@types/common/components/clusterConfiguration/DiscoveryImageConfigForm.d.ts +4 -1
  30. package/build/@types/common/components/clusterConfiguration/DiscoveryImageConfigForm.d.ts.map +1 -1
  31. package/build/@types/common/components/clusterConfiguration/DownloadIso.d.ts +2 -1
  32. package/build/@types/common/components/clusterConfiguration/DownloadIso.d.ts.map +1 -1
  33. package/build/@types/common/components/hosts/HostRowDetail.d.ts +2 -1
  34. package/build/@types/common/components/hosts/HostRowDetail.d.ts.map +1 -1
  35. package/build/@types/common/components/newFeatureSupportLevels/types.d.ts +3 -3
  36. package/build/@types/common/components/newFeatureSupportLevels/types.d.ts.map +1 -1
  37. package/build/@types/common/components/ui/formik/validationSchemas.d.ts.map +1 -1
  38. package/build/@types/common/config/constants.d.ts +1 -1
  39. package/build/@types/common/config/constants.d.ts.map +1 -1
  40. package/build/@types/common/services/DateAndTime.d.ts.map +1 -0
  41. package/build/@types/common/types/featureSupportLevel.d.ts +3 -3
  42. package/build/@types/common/types/featureSupportLevel.d.ts.map +1 -1
  43. package/build/@types/ocm/components/HostsClusterDetailTab/HostsClusterDetailTabContent.d.ts.map +1 -1
  44. package/build/@types/ocm/components/clusterConfiguration/CpuArchitectureDropdown.d.ts +3 -3
  45. package/build/@types/ocm/components/clusterConfiguration/CpuArchitectureDropdown.d.ts.map +1 -1
  46. package/build/@types/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.d.ts.map +1 -1
  47. package/build/@types/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfiguration.d.ts.map +1 -1
  48. package/build/@types/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfigurationForm.d.ts.map +1 -1
  49. package/build/@types/ocm/components/clusterConfiguration/platformIntegration/ExternalPlatformDropdown.d.ts +2 -2
  50. package/build/@types/ocm/components/clusterConfiguration/platformIntegration/ExternalPlatformDropdown.d.ts.map +1 -1
  51. package/build/@types/ocm/components/clusterConfiguration/platformIntegration/constants.d.ts +0 -3
  52. package/build/@types/ocm/components/clusterConfiguration/platformIntegration/constants.d.ts.map +1 -1
  53. package/build/@types/ocm/components/clusterDetail/AssistedInstallerDetailCard.d.ts.map +1 -1
  54. package/build/@types/ocm/components/clusterDetail/AssistedInstallerExtraDetailCard.d.ts.map +1 -1
  55. package/build/@types/ocm/components/clusterWizard/ClusterDetails.d.ts.map +1 -1
  56. package/build/@types/ocm/components/clusters/ClusterPage.d.ts.map +1 -1
  57. package/build/@types/ocm/components/featureSupportLevels/FeatureSupportLevelProvider.d.ts +4 -3
  58. package/build/@types/ocm/components/featureSupportLevels/FeatureSupportLevelProvider.d.ts.map +1 -1
  59. package/build/@types/ocm/components/featureSupportLevels/ReviewClusterFeatureSupportLevels.d.ts.map +1 -1
  60. package/build/@types/ocm/components/featureSupportLevels/featureStateUtils.d.ts +3 -3
  61. package/build/@types/ocm/components/featureSupportLevels/featureStateUtils.d.ts.map +1 -1
  62. package/build/@types/ocm/components/hosts/HostsDiscoveryTable.d.ts.map +1 -1
  63. package/build/@types/ocm/hooks/index.d.ts +0 -1
  64. package/build/@types/ocm/hooks/index.d.ts.map +1 -1
  65. package/build/@types/ocm/hooks/useSupportLevelsAPI.d.ts +3 -1
  66. package/build/@types/ocm/hooks/useSupportLevelsAPI.d.ts.map +1 -1
  67. package/build/cjs/cim/components/ClusterDeployment/ACMClusterDeploymentDetailsStep.js +3 -2
  68. package/build/cjs/cim/components/ClusterDeployment/ACMClusterDeploymentDetailsStep.js.map +1 -1
  69. package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentDetails.js +58 -55
  70. package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentDetails.js.map +1 -1
  71. package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentDetailsForm.js +3 -3
  72. package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentDetailsForm.js.map +1 -1
  73. package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentDetailsStep.js +5 -4
  74. package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentDetailsStep.js.map +1 -1
  75. package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentHostSelectionStep.js +2 -2
  76. package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentHostSelectionStep.js.map +1 -1
  77. package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentHostsSelection.js +14 -9
  78. package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentHostsSelection.js.map +1 -1
  79. package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentNetworkingForm.js +2 -2
  80. package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentNetworkingForm.js.map +1 -1
  81. package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentNetworkingStep.js +2 -2
  82. package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentNetworkingStep.js.map +1 -1
  83. package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentWizard.js +4 -4
  84. package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentWizard.js.map +1 -1
  85. package/build/cjs/cim/components/ClusterDeployment/ClusterDetailsFormFields.js +4 -3
  86. package/build/cjs/cim/components/ClusterDeployment/ClusterDetailsFormFields.js.map +1 -1
  87. package/build/cjs/cim/components/ClusterDeployment/helpers.js +4 -2
  88. package/build/cjs/cim/components/ClusterDeployment/helpers.js.map +1 -1
  89. package/build/cjs/cim/components/Hypershift/hooks/useSupportedOCPVersions.js +1 -1
  90. package/build/cjs/cim/components/Hypershift/hooks/useSupportedOCPVersions.js.map +1 -1
  91. package/build/cjs/cim/components/Hypershift/utils/nodepool.js +6 -5
  92. package/build/cjs/cim/components/Hypershift/utils/nodepool.js.map +1 -1
  93. package/build/cjs/cim/components/InfraEnv/InfraEnvFormPage.js +2 -2
  94. package/build/cjs/cim/components/InfraEnv/InfraEnvFormPage.js.map +1 -1
  95. package/build/cjs/cim/components/helpers/versions.js +9 -2
  96. package/build/cjs/cim/components/helpers/versions.js.map +1 -1
  97. package/build/cjs/cim/components/modals/AddHostModal.js +4 -4
  98. package/build/cjs/cim/components/modals/AddHostModal.js.map +1 -1
  99. package/build/cjs/common/api/assisted-service/ClustersAPI.js +0 -6
  100. package/build/cjs/common/api/assisted-service/ClustersAPI.js.map +1 -1
  101. package/build/cjs/common/api/assisted-service/NewFeatureSupportLevelsAPI.js +8 -5
  102. package/build/cjs/common/api/assisted-service/NewFeatureSupportLevelsAPI.js.map +1 -1
  103. package/build/cjs/common/components/clusterConfiguration/DiscoveryImageConfigForm.js +4 -4
  104. package/build/cjs/common/components/clusterConfiguration/DiscoveryImageConfigForm.js.map +1 -1
  105. package/build/cjs/common/components/clusterConfiguration/DownloadIso.js +2 -2
  106. package/build/cjs/common/components/clusterConfiguration/DownloadIso.js.map +1 -1
  107. package/build/cjs/common/components/hosts/HostRowDetail.js +2 -2
  108. package/build/cjs/common/components/hosts/HostRowDetail.js.map +1 -1
  109. package/build/cjs/common/components/ui/formik/validationSchemas.js +14 -6
  110. package/build/cjs/common/components/ui/formik/validationSchemas.js.map +1 -1
  111. package/build/cjs/common/config/constants.js +3 -2
  112. package/build/cjs/common/config/constants.js.map +1 -1
  113. package/build/cjs/common/services/DateAndTime.js.map +1 -0
  114. package/build/cjs/common/types/featureSupportLevel.js.map +1 -1
  115. package/build/cjs/ocm/components/HostsClusterDetailTab/HostsClusterDetailTabContent.js +2 -2
  116. package/build/cjs/ocm/components/HostsClusterDetailTab/HostsClusterDetailTabContent.js.map +1 -1
  117. package/build/cjs/ocm/components/clusterConfiguration/CpuArchitectureDropdown.js.map +1 -1
  118. package/build/cjs/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.js.map +1 -1
  119. package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfiguration.js +17 -21
  120. package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfiguration.js.map +1 -1
  121. package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfigurationForm.js +1 -2
  122. package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfigurationForm.js.map +1 -1
  123. package/build/cjs/ocm/components/clusterConfiguration/platformIntegration/ExternalPlatformDropdown.js +4 -4
  124. package/build/cjs/ocm/components/clusterConfiguration/platformIntegration/ExternalPlatformDropdown.js.map +1 -1
  125. package/build/cjs/ocm/components/clusterConfiguration/platformIntegration/constants.js +2 -5
  126. package/build/cjs/ocm/components/clusterConfiguration/platformIntegration/constants.js.map +1 -1
  127. package/build/cjs/ocm/components/clusterDetail/AssistedInstallerDetailCard.js +2 -1
  128. package/build/cjs/ocm/components/clusterDetail/AssistedInstallerDetailCard.js.map +1 -1
  129. package/build/cjs/ocm/components/clusterDetail/AssistedInstallerExtraDetailCard.js +2 -1
  130. package/build/cjs/ocm/components/clusterDetail/AssistedInstallerExtraDetailCard.js.map +1 -1
  131. package/build/cjs/ocm/components/clusterDetail/ClusterDetailStatusMessages.js +1 -1
  132. package/build/cjs/ocm/components/clusterDetail/ClusterDetailStatusMessages.js.map +1 -1
  133. package/build/cjs/ocm/components/clusterWizard/ClusterDetails.js +6 -5
  134. package/build/cjs/ocm/components/clusterWizard/ClusterDetails.js.map +1 -1
  135. package/build/cjs/ocm/components/clusters/ClusterPage.js +2 -1
  136. package/build/cjs/ocm/components/clusters/ClusterPage.js.map +1 -1
  137. package/build/cjs/ocm/components/featureSupportLevels/FeatureSupportLevelProvider.js +4 -4
  138. package/build/cjs/ocm/components/featureSupportLevels/FeatureSupportLevelProvider.js.map +1 -1
  139. package/build/cjs/ocm/components/featureSupportLevels/ReviewClusterFeatureSupportLevels.js +1 -3
  140. package/build/cjs/ocm/components/featureSupportLevels/ReviewClusterFeatureSupportLevels.js.map +1 -1
  141. package/build/cjs/ocm/components/featureSupportLevels/featureStateUtils.js +8 -2
  142. package/build/cjs/ocm/components/featureSupportLevels/featureStateUtils.js.map +1 -1
  143. package/build/cjs/ocm/components/hosts/HostsDiscoveryTable.js +1 -1
  144. package/build/cjs/ocm/components/hosts/HostsDiscoveryTable.js.map +1 -1
  145. package/build/cjs/ocm/hooks/index.js +1 -3
  146. package/build/cjs/ocm/hooks/index.js.map +1 -1
  147. package/build/cjs/ocm/hooks/useSupportLevelsAPI.js +5 -4
  148. package/build/cjs/ocm/hooks/useSupportLevelsAPI.js.map +1 -1
  149. package/lib/cim/components/ClusterDeployment/ACMClusterDeploymentDetailsStep.tsx +8 -1
  150. package/lib/cim/components/ClusterDeployment/ClusterDeploymentDetails.tsx +112 -102
  151. package/lib/cim/components/ClusterDeployment/ClusterDeploymentDetailsForm.tsx +7 -1
  152. package/lib/cim/components/ClusterDeployment/ClusterDeploymentDetailsStep.tsx +6 -1
  153. package/lib/cim/components/ClusterDeployment/ClusterDeploymentHostSelectionStep.tsx +2 -0
  154. package/lib/cim/components/ClusterDeployment/ClusterDeploymentHostsSelection.tsx +14 -12
  155. package/lib/cim/components/ClusterDeployment/ClusterDeploymentNetworkingForm.tsx +3 -1
  156. package/lib/cim/components/ClusterDeployment/ClusterDeploymentNetworkingStep.tsx +3 -0
  157. package/lib/cim/components/ClusterDeployment/ClusterDeploymentWizard.tsx +4 -0
  158. package/lib/cim/components/ClusterDeployment/ClusterDetailsFormFields.tsx +8 -2
  159. package/lib/cim/components/ClusterDeployment/helpers.ts +13 -10
  160. package/lib/cim/components/ClusterDeployment/types.ts +4 -0
  161. package/lib/cim/components/Hypershift/hooks/useSupportedOCPVersions.ts +1 -1
  162. package/lib/cim/components/Hypershift/utils/nodepool.ts +3 -2
  163. package/lib/cim/components/InfraEnv/InfraEnvFormPage.tsx +11 -2
  164. package/lib/cim/components/helpers/versions.ts +8 -1
  165. package/lib/cim/components/modals/AddHostModal.tsx +5 -0
  166. package/lib/common/api/assisted-service/ClustersAPI.ts +0 -9
  167. package/lib/common/api/assisted-service/NewFeatureSupportLevelsAPI.ts +9 -5
  168. package/lib/common/components/clusterConfiguration/DiscoveryImageConfigForm.tsx +6 -4
  169. package/lib/common/components/clusterConfiguration/DownloadIso.tsx +3 -1
  170. package/lib/common/components/hosts/HostRowDetail.tsx +3 -1
  171. package/lib/common/components/newFeatureSupportLevels/types.ts +4 -2
  172. package/lib/common/components/ui/formik/validationSchemas.ts +16 -6
  173. package/lib/common/config/constants.ts +2 -2
  174. package/lib/common/types/featureSupportLevel.ts +6 -5
  175. package/lib/ocm/components/HostsClusterDetailTab/HostsClusterDetailTabContent.tsx +2 -1
  176. package/lib/ocm/components/clusterConfiguration/CpuArchitectureDropdown.tsx +5 -3
  177. package/lib/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.tsx +3 -2
  178. package/lib/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfiguration.tsx +46 -36
  179. package/lib/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfigurationForm.tsx +3 -4
  180. package/lib/ocm/components/clusterConfiguration/platformIntegration/ExternalPlatformDropdown.tsx +14 -19
  181. package/lib/ocm/components/clusterConfiguration/platformIntegration/constants.tsx +1 -5
  182. package/lib/ocm/components/clusterDetail/AssistedInstallerDetailCard.tsx +2 -1
  183. package/lib/ocm/components/clusterDetail/AssistedInstallerExtraDetailCard.tsx +2 -1
  184. package/lib/ocm/components/clusterDetail/ClusterDetailStatusMessages.tsx +1 -1
  185. package/lib/ocm/components/clusterWizard/ClusterDetails.tsx +11 -6
  186. package/lib/ocm/components/clusters/ClusterPage.tsx +2 -1
  187. package/lib/ocm/components/featureSupportLevels/FeatureSupportLevelProvider.tsx +14 -3
  188. package/lib/ocm/components/featureSupportLevels/ReviewClusterFeatureSupportLevels.tsx +1 -8
  189. package/lib/ocm/components/featureSupportLevels/featureStateUtils.ts +18 -3
  190. package/lib/ocm/components/hosts/HostsDiscoveryTable.tsx +1 -0
  191. package/lib/ocm/hooks/index.ts +0 -1
  192. package/lib/ocm/hooks/useSupportLevelsAPI.ts +12 -4
  193. package/package.json +3 -4
  194. package/build/@types/common/sevices/DateAndTime.d.ts.map +0 -1
  195. package/build/@types/ocm/hooks/useClusterSupportedPlatforms.d.ts +0 -11
  196. package/build/@types/ocm/hooks/useClusterSupportedPlatforms.d.ts.map +0 -1
  197. package/build/cjs/common/sevices/DateAndTime.js.map +0 -1
  198. package/build/cjs/ocm/hooks/useClusterSupportedPlatforms.js +0 -53
  199. package/build/cjs/ocm/hooks/useClusterSupportedPlatforms.js.map +0 -1
  200. package/lib/ocm/hooks/useClusterSupportedPlatforms.ts +0 -70
  201. /package/build/@types/common/{sevices → services}/DateAndTime.d.ts +0 -0
  202. /package/build/cjs/common/{sevices → services}/DateAndTime.js +0 -0
  203. /package/lib/common/{sevices → services}/DateAndTime.tsx +0 -0
@@ -74,6 +74,7 @@ const AddHostModal: React.FC<AddHostModalProps> = ({
74
74
  hasDHCP={hasDHCP}
75
75
  isIPXE={isIPXE}
76
76
  allowEmpty
77
+ docVersion={docVersion}
77
78
  />
78
79
  )}
79
80
  {dialogType === 'download' && (
@@ -90,6 +91,7 @@ const AddHostModal: React.FC<AddHostModalProps> = ({
90
91
  infraEnv={infraEnv}
91
92
  onReset={agentClusterInstall ? () => setDialogType('config') : undefined}
92
93
  hasDHCP={hasDHCP}
94
+ docVersion={docVersion}
93
95
  />
94
96
  )}
95
97
  </>
@@ -104,11 +106,13 @@ const GeneratingIsoDownload = ({
104
106
  onClose,
105
107
  onReset,
106
108
  hasDHCP,
109
+ docVersion,
107
110
  }: {
108
111
  infraEnv: InfraEnvK8sResource;
109
112
  onClose: VoidFunction;
110
113
  onReset?: VoidFunction;
111
114
  hasDHCP: boolean;
115
+ docVersion: string;
112
116
  }) => {
113
117
  const { t } = useTranslation();
114
118
  return infraEnv.status?.isoDownloadURL ? (
@@ -117,6 +121,7 @@ const GeneratingIsoDownload = ({
117
121
  downloadUrl={infraEnv.status.isoDownloadURL}
118
122
  onReset={onReset}
119
123
  hasDHCP={hasDHCP}
124
+ docVersion={docVersion}
120
125
  />
121
126
  ) : (
122
127
  <EmptyState>
@@ -7,7 +7,6 @@ import {
7
7
  Credentials,
8
8
  Host,
9
9
  ImportClusterParams,
10
- PlatformType,
11
10
  PreflightHardwareRequirements,
12
11
  PresignedUrl,
13
12
  ListManifests,
@@ -62,10 +61,6 @@ const ClustersAPI = {
62
61
  return `${ClustersAPI.makeDownloadsBaseURI(clusterId)}/files-presigned`;
63
62
  },
64
63
 
65
- makeSupportedPlatformsBaseURI(clusterId: Cluster['id']) {
66
- return `${ClustersAPI.makeBaseURI(clusterId)}/supported-platforms`;
67
- },
68
-
69
64
  makeActionsBaseURI(clusterId: string) {
70
65
  return `${ClustersAPI.makeBaseURI(clusterId)}/actions`;
71
66
  },
@@ -126,10 +121,6 @@ const ClustersAPI = {
126
121
  });
127
122
  },
128
123
 
129
- getSupportedPlatforms(clusterId: Cluster['id']) {
130
- return client.get<PlatformType[]>(`${ClustersAPI.makeSupportedPlatformsBaseURI(clusterId)}`);
131
- },
132
-
133
124
  getPreflightRequirements(clusterId: Cluster['id']) {
134
125
  return client.get<PreflightHardwareRequirements>(
135
126
  `${ClustersAPI.makeBaseURI(clusterId)}/preflight-requirements`,
@@ -9,12 +9,16 @@ const NewFeatureSupportLevelsAPI = {
9
9
  return `/v2/support-levels`;
10
10
  },
11
11
 
12
- featuresSupportLevel(openshiftVersion: string, cpuArchitecture?: string) {
13
- let queryParams = '?';
14
- queryParams += openshiftVersion ? `openshift_version=${openshiftVersion}&` : '';
15
- queryParams += cpuArchitecture ? `cpu_architecture=${cpuArchitecture}` : '';
12
+ featuresSupportLevel(openshiftVersion: string, cpuArchitecture?: string, platformType?: string) {
16
13
  return clientWithoutCaseConverter.get<FeaturesSupportsLevel>(
17
- `${NewFeatureSupportLevelsAPI.makeBaseURI()}/features${queryParams}`,
14
+ `${NewFeatureSupportLevelsAPI.makeBaseURI()}/features`,
15
+ {
16
+ params: {
17
+ openshift_version: openshiftVersion,
18
+ cpu_architecture: cpuArchitecture,
19
+ platform_type: platformType,
20
+ },
21
+ },
18
22
  );
19
23
  },
20
24
 
@@ -27,10 +27,10 @@ import { ProxyFieldsType, StatusErrorType } from '../../types';
27
27
  import ProxyFields from './ProxyFields';
28
28
  import UploadSSH from './UploadSSH';
29
29
  import DiscoveryImageTypeControlGroup from './DiscoveryImageTypeControlGroup';
30
- import { OCP_STATIC_IP_DOC } from '../../config/constants';
30
+ import { getOCPStaticIPDocLink } from '../../config/constants';
31
31
  import { useTranslation } from '../../hooks/use-translation-wrapper';
32
32
 
33
- export const StaticIPInfo: React.FC = () => {
33
+ export const StaticIPInfo = ({ docVersion }: { docVersion?: string }) => {
34
34
  const { t } = useTranslation();
35
35
  return (
36
36
  <Alert
@@ -45,7 +45,7 @@ export const StaticIPInfo: React.FC = () => {
45
45
  icon={<ExternalLinkAltIcon />}
46
46
  iconPosition="right"
47
47
  isInline
48
- onClick={() => window.open(OCP_STATIC_IP_DOC, '_blank', 'noopener')}
48
+ onClick={() => window.open(getOCPStaticIPDocLink(docVersion), '_blank', 'noopener')}
49
49
  >
50
50
  {t('ai:View documentation')}
51
51
  </Button>
@@ -77,6 +77,7 @@ type DiscoveryImageConfigFormProps = Proxy & {
77
77
  imageType?: ImageType;
78
78
  isIPXE?: boolean;
79
79
  allowEmpty?: boolean;
80
+ docVersion: string;
80
81
  };
81
82
 
82
83
  export const DiscoveryImageConfigForm: React.FC<DiscoveryImageConfigFormProps> = ({
@@ -91,6 +92,7 @@ export const DiscoveryImageConfigForm: React.FC<DiscoveryImageConfigFormProps> =
91
92
  hasDHCP,
92
93
  isIPXE,
93
94
  allowEmpty,
95
+ docVersion,
94
96
  }) => {
95
97
  const initialValues: DiscoveryImageFormValues = {
96
98
  sshPublicKey: sshPublicKey || '',
@@ -127,7 +129,7 @@ export const DiscoveryImageConfigForm: React.FC<DiscoveryImageConfigFormProps> =
127
129
  </StackItem>
128
130
  {hasDHCP === false && (
129
131
  <StackItem>
130
- <StaticIPInfo />
132
+ <StaticIPInfo docVersion={docVersion} />
131
133
  </StackItem>
132
134
  )}
133
135
  <StackItem>
@@ -23,6 +23,7 @@ export type DownloadISOProps = {
23
23
  downloadUrl?: string;
24
24
  onClose: () => void;
25
25
  onReset?: () => void;
26
+ docVersion?: string;
26
27
  };
27
28
 
28
29
  const DownloadIso = ({
@@ -32,6 +33,7 @@ const DownloadIso = ({
32
33
  onReset,
33
34
  hasDHCP,
34
35
  isSNO = false,
36
+ docVersion,
35
37
  }: DownloadISOProps) => {
36
38
  const wgetCommand = `wget -O ${fileName} '${downloadUrl || ''}'`;
37
39
  const { t } = useTranslation();
@@ -53,7 +55,7 @@ const DownloadIso = ({
53
55
  </StackItem>
54
56
  {hasDHCP === false && (
55
57
  <StackItem>
56
- <StaticIPInfo />
58
+ <StaticIPInfo docVersion={docVersion} />
57
59
  </StackItem>
58
60
  )}
59
61
  <StackItem>
@@ -36,6 +36,7 @@ type HostDetailProps = {
36
36
  hostId: Host['id'],
37
37
  diskId: Disk['id'],
38
38
  ) => Promise<unknown>;
39
+ hideStorage?: boolean;
39
40
  };
40
41
 
41
42
  type SectionColumnProps = {
@@ -115,6 +116,7 @@ export const HostDetail = ({
115
116
  AdditionalNTPSourcesDialogToggleComponent,
116
117
  hideNTPStatus = false,
117
118
  updateDiskSkipFormatting,
119
+ hideStorage,
118
120
  }: HostDetailProps) => {
119
121
  const { t } = useTranslation();
120
122
  const { id, validationsInfo: hostValidationsInfo } = host;
@@ -205,7 +207,7 @@ export const HostDetail = ({
205
207
  value={ntpValidationStatus}
206
208
  />
207
209
  </SectionColumn>
208
- {onDiskRole && canEditDisks && (
210
+ {!hideStorage && (
209
211
  <StorageDetail
210
212
  host={host}
211
213
  onDiskRole={onDiskRole}
@@ -1,9 +1,10 @@
1
1
  import {
2
2
  ArchitectureSupportLevelId,
3
3
  FeatureSupportLevelId,
4
+ PlatformType,
4
5
  SupportLevel,
5
6
  } from '@openshift-assisted/types/assisted-installer-service';
6
- import { CpuArchitecture, FeatureId } from '../../types';
7
+ import { CpuArchitecture, FeatureId, SupportedCpuArchitecture } from '../../types';
7
8
 
8
9
  export type NewFeatureSupportLevelMap = Record<FeatureSupportLevelId, SupportLevel>;
9
10
  export type ArchitectureSupportLevelMap = Record<ArchitectureSupportLevelId, SupportLevel>;
@@ -23,7 +24,8 @@ export type NewFeatureSupportLevelData = {
23
24
  getFeatureDisabledReason(
24
25
  featureId: FeatureId,
25
26
  supportLevelData?: NewFeatureSupportLevelMap,
26
- cpuArchitecture?: string,
27
+ cpuArchitecture?: SupportedCpuArchitecture,
28
+ platformType?: PlatformType,
27
29
  ): string | undefined;
28
30
  isFeatureSupported(featureId: FeatureId, supportLevelData?: NewFeatureSupportLevelMap): boolean;
29
31
  activeFeatureConfiguration?: ActiveFeatureConfiguration;
@@ -226,15 +226,25 @@ export const vipRangeValidationSchema = (
226
226
  },
227
227
  );
228
228
 
229
- const vipUniqueValidationSchema = ({ ingressVips, apiVips }: NetworkConfigurationValues) =>
229
+ const vipUniqueValidationSchema = (
230
+ { ingressVips, apiVips, apiVip, ingressVip }: NetworkConfigurationValues,
231
+ useIPArray: boolean,
232
+ ) =>
230
233
  Yup.string().test(
231
234
  'vip-uniqueness-validation',
232
235
  'The Ingress and API IP addresses cannot be the same.',
233
236
  (value) => {
234
- if (!value || ingressVips?.length === 0 || apiVips?.length === 0) {
235
- return true;
237
+ if (useIPArray) {
238
+ if (!value || ingressVips?.length === 0 || apiVips?.length === 0) {
239
+ return true;
240
+ }
241
+ return selectApiVip({ apiVips }) !== selectIngressVip({ ingressVips });
242
+ } else {
243
+ if (!value) {
244
+ return true;
245
+ }
246
+ return apiVip !== ingressVip;
236
247
  }
237
- return selectApiVip({ apiVips }) !== selectIngressVip({ ingressVips });
238
248
  },
239
249
  );
240
250
 
@@ -276,7 +286,7 @@ export const vipValidationSchema = (
276
286
  !vipDhcpAllocation && managedNetworkingType !== 'userManaged',
277
287
  then: requiredOnceSet(initialValue, 'Required. Please provide an IP address')
278
288
  .concat(vipRangeValidationSchema(hostSubnets, values, true))
279
- .concat(vipUniqueValidationSchema(values))
289
+ .concat(vipUniqueValidationSchema(values, false))
280
290
  .when('hostSubnet', {
281
291
  is: (hostSubnet) => hostSubnet !== NO_SUBNET_SET,
282
292
  then: Yup.string().required('Required. Please provide an IP address'),
@@ -295,7 +305,7 @@ export const vipNoSuffixValidationSchema = (
295
305
  .concat(ipNoSuffixValidationSchema)
296
306
  .concat(vipRangeValidationSchema(hostSubnets, values, false))
297
307
  .concat(vipBroadcastValidationSchema(values))
298
- .concat(vipUniqueValidationSchema(values))
308
+ .concat(vipUniqueValidationSchema(values, true))
299
309
  .when('hostSubnet', {
300
310
  is: (hostSubnet) => hostSubnet !== NO_SUBNET_SET,
301
311
  then: Yup.string().required('Required. Please provide an IP address'),
@@ -367,8 +367,8 @@ export const operatorLabels = (
367
367
  };
368
368
  };
369
369
 
370
- export const OCP_STATIC_IP_DOC =
371
- 'https://docs.openshift.com/container-platform/latest/scalability_and_performance/ztp-deploying-disconnected.html#ztp-configuring-a-static-ip_ztp-deploying-disconnected';
370
+ export const getOCPStaticIPDocLink = (docVersion = '2.8') =>
371
+ `https://access.redhat.com/documentation/en-us/red_hat_advanced_cluster_management_for_kubernetes/${docVersion}/html-single/clusters/index#on-prem-creating-your-cluster-with-the-cli-nmstateconfig`;
372
372
 
373
373
  export const AI_UI_TAG = 'ui_ocm';
374
374
 
@@ -1,17 +1,18 @@
1
1
  import {
2
- FeatureSupportLevel,
3
2
  FeatureSupportLevelId,
4
3
  SupportLevel,
5
4
  } from '@openshift-assisted/types/assisted-installer-service';
6
5
  import { ArrayElementType } from './typescriptExtensions';
7
6
 
8
- type Features = Required<ArrayElementType<FeatureSupportLevel['features']>>;
7
+ type Features = Required<ArrayElementType<FeatureSupportLevelId>>;
9
8
  export type FeatureId =
10
9
  | FeatureSupportLevelId
11
10
  | Features['featureId']
12
- | 'ODF'
13
- | 'CNV'
14
- | 'NETWORK_TYPE_SELECTION';
11
+ | 'NETWORK_TYPE_SELECTION'
12
+ | 'ARM64_ARCHITECTURE'
13
+ | 'ARM64_ARCHITECTURE_WITH_CLUSTER_MANAGED_NETWORKING'
14
+ | 'DUAL_STACK_NETWORKING'
15
+ | 'MULTIARCH_RELEASE_IMAGE';
15
16
 
16
17
  export type FeatureIdToSupportLevel = {
17
18
  [id in FeatureId]?: SupportLevel;
@@ -190,8 +190,9 @@ export const HostsClusterDetailTabContent = ({
190
190
  <NewFeatureSupportLevelProvider
191
191
  loadingUi={<LoadingState />}
192
192
  cluster={day2Cluster}
193
- cpuArchitecture={infraEnv?.cpuArchitecture}
193
+ cpuArchitecture={infraEnv?.cpuArchitecture as CpuArchitecture}
194
194
  openshiftVersion={day2Cluster.openshiftVersion}
195
+ platformType={day2Cluster.platform?.type}
195
196
  >
196
197
  <AddHosts />
197
198
  </NewFeatureSupportLevelProvider>
@@ -4,16 +4,18 @@ import { CaretDownIcon } from '@patternfly/react-icons';
4
4
  import { useField } from 'formik';
5
5
  import {
6
6
  CpuArchitecture,
7
- FeatureId,
8
7
  getDefaultCpuArchitecture,
9
8
  getFieldId,
10
9
  SupportedCpuArchitecture,
11
10
  } from '../../../common';
12
- import { Cluster } from '@openshift-assisted/types/assisted-installer-service';
11
+ import {
12
+ ArchitectureSupportLevelId,
13
+ Cluster,
14
+ } from '@openshift-assisted/types/assisted-installer-service';
13
15
 
14
16
  export type CpuArchitectureItem = {
15
17
  description: string;
16
- featureSupportLevelId?: FeatureId;
18
+ featureSupportLevelId?: ArchitectureSupportLevelId;
17
19
  label: string;
18
20
  };
19
21
 
@@ -14,6 +14,7 @@ import {
14
14
  StaticTextField,
15
15
  useFeature,
16
16
  getSupportedCpuArchitectures,
17
+ SupportedCpuArchitecture,
17
18
  } from '../../../common';
18
19
  import DiskEncryptionControlGroup from '../../../common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionControlGroup';
19
20
  import { useTranslation } from '../../../common/hooks/use-translation-wrapper';
@@ -74,7 +75,7 @@ export const OcmClusterDetailsFormFields = ({
74
75
  const featureSupportLevelData = useSupportLevelsAPI(
75
76
  'features',
76
77
  values.openshiftVersion,
77
- values.cpuArchitecture,
78
+ values.cpuArchitecture as SupportedCpuArchitecture,
78
79
  );
79
80
  const cpuArchitectures = React.useMemo(
80
81
  () => getSupportedCpuArchitectures(isMultiArchSupported, cpuArchitecturesByVersionImage),
@@ -171,7 +172,7 @@ export const OcmClusterDetailsFormFields = ({
171
172
  ) : (
172
173
  <ExternalPlatformDropdown
173
174
  onChange={handleExternalPartnerIntegrationsChange}
174
- cpuArchitecture={values.cpuArchitecture}
175
+ cpuArchitecture={values.cpuArchitecture as SupportedCpuArchitecture}
175
176
  showOciOption={isOracleCloudPlatformIntegrationEnabled}
176
177
  featureSupportLevelData={featureSupportLevelData}
177
178
  isSNO={isSNO({ highAvailabilityMode })}
@@ -1,13 +1,13 @@
1
1
  import React from 'react';
2
2
  import { useFormikContext } from 'formik';
3
- import { TFunction } from 'i18next';
4
3
  import { useSelector } from 'react-redux';
5
- import { Alert, AlertVariant, Grid, Tooltip } from '@patternfly/react-core';
4
+ import { Grid, Tooltip } from '@patternfly/react-core';
6
5
  import { VirtualIPControlGroup, VirtualIPControlGroupProps } from './VirtualIPControlGroup';
7
6
  import {
8
7
  canBeDualStack,
9
8
  canSelectNetworkTypeSDN,
10
9
  clusterNetworksEqual,
10
+ CpuArchitecture,
11
11
  DUAL_STACK,
12
12
  HostSubnets,
13
13
  isSNO,
@@ -23,20 +23,20 @@ import {
23
23
  import { StackTypeControlGroup } from './StackTypeControl';
24
24
  import { AvailableSubnetsControl } from './AvailableSubnetsControl';
25
25
  import AdvancedNetworkFields from './AdvancedNetworkFields';
26
- import { useTranslation } from '../../../../common/hooks/use-translation-wrapper';
27
26
  import { selectCurrentClusterPermissionsState } from '../../../store/slices/current-cluster/selectors';
28
27
  import { OcmCheckbox } from '../../ui/OcmFormFields';
29
28
  import { NetworkTypeControlGroup } from '../../../../common/components/clusterWizard/networkingSteps/NetworkTypeControlGroup';
30
- import { useClusterSupportedPlatforms } from '../../../hooks';
31
29
  import {
32
30
  NewFeatureSupportLevelData,
31
+ NewFeatureSupportLevelMap,
33
32
  useNewFeatureSupportLevel,
34
33
  } from '../../../../common/components/newFeatureSupportLevels';
35
- import { SupportedPlatformIntegrationType } from '../../../hooks/useClusterSupportedPlatforms';
36
34
  import {
37
35
  Cluster,
38
36
  ClusterDefaultConfig,
37
+ PlatformType,
39
38
  } from '@openshift-assisted/types/assisted-installer-service';
39
+ import useSupportLevelsAPI from '../../../hooks/useSupportLevelsAPI';
40
40
 
41
41
  export type NetworkConfigurationProps = VirtualIPControlGroupProps & {
42
42
  hostSubnets: HostSubnets;
@@ -79,26 +79,38 @@ const getManagedNetworkingDisabledReason = (
79
79
  };
80
80
 
81
81
  const getUserManagedDisabledReason = (
82
- supportedPlatformIntegration: SupportedPlatformIntegrationType,
83
- t: TFunction,
82
+ featureSupportLevelContext: NewFeatureSupportLevelData,
83
+ platformType?: PlatformType,
84
+ featureSupportLevelMap?: NewFeatureSupportLevelMap | null,
84
85
  ) => {
85
- if (['nutanix', 'vsphere'].includes(supportedPlatformIntegration)) {
86
- return t('ai:User-Managed Networking is not supported when using Nutanix or vSphere');
86
+ if (!featureSupportLevelContext.isFeatureSupported('USER_MANAGED_NETWORKING')) {
87
+ return featureSupportLevelContext.getFeatureDisabledReason(
88
+ 'USER_MANAGED_NETWORKING',
89
+ featureSupportLevelMap ?? undefined,
90
+ undefined,
91
+ platformType,
92
+ );
87
93
  }
88
94
  };
89
95
 
90
- const getClusterManagedDisabledReason = (featureSupportLevelData: NewFeatureSupportLevelData) => {
91
- if (!featureSupportLevelData.isFeatureSupported('CLUSTER_MANAGED_NETWORKING')) {
92
- return featureSupportLevelData.getFeatureDisabledReason('CLUSTER_MANAGED_NETWORKING');
96
+ const getClusterManagedDisabledReason = (
97
+ featureSupportLevelContext: NewFeatureSupportLevelData,
98
+ featureSupportLevelMap?: NewFeatureSupportLevelMap | null,
99
+ ) => {
100
+ if (!featureSupportLevelContext.isFeatureSupported('CLUSTER_MANAGED_NETWORKING')) {
101
+ return featureSupportLevelContext.getFeatureDisabledReason(
102
+ 'CLUSTER_MANAGED_NETWORKING',
103
+ featureSupportLevelMap ?? undefined,
104
+ );
93
105
  }
94
106
  };
95
107
 
96
108
  const getManagedNetworkingState = (
97
109
  isDualStack: boolean,
98
110
  isOracleCloudInfrastructure: boolean,
99
- supportedPlatformIntegration: SupportedPlatformIntegrationType,
100
111
  featureSupportLevelData: NewFeatureSupportLevelData,
101
- t: TFunction,
112
+ platformType?: PlatformType,
113
+ featureSupportLevelMap?: NewFeatureSupportLevelMap | null,
102
114
  ): {
103
115
  isDisabled: boolean;
104
116
  clusterManagedDisabledReason?: string;
@@ -109,8 +121,15 @@ const getManagedNetworkingState = (
109
121
  isOracleCloudInfrastructure,
110
122
  featureSupportLevelData,
111
123
  );
112
- const cmnReason = getClusterManagedDisabledReason(featureSupportLevelData);
113
- const umnReason = getUserManagedDisabledReason(supportedPlatformIntegration, t);
124
+ const cmnReason = getClusterManagedDisabledReason(
125
+ featureSupportLevelData,
126
+ featureSupportLevelMap,
127
+ );
128
+ const umnReason = getUserManagedDisabledReason(
129
+ featureSupportLevelData,
130
+ platformType,
131
+ featureSupportLevelMap,
132
+ );
114
133
 
115
134
  return {
116
135
  isDisabled: !!(cmnReason || umnReason || networkingReason),
@@ -125,9 +144,13 @@ const NetworkConfiguration = ({
125
144
  isVipDhcpAllocationDisabled,
126
145
  defaultNetworkSettings,
127
146
  }: NetworkConfigurationProps) => {
128
- const { t } = useTranslation();
129
- const featureSupportLevelData = useNewFeatureSupportLevel();
130
- const { supportedPlatformIntegration } = useClusterSupportedPlatforms(cluster.id);
147
+ const featureSupportLevelContext = useNewFeatureSupportLevel();
148
+ const featureSupportLevelData = useSupportLevelsAPI(
149
+ 'features',
150
+ cluster.openshiftVersion,
151
+ cluster.cpuArchitecture as CpuArchitecture,
152
+ cluster.platform?.type,
153
+ );
131
154
  const { isViewerMode } = useSelector(selectCurrentClusterPermissionsState);
132
155
  const { setFieldValue, values, validateField } = useFormikContext<NetworkConfigurationValues>();
133
156
 
@@ -205,11 +228,11 @@ const NetworkConfiguration = ({
205
228
  getManagedNetworkingState(
206
229
  isDualStack,
207
230
  cluster.platform?.type === 'oci',
208
- supportedPlatformIntegration,
231
+ featureSupportLevelContext,
232
+ cluster.platform?.type,
209
233
  featureSupportLevelData,
210
- t,
211
234
  ),
212
- [isDualStack, cluster.platform?.type, supportedPlatformIntegration, featureSupportLevelData, t],
235
+ [isDualStack, cluster.platform?.type, featureSupportLevelContext, featureSupportLevelData],
213
236
  );
214
237
 
215
238
  return (
@@ -227,19 +250,6 @@ const NetworkConfiguration = ({
227
250
  />
228
251
  )}
229
252
 
230
- {!isUserManagedNetworking &&
231
- !featureSupportLevelData.isFeatureSupported('CLUSTER_MANAGED_NETWORKING_WITH_VMS') && (
232
- <Alert
233
- title="Your cluster will be subject to support limitations"
234
- variant={AlertVariant.info}
235
- isInline={true}
236
- data-testid="networking-vms-alert"
237
- >
238
- Some or all of your discovered hosts are virtual machines, so selecting the
239
- cluster-managed networking option will limit your installed cluster's support.
240
- </Alert>
241
- )}
242
-
243
253
  {(isSNOCluster || !isUserManagedNetworking) && (
244
254
  <StackTypeControlGroup
245
255
  clusterId={cluster.id}
@@ -268,7 +278,7 @@ const NetworkConfiguration = ({
268
278
  <VirtualIPControlGroup
269
279
  cluster={cluster}
270
280
  isVipDhcpAllocationDisabled={isVipDhcpAllocationDisabled}
271
- supportLevel={featureSupportLevelData.getFeatureSupportLevel('VIP_AUTO_ALLOC')}
281
+ supportLevel={featureSupportLevelContext.getFeatureSupportLevel('VIP_AUTO_ALLOC')}
272
282
  />
273
283
  )}
274
284
 
@@ -39,7 +39,7 @@ import {
39
39
  updateClusterBase,
40
40
  } from '../../../store/slices/current-cluster/slice';
41
41
  import { isUnknownServerError, getApiErrorMessage, handleApiError } from '../../../api';
42
- import { useClusterSupportedPlatforms, usePullSecret } from '../../../hooks';
42
+ import { usePullSecret } from '../../../hooks';
43
43
  import {
44
44
  Cluster,
45
45
  ClusterDefaultConfig,
@@ -66,13 +66,12 @@ const NetworkConfigurationForm: React.FC<{
66
66
  useFormikContext<NetworkConfigurationValues>();
67
67
  const isAutoSaveRunning = useFormikAutoSave();
68
68
  const errorFields = getFormikErrorFields(errors, touched);
69
- const { supportedPlatformIntegration } = useClusterSupportedPlatforms(cluster.id);
70
69
 
71
70
  // DHCP allocation is currently not supported for Nutanix hosts
72
71
  // https://issues.redhat.com/browse/MGMT-12382
73
72
  const isHostsPlatformTypeNutanix = React.useMemo(
74
- () => supportedPlatformIntegration === 'nutanix',
75
- [supportedPlatformIntegration],
73
+ () => cluster.platform?.type === 'nutanix',
74
+ [cluster.platform],
76
75
  );
77
76
 
78
77
  React.useEffect(() => {
@@ -12,20 +12,21 @@ import {
12
12
  } from '@patternfly/react-core';
13
13
  import { CaretDownIcon } from '@patternfly/react-icons';
14
14
  import { useField } from 'formik';
15
- import { CpuArchitecture, DeveloperPreview, FeatureId, getFieldId } from '../../../../common';
16
-
17
15
  import {
18
- ExternalPlaformIds,
19
- ExternalPlatformLabels,
20
- ExternalPlatformLinks,
21
- ExternalPlatformTooltips,
22
- } from './constants';
16
+ CpuArchitecture,
17
+ DeveloperPreview,
18
+ FeatureId,
19
+ SupportedCpuArchitecture,
20
+ getFieldId,
21
+ } from '../../../../common';
22
+ import { ExternalPlaformIds, ExternalPlatformLabels, ExternalPlatformLinks } from './constants';
23
23
  import { PlatformType } from '@openshift-assisted/types/assisted-installer-service';
24
24
  import {
25
25
  NewFeatureSupportLevelData,
26
26
  NewFeatureSupportLevelMap,
27
27
  useNewFeatureSupportLevel,
28
28
  } from '../../../../common/components/newFeatureSupportLevels';
29
+ import { architectureData } from '../CpuArchitectureDropdown';
29
30
 
30
31
  const INPUT_NAME = 'platform';
31
32
  const fieldId = getFieldId(INPUT_NAME, 'input');
@@ -33,7 +34,7 @@ const fieldId = getFieldId(INPUT_NAME, 'input');
33
34
  type ExternalPlatformDropdownProps = {
34
35
  showOciOption: boolean;
35
36
  onChange: (selectedPlatform: PlatformType) => void;
36
- cpuArchitecture?: string;
37
+ cpuArchitecture?: SupportedCpuArchitecture;
37
38
  featureSupportLevelData: NewFeatureSupportLevelMap | null;
38
39
  isSNO: boolean;
39
40
  };
@@ -41,7 +42,6 @@ type ExternalPlatformDropdownProps = {
41
42
  export type ExternalPlatformInfo = {
42
43
  label: string;
43
44
  href?: string;
44
- tooltip?: string;
45
45
  disabledReason?: string;
46
46
  };
47
47
 
@@ -50,7 +50,7 @@ const getDisabledReasonForExternalPlatform = (
50
50
  newFeatureSupportLevelContext: NewFeatureSupportLevelData,
51
51
  platform: PlatformType,
52
52
  featureSupportLevelData?: NewFeatureSupportLevelMap | null,
53
- cpuArchitecture?: string,
53
+ cpuArchitecture?: SupportedCpuArchitecture,
54
54
  ): string | undefined => {
55
55
  if (!isSNO) {
56
56
  return newFeatureSupportLevelContext.getFeatureDisabledReason(
@@ -73,7 +73,7 @@ const getExternalPlatformTypes = (
73
73
  isSNO: boolean,
74
74
  newFeatureSupportLevelContext: NewFeatureSupportLevelData,
75
75
  featureSupportLevelData?: NewFeatureSupportLevelMap | null,
76
- cpuArchitecture?: string,
76
+ cpuArchitecture?: SupportedCpuArchitecture,
77
77
  ): Partial<{ [key in PlatformType]: ExternalPlatformInfo }> => {
78
78
  const platforms = ['none', 'nutanix', showOciOption && 'oci', 'vsphere'] as PlatformType[];
79
79
 
@@ -83,7 +83,6 @@ const getExternalPlatformTypes = (
83
83
  [platform]: {
84
84
  label: ExternalPlatformLabels[platform],
85
85
  href: ExternalPlatformLinks[platform],
86
- tooltip: ExternalPlatformTooltips[platform],
87
86
  disabledReason: getDisabledReasonForExternalPlatform(
88
87
  isSNO,
89
88
  newFeatureSupportLevelContext,
@@ -119,7 +118,7 @@ export const ExternalPlatformDropdown = ({
119
118
  >({});
120
119
 
121
120
  const tooltipDropdownDisabled = `Platform integration is not supported when ${
122
- cpuArchitecture || ''
121
+ cpuArchitecture ? architectureData[cpuArchitecture].label : ''
123
122
  } is selected`;
124
123
 
125
124
  const handleClick = (event: MouseEvent<HTMLButtonElement>, href: string) => {
@@ -162,18 +161,14 @@ export const ExternalPlatformDropdown = ({
162
161
  }, [dropdownIsDisabled, externalPlatformTypes]);
163
162
 
164
163
  const enabledItems = Object.keys(externalPlatformTypes).map((platform) => {
165
- const { label, href, tooltip, disabledReason } = externalPlatformTypes[
164
+ const { label, href, disabledReason } = externalPlatformTypes[
166
165
  platform as PlatformType
167
166
  ] as ExternalPlatformInfo;
168
167
  return (
169
168
  <DropdownItem key={platform} id={platform} isAriaDisabled={disabledReason !== undefined}>
170
169
  <Split>
171
170
  <SplitItem>
172
- <Tooltip
173
- hidden={disabledReason === undefined && tooltip === undefined}
174
- content={disabledReason !== undefined ? disabledReason : tooltip}
175
- position="top"
176
- >
171
+ <Tooltip hidden={!disabledReason} content={disabledReason} position="top">
177
172
  <div>
178
173
  {label}
179
174
  {platform === 'oci' && <DeveloperPreview testId={'oci-support-level`'} />}
@@ -5,7 +5,7 @@ export const ExternalPlatformLabels: { [key in PlatformType]: string } = {
5
5
  baremetal: 'No platform integration',
6
6
  none: 'No platform integration',
7
7
  nutanix: 'Nutanix',
8
- oci: 'Oracle (Requires a custom manifest)',
8
+ oci: 'Oracle Cloud Infrastructure (Requires a custom manifest)',
9
9
  vsphere: 'vSphere',
10
10
  };
11
11
 
@@ -14,10 +14,6 @@ export const ExternalPlatformLinks: Partial<{ [key in PlatformType]: string }> =
14
14
  vsphere: VSPHERE_CONFIG_LINK,
15
15
  };
16
16
 
17
- export const ExternalPlatformTooltips: Partial<{ [key in PlatformType]: string }> = {
18
- oci: "To integrate with an external partner (for example, Oracle Cloud), you'll need to provide a custom manifest.",
19
- };
20
-
21
17
  export const ExternalPlaformIds: { [key in PlatformType]: string } = {
22
18
  baremetal: '',
23
19
  none: '',