cdk8s-cli
Version:
This is the command line tool for Cloud Development Kit (CDK) for Kubernetes (cdk8s).
48 lines • 6.47 kB
JavaScript
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) {
var _a;
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 ((_a = options.save) !== null && _a !== void 0 ? _a : 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGF0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW1wb3J0L2Rpc3BhdGNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLCtCQUF1RDtBQUN2RCx5Q0FBNkM7QUFDN0MsaUNBQW9DO0FBQ3BDLCtCQUE0QztBQUM1QyxzQ0FBMEQ7QUFDMUQsa0NBQXVDO0FBRWhDLEtBQUssVUFBVSxjQUFjLENBQUMsT0FBcUIsRUFBRSxJQUFTLEVBQUUsT0FBc0I7O0lBQzNGLEtBQUssTUFBTSxVQUFVLElBQUksT0FBTyxFQUFFO1FBQ2hDLE1BQU0sUUFBUSxHQUFHLE1BQU0sYUFBYSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUV2RCxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyx3Q0FBd0MsVUFBVSxHQUFHLENBQUMsQ0FBQztTQUN4RTtRQUVELE9BQU8sQ0FBQyxLQUFLLENBQUMscURBQXFELENBQUMsQ0FBQztRQUVyRSxNQUFNLFFBQVEsQ0FBQyxNQUFNLENBQUM7WUFDcEIsZ0JBQWdCLEVBQUUsVUFBVSxDQUFDLGdCQUFnQjtZQUM3QyxHQUFHLE9BQU87U0FDWCxDQUFDLENBQUM7UUFFSCxJQUFJLE1BQUEsT0FBTyxDQUFDLElBQUksbUNBQUksSUFBSSxFQUFFO1lBQ3hCLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsZ0JBQWdCLEdBQUcsbUJBQVksR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7WUFDbkksTUFBTSxJQUFBLDBCQUFpQixFQUFDLElBQUksQ0FBQyxDQUFDO1NBQy9CO0tBQ0Y7QUFDSCxDQUFDO0FBcEJELHdDQW9CQztBQUVNLEtBQUssVUFBVSxhQUFhLENBQUMsVUFBc0IsRUFBRSxJQUFTO0lBRW5FLHFDQUFxQztJQUNyQyxNQUFNLEdBQUcsR0FBRyxNQUFNLHlCQUFtQixDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDOUQsSUFBSSxHQUFHLEVBQUU7UUFDUCxPQUFPLElBQUkseUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDckM7SUFFRCxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUUvQyxJQUFJLE1BQU0sS0FBSyxNQUFNLEVBQUU7UUFDckIsT0FBTyxpQkFBVSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztLQUN4QztJQUVELHFDQUFxQztJQUNyQyxNQUFNLFVBQVUsR0FBRyxJQUFBLDBCQUFlLEVBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RELElBQUksVUFBVSxFQUFFO1FBQ2QsT0FBTyxvQ0FBOEIsQ0FBQyxRQUFRLENBQUMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixFQUFFLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7S0FDdkg7SUFFRCwwQkFBMEI7SUFDMUIsT0FBTyxvQ0FBOEIsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDN0QsQ0FBQztBQXRCRCxzQ0FzQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbXBvcnRCYXNlLCBJbXBvcnRPcHRpb25zIH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IEltcG9ydEN1c3RvbVJlc291cmNlRGVmaW5pdGlvbiB9IGZyb20gJy4vY3JkJztcbmltcG9ydCB7IG1hdGNoQ3Jkc0RldlVybCB9IGZyb20gJy4vY3Jkcy1kZXYnO1xuaW1wb3J0IHsgSW1wb3J0SGVsbSB9IGZyb20gJy4vaGVsbSc7XG5pbXBvcnQgeyBJbXBvcnRLdWJlcm5ldGVzQXBpIH0gZnJvbSAnLi9rOHMnO1xuaW1wb3J0IHsgSW1wb3J0U3BlYywgYWRkSW1wb3J0VG9Db25maWcgfSBmcm9tICcuLi9jb25maWcnO1xuaW1wb3J0IHsgUFJFRklYX0RFTElNIH0gZnJvbSAnLi4vdXRpbCc7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbXBvcnREaXNwYXRjaChpbXBvcnRzOiBJbXBvcnRTcGVjW10sIGFyZ3Y6IGFueSwgb3B0aW9uczogSW1wb3J0T3B0aW9ucykge1xuICBmb3IgKGNvbnN0IGltcG9ydFNwZWMgb2YgaW1wb3J0cykge1xuICAgIGNvbnN0IGltcG9ydGVyID0gYXdhaXQgbWF0Y2hJbXBvcnRlcihpbXBvcnRTcGVjLCBhcmd2KTtcblxuICAgIGlmICghaW1wb3J0ZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgdW5hYmxlIHRvIGRldGVybWluZSBpbXBvcnQgdHlwZSBmb3IgXCIke2ltcG9ydFNwZWN9XCJgKTtcbiAgICB9XG5cbiAgICBjb25zb2xlLmVycm9yKCdJbXBvcnRpbmcgcmVzb3VyY2VzLCB0aGlzIG1heSB0YWtlIGEgZmV3IG1vbWVudHMuLi4nKTtcblxuICAgIGF3YWl0IGltcG9ydGVyLmltcG9ydCh7XG4gICAgICBtb2R1bGVOYW1lUHJlZml4OiBpbXBvcnRTcGVjLm1vZHVsZU5hbWVQcmVmaXgsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuXG4gICAgaWYgKG9wdGlvbnMuc2F2ZSA/PyB0cnVlKSB7XG4gICAgICBjb25zdCBzcGVjID0gaW1wb3J0U3BlYy5tb2R1bGVOYW1lUHJlZml4ID8gYCR7aW1wb3J0U3BlYy5tb2R1bGVOYW1lUHJlZml4fSR7UFJFRklYX0RFTElNfSR7aW1wb3J0U3BlYy5zb3VyY2V9YCA6IGltcG9ydFNwZWMuc291cmNlO1xuICAgICAgYXdhaXQgYWRkSW1wb3J0VG9Db25maWcoc3BlYyk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBtYXRjaEltcG9ydGVyKGltcG9ydFNwZWM6IEltcG9ydFNwZWMsIGFyZ3Y6IGFueSk6IFByb21pc2U8SW1wb3J0QmFzZT4ge1xuXG4gIC8vIGZpcnN0IGNoZWNrIGlmIGl0cyBhIGBrOHNAYCBpbXBvcnRcbiAgY29uc3QgazhzID0gYXdhaXQgSW1wb3J0S3ViZXJuZXRlc0FwaS5tYXRjaChpbXBvcnRTcGVjLCBhcmd2KTtcbiAgaWYgKGs4cykge1xuICAgIHJldHVybiBuZXcgSW1wb3J0S3ViZXJuZXRlc0FwaShrOHMpO1xuICB9XG5cbiAgY29uc3QgcHJlZml4ID0gaW1wb3J0U3BlYy5zb3VyY2Uuc3BsaXQoJzonKVswXTtcblxuICBpZiAocHJlZml4ID09PSAnaGVsbScpIHtcbiAgICByZXR1cm4gSW1wb3J0SGVsbS5mcm9tU3BlYyhpbXBvcnRTcGVjKTtcbiAgfVxuXG4gIC8vIG5vdyBjaGVjayBpZiBpdHMgYSBjcmRzLmRldiBpbXBvcnRcbiAgY29uc3QgY3Jkc0RldlVybCA9IG1hdGNoQ3Jkc0RldlVybChpbXBvcnRTcGVjLnNvdXJjZSk7XG4gIGlmIChjcmRzRGV2VXJsKSB7XG4gICAgcmV0dXJuIEltcG9ydEN1c3RvbVJlc291cmNlRGVmaW5pdGlvbi5mcm9tU3BlYyh7IHNvdXJjZTogY3Jkc0RldlVybCwgbW9kdWxlTmFtZVByZWZpeDogaW1wb3J0U3BlYy5tb2R1bGVOYW1lUHJlZml4IH0pO1xuICB9XG5cbiAgLy8gZGVmYXVsdCB0byBhIG5vcm1hbCBDUkRcbiAgcmV0dXJuIEltcG9ydEN1c3RvbVJlc291cmNlRGVmaW5pdGlvbi5mcm9tU3BlYyhpbXBvcnRTcGVjKTtcbn0iXX0=
;