@openshift-assisted/ui-lib 2.42.3 → 2.43.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/@types/cim/components/ClusterDeployment/ClusterDeploymentDetailsStep.d.ts.map +1 -1
- package/build/@types/cim/components/ClusterDeployment/ClusterDetailsFormFields.d.ts.map +1 -1
- package/build/@types/common/components/clusterConfiguration/index.d.ts +0 -2
- package/build/@types/common/components/clusterConfiguration/index.d.ts.map +1 -1
- package/build/@types/common/components/clusterWizard/clusterDetailsValidation.d.ts +1 -4
- package/build/@types/common/components/clusterWizard/clusterDetailsValidation.d.ts.map +1 -1
- package/build/@types/common/components/clusterWizard/types.d.ts +0 -2
- package/build/@types/common/components/clusterWizard/types.d.ts.map +1 -1
- package/build/@types/common/components/hosts/DiskRole.d.ts.map +1 -1
- package/build/@types/common/components/hosts/TableToolbar.d.ts.map +1 -1
- package/build/@types/common/components/operators/operatorSpecs.d.ts.map +1 -1
- package/build/@types/common/components/ui/SimpleDropdown.d.ts.map +1 -1
- package/build/@types/common/components/ui/formik/index.d.ts +0 -1
- package/build/@types/common/components/ui/formik/index.d.ts.map +1 -1
- package/build/@types/common/config/constants.d.ts.map +1 -1
- package/build/@types/common/config/docs_links.d.ts +3 -3
- package/build/@types/common/config/docs_links.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/cpuArchitecture.d.ts.map +1 -1
- package/build/@types/ocm/components/Routes.d.ts +2 -1
- package/build/@types/ocm/components/Routes.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/ControlPlaneNodesDropdown.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/OcmSNODisclaimer.d.ts +1 -4
- package/build/@types/ocm/components/clusterConfiguration/OcmSNODisclaimer.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/networkConfiguration/SubnetsDropdown.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterWizard/ClusterDetailsForm.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterWizard/CredentialsDownload.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterWizard/Operators.d.ts.map +1 -1
- package/build/@types/ocm/components/clusters/AssistedInstallerHeader.d.ts.map +1 -1
- package/build/@types/ocm/components/clusters/ClusterPage.d.ts.map +1 -1
- package/build/@types/ocm/components/clusters/NewClusterPage.d.ts.map +1 -1
- package/build/@types/ocm/components/hosts/use-hosts-table.d.ts.map +1 -1
- package/build/@types/ocm/services/OperatorsService.d.ts.map +1 -1
- package/build/@types/ocm/store/slices/current-cluster/selectors.d.ts.map +1 -1
- package/build/@types/ocm/store/slices/current-cluster/slice.d.ts +1 -1
- package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentDetailsStep.js +1 -4
- package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentDetailsStep.js.map +1 -1
- package/build/cjs/cim/components/ClusterDeployment/ClusterDetailsFormFields.js +9 -1
- package/build/cjs/cim/components/ClusterDeployment/ClusterDetailsFormFields.js.map +1 -1
- package/build/cjs/common/components/clusterConfiguration/index.js +1 -5
- package/build/cjs/common/components/clusterConfiguration/index.js.map +1 -1
- package/build/cjs/common/components/clusterWizard/clusterDetailsValidation.js +3 -23
- package/build/cjs/common/components/clusterWizard/clusterDetailsValidation.js.map +1 -1
- package/build/cjs/common/components/hosts/DiskRole.js +1 -1
- package/build/cjs/common/components/hosts/DiskRole.js.map +1 -1
- package/build/cjs/common/components/hosts/TableToolbar.js +3 -3
- package/build/cjs/common/components/hosts/TableToolbar.js.map +1 -1
- package/build/cjs/common/components/operators/operatorSpecs.js +5 -3
- package/build/cjs/common/components/operators/operatorSpecs.js.map +1 -1
- package/build/cjs/common/components/ui/OpenShiftVersionDropdown.js +6 -7
- package/build/cjs/common/components/ui/OpenShiftVersionDropdown.js.map +1 -1
- package/build/cjs/common/components/ui/SimpleDropdown.js +1 -1
- package/build/cjs/common/components/ui/SimpleDropdown.js.map +1 -1
- package/build/cjs/common/components/ui/formik/index.js +1 -3
- package/build/cjs/common/components/ui/formik/index.js.map +1 -1
- package/build/cjs/common/config/constants.js +0 -4
- package/build/cjs/common/config/constants.js.map +1 -1
- package/build/cjs/common/config/docs_links.js +13 -9
- package/build/cjs/common/config/docs_links.js.map +1 -1
- package/build/cjs/common/selectors/clusterSelectors.js +1 -1
- package/build/cjs/common/selectors/clusterSelectors.js.map +1 -1
- package/build/cjs/common/types/cpuArchitecture.js +3 -5
- package/build/cjs/common/types/cpuArchitecture.js.map +1 -1
- package/build/cjs/ocm/components/Routes.js +3 -2
- package/build/cjs/ocm/components/Routes.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/ControlPlaneNodesDropdown.js +2 -4
- package/build/cjs/ocm/components/clusterConfiguration/ControlPlaneNodesDropdown.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/OcmSNODisclaimer.js +5 -21
- package/build/cjs/ocm/components/clusterConfiguration/OcmSNODisclaimer.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/SubnetsDropdown.js +12 -18
- package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/SubnetsDropdown.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/staticIp/commonValidationSchemas.js +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/staticIp/commonValidationSchemas.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/staticIp/components/FormViewNetworkWide/FormViewNetworkWideFields.js +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/staticIp/components/FormViewNetworkWide/FormViewNetworkWideFields.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/staticIp/components/staticIp.css +3 -3
- package/build/cjs/ocm/components/clusterConfiguration/staticIp/data/formDataToInfraEnvField.js +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/staticIp/data/formDataToInfraEnvField.js.map +1 -1
- package/build/cjs/ocm/components/clusterDetail/ProgressBarAlerts.js +1 -1
- package/build/cjs/ocm/components/clusterDetail/ProgressBarAlerts.js.map +1 -1
- package/build/cjs/ocm/components/clusterWizard/ClusterDetailsForm.js +0 -1
- package/build/cjs/ocm/components/clusterWizard/ClusterDetailsForm.js.map +1 -1
- package/build/cjs/ocm/components/clusterWizard/CredentialsDownload.js +2 -1
- package/build/cjs/ocm/components/clusterWizard/CredentialsDownload.js.map +1 -1
- package/build/cjs/ocm/components/clusterWizard/Operators.js +4 -1
- package/build/cjs/ocm/components/clusterWizard/Operators.js.map +1 -1
- package/build/cjs/ocm/components/clusters/AssistedInstallerHeader.js +3 -0
- package/build/cjs/ocm/components/clusters/AssistedInstallerHeader.js.map +1 -1
- package/build/cjs/ocm/components/clusters/ClusterPage.js +2 -0
- package/build/cjs/ocm/components/clusters/ClusterPage.js.map +1 -1
- package/build/cjs/ocm/components/clusters/NewClusterPage.js +6 -7
- package/build/cjs/ocm/components/clusters/NewClusterPage.js.map +1 -1
- package/build/cjs/ocm/components/hosts/use-hosts-table.js +8 -1
- package/build/cjs/ocm/components/hosts/use-hosts-table.js.map +1 -1
- package/build/cjs/ocm/services/DiskEncryptionService.js +1 -1
- package/build/cjs/ocm/services/DiskEncryptionService.js.map +1 -1
- package/build/cjs/ocm/services/OperatorsService.js +12 -2
- package/build/cjs/ocm/services/OperatorsService.js.map +1 -1
- package/build/cjs/ocm/store/slices/current-cluster/selectors.js +1 -1
- package/build/cjs/ocm/store/slices/current-cluster/selectors.js.map +1 -1
- package/lib/cim/components/ClusterDeployment/ClusterDeploymentDetailsStep.tsx +1 -5
- package/lib/cim/components/ClusterDeployment/ClusterDetailsFormFields.tsx +11 -2
- package/lib/common/components/clusterConfiguration/index.ts +0 -2
- package/lib/common/components/clusterWizard/clusterDetailsValidation.ts +2 -33
- package/lib/common/components/clusterWizard/types.ts +0 -2
- package/lib/common/components/hosts/DiskRole.tsx +0 -1
- package/lib/common/components/hosts/TableToolbar.tsx +9 -10
- package/lib/common/components/operators/operatorSpecs.tsx +6 -4
- package/lib/common/components/ui/OpenShiftVersionDropdown.tsx +10 -10
- package/lib/common/components/ui/SimpleDropdown.tsx +0 -1
- package/lib/common/components/ui/formik/index.tsx +0 -1
- package/lib/common/config/constants.ts +0 -4
- package/lib/common/config/docs_links.ts +15 -15
- package/lib/common/selectors/clusterSelectors.ts +1 -2
- package/lib/common/types/cpuArchitecture.ts +3 -9
- package/lib/ocm/components/Routes.tsx +3 -0
- package/lib/ocm/components/clusterConfiguration/ControlPlaneNodesDropdown.tsx +3 -16
- package/lib/ocm/components/clusterConfiguration/OcmSNODisclaimer.tsx +14 -60
- package/lib/ocm/components/clusterConfiguration/networkConfiguration/SubnetsDropdown.tsx +18 -25
- package/lib/ocm/components/clusterConfiguration/staticIp/commonValidationSchemas.tsx +1 -1
- package/lib/ocm/components/clusterConfiguration/staticIp/components/FormViewNetworkWide/FormViewNetworkWideFields.tsx +2 -2
- package/lib/ocm/components/clusterConfiguration/staticIp/components/staticIp.css +3 -3
- package/lib/ocm/components/clusterConfiguration/staticIp/data/formDataToInfraEnvField.ts +1 -1
- package/lib/ocm/components/clusterDetail/ProgressBarAlerts.tsx +1 -1
- package/lib/ocm/components/clusterWizard/ClusterDetailsForm.tsx +0 -1
- package/lib/ocm/components/clusterWizard/CredentialsDownload.tsx +2 -1
- package/lib/ocm/components/clusterWizard/Operators.tsx +5 -1
- package/lib/ocm/components/clusters/AssistedInstallerHeader.tsx +9 -1
- package/lib/ocm/components/clusters/ClusterPage.tsx +3 -0
- package/lib/ocm/components/clusters/NewClusterPage.tsx +9 -13
- package/lib/ocm/components/hosts/use-hosts-table.tsx +8 -1
- package/lib/ocm/services/DiskEncryptionService.ts +1 -1
- package/lib/ocm/services/OperatorsService.tsx +18 -2
- package/lib/ocm/store/slices/current-cluster/selectors.ts +1 -1
- package/package.json +3 -3
- package/build/@types/common/components/clusterConfiguration/SNOControlGroup.d.ts +0 -10
- package/build/@types/common/components/clusterConfiguration/SNOControlGroup.d.ts.map +0 -1
- package/build/@types/common/components/clusterConfiguration/SNODisclaimer.d.ts +0 -10
- package/build/@types/common/components/clusterConfiguration/SNODisclaimer.d.ts.map +0 -1
- package/build/@types/common/components/operators/test.d.ts +0 -50
- package/build/@types/common/components/operators/test.d.ts.map +0 -1
- package/build/@types/common/components/ui/formik/SingleNodeCheckbox.d.ts +0 -9
- package/build/@types/common/components/ui/formik/SingleNodeCheckbox.d.ts.map +0 -1
- package/build/@types/ocm/components/clusterConfiguration/OcmSingleNodeCheckbox.d.ts +0 -11
- package/build/@types/ocm/components/clusterConfiguration/OcmSingleNodeCheckbox.d.ts.map +0 -1
- package/build/cjs/common/components/clusterConfiguration/SNOControlGroup.js +0 -20
- package/build/cjs/common/components/clusterConfiguration/SNOControlGroup.js.map +0 -1
- package/build/cjs/common/components/clusterConfiguration/SNODisclaimer.js +0 -31
- package/build/cjs/common/components/clusterConfiguration/SNODisclaimer.js.map +0 -1
- package/build/cjs/common/components/operators/test.js +0 -323
- package/build/cjs/common/components/operators/test.js.map +0 -1
- package/build/cjs/common/components/ui/formik/SingleNodeCheckbox.js +0 -45
- package/build/cjs/common/components/ui/formik/SingleNodeCheckbox.js.map +0 -1
- package/build/cjs/ocm/components/clusterConfiguration/OcmSingleNodeCheckbox.js +0 -51
- package/build/cjs/ocm/components/clusterConfiguration/OcmSingleNodeCheckbox.js.map +0 -1
- package/lib/common/components/clusterConfiguration/SNOControlGroup.tsx +0 -41
- package/lib/common/components/clusterConfiguration/SNODisclaimer.tsx +0 -79
- package/lib/common/components/operators/test.tsx +0 -469
- package/lib/common/components/ui/formik/SingleNodeCheckbox.tsx +0 -98
- package/lib/ocm/components/clusterConfiguration/OcmSingleNodeCheckbox.tsx +0 -107
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OperatorsService.js","sourceRoot":"","sources":["../../../../lib/ocm/services/OperatorsService.tsx"],"names":[],"mappings":";;;AAAA,0GAA0E;
|
|
1
|
+
{"version":3,"file":"OperatorsService.js","sourceRoot":"","sources":["../../../../lib/ocm/services/OperatorsService.tsx"],"names":[],"mappings":";;;AAAA,0GAA0E;AAC1E,mFAAmF;AAEnF,MAAM,uBAAuB,GAAG,GAAgB,EAAE;IAChD,MAAM,kBAAkB,GAAG,IAAA,gCAAgB,EAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAE7D,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC;SAC9C,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAEnC,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;AAC1B,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG;IACvB,qBAAqB,EAAE,GAA4B,EAAE;QACnD,MAAM,iBAAiB,GAAG,uBAAuB,EAAE,CAAC;QACpD,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,MAAM,sBAAY,CAAC,IAAI,EAAE,CAAC;QAC7D,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,EAAE,CACjE,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,CACpC,CAAC;QAEF,OAAO,iBAAiB,CAAC;IAC3B,CAAC,CAAA;CACF,CAAC;AACF,kBAAe,gBAAgB,CAAC"}
|
|
@@ -7,7 +7,7 @@ const selectCurrentCluster = (state) => state.currentCluster.data;
|
|
|
7
7
|
exports.selectCurrentCluster = selectCurrentCluster;
|
|
8
8
|
const selectCurrentClusterUIState = (state) => state.currentCluster.uiState;
|
|
9
9
|
exports.selectCurrentClusterUIState = selectCurrentClusterUIState;
|
|
10
|
-
const selectIsCurrentClusterSNO = (state) => { var _a; return ((_a = state.currentCluster.data) === null || _a === void 0 ? void 0 : _a.
|
|
10
|
+
const selectIsCurrentClusterSNO = (state) => { var _a; return ((_a = state.currentCluster.data) === null || _a === void 0 ? void 0 : _a.controlPlaneCount) === 1; };
|
|
11
11
|
exports.selectIsCurrentClusterSNO = selectIsCurrentClusterSNO;
|
|
12
12
|
const selectCurrentClusterPermissionsState = (state) => {
|
|
13
13
|
if (state.currentCluster) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selectors.js","sourceRoot":"","sources":["../../../../../../lib/ocm/store/slices/current-cluster/selectors.ts"],"names":[],"mappings":";;;AAGO,MAAM,yBAAyB,GAAG,CAAC,KAAoB,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC;AAA3E,QAAA,yBAAyB,6BAAkD;AACjF,MAAM,oBAAoB,GAAG,CAAC,KAAoB,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC;AAA3E,QAAA,oBAAoB,wBAAuD;AACjF,MAAM,2BAA2B,GAAG,CAAC,KAAoB,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC;AAArF,QAAA,2BAA2B,+BAA0D;AAC3F,MAAM,yBAAyB,GAAG,CAAC,KAAoB,EAAE,EAAE,WAChE,OAAA,CAAA,MAAA,KAAK,CAAC,cAAc,CAAC,IAAI,0CAAE,
|
|
1
|
+
{"version":3,"file":"selectors.js","sourceRoot":"","sources":["../../../../../../lib/ocm/store/slices/current-cluster/selectors.ts"],"names":[],"mappings":";;;AAGO,MAAM,yBAAyB,GAAG,CAAC,KAAoB,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC;AAA3E,QAAA,yBAAyB,6BAAkD;AACjF,MAAM,oBAAoB,GAAG,CAAC,KAAoB,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC;AAA3E,QAAA,oBAAoB,wBAAuD;AACjF,MAAM,2BAA2B,GAAG,CAAC,KAAoB,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC;AAArF,QAAA,2BAA2B,+BAA0D;AAC3F,MAAM,yBAAyB,GAAG,CAAC,KAAoB,EAAE,EAAE,WAChE,OAAA,CAAA,MAAA,KAAK,CAAC,cAAc,CAAC,IAAI,0CAAE,iBAAiB,MAAK,CAAC,CAAA,EAAA,CAAC;AADxC,QAAA,yBAAyB,6BACe;AAC9C,MAAM,oCAAoC,GAAG,CAClD,KAAoB,EACsB,EAAE;IAC5C,IAAI,KAAK,CAAC,cAAc,EAAE;QACxB,OAAO,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC;KACzC;IACD,oFAAoF;IACpF,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;AACjC,CAAC,CAAC;AARW,QAAA,oCAAoC,wCAQ/C"}
|
|
@@ -9,7 +9,6 @@ import {
|
|
|
9
9
|
getClusterDetailsValidationSchema,
|
|
10
10
|
ClusterWizardStepHeader,
|
|
11
11
|
ClusterDetailsValues,
|
|
12
|
-
useFeatureSupportLevel,
|
|
13
12
|
getRichTextValidation,
|
|
14
13
|
OpenshiftVersionOptionType,
|
|
15
14
|
} from '../../../common';
|
|
@@ -49,7 +48,6 @@ export const useDetailsFormik = ({
|
|
|
49
48
|
Lazy<{ baseDnsDomain: string }>,
|
|
50
49
|
] => {
|
|
51
50
|
const { t } = useTranslation();
|
|
52
|
-
const featureSupportLevels = useFeatureSupportLevel();
|
|
53
51
|
const isEdit = !!clusterDeployment || !!agentClusterInstall;
|
|
54
52
|
|
|
55
53
|
const cluster = React.useMemo(
|
|
@@ -88,13 +86,11 @@ export const useDetailsFormik = ({
|
|
|
88
86
|
() =>
|
|
89
87
|
getClusterDetailsValidationSchema({
|
|
90
88
|
usedClusterNames,
|
|
91
|
-
featureSupportLevels,
|
|
92
89
|
pullSecretSet: isEdit,
|
|
93
|
-
ocpVersions,
|
|
94
90
|
validateUniqueName: true,
|
|
95
91
|
t,
|
|
96
92
|
}),
|
|
97
|
-
[usedClusterNames,
|
|
93
|
+
[usedClusterNames, isEdit, t],
|
|
98
94
|
);
|
|
99
95
|
|
|
100
96
|
return [initialValues, validationSchema];
|
|
@@ -55,7 +55,7 @@ export const ClusterDetailsFormFields: React.FC<ClusterDetailsFormFieldsProps> =
|
|
|
55
55
|
cpuArchitectures,
|
|
56
56
|
allowHighlyAvailable,
|
|
57
57
|
}) => {
|
|
58
|
-
const { values } = useFormikContext<ClusterDetailsValues>();
|
|
58
|
+
const { values, setFieldValue } = useFormikContext<ClusterDetailsValues>();
|
|
59
59
|
const { name, baseDnsDomain } = values;
|
|
60
60
|
const [openshiftVersionModalOpen, setOpenshiftVersionModalOpen] = React.useState(false);
|
|
61
61
|
|
|
@@ -68,6 +68,15 @@ export const ClusterDetailsFormFields: React.FC<ClusterDetailsFormFieldsProps> =
|
|
|
68
68
|
[versions],
|
|
69
69
|
);
|
|
70
70
|
|
|
71
|
+
React.useEffect(() => {
|
|
72
|
+
if (!versions.length && !values.openshiftVersion) {
|
|
73
|
+
const fallbackOpenShiftVersion = allVersions.find((version) => version.default);
|
|
74
|
+
setFieldValue('customOpenshiftSelect', fallbackOpenShiftVersion);
|
|
75
|
+
setFieldValue('openshiftVersion', fallbackOpenShiftVersion?.value);
|
|
76
|
+
}
|
|
77
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
78
|
+
}, []);
|
|
79
|
+
|
|
71
80
|
const additionalSelectOptions = React.useMemo(() => {
|
|
72
81
|
if (
|
|
73
82
|
values.customOpenshiftSelect &&
|
|
@@ -161,7 +170,7 @@ export const ClusterDetailsFormFields: React.FC<ClusterDetailsFormFieldsProps> =
|
|
|
161
170
|
{/* <DiskEncryptionControlGroup
|
|
162
171
|
values={values}
|
|
163
172
|
isDisabled={isPullSecretSet}
|
|
164
|
-
isSNO={isSNO({
|
|
173
|
+
isSNO={isSNO({ controlPlaneCount })}
|
|
165
174
|
/> */}
|
|
166
175
|
{atListOneDiskEncryptionEnableOn && values.diskEncryptionMode === 'tpmv2' && (
|
|
167
176
|
<Alert
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
export { default as SNOControlGroup } from './SNOControlGroup';
|
|
2
|
-
export { default as SNODisclaimer } from './SNODisclaimer';
|
|
3
1
|
export { default as OpenShiftVersionSelect } from './OpenShiftVersionSelect';
|
|
4
2
|
export { default as UploadSSH } from './UploadSSH';
|
|
5
3
|
export { default as ProxyFields, ProxyInputFields } from './ProxyFields';
|
|
@@ -15,8 +15,6 @@ import {
|
|
|
15
15
|
pullSecretValidationSchema,
|
|
16
16
|
} from '../ui';
|
|
17
17
|
import { ClusterDetailsValues } from './types';
|
|
18
|
-
import { FeatureSupportLevelData } from '../featureSupportLevels';
|
|
19
|
-
import toNumber from 'lodash-es/toNumber';
|
|
20
18
|
|
|
21
19
|
const emptyTangServers = (): TangServer[] => {
|
|
22
20
|
return [
|
|
@@ -55,18 +53,16 @@ export const getClusterDetailsInitialValues = ({
|
|
|
55
53
|
}): ClusterDetailsValues => {
|
|
56
54
|
const {
|
|
57
55
|
name = '',
|
|
58
|
-
highAvailabilityMode = 'Full',
|
|
59
56
|
baseDnsDomain = baseDomain || '',
|
|
60
57
|
openshiftVersion = getDefaultOpenShiftVersion(ocpVersions),
|
|
58
|
+
controlPlaneCount = 3,
|
|
61
59
|
} = cluster || {};
|
|
62
|
-
|
|
63
60
|
return {
|
|
64
61
|
name,
|
|
65
|
-
highAvailabilityMode,
|
|
66
62
|
openshiftVersion,
|
|
67
63
|
pullSecret: pullSecret || '',
|
|
68
64
|
baseDnsDomain,
|
|
69
|
-
|
|
65
|
+
controlPlaneCount,
|
|
70
66
|
useRedHatDnsService:
|
|
71
67
|
!!baseDnsDomain && managedDomains.map((d) => d.domain).includes(baseDnsDomain),
|
|
72
68
|
enableDiskEncryptionOnMasters: ['all', 'masters'].includes(
|
|
@@ -82,7 +78,6 @@ export const getClusterDetailsInitialValues = ({
|
|
|
82
78
|
platform: cluster?.platform?.type || 'none',
|
|
83
79
|
customOpenshiftSelect: null,
|
|
84
80
|
userManagedNetworking: cluster?.userManagedNetworking || false,
|
|
85
|
-
controlPlaneCount: cluster?.controlPlaneCount || 3,
|
|
86
81
|
enableDiskEncryptionOnArbiters: ['all', 'arbiters'].includes(
|
|
87
82
|
cluster?.diskEncryption?.enableOn ?? 'none',
|
|
88
83
|
),
|
|
@@ -91,17 +86,13 @@ export const getClusterDetailsInitialValues = ({
|
|
|
91
86
|
|
|
92
87
|
export const getClusterDetailsValidationSchema = ({
|
|
93
88
|
usedClusterNames,
|
|
94
|
-
featureSupportLevels,
|
|
95
89
|
pullSecretSet,
|
|
96
|
-
ocpVersions,
|
|
97
90
|
validateUniqueName,
|
|
98
91
|
isOcm,
|
|
99
92
|
t,
|
|
100
93
|
}: {
|
|
101
94
|
usedClusterNames: string[];
|
|
102
|
-
featureSupportLevels?: FeatureSupportLevelData;
|
|
103
95
|
pullSecretSet?: boolean;
|
|
104
|
-
ocpVersions?: OpenshiftVersionOptionType[];
|
|
105
96
|
validateUniqueName?: boolean;
|
|
106
97
|
isOcm?: boolean;
|
|
107
98
|
t: TFunction;
|
|
@@ -123,28 +114,6 @@ export const getClusterDetailsValidationSchema = ({
|
|
|
123
114
|
? baseDomainValidationSchema.required('Required')
|
|
124
115
|
: dnsNameValidationSchema.required('Required'),
|
|
125
116
|
pullSecret: pullSecretValidationSchema.required('Required.'),
|
|
126
|
-
SNODisclaimer: Yup.boolean().when(['controlPlaneCount', 'openshiftVersion'], {
|
|
127
|
-
// The disclaimer is required only if SNO is enabled and SNO feature is not fully supported in that version
|
|
128
|
-
is: (
|
|
129
|
-
controlPlaneCount: Cluster['controlPlaneCount'],
|
|
130
|
-
openshiftVersion: Cluster['openshiftVersion'],
|
|
131
|
-
) => {
|
|
132
|
-
const selectedVersion = (ocpVersions || []).find((v) => v.value === openshiftVersion);
|
|
133
|
-
const versionToUse = selectedVersion?.value ?? openshiftVersion;
|
|
134
|
-
if (featureSupportLevels) {
|
|
135
|
-
return toNumber(controlPlaneCount) === 1 && versionToUse && featureSupportLevels
|
|
136
|
-
? featureSupportLevels.getFeatureSupportLevel(versionToUse, 'SNO') === 'dev-preview'
|
|
137
|
-
: false;
|
|
138
|
-
} else {
|
|
139
|
-
return toNumber(controlPlaneCount) === 1 && versionToUse && values.isSNODevPreview;
|
|
140
|
-
}
|
|
141
|
-
},
|
|
142
|
-
then: () =>
|
|
143
|
-
Yup.boolean().oneOf(
|
|
144
|
-
[true],
|
|
145
|
-
t('ai:Confirm the Single Node OpenShift disclaimer to continue.'),
|
|
146
|
-
),
|
|
147
|
-
}),
|
|
148
117
|
diskEncryptionTangServers: Yup.array().when('diskEncryptionMode', {
|
|
149
118
|
is: (diskEncryptionMode: DiskEncryption['mode']) => {
|
|
150
119
|
return diskEncryptionMode === 'tang';
|
|
@@ -19,11 +19,9 @@ import { OpenshiftVersionOptionType } from '../../types';
|
|
|
19
19
|
|
|
20
20
|
export type ClusterDetailsValues = {
|
|
21
21
|
name: string;
|
|
22
|
-
highAvailabilityMode: 'Full' | 'None';
|
|
23
22
|
openshiftVersion: string;
|
|
24
23
|
pullSecret: string;
|
|
25
24
|
baseDnsDomain: string;
|
|
26
|
-
SNODisclaimer: boolean;
|
|
27
25
|
useRedHatDnsService: boolean;
|
|
28
26
|
enableDiskEncryptionOnMasters: boolean;
|
|
29
27
|
enableDiskEncryptionOnWorkers: boolean;
|
|
@@ -10,7 +10,6 @@ import {
|
|
|
10
10
|
ToolbarContent,
|
|
11
11
|
ToolbarItem,
|
|
12
12
|
ToolbarProps,
|
|
13
|
-
Tooltip,
|
|
14
13
|
Dropdown,
|
|
15
14
|
DropdownItem,
|
|
16
15
|
MenuToggle,
|
|
@@ -68,14 +67,20 @@ const TableToolbar: React.FC<TableToolbarProps> = ({
|
|
|
68
67
|
: null;
|
|
69
68
|
}
|
|
70
69
|
|
|
71
|
-
const
|
|
70
|
+
const isActionsDisabled = isChecked === false;
|
|
72
71
|
|
|
73
72
|
const actionsDropdown = (
|
|
74
73
|
<Dropdown
|
|
75
74
|
onSelect={onActionsToggle}
|
|
76
75
|
onOpenChange={onActionsToggle}
|
|
77
76
|
toggle={(toggleRef: React.Ref<MenuToggleElement>) => (
|
|
78
|
-
<MenuToggle
|
|
77
|
+
<MenuToggle
|
|
78
|
+
ref={toggleRef}
|
|
79
|
+
isFullWidth
|
|
80
|
+
onClick={onActionsToggle}
|
|
81
|
+
isExpanded={actionsOpen}
|
|
82
|
+
isDisabled={isActionsDisabled}
|
|
83
|
+
>
|
|
79
84
|
{t('ai:Actions')}
|
|
80
85
|
</MenuToggle>
|
|
81
86
|
)}
|
|
@@ -130,13 +135,7 @@ const TableToolbar: React.FC<TableToolbarProps> = ({
|
|
|
130
135
|
<ToolbarContent className="table-toolbar__content">
|
|
131
136
|
<ToolbarItem>{SelectDropdown}</ToolbarItem>
|
|
132
137
|
{children}
|
|
133
|
-
<ToolbarItem>
|
|
134
|
-
{isDisabled ? (
|
|
135
|
-
<Tooltip content={t('ai:Select one or more hosts')}>{actionsDropdown}</Tooltip>
|
|
136
|
-
) : (
|
|
137
|
-
actionsDropdown
|
|
138
|
-
)}
|
|
139
|
-
</ToolbarItem>
|
|
138
|
+
<ToolbarItem>{actionsDropdown}</ToolbarItem>
|
|
140
139
|
</ToolbarContent>
|
|
141
140
|
</Toolbar>
|
|
142
141
|
</SplitItem>
|
|
@@ -34,7 +34,6 @@ import {
|
|
|
34
34
|
getNmstateLink,
|
|
35
35
|
getNodeFeatureDiscoveryLink,
|
|
36
36
|
getNvidiaGpuLink,
|
|
37
|
-
getServiceMeshLink,
|
|
38
37
|
MTV_LINK,
|
|
39
38
|
NODE_MAINTENANCE_LINK,
|
|
40
39
|
ODF_LINK,
|
|
@@ -45,6 +44,7 @@ import {
|
|
|
45
44
|
OSC_REQUIREMENTS_LINK,
|
|
46
45
|
PIPELINES_OPERATOR_LINK,
|
|
47
46
|
SERVERLESS_OPERATOR_LINK,
|
|
47
|
+
SERVICE_MESH_OPERATOR_LINK,
|
|
48
48
|
} from '../../config';
|
|
49
49
|
import { getMajorMinorVersion } from '../../utils';
|
|
50
50
|
import { GetFeatureSupportLevel, useNewFeatureSupportLevel } from '../newFeatureSupportLevels';
|
|
@@ -148,7 +148,9 @@ export const getOperatorSpecs = (
|
|
|
148
148
|
<ExternalLink href={getLvmsDocsLink(openshiftVersion)}>Learn more</ExternalLink>
|
|
149
149
|
</>
|
|
150
150
|
) : (
|
|
151
|
-
<>
|
|
151
|
+
<>
|
|
152
|
+
<HighlightedText text={DESCRIPTION_LVM} searchTerm={searchTerm} />{' '}
|
|
153
|
+
</>
|
|
152
154
|
),
|
|
153
155
|
supportLevel: getFeatureSupportLevel('LVM'),
|
|
154
156
|
},
|
|
@@ -285,10 +287,10 @@ export const getOperatorSpecs = (
|
|
|
285
287
|
title: 'Service Mesh',
|
|
286
288
|
featureId: 'SERVICEMESH',
|
|
287
289
|
descriptionText: DESCRIPTION_SERVICEMESH,
|
|
288
|
-
Description: ({
|
|
290
|
+
Description: ({ searchTerm }) => (
|
|
289
291
|
<>
|
|
290
292
|
<HighlightedText text={DESCRIPTION_SERVICEMESH} searchTerm={searchTerm} />{' '}
|
|
291
|
-
<ExternalLink href={
|
|
293
|
+
<ExternalLink href={SERVICE_MESH_OPERATOR_LINK}>Learn more</ExternalLink>
|
|
292
294
|
</>
|
|
293
295
|
),
|
|
294
296
|
notStandalone: true,
|
|
@@ -55,7 +55,6 @@ export const OpenShiftVersionDropdown = ({
|
|
|
55
55
|
const [isOpen, setOpen] = React.useState(false);
|
|
56
56
|
const { t } = useTranslation();
|
|
57
57
|
const fieldId = getFieldId(name, 'input');
|
|
58
|
-
const isDisabled = versions.length === 0;
|
|
59
58
|
const {
|
|
60
59
|
values: { customOpenshiftSelect },
|
|
61
60
|
} = useFormikContext<ClusterDetailsValues>();
|
|
@@ -107,28 +106,30 @@ export const OpenShiftVersionDropdown = ({
|
|
|
107
106
|
{dropdownItems}
|
|
108
107
|
</DropdownGroup>
|
|
109
108
|
),
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
109
|
+
customDropdownItems.length && (
|
|
110
|
+
<DropdownGroup label="Custom releases" key="custom-releases">
|
|
111
|
+
{customDropdownItems}
|
|
112
|
+
</DropdownGroup>
|
|
113
|
+
),
|
|
113
114
|
<DropdownGroup key="all-available-versions">
|
|
114
|
-
<DropdownItem key="all-versions" id="all-versions">
|
|
115
|
+
<DropdownItem key="all-versions" id="all-versions" onSelect={(e) => e.preventDefault()}>
|
|
115
116
|
<Button
|
|
116
117
|
variant="link"
|
|
117
118
|
isInline
|
|
118
119
|
onClick={() => showOpenshiftVersionModal()}
|
|
119
120
|
id="show-all-versions"
|
|
120
121
|
>
|
|
121
|
-
Show all available versions
|
|
122
|
+
{t('ai:Show all available versions')}
|
|
122
123
|
</Button>
|
|
123
124
|
</DropdownItem>
|
|
124
125
|
</DropdownGroup>,
|
|
125
|
-
];
|
|
126
|
+
].filter(Boolean);
|
|
126
127
|
|
|
127
128
|
const onSelect = React.useCallback(
|
|
128
129
|
(event?: React.MouseEvent<Element, MouseEvent>, val?: string | number) => {
|
|
129
130
|
const newLabel = event?.currentTarget.textContent;
|
|
130
131
|
const newValue = (val as string) || '';
|
|
131
|
-
if (newLabel &&
|
|
132
|
+
if (newLabel && event.currentTarget.id !== 'all-versions') {
|
|
132
133
|
setCurrent(newLabel);
|
|
133
134
|
setValue(newValue);
|
|
134
135
|
setOpen(false);
|
|
@@ -144,10 +145,9 @@ export const OpenShiftVersionDropdown = ({
|
|
|
144
145
|
ref={toggleRef}
|
|
145
146
|
isFullWidth
|
|
146
147
|
onClick={() => setOpen(!isOpen)}
|
|
147
|
-
isDisabled={isDisabled}
|
|
148
148
|
isExpanded={isOpen}
|
|
149
149
|
>
|
|
150
|
-
{current}
|
|
150
|
+
{current || t('ai:OpenShift version')}
|
|
151
151
|
</MenuToggle>
|
|
152
152
|
);
|
|
153
153
|
|
|
@@ -9,7 +9,6 @@ export { default as SwitchField } from './SwitchField';
|
|
|
9
9
|
export { default as FormikAutoSave, useFormikAutoSave } from './FormikAutoSave';
|
|
10
10
|
export { default as PullSecretField } from './PullSecretField';
|
|
11
11
|
export { default as RadioField } from './RadioField';
|
|
12
|
-
export { default as SingleNodeCheckbox } from './SingleNodeCheckbox';
|
|
13
12
|
export { default as NumberInputField } from './NumberInputField';
|
|
14
13
|
export { default as CodeField } from './CodeField';
|
|
15
14
|
export { default as RichInputField } from './RichInputField';
|
|
@@ -70,7 +70,6 @@ export const clusterFieldLabels = (t: TFunction): { [key in string]: string } =>
|
|
|
70
70
|
ingressVips: t('ai:Ingress IP'),
|
|
71
71
|
pullSecret: t('ai:Pull secret'),
|
|
72
72
|
sshPublicKey: t('ai:SSH public key'),
|
|
73
|
-
SNODisclaimer: t('ai:Single Node OpenShift disclaimer'),
|
|
74
73
|
diskEncryptionTangServers: t("ai:Tang servers' URLs or thumbprints"),
|
|
75
74
|
selectedHostIds: t('ai:Hosts selection'),
|
|
76
75
|
httpProxy: t('ai:HTTP proxy'),
|
|
@@ -332,10 +331,7 @@ export const singleClusterOperators = [
|
|
|
332
331
|
OPERATOR_NAME_CNV,
|
|
333
332
|
OPERATOR_NAME_MTV,
|
|
334
333
|
OPERATOR_NAME_NMSTATE,
|
|
335
|
-
OPERATOR_NAME_NODE_HEALTHCHECK,
|
|
336
334
|
OPERATOR_NAME_NODE_MAINTENANCE,
|
|
337
|
-
OPERATOR_NAME_FENCE_AGENTS_REMEDIATION,
|
|
338
|
-
OPERATOR_NAME_SELF_NODE_REMEDIATION,
|
|
339
335
|
OPERATOR_NAME_KUBE_DESCHEDULER,
|
|
340
336
|
];
|
|
341
337
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { isMajorMinorVersionEqualOrGreater } from '../utils';
|
|
2
2
|
|
|
3
|
-
const LATEST_OPENSHIFT_DOCS_VERSION = '4.
|
|
3
|
+
const LATEST_OPENSHIFT_DOCS_VERSION = '4.19';
|
|
4
4
|
const MIN_OPENSHIFT_DOCS_VERSION = '4.14';
|
|
5
5
|
|
|
6
6
|
const getDocsOpenshiftVersion = (ocpVersion?: string): string => {
|
|
@@ -164,20 +164,22 @@ export const getMtuLink = (ocpVersion?: string) =>
|
|
|
164
164
|
|
|
165
165
|
export const AUTHORINO_OPERATOR_LINK = 'https://github.com/Kuadrant/authorino-operator';
|
|
166
166
|
|
|
167
|
-
export const getLsoLink = (ocpVersion?: string) =>
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
167
|
+
export const getLsoLink = (ocpVersion?: string) => {
|
|
168
|
+
const version = getDocsOpenshiftVersion(ocpVersion);
|
|
169
|
+
return isMajorMinorVersionEqualOrGreater(ocpVersion, '4.19')
|
|
170
|
+
? `https://docs.redhat.com/en/documentation/openshift_container_platform/${version}/html/storage/configuring-persistent-storage#persistent-storage-using-local-storage`
|
|
171
|
+
: `https://docs.openshift.com/container-platform/${version}/storage/persistent_storage/persistent_storage_local/ways-to-provision-local-storage.html`;
|
|
172
|
+
};
|
|
171
173
|
|
|
172
174
|
export const getNmstateLink = (ocpVersion?: string) =>
|
|
173
|
-
`https://docs.
|
|
175
|
+
`https://docs.redhat.com/en/documentation/openshift_container_platform/${getDocsOpenshiftVersion(
|
|
174
176
|
ocpVersion,
|
|
175
|
-
)}/networking/
|
|
177
|
+
)}/html/networking/networking-operators#k8s-nmstate-about-the-k8s-nmstate-operator`;
|
|
176
178
|
|
|
177
179
|
export const getNodeFeatureDiscoveryLink = (ocpVersion?: string) =>
|
|
178
|
-
`https://docs.
|
|
180
|
+
`https://docs.redhat.com/en/documentation/openshift_container_platform/${getDocsOpenshiftVersion(
|
|
179
181
|
ocpVersion,
|
|
180
|
-
)}/
|
|
182
|
+
)}/html/specialized_hardware_and_driver_enablement/psap-node-feature-discovery-operator`;
|
|
181
183
|
|
|
182
184
|
export const getNvidiaGpuLink = (ocpVersion?: string) => {
|
|
183
185
|
const version = getDocsOpenshiftVersion(ocpVersion);
|
|
@@ -187,15 +189,13 @@ export const getNvidiaGpuLink = (ocpVersion?: string) => {
|
|
|
187
189
|
};
|
|
188
190
|
|
|
189
191
|
export const PIPELINES_OPERATOR_LINK =
|
|
190
|
-
'https://docs.
|
|
192
|
+
'https://docs.redhat.com/en/documentation/red_hat_openshift_pipelines/1.18/html/installing_and_configuring/installing-pipelines';
|
|
191
193
|
|
|
192
|
-
export const
|
|
193
|
-
|
|
194
|
-
ocpVersion,
|
|
195
|
-
)}/service_mesh/v1x/preparing-ossm-installation.html`;
|
|
194
|
+
export const SERVICE_MESH_OPERATOR_LINK =
|
|
195
|
+
'https://docs.redhat.com/en/documentation/red_hat_openshift_service_mesh/3.0/html/installing/ossm-installing-service-mesh';
|
|
196
196
|
|
|
197
197
|
export const SERVERLESS_OPERATOR_LINK =
|
|
198
|
-
'https://docs.
|
|
198
|
+
'https://docs.redhat.com/en/documentation/red_hat_openshift_serverless/1.36/html/installing_openshift_serverless/install-serverless-operator#serverless-install-web-console_install-serverless-operator';
|
|
199
199
|
|
|
200
200
|
export const KUBECONFIG_INFO_LINK =
|
|
201
201
|
'https://docs.redhat.com/en/documentation/openshift_container_platform/4.18/html/cli_tools/openshift-cli-oc#about-switches-between-cli-profiles_managing-cli-profiles';
|
|
@@ -56,8 +56,7 @@ export const isCompact = (cluster: Pick<Cluster, 'hosts'>) => {
|
|
|
56
56
|
return !cluster.hosts || cluster.hosts.length <= 3;
|
|
57
57
|
};
|
|
58
58
|
|
|
59
|
-
export const isSNO = ({
|
|
60
|
-
highAvailabilityMode === 'None';
|
|
59
|
+
export const isSNO = ({ controlPlaneCount }: Partial<Cluster>) => controlPlaneCount === 1;
|
|
61
60
|
|
|
62
61
|
export const selectClusterValidationsInfo = ({
|
|
63
62
|
validationsInfo,
|
|
@@ -76,18 +76,12 @@ export const getSupportedCpuArchitectures = (
|
|
|
76
76
|
day1CpuArchitecture?: SupportedCpuArchitecture,
|
|
77
77
|
): SupportedCpuArchitecture[] => {
|
|
78
78
|
const newSupportedCpuArchs: SupportedCpuArchitecture[] = [];
|
|
79
|
-
//Power
|
|
80
|
-
if (
|
|
81
|
-
day1CpuArchitecture === CpuArchitecture.ppc64le ||
|
|
82
|
-
day1CpuArchitecture === CpuArchitecture.s390x
|
|
83
|
-
) {
|
|
79
|
+
//Power clusters can be only homogeneous clusters
|
|
80
|
+
if (day1CpuArchitecture === CpuArchitecture.ppc64le) {
|
|
84
81
|
newSupportedCpuArchs.push(day1CpuArchitecture);
|
|
85
82
|
} else {
|
|
86
83
|
cpuArchitectures.forEach((cpuArch) => {
|
|
87
|
-
if (
|
|
88
|
-
day1CpuArchitecture === undefined &&
|
|
89
|
-
(cpuArch === CpuArchitecture.ppc64le || cpuArch === CpuArchitecture.s390x)
|
|
90
|
-
) {
|
|
84
|
+
if (day1CpuArchitecture === undefined && cpuArch === CpuArchitecture.ppc64le) {
|
|
91
85
|
newSupportedCpuArchs.push(cpuArch);
|
|
92
86
|
} else if (
|
|
93
87
|
cpuArch !== CpuArchitecture.MULTI &&
|
|
@@ -19,11 +19,13 @@ export const UILibRoutes = ({
|
|
|
19
19
|
children,
|
|
20
20
|
history,
|
|
21
21
|
basename,
|
|
22
|
+
additionalComponents,
|
|
22
23
|
}: {
|
|
23
24
|
allEnabledFeatures: FeatureListType;
|
|
24
25
|
children?: React.ReactNode;
|
|
25
26
|
history?: HistoryRouterProps['history'];
|
|
26
27
|
basename?: string;
|
|
28
|
+
additionalComponents?: React.ReactNode;
|
|
27
29
|
}) => {
|
|
28
30
|
useFeatureDetection(allEnabledFeatures);
|
|
29
31
|
|
|
@@ -49,6 +51,7 @@ export const UILibRoutes = ({
|
|
|
49
51
|
) : (
|
|
50
52
|
routes
|
|
51
53
|
)}
|
|
54
|
+
{additionalComponents}
|
|
52
55
|
</Provider>
|
|
53
56
|
);
|
|
54
57
|
};
|
|
@@ -9,14 +9,15 @@ import {
|
|
|
9
9
|
DropdownList,
|
|
10
10
|
} from '@patternfly/react-core';
|
|
11
11
|
import { useField } from 'formik';
|
|
12
|
+
import toNumber from 'lodash-es/toNumber';
|
|
12
13
|
import { getFieldId, PopoverIcon, PreviewBadgePosition, TechnologyPreview } from '../../../common';
|
|
14
|
+
|
|
13
15
|
import {
|
|
14
16
|
NewFeatureSupportLevelMap,
|
|
15
17
|
useNewFeatureSupportLevel,
|
|
16
18
|
} from '../../../common/components/newFeatureSupportLevels';
|
|
17
19
|
import { isFeatureSupportedAndAvailable } from '../featureSupportLevels/featureStateUtils';
|
|
18
20
|
import OcmTNADisclaimer from './OcmTNADisclaimer';
|
|
19
|
-
import toNumber from 'lodash-es/toNumber';
|
|
20
21
|
import OcmSNODisclaimer from './OcmSNODisclaimer';
|
|
21
22
|
|
|
22
23
|
const INPUT_NAME = 'controlPlaneCount';
|
|
@@ -71,18 +72,10 @@ const ControlPlaneNodesDropdown: React.FC<ControlPlaneNodesDropdownProps> = ({
|
|
|
71
72
|
const [isOpen, setOpen] = React.useState<boolean>(false);
|
|
72
73
|
const newFeatureSupportLevelContext = useNewFeatureSupportLevel();
|
|
73
74
|
|
|
74
|
-
const snoSupportLevel = newFeatureSupportLevelContext.getFeatureSupportLevel(
|
|
75
|
-
'SNO',
|
|
76
|
-
featureSupportLevelData ?? undefined,
|
|
77
|
-
);
|
|
78
75
|
const snoExpansion = newFeatureSupportLevelContext.isFeatureSupported(
|
|
79
76
|
'SINGLE_NODE_EXPANSION',
|
|
80
77
|
featureSupportLevelData ?? undefined,
|
|
81
78
|
);
|
|
82
|
-
const isDisabled = newFeatureSupportLevelContext.isFeatureDisabled(
|
|
83
|
-
'SNO',
|
|
84
|
-
featureSupportLevelData ?? undefined,
|
|
85
|
-
);
|
|
86
79
|
|
|
87
80
|
const disabledReason =
|
|
88
81
|
'This option is not available with the current configurations. Make sure that OpenShift version is 4.19 or newer and no external platform integration is selected.';
|
|
@@ -171,13 +164,7 @@ const ControlPlaneNodesDropdown: React.FC<ControlPlaneNodesDropdownProps> = ({
|
|
|
171
164
|
<DropdownList>{dropdownItems}</DropdownList>
|
|
172
165
|
</Dropdown>
|
|
173
166
|
</FormGroup>
|
|
174
|
-
{field.value === 1 &&
|
|
175
|
-
<OcmSNODisclaimer
|
|
176
|
-
isDisabled={isDisabled}
|
|
177
|
-
snoSupportLevel={snoSupportLevel || 'supported'}
|
|
178
|
-
snoExpansionSupported={snoExpansion}
|
|
179
|
-
/>
|
|
180
|
-
)}
|
|
167
|
+
{field.value === 1 && <OcmSNODisclaimer snoExpansionSupported={snoExpansion} />}
|
|
181
168
|
{field.value === 2 && <OcmTNADisclaimer />}
|
|
182
169
|
</>
|
|
183
170
|
);
|
|
@@ -1,77 +1,31 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { Alert, AlertVariant, List, ListItem
|
|
3
|
-
import { CheckboxField } from '../../../common';
|
|
2
|
+
import { Alert, AlertVariant, List, ListItem } from '@patternfly/react-core';
|
|
4
3
|
import { useTranslation } from '../../../common/hooks/use-translation-wrapper';
|
|
5
|
-
import { SupportLevel } from '@openshift-assisted/types/assisted-installer-service';
|
|
6
4
|
|
|
7
5
|
type OcmSNODisclaimerProps = {
|
|
8
|
-
snoSupportLevel: SupportLevel;
|
|
9
|
-
isDisabled?: boolean;
|
|
10
6
|
snoExpansionSupported?: boolean;
|
|
11
7
|
};
|
|
12
|
-
const OcmSNODisclaimer = ({
|
|
13
|
-
snoSupportLevel,
|
|
14
|
-
isDisabled = false,
|
|
15
|
-
snoExpansionSupported = false,
|
|
16
|
-
}: OcmSNODisclaimerProps) => {
|
|
8
|
+
const OcmSNODisclaimer = ({ snoExpansionSupported = false }: OcmSNODisclaimerProps) => {
|
|
17
9
|
const { t } = useTranslation();
|
|
18
|
-
if (!['dev-preview', 'supported'].includes(snoSupportLevel)) {
|
|
19
|
-
//if tech preview or unsupported there's no definition which warning to show
|
|
20
|
-
return null;
|
|
21
|
-
}
|
|
22
|
-
const isDevPreview = snoSupportLevel === 'dev-preview';
|
|
23
|
-
const generalSNOFacts = (
|
|
24
|
-
<>
|
|
25
|
-
<ListItem>
|
|
26
|
-
{t(
|
|
27
|
-
'ai:Installing SNO will result in an OpenShift deployment that is not highly available.',
|
|
28
|
-
)}
|
|
29
|
-
</ListItem>
|
|
30
|
-
{!snoExpansionSupported && (
|
|
31
|
-
<ListItem>
|
|
32
|
-
{t('ai:Currently, adding additional machines to your cluster is not supported.')}
|
|
33
|
-
</ListItem>
|
|
34
|
-
)}
|
|
35
|
-
</>
|
|
36
|
-
);
|
|
37
|
-
const unsupportedWarnings = (
|
|
38
|
-
<>
|
|
39
|
-
<ListItem>
|
|
40
|
-
{t('ai:SNO is in a proof-of-concept stage and is not supported in any way.')}
|
|
41
|
-
</ListItem>
|
|
42
|
-
<ListItem>
|
|
43
|
-
{t(
|
|
44
|
-
"ai:OpenShift in-place upgrades aren't expected to work with SNO. If an upgrade is needed, your system will need a redeployment.",
|
|
45
|
-
)}
|
|
46
|
-
</ListItem>
|
|
47
|
-
</>
|
|
48
|
-
);
|
|
49
10
|
|
|
50
11
|
return (
|
|
51
12
|
<Alert
|
|
52
|
-
variant={
|
|
13
|
+
variant={AlertVariant.info}
|
|
53
14
|
title={t('ai:Limitations for using Single Node OpenShift')}
|
|
54
15
|
isInline
|
|
55
16
|
>
|
|
56
|
-
<
|
|
57
|
-
<
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
name="SNODisclaimer"
|
|
67
|
-
label={t(
|
|
68
|
-
'ai:I understand, accept, and agree to the limitations associated with using Single Node OpenShift.',
|
|
69
|
-
)}
|
|
70
|
-
isDisabled={isDisabled}
|
|
71
|
-
/>
|
|
72
|
-
</StackItem>
|
|
17
|
+
<List>
|
|
18
|
+
<ListItem>
|
|
19
|
+
{t(
|
|
20
|
+
'ai:Installing SNO will result in an OpenShift deployment that is not highly available.',
|
|
21
|
+
)}
|
|
22
|
+
</ListItem>
|
|
23
|
+
{!snoExpansionSupported && (
|
|
24
|
+
<ListItem>
|
|
25
|
+
{t('ai:Currently, adding additional machines to your cluster is not supported.')}
|
|
26
|
+
</ListItem>
|
|
73
27
|
)}
|
|
74
|
-
</
|
|
28
|
+
</List>
|
|
75
29
|
</Alert>
|
|
76
30
|
);
|
|
77
31
|
};
|