@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.
- package/build/@types/cim/components/ClusterDeployment/ACMClusterDeploymentDetailsStep.d.ts +1 -0
- package/build/@types/cim/components/ClusterDeployment/ACMClusterDeploymentDetailsStep.d.ts.map +1 -1
- package/build/@types/cim/components/ClusterDeployment/ClusterDeploymentDetails.d.ts.map +1 -1
- package/build/@types/cim/components/ClusterDeployment/ClusterDeploymentDetailsForm.d.ts +1 -0
- package/build/@types/cim/components/ClusterDeployment/ClusterDeploymentDetailsForm.d.ts.map +1 -1
- package/build/@types/cim/components/ClusterDeployment/ClusterDeploymentDetailsStep.d.ts +2 -1
- package/build/@types/cim/components/ClusterDeployment/ClusterDeploymentDetailsStep.d.ts.map +1 -1
- package/build/@types/cim/components/ClusterDeployment/ClusterDeploymentHostSelectionStep.d.ts.map +1 -1
- package/build/@types/cim/components/ClusterDeployment/ClusterDeploymentHostsSelection.d.ts.map +1 -1
- package/build/@types/cim/components/ClusterDeployment/ClusterDeploymentNetworkingForm.d.ts +1 -0
- package/build/@types/cim/components/ClusterDeployment/ClusterDeploymentNetworkingForm.d.ts.map +1 -1
- package/build/@types/cim/components/ClusterDeployment/ClusterDeploymentNetworkingStep.d.ts.map +1 -1
- package/build/@types/cim/components/ClusterDeployment/ClusterDeploymentWizard.d.ts.map +1 -1
- package/build/@types/cim/components/ClusterDeployment/ClusterDetailsFormFields.d.ts +1 -0
- package/build/@types/cim/components/ClusterDeployment/ClusterDetailsFormFields.d.ts.map +1 -1
- package/build/@types/cim/components/ClusterDeployment/helpers.d.ts.map +1 -1
- package/build/@types/cim/components/ClusterDeployment/types.d.ts +4 -0
- package/build/@types/cim/components/ClusterDeployment/types.d.ts.map +1 -1
- package/build/@types/cim/components/Hypershift/utils/nodepool.d.ts.map +1 -1
- package/build/@types/cim/components/InfraEnv/InfraEnvFormPage.d.ts +2 -0
- package/build/@types/cim/components/InfraEnv/InfraEnvFormPage.d.ts.map +1 -1
- package/build/@types/cim/components/helpers/versions.d.ts +1 -1
- package/build/@types/cim/components/helpers/versions.d.ts.map +1 -1
- package/build/@types/cim/components/modals/AddHostModal.d.ts.map +1 -1
- package/build/@types/common/api/assisted-service/ClustersAPI.d.ts +1 -3
- package/build/@types/common/api/assisted-service/ClustersAPI.d.ts.map +1 -1
- package/build/@types/common/api/assisted-service/NewFeatureSupportLevelsAPI.d.ts +1 -1
- package/build/@types/common/api/assisted-service/NewFeatureSupportLevelsAPI.d.ts.map +1 -1
- package/build/@types/common/components/clusterConfiguration/DiscoveryImageConfigForm.d.ts +4 -1
- package/build/@types/common/components/clusterConfiguration/DiscoveryImageConfigForm.d.ts.map +1 -1
- package/build/@types/common/components/clusterConfiguration/DownloadIso.d.ts +2 -1
- package/build/@types/common/components/clusterConfiguration/DownloadIso.d.ts.map +1 -1
- package/build/@types/common/components/hosts/HostRowDetail.d.ts +2 -1
- package/build/@types/common/components/hosts/HostRowDetail.d.ts.map +1 -1
- package/build/@types/common/components/newFeatureSupportLevels/types.d.ts +3 -3
- package/build/@types/common/components/newFeatureSupportLevels/types.d.ts.map +1 -1
- package/build/@types/common/components/ui/formik/validationSchemas.d.ts.map +1 -1
- package/build/@types/common/config/constants.d.ts +1 -1
- package/build/@types/common/config/constants.d.ts.map +1 -1
- package/build/@types/common/services/DateAndTime.d.ts.map +1 -0
- package/build/@types/common/types/featureSupportLevel.d.ts +3 -3
- package/build/@types/common/types/featureSupportLevel.d.ts.map +1 -1
- package/build/@types/ocm/components/HostsClusterDetailTab/HostsClusterDetailTabContent.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/CpuArchitectureDropdown.d.ts +3 -3
- package/build/@types/ocm/components/clusterConfiguration/CpuArchitectureDropdown.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfiguration.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfigurationForm.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/platformIntegration/ExternalPlatformDropdown.d.ts +2 -2
- package/build/@types/ocm/components/clusterConfiguration/platformIntegration/ExternalPlatformDropdown.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/platformIntegration/constants.d.ts +0 -3
- package/build/@types/ocm/components/clusterConfiguration/platformIntegration/constants.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterDetail/AssistedInstallerDetailCard.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterDetail/AssistedInstallerExtraDetailCard.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterWizard/ClusterDetails.d.ts.map +1 -1
- package/build/@types/ocm/components/clusters/ClusterPage.d.ts.map +1 -1
- package/build/@types/ocm/components/featureSupportLevels/FeatureSupportLevelProvider.d.ts +4 -3
- package/build/@types/ocm/components/featureSupportLevels/FeatureSupportLevelProvider.d.ts.map +1 -1
- package/build/@types/ocm/components/featureSupportLevels/ReviewClusterFeatureSupportLevels.d.ts.map +1 -1
- package/build/@types/ocm/components/featureSupportLevels/featureStateUtils.d.ts +3 -3
- package/build/@types/ocm/components/featureSupportLevels/featureStateUtils.d.ts.map +1 -1
- package/build/@types/ocm/components/hosts/HostsDiscoveryTable.d.ts.map +1 -1
- package/build/@types/ocm/hooks/index.d.ts +0 -1
- package/build/@types/ocm/hooks/index.d.ts.map +1 -1
- package/build/@types/ocm/hooks/useSupportLevelsAPI.d.ts +3 -1
- package/build/@types/ocm/hooks/useSupportLevelsAPI.d.ts.map +1 -1
- package/build/cjs/cim/components/ClusterDeployment/ACMClusterDeploymentDetailsStep.js +3 -2
- package/build/cjs/cim/components/ClusterDeployment/ACMClusterDeploymentDetailsStep.js.map +1 -1
- package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentDetails.js +58 -55
- package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentDetails.js.map +1 -1
- package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentDetailsForm.js +3 -3
- package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentDetailsForm.js.map +1 -1
- package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentDetailsStep.js +5 -4
- package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentDetailsStep.js.map +1 -1
- package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentHostSelectionStep.js +2 -2
- package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentHostSelectionStep.js.map +1 -1
- package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentHostsSelection.js +14 -9
- package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentHostsSelection.js.map +1 -1
- package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentNetworkingForm.js +2 -2
- package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentNetworkingForm.js.map +1 -1
- package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentNetworkingStep.js +2 -2
- package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentNetworkingStep.js.map +1 -1
- package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentWizard.js +4 -4
- package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentWizard.js.map +1 -1
- package/build/cjs/cim/components/ClusterDeployment/ClusterDetailsFormFields.js +4 -3
- package/build/cjs/cim/components/ClusterDeployment/ClusterDetailsFormFields.js.map +1 -1
- package/build/cjs/cim/components/ClusterDeployment/helpers.js +4 -2
- package/build/cjs/cim/components/ClusterDeployment/helpers.js.map +1 -1
- package/build/cjs/cim/components/Hypershift/hooks/useSupportedOCPVersions.js +1 -1
- package/build/cjs/cim/components/Hypershift/hooks/useSupportedOCPVersions.js.map +1 -1
- package/build/cjs/cim/components/Hypershift/utils/nodepool.js +6 -5
- package/build/cjs/cim/components/Hypershift/utils/nodepool.js.map +1 -1
- package/build/cjs/cim/components/InfraEnv/InfraEnvFormPage.js +2 -2
- package/build/cjs/cim/components/InfraEnv/InfraEnvFormPage.js.map +1 -1
- package/build/cjs/cim/components/helpers/versions.js +9 -2
- package/build/cjs/cim/components/helpers/versions.js.map +1 -1
- package/build/cjs/cim/components/modals/AddHostModal.js +4 -4
- package/build/cjs/cim/components/modals/AddHostModal.js.map +1 -1
- package/build/cjs/common/api/assisted-service/ClustersAPI.js +0 -6
- package/build/cjs/common/api/assisted-service/ClustersAPI.js.map +1 -1
- package/build/cjs/common/api/assisted-service/NewFeatureSupportLevelsAPI.js +8 -5
- package/build/cjs/common/api/assisted-service/NewFeatureSupportLevelsAPI.js.map +1 -1
- package/build/cjs/common/components/clusterConfiguration/DiscoveryImageConfigForm.js +4 -4
- package/build/cjs/common/components/clusterConfiguration/DiscoveryImageConfigForm.js.map +1 -1
- package/build/cjs/common/components/clusterConfiguration/DownloadIso.js +2 -2
- package/build/cjs/common/components/clusterConfiguration/DownloadIso.js.map +1 -1
- package/build/cjs/common/components/hosts/HostRowDetail.js +2 -2
- package/build/cjs/common/components/hosts/HostRowDetail.js.map +1 -1
- package/build/cjs/common/components/ui/formik/validationSchemas.js +14 -6
- package/build/cjs/common/components/ui/formik/validationSchemas.js.map +1 -1
- package/build/cjs/common/config/constants.js +3 -2
- package/build/cjs/common/config/constants.js.map +1 -1
- package/build/cjs/common/services/DateAndTime.js.map +1 -0
- package/build/cjs/common/types/featureSupportLevel.js.map +1 -1
- package/build/cjs/ocm/components/HostsClusterDetailTab/HostsClusterDetailTabContent.js +2 -2
- package/build/cjs/ocm/components/HostsClusterDetailTab/HostsClusterDetailTabContent.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/CpuArchitectureDropdown.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfiguration.js +17 -21
- package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfiguration.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfigurationForm.js +1 -2
- package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfigurationForm.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/platformIntegration/ExternalPlatformDropdown.js +4 -4
- package/build/cjs/ocm/components/clusterConfiguration/platformIntegration/ExternalPlatformDropdown.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/platformIntegration/constants.js +2 -5
- package/build/cjs/ocm/components/clusterConfiguration/platformIntegration/constants.js.map +1 -1
- package/build/cjs/ocm/components/clusterDetail/AssistedInstallerDetailCard.js +2 -1
- package/build/cjs/ocm/components/clusterDetail/AssistedInstallerDetailCard.js.map +1 -1
- package/build/cjs/ocm/components/clusterDetail/AssistedInstallerExtraDetailCard.js +2 -1
- package/build/cjs/ocm/components/clusterDetail/AssistedInstallerExtraDetailCard.js.map +1 -1
- package/build/cjs/ocm/components/clusterDetail/ClusterDetailStatusMessages.js +1 -1
- package/build/cjs/ocm/components/clusterDetail/ClusterDetailStatusMessages.js.map +1 -1
- package/build/cjs/ocm/components/clusterWizard/ClusterDetails.js +6 -5
- package/build/cjs/ocm/components/clusterWizard/ClusterDetails.js.map +1 -1
- package/build/cjs/ocm/components/clusters/ClusterPage.js +2 -1
- package/build/cjs/ocm/components/clusters/ClusterPage.js.map +1 -1
- package/build/cjs/ocm/components/featureSupportLevels/FeatureSupportLevelProvider.js +4 -4
- package/build/cjs/ocm/components/featureSupportLevels/FeatureSupportLevelProvider.js.map +1 -1
- package/build/cjs/ocm/components/featureSupportLevels/ReviewClusterFeatureSupportLevels.js +1 -3
- package/build/cjs/ocm/components/featureSupportLevels/ReviewClusterFeatureSupportLevels.js.map +1 -1
- package/build/cjs/ocm/components/featureSupportLevels/featureStateUtils.js +8 -2
- package/build/cjs/ocm/components/featureSupportLevels/featureStateUtils.js.map +1 -1
- package/build/cjs/ocm/components/hosts/HostsDiscoveryTable.js +1 -1
- package/build/cjs/ocm/components/hosts/HostsDiscoveryTable.js.map +1 -1
- package/build/cjs/ocm/hooks/index.js +1 -3
- package/build/cjs/ocm/hooks/index.js.map +1 -1
- package/build/cjs/ocm/hooks/useSupportLevelsAPI.js +5 -4
- package/build/cjs/ocm/hooks/useSupportLevelsAPI.js.map +1 -1
- package/lib/cim/components/ClusterDeployment/ACMClusterDeploymentDetailsStep.tsx +8 -1
- package/lib/cim/components/ClusterDeployment/ClusterDeploymentDetails.tsx +112 -102
- package/lib/cim/components/ClusterDeployment/ClusterDeploymentDetailsForm.tsx +7 -1
- package/lib/cim/components/ClusterDeployment/ClusterDeploymentDetailsStep.tsx +6 -1
- package/lib/cim/components/ClusterDeployment/ClusterDeploymentHostSelectionStep.tsx +2 -0
- package/lib/cim/components/ClusterDeployment/ClusterDeploymentHostsSelection.tsx +14 -12
- package/lib/cim/components/ClusterDeployment/ClusterDeploymentNetworkingForm.tsx +3 -1
- package/lib/cim/components/ClusterDeployment/ClusterDeploymentNetworkingStep.tsx +3 -0
- package/lib/cim/components/ClusterDeployment/ClusterDeploymentWizard.tsx +4 -0
- package/lib/cim/components/ClusterDeployment/ClusterDetailsFormFields.tsx +8 -2
- package/lib/cim/components/ClusterDeployment/helpers.ts +13 -10
- package/lib/cim/components/ClusterDeployment/types.ts +4 -0
- package/lib/cim/components/Hypershift/hooks/useSupportedOCPVersions.ts +1 -1
- package/lib/cim/components/Hypershift/utils/nodepool.ts +3 -2
- package/lib/cim/components/InfraEnv/InfraEnvFormPage.tsx +11 -2
- package/lib/cim/components/helpers/versions.ts +8 -1
- package/lib/cim/components/modals/AddHostModal.tsx +5 -0
- package/lib/common/api/assisted-service/ClustersAPI.ts +0 -9
- package/lib/common/api/assisted-service/NewFeatureSupportLevelsAPI.ts +9 -5
- package/lib/common/components/clusterConfiguration/DiscoveryImageConfigForm.tsx +6 -4
- package/lib/common/components/clusterConfiguration/DownloadIso.tsx +3 -1
- package/lib/common/components/hosts/HostRowDetail.tsx +3 -1
- package/lib/common/components/newFeatureSupportLevels/types.ts +4 -2
- package/lib/common/components/ui/formik/validationSchemas.ts +16 -6
- package/lib/common/config/constants.ts +2 -2
- package/lib/common/types/featureSupportLevel.ts +6 -5
- package/lib/ocm/components/HostsClusterDetailTab/HostsClusterDetailTabContent.tsx +2 -1
- package/lib/ocm/components/clusterConfiguration/CpuArchitectureDropdown.tsx +5 -3
- package/lib/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.tsx +3 -2
- package/lib/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfiguration.tsx +46 -36
- package/lib/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfigurationForm.tsx +3 -4
- package/lib/ocm/components/clusterConfiguration/platformIntegration/ExternalPlatformDropdown.tsx +14 -19
- package/lib/ocm/components/clusterConfiguration/platformIntegration/constants.tsx +1 -5
- package/lib/ocm/components/clusterDetail/AssistedInstallerDetailCard.tsx +2 -1
- package/lib/ocm/components/clusterDetail/AssistedInstallerExtraDetailCard.tsx +2 -1
- package/lib/ocm/components/clusterDetail/ClusterDetailStatusMessages.tsx +1 -1
- package/lib/ocm/components/clusterWizard/ClusterDetails.tsx +11 -6
- package/lib/ocm/components/clusters/ClusterPage.tsx +2 -1
- package/lib/ocm/components/featureSupportLevels/FeatureSupportLevelProvider.tsx +14 -3
- package/lib/ocm/components/featureSupportLevels/ReviewClusterFeatureSupportLevels.tsx +1 -8
- package/lib/ocm/components/featureSupportLevels/featureStateUtils.ts +18 -3
- package/lib/ocm/components/hosts/HostsDiscoveryTable.tsx +1 -0
- package/lib/ocm/hooks/index.ts +0 -1
- package/lib/ocm/hooks/useSupportLevelsAPI.ts +12 -4
- package/package.json +3 -4
- package/build/@types/common/sevices/DateAndTime.d.ts.map +0 -1
- package/build/@types/ocm/hooks/useClusterSupportedPlatforms.d.ts +0 -11
- package/build/@types/ocm/hooks/useClusterSupportedPlatforms.d.ts.map +0 -1
- package/build/cjs/common/sevices/DateAndTime.js.map +0 -1
- package/build/cjs/ocm/hooks/useClusterSupportedPlatforms.js +0 -53
- package/build/cjs/ocm/hooks/useClusterSupportedPlatforms.js.map +0 -1
- package/lib/ocm/hooks/useClusterSupportedPlatforms.ts +0 -70
- /package/build/@types/common/{sevices → services}/DateAndTime.d.ts +0 -0
- /package/build/cjs/common/{sevices → services}/DateAndTime.js +0 -0
- /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
|
|
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 {
|
|
30
|
+
import { getOCPStaticIPDocLink } from '../../config/constants';
|
|
31
31
|
import { useTranslation } from '../../hooks/use-translation-wrapper';
|
|
32
32
|
|
|
33
|
-
export const StaticIPInfo:
|
|
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(
|
|
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
|
-
{
|
|
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?:
|
|
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 = (
|
|
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 (
|
|
235
|
-
|
|
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
|
|
371
|
-
|
|
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<
|
|
7
|
+
type Features = Required<ArrayElementType<FeatureSupportLevelId>>;
|
|
9
8
|
export type FeatureId =
|
|
10
9
|
| FeatureSupportLevelId
|
|
11
10
|
| Features['featureId']
|
|
12
|
-
| '
|
|
13
|
-
| '
|
|
14
|
-
| '
|
|
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 {
|
|
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?:
|
|
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 })}
|
package/lib/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfiguration.tsx
CHANGED
|
@@ -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 {
|
|
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
|
-
|
|
83
|
-
|
|
82
|
+
featureSupportLevelContext: NewFeatureSupportLevelData,
|
|
83
|
+
platformType?: PlatformType,
|
|
84
|
+
featureSupportLevelMap?: NewFeatureSupportLevelMap | null,
|
|
84
85
|
) => {
|
|
85
|
-
if (
|
|
86
|
-
return
|
|
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 = (
|
|
91
|
-
|
|
92
|
-
|
|
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
|
-
|
|
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(
|
|
113
|
-
|
|
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
|
|
129
|
-
const featureSupportLevelData =
|
|
130
|
-
|
|
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
|
-
|
|
231
|
+
featureSupportLevelContext,
|
|
232
|
+
cluster.platform?.type,
|
|
209
233
|
featureSupportLevelData,
|
|
210
|
-
t,
|
|
211
234
|
),
|
|
212
|
-
[isDualStack, cluster.platform?.type,
|
|
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={
|
|
281
|
+
supportLevel={featureSupportLevelContext.getFeatureSupportLevel('VIP_AUTO_ALLOC')}
|
|
272
282
|
/>
|
|
273
283
|
)}
|
|
274
284
|
|
package/lib/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfigurationForm.tsx
CHANGED
|
@@ -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 {
|
|
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
|
-
() =>
|
|
75
|
-
[
|
|
73
|
+
() => cluster.platform?.type === 'nutanix',
|
|
74
|
+
[cluster.platform],
|
|
76
75
|
);
|
|
77
76
|
|
|
78
77
|
React.useEffect(() => {
|
package/lib/ocm/components/clusterConfiguration/platformIntegration/ExternalPlatformDropdown.tsx
CHANGED
|
@@ -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
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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?:
|
|
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?:
|
|
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?:
|
|
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,
|
|
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
|
|
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: '',
|