@openshift-assisted/ui-lib 2.9.8-cim → 2.9.10-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/ClusterDeploymentDetailsStep.d.ts +6 -1
- package/build/@types/cim/components/ClusterDeployment/ClusterDeploymentDetailsStep.d.ts.map +1 -1
- package/build/@types/cim/components/ClusterDeployment/ClusterDetailsFormFields.d.ts.map +1 -1
- package/build/@types/cim/components/ClusterDeployment/ScaleUpForm.d.ts +1 -0
- package/build/@types/cim/components/ClusterDeployment/ScaleUpForm.d.ts.map +1 -1
- package/build/@types/cim/components/InfraEnv/utils.d.ts.map +1 -1
- package/build/@types/cim/components/helpers/versions.d.ts +1 -0
- package/build/@types/cim/components/helpers/versions.d.ts.map +1 -1
- package/build/@types/cim/components/modals/ScaleUpModal.d.ts +1 -0
- package/build/@types/cim/components/modals/ScaleUpModal.d.ts.map +1 -1
- package/build/@types/cim/types/k8s/agent-cluster-install.d.ts +1 -1
- package/build/@types/cim/types/k8s/agent-cluster-install.d.ts.map +1 -1
- package/build/@types/common/api/accounts-management-service/current-account-api.d.ts +6 -0
- package/build/@types/common/api/accounts-management-service/current-account-api.d.ts.map +1 -0
- package/build/@types/common/api/accounts-management-service/organizations-api.d.ts +6 -0
- package/build/@types/common/api/accounts-management-service/organizations-api.d.ts.map +1 -0
- package/build/@types/common/api/assisted-service/UISettingsAPI.d.ts +8 -0
- package/build/@types/common/api/assisted-service/UISettingsAPI.d.ts.map +1 -0
- package/build/@types/common/api/assisted-service/index.d.ts +1 -0
- package/build/@types/common/api/assisted-service/index.d.ts.map +1 -1
- package/build/@types/common/api/authorization-service/all-apis.d.ts +7 -0
- package/build/@types/common/api/authorization-service/all-apis.d.ts.map +1 -0
- package/build/@types/common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionControlGroup.d.ts.map +1 -1
- package/build/@types/common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionMode.d.ts +3 -1
- package/build/@types/common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionMode.d.ts.map +1 -1
- package/build/@types/common/components/clusterConfiguration/DiskEncryptionFields/TangServers.d.ts +3 -1
- package/build/@types/common/components/clusterConfiguration/DiskEncryptionFields/TangServers.d.ts.map +1 -1
- package/build/@types/common/components/clusterConfiguration/OpenShiftVersionSelect.d.ts +2 -0
- package/build/@types/common/components/clusterConfiguration/OpenShiftVersionSelect.d.ts.map +1 -1
- package/build/@types/common/components/clusterDetail/PostInstallAlert.d.ts +6 -0
- package/build/@types/common/components/clusterDetail/PostInstallAlert.d.ts.map +1 -0
- package/build/@types/common/components/clusterDetail/index.d.ts +1 -0
- package/build/@types/common/components/clusterDetail/index.d.ts.map +1 -1
- package/build/@types/common/components/clusterWizard/ReviewValidations.d.ts.map +1 -1
- package/build/@types/common/components/ui/NoPermissionsError.d.ts +3 -0
- package/build/@types/common/components/ui/NoPermissionsError.d.ts.map +1 -0
- package/build/@types/common/components/ui/formik/InputField.d.ts.map +1 -1
- package/build/@types/common/components/ui/formik/RichInputField.d.ts.map +1 -1
- package/build/@types/common/components/ui/formik/types.d.ts +2 -2
- package/build/@types/common/components/ui/formik/types.d.ts.map +1 -1
- package/build/@types/common/components/ui/index.d.ts +1 -0
- package/build/@types/common/components/ui/index.d.ts.map +1 -1
- package/build/@types/common/config/constants.d.ts.map +1 -1
- package/build/@types/common/features/featureGate.d.ts +1 -1
- package/build/@types/common/features/featureGate.d.ts.map +1 -1
- package/build/@types/common/types/cpuArchitecture.d.ts +1 -1
- package/build/@types/common/types/cpuArchitecture.d.ts.map +1 -1
- package/build/@types/ocm/components/AddHosts/AddHosts.d.ts.map +1 -1
- package/build/@types/ocm/components/AddHosts/InventoryAddHost.d.ts +1 -2
- package/build/@types/ocm/components/AddHosts/InventoryAddHost.d.ts.map +1 -1
- package/build/@types/ocm/components/AddHosts/day2Wizard/Day2ClusterDetails.d.ts.map +1 -1
- package/build/@types/ocm/components/AddHosts/day2Wizard/Day2StaticIpHostConfigurations.d.ts +3 -1
- package/build/@types/ocm/components/AddHosts/day2Wizard/Day2StaticIpHostConfigurations.d.ts.map +1 -1
- package/build/@types/ocm/components/HostsClusterDetailTab/HostsClusterDetailTabContent.d.ts.map +1 -1
- package/build/@types/ocm/components/HostsClusterDetailTab/HostsClusterDetailTabContentErrors.d.ts +1 -4
- package/build/@types/ocm/components/HostsClusterDetailTab/HostsClusterDetailTabContentErrors.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/CpuArchitectureDropdown.d.ts +3 -2
- package/build/@types/ocm/components/clusterConfiguration/CpuArchitectureDropdown.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/CustomManifestCheckbox.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/OcmBaseDomainField.d.ts +2 -1
- package/build/@types/ocm/components/clusterConfiguration/OcmBaseDomainField.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/manifestsConfiguration/CustomManifestsPage.d.ts +1 -1
- package/build/@types/ocm/components/clusterConfiguration/manifestsConfiguration/CustomManifestsPage.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifestsForm.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/manifestsConfiguration/components/utils.d.ts +3 -4
- package/build/@types/ocm/components/clusterConfiguration/manifestsConfiguration/components/utils.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/manifestsConfiguration/data/dataTypes.d.ts +0 -1
- package/build/@types/ocm/components/clusterConfiguration/manifestsConfiguration/data/dataTypes.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfigurationForm.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/networkConfiguration/networkConfigurationValidation.d.ts +1 -1
- package/build/@types/ocm/components/clusterConfiguration/networkConfiguration/networkConfigurationValidation.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterDetail/ClusterDetailStatusMessages.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterWizard/ClusterDetails.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterWizard/ClusterDetailsForm.d.ts +1 -2
- package/build/@types/ocm/components/clusterWizard/ClusterDetailsForm.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterWizard/ClusterWizardContext.d.ts +5 -3
- package/build/@types/ocm/components/clusterWizard/ClusterWizardContext.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterWizard/ClusterWizardContextProvider.d.ts.map +1 -1
- package/build/@types/ocm/components/ui/OcmFormFields.d.ts +1 -1
- package/build/@types/ocm/hooks/index.d.ts +1 -0
- package/build/@types/ocm/hooks/index.d.ts.map +1 -1
- package/build/@types/ocm/hooks/useOpenshiftVersions.d.ts +1 -2
- package/build/@types/ocm/hooks/useOpenshiftVersions.d.ts.map +1 -1
- package/build/@types/ocm/hooks/useSupportLevelsAPI.d.ts +4 -4
- package/build/@types/ocm/hooks/useSupportLevelsAPI.d.ts.map +1 -1
- package/build/@types/ocm/hooks/useUISettings.d.ts +10 -0
- package/build/@types/ocm/hooks/useUISettings.d.ts.map +1 -0
- package/build/@types/ocm/services/ClusterDetailsService.d.ts +2 -1
- package/build/@types/ocm/services/ClusterDetailsService.d.ts.map +1 -1
- package/build/@types/ocm/services/ClustersService.d.ts +0 -1
- package/build/@types/ocm/services/ClustersService.d.ts.map +1 -1
- package/build/@types/ocm/services/Day2ClusterService.d.ts +3 -2
- package/build/@types/ocm/services/Day2ClusterService.d.ts.map +1 -1
- package/build/@types/ocm/services/UISettingsService.d.ts +8 -0
- package/build/@types/ocm/services/UISettingsService.d.ts.map +1 -0
- package/build/@types/ocm/services/index.d.ts +1 -0
- package/build/@types/ocm/services/index.d.ts.map +1 -1
- package/build/@types/ocm/services/types.d.ts +4 -0
- package/build/@types/ocm/services/types.d.ts.map +1 -1
- package/build/cjs/cim/components/Agent/BMCForm.js +3 -3
- package/build/cjs/cim/components/Agent/BMCForm.js.map +1 -1
- package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentDetailsStep.js +9 -5
- package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentDetailsStep.js.map +1 -1
- package/build/cjs/cim/components/ClusterDeployment/ClusterDetailsFormFields.js +6 -2
- package/build/cjs/cim/components/ClusterDeployment/ClusterDetailsFormFields.js.map +1 -1
- package/build/cjs/cim/components/ClusterDeployment/ScaleUpForm.js +7 -4
- package/build/cjs/cim/components/ClusterDeployment/ScaleUpForm.js.map +1 -1
- package/build/cjs/cim/components/InfraEnv/utils.js +6 -6
- package/build/cjs/cim/components/InfraEnv/utils.js.map +1 -1
- package/build/cjs/cim/components/helpers/versions.js +3 -1
- package/build/cjs/cim/components/helpers/versions.js.map +1 -1
- package/build/cjs/cim/components/modals/ScaleUpModal.js +2 -2
- package/build/cjs/cim/components/modals/ScaleUpModal.js.map +1 -1
- package/build/cjs/common/api/accounts-management-service/access-token-api.js +1 -1
- package/build/cjs/common/api/accounts-management-service/current-account-api.js +17 -0
- package/build/cjs/common/api/accounts-management-service/current-account-api.js.map +1 -0
- package/build/cjs/common/api/accounts-management-service/organizations-api.js +19 -0
- package/build/cjs/common/api/accounts-management-service/organizations-api.js.map +1 -0
- package/build/cjs/common/api/assisted-service/UISettingsAPI.js +21 -0
- package/build/cjs/common/api/assisted-service/UISettingsAPI.js.map +1 -0
- package/build/cjs/common/api/assisted-service/index.js +3 -1
- package/build/cjs/common/api/assisted-service/index.js.map +1 -1
- package/build/cjs/common/api/authorization-service/all-apis.js +23 -0
- package/build/cjs/common/api/authorization-service/all-apis.js.map +1 -0
- package/build/cjs/common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionControlGroup.js +1 -1
- package/build/cjs/common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionControlGroup.js.map +1 -1
- package/build/cjs/common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionMode.js +6 -4
- package/build/cjs/common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionMode.js.map +1 -1
- package/build/cjs/common/components/clusterConfiguration/DiskEncryptionFields/TangServers.js +5 -3
- package/build/cjs/common/components/clusterConfiguration/DiskEncryptionFields/TangServers.js.map +1 -1
- package/build/cjs/common/components/clusterConfiguration/OpenShiftVersionSelect.js +2 -2
- package/build/cjs/common/components/clusterConfiguration/OpenShiftVersionSelect.js.map +1 -1
- package/build/cjs/common/components/clusterDetail/PostInstallAlert.js +16 -0
- package/build/cjs/common/components/clusterDetail/PostInstallAlert.js.map +1 -0
- package/build/cjs/common/components/clusterDetail/index.js +3 -1
- package/build/cjs/common/components/clusterDetail/index.js.map +1 -1
- package/build/cjs/common/components/clusterWizard/ReviewValidations.js +3 -0
- package/build/cjs/common/components/clusterWizard/ReviewValidations.js.map +1 -1
- package/build/cjs/common/components/ui/NoPermissionsError.js +14 -0
- package/build/cjs/common/components/ui/NoPermissionsError.js.map +1 -0
- package/build/cjs/common/components/ui/formik/InputField.js +5 -5
- package/build/cjs/common/components/ui/formik/InputField.js.map +1 -1
- package/build/cjs/common/components/ui/formik/RichInputField.js +5 -2
- package/build/cjs/common/components/ui/formik/RichInputField.js.map +1 -1
- package/build/cjs/common/components/ui/formik/SelectField.js +1 -1
- package/build/cjs/common/components/ui/formik/SelectField.js.map +1 -1
- package/build/cjs/common/components/ui/index.js +3 -1
- package/build/cjs/common/components/ui/index.js.map +1 -1
- package/build/cjs/common/config/constants.js +1 -0
- package/build/cjs/common/config/constants.js.map +1 -1
- package/build/cjs/common/features/featureGate.js +1 -3
- package/build/cjs/common/features/featureGate.js.map +1 -1
- package/build/cjs/common/types/cpuArchitecture.js +5 -9
- package/build/cjs/common/types/cpuArchitecture.js.map +1 -1
- package/build/cjs/ocm/components/AddHosts/AddHosts.js +1 -2
- package/build/cjs/ocm/components/AddHosts/AddHosts.js.map +1 -1
- package/build/cjs/ocm/components/AddHosts/InventoryAddHost.js +2 -2
- package/build/cjs/ocm/components/AddHosts/InventoryAddHost.js.map +1 -1
- package/build/cjs/ocm/components/AddHosts/day2Wizard/Day2ClusterDetails.js +4 -4
- package/build/cjs/ocm/components/AddHosts/day2Wizard/Day2ClusterDetails.js.map +1 -1
- package/build/cjs/ocm/components/AddHosts/day2Wizard/Day2StaticIpHostConfigurations.js +7 -6
- package/build/cjs/ocm/components/AddHosts/day2Wizard/Day2StaticIpHostConfigurations.js.map +1 -1
- package/build/cjs/ocm/components/HostsClusterDetailTab/HostsClusterDetailTabContent.js +3 -20
- package/build/cjs/ocm/components/HostsClusterDetailTab/HostsClusterDetailTabContent.js.map +1 -1
- package/build/cjs/ocm/components/HostsClusterDetailTab/HostsClusterDetailTabContentErrors.js +1 -13
- package/build/cjs/ocm/components/HostsClusterDetailTab/HostsClusterDetailTabContentErrors.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/CpuArchitectureDropdown.js +24 -3
- package/build/cjs/ocm/components/clusterConfiguration/CpuArchitectureDropdown.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/CustomManifestCheckbox.js +22 -32
- package/build/cjs/ocm/components/clusterConfiguration/CustomManifestCheckbox.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/OcmBaseDomainField.js +7 -5
- package/build/cjs/ocm/components/clusterConfiguration/OcmBaseDomainField.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.js +3 -4
- package/build/cjs/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/CustomManifestsPage.js +6 -12
- package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/CustomManifestsPage.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifests.js +2 -2
- package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifests.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifestsArray.js +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifestsArray.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifestsForm.js +49 -123
- package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifestsForm.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/ExpandedManifest.js +1 -0
- package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/ExpandedManifest.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/utils.js +14 -19
- package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/utils.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfigurationForm.js +4 -1
- package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfigurationForm.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/networkConfigurationValidation.js +5 -2
- package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/networkConfigurationValidation.js.map +1 -1
- package/build/cjs/ocm/components/clusterDetail/ClusterDetailStatusMessages.js +2 -7
- package/build/cjs/ocm/components/clusterDetail/ClusterDetailStatusMessages.js.map +1 -1
- package/build/cjs/ocm/components/clusterWizard/ClusterDetails.js +5 -12
- package/build/cjs/ocm/components/clusterWizard/ClusterDetails.js.map +1 -1
- package/build/cjs/ocm/components/clusterWizard/ClusterDetailsForm.js +18 -13
- package/build/cjs/ocm/components/clusterWizard/ClusterDetailsForm.js.map +1 -1
- package/build/cjs/ocm/components/clusterWizard/ClusterWizardContext.js.map +1 -1
- package/build/cjs/ocm/components/clusterWizard/ClusterWizardContextProvider.js +45 -36
- package/build/cjs/ocm/components/clusterWizard/ClusterWizardContextProvider.js.map +1 -1
- package/build/cjs/ocm/hooks/index.js +3 -1
- package/build/cjs/ocm/hooks/index.js.map +1 -1
- package/build/cjs/ocm/hooks/useOpenshiftVersions.js +0 -5
- package/build/cjs/ocm/hooks/useOpenshiftVersions.js.map +1 -1
- package/build/cjs/ocm/hooks/useSupportLevelsAPI.js +34 -1
- package/build/cjs/ocm/hooks/useSupportLevelsAPI.js.map +1 -1
- package/build/cjs/ocm/hooks/useUISettings.js +62 -0
- package/build/cjs/ocm/hooks/useUISettings.js.map +1 -0
- package/build/cjs/ocm/services/ClusterDetailsService.js +2 -5
- package/build/cjs/ocm/services/ClusterDetailsService.js.map +1 -1
- package/build/cjs/ocm/services/ClustersService.js +0 -8
- package/build/cjs/ocm/services/ClustersService.js.map +1 -1
- package/build/cjs/ocm/services/Day2ClusterService.js +13 -4
- package/build/cjs/ocm/services/Day2ClusterService.js.map +1 -1
- package/build/cjs/ocm/services/UISettingsService.js +18 -0
- package/build/cjs/ocm/services/UISettingsService.js.map +1 -0
- package/build/cjs/ocm/services/index.js +3 -1
- package/build/cjs/ocm/services/index.js.map +1 -1
- package/lib/cim/components/Agent/BMCForm.tsx +3 -3
- package/lib/cim/components/ClusterDeployment/ClusterDeploymentDetailsStep.tsx +17 -5
- package/lib/cim/components/ClusterDeployment/ClusterDetailsFormFields.tsx +9 -2
- package/lib/cim/components/ClusterDeployment/ScaleUpForm.tsx +11 -5
- package/lib/cim/components/InfraEnv/utils.ts +7 -6
- package/lib/cim/components/helpers/versions.ts +5 -0
- package/lib/cim/components/modals/ScaleUpModal.tsx +3 -0
- package/lib/cim/types/k8s/agent-cluster-install.ts +4 -7
- package/lib/common/api/accounts-management-service/access-token-api.ts +1 -1
- package/lib/common/api/accounts-management-service/current-account-api.ts +13 -0
- package/lib/common/api/accounts-management-service/organizations-api.ts +15 -0
- package/lib/common/api/assisted-service/UISettingsAPI.ts +24 -0
- package/lib/common/api/assisted-service/index.ts +1 -0
- package/lib/common/api/authorization-service/all-apis.ts +28 -0
- package/lib/common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionControlGroup.tsx +5 -1
- package/lib/common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionMode.tsx +27 -16
- package/lib/common/components/clusterConfiguration/DiskEncryptionFields/TangServers.tsx +27 -17
- package/lib/common/components/clusterConfiguration/OpenShiftVersionSelect.tsx +4 -1
- package/lib/common/components/clusterDetail/PostInstallAlert.tsx +29 -0
- package/lib/common/components/clusterDetail/index.ts +1 -0
- package/lib/common/components/clusterWizard/ReviewValidations.tsx +3 -0
- package/lib/common/components/ui/NoPermissionsError.tsx +19 -0
- package/lib/common/components/ui/formik/InputField.tsx +4 -5
- package/lib/common/components/ui/formik/RichInputField.tsx +6 -2
- package/lib/common/components/ui/formik/SelectField.tsx +1 -1
- package/lib/common/components/ui/formik/types.ts +2 -1
- package/lib/common/components/ui/index.ts +1 -0
- package/lib/common/config/constants.ts +1 -0
- package/lib/common/features/featureGate.tsx +0 -4
- package/lib/common/types/cpuArchitecture.ts +3 -8
- package/lib/ocm/components/AddHosts/AddHosts.tsx +1 -3
- package/lib/ocm/components/AddHosts/InventoryAddHost.tsx +2 -8
- package/lib/ocm/components/AddHosts/day2Wizard/Day2ClusterDetails.tsx +6 -11
- package/lib/ocm/components/AddHosts/day2Wizard/Day2StaticIpHostConfigurations.tsx +34 -19
- package/lib/ocm/components/HostsClusterDetailTab/HostsClusterDetailTabContent.tsx +4 -36
- package/lib/ocm/components/HostsClusterDetailTab/HostsClusterDetailTabContentErrors.tsx +1 -15
- package/lib/ocm/components/clusterConfiguration/CpuArchitectureDropdown.tsx +58 -3
- package/lib/ocm/components/clusterConfiguration/CustomManifestCheckbox.tsx +25 -32
- package/lib/ocm/components/clusterConfiguration/OcmBaseDomainField.tsx +23 -12
- package/lib/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.tsx +4 -5
- package/lib/ocm/components/clusterConfiguration/manifestsConfiguration/CustomManifestsPage.tsx +20 -27
- package/lib/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifests.tsx +3 -3
- package/lib/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifestsArray.tsx +2 -2
- package/lib/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifestsForm.tsx +69 -182
- package/lib/ocm/components/clusterConfiguration/manifestsConfiguration/components/ExpandedManifest.tsx +1 -1
- package/lib/ocm/components/clusterConfiguration/manifestsConfiguration/components/utils.tsx +9 -15
- package/lib/ocm/components/clusterConfiguration/manifestsConfiguration/data/dataTypes.ts +0 -1
- package/lib/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfigurationForm.tsx +7 -2
- package/lib/ocm/components/clusterConfiguration/networkConfiguration/networkConfigurationValidation.ts +6 -1
- package/lib/ocm/components/clusterDetail/ClusterDetailStatusMessages.tsx +2 -16
- package/lib/ocm/components/clusterWizard/ClusterDetails.tsx +9 -16
- package/lib/ocm/components/clusterWizard/ClusterDetailsForm.tsx +18 -16
- package/lib/ocm/components/clusterWizard/ClusterWizardContext.tsx +5 -3
- package/lib/ocm/components/clusterWizard/ClusterWizardContextProvider.tsx +75 -54
- package/lib/ocm/hooks/index.ts +1 -0
- package/lib/ocm/hooks/useOpenshiftVersions.tsx +1 -15
- package/lib/ocm/hooks/useSupportLevelsAPI.ts +54 -2
- package/lib/ocm/hooks/useUISettings.ts +71 -0
- package/lib/ocm/services/ClusterDetailsService.ts +3 -5
- package/lib/ocm/services/ClustersService.ts +0 -10
- package/lib/ocm/services/Day2ClusterService.ts +17 -3
- package/lib/ocm/services/UISettingsService.ts +17 -0
- package/lib/ocm/services/index.ts +1 -0
- package/lib/ocm/services/types.ts +5 -0
- package/package.json +8 -4
package/lib/common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionMode.tsx
CHANGED
|
@@ -8,6 +8,8 @@ import {
|
|
|
8
8
|
Text,
|
|
9
9
|
TextVariants,
|
|
10
10
|
TextContent,
|
|
11
|
+
TooltipProps,
|
|
12
|
+
Tooltip,
|
|
11
13
|
} from '@patternfly/react-core';
|
|
12
14
|
import { ENCRYPTING_DISK_DURING_INSTALLATION } from '../../../config';
|
|
13
15
|
import PopoverIcon from '../../ui/PopoverIcon';
|
|
@@ -64,31 +66,40 @@ const DiskEncryptionModeTang = () => {
|
|
|
64
66
|
export interface DiskEncryptionModeProps {
|
|
65
67
|
isDisabled: boolean;
|
|
66
68
|
diskEncryptionMode: DiskEncryption['mode'];
|
|
69
|
+
tooltipProps: TooltipProps;
|
|
67
70
|
}
|
|
68
71
|
|
|
69
|
-
export const DiskEncryptionMode = ({
|
|
72
|
+
export const DiskEncryptionMode = ({
|
|
73
|
+
diskEncryptionMode,
|
|
74
|
+
isDisabled,
|
|
75
|
+
tooltipProps,
|
|
76
|
+
}: DiskEncryptionModeProps) => {
|
|
70
77
|
const { t } = useTranslation();
|
|
71
78
|
return (
|
|
72
79
|
<Stack>
|
|
73
80
|
<StackItem>
|
|
74
81
|
<Flex>
|
|
75
82
|
<FlexItem spacer={{ default: 'spacer3xl' }}>
|
|
76
|
-
<
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
+
<Tooltip {...tooltipProps}>
|
|
84
|
+
<RadioField
|
|
85
|
+
isDisabled={isDisabled}
|
|
86
|
+
name="diskEncryptionMode"
|
|
87
|
+
label={<DiskEncryptionModeTPMv2 />}
|
|
88
|
+
id="TPMV2-button"
|
|
89
|
+
value="tpmv2"
|
|
90
|
+
/>
|
|
91
|
+
</Tooltip>
|
|
83
92
|
</FlexItem>
|
|
84
93
|
<FlexItem spacer={{ default: 'spacer3xl' }}>
|
|
85
|
-
<
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
94
|
+
<Tooltip {...tooltipProps}>
|
|
95
|
+
<RadioField
|
|
96
|
+
isDisabled={isDisabled}
|
|
97
|
+
name="diskEncryptionMode"
|
|
98
|
+
label={<DiskEncryptionModeTang />}
|
|
99
|
+
id="tang-button"
|
|
100
|
+
value="tang"
|
|
101
|
+
/>
|
|
102
|
+
</Tooltip>
|
|
92
103
|
</FlexItem>
|
|
93
104
|
</Flex>
|
|
94
105
|
</StackItem>
|
|
@@ -101,7 +112,7 @@ export const DiskEncryptionMode = ({ diskEncryptionMode, isDisabled }: DiskEncry
|
|
|
101
112
|
</TextContent>
|
|
102
113
|
</StackItem>
|
|
103
114
|
|
|
104
|
-
<TangServers isDisabled={isDisabled} />
|
|
115
|
+
<TangServers isDisabled={isDisabled} tooltipProps={tooltipProps} />
|
|
105
116
|
</Stack>
|
|
106
117
|
)}
|
|
107
118
|
</Stack>
|
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { FieldArray, useFormikContext } from 'formik';
|
|
3
|
-
import { Stack, StackItem, TextInputTypes } from '@patternfly/react-core';
|
|
3
|
+
import { Stack, StackItem, TextInputTypes, Tooltip, TooltipProps } from '@patternfly/react-core';
|
|
4
4
|
import { ClusterDetailsValues } from '../../clusterWizard';
|
|
5
5
|
import { InputField } from '../../ui';
|
|
6
6
|
import { AddButton, RemovableField } from '../../ui/formik';
|
|
7
7
|
import { useTranslation } from '../../../hooks/use-translation-wrapper';
|
|
8
8
|
|
|
9
|
-
export const TangServers = ({
|
|
9
|
+
export const TangServers = ({
|
|
10
|
+
isDisabled = false,
|
|
11
|
+
tooltipProps,
|
|
12
|
+
}: {
|
|
13
|
+
isDisabled: boolean;
|
|
14
|
+
tooltipProps: TooltipProps;
|
|
15
|
+
}) => {
|
|
10
16
|
const { values } = useFormikContext<ClusterDetailsValues>();
|
|
11
17
|
const { t } = useTranslation();
|
|
12
18
|
return (
|
|
@@ -20,22 +26,26 @@ export const TangServers = ({ isDisabled = false }: { isDisabled: boolean }) =>
|
|
|
20
26
|
onRemove={() => remove(index)}
|
|
21
27
|
>
|
|
22
28
|
<div>
|
|
23
|
-
<
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
<Tooltip {...tooltipProps}>
|
|
30
|
+
<InputField
|
|
31
|
+
type={TextInputTypes.url}
|
|
32
|
+
name={`diskEncryptionTangServers.${index}.url`}
|
|
33
|
+
helperText={`Must start with "http://" or "https://". Optionally, end with ":<port>"`}
|
|
34
|
+
label="Server URL"
|
|
35
|
+
isRequired
|
|
36
|
+
isDisabled={isDisabled}
|
|
37
|
+
/>
|
|
38
|
+
</Tooltip>
|
|
31
39
|
 
|
|
32
|
-
<
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
40
|
+
<Tooltip {...tooltipProps}>
|
|
41
|
+
<InputField
|
|
42
|
+
type={TextInputTypes.text}
|
|
43
|
+
name={`diskEncryptionTangServers.${index}.thumbprint`}
|
|
44
|
+
label="Server Thumbprint"
|
|
45
|
+
isRequired
|
|
46
|
+
isDisabled={isDisabled}
|
|
47
|
+
/>
|
|
48
|
+
</Tooltip>
|
|
39
49
|
</div>
|
|
40
50
|
</RemovableField>{' '}
|
|
41
51
|
</StackItem>
|
|
@@ -12,6 +12,7 @@ import { OPENSHIFT_LIFE_CYCLE_DATES_LINK } from '../../config';
|
|
|
12
12
|
import { OpenshiftVersionOptionType } from '../../types';
|
|
13
13
|
import { SelectField } from '../ui';
|
|
14
14
|
import { useTranslation } from '../../hooks/use-translation-wrapper';
|
|
15
|
+
import { SelectFieldProps } from '../ui/formik/types';
|
|
15
16
|
|
|
16
17
|
const OpenShiftLifeCycleDatesLink = () => {
|
|
17
18
|
const { t } = useTranslation();
|
|
@@ -54,8 +55,9 @@ const getOpenshiftVersionHelperText =
|
|
|
54
55
|
|
|
55
56
|
type OpenShiftVersionSelectProps = {
|
|
56
57
|
versions: OpenshiftVersionOptionType[];
|
|
58
|
+
onChange?: SelectFieldProps['onChange'];
|
|
57
59
|
};
|
|
58
|
-
const OpenShiftVersionSelect: React.FC<OpenShiftVersionSelectProps> = ({ versions }) => {
|
|
60
|
+
const OpenShiftVersionSelect: React.FC<OpenShiftVersionSelectProps> = ({ versions, onChange }) => {
|
|
59
61
|
const selectOptions = React.useMemo(
|
|
60
62
|
() =>
|
|
61
63
|
versions
|
|
@@ -75,6 +77,7 @@ const OpenShiftVersionSelect: React.FC<OpenShiftVersionSelectProps> = ({ version
|
|
|
75
77
|
getHelperText={getOpenshiftVersionHelperText(versions)}
|
|
76
78
|
isDisabled={versions.length === 0}
|
|
77
79
|
isRequired
|
|
80
|
+
onChange={onChange}
|
|
78
81
|
/>
|
|
79
82
|
);
|
|
80
83
|
};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { Alert } from '@patternfly/react-core';
|
|
3
|
+
import { ExternalLink } from '../ui';
|
|
4
|
+
import { useTranslation } from '../../hooks/use-translation-wrapper';
|
|
5
|
+
|
|
6
|
+
type PostInstallAlertProps = {
|
|
7
|
+
link: string;
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
const PostInstallAlert = ({ link }: PostInstallAlertProps) => {
|
|
11
|
+
const { t } = useTranslation();
|
|
12
|
+
return (
|
|
13
|
+
<Alert
|
|
14
|
+
variant="warning"
|
|
15
|
+
isInline
|
|
16
|
+
data-testid="alert-modify-platform-config"
|
|
17
|
+
title={
|
|
18
|
+
<p>
|
|
19
|
+
{t(
|
|
20
|
+
"ai:Modify your platform configuration to access your platform's features directly in OpenShift.",
|
|
21
|
+
)}{' '}
|
|
22
|
+
<ExternalLink href={link}>{t('ai:Learn more about configuration.')}</ExternalLink>
|
|
23
|
+
</p>
|
|
24
|
+
}
|
|
25
|
+
/>
|
|
26
|
+
);
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
export default PostInstallAlert;
|
|
@@ -2,3 +2,4 @@ export { default as ClusterPropertiesList } from './ClusterPropertiesList';
|
|
|
2
2
|
export { default as ClusterProgress } from './ClusterProgress';
|
|
3
3
|
export { default as ClusterCredentials } from './ClusterCredentials';
|
|
4
4
|
export { default as KubeconfigDownload } from './KubeconfigDownload';
|
|
5
|
+
export { default as PostInstallAlert } from './PostInstallAlert';
|
|
@@ -112,6 +112,9 @@ const FailingValidation = <S extends string>({
|
|
|
112
112
|
</>
|
|
113
113
|
);
|
|
114
114
|
} else {
|
|
115
|
+
if (validation.id === 'platform-requirements-satisfied') {
|
|
116
|
+
fix = validation.message;
|
|
117
|
+
}
|
|
115
118
|
// console.error(
|
|
116
119
|
// 'Unknown validation ID detected in the ',
|
|
117
120
|
// clusterGroup || hostGroup,
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { EmptyState, EmptyStateBody, EmptyStateIcon, Title } from '@patternfly/react-core';
|
|
3
|
+
import { ExclamationTriangleIcon } from '@patternfly/react-icons';
|
|
4
|
+
import { global_disabled_color_100 as iconColor } from '@patternfly/react-tokens';
|
|
5
|
+
|
|
6
|
+
const NoPermissionsError = () => (
|
|
7
|
+
<EmptyState id="not-found">
|
|
8
|
+
<EmptyStateBody>
|
|
9
|
+
<EmptyStateIcon icon={ExclamationTriangleIcon} color={iconColor.value} />
|
|
10
|
+
<Title headingLevel="h2">Access permissions needed</Title>
|
|
11
|
+
<EmptyStateBody>
|
|
12
|
+
To create a cluster using the Assisted Installer, ask your organization administrator to
|
|
13
|
+
adjust your permissions.
|
|
14
|
+
</EmptyStateBody>
|
|
15
|
+
</EmptyStateBody>
|
|
16
|
+
</EmptyState>
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
export default NoPermissionsError;
|
|
@@ -29,7 +29,6 @@ const InputField: React.FC<
|
|
|
29
29
|
idPostfix,
|
|
30
30
|
children,
|
|
31
31
|
noDefaultOnChange,
|
|
32
|
-
inputError,
|
|
33
32
|
description,
|
|
34
33
|
labelInfo,
|
|
35
34
|
showErrorMessage = true,
|
|
@@ -37,15 +36,15 @@ const InputField: React.FC<
|
|
|
37
36
|
},
|
|
38
37
|
ref: React.Ref<HTMLInputElement>,
|
|
39
38
|
) => {
|
|
40
|
-
const [field] = useField({
|
|
39
|
+
const [field, { error, touched }] = useField({
|
|
41
40
|
name: props.name,
|
|
42
41
|
validate,
|
|
43
42
|
});
|
|
44
43
|
|
|
45
44
|
const fieldId = getFieldId(props.name, 'input', idPostfix);
|
|
46
|
-
const errorMessage = useFieldErrorMsg({ name: props.name, inputError, validate });
|
|
45
|
+
const errorMessage = useFieldErrorMsg({ name: props.name, inputError: error, validate });
|
|
47
46
|
const fieldHelperText = <HelperText fieldId={fieldId}>{helperText}</HelperText>;
|
|
48
|
-
const isValid = !
|
|
47
|
+
const isValid = !(touched && error);
|
|
49
48
|
|
|
50
49
|
return (
|
|
51
50
|
<Stack id={`form-control__${fieldId}`}>
|
|
@@ -88,7 +87,7 @@ const InputField: React.FC<
|
|
|
88
87
|
</FormGroup>
|
|
89
88
|
</StackItem>
|
|
90
89
|
<StackItem>
|
|
91
|
-
{showErrorMessage &&
|
|
90
|
+
{showErrorMessage && !isValid && (
|
|
92
91
|
<HelperText fieldId={fieldId} isError>
|
|
93
92
|
{errorMessage}
|
|
94
93
|
</HelperText>
|
|
@@ -99,7 +99,8 @@ const RichInputField: React.FC<RichInputFieldPropsProps> = React.forwardRef(
|
|
|
99
99
|
validate,
|
|
100
100
|
});
|
|
101
101
|
const fieldId = getFieldId(props.name, 'input', idPostfix);
|
|
102
|
-
const isValid = !touched
|
|
102
|
+
const isValid = !(touched && error?.length);
|
|
103
|
+
|
|
103
104
|
return (
|
|
104
105
|
<FormGroup
|
|
105
106
|
id={`form-control__${fieldId}`}
|
|
@@ -133,7 +134,10 @@ const RichInputField: React.FC<RichInputFieldPropsProps> = React.forwardRef(
|
|
|
133
134
|
onChange && onChange(event);
|
|
134
135
|
}}
|
|
135
136
|
className="rich-input__text"
|
|
136
|
-
onBlur={() =>
|
|
137
|
+
onBlur={() => {
|
|
138
|
+
setTouched(true, false);
|
|
139
|
+
setPopoverOpen(false);
|
|
140
|
+
}}
|
|
137
141
|
/>
|
|
138
142
|
<Popover
|
|
139
143
|
isVisible={popoverOpen}
|
|
@@ -49,7 +49,7 @@ const SelectField: React.FC<SelectFieldProps> = ({
|
|
|
49
49
|
onChange={(value, event) => {
|
|
50
50
|
//customHandleChange enables calling formik change handler explicitly, useful for example to have the previous value
|
|
51
51
|
callFormikOnChange && field.onChange(event);
|
|
52
|
-
onChange && onChange(event);
|
|
52
|
+
onChange && onChange(value, event);
|
|
53
53
|
}}
|
|
54
54
|
>
|
|
55
55
|
{options.map((option, index) => (
|
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
SelectOptionProps,
|
|
6
6
|
TooltipProps,
|
|
7
7
|
RadioProps,
|
|
8
|
+
FormSelectProps,
|
|
8
9
|
} from '@patternfly/react-core';
|
|
9
10
|
import { FieldValidator, FieldHelperProps } from 'formik';
|
|
10
11
|
import { DropzoneProps, DropFileEventHandler } from 'react-dropzone';
|
|
@@ -37,7 +38,7 @@ export interface FieldProps {
|
|
|
37
38
|
|
|
38
39
|
export interface SelectFieldProps extends FieldProps {
|
|
39
40
|
options: FormSelectOptionProps[];
|
|
40
|
-
onChange?:
|
|
41
|
+
onChange?: FormSelectProps['onChange'];
|
|
41
42
|
getHelperText?: (value: string) => React.ReactNode | undefined;
|
|
42
43
|
// onBlur?: (event: React.FormEvent<HTMLSelectElement>) => void;
|
|
43
44
|
}
|
|
@@ -22,3 +22,4 @@ export { default as EventsList } from './EventsList';
|
|
|
22
22
|
export { default as ClusterEventsToolbar } from './ClusterEventsToolbar';
|
|
23
23
|
export { default as ModalProgress } from './ModalProgress';
|
|
24
24
|
export { default as ConfirmationModal } from './ConfirmationModal';
|
|
25
|
+
export { default as NoPermissionsError } from './NoPermissionsError';
|
|
@@ -250,6 +250,7 @@ export const clusterValidationLabels = (
|
|
|
250
250
|
'lvm-requirements-satisfied': t('ai:Logical Volume Manager requirements'),
|
|
251
251
|
'cnv-requirements-satisfied': t('ai:CNV requirements'),
|
|
252
252
|
'mce-requirements-satisfied': t('ai:MCE requirements'),
|
|
253
|
+
'platform-requirements-satisfied': t('ai:Platform requirements'),
|
|
253
254
|
});
|
|
254
255
|
|
|
255
256
|
export const clusterValidationGroupLabels = (
|
|
@@ -3,7 +3,6 @@ import React from 'react';
|
|
|
3
3
|
// Must conform Unleash constants
|
|
4
4
|
export type AssistedInstallerFeatureType =
|
|
5
5
|
| 'ASSISTED_INSTALLER_SINGLE_CLUSTER_FEATURE'
|
|
6
|
-
| 'ASSISTED_INSTALLER_MULTIARCH_SUPPORTED'
|
|
7
6
|
| 'ASSISTED_INSTALLER_PLATFORM_OCI';
|
|
8
7
|
|
|
9
8
|
export type FeatureListType = {
|
|
@@ -22,13 +21,11 @@ export type AssistedInstallerPermissionTypesListType = {
|
|
|
22
21
|
// Hardcoded for ACM
|
|
23
22
|
export const ACM_ENABLED_FEATURES: FeatureListType = {
|
|
24
23
|
ASSISTED_INSTALLER_SINGLE_CLUSTER_FEATURE: false,
|
|
25
|
-
ASSISTED_INSTALLER_MULTIARCH_SUPPORTED: true,
|
|
26
24
|
};
|
|
27
25
|
|
|
28
26
|
// Hardcoded outside OCM
|
|
29
27
|
export const STANDALONE_DEPLOYMENT_ENABLED_FEATURES: FeatureListType = {
|
|
30
28
|
ASSISTED_INSTALLER_SINGLE_CLUSTER_FEATURE: false,
|
|
31
|
-
ASSISTED_INSTALLER_MULTIARCH_SUPPORTED: true,
|
|
32
29
|
ASSISTED_INSTALLER_PLATFORM_OCI: true,
|
|
33
30
|
};
|
|
34
31
|
|
|
@@ -46,7 +43,6 @@ export const FeatureGateContextProvider: React.FC<{
|
|
|
46
43
|
// hardcoded defaults
|
|
47
44
|
// TODO (mortegag): Remove all multiarch capacity related code in the UI.
|
|
48
45
|
const featuresWithDefaults: FeatureListType = {
|
|
49
|
-
ASSISTED_INSTALLER_MULTIARCH_SUPPORTED: true,
|
|
50
46
|
...features,
|
|
51
47
|
};
|
|
52
48
|
|
|
@@ -44,29 +44,24 @@ export const getAllCpuArchitectures = (): SupportedCpuArchitecture[] => [
|
|
|
44
44
|
];
|
|
45
45
|
|
|
46
46
|
export const getSupportedCpuArchitectures = (
|
|
47
|
-
canSelectCpuArch: boolean,
|
|
48
47
|
cpuArchitectures: CpuArchitecture[],
|
|
49
48
|
day1CpuArchitecture?: SupportedCpuArchitecture,
|
|
50
49
|
): SupportedCpuArchitecture[] => {
|
|
51
50
|
const newSupportedCpuArchs: SupportedCpuArchitecture[] = [];
|
|
52
51
|
//Power/Z clusters can be only homogeneous clusters
|
|
53
52
|
if (
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
canSelectCpuArch
|
|
53
|
+
day1CpuArchitecture === CpuArchitecture.ppc64le ||
|
|
54
|
+
day1CpuArchitecture === CpuArchitecture.s390x
|
|
57
55
|
) {
|
|
58
56
|
newSupportedCpuArchs.push(day1CpuArchitecture);
|
|
59
57
|
} else {
|
|
60
58
|
cpuArchitectures.forEach((cpuArch) => {
|
|
61
59
|
if (
|
|
62
60
|
day1CpuArchitecture === undefined &&
|
|
63
|
-
(cpuArch === CpuArchitecture.ppc64le || cpuArch === CpuArchitecture.s390x)
|
|
64
|
-
canSelectCpuArch
|
|
61
|
+
(cpuArch === CpuArchitecture.ppc64le || cpuArch === CpuArchitecture.s390x)
|
|
65
62
|
) {
|
|
66
63
|
newSupportedCpuArchs.push(cpuArch);
|
|
67
64
|
} else if (
|
|
68
|
-
day1CpuArchitecture !== CpuArchitecture.ppc64le &&
|
|
69
|
-
day1CpuArchitecture !== CpuArchitecture.s390x &&
|
|
70
65
|
cpuArch !== CpuArchitecture.MULTI &&
|
|
71
66
|
cpuArch !== CpuArchitecture.USE_DAY1_ARCHITECTURE
|
|
72
67
|
) {
|
|
@@ -22,7 +22,6 @@ import {
|
|
|
22
22
|
AddHostsContext,
|
|
23
23
|
alertsSlice,
|
|
24
24
|
canInstallHost,
|
|
25
|
-
useFeature,
|
|
26
25
|
} from '../../../common';
|
|
27
26
|
import InventoryAddHosts from './InventoryAddHost';
|
|
28
27
|
import { onFetchEvents } from '../fetching/fetchEvents';
|
|
@@ -38,7 +37,6 @@ export const AddHosts = () => {
|
|
|
38
37
|
const { cluster, resetCluster, canEdit } = React.useContext(AddHostsContext);
|
|
39
38
|
const [isSubmitting, setSubmitting] = React.useState(false);
|
|
40
39
|
const clusterVarieties = useClusterStatusVarieties(cluster);
|
|
41
|
-
const canSelectCpuArch = useFeature('ASSISTED_INSTALLER_MULTIARCH_SUPPORTED');
|
|
42
40
|
const handleHostsInstall = React.useCallback(async () => {
|
|
43
41
|
setSubmitting(true);
|
|
44
42
|
try {
|
|
@@ -89,7 +87,7 @@ export const AddHosts = () => {
|
|
|
89
87
|
</Grid>
|
|
90
88
|
</StackItem>
|
|
91
89
|
<StackItem>
|
|
92
|
-
<InventoryAddHosts cluster={cluster}
|
|
90
|
+
<InventoryAddHosts cluster={cluster} />
|
|
93
91
|
</StackItem>
|
|
94
92
|
</Stack>
|
|
95
93
|
</CardBody>
|
|
@@ -8,18 +8,12 @@ import Day2DiscoveryImageModalButton from './day2Wizard/Day2DiscoveryImageModalB
|
|
|
8
8
|
import Day2Wizard from './day2Wizard/Day2Wizard';
|
|
9
9
|
import { Cluster } from '@openshift-assisted/types/assisted-installer-service';
|
|
10
10
|
|
|
11
|
-
const InventoryAddHosts = ({
|
|
12
|
-
cluster,
|
|
13
|
-
canSelectCpuArch,
|
|
14
|
-
}: {
|
|
15
|
-
cluster?: Cluster;
|
|
16
|
-
canSelectCpuArch?: boolean;
|
|
17
|
-
}) => {
|
|
11
|
+
const InventoryAddHosts = ({ cluster }: { cluster?: Cluster }) => {
|
|
18
12
|
if (!cluster) {
|
|
19
13
|
return null;
|
|
20
14
|
}
|
|
21
15
|
|
|
22
|
-
const showArmOnlyAlert =
|
|
16
|
+
const showArmOnlyAlert = cluster.cpuArchitecture === CpuArchitecture.ARM;
|
|
23
17
|
return (
|
|
24
18
|
<Stack hasGutter>
|
|
25
19
|
<StackItem>
|
|
@@ -12,7 +12,6 @@ import {
|
|
|
12
12
|
HOW_TO_KNOW_IF_CLUSTER_SUPPORTS_MULTIPLE_CPU_ARCHS,
|
|
13
13
|
LoadingState,
|
|
14
14
|
SupportedCpuArchitecture,
|
|
15
|
-
useFeature,
|
|
16
15
|
} from '../../../../common';
|
|
17
16
|
import { HostsNetworkConfigurationType, InfraEnvsService } from '../../../services';
|
|
18
17
|
import { useModalDialogsContext } from '../../hosts/ModalDialogsContext';
|
|
@@ -86,7 +85,6 @@ const Day2ClusterDetails = () => {
|
|
|
86
85
|
const [initialValues, setInitialValues] = React.useState<Day2ClusterDetailValues | null>(null);
|
|
87
86
|
const [isSubmitting, setSubmitting] = React.useState(false);
|
|
88
87
|
const [isAlternativeCpuSelected, setIsAlternativeCpuSelected] = React.useState(false);
|
|
89
|
-
const canSelectCpuArch = useFeature('ASSISTED_INSTALLER_MULTIARCH_SUPPORTED');
|
|
90
88
|
const { getCpuArchitectures } = useOpenshiftVersions();
|
|
91
89
|
const cpuArchitecturesByVersionImage = getCpuArchitectures(day2Cluster.openshiftVersion);
|
|
92
90
|
const day1CpuArchitecture = mapClusterCpuArchToInfraEnvCpuArch(day2Cluster.cpuArchitecture);
|
|
@@ -94,13 +92,8 @@ const Day2ClusterDetails = () => {
|
|
|
94
92
|
const pullSecret = usePullSecret();
|
|
95
93
|
|
|
96
94
|
const cpuArchitectures = React.useMemo(
|
|
97
|
-
() =>
|
|
98
|
-
|
|
99
|
-
canSelectCpuArch,
|
|
100
|
-
cpuArchitecturesByVersionImage,
|
|
101
|
-
day1CpuArchitecture,
|
|
102
|
-
),
|
|
103
|
-
[canSelectCpuArch, cpuArchitecturesByVersionImage, day1CpuArchitecture],
|
|
95
|
+
() => getSupportedCpuArchitectures(cpuArchitecturesByVersionImage, day1CpuArchitecture),
|
|
96
|
+
[cpuArchitecturesByVersionImage, day1CpuArchitecture],
|
|
104
97
|
);
|
|
105
98
|
React.useEffect(() => {
|
|
106
99
|
const fetchAndSetInitialValues = async () => {
|
|
@@ -227,6 +220,7 @@ const Day2ClusterDetails = () => {
|
|
|
227
220
|
day1CpuArchitecture={initialValues.cpuArchitecture}
|
|
228
221
|
cpuArchitectures={cpuArchitectures}
|
|
229
222
|
onChange={(value) => handleChangeCpuArchitectureDropdown(value, initialValues)}
|
|
223
|
+
platformType={day2Cluster.platform?.type}
|
|
230
224
|
/>
|
|
231
225
|
</GridItem>
|
|
232
226
|
{isAlternativeCpuSelected && (
|
|
@@ -246,9 +240,10 @@ const Day2ClusterDetails = () => {
|
|
|
246
240
|
</Alert>
|
|
247
241
|
</GridItem>
|
|
248
242
|
)}
|
|
249
|
-
|
|
250
243
|
<GridItem>
|
|
251
|
-
<Day2HostStaticIpConfigurations
|
|
244
|
+
<Day2HostStaticIpConfigurations
|
|
245
|
+
isDisabled={day2Cluster.platform?.type === 'oci'}
|
|
246
|
+
/>
|
|
252
247
|
</GridItem>
|
|
253
248
|
</Grid>
|
|
254
249
|
</Form>
|
|
@@ -1,13 +1,21 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
Flex,
|
|
4
|
+
FlexItem,
|
|
5
|
+
FormGroup,
|
|
6
|
+
TextContent,
|
|
7
|
+
TextVariants,
|
|
8
|
+
Text,
|
|
9
|
+
Tooltip,
|
|
10
|
+
} from '@patternfly/react-core';
|
|
3
11
|
import { useFormikContext } from 'formik';
|
|
4
12
|
import { HostsNetworkConfigurationType } from '../../../services';
|
|
5
|
-
import {
|
|
13
|
+
import { RadioField, getFieldId } from '../../../../common';
|
|
6
14
|
import { Day2ClusterDetailValues } from '../types';
|
|
7
15
|
|
|
8
16
|
const GROUP_NAME = 'hostsNetworkConfigurationType';
|
|
9
17
|
|
|
10
|
-
const Day2HostStaticIpConfigurations = () => {
|
|
18
|
+
const Day2HostStaticIpConfigurations = ({ isDisabled }: { isDisabled: boolean }) => {
|
|
11
19
|
const { setFieldValue } = useFormikContext<Day2ClusterDetailValues>();
|
|
12
20
|
|
|
13
21
|
const onChangeNetworkType = (event: React.ChangeEvent<HTMLInputElement>) => {
|
|
@@ -25,22 +33,29 @@ const Day2HostStaticIpConfigurations = () => {
|
|
|
25
33
|
isInline
|
|
26
34
|
onChange={onChangeNetworkType}
|
|
27
35
|
>
|
|
28
|
-
<
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
36
|
+
<Tooltip
|
|
37
|
+
hidden={!isDisabled}
|
|
38
|
+
content="This cluster is using the Oracle cloud platform which allows only DHCP for the hosts' network configuration"
|
|
39
|
+
>
|
|
40
|
+
<Flex>
|
|
41
|
+
<FlexItem key={HostsNetworkConfigurationType.DHCP}>
|
|
42
|
+
<RadioField
|
|
43
|
+
name={GROUP_NAME}
|
|
44
|
+
value={HostsNetworkConfigurationType.DHCP}
|
|
45
|
+
label="DHCP only"
|
|
46
|
+
isDisabled={isDisabled}
|
|
47
|
+
/>
|
|
48
|
+
</FlexItem>
|
|
49
|
+
<FlexItem key={HostsNetworkConfigurationType.STATIC}>
|
|
50
|
+
<RadioField
|
|
51
|
+
name={GROUP_NAME}
|
|
52
|
+
value={HostsNetworkConfigurationType.STATIC}
|
|
53
|
+
label="Static IP, bridges, and bonds"
|
|
54
|
+
isDisabled={isDisabled}
|
|
55
|
+
/>
|
|
56
|
+
</FlexItem>
|
|
57
|
+
</Flex>
|
|
58
|
+
</Tooltip>
|
|
44
59
|
</FormGroup>
|
|
45
60
|
);
|
|
46
61
|
};
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
LoadingState,
|
|
8
8
|
POLLING_INTERVAL,
|
|
9
9
|
} from '../../../common';
|
|
10
|
-
import {
|
|
10
|
+
import { usePullSecret } from '../../hooks';
|
|
11
11
|
import { Button, EmptyStateVariant } from '@patternfly/react-core';
|
|
12
12
|
import Day2ClusterService, { getApiVipDnsName } from '../../services/Day2ClusterService';
|
|
13
13
|
import { handleApiError } from '../../api';
|
|
@@ -19,7 +19,6 @@ import {
|
|
|
19
19
|
AddHostsApiError,
|
|
20
20
|
ReloadFailedError,
|
|
21
21
|
UnableToAddHostsError,
|
|
22
|
-
UnsupportedVersionError,
|
|
23
22
|
} from './HostsClusterDetailTabContentErrors';
|
|
24
23
|
import useInfraEnv from '../../hooks/useInfraEnv';
|
|
25
24
|
import { mapOcmArchToCpuArchitecture } from '../../services/CpuArchitectureService';
|
|
@@ -32,13 +31,7 @@ export const HostsClusterDetailTabContent = ({
|
|
|
32
31
|
const [error, setError] = React.useState<ReactNode>();
|
|
33
32
|
const [day2Cluster, setDay2Cluster] = useStateSafely<Cluster | null>(null);
|
|
34
33
|
const pullSecret = usePullSecret();
|
|
35
|
-
const {
|
|
36
|
-
getCpuArchitectures,
|
|
37
|
-
normalizeClusterVersion,
|
|
38
|
-
loading: areOpenshiftVersionsLoading,
|
|
39
|
-
} = useOpenshiftVersions();
|
|
40
34
|
|
|
41
|
-
const cpuArchitecturesByVersionImage = getCpuArchitectures(ocmCluster.openshift_version);
|
|
42
35
|
const handleClickTryAgainLink = React.useCallback(() => {
|
|
43
36
|
setError(undefined);
|
|
44
37
|
setDay2Cluster(null);
|
|
@@ -65,18 +58,7 @@ export const HostsClusterDetailTabContent = ({
|
|
|
65
58
|
setError(<UnableToAddHostsError onTryAgain={handleClickTryAgainLink} />);
|
|
66
59
|
}
|
|
67
60
|
|
|
68
|
-
if (!
|
|
69
|
-
const normalizedVersion = normalizeClusterVersion(ocmCluster.openshift_version);
|
|
70
|
-
if (!normalizedVersion) {
|
|
71
|
-
setError(
|
|
72
|
-
<UnsupportedVersionError
|
|
73
|
-
version={ocmCluster.openshift_version}
|
|
74
|
-
onTryAgain={handleClickTryAgainLink}
|
|
75
|
-
/>,
|
|
76
|
-
);
|
|
77
|
-
return;
|
|
78
|
-
}
|
|
79
|
-
|
|
61
|
+
if (!day2Cluster && pullSecret) {
|
|
80
62
|
const { apiVipDnsname, errorType } = getApiVipDnsName(ocmCluster);
|
|
81
63
|
if (errorType) {
|
|
82
64
|
const wrongUrlMessage =
|
|
@@ -102,11 +84,7 @@ export const HostsClusterDetailTabContent = ({
|
|
|
102
84
|
|
|
103
85
|
const loadDay2Cluster = async () => {
|
|
104
86
|
try {
|
|
105
|
-
const day2Cluster = await Day2ClusterService.fetchCluster(
|
|
106
|
-
ocmCluster,
|
|
107
|
-
pullSecret,
|
|
108
|
-
normalizedVersion,
|
|
109
|
-
);
|
|
87
|
+
const day2Cluster = await Day2ClusterService.fetchCluster(ocmCluster, pullSecret);
|
|
110
88
|
|
|
111
89
|
const aiCluster = Day2ClusterService.completeAiClusterWithOcmCluster(
|
|
112
90
|
day2Cluster,
|
|
@@ -130,17 +108,7 @@ export const HostsClusterDetailTabContent = ({
|
|
|
130
108
|
|
|
131
109
|
void loadDay2Cluster();
|
|
132
110
|
}
|
|
133
|
-
}, [
|
|
134
|
-
ocmCluster,
|
|
135
|
-
pullSecret,
|
|
136
|
-
day2Cluster,
|
|
137
|
-
setDay2Cluster,
|
|
138
|
-
isVisible,
|
|
139
|
-
normalizeClusterVersion,
|
|
140
|
-
handleClickTryAgainLink,
|
|
141
|
-
cpuArchitecturesByVersionImage,
|
|
142
|
-
areOpenshiftVersionsLoading,
|
|
143
|
-
]);
|
|
111
|
+
}, [ocmCluster, pullSecret, day2Cluster, setDay2Cluster, isVisible, handleClickTryAgainLink]);
|
|
144
112
|
|
|
145
113
|
const refreshCluster = React.useCallback(async () => {
|
|
146
114
|
if (!day2Cluster?.id) {
|