UNPKG

@openshift-assisted/ui-lib

Version:

React component library for the Assisted Installer UI

82 lines 4.74 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getClusterDetailsValidationSchema = exports.getClusterDetailsInitialValues = exports.parseTangServers = void 0; const tslib_1 = require("tslib"); const Yup = tslib_1.__importStar(require("yup")); const types_1 = require("../../types"); const ui_1 = require("../ui"); const emptyTangServers = () => { return [ { url: '', thumbprint: '', }, ]; }; const parseTangServers = (tangServersString) => { if (!tangServersString) { return emptyTangServers(); } try { return JSON.parse(tangServersString); } catch (e) { // console.warn('Tang Servers can not be parsed'); } return emptyTangServers(); }; exports.parseTangServers = parseTangServers; const getClusterDetailsInitialValues = ({ cluster, pullSecret, managedDomains, ocpVersions, baseDomain, }) => { var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l; const { name = '', baseDnsDomain = baseDomain || '', openshiftVersion = (0, ui_1.getDefaultOpenShiftVersion)(ocpVersions), controlPlaneCount = 3, } = cluster || {}; return { name, openshiftVersion, pullSecret: pullSecret || '', baseDnsDomain, controlPlaneCount, useRedHatDnsService: !!baseDnsDomain && managedDomains.map((d) => d.domain).includes(baseDnsDomain), enableDiskEncryptionOnMasters: ['all', 'masters'].includes((_b = (_a = cluster === null || cluster === void 0 ? void 0 : cluster.diskEncryption) === null || _a === void 0 ? void 0 : _a.enableOn) !== null && _b !== void 0 ? _b : 'none'), enableDiskEncryptionOnWorkers: ['all', 'workers'].includes((_d = (_c = cluster === null || cluster === void 0 ? void 0 : cluster.diskEncryption) === null || _c === void 0 ? void 0 : _c.enableOn) !== null && _d !== void 0 ? _d : 'none'), diskEncryptionMode: (_f = (_e = cluster === null || cluster === void 0 ? void 0 : cluster.diskEncryption) === null || _e === void 0 ? void 0 : _e.mode) !== null && _f !== void 0 ? _f : 'tpmv2', diskEncryptionTangServers: (0, exports.parseTangServers)((_g = cluster === null || cluster === void 0 ? void 0 : cluster.diskEncryption) === null || _g === void 0 ? void 0 : _g.tangServers), diskEncryption: (_h = cluster === null || cluster === void 0 ? void 0 : cluster.diskEncryption) !== null && _h !== void 0 ? _h : {}, cpuArchitecture: (cluster === null || cluster === void 0 ? void 0 : cluster.cpuArchitecture) || (0, types_1.getDefaultCpuArchitecture)(), platform: ((_j = cluster === null || cluster === void 0 ? void 0 : cluster.platform) === null || _j === void 0 ? void 0 : _j.type) || 'none', customOpenshiftSelect: null, userManagedNetworking: (cluster === null || cluster === void 0 ? void 0 : cluster.userManagedNetworking) || false, enableDiskEncryptionOnArbiters: ['all', 'arbiters'].includes((_l = (_k = cluster === null || cluster === void 0 ? void 0 : cluster.diskEncryption) === null || _k === void 0 ? void 0 : _k.enableOn) !== null && _l !== void 0 ? _l : 'none'), }; }; exports.getClusterDetailsInitialValues = getClusterDetailsInitialValues; const getClusterDetailsValidationSchema = ({ usedClusterNames, pullSecretSet, validateUniqueName, isOcm, t, }) => Yup.lazy((values) => { const validateName = () => (0, ui_1.nameValidationSchema)(t, usedClusterNames, values.baseDnsDomain, validateUniqueName, isOcm); if (pullSecretSet) { return Yup.object({ name: validateName(), baseDnsDomain: isOcm ? ui_1.baseDomainValidationSchema.required('Required') : ui_1.dnsNameValidationSchema.required('Required'), }); } return Yup.object({ name: validateName(), baseDnsDomain: isOcm ? ui_1.baseDomainValidationSchema.required('Required') : ui_1.dnsNameValidationSchema.required('Required'), pullSecret: ui_1.pullSecretValidationSchema.required('Required.'), diskEncryptionTangServers: Yup.array().when('diskEncryptionMode', { is: (diskEncryptionMode) => { return diskEncryptionMode === 'tang'; }, then: () => Yup.array().of(Yup.object().shape({ url: Yup.string() .url(t('ai:Tang Server URL must be a valid URL starting with "http://" or "https://"')) .required(t('ai:Required.')), thumbprint: Yup.string().required(t('ai:Required.')), })), }), }); }); exports.getClusterDetailsValidationSchema = getClusterDetailsValidationSchema; //# sourceMappingURL=clusterDetailsValidation.js.map