@openshift-assisted/ui-lib 5.0.0-cim → 5.0.1-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/ClusterDeploymentWizard.d.ts +1 -1
- package/build/@types/cim/components/ClusterDeployment/ClusterDeploymentWizard.d.ts.map +1 -1
- package/build/@types/cim/components/ClusterDeployment/clusterDetails/ACMClusterDeploymentDetailsStep.d.ts.map +1 -1
- package/build/@types/cim/components/ClusterDeployment/clusterDetails/ClusterDeploymentDetailsStep.d.ts +0 -17
- package/build/@types/cim/components/ClusterDeployment/clusterDetails/ClusterDeploymentDetailsStep.d.ts.map +1 -1
- package/build/@types/cim/components/ClusterDeployment/clusterDetails/ClusterDetailsFormFields.d.ts.map +1 -1
- package/build/@types/cim/components/ClusterDeployment/clusterDetails/useDetailsFormik.d.ts +19 -0
- package/build/@types/cim/components/ClusterDeployment/clusterDetails/useDetailsFormik.d.ts.map +1 -0
- package/build/@types/cim/components/ClusterDeployment/review/ClusterDeploymentReviewStep.d.ts.map +1 -1
- package/build/@types/cim/components/ClusterDeployment/types.d.ts +0 -1
- package/build/@types/cim/components/ClusterDeployment/types.d.ts.map +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/common/CpuArchitectureDropdown.d.ts.map +1 -1
- package/build/@types/cim/components/helpers/clusterDeployment.d.ts.map +1 -1
- package/build/@types/cim/components/modals/CimConfiguration/CimStorageMissingAlert.d.ts.map +1 -1
- package/build/@types/cim/components/modals/CimConfiguration/constants.d.ts +1 -1
- package/build/@types/cim/hooks/index.d.ts +1 -0
- package/build/@types/cim/hooks/index.d.ts.map +1 -1
- package/build/@types/cim/hooks/useAgents.d.ts +4 -0
- package/build/@types/cim/hooks/useAgents.d.ts.map +1 -0
- package/build/@types/common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionControlGroup.d.ts +2 -1
- package/build/@types/common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionControlGroup.d.ts.map +1 -1
- package/build/@types/common/components/clusterConfiguration/ExternalPlatformsDropdown.d.ts.map +1 -1
- package/build/@types/common/components/clusterConfiguration/utils.d.ts +9 -1
- package/build/@types/common/components/clusterConfiguration/utils.d.ts.map +1 -1
- package/build/@types/common/components/clusterDetail/ClusterCredentials.d.ts.map +1 -1
- package/build/@types/common/components/clusterDetail/ConsoleModal.d.ts +0 -5
- package/build/@types/common/components/clusterDetail/ConsoleModal.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/clusterWizard/networkingSteps/AvailableSubnetsControl.d.ts.map +1 -1
- package/build/@types/common/components/clusterWizard/networkingSteps/StackTypeControlGroup.d.ts.map +1 -1
- package/build/@types/common/components/clusterWizard/validationsInfoUtils.d.ts +0 -1
- package/build/@types/common/components/clusterWizard/validationsInfoUtils.d.ts.map +1 -1
- package/build/@types/common/components/hosts/utils.d.ts.map +1 -1
- package/build/@types/common/config/constants.d.ts.map +1 -1
- package/build/@types/common/selectors/clusterSelectors.d.ts +1 -1
- package/build/@types/common/selectors/clusterSelectors.d.ts.map +1 -1
- package/build/@types/common/types/clusters.d.ts +2 -2
- package/build/@types/common/types/clusters.d.ts.map +1 -1
- package/build/@types/ocm/components/Routes.d.ts +1 -1
- package/build/@types/ocm/components/Routes.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/DiscoveryImageForm.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/DiscoveryImageModal.d.ts +0 -1
- package/build/@types/ocm/components/clusterConfiguration/DiscoveryImageModal.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.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 +4 -0
- package/build/@types/ocm/components/clusterConfiguration/manifestsConfiguration/components/utils.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/networkConfigurationValidation.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/operators/OperatorCheckbox.d.ts +3 -1
- package/build/@types/ocm/components/clusterConfiguration/operators/OperatorCheckbox.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/operators/bundleSpecs.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/operators/utils.d.ts +3 -6
- package/build/@types/ocm/components/clusterConfiguration/operators/utils.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/ReviewOperatorsTable.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/review/ReviewSummary.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/review/TableSummaryExpandable.d.ts +1 -0
- package/build/@types/ocm/components/clusterConfiguration/review/TableSummaryExpandable.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/review/utils.d.ts +1 -1
- package/build/@types/ocm/components/clusterConfiguration/review/utils.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/staticIp/components/StaticIpForm.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/staticIp/components/StaticIpPage.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/staticIp/data/formDataToInfraEnvField.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/staticIp/data/nmstateTypes.d.ts +1 -0
- package/build/@types/ocm/components/clusterConfiguration/staticIp/data/nmstateTypes.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/staticIp/data/nmstateYaml.d.ts +1 -1
- package/build/@types/ocm/components/clusterConfiguration/staticIp/data/nmstateYaml.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterDetail/AssistedInstallerDetailCard.d.ts +1 -1
- package/build/@types/ocm/components/clusterDetail/AssistedInstallerDetailCard.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterDetail/ClusterDetailsButtonGroup.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterWizard/ClusterDetails.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterWizard/ClusterWizardContextProvider.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterWizard/NewClusterWizard.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterWizard/Operators.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterWizard/OperatorsBundle.d.ts +3 -3
- package/build/@types/ocm/components/clusterWizard/OperatorsBundle.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterWizard/OperatorsSelect.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterWizard/OptionalOperatorsDropdown.d.ts +13 -0
- package/build/@types/ocm/components/clusterWizard/OptionalOperatorsDropdown.d.ts.map +1 -0
- package/build/@types/ocm/components/clusterWizard/wizardTransition.d.ts +3 -4
- package/build/@types/ocm/components/clusterWizard/wizardTransition.d.ts.map +1 -1
- package/build/@types/ocm/components/clusters/ClustersListToolbar.d.ts +1 -2
- package/build/@types/ocm/components/clusters/ClustersListToolbar.d.ts.map +1 -1
- package/build/@types/ocm/components/clusters/ClustersTable.d.ts.map +1 -1
- package/build/@types/ocm/components/ui/Buttons/BackButton.d.ts +1 -1
- package/build/@types/ocm/components/ui/Buttons/BackButton.d.ts.map +1 -1
- package/build/@types/ocm/hooks/useLateBinding.d.ts.map +1 -1
- package/build/@types/ocm/services/InfraEnvsService.d.ts.map +1 -1
- package/build/@types/ocm/store/hooks.d.ts +1 -1
- package/build/@types/ocm/store/slices/clusters/selectors.d.ts +5 -61
- package/build/@types/ocm/store/slices/clusters/selectors.d.ts.map +1 -1
- package/build/@types/ocm/store/slices/current-cluster/slice.d.ts +2 -0
- package/build/@types/ocm/store/slices/current-cluster/slice.d.ts.map +1 -1
- package/build/@types/ocm/store/slices/feature-flags/selectors.d.ts +2 -20
- package/build/@types/ocm/store/slices/feature-flags/selectors.d.ts.map +1 -1
- package/build/@types/ocm/store/slices/infra-envs/selectors.d.ts +4 -21
- package/build/@types/ocm/store/slices/infra-envs/selectors.d.ts.map +1 -1
- package/build/cjs/cim/components/Agent/NoAgentsAlert.js +2 -2
- package/build/cjs/cim/components/Agent/NoAgentsAlert.js.map +1 -1
- package/build/cjs/cim/components/Agent/tableColumns.js +3 -3
- package/build/cjs/cim/components/Agent/tableColumns.js.map +1 -1
- package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentWizard.js +9 -1
- package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentWizard.js.map +1 -1
- package/build/cjs/cim/components/ClusterDeployment/clusterDetails/ACMClusterDeploymentDetailsStep.js +4 -2
- package/build/cjs/cim/components/ClusterDeployment/clusterDetails/ACMClusterDeploymentDetailsStep.js.map +1 -1
- package/build/cjs/cim/components/ClusterDeployment/clusterDetails/ClusterDeploymentDetailsStep.js +5 -31
- package/build/cjs/cim/components/ClusterDeployment/clusterDetails/ClusterDeploymentDetailsStep.js.map +1 -1
- package/build/cjs/cim/components/ClusterDeployment/clusterDetails/ClusterDetailsFormFields.js +1 -11
- package/build/cjs/cim/components/ClusterDeployment/clusterDetails/ClusterDetailsFormFields.js.map +1 -1
- package/build/cjs/cim/components/ClusterDeployment/clusterDetails/useDetailsFormik.js +41 -0
- package/build/cjs/cim/components/ClusterDeployment/clusterDetails/useDetailsFormik.js.map +1 -0
- package/build/cjs/cim/components/ClusterDeployment/review/ClusterDeploymentReviewStep.js +4 -4
- package/build/cjs/cim/components/ClusterDeployment/review/ClusterDeploymentReviewStep.js.map +1 -1
- package/build/cjs/cim/components/ClusterDeployment/wizardTransition.js +5 -1
- package/build/cjs/cim/components/ClusterDeployment/wizardTransition.js.map +1 -1
- package/build/cjs/cim/components/Hypershift/DetailsPage/NodePoolsTable.js +2 -2
- package/build/cjs/cim/components/Hypershift/DetailsPage/NodePoolsTable.js.map +1 -1
- package/build/cjs/cim/components/InfraEnv/AddHostDropdown.js +2 -2
- package/build/cjs/cim/components/InfraEnv/AddHostDropdown.js.map +1 -1
- package/build/cjs/cim/components/common/CpuArchitectureDropdown.js +1 -1
- package/build/cjs/cim/components/common/CpuArchitectureDropdown.js.map +1 -1
- package/build/cjs/cim/components/helpers/clusterDeployment.js +14 -10
- package/build/cjs/cim/components/helpers/clusterDeployment.js.map +1 -1
- package/build/cjs/cim/components/modals/CimConfiguration/CimConfigProgressAlert.js +3 -3
- package/build/cjs/cim/components/modals/CimConfiguration/CimConfigProgressAlert.js.map +1 -1
- package/build/cjs/cim/components/modals/CimConfiguration/CimConfigurationFormFields.js +1 -1
- package/build/cjs/cim/components/modals/CimConfiguration/CimConfigurationFormFields.js.map +1 -1
- package/build/cjs/cim/components/modals/CimConfiguration/CimConfigurationModal.js +2 -2
- package/build/cjs/cim/components/modals/CimConfiguration/CimConfigurationModal.js.map +1 -1
- package/build/cjs/cim/components/modals/CimConfiguration/CimStorageMissingAlert.js +3 -3
- package/build/cjs/cim/components/modals/CimConfiguration/CimStorageMissingAlert.js.map +1 -1
- package/build/cjs/cim/components/modals/CimConfiguration/constants.js +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/cim/hooks/index.js +1 -0
- package/build/cjs/cim/hooks/index.js.map +1 -1
- package/build/cjs/cim/hooks/useAgents.js +13 -0
- package/build/cjs/cim/hooks/useAgents.js.map +1 -0
- package/build/cjs/common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionControlGroup.js +9 -3
- package/build/cjs/common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionControlGroup.js.map +1 -1
- package/build/cjs/common/components/clusterConfiguration/ExternalPlatformsDropdown.js +1 -1
- package/build/cjs/common/components/clusterConfiguration/ExternalPlatformsDropdown.js.map +1 -1
- package/build/cjs/common/components/clusterConfiguration/utils.js +13 -1
- package/build/cjs/common/components/clusterConfiguration/utils.js.map +1 -1
- package/build/cjs/common/components/clusterConfiguration/utils.test.js +36 -0
- package/build/cjs/common/components/clusterConfiguration/utils.test.js.map +1 -1
- package/build/cjs/common/components/clusterDetail/ClusterCredentials.js +10 -9
- package/build/cjs/common/components/clusterDetail/ClusterCredentials.js.map +1 -1
- package/build/cjs/common/components/clusterDetail/ConsoleModal.js +1 -10
- package/build/cjs/common/components/clusterDetail/ConsoleModal.js.map +1 -1
- package/build/cjs/common/components/clusterWizard/ReviewValidations.js +16 -0
- package/build/cjs/common/components/clusterWizard/ReviewValidations.js.map +1 -1
- package/build/cjs/common/components/clusterWizard/clusterDetailsValidation.js +34 -19
- package/build/cjs/common/components/clusterWizard/clusterDetailsValidation.js.map +1 -1
- package/build/cjs/common/components/clusterWizard/networkingSteps/AvailableSubnetsControl.js +29 -31
- package/build/cjs/common/components/clusterWizard/networkingSteps/AvailableSubnetsControl.js.map +1 -1
- package/build/cjs/common/components/clusterWizard/networkingSteps/ManagedNetworkingControlGroup.js +3 -3
- package/build/cjs/common/components/clusterWizard/networkingSteps/StackTypeControlGroup.js +19 -30
- package/build/cjs/common/components/clusterWizard/networkingSteps/StackTypeControlGroup.js.map +1 -1
- package/build/cjs/common/components/clusterWizard/validationsInfoUtils.js +1 -17
- package/build/cjs/common/components/clusterWizard/validationsInfoUtils.js.map +1 -1
- package/build/cjs/common/components/hosts/utils.js +6 -1
- package/build/cjs/common/components/hosts/utils.js.map +1 -1
- package/build/cjs/common/config/constants.js +4 -0
- package/build/cjs/common/config/constants.js.map +1 -1
- package/build/cjs/common/selectors/clusterSelectors.js +7 -8
- package/build/cjs/common/selectors/clusterSelectors.js.map +1 -1
- package/build/cjs/common/types/clusters.js.map +1 -1
- package/build/cjs/common/validationSchemas/addressValidation.js +1 -1
- package/build/cjs/common/validationSchemas/addressValidation.js.map +1 -1
- package/build/cjs/ocm/components/Routes.js +8 -8
- package/build/cjs/ocm/components/Routes.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/DiscoveryImageForm.js +5 -2
- package/build/cjs/ocm/components/clusterConfiguration/DiscoveryImageForm.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/DiscoveryImageModal.js +2 -2
- package/build/cjs/ocm/components/clusterConfiguration/DiscoveryImageModal.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.js +6 -2
- package/build/cjs/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/OcmClusterProgressItems.js +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/OcmClusterProgressItems.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/manifestsConfiguration/CustomManifestsPage.js +3 -1
- package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/CustomManifestsPage.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifestsForm.js +3 -1
- package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifestsForm.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/utils.js +11 -8
- package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/utils.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfiguration.js +68 -17
- package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfiguration.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfigurationForm.js +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfigurationForm.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/networkConfigurationValidation.js +50 -13
- package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/networkConfigurationValidation.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/operators/OperatorCheckbox.js +39 -21
- package/build/cjs/ocm/components/clusterConfiguration/operators/OperatorCheckbox.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/operators/bundleSpecs.js +1 -2
- package/build/cjs/ocm/components/clusterConfiguration/operators/bundleSpecs.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/operators/utils.js +7 -25
- package/build/cjs/ocm/components/clusterConfiguration/operators/utils.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/review/ReviewNetworkingTable.js +4 -2
- package/build/cjs/ocm/components/clusterConfiguration/review/ReviewNetworkingTable.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/review/ReviewOperatorsTable.js +75 -20
- package/build/cjs/ocm/components/clusterConfiguration/review/ReviewOperatorsTable.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/review/ReviewSummary.js +2 -2
- package/build/cjs/ocm/components/clusterConfiguration/review/ReviewSummary.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/review/TableSummaryExpandable.css +3 -0
- package/build/cjs/ocm/components/clusterConfiguration/review/TableSummaryExpandable.js +2 -3
- package/build/cjs/ocm/components/clusterConfiguration/review/TableSummaryExpandable.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/review/utils.js +8 -2
- package/build/cjs/ocm/components/clusterConfiguration/review/utils.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/review/utils.test.js +35 -0
- package/build/cjs/ocm/components/clusterConfiguration/review/utils.test.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/staticIp/components/StaticIpForm.js +10 -1
- package/build/cjs/ocm/components/clusterConfiguration/staticIp/components/StaticIpForm.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/staticIp/components/StaticIpPage.js +5 -5
- package/build/cjs/ocm/components/clusterConfiguration/staticIp/components/StaticIpPage.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/staticIp/data/formDataToInfraEnvField.js +2 -2
- package/build/cjs/ocm/components/clusterConfiguration/staticIp/data/formDataToInfraEnvField.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/staticIp/data/nmstateTypes.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/staticIp/data/nmstateYaml.js +3 -7
- package/build/cjs/ocm/components/clusterConfiguration/staticIp/data/nmstateYaml.js.map +1 -1
- package/build/cjs/ocm/components/clusterDetail/AssistedInstallerDetailCard.js +4 -4
- package/build/cjs/ocm/components/clusterDetail/AssistedInstallerDetailCard.js.map +1 -1
- package/build/cjs/ocm/components/clusterDetail/ClusterDetail.js +4 -4
- package/build/cjs/ocm/components/clusterDetail/ClusterDetail.js.map +1 -1
- package/build/cjs/ocm/components/clusterDetail/ClusterDetailsButtonGroup.js +8 -2
- package/build/cjs/ocm/components/clusterDetail/ClusterDetailsButtonGroup.js.map +1 -1
- package/build/cjs/ocm/components/clusterWizard/ClusterDetails.js +6 -13
- package/build/cjs/ocm/components/clusterWizard/ClusterDetails.js.map +1 -1
- package/build/cjs/ocm/components/clusterWizard/ClusterDetailsForm.js +2 -2
- package/build/cjs/ocm/components/clusterWizard/ClusterDetailsForm.js.map +1 -1
- package/build/cjs/ocm/components/clusterWizard/ClusterWizardContextProvider.js +6 -6
- package/build/cjs/ocm/components/clusterWizard/ClusterWizardContextProvider.js.map +1 -1
- package/build/cjs/ocm/components/clusterWizard/ClusterWizardFooter.js +2 -2
- package/build/cjs/ocm/components/clusterWizard/ClusterWizardFooter.js.map +1 -1
- package/build/cjs/ocm/components/clusterWizard/NewClusterWizard.js +6 -3
- package/build/cjs/ocm/components/clusterWizard/NewClusterWizard.js.map +1 -1
- package/build/cjs/ocm/components/clusterWizard/Operators.js +40 -12
- package/build/cjs/ocm/components/clusterWizard/Operators.js.map +1 -1
- package/build/cjs/ocm/components/clusterWizard/OperatorsBundle.js +34 -15
- package/build/cjs/ocm/components/clusterWizard/OperatorsBundle.js.map +1 -1
- package/build/cjs/ocm/components/clusterWizard/OperatorsSelect.js +18 -4
- package/build/cjs/ocm/components/clusterWizard/OperatorsSelect.js.map +1 -1
- package/build/cjs/ocm/components/clusterWizard/OperatorsSelect.test.js +11 -5
- package/build/cjs/ocm/components/clusterWizard/OperatorsSelect.test.js.map +1 -1
- package/build/cjs/ocm/components/clusterWizard/OperatorsStep.js +1 -1
- package/build/cjs/ocm/components/clusterWizard/OperatorsStep.js.map +1 -1
- package/build/cjs/ocm/components/clusterWizard/OptionalOperatorsDropdown.js +34 -0
- package/build/cjs/ocm/components/clusterWizard/OptionalOperatorsDropdown.js.map +1 -0
- package/build/cjs/ocm/components/clusterWizard/disconnected/ReviewStep.js +3 -3
- package/build/cjs/ocm/components/clusterWizard/disconnected/ReviewStep.js.map +1 -1
- package/build/cjs/ocm/components/clusterWizard/wizardTransition.js +69 -29
- package/build/cjs/ocm/components/clusterWizard/wizardTransition.js.map +1 -1
- package/build/cjs/ocm/components/clusters/ClusterBreadcrumbs.js +2 -2
- package/build/cjs/ocm/components/clusters/ClusterBreadcrumbs.js.map +1 -1
- package/build/cjs/ocm/components/clusters/ClusterPage.js +4 -4
- package/build/cjs/ocm/components/clusters/ClusterPage.js.map +1 -1
- package/build/cjs/ocm/components/clusters/Clusters.js +3 -3
- package/build/cjs/ocm/components/clusters/Clusters.js.map +1 -1
- package/build/cjs/ocm/components/clusters/ClustersListToolbar.js +5 -5
- package/build/cjs/ocm/components/clusters/ClustersListToolbar.js.map +1 -1
- package/build/cjs/ocm/components/clusters/ClustersTable.js +4 -3
- package/build/cjs/ocm/components/clusters/ClustersTable.js.map +1 -1
- package/build/cjs/ocm/components/featureSupportLevels/featureStateUtils.js +1 -1
- package/build/cjs/ocm/components/ui/Buttons/BackButton.js +2 -2
- package/build/cjs/ocm/components/ui/Buttons/BackButton.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/useLateBinding.js +41 -26
- package/build/cjs/ocm/hooks/useLateBinding.js.map +1 -1
- package/build/cjs/ocm/hooks/usePullSecret.js +2 -2
- package/build/cjs/ocm/services/InfraEnvsService.js +4 -1
- package/build/cjs/ocm/services/InfraEnvsService.js.map +1 -1
- package/build/cjs/ocm/store/slices/clusters/selectors.js +2 -2
- package/build/cjs/ocm/store/slices/clusters/selectors.js.map +1 -1
- package/build/cjs/ocm/store/slices/feature-flags/selectors.js.map +1 -1
- package/build/cjs/ocm/store/slices/infra-envs/selectors.js.map +1 -1
- package/lib/cim/components/Agent/NoAgentsAlert.tsx +1 -1
- package/lib/cim/components/Agent/tableColumns.tsx +1 -1
- package/lib/cim/components/ClusterDeployment/ClusterDeploymentWizard.tsx +10 -2
- package/lib/cim/components/ClusterDeployment/clusterDetails/ACMClusterDeploymentDetailsStep.tsx +3 -1
- package/lib/cim/components/ClusterDeployment/clusterDetails/ClusterDeploymentDetailsStep.tsx +5 -86
- package/lib/cim/components/ClusterDeployment/clusterDetails/ClusterDetailsFormFields.tsx +1 -12
- package/lib/cim/components/ClusterDeployment/clusterDetails/useDetailsFormik.tsx +97 -0
- package/lib/cim/components/ClusterDeployment/review/ClusterDeploymentReviewStep.tsx +18 -14
- package/lib/cim/components/ClusterDeployment/types.ts +0 -1
- package/lib/cim/components/ClusterDeployment/wizardTransition.ts +5 -1
- package/lib/cim/components/Hypershift/DetailsPage/NodePoolsTable.tsx +1 -1
- package/lib/cim/components/InfraEnv/AddHostDropdown.tsx +1 -1
- package/lib/cim/components/common/CpuArchitectureDropdown.tsx +2 -1
- package/lib/cim/components/helpers/clusterDeployment.ts +9 -4
- package/lib/cim/components/modals/CimConfiguration/CimConfigProgressAlert.tsx +2 -2
- package/lib/cim/components/modals/CimConfiguration/CimConfigurationFormFields.tsx +1 -1
- package/lib/cim/components/modals/CimConfiguration/CimConfigurationModal.tsx +2 -2
- package/lib/cim/components/modals/CimConfiguration/CimStorageMissingAlert.tsx +5 -2
- package/lib/cim/components/modals/CimConfiguration/constants.ts +1 -1
- package/lib/cim/components/modals/MassDeleteAgentModal.tsx +1 -1
- package/lib/cim/hooks/index.tsx +1 -0
- package/lib/cim/hooks/useAgents.tsx +15 -0
- package/lib/common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionControlGroup.tsx +18 -8
- package/lib/common/components/clusterConfiguration/ExternalPlatformsDropdown.tsx +3 -1
- package/lib/common/components/clusterConfiguration/utils.test.ts +43 -1
- package/lib/common/components/clusterConfiguration/utils.ts +13 -0
- package/lib/common/components/clusterDetail/ClusterCredentials.tsx +49 -53
- package/lib/common/components/clusterDetail/ConsoleModal.tsx +0 -35
- package/lib/common/components/clusterWizard/ReviewValidations.tsx +24 -0
- package/lib/common/components/clusterWizard/clusterDetailsValidation.ts +38 -12
- package/lib/common/components/clusterWizard/networkingSteps/AvailableSubnetsControl.tsx +31 -57
- package/lib/common/components/clusterWizard/networkingSteps/ManagedNetworkingControlGroup.tsx +3 -3
- package/lib/common/components/clusterWizard/networkingSteps/StackTypeControlGroup.tsx +33 -38
- package/lib/common/components/clusterWizard/validationsInfoUtils.ts +0 -20
- package/lib/common/components/hosts/utils.ts +8 -1
- package/lib/common/config/constants.ts +4 -0
- package/lib/common/selectors/clusterSelectors.ts +9 -9
- package/lib/common/types/clusters.ts +3 -1
- package/lib/common/validationSchemas/addressValidation.tsx +2 -2
- package/lib/ocm/components/Routes.tsx +2 -2
- package/lib/ocm/components/clusterConfiguration/DiscoveryImageForm.tsx +11 -2
- package/lib/ocm/components/clusterConfiguration/DiscoveryImageModal.tsx +13 -3
- package/lib/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.tsx +9 -1
- package/lib/ocm/components/clusterConfiguration/OcmClusterProgressItems.tsx +2 -2
- package/lib/ocm/components/clusterConfiguration/OcmDiscoveryImageConfigForm.tsx +1 -1
- package/lib/ocm/components/clusterConfiguration/manifestsConfiguration/CustomManifestsPage.tsx +8 -1
- package/lib/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifestsForm.tsx +3 -1
- package/lib/ocm/components/clusterConfiguration/manifestsConfiguration/components/utils.tsx +12 -6
- package/lib/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfiguration.tsx +86 -22
- package/lib/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfigurationForm.tsx +2 -2
- package/lib/ocm/components/clusterConfiguration/networkConfiguration/networkConfigurationValidation.ts +57 -20
- package/lib/ocm/components/clusterConfiguration/operators/OperatorCheckbox.tsx +48 -34
- package/lib/ocm/components/clusterConfiguration/operators/bundleSpecs.tsx +2 -3
- package/lib/ocm/components/clusterConfiguration/operators/utils.tsx +6 -37
- package/lib/ocm/components/clusterConfiguration/review/ReviewNetworkingTable.tsx +4 -2
- package/lib/ocm/components/clusterConfiguration/review/ReviewOperatorsTable.tsx +114 -24
- package/lib/ocm/components/clusterConfiguration/review/ReviewSummary.tsx +1 -4
- package/lib/ocm/components/clusterConfiguration/review/TableSummaryExpandable.css +3 -0
- package/lib/ocm/components/clusterConfiguration/review/TableSummaryExpandable.tsx +1 -1
- package/lib/ocm/components/clusterConfiguration/review/utils.test.ts +41 -0
- package/lib/ocm/components/clusterConfiguration/review/utils.tsx +6 -3
- package/lib/ocm/components/clusterConfiguration/staticIp/components/StaticIpForm.tsx +10 -1
- package/lib/ocm/components/clusterConfiguration/staticIp/components/StaticIpPage.tsx +9 -6
- package/lib/ocm/components/clusterConfiguration/staticIp/data/formDataToInfraEnvField.ts +2 -0
- package/lib/ocm/components/clusterConfiguration/staticIp/data/nmstateTypes.ts +1 -0
- package/lib/ocm/components/clusterConfiguration/staticIp/data/nmstateYaml.ts +2 -0
- package/lib/ocm/components/clusterDetail/AssistedInstallerDetailCard.tsx +1 -1
- package/lib/ocm/components/clusterDetail/ClusterDetail.tsx +3 -3
- package/lib/ocm/components/clusterDetail/ClusterDetailsButtonGroup.tsx +27 -2
- package/lib/ocm/components/clusterWizard/ClusterDetails.tsx +4 -16
- package/lib/ocm/components/clusterWizard/ClusterDetailsForm.tsx +1 -1
- package/lib/ocm/components/clusterWizard/ClusterWizardContextProvider.tsx +6 -14
- package/lib/ocm/components/clusterWizard/ClusterWizardFooter.tsx +1 -1
- package/lib/ocm/components/clusterWizard/NewClusterWizard.tsx +7 -3
- package/lib/ocm/components/clusterWizard/Operators.tsx +47 -12
- package/lib/ocm/components/clusterWizard/OperatorsBundle.tsx +72 -26
- package/lib/ocm/components/clusterWizard/OperatorsSelect.test.ts +11 -5
- package/lib/ocm/components/clusterWizard/OperatorsSelect.tsx +21 -4
- package/lib/ocm/components/clusterWizard/OperatorsStep.tsx +1 -1
- package/lib/ocm/components/clusterWizard/OptionalOperatorsDropdown.tsx +106 -0
- package/lib/ocm/components/clusterWizard/disconnected/ReviewStep.tsx +2 -2
- package/lib/ocm/components/clusterWizard/wizardTransition.ts +92 -37
- package/lib/ocm/components/clusters/ClusterBreadcrumbs.tsx +1 -1
- package/lib/ocm/components/clusters/ClusterPage.tsx +1 -1
- package/lib/ocm/components/clusters/Clusters.tsx +2 -2
- package/lib/ocm/components/clusters/ClustersListToolbar.tsx +5 -7
- package/lib/ocm/components/clusters/ClustersTable.tsx +60 -50
- package/lib/ocm/components/featureSupportLevels/featureStateUtils.ts +1 -1
- package/lib/ocm/components/ui/Buttons/BackButton.tsx +1 -1
- package/lib/ocm/hooks/useInfraEnvId.ts +2 -2
- package/lib/ocm/hooks/useLateBinding.ts +45 -24
- package/lib/ocm/hooks/usePullSecret.ts +2 -2
- package/lib/ocm/services/InfraEnvsService.ts +4 -1
- package/lib/ocm/store/slices/clusters/selectors.tsx +7 -5
- package/lib/ocm/store/slices/feature-flags/selectors.ts +5 -2
- package/lib/ocm/store/slices/infra-envs/selectors.ts +4 -2
- package/package.json +17 -17
- package/build/cjs/ocm/components/clusterConfiguration/DiscoveryImageModal.css +0 -3
- package/lib/ocm/components/clusterConfiguration/DiscoveryImageModal.css +0 -3
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import {
|
|
3
3
|
Alert,
|
|
4
4
|
AlertActionLink,
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
Stack,
|
|
9
9
|
StackItem,
|
|
10
10
|
} from '@patternfly/react-core';
|
|
11
|
-
import { FieldArray, useFormikContext
|
|
11
|
+
import { FieldArray, useFormikContext } from 'formik';
|
|
12
12
|
import { Address4, Address6 } from 'ip-address';
|
|
13
13
|
|
|
14
14
|
import { HostSubnet, NetworkConfigurationValues } from '../../../types';
|
|
@@ -17,39 +17,11 @@ import { isMajorMinorVersionEqualOrGreater } from '../../../utils';
|
|
|
17
17
|
import { useTranslation } from '../../../hooks/use-translation-wrapper';
|
|
18
18
|
import { SubnetsDropdown } from './SubnetsDropdown';
|
|
19
19
|
import { reorderNetworksForPrimary } from './reorderNetworks';
|
|
20
|
-
import {
|
|
21
|
-
Cluster,
|
|
22
|
-
Host,
|
|
23
|
-
MachineNetwork,
|
|
24
|
-
} from '@openshift-assisted/types/assisted-installer-service';
|
|
20
|
+
import { Cluster, Host } from '@openshift-assisted/types/assisted-installer-service';
|
|
25
21
|
|
|
26
22
|
const subnetSort = (subA: HostSubnet, subB: HostSubnet) =>
|
|
27
23
|
subA.humanized.localeCompare(subB.humanized);
|
|
28
24
|
|
|
29
|
-
const useAutoSelectDefaultMachineNetworks = (
|
|
30
|
-
autoSelectNetwork: boolean,
|
|
31
|
-
setFieldValue: FormikHelpers<NetworkConfigurationValues>['setFieldValue'],
|
|
32
|
-
cidrV4: MachineNetwork['cidr'],
|
|
33
|
-
cidrV6: MachineNetwork['cidr'],
|
|
34
|
-
clusterId: string,
|
|
35
|
-
isDualStack: boolean,
|
|
36
|
-
) => {
|
|
37
|
-
useEffect(() => {
|
|
38
|
-
if (autoSelectNetwork) {
|
|
39
|
-
setFieldValue(
|
|
40
|
-
'machineNetworks',
|
|
41
|
-
isDualStack
|
|
42
|
-
? [
|
|
43
|
-
{ cidr: cidrV4, clusterId },
|
|
44
|
-
{ cidr: cidrV6, clusterId },
|
|
45
|
-
]
|
|
46
|
-
: [{ cidr: cidrV4, clusterId }],
|
|
47
|
-
false,
|
|
48
|
-
);
|
|
49
|
-
}
|
|
50
|
-
}, [autoSelectNetwork, cidrV4, cidrV6, clusterId, isDualStack, setFieldValue]);
|
|
51
|
-
};
|
|
52
|
-
|
|
53
25
|
export interface AvailableSubnetsControlProps {
|
|
54
26
|
clusterId: Cluster['id'];
|
|
55
27
|
hostSubnets: HostSubnet[];
|
|
@@ -81,31 +53,24 @@ export const AvailableSubnetsControl = ({
|
|
|
81
53
|
const supportsIPv6Primary =
|
|
82
54
|
openshiftVersion && isMajorMinorVersionEqualOrGreater(openshiftVersion, '4.12');
|
|
83
55
|
|
|
84
|
-
const IPv4Subnets = hostSubnets
|
|
85
|
-
.filter((subnet) => Address4.isValid(subnet.subnet))
|
|
86
|
-
.sort(subnetSort);
|
|
87
|
-
const IPv6Subnets = hostSubnets
|
|
88
|
-
.filter((subnet) => Address6.isValid(subnet.subnet))
|
|
89
|
-
.sort(subnetSort);
|
|
90
|
-
|
|
91
56
|
// For OCP >= 4.12, both networks can use either IPv4 or IPv6
|
|
92
|
-
const allSubnets =
|
|
93
|
-
|
|
94
|
-
|
|
57
|
+
const { IPv4Subnets, IPv6Subnets, allSubnets } = React.useMemo(() => {
|
|
58
|
+
const IPv4Subnets = hostSubnets
|
|
59
|
+
.filter((subnet) => Address4.isValid(subnet.subnet))
|
|
60
|
+
.sort(subnetSort);
|
|
95
61
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
);
|
|
62
|
+
const IPv6Subnets = hostSubnets
|
|
63
|
+
.filter((subnet) => Address6.isValid(subnet.subnet))
|
|
64
|
+
.sort(subnetSort);
|
|
65
|
+
|
|
66
|
+
const allSubnets = supportsIPv6Primary ? [...IPv4Subnets, ...IPv6Subnets] : IPv4Subnets;
|
|
67
|
+
|
|
68
|
+
return {
|
|
69
|
+
IPv4Subnets,
|
|
70
|
+
IPv6Subnets,
|
|
71
|
+
allSubnets,
|
|
72
|
+
};
|
|
73
|
+
}, [hostSubnets, supportsIPv6Primary]);
|
|
109
74
|
|
|
110
75
|
// Ensure primary and secondary machine networks are not in the same stack (IPv4/IPv6).
|
|
111
76
|
// If the user switches primary to the same address family as secondary, adjust secondary to the opposite family
|
|
@@ -236,6 +201,15 @@ export const AvailableSubnetsControl = ({
|
|
|
236
201
|
}
|
|
237
202
|
}, [supportsIPv6Primary, primaryNetworkCidr, IPv4Subnets, IPv6Subnets, allSubnets]);
|
|
238
203
|
|
|
204
|
+
// Autoselect values in case machineNetworks is empty
|
|
205
|
+
React.useEffect(() => {
|
|
206
|
+
if (!isViewerMode && values.machineNetworks?.length === 0 && primaryMachineSubnets.length) {
|
|
207
|
+
setFieldValue('machineNetworks', [{ cidr: primaryMachineSubnets[0].subnet, clusterId }]);
|
|
208
|
+
}
|
|
209
|
+
// Run only once
|
|
210
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
211
|
+
}, []);
|
|
212
|
+
|
|
239
213
|
return (
|
|
240
214
|
<>
|
|
241
215
|
<FormGroup
|
|
@@ -252,9 +226,9 @@ export const AvailableSubnetsControl = ({
|
|
|
252
226
|
name="machineNetworks.0.cidr"
|
|
253
227
|
machineSubnets={primaryMachineSubnets}
|
|
254
228
|
isDisabled={isDisabled}
|
|
255
|
-
onAfterSelect={(newSelection) =>
|
|
256
|
-
reorderNetworksForPrimary(newSelection, values, setFieldValue)
|
|
257
|
-
}
|
|
229
|
+
onAfterSelect={(newSelection) => {
|
|
230
|
+
reorderNetworksForPrimary(newSelection, values, setFieldValue);
|
|
231
|
+
}}
|
|
258
232
|
data-testid="subnets-dropdown-toggle-primary"
|
|
259
233
|
/>
|
|
260
234
|
</StackItem>
|
package/lib/common/components/clusterWizard/networkingSteps/ManagedNetworkingControlGroup.tsx
CHANGED
|
@@ -42,7 +42,7 @@ export const ManagedNetworkingControlGroup = ({
|
|
|
42
42
|
name={GROUP_NAME}
|
|
43
43
|
isDisabled={disabled}
|
|
44
44
|
value={'clusterManaged'}
|
|
45
|
-
label={t('ai:Cluster-
|
|
45
|
+
label={t('ai:Cluster-managed networking')}
|
|
46
46
|
/>
|
|
47
47
|
</SplitItem>
|
|
48
48
|
</Split>
|
|
@@ -55,10 +55,10 @@ export const ManagedNetworkingControlGroup = ({
|
|
|
55
55
|
value={'userManaged'}
|
|
56
56
|
label={
|
|
57
57
|
<>
|
|
58
|
-
<span>{t('ai:User-
|
|
58
|
+
<span>{t('ai:User-managed networking')}</span>{' '}
|
|
59
59
|
<PopoverIcon
|
|
60
60
|
bodyContent={t(
|
|
61
|
-
"ai:With
|
|
61
|
+
"ai:With user-managed networking, you'll need to provide and configure a load balancer for the API and ingress endpoints.",
|
|
62
62
|
)}
|
|
63
63
|
/>
|
|
64
64
|
</>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { ButtonVariant, FormGroup, Split, SplitItem, Tooltip } from '@patternfly/react-core';
|
|
2
|
+
import { ButtonVariant, FormGroup, Radio, Split, SplitItem, Tooltip } from '@patternfly/react-core';
|
|
3
3
|
import { useFormikContext } from 'formik';
|
|
4
4
|
import { Address4, Address6 } from 'ip-address';
|
|
5
5
|
|
|
@@ -9,10 +9,9 @@ import {
|
|
|
9
9
|
NETWORK_TYPE_OVN,
|
|
10
10
|
NETWORK_TYPE_SDN,
|
|
11
11
|
} from '../../../types';
|
|
12
|
-
import { getFieldId } from '../../ui';
|
|
12
|
+
import { ConfirmationModal, getFieldId, PopoverIcon } from '../../ui';
|
|
13
13
|
import { DUAL_STACK, NO_SUBNET_SET, SINGLE_STACK } from '../../../config';
|
|
14
14
|
import { RadioField } from '../../ui/formik';
|
|
15
|
-
import { ConfirmationModal, PopoverIcon } from '../../ui';
|
|
16
15
|
import { useTranslation } from '../../../hooks/use-translation-wrapper';
|
|
17
16
|
import { reorderNetworksByCurrentPrimary } from './reorderNetworks';
|
|
18
17
|
import {
|
|
@@ -72,36 +71,32 @@ export const StackTypeControlGroup = ({
|
|
|
72
71
|
|
|
73
72
|
const IPv6Subnets = hostSubnets.filter((subnet) => Address6.isValid(subnet.subnet));
|
|
74
73
|
const cidrIPv6 = IPv6Subnets.length >= 1 ? IPv6Subnets[0].subnet : NO_SUBNET_SET;
|
|
74
|
+
const isSingleStackSelected = values.stackType !== DUAL_STACK;
|
|
75
|
+
|
|
75
76
|
const shouldSetSingleStack =
|
|
76
77
|
!isViewerMode && !isDualStackSelectable && values.stackType === DUAL_STACK;
|
|
77
78
|
|
|
78
79
|
const setSingleStack = React.useCallback(() => {
|
|
79
80
|
setFieldValue('stackType', SINGLE_STACK);
|
|
80
81
|
|
|
81
|
-
// Determine whether the first machine network is IPv4
|
|
82
82
|
const firstNetwork = values.machineNetworks?.[0];
|
|
83
83
|
const isFirstIPv4 = Boolean(firstNetwork?.cidr && Address4.isValid(firstNetwork.cidr));
|
|
84
84
|
|
|
85
85
|
if (values.machineNetworks && values.machineNetworks?.length >= 2) {
|
|
86
|
-
// For single-stack IPv4, prefer IPv4 machine network
|
|
87
86
|
if (isFirstIPv4) {
|
|
88
|
-
// Keep the first network if it's IPv4
|
|
89
87
|
setFieldValue('machineNetworks', [firstNetwork]);
|
|
90
88
|
} else {
|
|
91
|
-
// If first is IPv6, look for IPv4 network or set empty for auto-selection
|
|
92
89
|
const ipv4Network = values.machineNetworks.find(
|
|
93
90
|
(network) => network.cidr && Address4.isValid(network.cidr),
|
|
94
91
|
);
|
|
95
92
|
if (ipv4Network) {
|
|
96
93
|
setFieldValue('machineNetworks', [ipv4Network]);
|
|
97
94
|
} else {
|
|
98
|
-
// No IPv4 network found, set empty for auto-selection
|
|
99
95
|
setFieldValue('machineNetworks', []);
|
|
100
96
|
}
|
|
101
97
|
}
|
|
102
98
|
}
|
|
103
99
|
|
|
104
|
-
// Set cluster/service to IPv4 defaults when switching to single-stack
|
|
105
100
|
if (values.clusterNetworks && values.clusterNetworks.length >= 1) {
|
|
106
101
|
const defaultCluster =
|
|
107
102
|
defaultNetworkValues.clusterNetworksIpv4 && defaultNetworkValues.clusterNetworksIpv4[0];
|
|
@@ -110,12 +105,12 @@ export const StackTypeControlGroup = ({
|
|
|
110
105
|
? {
|
|
111
106
|
cidr: defaultCluster.cidr,
|
|
112
107
|
hostPrefix: defaultCluster.hostPrefix,
|
|
113
|
-
clusterId: firstCluster.clusterId,
|
|
108
|
+
clusterId: firstCluster.clusterId,
|
|
114
109
|
}
|
|
115
110
|
: {
|
|
116
111
|
cidr: '',
|
|
117
112
|
hostPrefix: '',
|
|
118
|
-
clusterId: clusterId,
|
|
113
|
+
clusterId: clusterId,
|
|
119
114
|
};
|
|
120
115
|
setFieldValue('clusterNetworks', [ipv4Cluster]);
|
|
121
116
|
}
|
|
@@ -126,22 +121,20 @@ export const StackTypeControlGroup = ({
|
|
|
126
121
|
const ipv4Service = defaultService
|
|
127
122
|
? {
|
|
128
123
|
cidr: defaultService.cidr,
|
|
129
|
-
clusterId: firstService.clusterId,
|
|
124
|
+
clusterId: firstService.clusterId,
|
|
130
125
|
}
|
|
131
126
|
: {
|
|
132
127
|
cidr: '',
|
|
133
|
-
clusterId: clusterId,
|
|
128
|
+
clusterId: clusterId,
|
|
134
129
|
};
|
|
135
130
|
setFieldValue('serviceNetworks', [ipv4Service]);
|
|
136
131
|
}
|
|
137
132
|
|
|
138
|
-
// Keep only IPv4 VIPs when switching to single-stack (unless DHCP allocation is used)
|
|
139
133
|
if (!values.vipDhcpAllocation) {
|
|
140
134
|
const pruneVips = (
|
|
141
135
|
vips?: { ip?: string; clusterId?: Cluster['id'] }[],
|
|
142
136
|
): { ip: string; clusterId: Cluster['id'] }[] => {
|
|
143
137
|
if (!vips || vips.length === 0) return [];
|
|
144
|
-
// Choose which index to keep based on whether the first network is IPv4
|
|
145
138
|
const keepIndex = isFirstIPv4 ? 0 : 1;
|
|
146
139
|
const chosen = vips[keepIndex];
|
|
147
140
|
return chosen && chosen.ip
|
|
@@ -177,12 +170,10 @@ export const StackTypeControlGroup = ({
|
|
|
177
170
|
}
|
|
178
171
|
|
|
179
172
|
if (values.machineNetworks && values.machineNetworks?.length < 2) {
|
|
180
|
-
// Ensure IPv4 is primary when switching to dual-stack
|
|
181
173
|
const firstNetwork = values.machineNetworks[0];
|
|
182
174
|
const isFirstIPv6 = firstNetwork?.cidr && Address6.isValid(firstNetwork.cidr);
|
|
183
175
|
|
|
184
176
|
if (isFirstIPv6) {
|
|
185
|
-
// If first network is IPv6, make IPv4 primary and IPv6 secondary
|
|
186
177
|
const IPv4Subnets = hostSubnets.filter((subnet) => Address4.isValid(subnet.subnet));
|
|
187
178
|
const cidrIPv4 = IPv4Subnets.length >= 1 ? IPv4Subnets[0].subnet : NO_SUBNET_SET;
|
|
188
179
|
setFieldValue(
|
|
@@ -194,7 +185,6 @@ export const StackTypeControlGroup = ({
|
|
|
194
185
|
false,
|
|
195
186
|
);
|
|
196
187
|
} else {
|
|
197
|
-
// If first network is IPv4, add IPv6 as secondary
|
|
198
188
|
setFieldValue(
|
|
199
189
|
'machineNetworks',
|
|
200
190
|
[...values.machineNetworks, { cidr: cidrIPv6, clusterId: clusterId }],
|
|
@@ -225,7 +215,6 @@ export const StackTypeControlGroup = ({
|
|
|
225
215
|
};
|
|
226
216
|
setFieldValue('serviceNetworks', [...values.serviceNetworks, secondServiceNetwork], false);
|
|
227
217
|
}
|
|
228
|
-
// Initialize VIPs for dual-stack
|
|
229
218
|
if (values.apiVips && values.apiVips.length < 2) {
|
|
230
219
|
setFieldValue(
|
|
231
220
|
'apiVips',
|
|
@@ -244,8 +233,9 @@ export const StackTypeControlGroup = ({
|
|
|
244
233
|
);
|
|
245
234
|
}
|
|
246
235
|
};
|
|
247
|
-
|
|
236
|
+
|
|
248
237
|
const primaryCidr = values.machineNetworks?.[0]?.cidr;
|
|
238
|
+
|
|
249
239
|
React.useEffect(() => {
|
|
250
240
|
if (isViewerMode) {
|
|
251
241
|
return;
|
|
@@ -261,10 +251,11 @@ export const StackTypeControlGroup = ({
|
|
|
261
251
|
values.serviceNetworks,
|
|
262
252
|
]);
|
|
263
253
|
|
|
264
|
-
const
|
|
265
|
-
if (
|
|
266
|
-
|
|
267
|
-
}
|
|
254
|
+
const handleSingleStackRadioClick = () => {
|
|
255
|
+
if (isSingleStackSelected) {
|
|
256
|
+
return;
|
|
257
|
+
}
|
|
258
|
+
if (
|
|
268
259
|
hasDualStackConfigurationChanged(
|
|
269
260
|
defaultNetworkValues.clusterNetworksDualstack || [],
|
|
270
261
|
defaultNetworkValues.serviceNetworksDualstack || [],
|
|
@@ -284,32 +275,34 @@ export const StackTypeControlGroup = ({
|
|
|
284
275
|
}
|
|
285
276
|
}, [shouldSetSingleStack, setSingleStack]);
|
|
286
277
|
|
|
278
|
+
const singleStackPopoverContent = allowSingleStackIPv6
|
|
279
|
+
? t('ai:Select a single address family (IPv4 or IPv6) for your machine network.')
|
|
280
|
+
: t('ai:Select this when your hosts are using only IPv4.');
|
|
281
|
+
|
|
282
|
+
const singleStackRadioId = getFieldId('stackType', 'radio', SINGLE_STACK);
|
|
283
|
+
|
|
287
284
|
return (
|
|
288
285
|
<>
|
|
289
286
|
<FormGroup
|
|
290
|
-
label=
|
|
287
|
+
label={t('ai:Networking stack type')}
|
|
291
288
|
fieldId={getFieldId('stackType', 'radio')}
|
|
292
|
-
onChange={setStackType}
|
|
293
289
|
isInline
|
|
294
290
|
>
|
|
295
291
|
<Split>
|
|
296
292
|
<SplitItem>
|
|
297
|
-
<
|
|
298
|
-
|
|
293
|
+
<Radio
|
|
294
|
+
id={singleStackRadioId}
|
|
295
|
+
name="stackType"
|
|
299
296
|
value={SINGLE_STACK}
|
|
300
|
-
isDisabled={!isDualStackSelectable || isViewerMode}
|
|
301
297
|
label={`${singleStackLabel}\u00A0`}
|
|
298
|
+
isChecked={isSingleStackSelected}
|
|
299
|
+
isDisabled={!isDualStackSelectable || isViewerMode}
|
|
300
|
+
onChange={() => handleSingleStackRadioClick()}
|
|
301
|
+
data-testid="form-radio-stackType-singleStack-field"
|
|
302
302
|
/>
|
|
303
303
|
</SplitItem>
|
|
304
304
|
<SplitItem>
|
|
305
|
-
<PopoverIcon
|
|
306
|
-
bodyContent={
|
|
307
|
-
allowSingleStackIPv6
|
|
308
|
-
? t('ai:Select a single address family (IPv4 or IPv6) for your machine network.')
|
|
309
|
-
: t('ai:Select this when your hosts are using only IPv4.')
|
|
310
|
-
}
|
|
311
|
-
buttonStyle={{ top: '-4px' }}
|
|
312
|
-
/>
|
|
305
|
+
<PopoverIcon bodyContent={singleStackPopoverContent} buttonStyle={{ top: '-4px' }} />
|
|
313
306
|
</SplitItem>
|
|
314
307
|
</Split>
|
|
315
308
|
<Split>
|
|
@@ -325,6 +318,8 @@ export const StackTypeControlGroup = ({
|
|
|
325
318
|
value={DUAL_STACK}
|
|
326
319
|
isDisabled={!isDualStackSelectable || isViewerMode}
|
|
327
320
|
label="Dual-stack "
|
|
321
|
+
callFormikOnChange={false}
|
|
322
|
+
onChange={() => setDualStack()}
|
|
328
323
|
/>
|
|
329
324
|
</Tooltip>
|
|
330
325
|
</SplitItem>
|
|
@@ -343,7 +338,7 @@ export const StackTypeControlGroup = ({
|
|
|
343
338
|
titleIconVariant={'warning'}
|
|
344
339
|
confirmationButtonText={'Change'}
|
|
345
340
|
confirmationButtonVariant={ButtonVariant.primary}
|
|
346
|
-
content={<p>All data and configuration done for
|
|
341
|
+
content={<p>All data and configuration done for 'Dual-stack' will be lost.</p>}
|
|
347
342
|
onClose={() => {
|
|
348
343
|
setConfirmModal(false);
|
|
349
344
|
setDualStack();
|
|
@@ -282,23 +282,3 @@ export const areOnlySoftValidationsOfWizardStepFailing = <ClusterWizardStepsType
|
|
|
282
282
|
}
|
|
283
283
|
return true;
|
|
284
284
|
};
|
|
285
|
-
|
|
286
|
-
export const findValidationStep = <ClusterWizardStepsType extends string>(
|
|
287
|
-
validationId: ClusterValidationId | HostValidationId,
|
|
288
|
-
wizardStepsValidationsMap: WizardStepsValidationMap<ClusterWizardStepsType>,
|
|
289
|
-
minimumStep: ClusterWizardStepsType,
|
|
290
|
-
): ClusterWizardStepsType | undefined => {
|
|
291
|
-
const wizardStepsIds = lodashKeys(wizardStepsValidationsMap) as ClusterWizardStepsType[];
|
|
292
|
-
let isBeforeMinimumStep = true;
|
|
293
|
-
return wizardStepsIds.find((wizardStepId) => {
|
|
294
|
-
if (wizardStepId === minimumStep) {
|
|
295
|
-
isBeforeMinimumStep = false;
|
|
296
|
-
}
|
|
297
|
-
if (isBeforeMinimumStep) {
|
|
298
|
-
return false;
|
|
299
|
-
}
|
|
300
|
-
// find first matching validation-map name, ignoring steps before minimumStep
|
|
301
|
-
const { host: hostValidationMap } = wizardStepsValidationsMap[wizardStepId];
|
|
302
|
-
return hostValidationMap.validationIds.includes(validationId as HostValidationId);
|
|
303
|
-
});
|
|
304
|
-
};
|
|
@@ -263,7 +263,14 @@ export const areOnlySoftValidationsFailing = (validationsInfo: HostValidationsIn
|
|
|
263
263
|
);
|
|
264
264
|
if (!failingValidationIds.length) return false;
|
|
265
265
|
for (const id of failingValidationIds) {
|
|
266
|
-
if (
|
|
266
|
+
if (
|
|
267
|
+
![
|
|
268
|
+
'ntp-synced',
|
|
269
|
+
'container-images-available',
|
|
270
|
+
'mtu-valid',
|
|
271
|
+
'inventory-not-partially-truncated',
|
|
272
|
+
].includes(id)
|
|
273
|
+
) {
|
|
267
274
|
return false;
|
|
268
275
|
}
|
|
269
276
|
}
|
|
@@ -92,6 +92,8 @@ export const hostValidationLabels = (t: TFunction): { [key in HostValidationId]:
|
|
|
92
92
|
'sufficient-network-latency-requirement-for-role': t('ai:Network latency'),
|
|
93
93
|
'sufficient-packet-loss-requirement-for-role': t('ai:Packet loss'),
|
|
94
94
|
'has-inventory': t('ai:Hardware information'),
|
|
95
|
+
'inventory-not-partially-truncated': t('ai:Inventory partially truncated'),
|
|
96
|
+
'inventory-not-fully-truncated': t('ai:Inventory fully truncated'),
|
|
95
97
|
'has-min-cpu-cores': t('ai:Minimum CPU cores'),
|
|
96
98
|
'has-min-memory': t('ai:Minimum Memory'),
|
|
97
99
|
'has-min-valid-disks': t('ai:Minimum disks of required size'),
|
|
@@ -163,6 +165,8 @@ export const hostValidationFailureHints = (
|
|
|
163
165
|
'sufficient-network-latency-requirement-for-role': '',
|
|
164
166
|
'sufficient-packet-loss-requirement-for-role': '',
|
|
165
167
|
'has-inventory': '',
|
|
168
|
+
'inventory-not-partially-truncated': '',
|
|
169
|
+
'inventory-not-fully-truncated': '',
|
|
166
170
|
'has-min-cpu-cores': '',
|
|
167
171
|
'has-min-memory': '',
|
|
168
172
|
'has-min-valid-disks': '',
|
|
@@ -39,7 +39,15 @@ export const selectMonitoredOperators = (monitoredOperators: Cluster['monitoredO
|
|
|
39
39
|
|
|
40
40
|
export const selectOlmOperators = (cluster?: Pick<Cluster, 'monitoredOperators'>) => {
|
|
41
41
|
return selectMonitoredOperators(cluster?.monitoredOperators).filter(
|
|
42
|
-
(operator) =>
|
|
42
|
+
(operator) =>
|
|
43
|
+
operator.operatorType === 'olm' && !!operator.name && operator.dependencyOnly !== true,
|
|
44
|
+
);
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
// Includes dependency-only operators
|
|
48
|
+
export const selectAllOlmOperators = (cluster?: Pick<Cluster, 'monitoredOperators'>) => {
|
|
49
|
+
return selectMonitoredOperators(cluster?.monitoredOperators).filter(
|
|
50
|
+
(operator) => operator.operatorType === 'olm' && !!operator.name,
|
|
43
51
|
);
|
|
44
52
|
};
|
|
45
53
|
|
|
@@ -120,11 +128,3 @@ export const isClusterPlatformTypeVM = ({ platform }: Pick<Cluster, 'platform'>)
|
|
|
120
128
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
121
129
|
// @ts-ignore
|
|
122
130
|
SupportedPlatformIntegrations.includes(platform?.type ?? 'none');
|
|
123
|
-
|
|
124
|
-
export const numberOfEnabledOperators = (monitoredOperators: Cluster['monitoredOperators']) => {
|
|
125
|
-
return monitoredOperators
|
|
126
|
-
? selectMonitoredOperators(
|
|
127
|
-
monitoredOperators.filter((operator) => operator.operatorType === 'olm'),
|
|
128
|
-
).length
|
|
129
|
-
: 0;
|
|
130
|
-
};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { IRow } from '@patternfly/react-table';
|
|
2
2
|
import {
|
|
3
|
+
BundleCreateParams,
|
|
3
4
|
Cluster,
|
|
4
5
|
V2ClusterUpdateParams,
|
|
5
6
|
ClusterValidationId,
|
|
@@ -57,8 +58,9 @@ export type HostDiscoveryValues = V2ClusterUpdateParams & {
|
|
|
57
58
|
export type StorageValues = V2ClusterUpdateParams & {
|
|
58
59
|
nodeLabeling: string;
|
|
59
60
|
};
|
|
61
|
+
|
|
60
62
|
export type OperatorsValues = {
|
|
61
|
-
selectedBundles:
|
|
63
|
+
selectedBundles: BundleCreateParams[];
|
|
62
64
|
selectedOperators: string[];
|
|
63
65
|
};
|
|
64
66
|
|
|
@@ -9,7 +9,7 @@ import { HostSubnets, NetworkConfigurationValues } from '../types';
|
|
|
9
9
|
import { IP_V4_ZERO, IP_V6_ZERO, MAC_REGEX } from './regexes';
|
|
10
10
|
import { getArrayIndexFromPath, isIPorDN, isIPv4Address, isIPv6Address } from './utils';
|
|
11
11
|
import { NO_SUBNET_SET } from '../config';
|
|
12
|
-
import {
|
|
12
|
+
import { overlapCidr } from 'cidr-tools';
|
|
13
13
|
import parseUrl from 'parse-url';
|
|
14
14
|
import { TFunction } from 'i18next';
|
|
15
15
|
|
|
@@ -272,7 +272,7 @@ export const ipBlockValidationSchema = (
|
|
|
272
272
|
.test('cidrs-can-not-overlap', t('ai:Provided CIDRs can not overlap.'), (cidr: string) => {
|
|
273
273
|
try {
|
|
274
274
|
if (cidr && reservedCidrs && reservedCidrs.length > 0) {
|
|
275
|
-
return !
|
|
275
|
+
return !overlapCidr(cidr, reservedCidrs);
|
|
276
276
|
}
|
|
277
277
|
} catch {
|
|
278
278
|
return false;
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
Outlet,
|
|
8
8
|
unstable_HistoryRouter as HistoryRouter,
|
|
9
9
|
HistoryRouterProps,
|
|
10
|
-
} from 'react-router
|
|
10
|
+
} from 'react-router';
|
|
11
11
|
import { Clusters, ClusterPage, NewClusterPage } from './clusters';
|
|
12
12
|
import type { FeatureListType } from '../../common/features/featureGate';
|
|
13
13
|
import { AssistedUILibVersion } from './ui';
|
|
@@ -39,7 +39,7 @@ export const UILibRoutes = ({
|
|
|
39
39
|
<Route index element={<Clusters />} />
|
|
40
40
|
</Route>
|
|
41
41
|
{children}
|
|
42
|
-
<Route path="*" element={<Navigate to="assisted-installer/clusters" />} />
|
|
42
|
+
<Route path="*" element={<Navigate to="/assisted-installer/clusters" />} />
|
|
43
43
|
</Routes>
|
|
44
44
|
</>
|
|
45
45
|
);
|
|
@@ -19,6 +19,7 @@ import { mapClusterCpuArchToInfraEnvCpuArch } from '../../services/CpuArchitectu
|
|
|
19
19
|
import { usePullSecret } from '../../hooks';
|
|
20
20
|
import { Cluster } from '@openshift-assisted/types/assisted-installer-service';
|
|
21
21
|
import { isOciPlatformType } from '../utils';
|
|
22
|
+
import { ModalBody } from '@patternfly/react-core';
|
|
22
23
|
|
|
23
24
|
type DiscoveryImageFormProps = {
|
|
24
25
|
cluster: Cluster;
|
|
@@ -93,10 +94,18 @@ const DiscoveryImageForm = ({
|
|
|
93
94
|
};
|
|
94
95
|
|
|
95
96
|
if (infraEnvError) {
|
|
96
|
-
return
|
|
97
|
+
return (
|
|
98
|
+
<ModalBody style={{ height: '696px' }}>
|
|
99
|
+
<ErrorState />
|
|
100
|
+
</ModalBody>
|
|
101
|
+
);
|
|
97
102
|
}
|
|
98
103
|
if (!infraEnv) {
|
|
99
|
-
return
|
|
104
|
+
return (
|
|
105
|
+
<ModalBody style={{ height: '696px' }}>
|
|
106
|
+
<LoadingState />
|
|
107
|
+
</ModalBody>
|
|
108
|
+
);
|
|
100
109
|
}
|
|
101
110
|
return (
|
|
102
111
|
<OcmDiscoveryImageConfigForm
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
Button,
|
|
4
|
+
ButtonVariant,
|
|
5
|
+
Modal,
|
|
6
|
+
ModalBody,
|
|
7
|
+
ModalHeader,
|
|
8
|
+
ModalVariant,
|
|
9
|
+
} from '@patternfly/react-core';
|
|
3
10
|
import { pluralize } from 'humanize-plus';
|
|
4
11
|
import {
|
|
5
12
|
AI_CISCO_INTERSIGHT_TAG,
|
|
@@ -14,7 +21,6 @@ import { useModalDialogsContext } from '../hosts/ModalDialogsContext';
|
|
|
14
21
|
import useInfraEnvImageUrl from '../../hooks/useInfraEnvImageUrl';
|
|
15
22
|
import useInfraEnvIpxeImageUrl from '../../hooks/useInfraEnvIpxeImageUrl';
|
|
16
23
|
import DownloadIpxeScript from '../../../common/components/clusterConfiguration/DownloadIpxeScript';
|
|
17
|
-
import './DiscoveryImageModal.css';
|
|
18
24
|
import { Cluster } from '@openshift-assisted/types/assisted-installer-service';
|
|
19
25
|
import { ClustersService } from '../../services';
|
|
20
26
|
import { useDispatch } from 'react-redux';
|
|
@@ -115,7 +121,11 @@ export const DiscoveryImageModal = () => {
|
|
|
115
121
|
data-testid="discovery-modal-title"
|
|
116
122
|
title={`Add ${pluralize(+isSNOCluster, 'host')}`}
|
|
117
123
|
/>
|
|
118
|
-
{(isoDownloadError || ipxeDownloadError) &&
|
|
124
|
+
{(isoDownloadError || ipxeDownloadError) && (
|
|
125
|
+
<ModalBody>
|
|
126
|
+
<ErrorState />
|
|
127
|
+
</ModalBody>
|
|
128
|
+
)}
|
|
119
129
|
{isoDownloadUrl ? (
|
|
120
130
|
<DownloadIso
|
|
121
131
|
fileName={`discovery_image_${cluster.name || ''}.iso`}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/* eslint-disable no-console */
|
|
2
1
|
import * as React from 'react';
|
|
3
2
|
import { Form } from '@patternfly/react-core';
|
|
4
3
|
import { useFormikContext } from 'formik';
|
|
@@ -40,6 +39,7 @@ import ControlPlaneNodesDropdown, {
|
|
|
40
39
|
DEFAULT_VALUE_CPN,
|
|
41
40
|
isCPNDropdownItemEnabled,
|
|
42
41
|
} from './ControlPlaneNodesDropdown';
|
|
42
|
+
import { isFeatureSupportedAndAvailable } from '../featureSupportLevels/featureStateUtils';
|
|
43
43
|
|
|
44
44
|
export type OcmClusterDetailsFormFieldsProps = {
|
|
45
45
|
cluster?: Cluster;
|
|
@@ -79,6 +79,13 @@ export const OcmClusterDetailsFormFields = ({
|
|
|
79
79
|
architectureData[values.cpuArchitecture as SupportedCpuArchitecture].label;
|
|
80
80
|
|
|
81
81
|
const featureSupportLevelContext = useNewFeatureSupportLevel();
|
|
82
|
+
const tnaSupport = featureSupportLevelContext.getFeatureSupportLevel(
|
|
83
|
+
'TNA',
|
|
84
|
+
featureSupportLevelData ?? undefined,
|
|
85
|
+
);
|
|
86
|
+
const isArbiterEncryptionAvailable = isSingleClusterFeatureEnabled
|
|
87
|
+
? false
|
|
88
|
+
: isFeatureSupportedAndAvailable(tnaSupport);
|
|
82
89
|
|
|
83
90
|
React.useEffect(() => {
|
|
84
91
|
nameInputRef.current?.focus();
|
|
@@ -223,6 +230,7 @@ export const OcmClusterDetailsFormFields = ({
|
|
|
223
230
|
values={values}
|
|
224
231
|
isDisabled={cluster?.pullSecretSet}
|
|
225
232
|
isSNO={values.controlPlaneCount === 1}
|
|
233
|
+
isArbiterEncryptionAvailable={isArbiterEncryptionAvailable}
|
|
226
234
|
docVersion={openshiftVersion}
|
|
227
235
|
/>
|
|
228
236
|
</Form>
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
EventListFetchProps,
|
|
5
5
|
getEnabledHosts,
|
|
6
6
|
RenderIf,
|
|
7
|
-
|
|
7
|
+
selectAllOlmOperators,
|
|
8
8
|
} from '../../../common';
|
|
9
9
|
import { FinalizingProgress } from '../../../common/components/clusterDetail/FinalizingProgress';
|
|
10
10
|
import { ProgressBarTexts } from '../../../common/components/clusterDetail/ProgressBarTexts';
|
|
@@ -26,7 +26,7 @@ const OcmClusterProgressItems = ({
|
|
|
26
26
|
fallbackEventsURL,
|
|
27
27
|
}: OcmClusterProgressItemsProps) => {
|
|
28
28
|
const enabledHosts = getEnabledHosts(cluster.hosts);
|
|
29
|
-
const olmOperators =
|
|
29
|
+
const olmOperators = selectAllOlmOperators(cluster);
|
|
30
30
|
|
|
31
31
|
const masterHosts = enabledHosts.filter((host) => host.role && 'master' === host.role);
|
|
32
32
|
const workerHosts = enabledHosts.filter((host) => host.role && 'worker' === host.role);
|
|
@@ -145,7 +145,7 @@ export const OcmDiscoveryImageConfigForm = ({
|
|
|
145
145
|
{({ submitForm, isSubmitting, status, setStatus }) => {
|
|
146
146
|
return (
|
|
147
147
|
<>
|
|
148
|
-
<ModalBody>
|
|
148
|
+
<ModalBody style={{ maxHeight: '611px' }}>
|
|
149
149
|
<Stack hasGutter>
|
|
150
150
|
<StackItem>
|
|
151
151
|
<Alert variant={AlertVariant.info} isInline title={alertDiscoveryText} />
|
package/lib/ocm/components/clusterConfiguration/manifestsConfiguration/CustomManifestsPage.tsx
CHANGED
|
@@ -22,6 +22,7 @@ import { getFieldId } from '../../../../common/components/ui/formik';
|
|
|
22
22
|
import { isOciPlatformType } from '../../utils';
|
|
23
23
|
import DeleteCustomManifestModal from './DeleteCustomManifestModal';
|
|
24
24
|
import { ClustersService } from '../../../services';
|
|
25
|
+
import { userProvidedManifests } from './components/utils';
|
|
25
26
|
import { useClusterWizardContext } from '../../clusterWizard/ClusterWizardContext';
|
|
26
27
|
|
|
27
28
|
export const CustomManifestsPage = ({
|
|
@@ -77,7 +78,13 @@ export const CustomManifestsPage = ({
|
|
|
77
78
|
const cleanCustomManifests = React.useCallback(async () => {
|
|
78
79
|
if (!clusterWizardContext.uiSettings?.customManifestsAdded || !cluster.id) return;
|
|
79
80
|
const { data: manifests } = await ClustersAPI.getManifests(cluster.id);
|
|
80
|
-
|
|
81
|
+
const manifestsToRemove = userProvidedManifests(manifests).map((manifest) => ({
|
|
82
|
+
...manifest,
|
|
83
|
+
folder: manifest.folder || 'manifests',
|
|
84
|
+
fileName: manifest.fileName || '',
|
|
85
|
+
yamlContent: '',
|
|
86
|
+
}));
|
|
87
|
+
await ClustersService.removeClusterManifests(manifestsToRemove, cluster.id);
|
|
81
88
|
setUseCustomManifests(false);
|
|
82
89
|
setDeleteModalOpen(false);
|
|
83
90
|
await clusterWizardContext.updateUISettings({
|