@openshift-assisted/ui-lib 2.50.1 → 2.51.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/@types/cim/components/Agent/BMHStatusInfo.d.ts.map +1 -1
- package/build/@types/cim/components/Agent/MinimalHWRequirements.d.ts.map +1 -1
- package/build/@types/cim/components/ClusterDeployment/use-networking-formik.d.ts +1 -1
- package/build/@types/cim/components/ClusterDeployment/wizardTransition.d.ts +1 -1
- package/build/@types/cim/components/ClusterDeployment/wizardTransition.d.ts.map +1 -1
- package/build/@types/cim/components/Hypershift/DetailsPage/ConditionsTable.d.ts.map +1 -1
- package/build/@types/cim/components/Hypershift/DetailsPage/HostedClusterProgress.d.ts.map +1 -1
- package/build/@types/cim/components/Hypershift/DetailsPage/NodePoolsProgress.d.ts.map +1 -1
- package/build/@types/cim/components/Hypershift/utils/status.d.ts +2 -2
- package/build/@types/cim/components/Hypershift/utils/status.d.ts.map +1 -1
- package/build/@types/cim/components/InfraEnv/EnvironmentDetails.d.ts.map +1 -1
- package/build/@types/cim/components/InfraEnv/InfraEnvHostsTabAgentsWarning.d.ts.map +1 -1
- package/build/@types/cim/components/helpers/agentStatus.d.ts +1 -1
- package/build/@types/cim/components/helpers/agentStatus.d.ts.map +1 -1
- package/build/@types/cim/components/modals/MassDeleteAgentModal.d.ts.map +1 -1
- package/build/@types/common/api/assisted-service/ClustersAPI.d.ts +4 -0
- package/build/@types/common/api/assisted-service/ClustersAPI.d.ts.map +1 -1
- package/build/@types/common/components/clusterConfiguration/DiscoveryTroubleshootingModal.d.ts.map +1 -1
- package/build/@types/common/components/clusterDetail/FinalizingProgress.d.ts +1 -1
- package/build/@types/common/components/clusterDetail/FinalizingProgress.d.ts.map +1 -1
- package/build/@types/common/components/clusterDetail/OperatorsProgressItem.d.ts.map +1 -1
- package/build/@types/common/components/clusterDetail/ProgressBarTexts.d.ts.map +1 -1
- package/build/@types/common/components/clusterWizard/ReviewValidations.d.ts.map +1 -1
- package/build/@types/common/components/clusterWizard/clusterDetailsValidation.d.ts.map +1 -1
- package/build/@types/common/components/hosts/HostPropertyValidationPopover.d.ts.map +1 -1
- package/build/@types/common/components/hosts/HostStatus.d.ts.map +1 -1
- package/build/@types/common/components/hosts/HostValidationGroups.d.ts.map +1 -1
- package/build/@types/common/components/hosts/Hostname.d.ts.map +1 -1
- package/build/@types/common/components/hosts/MassChangeHostnameModal.d.ts.map +1 -1
- package/build/@types/common/components/hosts/VMRebootConfigurationInfo.d.ts.map +1 -1
- package/build/@types/common/components/hosts/status.d.ts.map +1 -1
- package/build/@types/common/components/storage/DisksTable.d.ts.map +1 -1
- package/build/@types/common/components/storage/StorageUtils.d.ts +1 -1
- package/build/@types/common/components/storage/StorageUtils.d.ts.map +1 -1
- package/build/@types/common/components/ui/OpenShiftVersionModal.d.ts.map +1 -1
- package/build/@types/common/components/ui/WizardNavItem.d.ts.map +1 -1
- package/build/@types/common/components/ui/formik/PullSecretField.d.ts.map +1 -1
- package/build/@types/common/components/ui/formik/RemovableField.d.ts.map +1 -1
- package/build/@types/common/components/ui/formik/RichInputField.d.ts.map +1 -1
- package/build/@types/common/components/ui/index.d.ts +0 -1
- package/build/@types/common/components/ui/index.d.ts.map +1 -1
- package/build/@types/common/config/constants.d.ts +7 -0
- package/build/@types/common/config/constants.d.ts.map +1 -1
- package/build/@types/common/config/docs_links.d.ts +1 -0
- package/build/@types/common/config/docs_links.d.ts.map +1 -1
- package/build/@types/common/types/ui-settings.d.ts +0 -1
- package/build/@types/common/types/ui-settings.d.ts.map +1 -1
- package/build/@types/common/validationSchemas/addressValidation.d.ts.map +1 -1
- package/build/@types/common/validationSchemas/clusterDetailsValidation.d.ts +5 -0
- package/build/@types/common/validationSchemas/clusterDetailsValidation.d.ts.map +1 -1
- package/build/@types/ocm/components/Routes.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/DiscoveryImageTypeDropdown.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/OcmDiscoveryImageConfigForm.d.ts +2 -2
- package/build/@types/ocm/components/clusterConfiguration/OcmDiscoveryImageConfigForm.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/OcmOperatorProgressItem.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/OpenshiftVersionHelperText.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/manifestsConfiguration/CustomManifestsPage.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/NetworkTypeDropdown.d.ts +9 -0
- package/build/@types/ocm/components/clusterConfiguration/networkConfiguration/NetworkTypeDropdown.d.ts.map +1 -0
- package/build/@types/ocm/components/clusterConfiguration/platformIntegration/PlatformIntegrationNote.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/review/ReviewNetworkingTable.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/review/ReviewPreflightChecks.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/staticIp/commonValidationSchemas.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/staticIp/components/FormViewHosts/FormViewHostsFields.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/staticIp/components/FormViewNetworkWide/formViewNetworkWideValidationSchema.d.ts +22 -0
- package/build/@types/ocm/components/clusterConfiguration/staticIp/components/FormViewNetworkWide/formViewNetworkWideValidationSchema.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterDetail/ClusterProperties.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterDetail/HostInventoryExpandable.d.ts +1 -1
- package/build/@types/ocm/components/clusterDetail/HostInventoryExpandable.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterDetail/OpenShiftVersionDetail.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterDetail/ResetClusterModal.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 +2 -2
- package/build/@types/ocm/components/clusterWizard/ClusterDetailsForm.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterWizard/ClusterWizardContext.d.ts +3 -2
- 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/clusterWizard/ClusterWizardFooter.d.ts +2 -1
- package/build/@types/ocm/components/clusterWizard/ClusterWizardFooter.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterWizard/NewClusterWizard.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterWizard/constants.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterWizard/disconnected/BasicStep.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterWizard/disconnected/DisconnectedStaticIp.d.ts +4 -0
- package/build/@types/ocm/components/clusterWizard/disconnected/DisconnectedStaticIp.d.ts.map +1 -0
- package/build/@types/ocm/components/clusterWizard/disconnected/OptionalConfigurationsStep.d.ts +4 -0
- package/build/@types/ocm/components/clusterWizard/disconnected/OptionalConfigurationsStep.d.ts.map +1 -0
- package/build/@types/ocm/components/clusterWizard/disconnected/ReviewStep.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterWizard/index.d.ts +1 -0
- package/build/@types/ocm/components/clusterWizard/index.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterWizard/wizardTransition.d.ts +2 -2
- package/build/@types/ocm/components/clusterWizard/wizardTransition.d.ts.map +1 -1
- package/build/@types/ocm/components/clusters/ClusterStatus.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.map +1 -1
- package/build/@types/ocm/components/ui/InfoLinkWithModal.d.ts.map +1 -1
- package/build/@types/ocm/components/utils.d.ts +1 -0
- package/build/@types/ocm/components/utils.d.ts.map +1 -1
- package/build/@types/ocm/hooks/useUISettings.d.ts.map +1 -1
- package/build/@types/ocm/services/ClusterDetailsService.d.ts +1 -2
- package/build/@types/ocm/services/ClusterDetailsService.d.ts.map +1 -1
- package/build/@types/ocm/services/ClustersService.d.ts +4 -0
- package/build/@types/ocm/services/ClustersService.d.ts.map +1 -1
- package/build/@types/ocm/services/InfraEnvsService.d.ts.map +1 -1
- package/build/@types/ocm/services/types.d.ts +0 -1
- package/build/@types/ocm/services/types.d.ts.map +1 -1
- package/build/@types/ocm/store/slices/current-cluster/slice.d.ts +3 -3
- package/build/cjs/cim/components/Agent/BMHStatusInfo.js +4 -4
- package/build/cjs/cim/components/Agent/BMHStatusInfo.js.map +1 -1
- package/build/cjs/cim/components/Agent/MinimalHWRequirements.js +2 -2
- package/build/cjs/cim/components/Agent/MinimalHWRequirements.js.map +1 -1
- package/build/cjs/cim/components/Hypershift/DetailsPage/ConditionsTable.js +7 -6
- package/build/cjs/cim/components/Hypershift/DetailsPage/ConditionsTable.js.map +1 -1
- package/build/cjs/cim/components/Hypershift/DetailsPage/HostedClusterProgress.js +3 -2
- package/build/cjs/cim/components/Hypershift/DetailsPage/HostedClusterProgress.js.map +1 -1
- package/build/cjs/cim/components/Hypershift/DetailsPage/NodePoolsProgress.js +2 -2
- package/build/cjs/cim/components/Hypershift/DetailsPage/NodePoolsProgress.js.map +1 -1
- package/build/cjs/cim/components/Hypershift/utils/status.js +8 -7
- package/build/cjs/cim/components/Hypershift/utils/status.js.map +1 -1
- package/build/cjs/cim/components/InfraEnv/EnvironmentDetails.js +4 -4
- package/build/cjs/cim/components/InfraEnv/EnvironmentDetails.js.map +1 -1
- package/build/cjs/cim/components/InfraEnv/InfraEnvHostsTabAgentsWarning.js +3 -3
- package/build/cjs/cim/components/InfraEnv/InfraEnvHostsTabAgentsWarning.js.map +1 -1
- package/build/cjs/cim/components/helpers/agentStatus.js +3 -2
- package/build/cjs/cim/components/helpers/agentStatus.js.map +1 -1
- package/build/cjs/cim/components/modals/MassDeleteAgentModal.js +2 -2
- package/build/cjs/cim/components/modals/MassDeleteAgentModal.js.map +1 -1
- package/build/cjs/common/api/assisted-service/ClustersAPI.js +3 -0
- package/build/cjs/common/api/assisted-service/ClustersAPI.js.map +1 -1
- package/build/cjs/common/components/clusterConfiguration/DiscoveryTroubleshootingModal.js +2 -1
- package/build/cjs/common/components/clusterConfiguration/DiscoveryTroubleshootingModal.js.map +1 -1
- package/build/cjs/common/components/clusterDetail/FinalizingProgress.js +8 -7
- package/build/cjs/common/components/clusterDetail/FinalizingProgress.js.map +1 -1
- package/build/cjs/common/components/clusterDetail/OperatorsProgressItem.js +4 -4
- package/build/cjs/common/components/clusterDetail/OperatorsProgressItem.js.map +1 -1
- package/build/cjs/common/components/clusterDetail/ProgressBarTexts.js +5 -4
- package/build/cjs/common/components/clusterDetail/ProgressBarTexts.js.map +1 -1
- package/build/cjs/common/components/clusterWizard/ReviewValidations.js +7 -6
- package/build/cjs/common/components/clusterWizard/ReviewValidations.js.map +1 -1
- package/build/cjs/common/components/clusterWizard/clusterDetailsValidation.js +17 -8
- package/build/cjs/common/components/clusterWizard/clusterDetailsValidation.js.map +1 -1
- package/build/cjs/common/components/hosts/HostPropertyValidationPopover.js +6 -6
- package/build/cjs/common/components/hosts/HostPropertyValidationPopover.js.map +1 -1
- package/build/cjs/common/components/hosts/HostStatus.js +2 -1
- package/build/cjs/common/components/hosts/HostStatus.js.map +1 -1
- package/build/cjs/common/components/hosts/HostValidationGroups.js +6 -6
- package/build/cjs/common/components/hosts/HostValidationGroups.js.map +1 -1
- package/build/cjs/common/components/hosts/Hostname.js +4 -3
- package/build/cjs/common/components/hosts/Hostname.js.map +1 -1
- package/build/cjs/common/components/hosts/MassChangeHostnameModal.js +2 -2
- package/build/cjs/common/components/hosts/MassChangeHostnameModal.js.map +1 -1
- package/build/cjs/common/components/hosts/VMRebootConfigurationInfo.js +2 -1
- package/build/cjs/common/components/hosts/VMRebootConfigurationInfo.js.map +1 -1
- package/build/cjs/common/components/hosts/status.js +19 -13
- package/build/cjs/common/components/hosts/status.js.map +1 -1
- package/build/cjs/common/components/storage/DisksTable.js +4 -2
- package/build/cjs/common/components/storage/DisksTable.js.map +1 -1
- package/build/cjs/common/components/storage/StorageUtils.js +3 -2
- package/build/cjs/common/components/storage/StorageUtils.js.map +1 -1
- package/build/cjs/common/components/ui/OpenShiftVersionModal.js +3 -1
- package/build/cjs/common/components/ui/OpenShiftVersionModal.js.map +1 -1
- package/build/cjs/common/components/ui/WizardFooter.js +1 -1
- package/build/cjs/common/components/ui/WizardFooter.js.map +1 -1
- package/build/cjs/common/components/ui/WizardNavItem.js +2 -2
- package/build/cjs/common/components/ui/WizardNavItem.js.map +1 -1
- package/build/cjs/common/components/ui/formik/PullSecretField.js.map +1 -1
- package/build/cjs/common/components/ui/formik/RemovableField.js +3 -3
- package/build/cjs/common/components/ui/formik/RemovableField.js.map +1 -1
- package/build/cjs/common/components/ui/formik/RichInputField.js +4 -4
- package/build/cjs/common/components/ui/formik/RichInputField.js.map +1 -1
- package/build/cjs/common/components/ui/formik/TextAreaField.js +1 -1
- package/build/cjs/common/components/ui/formik/TextAreaField.js.map +1 -1
- package/build/cjs/common/components/ui/index.js +1 -3
- package/build/cjs/common/components/ui/index.js.map +1 -1
- package/build/cjs/common/config/constants.js +20 -2
- package/build/cjs/common/config/constants.js.map +1 -1
- package/build/cjs/common/config/docs_links.js +3 -2
- package/build/cjs/common/config/docs_links.js.map +1 -1
- package/build/cjs/common/validationSchemas/addressValidation.js +3 -1
- package/build/cjs/common/validationSchemas/addressValidation.js.map +1 -1
- package/build/cjs/common/validationSchemas/clusterDetailsValidation.js +31 -2
- package/build/cjs/common/validationSchemas/clusterDetailsValidation.js.map +1 -1
- package/build/cjs/ocm/components/Routes.js +2 -1
- package/build/cjs/ocm/components/Routes.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/DiscoveryImageTypeDropdown.js +1 -0
- package/build/cjs/ocm/components/clusterConfiguration/DiscoveryImageTypeDropdown.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.js +1 -7
- package/build/cjs/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/OcmDiscoveryImageConfigForm.js +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/OcmDiscoveryImageConfigForm.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/OcmOperatorProgressItem.js +4 -4
- package/build/cjs/ocm/components/clusterConfiguration/OcmOperatorProgressItem.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/OpenshiftVersionHelperText.js +5 -2
- package/build/cjs/ocm/components/clusterConfiguration/OpenshiftVersionHelperText.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/CustomManifestsPage.js +90 -6
- package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/CustomManifestsPage.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfiguration.js +3 -3
- package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfiguration.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/NetworkTypeDropdown.js +68 -0
- package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/NetworkTypeDropdown.js.map +1 -0
- package/build/cjs/ocm/components/clusterConfiguration/platformIntegration/PlatformIntegrationNote.js +5 -3
- package/build/cjs/ocm/components/clusterConfiguration/platformIntegration/PlatformIntegrationNote.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/review/ReviewNetworkingTable.js +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/review/ReviewNetworkingTable.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/review/ReviewPreflightChecks.js +11 -7
- package/build/cjs/ocm/components/clusterConfiguration/review/ReviewPreflightChecks.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/staticIp/commonValidationSchemas.js +5 -2
- package/build/cjs/ocm/components/clusterConfiguration/staticIp/commonValidationSchemas.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/staticIp/components/FormViewHosts/FormViewHostsFields.js +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/staticIp/components/FormViewHosts/FormViewHostsFields.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/staticIp/components/FormViewNetworkWide/FormViewNetworkWide.js +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/staticIp/components/FormViewNetworkWide/FormViewNetworkWide.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/staticIp/components/FormViewNetworkWide/formViewNetworkWideValidationSchema.js +31 -3
- package/build/cjs/ocm/components/clusterConfiguration/staticIp/components/FormViewNetworkWide/formViewNetworkWideValidationSchema.js.map +1 -1
- package/build/cjs/ocm/components/clusterDetail/ClusterProperties.js +1 -5
- package/build/cjs/ocm/components/clusterDetail/ClusterProperties.js.map +1 -1
- package/build/cjs/ocm/components/clusterDetail/HostInventoryExpandable.js +5 -4
- package/build/cjs/ocm/components/clusterDetail/HostInventoryExpandable.js.map +1 -1
- package/build/cjs/ocm/components/clusterDetail/OpenShiftVersionDetail.js +4 -3
- package/build/cjs/ocm/components/clusterDetail/OpenShiftVersionDetail.js.map +1 -1
- package/build/cjs/ocm/components/clusterDetail/ResetClusterModal.js +4 -2
- package/build/cjs/ocm/components/clusterDetail/ResetClusterModal.js.map +1 -1
- package/build/cjs/ocm/components/clusterWizard/ClusterDetails.js +18 -10
- package/build/cjs/ocm/components/clusterWizard/ClusterDetails.js.map +1 -1
- package/build/cjs/ocm/components/clusterWizard/ClusterDetailsForm.js +4 -5
- 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 +70 -28
- package/build/cjs/ocm/components/clusterWizard/ClusterWizardContextProvider.js.map +1 -1
- package/build/cjs/ocm/components/clusterWizard/ClusterWizardFooter.js +21 -6
- package/build/cjs/ocm/components/clusterWizard/ClusterWizardFooter.js.map +1 -1
- package/build/cjs/ocm/components/clusterWizard/NewClusterWizard.js +11 -1
- package/build/cjs/ocm/components/clusterWizard/NewClusterWizard.js.map +1 -1
- package/build/cjs/ocm/components/clusterWizard/constants.js +2 -0
- package/build/cjs/ocm/components/clusterWizard/constants.js.map +1 -1
- package/build/cjs/ocm/components/clusterWizard/disconnected/BasicStep.js +96 -18
- package/build/cjs/ocm/components/clusterWizard/disconnected/BasicStep.js.map +1 -1
- package/build/cjs/ocm/components/clusterWizard/disconnected/DisconnectedStaticIp.js +48 -0
- package/build/cjs/ocm/components/clusterWizard/disconnected/DisconnectedStaticIp.js.map +1 -0
- package/build/cjs/ocm/components/clusterWizard/disconnected/OptionalConfigurationsStep.js +182 -0
- package/build/cjs/ocm/components/clusterWizard/disconnected/OptionalConfigurationsStep.js.map +1 -0
- package/build/cjs/ocm/components/clusterWizard/disconnected/ReviewStep.js +11 -7
- package/build/cjs/ocm/components/clusterWizard/disconnected/ReviewStep.js.map +1 -1
- package/build/cjs/ocm/components/clusterWizard/index.js +3 -1
- package/build/cjs/ocm/components/clusterWizard/index.js.map +1 -1
- package/build/cjs/ocm/components/clusterWizard/wizardTransition.js +12 -1
- package/build/cjs/ocm/components/clusterWizard/wizardTransition.js.map +1 -1
- package/build/cjs/ocm/components/clusters/ClusterStatus.js +13 -7
- package/build/cjs/ocm/components/clusters/ClusterStatus.js.map +1 -1
- package/build/cjs/ocm/components/featureSupportLevels/ReviewClusterFeatureSupportLevels.js +7 -6
- package/build/cjs/ocm/components/featureSupportLevels/ReviewClusterFeatureSupportLevels.js.map +1 -1
- package/build/cjs/ocm/components/featureSupportLevels/featureStateUtils.js +6 -0
- package/build/cjs/ocm/components/featureSupportLevels/featureStateUtils.js.map +1 -1
- package/build/cjs/ocm/components/ui/InfoLinkWithModal.js +2 -2
- package/build/cjs/ocm/components/ui/InfoLinkWithModal.js.map +1 -1
- package/build/cjs/ocm/components/utils.js +4 -1
- package/build/cjs/ocm/components/utils.js.map +1 -1
- package/build/cjs/ocm/hooks/useInfraEnvId.js +2 -2
- package/build/cjs/ocm/hooks/useInfraEnvId.js.map +1 -1
- package/build/cjs/ocm/hooks/useUISettings.js +0 -1
- package/build/cjs/ocm/hooks/useUISettings.js.map +1 -1
- package/build/cjs/ocm/services/ClusterDetailsService.js +2 -2
- package/build/cjs/ocm/services/ClusterDetailsService.js.map +1 -1
- package/build/cjs/ocm/services/ClustersService.js +6 -0
- package/build/cjs/ocm/services/ClustersService.js.map +1 -1
- package/build/cjs/ocm/services/InfraEnvsService.js +4 -1
- package/build/cjs/ocm/services/InfraEnvsService.js.map +1 -1
- package/lib/cim/components/Agent/BMHStatusInfo.tsx +12 -4
- package/lib/cim/components/Agent/MinimalHWRequirements.tsx +4 -2
- package/lib/cim/components/Hypershift/DetailsPage/ConditionsTable.tsx +13 -7
- package/lib/cim/components/Hypershift/DetailsPage/HostedClusterProgress.tsx +8 -4
- package/lib/cim/components/Hypershift/DetailsPage/NodePoolsProgress.tsx +6 -2
- package/lib/cim/components/Hypershift/utils/status.tsx +20 -9
- package/lib/cim/components/InfraEnv/EnvironmentDetails.tsx +11 -4
- package/lib/cim/components/InfraEnv/InfraEnvHostsTabAgentsWarning.tsx +4 -6
- package/lib/cim/components/helpers/agentStatus.tsx +7 -3
- package/lib/cim/components/modals/MassDeleteAgentModal.tsx +12 -5
- package/lib/common/api/assisted-service/ClustersAPI.ts +6 -0
- package/lib/common/components/clusterConfiguration/DiscoveryTroubleshootingModal.tsx +5 -2
- package/lib/common/components/clusterDetail/FinalizingProgress.tsx +21 -10
- package/lib/common/components/clusterDetail/OperatorsProgressItem.tsx +11 -5
- package/lib/common/components/clusterDetail/ProgressBarTexts.tsx +17 -5
- package/lib/common/components/clusterWizard/ReviewValidations.tsx +15 -6
- package/lib/common/components/clusterWizard/clusterDetailsValidation.ts +19 -9
- package/lib/common/components/hosts/HostPropertyValidationPopover.tsx +9 -5
- package/lib/common/components/hosts/HostStatus.tsx +14 -3
- package/lib/common/components/hosts/HostValidationGroups.tsx +9 -5
- package/lib/common/components/hosts/Hostname.tsx +7 -4
- package/lib/common/components/hosts/MassChangeHostnameModal.tsx +6 -2
- package/lib/common/components/hosts/VMRebootConfigurationInfo.tsx +12 -3
- package/lib/common/components/hosts/status.tsx +46 -13
- package/lib/common/components/storage/DisksTable.tsx +15 -4
- package/lib/common/components/storage/StorageUtils.tsx +6 -4
- package/lib/common/components/ui/OpenShiftVersionModal.tsx +3 -1
- package/lib/common/components/ui/WizardFooter.tsx +1 -1
- package/lib/common/components/ui/WizardNavItem.tsx +4 -7
- package/lib/common/components/ui/formik/PullSecretField.tsx +1 -0
- package/lib/common/components/ui/formik/RemovableField.tsx +8 -4
- package/lib/common/components/ui/formik/RichInputField.tsx +10 -6
- package/lib/common/components/ui/formik/TextAreaField.tsx +1 -1
- package/lib/common/components/ui/index.ts +0 -2
- package/lib/common/config/constants.ts +19 -0
- package/lib/common/config/docs_links.ts +2 -0
- package/lib/common/types/ui-settings.ts +0 -1
- package/lib/common/validationSchemas/addressValidation.tsx +4 -1
- package/lib/common/validationSchemas/clusterDetailsValidation.tsx +47 -15
- package/lib/ocm/components/Routes.tsx +3 -1
- package/lib/ocm/components/clusterConfiguration/DiscoveryImageTypeDropdown.tsx +1 -0
- package/lib/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.tsx +1 -8
- package/lib/ocm/components/clusterConfiguration/OcmDiscoveryImageConfigForm.tsx +2 -3
- package/lib/ocm/components/clusterConfiguration/OcmOperatorProgressItem.tsx +11 -5
- package/lib/ocm/components/clusterConfiguration/OpenshiftVersionHelperText.tsx +8 -7
- package/lib/ocm/components/clusterConfiguration/manifestsConfiguration/CustomManifestsPage.tsx +155 -20
- package/lib/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfiguration.tsx +8 -6
- package/lib/ocm/components/clusterConfiguration/networkConfiguration/NetworkTypeDropdown.tsx +157 -0
- package/lib/ocm/components/clusterConfiguration/platformIntegration/PlatformIntegrationNote.tsx +6 -3
- package/lib/ocm/components/clusterConfiguration/review/ReviewNetworkingTable.tsx +3 -7
- package/lib/ocm/components/clusterConfiguration/review/ReviewPreflightChecks.tsx +28 -15
- package/lib/ocm/components/clusterConfiguration/staticIp/commonValidationSchemas.tsx +8 -2
- package/lib/ocm/components/clusterConfiguration/staticIp/components/FormViewHosts/FormViewHostsFields.tsx +1 -0
- package/lib/ocm/components/clusterConfiguration/staticIp/components/FormViewNetworkWide/FormViewNetworkWide.tsx +2 -2
- package/lib/ocm/components/clusterConfiguration/staticIp/components/FormViewNetworkWide/formViewNetworkWideValidationSchema.tsx +63 -24
- package/lib/ocm/components/clusterDetail/ClusterProperties.tsx +2 -6
- package/lib/ocm/components/clusterDetail/HostInventoryExpandable.tsx +11 -5
- package/lib/ocm/components/clusterDetail/OpenShiftVersionDetail.tsx +8 -5
- package/lib/ocm/components/clusterDetail/ResetClusterModal.tsx +6 -3
- package/lib/ocm/components/clusterWizard/ClusterDetails.tsx +19 -14
- package/lib/ocm/components/clusterWizard/ClusterDetailsForm.tsx +5 -7
- package/lib/ocm/components/clusterWizard/ClusterWizardContext.tsx +3 -2
- package/lib/ocm/components/clusterWizard/ClusterWizardContextProvider.tsx +101 -59
- package/lib/ocm/components/clusterWizard/ClusterWizardFooter.tsx +26 -5
- package/lib/ocm/components/clusterWizard/NewClusterWizard.tsx +14 -3
- package/lib/ocm/components/clusterWizard/constants.ts +2 -0
- package/lib/ocm/components/clusterWizard/disconnected/BasicStep.tsx +138 -37
- package/lib/ocm/components/clusterWizard/disconnected/DisconnectedStaticIp.tsx +78 -0
- package/lib/ocm/components/clusterWizard/disconnected/OptionalConfigurationsStep.tsx +364 -0
- package/lib/ocm/components/clusterWizard/disconnected/ReviewStep.tsx +19 -9
- package/lib/ocm/components/clusterWizard/index.ts +1 -0
- package/lib/ocm/components/clusterWizard/wizardTransition.ts +14 -2
- package/lib/ocm/components/clusters/ClusterStatus.tsx +30 -8
- package/lib/ocm/components/featureSupportLevels/ReviewClusterFeatureSupportLevels.tsx +12 -8
- package/lib/ocm/components/featureSupportLevels/featureStateUtils.ts +6 -0
- package/lib/ocm/components/ui/InfoLinkWithModal.tsx +4 -2
- package/lib/ocm/components/utils.ts +4 -0
- package/lib/ocm/hooks/useInfraEnvId.ts +2 -2
- package/lib/ocm/hooks/useUISettings.ts +0 -1
- package/lib/ocm/services/ClusterDetailsService.ts +0 -3
- package/lib/ocm/services/ClustersService.ts +6 -0
- package/lib/ocm/services/InfraEnvsService.ts +4 -1
- package/lib/ocm/services/types.ts +0 -1
- package/package.json +4 -4
- package/build/@types/common/components/ui/UiIcon.d.ts +0 -11
- package/build/@types/common/components/ui/UiIcon.d.ts.map +0 -1
- package/build/@types/ocm/components/clusterConfiguration/CustomManifestCheckbox.d.ts +0 -8
- package/build/@types/ocm/components/clusterConfiguration/CustomManifestCheckbox.d.ts.map +0 -1
- package/build/cjs/common/components/ui/UiIcon.js +0 -11
- package/build/cjs/common/components/ui/UiIcon.js.map +0 -1
- package/build/cjs/ocm/components/clusterConfiguration/CustomManifestCheckbox.js +0 -58
- package/build/cjs/ocm/components/clusterConfiguration/CustomManifestCheckbox.js.map +0 -1
- package/lib/common/components/ui/UiIcon.tsx +0 -21
- package/lib/ocm/components/clusterConfiguration/CustomManifestCheckbox.tsx +0 -114
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { Button, ButtonVariant, Tooltip, TooltipProps } from '@patternfly/react-core';
|
|
2
|
+
import { Button, ButtonVariant, Icon, Tooltip, TooltipProps } from '@patternfly/react-core';
|
|
3
3
|
import { MinusCircleIcon } from '@patternfly/react-icons/dist/js/icons/minus-circle-icon';
|
|
4
|
-
import './RemovableField.css';
|
|
5
4
|
import classnames from 'classnames';
|
|
6
|
-
|
|
5
|
+
|
|
6
|
+
import './RemovableField.css';
|
|
7
7
|
|
|
8
8
|
interface RemovableFieldProps {
|
|
9
9
|
onRemove: VoidFunction;
|
|
@@ -30,7 +30,11 @@ const RemovableField: React.FC<RemovableFieldProps & Omit<TooltipProps, 'content
|
|
|
30
30
|
distance={0}
|
|
31
31
|
content={
|
|
32
32
|
<Button
|
|
33
|
-
icon={
|
|
33
|
+
icon={
|
|
34
|
+
<Icon size="sm">
|
|
35
|
+
<MinusCircleIcon />
|
|
36
|
+
</Icon>
|
|
37
|
+
}
|
|
34
38
|
variant={ButtonVariant.plain}
|
|
35
39
|
onClick={onRemove}
|
|
36
40
|
data-testid={removeButtonDataTestId}
|
|
@@ -15,15 +15,13 @@ import {
|
|
|
15
15
|
FormHelperText,
|
|
16
16
|
HelperText,
|
|
17
17
|
ButtonVariant,
|
|
18
|
+
Icon,
|
|
18
19
|
} from '@patternfly/react-core';
|
|
19
20
|
import { CheckCircleIcon } from '@patternfly/react-icons/dist/js/icons/check-circle-icon';
|
|
20
21
|
import { CheckIcon } from '@patternfly/react-icons/dist/js/icons/check-icon';
|
|
21
22
|
import { ExclamationCircleIcon } from '@patternfly/react-icons/dist/js/icons/exclamation-circle-icon';
|
|
22
23
|
import { InfoCircleIcon } from '@patternfly/react-icons/dist/js/icons/info-circle-icon';
|
|
23
24
|
import { TimesIcon } from '@patternfly/react-icons/dist/js/icons/times-icon';
|
|
24
|
-
import { t_global_color_status_success_default as okColor } from '@patternfly/react-tokens/dist/js/t_global_color_status_success_default';
|
|
25
|
-
import { t_global_icon_color_status_danger_default as dangerColor } from '@patternfly/react-tokens/dist/js/t_global_icon_color_status_danger_default';
|
|
26
|
-
import { t_global_icon_color_status_info_default as blueInfoColor } from '@patternfly/react-tokens/dist/js/t_global_icon_color_status_info_default';
|
|
27
25
|
|
|
28
26
|
import { InputFieldProps as BaseInputProps } from './types';
|
|
29
27
|
import { getFieldId } from './utils';
|
|
@@ -164,11 +162,17 @@ const RichInputField: React.FC<RichInputFieldPropsProps> = React.forwardRef(
|
|
|
164
162
|
<Button
|
|
165
163
|
icon={
|
|
166
164
|
!isValid ? (
|
|
167
|
-
<
|
|
165
|
+
<Icon status="danger">
|
|
166
|
+
<ExclamationCircleIcon />
|
|
167
|
+
</Icon>
|
|
168
168
|
) : value ? (
|
|
169
|
-
<
|
|
169
|
+
<Icon status="success">
|
|
170
|
+
<CheckCircleIcon />
|
|
171
|
+
</Icon>
|
|
170
172
|
) : (
|
|
171
|
-
<
|
|
173
|
+
<Icon status="info">
|
|
174
|
+
<InfoCircleIcon />
|
|
175
|
+
</Icon>
|
|
172
176
|
)
|
|
173
177
|
}
|
|
174
178
|
variant={ButtonVariant.control}
|
|
@@ -72,7 +72,7 @@ const TextAreaField: React.FC<React.PropsWithChildren<TextAreaFieldProps>> = ({
|
|
|
72
72
|
icon={<ExclamationCircleIcon />}
|
|
73
73
|
variant={'error'}
|
|
74
74
|
id={`${fieldId}-helper-error`}
|
|
75
|
-
data-testid={`input-textarea-${fieldId}-helper-text`}
|
|
75
|
+
data-testid={`input-textarea-${fieldId}-helper-text-error`}
|
|
76
76
|
>
|
|
77
77
|
{errorMessage}
|
|
78
78
|
</HelperTextItem>
|
|
@@ -28,5 +28,3 @@ export { default as ClusterEventsToolbar } from './ClusterEventsToolbar';
|
|
|
28
28
|
export { default as ModalProgress } from './ModalProgress';
|
|
29
29
|
export { default as ConfirmationModal } from './ConfirmationModal';
|
|
30
30
|
export { default as NoPermissionsError } from './NoPermissionsError';
|
|
31
|
-
|
|
32
|
-
export { default as UiIcon } from './UiIcon';
|
|
@@ -53,6 +53,7 @@ export const clusterStatusLabels = (t: TFunction): { [key in Cluster['status']]:
|
|
|
53
53
|
error: t('ai:Error'),
|
|
54
54
|
installed: t('ai:Installed'),
|
|
55
55
|
'adding-hosts': t('ai:Adding hosts'),
|
|
56
|
+
unmonitored: t('ai:Unmonitored'),
|
|
56
57
|
});
|
|
57
58
|
|
|
58
59
|
export const clusterFieldLabels = (t: TFunction): { [key in string]: string } => ({
|
|
@@ -73,6 +74,7 @@ export const clusterFieldLabels = (t: TFunction): { [key in string]: string } =>
|
|
|
73
74
|
machineNetworks: t('ai:Machine networks'),
|
|
74
75
|
clusterNetworks: t('ai:Cluster networks'),
|
|
75
76
|
serviceNetworks: t('ai:Service networks'),
|
|
77
|
+
rendezvousIp: t('ai:Rendezvous IP'),
|
|
76
78
|
});
|
|
77
79
|
|
|
78
80
|
export const hostValidationGroupLabels = (
|
|
@@ -333,6 +335,19 @@ export const NO_SUBNET_SET = 'NO_SUBNET_SET';
|
|
|
333
335
|
|
|
334
336
|
export const NETWORK_TYPE_OVN = 'OVNKubernetes';
|
|
335
337
|
export const NETWORK_TYPE_SDN = 'OpenShiftSDN';
|
|
338
|
+
export const NETWORK_TYPE_CISCO_ACI = 'CiscoACI';
|
|
339
|
+
export const NETWORK_TYPE_CILIUM = 'Cilium';
|
|
340
|
+
export const NETWORK_TYPE_CALICO = 'Calico';
|
|
341
|
+
export const NETWORK_TYPE_NONE = 'None';
|
|
342
|
+
|
|
343
|
+
export const NETWORK_TYPE_LABELS: Record<string, string> = {
|
|
344
|
+
[NETWORK_TYPE_OVN]: 'Open Virtual Networking (OVN)',
|
|
345
|
+
[NETWORK_TYPE_SDN]: 'Software-Defined Networking (SDN)',
|
|
346
|
+
[NETWORK_TYPE_CISCO_ACI]: 'Cisco ACI',
|
|
347
|
+
[NETWORK_TYPE_CILIUM]: 'Isovalent Cilium',
|
|
348
|
+
[NETWORK_TYPE_CALICO]: 'Tigera Calico',
|
|
349
|
+
[NETWORK_TYPE_NONE]: 'None (Custom CNI)',
|
|
350
|
+
};
|
|
336
351
|
|
|
337
352
|
export const IPV4_STACK = 'singleStack';
|
|
338
353
|
export const DUAL_STACK = 'dualStack';
|
|
@@ -379,6 +394,7 @@ export const OPERATOR_NAME_METALLB = 'metallb';
|
|
|
379
394
|
|
|
380
395
|
export const singleClusterOperators = [
|
|
381
396
|
OPERATOR_NAME_CNV,
|
|
397
|
+
OPERATOR_NAME_LSO,
|
|
382
398
|
OPERATOR_NAME_MTV,
|
|
383
399
|
OPERATOR_NAME_NMSTATE,
|
|
384
400
|
OPERATOR_NAME_NODE_HEALTHCHECK,
|
|
@@ -388,6 +404,9 @@ export const singleClusterOperators = [
|
|
|
388
404
|
OPERATOR_NAME_CLUSTER_OBSERVABILITY,
|
|
389
405
|
OPERATOR_NAME_LOKI,
|
|
390
406
|
OPERATOR_NAME_OPENSHIFT_LOGGING,
|
|
407
|
+
OPERATOR_NAME_NUMA_RESOURCES,
|
|
408
|
+
OPERATOR_NAME_OADP,
|
|
409
|
+
OPERATOR_NAME_METALLB,
|
|
391
410
|
];
|
|
392
411
|
|
|
393
412
|
export const singleClusterBundles = ['virtualization'];
|
|
@@ -54,6 +54,8 @@ export const getOpenShiftNetworkingDocsLink = (ocpVersion?: string) => {
|
|
|
54
54
|
return `https://docs.redhat.com/en/documentation/openshift_container_platform/${validOcpVersion}/html/installing_on_bare_metal/${variant}#installation-network-user-infra_installing-bare-metal`;
|
|
55
55
|
};
|
|
56
56
|
|
|
57
|
+
export const RED_HAT_CNI_SUPPORT_MATRIX_LINK = 'https://access.redhat.com/articles/5436171';
|
|
58
|
+
|
|
57
59
|
export const SSH_GENERATION_DOC_LINK = 'https://www.redhat.com/sysadmin/configure-ssh-keygen';
|
|
58
60
|
|
|
59
61
|
//Hosts status
|
|
@@ -29,7 +29,10 @@ export const ipNoSuffixValidationSchema = (t: TFunction) =>
|
|
|
29
29
|
|
|
30
30
|
export const macAddressValidationSchema = (t: TFunction) =>
|
|
31
31
|
Yup.string().matches(MAC_REGEX, {
|
|
32
|
-
message: (
|
|
32
|
+
message: (params: { value?: unknown }) =>
|
|
33
|
+
t('ai:Value "{{value}}" is not valid MAC address.', {
|
|
34
|
+
value: params?.value !== undefined ? String(params.value) : '',
|
|
35
|
+
}),
|
|
33
36
|
excludeEmptyString: true,
|
|
34
37
|
});
|
|
35
38
|
|
|
@@ -123,23 +123,55 @@ export const dnsNameValidationSchema = (t: TFunction) =>
|
|
|
123
123
|
excludeEmptyString: true,
|
|
124
124
|
});
|
|
125
125
|
|
|
126
|
+
const MAX_DNS_NAME_LENGTH = 253;
|
|
127
|
+
/** Only letters, digits, hyphen, and dot (valid DNS/hostname characters). */
|
|
128
|
+
const DNS_CHARS_REGEX = /^[a-z0-9.-]+$/i;
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Validates the full cluster address [clusterName].[baseDomain] as a single DNS/hostname
|
|
132
|
+
* (e.g. "doma.ca" is valid even though "ca" alone might not pass standalone base-domain rules).
|
|
133
|
+
*/
|
|
134
|
+
export const isValidFullClusterAddress = (full: string): boolean => {
|
|
135
|
+
if (!full || full === '.' || /\s/.test(full)) {
|
|
136
|
+
return false;
|
|
137
|
+
}
|
|
138
|
+
if (full.length > MAX_DNS_NAME_LENGTH) {
|
|
139
|
+
return false;
|
|
140
|
+
}
|
|
141
|
+
if (!DNS_CHARS_REGEX.test(full)) {
|
|
142
|
+
return false;
|
|
143
|
+
}
|
|
144
|
+
const labels = full.split('.');
|
|
145
|
+
if (labels.some((label) => label.length === 0 || label.length > 63)) {
|
|
146
|
+
return false;
|
|
147
|
+
}
|
|
148
|
+
return HOST_NAME_REGEX.test(full);
|
|
149
|
+
};
|
|
150
|
+
|
|
126
151
|
export const baseDomainValidationSchema = (t: TFunction) =>
|
|
127
|
-
Yup.string()
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
152
|
+
Yup.string()
|
|
153
|
+
.test(
|
|
154
|
+
'dns-name-label-length',
|
|
155
|
+
t(
|
|
156
|
+
'ai:Every single host component in the base domain name cannot contain more than 63 characters and must not contain spaces.',
|
|
157
|
+
),
|
|
158
|
+
(value?: string) => {
|
|
159
|
+
// Check if the value contains any spaces
|
|
160
|
+
if (/\s/.test(value as string)) {
|
|
161
|
+
return false; // Value contains spaces, validation fails
|
|
162
|
+
}
|
|
137
163
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
164
|
+
// Check the label lengths
|
|
165
|
+
const labels = (value || '').split('.');
|
|
166
|
+
return labels.every((label: string) => label.length <= 63);
|
|
167
|
+
},
|
|
168
|
+
)
|
|
169
|
+
.matches(NAME_CHARS_REGEX, {
|
|
170
|
+
message: t(
|
|
171
|
+
'ai:Base domain can only contain letters, digits, hyphens, and dots. Example: example.com',
|
|
172
|
+
),
|
|
173
|
+
excludeEmptyString: true,
|
|
174
|
+
});
|
|
143
175
|
|
|
144
176
|
export const locationValidationSchema = (t: TFunction) =>
|
|
145
177
|
Yup.string()
|
|
@@ -34,7 +34,9 @@ export const UILibRoutes = ({
|
|
|
34
34
|
<>
|
|
35
35
|
<Routes>
|
|
36
36
|
<Route path="assisted-installer/clusters" element={<Outlet />}>
|
|
37
|
-
<Route path="~new" element={<NewClusterPage />}
|
|
37
|
+
<Route path="~new" element={<NewClusterPage />}>
|
|
38
|
+
<Route path=":clusterId" element={<NewClusterPage />} />
|
|
39
|
+
</Route>
|
|
38
40
|
<Route path=":clusterId" element={<ClusterPage />} />
|
|
39
41
|
<Route index element={<Clusters />} />
|
|
40
42
|
</Route>
|
|
@@ -20,6 +20,7 @@ export const discoveryImageTypes: Record<DiscoveryImageType, string> = {
|
|
|
20
20
|
'minimal-iso': 'Minimal image file - Download an ISO that fetches content on boot',
|
|
21
21
|
'full-iso': 'Full image file - Download a self-contained ISO',
|
|
22
22
|
'discovery-image-ipxe': 'iPXE - Provision from your network server',
|
|
23
|
+
'disconnected-iso': 'Disconnected ISO - Provision from a local file',
|
|
23
24
|
};
|
|
24
25
|
|
|
25
26
|
type DiscoveryImageTypeDropdownProps = {
|
|
@@ -21,7 +21,6 @@ import { useTranslation } from '../../../common/hooks/use-translation-wrapper';
|
|
|
21
21
|
import { OcmRichInputField } from '../ui/OcmFormFields';
|
|
22
22
|
import OcmOpenShiftVersion from './OcmOpenShiftVersion';
|
|
23
23
|
import OcmOpenShiftVersionSelect from './OcmOpenShiftVersionSelect';
|
|
24
|
-
import CustomManifestCheckbox from './CustomManifestCheckbox';
|
|
25
24
|
import CpuArchitectureDropdown from './CpuArchitectureDropdown';
|
|
26
25
|
import { OcmBaseDomainField } from './OcmBaseDomainField';
|
|
27
26
|
import useSupportLevelsAPI from '../../hooks/useSupportLevelsAPI';
|
|
@@ -35,7 +34,6 @@ import {
|
|
|
35
34
|
ManagedDomain,
|
|
36
35
|
PlatformType,
|
|
37
36
|
} from '@openshift-assisted/types/assisted-installer-service';
|
|
38
|
-
import { useClusterWizardContext } from '../clusterWizard/ClusterWizardContext';
|
|
39
37
|
import { useFeature } from '../../hooks/use-feature';
|
|
40
38
|
import ControlPlaneNodesDropdown, {
|
|
41
39
|
ControlPlaneNodesLabel,
|
|
@@ -68,7 +66,6 @@ export const OcmClusterDetailsFormFields = ({
|
|
|
68
66
|
const { openshiftVersion, platform } = values;
|
|
69
67
|
const { getCpuArchitectures } = useOpenShiftVersionsContext();
|
|
70
68
|
const cpuArchitecturesByVersionImage = getCpuArchitectures(openshiftVersion);
|
|
71
|
-
const clusterWizardContext = useClusterWizardContext();
|
|
72
69
|
const featureSupportLevelData = useSupportLevelsAPI(
|
|
73
70
|
'features',
|
|
74
71
|
values.openshiftVersion,
|
|
@@ -91,12 +88,10 @@ export const OcmClusterDetailsFormFields = ({
|
|
|
91
88
|
(selectedPlatform: PlatformType) => {
|
|
92
89
|
const isOracleSelected = selectedPlatform === 'external';
|
|
93
90
|
if (isOracleSelected) {
|
|
94
|
-
setFieldValue('addCustomManifest', isOracleSelected, false);
|
|
95
|
-
clusterWizardContext.setCustomManifestsStep(isOracleSelected);
|
|
96
91
|
setFieldValue('hostsNetworkConfigurationType', HostsNetworkConfigurationType.DHCP);
|
|
97
92
|
}
|
|
98
93
|
},
|
|
99
|
-
[
|
|
94
|
+
[setFieldValue],
|
|
100
95
|
);
|
|
101
96
|
|
|
102
97
|
React.useEffect(() => {
|
|
@@ -213,8 +208,6 @@ export const OcmClusterDetailsFormFields = ({
|
|
|
213
208
|
) : (
|
|
214
209
|
<ControlPlaneNodesDropdown featureSupportLevelData={featureSupportLevelData} />
|
|
215
210
|
)}
|
|
216
|
-
<CustomManifestCheckbox clusterId={cluster?.id || ''} isDisabled={platform === 'external'} />
|
|
217
|
-
|
|
218
211
|
{!isSingleClusterFeatureEnabled && (
|
|
219
212
|
<HostsNetworkConfigurationControlGroup
|
|
220
213
|
clusterExists={clusterExists}
|
|
@@ -16,7 +16,6 @@ import { Formik, FormikHelpers } from 'formik';
|
|
|
16
16
|
import { TFunction } from 'i18next';
|
|
17
17
|
import {
|
|
18
18
|
HostStaticNetworkConfig,
|
|
19
|
-
ImageType,
|
|
20
19
|
InfraEnv,
|
|
21
20
|
Proxy,
|
|
22
21
|
} from '@openshift-assisted/types/assisted-installer-service';
|
|
@@ -72,7 +71,7 @@ type OcmDiscoveryImageConfigFormProps = Proxy & {
|
|
|
72
71
|
formikActions: FormikHelpers<OcmDiscoveryImageFormValues>,
|
|
73
72
|
) => Promise<void>;
|
|
74
73
|
sshPublicKey?: string;
|
|
75
|
-
imageType?:
|
|
74
|
+
imageType?: DiscoveryImageType;
|
|
76
75
|
isIpxeSelected?: boolean;
|
|
77
76
|
enableCertificate?: boolean;
|
|
78
77
|
trustBundle?: InfraEnv['additionalTrustBundle'];
|
|
@@ -106,7 +105,7 @@ export const OcmDiscoveryImageConfigForm = ({
|
|
|
106
105
|
httpsProxy: httpsProxy || '',
|
|
107
106
|
noProxy: noProxy || '',
|
|
108
107
|
enableProxy: !!(httpProxy || httpsProxy || noProxy),
|
|
109
|
-
imageType:
|
|
108
|
+
imageType: imageType,
|
|
110
109
|
enableCertificate: enableCertificate || false,
|
|
111
110
|
trustBundle: trustBundle || '',
|
|
112
111
|
};
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { Button, ButtonVariant, List, ListItem, Popover } from '@patternfly/react-core';
|
|
2
|
+
import { Button, ButtonVariant, Icon, List, ListItem, Popover } from '@patternfly/react-core';
|
|
3
3
|
import { CheckCircleIcon } from '@patternfly/react-icons/dist/js/icons/check-circle-icon';
|
|
4
4
|
import { ExclamationCircleIcon } from '@patternfly/react-icons/dist/js/icons/exclamation-circle-icon';
|
|
5
5
|
import { InProgressIcon } from '@patternfly/react-icons/dist/js/icons/in-progress-icon';
|
|
6
6
|
import { PendingIcon } from '@patternfly/react-icons/dist/js/icons/pending-icon';
|
|
7
|
-
import { t_global_icon_color_status_danger_default as dangerColor } from '@patternfly/react-tokens/dist/js/t_global_icon_color_status_danger_default';
|
|
8
|
-
import { t_global_color_status_success_default as okColor } from '@patternfly/react-tokens/dist/js/t_global_color_status_success_default';
|
|
9
7
|
import { pluralize } from 'humanize-plus';
|
|
10
8
|
import { TFunction } from 'i18next';
|
|
11
9
|
|
|
@@ -60,9 +58,17 @@ export function getOperatorsLabel(operators: MonitoredOperatorsList, t: TFunctio
|
|
|
60
58
|
export function getOperatorsIcon(status: OperatorStatus | 'pending') {
|
|
61
59
|
switch (status) {
|
|
62
60
|
case 'available':
|
|
63
|
-
return
|
|
61
|
+
return (
|
|
62
|
+
<Icon status="success">
|
|
63
|
+
<CheckCircleIcon />
|
|
64
|
+
</Icon>
|
|
65
|
+
);
|
|
64
66
|
case 'failed':
|
|
65
|
-
return
|
|
67
|
+
return (
|
|
68
|
+
<Icon status="danger">
|
|
69
|
+
<ExclamationCircleIcon />
|
|
70
|
+
</Icon>
|
|
71
|
+
);
|
|
66
72
|
case 'progressing':
|
|
67
73
|
return <InProgressIcon />;
|
|
68
74
|
default:
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
OpenshiftVersionOptionType,
|
|
5
|
-
UiIcon,
|
|
6
|
-
} from '../../../common';
|
|
2
|
+
import { Icon } from '@patternfly/react-core';
|
|
3
|
+
import { OPENSHIFT_LIFE_CYCLE_DATES_LINK, OpenshiftVersionOptionType } from '../../../common';
|
|
7
4
|
import { TFunction } from 'i18next';
|
|
8
5
|
import { ExclamationCircleIcon } from '@patternfly/react-icons/dist/js/icons/exclamation-circle-icon';
|
|
9
6
|
import { ExclamationTriangleIcon } from '@patternfly/react-icons/dist/js/icons/exclamation-triangle-icon';
|
|
@@ -29,7 +26,9 @@ export const getOpenshiftVersionHelperText = (
|
|
|
29
26
|
if (!versions.length && !isModal) {
|
|
30
27
|
return (
|
|
31
28
|
<>
|
|
32
|
-
<
|
|
29
|
+
<Icon status="danger" size="sm">
|
|
30
|
+
<ExclamationCircleIcon />
|
|
31
|
+
</Icon>
|
|
33
32
|
{t('ai:No release image is available.')}
|
|
34
33
|
</>
|
|
35
34
|
);
|
|
@@ -50,7 +49,9 @@ export const getOpenshiftVersionHelperText = (
|
|
|
50
49
|
}
|
|
51
50
|
return (
|
|
52
51
|
<>
|
|
53
|
-
<
|
|
52
|
+
<Icon status="warning">
|
|
53
|
+
<ExclamationTriangleIcon />
|
|
54
|
+
</Icon>
|
|
54
55
|
|
|
55
56
|
{messageSelectedVersion}
|
|
56
57
|
<OpenShiftLifeCycleDatesLink />
|
package/lib/ocm/components/clusterConfiguration/manifestsConfiguration/CustomManifestsPage.tsx
CHANGED
|
@@ -1,10 +1,25 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
Content,
|
|
4
|
+
ContentVariants,
|
|
5
|
+
Alert,
|
|
6
|
+
AlertVariant,
|
|
7
|
+
Grid,
|
|
8
|
+
FormGroup,
|
|
9
|
+
Switch,
|
|
10
|
+
Tooltip,
|
|
11
|
+
Stack,
|
|
12
|
+
StackItem,
|
|
13
|
+
} from '@patternfly/react-core';
|
|
3
14
|
|
|
4
15
|
import { CustomManifests } from './components/CustomManifests';
|
|
5
16
|
import { Cluster } from '@openshift-assisted/types/assisted-installer-service';
|
|
6
17
|
import { CustomManifestFormState } from './components/propTypes';
|
|
7
|
-
import { ClusterWizardStepHeader } from '../../../../common';
|
|
18
|
+
import { ClustersAPI, ClusterWizardStepHeader } from '../../../../common';
|
|
19
|
+
import { isOciPlatformType, isThirdPartyCNI } from '../../utils';
|
|
20
|
+
import DeleteCustomManifestModal from './DeleteCustomManifestModal';
|
|
21
|
+
import { ClustersService } from '../../../services';
|
|
22
|
+
import { useClusterWizardContext } from '../../clusterWizard/ClusterWizardContext';
|
|
8
23
|
|
|
9
24
|
export const CustomManifestsPage = ({
|
|
10
25
|
cluster,
|
|
@@ -12,22 +27,142 @@ export const CustomManifestsPage = ({
|
|
|
12
27
|
}: {
|
|
13
28
|
cluster: Cluster;
|
|
14
29
|
onFormStateChange(formState: CustomManifestFormState): void;
|
|
15
|
-
}) =>
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
30
|
+
}) => {
|
|
31
|
+
const clusterWizardContext = useClusterWizardContext();
|
|
32
|
+
const isRequired = isThirdPartyCNI(cluster.networkType) || isOciPlatformType(cluster);
|
|
33
|
+
const [useCustomManifests, setUseCustomManifests] = React.useState(isRequired);
|
|
34
|
+
const [isDeleteModalOpen, setDeleteModalOpen] = React.useState(false);
|
|
35
|
+
|
|
36
|
+
React.useEffect(() => {
|
|
37
|
+
if (isRequired || clusterWizardContext.uiSettings?.customManifestsAdded) {
|
|
38
|
+
setUseCustomManifests(true);
|
|
39
|
+
}
|
|
40
|
+
}, [isRequired, clusterWizardContext]);
|
|
41
|
+
|
|
42
|
+
// The form unmounts when the switch is off, but its last state persists in the parent.
|
|
43
|
+
React.useEffect(() => {
|
|
44
|
+
if (!useCustomManifests) {
|
|
45
|
+
onFormStateChange({
|
|
46
|
+
isValid: true,
|
|
47
|
+
isSubmitting: false,
|
|
48
|
+
isAutoSaveRunning: false,
|
|
49
|
+
errors: {},
|
|
50
|
+
touched: {},
|
|
51
|
+
isEmpty: true,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
}, [useCustomManifests, onFormStateChange]);
|
|
55
|
+
|
|
56
|
+
const handleSwitchChange = React.useCallback(
|
|
57
|
+
(_event: React.FormEvent<HTMLInputElement>, on: boolean) => {
|
|
58
|
+
if (!on && clusterWizardContext.uiSettings?.customManifestsAdded) {
|
|
59
|
+
setDeleteModalOpen(true);
|
|
60
|
+
} else {
|
|
61
|
+
setUseCustomManifests(on);
|
|
62
|
+
if (!on) {
|
|
63
|
+
void clusterWizardContext.updateUISettings({ customManifestsAdded: false });
|
|
64
|
+
}
|
|
29
65
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
66
|
+
},
|
|
67
|
+
[clusterWizardContext],
|
|
68
|
+
);
|
|
69
|
+
|
|
70
|
+
const handleCloseDeleteModal = React.useCallback(() => {
|
|
71
|
+
setDeleteModalOpen(false);
|
|
72
|
+
}, []);
|
|
73
|
+
|
|
74
|
+
const cleanCustomManifests = React.useCallback(async () => {
|
|
75
|
+
if (!clusterWizardContext.uiSettings?.customManifestsAdded || !cluster.id) return;
|
|
76
|
+
const { data: manifests } = await ClustersAPI.getManifests(cluster.id);
|
|
77
|
+
await ClustersService.removeClusterManifests(manifests, cluster.id);
|
|
78
|
+
setUseCustomManifests(false);
|
|
79
|
+
setDeleteModalOpen(false);
|
|
80
|
+
await clusterWizardContext.updateUISettings({ customManifestsAdded: false });
|
|
81
|
+
}, [cluster.id, clusterWizardContext]);
|
|
82
|
+
|
|
83
|
+
const tooltipWhenDisabled = isRequired
|
|
84
|
+
? 'Custom manifests are required when using a third-party CNI or Oracle Cloud Infrastructure.'
|
|
85
|
+
: '';
|
|
86
|
+
|
|
87
|
+
const showExternalPlatformReminder = isOciPlatformType(cluster);
|
|
88
|
+
const showThirdPartyCnIReminder = isThirdPartyCNI(cluster.networkType);
|
|
89
|
+
const showCombinedReminder = showExternalPlatformReminder && showThirdPartyCnIReminder;
|
|
90
|
+
let reminderAlerts: React.ReactNode = null;
|
|
91
|
+
if (showCombinedReminder) {
|
|
92
|
+
reminderAlerts = (
|
|
93
|
+
<Stack>
|
|
94
|
+
<StackItem>
|
|
95
|
+
<Alert
|
|
96
|
+
variant={AlertVariant.info}
|
|
97
|
+
isInline
|
|
98
|
+
title="You're using an external platform and a third-party CNI"
|
|
99
|
+
>
|
|
100
|
+
Make sure to upload the required custom and CNI manifests in this step.
|
|
101
|
+
</Alert>
|
|
102
|
+
</StackItem>
|
|
103
|
+
</Stack>
|
|
104
|
+
);
|
|
105
|
+
} else if (showExternalPlatformReminder) {
|
|
106
|
+
reminderAlerts = (
|
|
107
|
+
<Stack>
|
|
108
|
+
<StackItem>
|
|
109
|
+
<Alert variant={AlertVariant.info} isInline title="You're using an external platform">
|
|
110
|
+
Make sure to upload the required custom manifests in this step.
|
|
111
|
+
</Alert>
|
|
112
|
+
</StackItem>
|
|
113
|
+
</Stack>
|
|
114
|
+
);
|
|
115
|
+
} else if (showThirdPartyCnIReminder) {
|
|
116
|
+
reminderAlerts = (
|
|
117
|
+
<Stack>
|
|
118
|
+
<StackItem>
|
|
119
|
+
<Alert variant={AlertVariant.info} isInline title="You're using a third-party CNI">
|
|
120
|
+
Make sure to upload the required CNI manifests in this step.
|
|
121
|
+
</Alert>
|
|
122
|
+
</StackItem>
|
|
123
|
+
</Stack>
|
|
124
|
+
);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
return (
|
|
128
|
+
<Grid hasGutter>
|
|
129
|
+
<Content>
|
|
130
|
+
<ClusterWizardStepHeader>Custom manifests</ClusterWizardStepHeader>
|
|
131
|
+
<Content component={ContentVariants.small}>
|
|
132
|
+
Upload additional manifests that will be applied at the install time for advanced
|
|
133
|
+
configuration of the cluster.
|
|
134
|
+
</Content>
|
|
135
|
+
</Content>
|
|
136
|
+
<FormGroup fieldId="use-custom-manifests" label="">
|
|
137
|
+
<Tooltip content={tooltipWhenDisabled} hidden={!isRequired}>
|
|
138
|
+
<span style={{ display: 'inline-block', cursor: isRequired ? 'not-allowed' : undefined }}>
|
|
139
|
+
<Switch
|
|
140
|
+
id="use-custom-manifests"
|
|
141
|
+
isChecked={useCustomManifests}
|
|
142
|
+
isDisabled={isRequired}
|
|
143
|
+
onChange={handleSwitchChange}
|
|
144
|
+
label="Use custom manifests"
|
|
145
|
+
/>
|
|
146
|
+
</span>
|
|
147
|
+
</Tooltip>
|
|
148
|
+
</FormGroup>
|
|
149
|
+
{!useCustomManifests && <div style={{ minHeight: '120px' }} aria-hidden="true" />}
|
|
150
|
+
{useCustomManifests && (
|
|
151
|
+
<>
|
|
152
|
+
{reminderAlerts}
|
|
153
|
+
<Alert
|
|
154
|
+
isInline
|
|
155
|
+
variant="warning"
|
|
156
|
+
title="No validation is performed for the custom manifest contents. Only include resources that are necessary for initial setup to reduce the chance of installation failures."
|
|
157
|
+
/>
|
|
158
|
+
<CustomManifests cluster={cluster} onFormStateChange={onFormStateChange} />
|
|
159
|
+
</>
|
|
160
|
+
)}
|
|
161
|
+
<DeleteCustomManifestModal
|
|
162
|
+
isOpen={isDeleteModalOpen}
|
|
163
|
+
onClose={handleCloseDeleteModal}
|
|
164
|
+
onDelete={() => void cleanCustomManifests()}
|
|
165
|
+
/>
|
|
166
|
+
</Grid>
|
|
167
|
+
);
|
|
168
|
+
};
|
package/lib/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfiguration.tsx
CHANGED
|
@@ -23,9 +23,9 @@ import {
|
|
|
23
23
|
VirtualIPControlGroupProps,
|
|
24
24
|
AdvancedNetworkFields,
|
|
25
25
|
} from '../../../../common/components/clusterWizard/networkingSteps';
|
|
26
|
+
import { NetworkTypeDropDown } from './NetworkTypeDropdown';
|
|
26
27
|
import { selectCurrentClusterPermissionsState } from '../../../store/slices/current-cluster/selectors';
|
|
27
28
|
import { OcmCheckbox } from '../../ui/OcmFormFields';
|
|
28
|
-
import { NetworkTypeControlGroup } from '../../../../common/components/clusterWizard/networkingSteps/NetworkTypeControlGroup';
|
|
29
29
|
import {
|
|
30
30
|
NewFeatureSupportLevelData,
|
|
31
31
|
NewFeatureSupportLevelMap,
|
|
@@ -259,11 +259,13 @@ const NetworkConfiguration = ({
|
|
|
259
259
|
/>
|
|
260
260
|
</StackItem>
|
|
261
261
|
)}
|
|
262
|
-
|
|
263
|
-
<
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
262
|
+
<StackItem>
|
|
263
|
+
<NetworkTypeDropDown
|
|
264
|
+
isDisabled={isViewerMode}
|
|
265
|
+
isSDNSelectable={isSDNSelectable}
|
|
266
|
+
featureSupportLevelData={featureSupportLevelData}
|
|
267
|
+
/>
|
|
268
|
+
</StackItem>
|
|
267
269
|
|
|
268
270
|
{!(isUserManagedNetworking && !isSNOCluster) && (
|
|
269
271
|
<StackItem>
|