UNPKG

cdk8s-cli

Version:

This is the command line tool for Cloud Development Kit (CDK) for Kubernetes (cdk8s).

47 lines 6.41 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.matchImporter = exports.importDispatch = void 0; const crd_1 = require("./crd"); const crds_dev_1 = require("./crds-dev"); const helm_1 = require("./helm"); const k8s_1 = require("./k8s"); const config_1 = require("../config"); const util_1 = require("../util"); async function importDispatch(imports, argv, options) { for (const importSpec of imports) { const importer = await matchImporter(importSpec, argv); if (!importer) { throw new Error(`unable to determine import type for "${importSpec}"`); } console.error('Importing resources, this may take a few moments...'); await importer.import({ moduleNamePrefix: importSpec.moduleNamePrefix, ...options, }); if (options.save ?? true) { const spec = importSpec.moduleNamePrefix ? `${importSpec.moduleNamePrefix}${util_1.PREFIX_DELIM}${importSpec.source}` : importSpec.source; await (0, config_1.addImportToConfig)(spec); } } } exports.importDispatch = importDispatch; async function matchImporter(importSpec, argv) { // first check if its a `k8s@` import const k8s = await k8s_1.ImportKubernetesApi.match(importSpec, argv); if (k8s) { return new k8s_1.ImportKubernetesApi(k8s); } const prefix = importSpec.source.split(':')[0]; if (prefix === 'helm') { return helm_1.ImportHelm.fromSpec(importSpec); } // now check if its a crds.dev import const crdsDevUrl = (0, crds_dev_1.matchCrdsDevUrl)(importSpec.source); if (crdsDevUrl) { return crd_1.ImportCustomResourceDefinition.fromSpec({ source: crdsDevUrl, moduleNamePrefix: importSpec.moduleNamePrefix }); } // default to a normal CRD return crd_1.ImportCustomResourceDefinition.fromSpec(importSpec); } exports.matchImporter = matchImporter; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGF0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW1wb3J0L2Rpc3BhdGNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLCtCQUF1RDtBQUN2RCx5Q0FBNkM7QUFDN0MsaUNBQW9DO0FBQ3BDLCtCQUE0QztBQUM1QyxzQ0FBMEQ7QUFDMUQsa0NBQXVDO0FBRWhDLEtBQUssVUFBVSxjQUFjLENBQUMsT0FBcUIsRUFBRSxJQUFTLEVBQUUsT0FBc0I7SUFDM0YsS0FBSyxNQUFNLFVBQVUsSUFBSSxPQUFPLEVBQUU7UUFDaEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxhQUFhLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXZELElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDYixNQUFNLElBQUksS0FBSyxDQUFDLHdDQUF3QyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1NBQ3hFO1FBRUQsT0FBTyxDQUFDLEtBQUssQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO1FBRXJFLE1BQU0sUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUNwQixnQkFBZ0IsRUFBRSxVQUFVLENBQUMsZ0JBQWdCO1lBQzdDLEdBQUcsT0FBTztTQUNYLENBQUMsQ0FBQztRQUVILElBQUksT0FBTyxDQUFDLElBQUksSUFBSSxJQUFJLEVBQUU7WUFDeEIsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxnQkFBZ0IsR0FBRyxtQkFBWSxHQUFHLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztZQUNuSSxNQUFNLElBQUEsMEJBQWlCLEVBQUMsSUFBSSxDQUFDLENBQUM7U0FDL0I7S0FDRjtBQUNILENBQUM7QUFwQkQsd0NBb0JDO0FBRU0sS0FBSyxVQUFVLGFBQWEsQ0FBQyxVQUFzQixFQUFFLElBQVM7SUFFbkUscUNBQXFDO0lBQ3JDLE1BQU0sR0FBRyxHQUFHLE1BQU0seUJBQW1CLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM5RCxJQUFJLEdBQUcsRUFBRTtRQUNQLE9BQU8sSUFBSSx5QkFBbUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztLQUNyQztJQUVELE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRS9DLElBQUksTUFBTSxLQUFLLE1BQU0sRUFBRTtRQUNyQixPQUFPLGlCQUFVLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0tBQ3hDO0lBRUQscUNBQXFDO0lBQ3JDLE1BQU0sVUFBVSxHQUFHLElBQUEsMEJBQWUsRUFBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEQsSUFBSSxVQUFVLEVBQUU7UUFDZCxPQUFPLG9DQUE4QixDQUFDLFFBQVEsQ0FBQyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztLQUN2SDtJQUVELDBCQUEwQjtJQUMxQixPQUFPLG9DQUE4QixDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUM3RCxDQUFDO0FBdEJELHNDQXNCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEltcG9ydEJhc2UsIEltcG9ydE9wdGlvbnMgfSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHsgSW1wb3J0Q3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIH0gZnJvbSAnLi9jcmQnO1xuaW1wb3J0IHsgbWF0Y2hDcmRzRGV2VXJsIH0gZnJvbSAnLi9jcmRzLWRldic7XG5pbXBvcnQgeyBJbXBvcnRIZWxtIH0gZnJvbSAnLi9oZWxtJztcbmltcG9ydCB7IEltcG9ydEt1YmVybmV0ZXNBcGkgfSBmcm9tICcuL2s4cyc7XG5pbXBvcnQgeyBJbXBvcnRTcGVjLCBhZGRJbXBvcnRUb0NvbmZpZyB9IGZyb20gJy4uL2NvbmZpZyc7XG5pbXBvcnQgeyBQUkVGSVhfREVMSU0gfSBmcm9tICcuLi91dGlsJztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGltcG9ydERpc3BhdGNoKGltcG9ydHM6IEltcG9ydFNwZWNbXSwgYXJndjogYW55LCBvcHRpb25zOiBJbXBvcnRPcHRpb25zKSB7XG4gIGZvciAoY29uc3QgaW1wb3J0U3BlYyBvZiBpbXBvcnRzKSB7XG4gICAgY29uc3QgaW1wb3J0ZXIgPSBhd2FpdCBtYXRjaEltcG9ydGVyKGltcG9ydFNwZWMsIGFyZ3YpO1xuXG4gICAgaWYgKCFpbXBvcnRlcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGB1bmFibGUgdG8gZGV0ZXJtaW5lIGltcG9ydCB0eXBlIGZvciBcIiR7aW1wb3J0U3BlY31cImApO1xuICAgIH1cblxuICAgIGNvbnNvbGUuZXJyb3IoJ0ltcG9ydGluZyByZXNvdXJjZXMsIHRoaXMgbWF5IHRha2UgYSBmZXcgbW9tZW50cy4uLicpO1xuXG4gICAgYXdhaXQgaW1wb3J0ZXIuaW1wb3J0KHtcbiAgICAgIG1vZHVsZU5hbWVQcmVmaXg6IGltcG9ydFNwZWMubW9kdWxlTmFtZVByZWZpeCxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfSk7XG5cbiAgICBpZiAob3B0aW9ucy5zYXZlID8/IHRydWUpIHtcbiAgICAgIGNvbnN0IHNwZWMgPSBpbXBvcnRTcGVjLm1vZHVsZU5hbWVQcmVmaXggPyBgJHtpbXBvcnRTcGVjLm1vZHVsZU5hbWVQcmVmaXh9JHtQUkVGSVhfREVMSU19JHtpbXBvcnRTcGVjLnNvdXJjZX1gIDogaW1wb3J0U3BlYy5zb3VyY2U7XG4gICAgICBhd2FpdCBhZGRJbXBvcnRUb0NvbmZpZyhzcGVjKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG1hdGNoSW1wb3J0ZXIoaW1wb3J0U3BlYzogSW1wb3J0U3BlYywgYXJndjogYW55KTogUHJvbWlzZTxJbXBvcnRCYXNlPiB7XG5cbiAgLy8gZmlyc3QgY2hlY2sgaWYgaXRzIGEgYGs4c0BgIGltcG9ydFxuICBjb25zdCBrOHMgPSBhd2FpdCBJbXBvcnRLdWJlcm5ldGVzQXBpLm1hdGNoKGltcG9ydFNwZWMsIGFyZ3YpO1xuICBpZiAoazhzKSB7XG4gICAgcmV0dXJuIG5ldyBJbXBvcnRLdWJlcm5ldGVzQXBpKGs4cyk7XG4gIH1cblxuICBjb25zdCBwcmVmaXggPSBpbXBvcnRTcGVjLnNvdXJjZS5zcGxpdCgnOicpWzBdO1xuXG4gIGlmIChwcmVmaXggPT09ICdoZWxtJykge1xuICAgIHJldHVybiBJbXBvcnRIZWxtLmZyb21TcGVjKGltcG9ydFNwZWMpO1xuICB9XG5cbiAgLy8gbm93IGNoZWNrIGlmIGl0cyBhIGNyZHMuZGV2IGltcG9ydFxuICBjb25zdCBjcmRzRGV2VXJsID0gbWF0Y2hDcmRzRGV2VXJsKGltcG9ydFNwZWMuc291cmNlKTtcbiAgaWYgKGNyZHNEZXZVcmwpIHtcbiAgICByZXR1cm4gSW1wb3J0Q3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uLmZyb21TcGVjKHsgc291cmNlOiBjcmRzRGV2VXJsLCBtb2R1bGVOYW1lUHJlZml4OiBpbXBvcnRTcGVjLm1vZHVsZU5hbWVQcmVmaXggfSk7XG4gIH1cblxuICAvLyBkZWZhdWx0IHRvIGEgbm9ybWFsIENSRFxuICByZXR1cm4gSW1wb3J0Q3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uLmZyb21TcGVjKGltcG9ydFNwZWMpO1xufSJdfQ==