@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
|
@@ -86,7 +86,7 @@ const CpuArchitectureDropdown = ({
|
|
|
86
86
|
id={fieldId}
|
|
87
87
|
ref={toggleRef}
|
|
88
88
|
onClick={() => setCpuArchOpen(!cpuArchOpen)}
|
|
89
|
-
|
|
89
|
+
isFullWidth
|
|
90
90
|
>
|
|
91
91
|
{value ? architectureData[value].label : t('ai:CPU architecture')}
|
|
92
92
|
</MenuToggle>
|
|
@@ -94,6 +94,7 @@ const CpuArchitectureDropdown = ({
|
|
|
94
94
|
isOpen={cpuArchOpen}
|
|
95
95
|
onSelect={onCpuArchSelect}
|
|
96
96
|
onOpenChange={() => setCpuArchOpen(!cpuArchOpen)}
|
|
97
|
+
shouldFocusToggleOnSelect
|
|
97
98
|
>
|
|
98
99
|
{dropdownItems}
|
|
99
100
|
</Dropdown>
|
|
@@ -172,6 +172,11 @@ export const getClusterProperties = (
|
|
|
172
172
|
const serviceNetworks = agentClusterInstall.spec?.networking?.serviceNetwork;
|
|
173
173
|
const clusterNetworks = agentClusterInstall.spec?.networking?.clusterNetwork;
|
|
174
174
|
|
|
175
|
+
const apiIPs = agentClusterInstall.spec?.apiVIPs || [agentClusterInstall.spec?.apiVIP];
|
|
176
|
+
const ingressIPs = agentClusterInstall.spec?.ingressVIPs || [
|
|
177
|
+
agentClusterInstall.spec?.ingressVIP,
|
|
178
|
+
];
|
|
179
|
+
|
|
175
180
|
return {
|
|
176
181
|
// TODO: we should translate following keys since they are used "as it is" in AcmDescriptionList.tsx / List component of the stolostron project
|
|
177
182
|
name: {
|
|
@@ -191,12 +196,12 @@ export const getClusterProperties = (
|
|
|
191
196
|
value: clusterDeployment.spec?.baseDomain,
|
|
192
197
|
},
|
|
193
198
|
apiVip: {
|
|
194
|
-
key: 'API IP',
|
|
195
|
-
value:
|
|
199
|
+
key: apiIPs.length > 1 ? 'API IPs' : 'API IP',
|
|
200
|
+
value: apiIPs.join(', '),
|
|
196
201
|
},
|
|
197
202
|
ingressVip: {
|
|
198
|
-
key: 'Ingress IP',
|
|
199
|
-
value:
|
|
203
|
+
key: ingressIPs.length > 1 ? 'Ingress IPs' : 'Ingress IP',
|
|
204
|
+
value: ingressIPs.join(', '),
|
|
200
205
|
},
|
|
201
206
|
clusterNetworkCidr: {
|
|
202
207
|
key: (clusterNetworks?.length || 0) > 1 ? 'Cluster network CIDRs' : 'Cluster network CIDR',
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { useNavigate } from 'react-router
|
|
2
|
+
import { useNavigate } from 'react-router';
|
|
3
3
|
import {
|
|
4
4
|
Alert,
|
|
5
5
|
AlertVariant,
|
|
@@ -69,7 +69,7 @@ export const CimConfigProgressAlert: React.FC<CimConfigProgressAlertProps> = ({
|
|
|
69
69
|
variant={ButtonVariant.link}
|
|
70
70
|
isInline
|
|
71
71
|
key="assisted-service-deployment"
|
|
72
|
-
onClick={() => navigate(assistedServiceDeploymentUrl)}
|
|
72
|
+
onClick={() => void navigate(assistedServiceDeploymentUrl)}
|
|
73
73
|
>
|
|
74
74
|
{t('ai:Troubleshoot in the assisted service deployment')}
|
|
75
75
|
</Button>
|
|
@@ -161,7 +161,7 @@ export const CimConfigurationFormFields = ({
|
|
|
161
161
|
<PopoverIcon
|
|
162
162
|
noVerticalAlign
|
|
163
163
|
bodyContent={t(
|
|
164
|
-
'ai:Specify how much storage to allocate for the images of the clusters. There must be 1G of image storage for each instance of Red Hat Enterprise Linux CoreOS that is running. Recommended is
|
|
164
|
+
'ai:Specify how much storage to allocate for the images of the clusters. There must be 1G of image storage for each instance of Red Hat Enterprise Linux CoreOS that is running. Recommended is 100Gi or more. The value can not be updated later.',
|
|
165
165
|
)}
|
|
166
166
|
aria-label={t('ai:More info for image storage')}
|
|
167
167
|
>
|
|
@@ -118,7 +118,7 @@ export const CimConfigurationModal: React.FC<CimConfigurationModalProps> = ({
|
|
|
118
118
|
agentServiceConfig?.spec?.filesystemStorage?.resources?.requests?.storage,
|
|
119
119
|
),
|
|
120
120
|
imgVolSize: getStorageSizeGiB(
|
|
121
|
-
|
|
121
|
+
100,
|
|
122
122
|
agentServiceConfig?.spec?.imageStorage?.resources?.requests?.storage,
|
|
123
123
|
),
|
|
124
124
|
configureLoadBalancer: platform === 'AWS',
|
|
@@ -134,7 +134,7 @@ export const CimConfigurationModal: React.FC<CimConfigurationModalProps> = ({
|
|
|
134
134
|
.min(MIN_FS_VOL_SIZE, t('ai:Minimal value is 1Gi'))
|
|
135
135
|
.required(t('ai:Required field')),
|
|
136
136
|
imgVolSize: Yup.number()
|
|
137
|
-
.min(MIN_IMG_VOL_SIZE, t('ai:Minimal value is
|
|
137
|
+
.min(MIN_IMG_VOL_SIZE, t('ai:Minimal value is 50Gi'))
|
|
138
138
|
.required(t('ai:Required field')),
|
|
139
139
|
configureLoadBalancer: Yup.boolean(),
|
|
140
140
|
addCiscoIntersightURL: Yup.boolean(),
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { useNavigate } from 'react-router
|
|
2
|
+
import { useNavigate } from 'react-router';
|
|
3
3
|
import { Alert, AlertActionLink, AlertVariant } from '@patternfly/react-core';
|
|
4
4
|
import { ExternalLinkAltIcon } from '@patternfly/react-icons/dist/js/icons/external-link-alt-icon';
|
|
5
5
|
|
|
@@ -20,7 +20,10 @@ export const CimStorageMissingAlert: React.FC<{
|
|
|
20
20
|
);
|
|
21
21
|
|
|
22
22
|
const actionLinks: React.ReactNode[] = [
|
|
23
|
-
<AlertActionLink
|
|
23
|
+
<AlertActionLink
|
|
24
|
+
key="install-storage-operator"
|
|
25
|
+
onClick={() => void navigate(storageOperatorUrl)}
|
|
26
|
+
>
|
|
24
27
|
{t('ai:Install storage operator')}
|
|
25
28
|
</AlertActionLink>,
|
|
26
29
|
<AlertActionLink key="storage-class" onClick={() => window.open(docStorageUrl, '_blank')}>
|
|
@@ -2,7 +2,7 @@ import * as React from 'react';
|
|
|
2
2
|
import { TFunction } from 'i18next';
|
|
3
3
|
import { Button, Flex, FlexItem, Icon, Popover } from '@patternfly/react-core';
|
|
4
4
|
import { InfoCircleIcon } from '@patternfly/react-icons/dist/js/icons/info-circle-icon';
|
|
5
|
-
import { Link } from 'react-router
|
|
5
|
+
import { Link } from 'react-router';
|
|
6
6
|
|
|
7
7
|
import { Host } from '@openshift-assisted/types/assisted-installer-service';
|
|
8
8
|
import {
|
package/lib/cim/hooks/index.tsx
CHANGED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { useK8sWatchResource } from './useK8sWatchResource';
|
|
2
|
+
import { AgentK8sResource } from '../types';
|
|
3
|
+
import { K8sWatchHookProps } from './types';
|
|
4
|
+
|
|
5
|
+
export const useAgents = (props: K8sWatchHookProps) =>
|
|
6
|
+
useK8sWatchResource<AgentK8sResource[]>(
|
|
7
|
+
{
|
|
8
|
+
groupVersionKind: {
|
|
9
|
+
group: 'agent-install.openshift.io',
|
|
10
|
+
kind: 'Agent',
|
|
11
|
+
version: 'v1beta1',
|
|
12
|
+
},
|
|
13
|
+
},
|
|
14
|
+
props,
|
|
15
|
+
);
|
|
@@ -29,6 +29,7 @@ const hasFilledTangServers = (tangServers: TangServer[]): boolean => {
|
|
|
29
29
|
export interface DiskEncryptionControlGroupProps {
|
|
30
30
|
values: DiskEncryptionValues;
|
|
31
31
|
isSNO: boolean;
|
|
32
|
+
isArbiterEncryptionAvailable?: boolean;
|
|
32
33
|
isDisabled?: boolean;
|
|
33
34
|
docVersion?: string;
|
|
34
35
|
}
|
|
@@ -36,6 +37,7 @@ export interface DiskEncryptionControlGroupProps {
|
|
|
36
37
|
const DiskEncryptionControlGroup = ({
|
|
37
38
|
values,
|
|
38
39
|
isSNO = false,
|
|
40
|
+
isArbiterEncryptionAvailable = true,
|
|
39
41
|
isDisabled = false,
|
|
40
42
|
docVersion,
|
|
41
43
|
}: DiskEncryptionControlGroupProps) => {
|
|
@@ -77,6 +79,12 @@ const DiskEncryptionControlGroup = ({
|
|
|
77
79
|
setFieldValue('enableDiskEncryptionOnWorkers', false);
|
|
78
80
|
}
|
|
79
81
|
}, [isSNO, setFieldValue]);
|
|
82
|
+
|
|
83
|
+
React.useEffect(() => {
|
|
84
|
+
if (!isArbiterEncryptionAvailable) {
|
|
85
|
+
setFieldValue('enableDiskEncryptionOnArbiters', false);
|
|
86
|
+
}
|
|
87
|
+
}, [isArbiterEncryptionAvailable, setFieldValue]);
|
|
80
88
|
const { t } = useTranslation();
|
|
81
89
|
const disableMessage = t('ai:This option is not editable after the draft cluster is created');
|
|
82
90
|
const tooltipProps = {
|
|
@@ -105,14 +113,16 @@ const DiskEncryptionControlGroup = ({
|
|
|
105
113
|
/>
|
|
106
114
|
</StackItem>
|
|
107
115
|
</RenderIf>
|
|
108
|
-
<
|
|
109
|
-
<
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
+
<RenderIf condition={isArbiterEncryptionAvailable}>
|
|
117
|
+
<StackItem>
|
|
118
|
+
<SwitchField
|
|
119
|
+
tooltipProps={tooltipProps}
|
|
120
|
+
name="enableDiskEncryptionOnArbiters"
|
|
121
|
+
label={t('ai:Arbiter')}
|
|
122
|
+
isDisabled={isDisabled}
|
|
123
|
+
/>
|
|
124
|
+
</StackItem>
|
|
125
|
+
</RenderIf>
|
|
116
126
|
<RenderIf
|
|
117
127
|
condition={
|
|
118
128
|
enableDiskEncryptionOnMasters ||
|
|
@@ -75,11 +75,13 @@ export const ExternalPlatformsDropdown = ({ isDisabled }: { isDisabled: boolean
|
|
|
75
75
|
<Dropdown
|
|
76
76
|
isOpen={isOpen}
|
|
77
77
|
toggle={(toggleRef) => (
|
|
78
|
-
<MenuToggle ref={toggleRef}
|
|
78
|
+
<MenuToggle ref={toggleRef} onClick={() => setIsOpen(!isOpen)} isFullWidth>
|
|
79
79
|
{value ? platforms[value] : t('ai:Integrate with external partner platforms')}
|
|
80
80
|
</MenuToggle>
|
|
81
81
|
)}
|
|
82
82
|
onSelect={onSelect}
|
|
83
|
+
onOpenChange={() => setIsOpen(!isOpen)}
|
|
84
|
+
shouldFocusToggleOnSelect
|
|
83
85
|
>
|
|
84
86
|
{options}
|
|
85
87
|
</Dropdown>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { test, describe, expect } from 'vitest';
|
|
2
|
-
import { isDualStack } from './utils';
|
|
2
|
+
import { isDualStack, getIPv6FromDualstack } from './utils';
|
|
3
3
|
import {
|
|
4
4
|
MachineNetwork,
|
|
5
5
|
ClusterNetwork,
|
|
@@ -273,3 +273,45 @@ describe('isDualStack', () => {
|
|
|
273
273
|
});
|
|
274
274
|
});
|
|
275
275
|
});
|
|
276
|
+
|
|
277
|
+
describe('getIPv6FromDualstack', () => {
|
|
278
|
+
test('returns the IPv6 entry from a dualstack array', () => {
|
|
279
|
+
const networks = [
|
|
280
|
+
{ cidr: '10.128.0.0/14', hostPrefix: 23, clusterId: 'test' },
|
|
281
|
+
{ cidr: 'fd01::/48', hostPrefix: 64, clusterId: 'test' },
|
|
282
|
+
];
|
|
283
|
+
const result = getIPv6FromDualstack(networks);
|
|
284
|
+
expect(result).toEqual({ cidr: 'fd01::/48', hostPrefix: 64, clusterId: 'test' });
|
|
285
|
+
});
|
|
286
|
+
|
|
287
|
+
test('returns the IPv6 entry when IPv6 is first', () => {
|
|
288
|
+
const networks = [
|
|
289
|
+
{ cidr: 'fd01::/48', hostPrefix: 64, clusterId: 'test' },
|
|
290
|
+
{ cidr: '10.128.0.0/14', hostPrefix: 23, clusterId: 'test' },
|
|
291
|
+
];
|
|
292
|
+
const result = getIPv6FromDualstack(networks);
|
|
293
|
+
expect(result).toEqual({ cidr: 'fd01::/48', hostPrefix: 64, clusterId: 'test' });
|
|
294
|
+
});
|
|
295
|
+
|
|
296
|
+
test('returns undefined when no IPv6 entry is present', () => {
|
|
297
|
+
const networks = [{ cidr: '10.128.0.0/14', hostPrefix: 23, clusterId: 'test' }];
|
|
298
|
+
expect(getIPv6FromDualstack(networks)).toBeUndefined();
|
|
299
|
+
});
|
|
300
|
+
|
|
301
|
+
test('returns undefined for an empty array', () => {
|
|
302
|
+
expect(getIPv6FromDualstack([])).toBeUndefined();
|
|
303
|
+
});
|
|
304
|
+
|
|
305
|
+
test('returns undefined for undefined input', () => {
|
|
306
|
+
expect(getIPv6FromDualstack(undefined)).toBeUndefined();
|
|
307
|
+
});
|
|
308
|
+
|
|
309
|
+
test('works with service networks (no hostPrefix)', () => {
|
|
310
|
+
const networks = [
|
|
311
|
+
{ cidr: '172.30.0.0/16', clusterId: 'test' },
|
|
312
|
+
{ cidr: 'fd02::/112', clusterId: 'test' },
|
|
313
|
+
];
|
|
314
|
+
const result = getIPv6FromDualstack(networks);
|
|
315
|
+
expect(result).toEqual({ cidr: 'fd02::/112', clusterId: 'test' });
|
|
316
|
+
});
|
|
317
|
+
});
|
|
@@ -188,6 +188,19 @@ export const canBeDualStack = (subnets: HostSubnets) =>
|
|
|
188
188
|
subnets.some((subnet) => Address4.isValid(subnet.subnet)) &&
|
|
189
189
|
subnets.some((subnet) => Address6.isValid(subnet.subnet));
|
|
190
190
|
|
|
191
|
+
export const isPrimaryIPv6 = (machineNetworks: MachineNetwork[] | undefined): boolean => {
|
|
192
|
+
const cidr = machineNetworks?.[0]?.cidr;
|
|
193
|
+
return !!cidr && Address6.isValid(cidr);
|
|
194
|
+
};
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* Find the IPv6 entry in a dualstack network array.
|
|
198
|
+
* Dualstack arrays contain one IPv4 and one IPv6 entry; this helper returns the IPv6 one.
|
|
199
|
+
*/
|
|
200
|
+
export const getIPv6FromDualstack = <T extends { cidr?: string }>(
|
|
201
|
+
networks: T[] | undefined,
|
|
202
|
+
): T | undefined => networks?.find((n) => n.cidr && Address6.isValid(n.cidr));
|
|
203
|
+
|
|
191
204
|
const areNetworksDualStack = (
|
|
192
205
|
networks: (MachineNetwork | ClusterNetwork | ServiceNetwork)[] | undefined,
|
|
193
206
|
openshiftVersion?: string,
|
|
@@ -1,17 +1,9 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
3
|
-
GridItem,
|
|
4
|
-
ClipboardCopy,
|
|
5
|
-
clipboardCopyFunc,
|
|
6
|
-
Button,
|
|
7
|
-
Alert,
|
|
8
|
-
TextInput,
|
|
9
|
-
} from '@patternfly/react-core';
|
|
2
|
+
import { GridItem, ClipboardCopy, clipboardCopyFunc, Alert } from '@patternfly/react-core';
|
|
10
3
|
import { Credentials, Cluster } from '@openshift-assisted/types/assisted-installer-service';
|
|
11
4
|
import { LoadingState, ErrorState } from '../../components/ui/uiState';
|
|
12
5
|
import { DetailList, DetailItem } from '../../components/ui/DetailList';
|
|
13
6
|
import { TroubleshootingOpenshiftConsoleButton } from './ConsoleModal';
|
|
14
|
-
import { ExternalLinkAltIcon } from '@patternfly/react-icons/dist/js/icons/external-link-alt-icon';
|
|
15
7
|
import { useTranslation } from '../../hooks/use-translation-wrapper';
|
|
16
8
|
|
|
17
9
|
type ClusterCredentialsProps = {
|
|
@@ -74,55 +66,59 @@ const ClusterCredentials: React.FC<ClusterCredentialsProps> = ({
|
|
|
74
66
|
const consoleUrl = credentials.consoleUrl
|
|
75
67
|
? getConsoleUrl(credentials.consoleUrl, isMceEnabled)
|
|
76
68
|
: '';
|
|
69
|
+
const hasVips = Boolean(cluster.apiVips?.length && cluster.ingressVips?.length);
|
|
77
70
|
credentialsBody = (
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
title={t('ai:Web Console URL')}
|
|
82
|
-
value={
|
|
83
|
-
<>
|
|
84
|
-
<Button
|
|
85
|
-
variant="link"
|
|
86
|
-
icon={<ExternalLinkAltIcon />}
|
|
87
|
-
iconPosition="right"
|
|
88
|
-
isInline
|
|
89
|
-
onClick={() => window.open(consoleUrl, '_blank', 'noopener')}
|
|
90
|
-
data-testid={`${idPrefix}-link-console-url`}
|
|
91
|
-
>
|
|
92
|
-
{consoleUrl}
|
|
93
|
-
</Button>
|
|
94
|
-
<br />
|
|
95
|
-
{!!cluster.apiVips && !!cluster.ingressVips && (
|
|
96
|
-
<TroubleshootingOpenshiftConsoleButton
|
|
97
|
-
consoleUrl={consoleUrl}
|
|
98
|
-
cluster={cluster}
|
|
99
|
-
idPrefix={idPrefix}
|
|
100
|
-
/>
|
|
101
|
-
)}
|
|
102
|
-
</>
|
|
103
|
-
}
|
|
104
|
-
/>
|
|
105
|
-
)}
|
|
106
|
-
{credentials.username && (
|
|
107
|
-
<>
|
|
71
|
+
<>
|
|
72
|
+
<DetailList>
|
|
73
|
+
{credentials.consoleUrl && (
|
|
108
74
|
<DetailItem
|
|
109
|
-
title={t('ai:
|
|
110
|
-
value={<TextInput value={credentials.username} readOnlyVariant="default" />}
|
|
111
|
-
/>
|
|
112
|
-
<DetailItem
|
|
113
|
-
title={t('ai:Password')}
|
|
75
|
+
title={t('ai:Web Console URL')}
|
|
114
76
|
value={
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
77
|
+
<>
|
|
78
|
+
<ClipboardCopy
|
|
79
|
+
isReadOnly
|
|
80
|
+
className="pf-v6-u-my-sm"
|
|
81
|
+
data-testid={`${idPrefix}-link-console-url`}
|
|
82
|
+
>
|
|
83
|
+
{consoleUrl}
|
|
84
|
+
</ClipboardCopy>
|
|
85
|
+
{hasVips && (
|
|
86
|
+
<TroubleshootingOpenshiftConsoleButton
|
|
87
|
+
consoleUrl={consoleUrl}
|
|
88
|
+
cluster={cluster}
|
|
89
|
+
idPrefix={idPrefix}
|
|
90
|
+
/>
|
|
91
|
+
)}
|
|
92
|
+
</>
|
|
121
93
|
}
|
|
122
94
|
/>
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
95
|
+
)}
|
|
96
|
+
{credentials.username && (
|
|
97
|
+
<>
|
|
98
|
+
<DetailItem
|
|
99
|
+
title={t('ai:Username')}
|
|
100
|
+
value={
|
|
101
|
+
<ClipboardCopy isReadOnly className="pf-v6-u-my-sm">
|
|
102
|
+
{credentials.username}
|
|
103
|
+
</ClipboardCopy>
|
|
104
|
+
}
|
|
105
|
+
/>
|
|
106
|
+
<DetailItem
|
|
107
|
+
title={t('ai:Password')}
|
|
108
|
+
value={
|
|
109
|
+
<ClipboardCopy
|
|
110
|
+
isReadOnly
|
|
111
|
+
className="pf-v6-u-my-sm"
|
|
112
|
+
onCopy={(event) => clipboardCopyFunc(event, credentials.password)}
|
|
113
|
+
>
|
|
114
|
+
•••••
|
|
115
|
+
</ClipboardCopy>
|
|
116
|
+
}
|
|
117
|
+
/>
|
|
118
|
+
</>
|
|
119
|
+
)}
|
|
120
|
+
</DetailList>
|
|
121
|
+
</>
|
|
126
122
|
);
|
|
127
123
|
}
|
|
128
124
|
|
|
@@ -12,7 +12,6 @@ import {
|
|
|
12
12
|
} from '@patternfly/react-core';
|
|
13
13
|
import { InfoCircleIcon } from '@patternfly/react-icons/dist/js/icons/info-circle-icon';
|
|
14
14
|
import { removeProtocolFromURL } from '../../api';
|
|
15
|
-
import { ToolbarButton } from '../ui/Toolbar';
|
|
16
15
|
import PrismCode from '../ui/PrismCode';
|
|
17
16
|
import { useTranslation } from '../../hooks/use-translation-wrapper';
|
|
18
17
|
import { selectApiVip, selectIngressVip } from '../../selectors';
|
|
@@ -24,11 +23,6 @@ type WebConsoleHintProps = {
|
|
|
24
23
|
idPrefix?: string;
|
|
25
24
|
};
|
|
26
25
|
|
|
27
|
-
type LaunchOpenshiftConsoleButtonProps = WebConsoleHintProps & {
|
|
28
|
-
isDisabled: boolean;
|
|
29
|
-
id?: string;
|
|
30
|
-
};
|
|
31
|
-
|
|
32
26
|
type ConsoleModalProps = WebConsoleHintProps & {
|
|
33
27
|
closeModal: () => void;
|
|
34
28
|
isOpen: boolean;
|
|
@@ -103,35 +97,6 @@ export const WebConsoleHint: React.FC<WebConsoleHintProps> = ({ cluster, console
|
|
|
103
97
|
);
|
|
104
98
|
};
|
|
105
99
|
|
|
106
|
-
export const LaunchOpenshiftConsoleButton: React.FC<LaunchOpenshiftConsoleButtonProps> = ({
|
|
107
|
-
cluster,
|
|
108
|
-
consoleUrl,
|
|
109
|
-
isDisabled,
|
|
110
|
-
id,
|
|
111
|
-
}) => {
|
|
112
|
-
const [isOpen, setOpen] = React.useState(false);
|
|
113
|
-
const { t } = useTranslation();
|
|
114
|
-
return (
|
|
115
|
-
<>
|
|
116
|
-
<ToolbarButton
|
|
117
|
-
type="button"
|
|
118
|
-
variant={ButtonVariant.primary}
|
|
119
|
-
isDisabled={isDisabled}
|
|
120
|
-
onClick={() => setOpen(true)}
|
|
121
|
-
data-testid={id}
|
|
122
|
-
>
|
|
123
|
-
{t('ai:Launch OpenShift Console')}
|
|
124
|
-
</ToolbarButton>
|
|
125
|
-
<ConsoleModal
|
|
126
|
-
closeModal={() => setOpen(false)}
|
|
127
|
-
consoleUrl={consoleUrl}
|
|
128
|
-
cluster={cluster}
|
|
129
|
-
isOpen={isOpen}
|
|
130
|
-
/>
|
|
131
|
-
</>
|
|
132
|
-
);
|
|
133
|
-
};
|
|
134
|
-
|
|
135
100
|
export const TroubleshootingOpenshiftConsoleButton: React.FC<WebConsoleHintProps> = ({
|
|
136
101
|
cluster,
|
|
137
102
|
consoleUrl,
|
|
@@ -47,6 +47,20 @@ const PendingValidations = ({ id, count }: { id: string; count: number }) => {
|
|
|
47
47
|
return <div id={id}>{t('ai:There is still {{count}} pending check', { count: count })}</div>;
|
|
48
48
|
};
|
|
49
49
|
|
|
50
|
+
const InformationalValidation = ({ validation }: { validation: ClusterValidation }) => {
|
|
51
|
+
const { t } = useTranslation();
|
|
52
|
+
const label = clusterValidationLabels(t)[validation.id] || validation.id || '';
|
|
53
|
+
|
|
54
|
+
return (
|
|
55
|
+
<div id={`info-validation-${validation.id}`}>
|
|
56
|
+
<Icon status="success">
|
|
57
|
+
<CheckCircleIcon />
|
|
58
|
+
</Icon>{' '}
|
|
59
|
+
{label}. {validation.message}
|
|
60
|
+
</div>
|
|
61
|
+
);
|
|
62
|
+
};
|
|
63
|
+
|
|
50
64
|
const ValidationActionLink = <S extends string>({
|
|
51
65
|
step,
|
|
52
66
|
setCurrentStepId,
|
|
@@ -173,6 +187,16 @@ export const ClusterValidations = <S extends string>({
|
|
|
173
187
|
/>,
|
|
174
188
|
);
|
|
175
189
|
}
|
|
190
|
+
|
|
191
|
+
if (
|
|
192
|
+
validation.status === 'success' &&
|
|
193
|
+
validation.id === 'openshift-ai-gpu-requirements-satisfied' &&
|
|
194
|
+
validation.message
|
|
195
|
+
) {
|
|
196
|
+
failingValidations.push(
|
|
197
|
+
<InformationalValidation key={`info-${validation.id}`} validation={validation} />,
|
|
198
|
+
);
|
|
199
|
+
}
|
|
176
200
|
};
|
|
177
201
|
|
|
178
202
|
validationsInfo[group]?.forEach(addFailingValidation);
|
|
@@ -38,6 +38,38 @@ export const parseTangServers = (tangServersString?: string): TangServer[] => {
|
|
|
38
38
|
return emptyTangServers();
|
|
39
39
|
};
|
|
40
40
|
|
|
41
|
+
const parseDiskEncryption = (diskEncryption: Cluster['diskEncryption']) => {
|
|
42
|
+
const enableOn = {
|
|
43
|
+
enableDiskEncryptionOnMasters: false,
|
|
44
|
+
enableDiskEncryptionOnWorkers: false,
|
|
45
|
+
enableDiskEncryptionOnArbiters: false,
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
if (diskEncryption?.enableOn === 'all') {
|
|
49
|
+
enableOn.enableDiskEncryptionOnMasters = true;
|
|
50
|
+
enableOn.enableDiskEncryptionOnWorkers = true;
|
|
51
|
+
enableOn.enableDiskEncryptionOnArbiters = true;
|
|
52
|
+
} else {
|
|
53
|
+
const types = diskEncryption?.enableOn?.split(',');
|
|
54
|
+
|
|
55
|
+
types?.forEach((type) => {
|
|
56
|
+
switch (type) {
|
|
57
|
+
case 'masters':
|
|
58
|
+
enableOn.enableDiskEncryptionOnMasters = true;
|
|
59
|
+
break;
|
|
60
|
+
case 'workers':
|
|
61
|
+
enableOn.enableDiskEncryptionOnWorkers = true;
|
|
62
|
+
break;
|
|
63
|
+
case 'arbiters':
|
|
64
|
+
enableOn.enableDiskEncryptionOnArbiters = true;
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
return enableOn;
|
|
71
|
+
};
|
|
72
|
+
|
|
41
73
|
export const getClusterDetailsInitialValues = ({
|
|
42
74
|
cluster,
|
|
43
75
|
pullSecret,
|
|
@@ -57,6 +89,7 @@ export const getClusterDetailsInitialValues = ({
|
|
|
57
89
|
openshiftVersion = getDefaultOpenShiftVersion(ocpVersions),
|
|
58
90
|
controlPlaneCount = 3,
|
|
59
91
|
} = cluster || {};
|
|
92
|
+
|
|
60
93
|
return {
|
|
61
94
|
name,
|
|
62
95
|
openshiftVersion,
|
|
@@ -65,22 +98,15 @@ export const getClusterDetailsInitialValues = ({
|
|
|
65
98
|
controlPlaneCount,
|
|
66
99
|
useRedHatDnsService:
|
|
67
100
|
!!baseDnsDomain && managedDomains.map((d) => d.domain).includes(baseDnsDomain),
|
|
68
|
-
enableDiskEncryptionOnMasters: ['all', 'masters'].includes(
|
|
69
|
-
cluster?.diskEncryption?.enableOn ?? 'none',
|
|
70
|
-
),
|
|
71
|
-
enableDiskEncryptionOnWorkers: ['all', 'workers'].includes(
|
|
72
|
-
cluster?.diskEncryption?.enableOn ?? 'none',
|
|
73
|
-
),
|
|
74
|
-
diskEncryptionMode: cluster?.diskEncryption?.mode ?? 'tpmv2',
|
|
75
|
-
diskEncryptionTangServers: parseTangServers(cluster?.diskEncryption?.tangServers),
|
|
76
|
-
diskEncryption: cluster?.diskEncryption ?? {},
|
|
77
101
|
cpuArchitecture: cluster?.cpuArchitecture || getDefaultCpuArchitecture(),
|
|
78
102
|
platform: cluster?.platform?.type || 'baremetal',
|
|
79
103
|
customOpenshiftSelect: null,
|
|
80
104
|
userManagedNetworking: cluster?.userManagedNetworking || false,
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
),
|
|
105
|
+
|
|
106
|
+
diskEncryptionMode: cluster?.diskEncryption?.mode ?? 'tpmv2',
|
|
107
|
+
diskEncryptionTangServers: parseTangServers(cluster?.diskEncryption?.tangServers),
|
|
108
|
+
diskEncryption: cluster?.diskEncryption ?? {},
|
|
109
|
+
...parseDiskEncryption(cluster?.diskEncryption),
|
|
84
110
|
};
|
|
85
111
|
};
|
|
86
112
|
|