@openshift-assisted/ui-lib 2.47.1 → 2.47.2
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/common/components/clusterConfiguration/utils.d.ts +1 -3
- package/build/@types/common/components/clusterConfiguration/utils.d.ts.map +1 -1
- package/build/@types/common/components/ui/formik/validationSchemas.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/networkConfiguration/AvailableSubnetsControl.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/networkConfiguration/StackTypeControl.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/networkConfiguration/networkConfigurationValidation.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/review/ReviewNetworkingTable.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterDetail/ClusterProperties.d.ts.map +1 -1
- package/build/cjs/common/components/clusterConfiguration/utils.js.map +1 -1
- package/build/cjs/common/components/ui/formik/validationSchemas.js +110 -6
- package/build/cjs/common/components/ui/formik/validationSchemas.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/AvailableSubnetsControl.js +31 -0
- package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/AvailableSubnetsControl.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/StackTypeControl.js +23 -4
- package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/StackTypeControl.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/networkConfigurationValidation.js +32 -37
- package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/networkConfigurationValidation.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/review/ReviewNetworkingTable.js +27 -9
- package/build/cjs/ocm/components/clusterConfiguration/review/ReviewNetworkingTable.js.map +1 -1
- package/build/cjs/ocm/components/clusterDetail/ClusterProperties.js +2 -2
- package/build/cjs/ocm/components/clusterDetail/ClusterProperties.js.map +1 -1
- package/build/cjs/ocm/components/clusters/AssistedInstallerHeader.js +1 -1
- package/build/cjs/ocm/components/clusters/AssistedInstallerHeader.js.map +1 -1
- package/lib/common/components/clusterConfiguration/utils.ts +1 -3
- package/lib/common/components/ui/formik/validationSchemas.ts +132 -16
- package/lib/ocm/components/clusterConfiguration/networkConfiguration/AvailableSubnetsControl.tsx +29 -0
- package/lib/ocm/components/clusterConfiguration/networkConfiguration/StackTypeControl.tsx +25 -3
- package/lib/ocm/components/clusterConfiguration/networkConfiguration/networkConfigurationValidation.ts +6 -14
- package/lib/ocm/components/clusterConfiguration/review/ReviewNetworkingTable.tsx +39 -14
- package/lib/ocm/components/clusterDetail/ClusterProperties.tsx +2 -2
- package/lib/ocm/components/clusters/AssistedInstallerHeader.tsx +1 -1
- package/package.json +3 -3
|
@@ -7,7 +7,7 @@ const common_1 = require("../../../../common");
|
|
|
7
7
|
const getNetworkInitialValues = (cluster, defaultNetworkValues, isClusterManagedNetworkingUnsupported) => {
|
|
8
8
|
var _a, _b, _c;
|
|
9
9
|
const isSNOCluster = (0, common_1.isSNO)(cluster);
|
|
10
|
-
const isDualStackType = (0, common_1.isDualStack)(
|
|
10
|
+
const isDualStackType = (0, common_1.isDualStack)(cluster);
|
|
11
11
|
return {
|
|
12
12
|
apiVips: cluster.apiVips,
|
|
13
13
|
ingressVips: cluster.ingressVips,
|
|
@@ -32,47 +32,42 @@ const getNetworkInitialValues = (cluster, defaultNetworkValues, isClusterManaged
|
|
|
32
32
|
};
|
|
33
33
|
};
|
|
34
34
|
exports.getNetworkInitialValues = getNetworkInitialValues;
|
|
35
|
-
const getNetworkConfigurationValidationSchema = (initialValues, hostSubnets, openshiftVersion) => Yup.lazy((values) => {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
sshPublicKey: common_1.sshPublicKeyListValidationSchema,
|
|
43
|
-
machineNetworks: values.managedNetworkingType === 'userManaged'
|
|
44
|
-
? Yup.array()
|
|
45
|
-
: common_1.machineNetworksValidationSchema.when('stackType', {
|
|
46
|
-
is: (stackType) => stackType === common_1.IPV4_STACK,
|
|
47
|
-
then: () => common_1.machineNetworksValidationSchema.concat(common_1.IPv4ValidationSchema),
|
|
48
|
-
otherwise: () => {
|
|
49
|
-
var _a;
|
|
50
|
-
return values.machineNetworks && ((_a = values.machineNetworks) === null || _a === void 0 ? void 0 : _a.length) >= 2
|
|
51
|
-
? common_1.machineNetworksValidationSchema.concat((0, common_1.dualStackValidationSchema)('machine networks', openshiftVersion))
|
|
52
|
-
: Yup.array();
|
|
53
|
-
},
|
|
54
|
-
}),
|
|
55
|
-
clusterNetworks: common_1.clusterNetworksValidationSchema.when('stackType', {
|
|
35
|
+
const getNetworkConfigurationValidationSchema = (initialValues, hostSubnets, openshiftVersion) => Yup.lazy((values) => Yup.object().shape({
|
|
36
|
+
apiVips: (0, common_1.vipArrayValidationSchema)(hostSubnets, values, initialValues.apiVips),
|
|
37
|
+
ingressVips: (0, common_1.vipArrayValidationSchema)(hostSubnets, values, initialValues.ingressVips),
|
|
38
|
+
sshPublicKey: common_1.sshPublicKeyListValidationSchema,
|
|
39
|
+
machineNetworks: values.managedNetworkingType === 'userManaged'
|
|
40
|
+
? Yup.array()
|
|
41
|
+
: common_1.machineNetworksValidationSchema.when('stackType', {
|
|
56
42
|
is: (stackType) => stackType === common_1.IPV4_STACK,
|
|
57
|
-
then: () => common_1.
|
|
43
|
+
then: () => common_1.machineNetworksValidationSchema.concat(common_1.IPv4ValidationSchema),
|
|
58
44
|
otherwise: () => {
|
|
59
45
|
var _a;
|
|
60
|
-
return values.
|
|
61
|
-
? common_1.
|
|
46
|
+
return values.machineNetworks && ((_a = values.machineNetworks) === null || _a === void 0 ? void 0 : _a.length) >= 2
|
|
47
|
+
? common_1.machineNetworksValidationSchema.concat((0, common_1.dualStackValidationSchema)('machine networks', openshiftVersion))
|
|
62
48
|
: Yup.array();
|
|
63
49
|
},
|
|
64
50
|
}),
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
51
|
+
clusterNetworks: common_1.clusterNetworksValidationSchema.when('stackType', {
|
|
52
|
+
is: (stackType) => stackType === common_1.IPV4_STACK,
|
|
53
|
+
then: () => common_1.clusterNetworksValidationSchema.concat(common_1.IPv4ValidationSchema),
|
|
54
|
+
otherwise: () => {
|
|
55
|
+
var _a;
|
|
56
|
+
return values.clusterNetworks && ((_a = values.clusterNetworks) === null || _a === void 0 ? void 0 : _a.length) >= 2
|
|
57
|
+
? common_1.clusterNetworksValidationSchema.concat((0, common_1.dualStackValidationSchema)('cluster network', openshiftVersion))
|
|
58
|
+
: Yup.array();
|
|
59
|
+
},
|
|
60
|
+
}),
|
|
61
|
+
serviceNetworks: common_1.serviceNetworkValidationSchema.when('stackType', {
|
|
62
|
+
is: (stackType) => stackType === common_1.IPV4_STACK,
|
|
63
|
+
then: () => common_1.serviceNetworkValidationSchema.concat(common_1.IPv4ValidationSchema),
|
|
64
|
+
otherwise: () => {
|
|
65
|
+
var _a;
|
|
66
|
+
return values.serviceNetworks && ((_a = values.serviceNetworks) === null || _a === void 0 ? void 0 : _a.length) >= 2
|
|
67
|
+
? common_1.serviceNetworkValidationSchema.concat((0, common_1.dualStackValidationSchema)('service network', openshiftVersion))
|
|
68
|
+
: Yup.array();
|
|
69
|
+
},
|
|
70
|
+
}),
|
|
71
|
+
}));
|
|
77
72
|
exports.getNetworkConfigurationValidationSchema = getNetworkConfigurationValidationSchema;
|
|
78
73
|
//# sourceMappingURL=networkConfigurationValidation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"networkConfigurationValidation.js","sourceRoot":"","sources":["../../../../../../lib/ocm/components/clusterConfiguration/networkConfiguration/networkConfigurationValidation.ts"],"names":[],"mappings":";;;;AAAA,iDAA2B;AAC3B,+CAe4B;AAQrB,MAAM,uBAAuB,GAAG,CACrC,OAAgB,EAChB,oBAMC,EACD,qCAA8C,EAClB,EAAE;;IAC9B,MAAM,YAAY,GAAG,IAAA,cAAK,EAAC,OAAO,CAAC,CAAC;IACpC,MAAM,eAAe,GAAG,IAAA,oBAAW,
|
|
1
|
+
{"version":3,"file":"networkConfigurationValidation.js","sourceRoot":"","sources":["../../../../../../lib/ocm/components/clusterConfiguration/networkConfiguration/networkConfigurationValidation.ts"],"names":[],"mappings":";;;;AAAA,iDAA2B;AAC3B,+CAe4B;AAQrB,MAAM,uBAAuB,GAAG,CACrC,OAAgB,EAChB,oBAMC,EACD,qCAA8C,EAClB,EAAE;;IAC9B,MAAM,YAAY,GAAG,IAAA,cAAK,EAAC,OAAO,CAAC,CAAC;IACpC,MAAM,eAAe,GAAG,IAAA,oBAAW,EAAC,OAAO,CAAC,CAAC;IAE7C,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,EAAE;QACxC,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;QAC5C,qBAAqB,EACnB,CAAA,MAAA,OAAO,CAAC,QAAQ,0CAAE,IAAI,MAAK,MAAM;YACjC,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,qCAAqC,CAAC;YAC1F,YAAY;YACV,CAAC,CAAC,aAAa;YACf,CAAC,CAAC,gBAAgB;QACtB,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,yBAAgB;QACpD,eAAe,EAAE,OAAO,CAAC,eAAe,IAAI,EAAE;QAC9C,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC,mBAAU,CAAC,CAAC,CAAC,mBAAU;QACpD,eAAe,EACb,OAAO,CAAC,eAAe;YACvB,CAAC,eAAe;gBACd,CAAC,CAAC,oBAAoB,CAAC,wBAAwB;gBAC/C,CAAC,CAAC,MAAA,oBAAoB,CAAC,mBAAmB,0CAAE,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,iCACtD,OAAO,KACV,SAAS,EAAE,OAAO,CAAC,EAAE,IACrB,CAAC,CAAC;QACV,eAAe,EACb,OAAO,CAAC,eAAe;YACvB,CAAC,eAAe;gBACd,CAAC,CAAC,oBAAoB,CAAC,wBAAwB;gBAC/C,CAAC,CAAC,MAAA,oBAAoB,CAAC,mBAAmB,0CAAE,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,iCACtD,OAAO,KACV,SAAS,EAAE,OAAO,CAAC,EAAE,IACrB,CAAC,CAAC;KACX,CAAC;AACJ,CAAC,CAAC;AA7CW,QAAA,uBAAuB,2BA6ClC;AAEK,MAAM,uCAAuC,GAAG,CACrD,aAAyC,EACzC,WAAwB,EACxB,gBAAyB,EACzB,EAAE,CACF,GAAG,CAAC,IAAI,CAAC,CAAC,MAAkC,EAAE,EAAE,CAC9C,GAAG,CAAC,MAAM,EAA8B,CAAC,KAAK,CAAC;IAC7C,OAAO,EAAE,IAAA,iCAAwB,EAAS,WAAW,EAAE,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC;IACrF,WAAW,EAAE,IAAA,iCAAwB,EACnC,WAAW,EACX,MAAM,EACN,aAAa,CAAC,WAAW,CAC1B;IACD,YAAY,EAAE,yCAAgC;IAC9C,eAAe,EACb,MAAM,CAAC,qBAAqB,KAAK,aAAa;QAC5C,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE;QACb,CAAC,CAAC,wCAA+B,CAAC,IAAI,CAAC,WAAW,EAAE;YAChD,EAAE,EAAE,CAAC,SAAkD,EAAE,EAAE,CAAC,SAAS,KAAK,mBAAU;YACpF,IAAI,EAAE,GAAG,EAAE,CAAC,wCAA+B,CAAC,MAAM,CAAC,6BAAoB,CAAC;YACxE,SAAS,EAAE,GAAG,EAAE;;gBACd,OAAA,MAAM,CAAC,eAAe,IAAI,CAAA,MAAA,MAAM,CAAC,eAAe,0CAAE,MAAM,KAAI,CAAC;oBAC3D,CAAC,CAAC,wCAA+B,CAAC,MAAM,CACpC,IAAA,kCAAyB,EAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAChE;oBACH,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAA;aAAA;SAClB,CAAC;IACR,eAAe,EAAE,wCAA+B,CAAC,IAAI,CAAC,WAAW,EAAE;QACjE,EAAE,EAAE,CAAC,SAAkD,EAAE,EAAE,CAAC,SAAS,KAAK,mBAAU;QACpF,IAAI,EAAE,GAAG,EAAE,CAAC,wCAA+B,CAAC,MAAM,CAAC,6BAAoB,CAAC;QACxE,SAAS,EAAE,GAAG,EAAE;;YACd,OAAA,MAAM,CAAC,eAAe,IAAI,CAAA,MAAA,MAAM,CAAC,eAAe,0CAAE,MAAM,KAAI,CAAC;gBAC3D,CAAC,CAAC,wCAA+B,CAAC,MAAM,CACpC,IAAA,kCAAyB,EAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAC/D;gBACH,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAA;SAAA;KAClB,CAAC;IACF,eAAe,EAAE,uCAA8B,CAAC,IAAI,CAAC,WAAW,EAAE;QAChE,EAAE,EAAE,CAAC,SAAkD,EAAE,EAAE,CAAC,SAAS,KAAK,mBAAU;QACpF,IAAI,EAAE,GAAG,EAAE,CAAC,uCAA8B,CAAC,MAAM,CAAC,6BAAoB,CAAC;QACvE,SAAS,EAAE,GAAG,EAAE;;YACd,OAAA,MAAM,CAAC,eAAe,IAAI,CAAA,MAAA,MAAM,CAAC,eAAe,0CAAE,MAAM,KAAI,CAAC;gBAC3D,CAAC,CAAC,uCAA8B,CAAC,MAAM,CACnC,IAAA,kCAAyB,EAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAC/D;gBACH,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAA;SAAA;KAClB,CAAC;CACH,CAAC,CACH,CAAC;AAhDS,QAAA,uCAAuC,2CAgDhD"}
|
|
@@ -9,7 +9,7 @@ const common_1 = require("../../../../common");
|
|
|
9
9
|
const ClusterProperties_1 = require("../../clusterDetail/ClusterProperties");
|
|
10
10
|
const ReviewNetworkingTable = ({ cluster }) => {
|
|
11
11
|
const rows = react_1.default.useMemo(() => {
|
|
12
|
-
var _a, _b, _c;
|
|
12
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
13
13
|
const networkRows = [
|
|
14
14
|
{
|
|
15
15
|
rowId: 'network-management',
|
|
@@ -43,7 +43,7 @@ const ReviewNetworkingTable = ({ cluster }) => {
|
|
|
43
43
|
react_1.default.createElement("br", null)))),
|
|
44
44
|
props: { 'data-testid': 'machine-networks' },
|
|
45
45
|
},
|
|
46
|
-
(0, common_1.isDualStack)(
|
|
46
|
+
(0, common_1.isDualStack)(cluster)
|
|
47
47
|
? {
|
|
48
48
|
title: (_c = cluster.machineNetworks) === null || _c === void 0 ? void 0 : _c.map((network, index) => (react_1.default.createElement("span", { key: network.cidr },
|
|
49
49
|
index === 0 ? 'Primary' : 'Secondary',
|
|
@@ -59,9 +59,18 @@ const ReviewNetworkingTable = ({ cluster }) => {
|
|
|
59
59
|
cells: [
|
|
60
60
|
{ title: 'API IP' },
|
|
61
61
|
{
|
|
62
|
-
title: (0
|
|
63
|
-
|
|
62
|
+
title: (_d = cluster.apiVips) === null || _d === void 0 ? void 0 : _d.map((apiVip) => (react_1.default.createElement("span", { key: apiVip.ip },
|
|
63
|
+
apiVip.ip,
|
|
64
|
+
react_1.default.createElement("br", null)))),
|
|
65
|
+
props: { 'data-testid': 'api-vip' },
|
|
64
66
|
},
|
|
67
|
+
(0, common_1.isDualStack)(cluster)
|
|
68
|
+
? {
|
|
69
|
+
title: (_e = cluster.apiVips) === null || _e === void 0 ? void 0 : _e.map((apiVip, index) => (react_1.default.createElement("span", { key: apiVip.ip },
|
|
70
|
+
index === 0 ? 'Primary' : 'Secondary',
|
|
71
|
+
react_1.default.createElement("br", null)))),
|
|
72
|
+
}
|
|
73
|
+
: { title: '' },
|
|
65
74
|
],
|
|
66
75
|
});
|
|
67
76
|
cluster.ingressVips &&
|
|
@@ -71,9 +80,18 @@ const ReviewNetworkingTable = ({ cluster }) => {
|
|
|
71
80
|
cells: [
|
|
72
81
|
{ title: 'Ingress IP' },
|
|
73
82
|
{
|
|
74
|
-
title: (0
|
|
75
|
-
|
|
83
|
+
title: (_f = cluster.ingressVips) === null || _f === void 0 ? void 0 : _f.map((ingressVip) => (react_1.default.createElement("span", { key: ingressVip.ip },
|
|
84
|
+
ingressVip.ip,
|
|
85
|
+
react_1.default.createElement("br", null)))),
|
|
86
|
+
props: { 'data-testid': 'ingress-vip' },
|
|
76
87
|
},
|
|
88
|
+
(0, common_1.isDualStack)(cluster)
|
|
89
|
+
? {
|
|
90
|
+
title: (_g = cluster.ingressVips) === null || _g === void 0 ? void 0 : _g.map((ingressVip, index) => (react_1.default.createElement("span", { key: ingressVip.ip },
|
|
91
|
+
index === 0 ? 'Primary' : 'Secondary',
|
|
92
|
+
react_1.default.createElement("br", null)))),
|
|
93
|
+
}
|
|
94
|
+
: { title: '' },
|
|
77
95
|
],
|
|
78
96
|
});
|
|
79
97
|
return networkRows;
|
|
@@ -91,7 +109,7 @@ const ReviewNetworkingTable = ({ cluster }) => {
|
|
|
91
109
|
react_1.default.createElement("br", null)))),
|
|
92
110
|
props: { 'data-testid': 'cluster-network-cidr' },
|
|
93
111
|
},
|
|
94
|
-
(0, common_1.isDualStack)(
|
|
112
|
+
(0, common_1.isDualStack)(cluster) && {
|
|
95
113
|
title: (_b = cluster.clusterNetworks) === null || _b === void 0 ? void 0 : _b.map((network, index) => (react_1.default.createElement("span", { key: network.cidr },
|
|
96
114
|
index === 0 ? 'Primary' : 'Secondary',
|
|
97
115
|
react_1.default.createElement("br", null)))),
|
|
@@ -108,7 +126,7 @@ const ReviewNetworkingTable = ({ cluster }) => {
|
|
|
108
126
|
react_1.default.createElement("br", null)))),
|
|
109
127
|
props: { 'data-testid': 'cluster-network-prefix' },
|
|
110
128
|
},
|
|
111
|
-
(0, common_1.isDualStack)(
|
|
129
|
+
(0, common_1.isDualStack)(cluster) && {
|
|
112
130
|
title: (_d = cluster.clusterNetworks) === null || _d === void 0 ? void 0 : _d.map((network, index) => (react_1.default.createElement("span", { key: network.hostPrefix },
|
|
113
131
|
index === 0 ? 'Primary' : 'Secondary',
|
|
114
132
|
react_1.default.createElement("br", null)))),
|
|
@@ -125,7 +143,7 @@ const ReviewNetworkingTable = ({ cluster }) => {
|
|
|
125
143
|
react_1.default.createElement("br", null)))),
|
|
126
144
|
props: { 'data-testid': 'service-network-cidr' },
|
|
127
145
|
},
|
|
128
|
-
(0, common_1.isDualStack)(
|
|
146
|
+
(0, common_1.isDualStack)(cluster) && {
|
|
129
147
|
title: (_f = cluster.serviceNetworks) === null || _f === void 0 ? void 0 : _f.map((network, index) => (react_1.default.createElement("span", { key: network.cidr },
|
|
130
148
|
index === 0 ? 'Primary' : 'Secondary',
|
|
131
149
|
react_1.default.createElement("br", null)))),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReviewNetworkingTable.js","sourceRoot":"","sources":["../../../../../../lib/ocm/components/clusterConfiguration/review/ReviewNetworkingTable.tsx"],"names":[],"mappings":";;;;AAAA,uDAA+C;AAC/C,yDAA6E;AAC7E,0DAA0B;AAC1B,+
|
|
1
|
+
{"version":3,"file":"ReviewNetworkingTable.js","sourceRoot":"","sources":["../../../../../../lib/ocm/components/clusterConfiguration/review/ReviewNetworkingTable.tsx"],"names":[],"mappings":"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"}
|
|
@@ -25,7 +25,7 @@ const getManagementType = ({ userManagedNetworking }) => {
|
|
|
25
25
|
return managementType;
|
|
26
26
|
};
|
|
27
27
|
exports.getManagementType = getManagementType;
|
|
28
|
-
const getStackTypeLabel = (cluster) => (0, common_1.isDualStack)(
|
|
28
|
+
const getStackTypeLabel = (cluster) => (0, common_1.isDualStack)(cluster) ? 'Dual-stack' : 'IPv4';
|
|
29
29
|
exports.getStackTypeLabel = getStackTypeLabel;
|
|
30
30
|
const getDiskEncryptionEnabledOnStatus = (diskEncryption) => {
|
|
31
31
|
let diskEncryptionType = null;
|
|
@@ -49,7 +49,7 @@ exports.getDiskEncryptionEnabledOnStatus = getDiskEncryptionEnabledOnStatus;
|
|
|
49
49
|
const ClusterProperties = ({ cluster, externalMode = false }) => {
|
|
50
50
|
var _a, _b;
|
|
51
51
|
const { t } = (0, use_translation_wrapper_1.useTranslation)();
|
|
52
|
-
const isDualStackType = (0, common_1.isDualStack)(
|
|
52
|
+
const isDualStackType = (0, common_1.isDualStack)(cluster);
|
|
53
53
|
const featureSupportLevelContext = (0, newFeatureSupportLevels_1.useNewFeatureSupportLevel)();
|
|
54
54
|
const activeFeatureConfiguration = featureSupportLevelContext.activeFeatureConfiguration;
|
|
55
55
|
const underlyingCpuArchitecture = (activeFeatureConfiguration === null || activeFeatureConfiguration === void 0 ? void 0 : activeFeatureConfiguration.underlyingCpuArchitecture) || (0, common_1.getDefaultCpuArchitecture)();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClusterProperties.js","sourceRoot":"","sources":["../../../../../lib/ocm/components/clusterDetail/ClusterProperties.tsx"],"names":[],"mappings":";;;;AAAA,0DAA0B;AAC1B,uDAA2D;AAC3D,4CAYyB;AACzB,2FAA+E;AAC/E,kEAAgF;AAChF,8FAA8D;AAC9D,gGAA+F;AAQxF,MAAM,cAAc,GAAG,CAAC,kBAA0C,EAAU,EAAE;IACnF,IAAI,WAAmB,CAAC;IACxB,kBAAkB,KAAK,yBAAgB;QACrC,CAAC,CAAC,CAAC,WAAW,GAAG,mCAAmC,CAAC;QACrD,CAAC,CAAC,CAAC,WAAW,GAAG,4BAA4B,CAAC,CAAC;IACjD,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AANW,QAAA,cAAc,kBAMzB;AAEK,MAAM,iBAAiB,GAAG,CAAC,EAAE,qBAAqB,EAAW,EAAU,EAAE;IAC9E,IAAI,cAAsB,CAAC;IAC3B,qBAAqB;QACnB,CAAC,CAAC,CAAC,cAAc,GAAG,yBAAyB,CAAC;QAC9C,CAAC,CAAC,CAAC,cAAc,GAAG,4BAA4B,CAAC,CAAC;IACpD,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC;AANW,QAAA,iBAAiB,qBAM5B;AAEK,MAAM,iBAAiB,GAAG,CAAC,OAAgB,EAAU,EAAE,CAC5D,IAAA,oBAAW,
|
|
1
|
+
{"version":3,"file":"ClusterProperties.js","sourceRoot":"","sources":["../../../../../lib/ocm/components/clusterDetail/ClusterProperties.tsx"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,7 @@ const AssistedInstallerHeader = () => {
|
|
|
15
15
|
react_1.default.createElement(react_core_1.SplitItem, null,
|
|
16
16
|
react_1.default.createElement(common_1.ExternalLink, { href: common_1.ASSISTED_INSTALLER_DOCUMENTATION_LINK }, "Assisted Installer documentation")),
|
|
17
17
|
common_1.isInOcm && (react_1.default.createElement(react_core_1.SplitItem, null,
|
|
18
|
-
react_1.default.createElement(react_core_1.Content, { component: "a", "data-testid": "whats-new-link" }, "What's new in Assisted Installer?"))))));
|
|
18
|
+
react_1.default.createElement(react_core_1.Content, { component: "a", "data-testid": "whats-new-link", hidden: true }, "What's new in Assisted Installer?"))))));
|
|
19
19
|
};
|
|
20
20
|
exports.AssistedInstallerHeader = AssistedInstallerHeader;
|
|
21
21
|
//# sourceMappingURL=AssistedInstallerHeader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssistedInstallerHeader.js","sourceRoot":"","sources":["../../../../../lib/ocm/components/clusters/AssistedInstallerHeader.tsx"],"names":[],"mappings":";;;;AAAA,0DAA0B;AAC1B,uDAAmE;AACnE,4CAKyB;AACzB,yDAAqD;AAE9C,MAAM,uBAAuB,GAAG,GAAG,EAAE;IAC1C,MAAM,6BAA6B,GAAG,IAAA,wBAAU,EAAC,2CAA2C,CAAC,CAAC;IAC9F,OAAO,CACL;QACE,8BAAC,oBAAO,IAAC,SAAS,EAAC,IAAI,EAAC,SAAS,EAAC,wBAAwB,oDAEhD;QACT,6BAA6B,IAAI,8BAAC,yBAAgB,OAAG;QACtD,8BAAC,kBAAK,IAAC,SAAS;YACd,8BAAC,sBAAS;gBACR,8BAAC,qBAAY,IAAC,IAAI,EAAE,8CAAqC,uCAE1C,CACL;YACX,gBAAO,IAAI,CACV,8BAAC,sBAAS;gBACR,8BAAC,oBAAO,IAAC,SAAS,EAAC,GAAG,iBAAa,gBAAgB,
|
|
1
|
+
{"version":3,"file":"AssistedInstallerHeader.js","sourceRoot":"","sources":["../../../../../lib/ocm/components/clusters/AssistedInstallerHeader.tsx"],"names":[],"mappings":";;;;AAAA,0DAA0B;AAC1B,uDAAmE;AACnE,4CAKyB;AACzB,yDAAqD;AAE9C,MAAM,uBAAuB,GAAG,GAAG,EAAE;IAC1C,MAAM,6BAA6B,GAAG,IAAA,wBAAU,EAAC,2CAA2C,CAAC,CAAC;IAC9F,OAAO,CACL;QACE,8BAAC,oBAAO,IAAC,SAAS,EAAC,IAAI,EAAC,SAAS,EAAC,wBAAwB,oDAEhD;QACT,6BAA6B,IAAI,8BAAC,yBAAgB,OAAG;QACtD,8BAAC,kBAAK,IAAC,SAAS;YACd,8BAAC,sBAAS;gBACR,8BAAC,qBAAY,IAAC,IAAI,EAAE,8CAAqC,uCAE1C,CACL;YACX,gBAAO,IAAI,CACV,8BAAC,sBAAS;gBACR,8BAAC,oBAAO,IAAC,SAAS,EAAC,GAAG,iBAAa,gBAAgB,EAAC,MAAM,EAAE,IAAI,wCAEtD,CACA,CACb,CACK,CACP,CACJ,CAAC;AACJ,CAAC,CAAC;AAxBW,QAAA,uBAAuB,2BAwBlC"}
|
|
@@ -206,9 +206,7 @@ export const isDualStack = ({
|
|
|
206
206
|
clusterNetworks,
|
|
207
207
|
serviceNetworks,
|
|
208
208
|
openshiftVersion,
|
|
209
|
-
}: Pick<Cluster, 'machineNetworks' | 'clusterNetworks' | 'serviceNetworks'>
|
|
210
|
-
openshiftVersion?: string;
|
|
211
|
-
}) =>
|
|
209
|
+
}: Pick<Cluster, 'machineNetworks' | 'clusterNetworks' | 'serviceNetworks' | 'openshiftVersion'>) =>
|
|
212
210
|
areNetworksDualStack(machineNetworks, openshiftVersion) &&
|
|
213
211
|
areNetworksDualStack(clusterNetworks, openshiftVersion) &&
|
|
214
212
|
areNetworksDualStack(serviceNetworks, openshiftVersion);
|
|
@@ -173,6 +173,17 @@ export const ipValidationSchema = Yup.string().test(
|
|
|
173
173
|
(value?: string) => Address4.isValid(value || '') || Address6.isValid(value || ''),
|
|
174
174
|
);
|
|
175
175
|
|
|
176
|
+
// Helpers to classify literal IPs more robustly
|
|
177
|
+
const isIPv4Address = (ip?: string) => {
|
|
178
|
+
if (!ip) return false;
|
|
179
|
+
return ip.includes('.') && Address4.isValid(ip);
|
|
180
|
+
};
|
|
181
|
+
|
|
182
|
+
const isIPv6Address = (ip?: string) => {
|
|
183
|
+
if (!ip) return false;
|
|
184
|
+
return ip.includes(':') && Address6.isValid(ip);
|
|
185
|
+
};
|
|
186
|
+
|
|
176
187
|
export const ipNoSuffixValidationSchema = Yup.string().test(
|
|
177
188
|
'ip-validation-no-suffix',
|
|
178
189
|
'Not a valid IP address',
|
|
@@ -202,7 +213,6 @@ export const vipRangeValidationSchema = (
|
|
|
202
213
|
} catch (err) {
|
|
203
214
|
return true;
|
|
204
215
|
}
|
|
205
|
-
|
|
206
216
|
const foundHostSubnets = [];
|
|
207
217
|
if (machineNetworks) {
|
|
208
218
|
const cidrs = machineNetworks?.map((network) => network.cidr);
|
|
@@ -303,12 +313,51 @@ export const vipNoSuffixValidationSchema = (
|
|
|
303
313
|
vipDhcpAllocation: NetworkConfigurationValues['vipDhcpAllocation'],
|
|
304
314
|
managedNetworkingType: NetworkConfigurationValues['managedNetworkingType'],
|
|
305
315
|
) => !vipDhcpAllocation && managedNetworkingType !== 'userManaged',
|
|
306
|
-
then: () =>
|
|
307
|
-
|
|
316
|
+
then: () => {
|
|
317
|
+
// Per-item schema for VIPs (apiVips[*].ip / ingressVips[*].ip)
|
|
318
|
+
// 1) Require value once set
|
|
319
|
+
// 2) Validate IP without suffix
|
|
320
|
+
// 3) Ensure VIP family matches machineNetworks[idx] family
|
|
321
|
+
// 4) Validate range vs selected subnets
|
|
322
|
+
// 5) No broadcast/network address
|
|
323
|
+
// 6) Uniqueness across API/Ingress
|
|
324
|
+
const vipFamilyMatchSchema = Yup.string().test(
|
|
325
|
+
'vip-family-match-machine-network',
|
|
326
|
+
'IP family must match the corresponding machine network family.',
|
|
327
|
+
function (value?: string) {
|
|
328
|
+
if (!value) {
|
|
329
|
+
return true;
|
|
330
|
+
}
|
|
331
|
+
// this.path looks like: "apiVips[0].ip" or "ingressVips[1].ip"
|
|
332
|
+
const path = this.path || '';
|
|
333
|
+
const match = path.match(/\[(\d+)\]/);
|
|
334
|
+
const index = match ? parseInt(match[1], 10) : NaN;
|
|
335
|
+
if (Number.isNaN(index)) {
|
|
336
|
+
return true;
|
|
337
|
+
}
|
|
338
|
+
const cidr = values.machineNetworks?.[index]?.cidr || '';
|
|
339
|
+
const mnIsV4 = isCIDR.v4(cidr);
|
|
340
|
+
const mnIsV6 = isCIDR.v6(cidr);
|
|
341
|
+
// If machine network at index is not selected/valid, don't block validation here
|
|
342
|
+
if (!mnIsV4 && !mnIsV6) {
|
|
343
|
+
return true;
|
|
344
|
+
}
|
|
345
|
+
const ipIsV4 = isIPv4Address(value);
|
|
346
|
+
const ipIsV6 = isIPv6Address(value);
|
|
347
|
+
if (!ipIsV4 && !ipIsV6) {
|
|
348
|
+
return true;
|
|
349
|
+
}
|
|
350
|
+
return mnIsV4 ? ipIsV4 : ipIsV6;
|
|
351
|
+
},
|
|
352
|
+
);
|
|
353
|
+
|
|
354
|
+
return requiredOnceSet(head(initialValues)?.ip, 'Required. Please provide an IP address')
|
|
308
355
|
.concat(ipNoSuffixValidationSchema)
|
|
356
|
+
.concat(vipFamilyMatchSchema)
|
|
309
357
|
.concat(vipRangeValidationSchema(hostSubnets, values, false))
|
|
310
358
|
.concat(vipBroadcastValidationSchema(values))
|
|
311
|
-
.concat(vipUniqueValidationSchema(values, true))
|
|
359
|
+
.concat(vipUniqueValidationSchema(values, true));
|
|
360
|
+
},
|
|
312
361
|
});
|
|
313
362
|
|
|
314
363
|
export const vipArrayValidationSchema = <T extends Yup.Maybe<Yup.AnyObject>>(
|
|
@@ -324,11 +373,39 @@ export const vipArrayValidationSchema = <T extends Yup.Maybe<Yup.AnyObject>>(
|
|
|
324
373
|
}),
|
|
325
374
|
)
|
|
326
375
|
: Yup.array<T>()
|
|
327
|
-
)
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
376
|
+
)
|
|
377
|
+
.test(
|
|
378
|
+
'vips-length',
|
|
379
|
+
'Both API and ingress APIs must be provided.',
|
|
380
|
+
(_value) => values.apiVips?.length === values.ingressVips?.length,
|
|
381
|
+
)
|
|
382
|
+
.test(
|
|
383
|
+
'vips-match-machine-networks',
|
|
384
|
+
'Primary API and Ingress IPs must match the primary machine network family; secondary must match the secondary machine network family.',
|
|
385
|
+
(_vips?: { ip?: string }[]) => {
|
|
386
|
+
const machineNetworks = values.machineNetworks || [];
|
|
387
|
+
const validateIndex = (idx: number) => {
|
|
388
|
+
const cidr = machineNetworks[idx]?.cidr || '';
|
|
389
|
+
const mIsIpv4 = isCIDR.v4(cidr);
|
|
390
|
+
const mIsIpv6 = isCIDR.v6(cidr);
|
|
391
|
+
if (!mIsIpv4 && !mIsIpv6) {
|
|
392
|
+
return true;
|
|
393
|
+
}
|
|
394
|
+
const api = values.apiVips?.[idx]?.ip || '';
|
|
395
|
+
const ing = values.ingressVips?.[idx]?.ip || '';
|
|
396
|
+
if (!api || !ing) {
|
|
397
|
+
return true;
|
|
398
|
+
}
|
|
399
|
+
const apiOk = mIsIpv4 ? isIPv4Address(api) : isIPv6Address(api);
|
|
400
|
+
const ingOk = mIsIpv4 ? isIPv4Address(ing) : isIPv6Address(ing);
|
|
401
|
+
return apiOk && ingOk;
|
|
402
|
+
};
|
|
403
|
+
|
|
404
|
+
const primaryOk = validateIndex(0);
|
|
405
|
+
const secondaryOk = validateIndex(1);
|
|
406
|
+
return primaryOk && secondaryOk;
|
|
407
|
+
},
|
|
408
|
+
);
|
|
332
409
|
|
|
333
410
|
export const ipBlockValidationSchema = (reservedCidrs: string | string[] | undefined) =>
|
|
334
411
|
Yup.string()
|
|
@@ -440,11 +517,11 @@ export const hostPrefixValidationSchema = (
|
|
|
440
517
|
const errorMsgIPv4 = `${errorMsgPrefix} (${netBlockNumber}) and 25.`;
|
|
441
518
|
const errorMsgIPv6 = `${errorMsgPrefix} (8) and 128.`;
|
|
442
519
|
|
|
443
|
-
if (
|
|
520
|
+
if (isCIDR.v6(clusterNetworkCidr || '')) {
|
|
444
521
|
return Yup.number().required(requiredText).min(8, errorMsgIPv6).max(128, errorMsgIPv6);
|
|
445
522
|
}
|
|
446
523
|
|
|
447
|
-
if (
|
|
524
|
+
if (isCIDR.v4(clusterNetworkCidr || '')) {
|
|
448
525
|
return Yup.number()
|
|
449
526
|
.required(requiredText)
|
|
450
527
|
.min(netBlockNumber, errorMsgIPv4)
|
|
@@ -715,13 +792,52 @@ export const dualStackValidationSchema = (field: string, openshiftVersion?: stri
|
|
|
715
792
|
(values?: { cidr: MachineNetwork['cidr'] }[]): boolean => {
|
|
716
793
|
// For OCP versions > 4.11, allow IPv6 as primary network
|
|
717
794
|
if (openshiftVersion && isMajorMinorVersionEqualOrGreater(openshiftVersion, '4.12')) {
|
|
718
|
-
return (
|
|
719
|
-
!!values?.[0].cidr &&
|
|
720
|
-
(Address4.isValid(values[0].cidr) || Address6.isValid(values[0].cidr))
|
|
721
|
-
);
|
|
795
|
+
return !!values?.[0].cidr && (isCIDR.v4(values[0].cidr) || isCIDR.v6(values[0].cidr));
|
|
722
796
|
}
|
|
723
797
|
// For older versions, require IPv4 as primary network
|
|
724
|
-
return !!values?.[0].cidr &&
|
|
798
|
+
return !!values?.[0].cidr && isCIDR.v4(values[0].cidr);
|
|
799
|
+
},
|
|
800
|
+
)
|
|
801
|
+
.test(
|
|
802
|
+
'dual-stack-unique-cidrs',
|
|
803
|
+
`Provided ${field} subnets must be unique.`,
|
|
804
|
+
(values?: { cidr?: MachineNetwork['cidr'] }[]) => {
|
|
805
|
+
if (!values || values.length < 2) {
|
|
806
|
+
return true;
|
|
807
|
+
}
|
|
808
|
+
const first = values[0]?.cidr || '';
|
|
809
|
+
const second = values[1]?.cidr || '';
|
|
810
|
+
if (!first || !second) {
|
|
811
|
+
return true;
|
|
812
|
+
}
|
|
813
|
+
const firstIsCidr = isCIDR.v4(first) || isCIDR.v6(first);
|
|
814
|
+
const secondIsCidr = isCIDR.v4(second) || isCIDR.v6(second);
|
|
815
|
+
if (!firstIsCidr || !secondIsCidr) {
|
|
816
|
+
return true;
|
|
817
|
+
}
|
|
818
|
+
return first !== second;
|
|
819
|
+
},
|
|
820
|
+
)
|
|
821
|
+
.test(
|
|
822
|
+
'dual-stack-opposite-families',
|
|
823
|
+
`When two ${field} are provided, one must be IPv4 and the other IPv6.`,
|
|
824
|
+
(values?: { cidr?: MachineNetwork['cidr'] }[]) => {
|
|
825
|
+
if (!values || values.length < 2) {
|
|
826
|
+
return true;
|
|
827
|
+
}
|
|
828
|
+
const a = values[0]?.cidr || '';
|
|
829
|
+
const b = values[1]?.cidr || '';
|
|
830
|
+
if (!a || !b) {
|
|
831
|
+
return true;
|
|
832
|
+
}
|
|
833
|
+
const a4 = isCIDR.v4(a);
|
|
834
|
+
const a6 = isCIDR.v6(a);
|
|
835
|
+
const b4 = isCIDR.v4(b);
|
|
836
|
+
const b6 = isCIDR.v6(b);
|
|
837
|
+
if (!((a4 || a6) && (b4 || b6))) {
|
|
838
|
+
return true;
|
|
839
|
+
}
|
|
840
|
+
return (a4 && b6) || (a6 && b4);
|
|
725
841
|
},
|
|
726
842
|
);
|
|
727
843
|
|
package/lib/ocm/components/clusterConfiguration/networkConfiguration/AvailableSubnetsControl.tsx
CHANGED
|
@@ -72,6 +72,35 @@ export const AvailableSubnetsControl = ({
|
|
|
72
72
|
const autoSelectNetwork = !isViewerMode && hasEmptySelection;
|
|
73
73
|
useAutoSelectSingleAvailableSubnet(autoSelectNetwork, setFieldValue, cidr, clusterId);
|
|
74
74
|
|
|
75
|
+
// Ensure primary and secondary machine networks are not duplicated.
|
|
76
|
+
// If the user switches primary to the same CIDR as secondary, adjust secondary to the opposite family or clear it.
|
|
77
|
+
React.useEffect(() => {
|
|
78
|
+
if (!isDualStack) {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
if (!values.machineNetworks || values.machineNetworks.length < 2) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
const first = values.machineNetworks?.[0]?.cidr || '';
|
|
85
|
+
const second = values.machineNetworks?.[1]?.cidr || '';
|
|
86
|
+
if (!first || !second) {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
if (first === second) {
|
|
90
|
+
if (Address6.isValid(first)) {
|
|
91
|
+
const nextIPv4 = IPv4Subnets[0]?.subnet || NO_SUBNET_SET;
|
|
92
|
+
const replacement = nextIPv4 !== first ? nextIPv4 : NO_SUBNET_SET;
|
|
93
|
+
setFieldValue('machineNetworks.1.cidr', replacement, true);
|
|
94
|
+
} else if (Address4.isValid(first)) {
|
|
95
|
+
const nextIPv6 = IPv6Subnets[0]?.subnet || NO_SUBNET_SET;
|
|
96
|
+
const replacement = nextIPv6 !== first ? nextIPv6 : NO_SUBNET_SET;
|
|
97
|
+
setFieldValue('machineNetworks.1.cidr', replacement, true);
|
|
98
|
+
} else {
|
|
99
|
+
setFieldValue('machineNetworks.1.cidr', NO_SUBNET_SET, true);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}, [isDualStack, values.machineNetworks, IPv4Subnets, IPv6Subnets, setFieldValue]);
|
|
103
|
+
|
|
75
104
|
return (
|
|
76
105
|
<>
|
|
77
106
|
<FormGroup
|
|
@@ -68,11 +68,12 @@ export const StackTypeControlGroup = ({
|
|
|
68
68
|
const setSingleStack = React.useCallback(() => {
|
|
69
69
|
setFieldValue('stackType', IPV4_STACK);
|
|
70
70
|
|
|
71
|
+
// Determine whether the first machine network is IPv4
|
|
72
|
+
const firstNetwork = values.machineNetworks?.[0];
|
|
73
|
+
const isFirstIPv4 = Boolean(firstNetwork?.cidr && Address4.isValid(firstNetwork.cidr));
|
|
74
|
+
|
|
71
75
|
if (values.machineNetworks && values.machineNetworks?.length >= 2) {
|
|
72
76
|
// For single-stack IPv4, prefer IPv4 machine network
|
|
73
|
-
const firstNetwork = values.machineNetworks[0];
|
|
74
|
-
const isFirstIPv4 = firstNetwork?.cidr && Address4.isValid(firstNetwork.cidr);
|
|
75
|
-
|
|
76
77
|
if (isFirstIPv4) {
|
|
77
78
|
// Keep the first network if it's IPv4
|
|
78
79
|
setFieldValue('machineNetworks', [firstNetwork]);
|
|
@@ -123,6 +124,24 @@ export const StackTypeControlGroup = ({
|
|
|
123
124
|
setFieldValue('serviceNetworks', [ipv4Service]);
|
|
124
125
|
}
|
|
125
126
|
|
|
127
|
+
// Keep only IPv4 VIPs when switching to single-stack (unless DHCP allocation is used)
|
|
128
|
+
if (!values.vipDhcpAllocation) {
|
|
129
|
+
const pruneVips = (
|
|
130
|
+
vips?: { ip?: string; clusterId?: Cluster['id'] }[],
|
|
131
|
+
): { ip: string; clusterId: Cluster['id'] }[] => {
|
|
132
|
+
if (!vips || vips.length === 0) return [];
|
|
133
|
+
// Choose which index to keep based on whether the first network is IPv4
|
|
134
|
+
const keepIndex = isFirstIPv4 ? 0 : 1;
|
|
135
|
+
const chosen = vips[keepIndex];
|
|
136
|
+
return chosen && chosen.ip
|
|
137
|
+
? [{ ip: chosen.ip, clusterId: chosen.clusterId || clusterId }]
|
|
138
|
+
: [];
|
|
139
|
+
};
|
|
140
|
+
|
|
141
|
+
setFieldValue('apiVips', pruneVips(values.apiVips));
|
|
142
|
+
setFieldValue('ingressVips', pruneVips(values.ingressVips));
|
|
143
|
+
}
|
|
144
|
+
|
|
126
145
|
void validateForm();
|
|
127
146
|
}, [
|
|
128
147
|
setFieldValue,
|
|
@@ -133,6 +152,9 @@ export const StackTypeControlGroup = ({
|
|
|
133
152
|
values.clusterNetworks,
|
|
134
153
|
values.machineNetworks,
|
|
135
154
|
values.serviceNetworks,
|
|
155
|
+
values.apiVips,
|
|
156
|
+
values.ingressVips,
|
|
157
|
+
values.vipDhcpAllocation,
|
|
136
158
|
]);
|
|
137
159
|
|
|
138
160
|
const setDualStack = () => {
|
|
@@ -34,7 +34,7 @@ export const getNetworkInitialValues = (
|
|
|
34
34
|
isClusterManagedNetworkingUnsupported: boolean,
|
|
35
35
|
): NetworkConfigurationValues => {
|
|
36
36
|
const isSNOCluster = isSNO(cluster);
|
|
37
|
-
const isDualStackType = isDualStack(
|
|
37
|
+
const isDualStackType = isDualStack(cluster);
|
|
38
38
|
|
|
39
39
|
return {
|
|
40
40
|
apiVips: cluster.apiVips,
|
|
@@ -74,17 +74,9 @@ export const getNetworkConfigurationValidationSchema = (
|
|
|
74
74
|
hostSubnets: HostSubnets,
|
|
75
75
|
openshiftVersion?: string,
|
|
76
76
|
) =>
|
|
77
|
-
Yup.lazy((values: NetworkConfigurationValues) =>
|
|
78
|
-
|
|
79
|
-
values.
|
|
80
|
-
? vipArrayValidationSchema<ApiVip>(hostSubnets, values, initialValues.apiVips).min(
|
|
81
|
-
2,
|
|
82
|
-
'Provide both Primary and Secondary API IPs.',
|
|
83
|
-
)
|
|
84
|
-
: vipArrayValidationSchema<ApiVip>(hostSubnets, values, initialValues.apiVips);
|
|
85
|
-
|
|
86
|
-
return Yup.object<NetworkConfigurationValues>().shape({
|
|
87
|
-
apiVips: apiVipSchema,
|
|
77
|
+
Yup.lazy((values: NetworkConfigurationValues) =>
|
|
78
|
+
Yup.object<NetworkConfigurationValues>().shape({
|
|
79
|
+
apiVips: vipArrayValidationSchema<ApiVip>(hostSubnets, values, initialValues.apiVips),
|
|
88
80
|
ingressVips: vipArrayValidationSchema<IngressVip>(
|
|
89
81
|
hostSubnets,
|
|
90
82
|
values,
|
|
@@ -124,5 +116,5 @@ export const getNetworkConfigurationValidationSchema = (
|
|
|
124
116
|
)
|
|
125
117
|
: Yup.array(),
|
|
126
118
|
}),
|
|
127
|
-
})
|
|
128
|
-
|
|
119
|
+
}),
|
|
120
|
+
);
|