@openshift-assisted/ui-lib
Version:
React component library for the Assisted Installer UI
73 lines • 4.17 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getNetworkConfigurationValidationSchema = exports.getNetworkInitialValues = void 0;
const tslib_1 = require("tslib");
const Yup = tslib_1.__importStar(require("yup"));
const common_1 = require("../../../../common");
const getNetworkInitialValues = (cluster, defaultNetworkValues, isClusterManagedNetworkingUnsupported) => {
var _a;
const isSNOCluster = (0, common_1.isSNO)(cluster);
const isDualStackType = (0, common_1.isDualStack)(cluster);
return {
apiVips: cluster.apiVips,
ingressVips: cluster.ingressVips,
sshPublicKey: cluster.sshPublicKey || '',
vipDhcpAllocation: cluster.vipDhcpAllocation,
managedNetworkingType: ((_a = cluster.platform) === null || _a === void 0 ? void 0 : _a.type) === 'none' ||
(cluster.apiVips && cluster.apiVips.length === 0 && isClusterManagedNetworkingUnsupported) ||
isSNOCluster
? 'userManaged'
: 'clusterManaged',
networkType: cluster.networkType || common_1.NETWORK_TYPE_OVN,
machineNetworks: cluster.machineNetworks || [],
stackType: isDualStackType ? common_1.DUAL_STACK : common_1.IPV4_STACK,
clusterNetworks: cluster.clusterNetworks ||
(isDualStackType
? defaultNetworkValues.clusterNetworksDualstack
: defaultNetworkValues.clusterNetworksIpv4),
serviceNetworks: cluster.serviceNetworks ||
(isDualStackType
? defaultNetworkValues.serviceNetworksDualstack
: defaultNetworkValues.serviceNetworksIpv4),
};
};
exports.getNetworkInitialValues = getNetworkInitialValues;
const getNetworkConfigurationValidationSchema = (initialValues, hostSubnets) => Yup.lazy((values) => Yup.object().shape({
apiVips: (0, common_1.vipArrayValidationSchema)(hostSubnets, values, initialValues.apiVips),
ingressVips: (0, common_1.vipArrayValidationSchema)(hostSubnets, values, initialValues.ingressVips),
sshPublicKey: common_1.sshPublicKeyListValidationSchema,
machineNetworks: values.managedNetworkingType === 'userManaged'
? Yup.array()
: common_1.machineNetworksValidationSchema.when('stackType', {
is: (stackType) => stackType === common_1.IPV4_STACK,
then: () => common_1.machineNetworksValidationSchema.concat(common_1.IPv4ValidationSchema),
otherwise: () => {
var _a;
return values.machineNetworks && ((_a = values.machineNetworks) === null || _a === void 0 ? void 0 : _a.length) >= 2
? common_1.machineNetworksValidationSchema.concat((0, common_1.dualStackValidationSchema)('machine networks'))
: Yup.array();
},
}),
clusterNetworks: common_1.clusterNetworksValidationSchema.when('stackType', {
is: (stackType) => stackType === common_1.IPV4_STACK,
then: () => common_1.clusterNetworksValidationSchema.concat(common_1.IPv4ValidationSchema),
otherwise: () => {
var _a;
return values.clusterNetworks && ((_a = values.clusterNetworks) === null || _a === void 0 ? void 0 : _a.length) >= 2
? common_1.clusterNetworksValidationSchema.concat((0, common_1.dualStackValidationSchema)('cluster network'))
: Yup.array();
},
}),
serviceNetworks: common_1.serviceNetworkValidationSchema.when('stackType', {
is: (stackType) => stackType === common_1.IPV4_STACK,
then: () => common_1.serviceNetworkValidationSchema.concat(common_1.IPv4ValidationSchema),
otherwise: () => {
var _a;
return values.serviceNetworks && ((_a = values.serviceNetworks) === null || _a === void 0 ? void 0 : _a.length) >= 2
? common_1.serviceNetworkValidationSchema.concat((0, common_1.dualStackValidationSchema)('service network'))
: Yup.array();
},
}),
}));
exports.getNetworkConfigurationValidationSchema = getNetworkConfigurationValidationSchema;
//# sourceMappingURL=networkConfigurationValidation.js.map