UNPKG

pk-template

Version:
149 lines 9.28 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.applyPkd = (options, pkz) => __awaiter(this, void 0, void 0, function* () { // const buildApplySteps = (objects: IObject[]): IApplyStep[] => { // const g: IApplyStep[] = [ // { name: 'Namespaces', objects: [], final: false }, // { name: 'Resources', objects: [], final: false }, // { name: 'Deployments', objects: [], final: false }, // { name: 'PktPackage', objects: [], final: true }, // ]; // for (const o of objects) { // if (!o.metadata.namespace) { // const namespaced = kube.isNamespacedObject(o); // if (namespaced) { // ui.error(`namespace is missing on (kind=${o.kind}, name=${o.metadata.name})`); // ui.verbose(pkyaml.dumpYaml(o)); // process.exit(1); // } // } // switch (o.kind) { // case 'Namespace': // g[0].objects.push(o); // break; // case 'Pod': // case 'Deployment': // case 'DaemonSet': // case 'StatefulSet': // g[2].objects.push(o); // break; // default: // if (o.kind == 'ConfigMap') { // const name = o.metadata.name; // const pkgid = o.metadata.annotations && o.metadata.annotations['pkt.io/pkz-id']; // if (name === pkgid) { // g[3].objects.push(o); // } else { // g[1].objects.push(o); // } // } else { // g[1].objects.push(o); // } // } // } // return g; // } // const findDisappearedObjects = (currcmap: IObject): IResourceKey[] => { // const prevcmap = kube.getPkzSpec(currcmap.metadata.name) || // { metadata: { name: currcmap.metadata.name }, data: { objects: '' } }; // const prevSpec = PkdCatalog.parse(prevcmap.metadata.name, prevcmap.data.objects); // const currSpec = PkdCatalog.parse(currcmap.metadata.name, currcmap.data.objects); // return prevSpec.subtract(currSpec); // } // const precheckStep = (objects: IObject[], steps: IApplyStep[]) => { // ui.header('pre-check'); // const chalk = getChalk().yellowBright; // ui.output(` target deployment : ${chalk(pkz.name)}`); // ui.output(` kubectl options :${chalk(wholeOption)} `); // ui.output(` context : ${chalk(kubeOption.context)} `); // ui.output(` apply : ${chalk(options.dryRun ? 'no' : 'yes')} `); // ui.output(); // for (const step of steps) { // ui.output(` ${step.name.padEnd(15)}: ${step.objects.length} objects`); // } // ui.output(); // ui.output(` total ${objects.length} objects to apply`); // ui.output(); // ui.confirm("proceed"); // } // const deleteStep = async (step: IApplyStep) => { // ui.header(`Delete step`); // const deleteList = findDisappearedObjects(step.objects[0]); // const targets = deleteList.map(o => `${o.kind}/${o.namespace}/${o.name}`).join(', '); // if (targets.length == 0) { // ui.verbose(' - targets: none'); // ui.info(); // ui.confirm('skip'); // ui.verbose(' - kubectl: delete skipped'); // } else { // ui.verbose(` - targets: ${targets}`); // ui.verbose() // ui.confirm(`delete ${targets.length} objects`); // ui.verbose(' - kubectl: delete'); // kube.deleteObjects(deleteList); // ui.output(); // } // } // const applyStep = async (step: IApplyStep) => { // ui.header(`${step.name} step`); // if (step.objects.length == 0) { // ui.verbose(' - targets: none'); // ui.verbose() // ui.confirm(`skip`); // ui.verbose(' - kubectl: apply skipped'); // return; // } // const targets = step.objects.map(o => `${o.kind}/${o.metadata.namespace || ''}/${o.metadata.name}`).join(', '); // ui.verbose(` - targets: ${targets}`); // ui.verbose() // ui.confirm(`apply these ${step.objects.length} objects`); // ui.verbose(` - kubectl: apply`); // await kube.applyRaw(step.objects, wholeOption); // ui.output(); // } // const buildKubeOption = (pkz: IPkDeployment): string => { // let option = '' // if (pkz.context) // option += ` --context ${pkz.context}`; // return option; // } // const ui = new Progress(options); // const kubeOption = { // context: pkz.context, // kube_dryrun_option: options.dryRun ? ' --dry-run' : '', // kube_option: buildKubeOption(pkz), // sequential_apply: false, // }; // const kube = new PkKubeCtl(kubeOption, ui); // const wholeOption = `${kubeOption.kube_dryrun_option}${kubeOption.kube_option}` // if (!options.dryRun) { // ui.error('CAUTION) APPLYING TO REAL KUBERNETES CLUSTER !!!'); // if (options.yes && !options.immediate) { // for (let i = 10; i >= 0; --i) { // process.stdout.write(`..${i} `); // await delay(500); // } // console.log('.. START !!!'); // } // } // const objects = pkz.objects.filter(o => o); // const steps = buildApplySteps(objects); // precheckStep(objects, steps); // for (const step of steps) { // if (step.final) { // await deleteStep(step); // } // await applyStep(step); // } // ui.output(); // ui.success('success !!!'); }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGstZGVwbG95L2FwcGx5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFlYSxRQUFBLFFBQVEsR0FBRyxDQUFPLE9BQTBCLEVBQUUsR0FBa0IsRUFBRSxFQUFFO0lBRS9FLGtFQUFrRTtJQUNsRSxnQ0FBZ0M7SUFDaEMsNkRBQTZEO0lBQzdELDREQUE0RDtJQUM1RCw4REFBOEQ7SUFDOUQsNERBQTREO0lBQzVELFNBQVM7SUFFVCxpQ0FBaUM7SUFDakMsdUNBQXVDO0lBQ3ZDLDZEQUE2RDtJQUM3RCxnQ0FBZ0M7SUFDaEMsaUdBQWlHO0lBQ2pHLGtEQUFrRDtJQUNsRCxtQ0FBbUM7SUFDbkMsZ0JBQWdCO0lBQ2hCLFlBQVk7SUFFWiw0QkFBNEI7SUFDNUIsZ0NBQWdDO0lBQ2hDLHdDQUF3QztJQUN4Qyx5QkFBeUI7SUFFekIsMEJBQTBCO0lBQzFCLGlDQUFpQztJQUNqQyxnQ0FBZ0M7SUFDaEMsa0NBQWtDO0lBQ2xDLHdDQUF3QztJQUN4Qyx5QkFBeUI7SUFFekIsdUJBQXVCO0lBQ3ZCLCtDQUErQztJQUMvQyxvREFBb0Q7SUFDcEQsdUdBQXVHO0lBQ3ZHLDRDQUE0QztJQUM1QyxnREFBZ0Q7SUFDaEQsK0JBQStCO0lBQy9CLGdEQUFnRDtJQUNoRCx3QkFBd0I7SUFDeEIsMkJBQTJCO0lBQzNCLDRDQUE0QztJQUM1QyxvQkFBb0I7SUFDcEIsWUFBWTtJQUNaLFFBQVE7SUFFUixnQkFBZ0I7SUFDaEIsSUFBSTtJQUVKLDBFQUEwRTtJQUMxRSxrRUFBa0U7SUFDbEUsaUZBQWlGO0lBQ2pGLHdGQUF3RjtJQUN4Rix3RkFBd0Y7SUFDeEYsMENBQTBDO0lBQzFDLElBQUk7SUFFSixzRUFBc0U7SUFDdEUsOEJBQThCO0lBQzlCLDZDQUE2QztJQUM3QywrREFBK0Q7SUFDL0Qsa0VBQWtFO0lBQ2xFLDBFQUEwRTtJQUMxRSxxRkFBcUY7SUFDckYsbUJBQW1CO0lBQ25CLGtDQUFrQztJQUNsQyxvRkFBb0Y7SUFDcEYsUUFBUTtJQUNSLG1CQUFtQjtJQUNuQixpRUFBaUU7SUFDakUsbUJBQW1CO0lBQ25CLDZCQUE2QjtJQUM3QixJQUFJO0lBRUosbURBQW1EO0lBQ25ELGdDQUFnQztJQUNoQyxrRUFBa0U7SUFDbEUsNEZBQTRGO0lBQzVGLGlDQUFpQztJQUNqQywyQ0FBMkM7SUFDM0MscUJBQXFCO0lBQ3JCLDhCQUE4QjtJQUM5QixxREFBcUQ7SUFDckQsZUFBZTtJQUNmLGlEQUFpRDtJQUNqRCx1QkFBdUI7SUFDdkIsMERBQTBEO0lBQzFELDZDQUE2QztJQUM3QywwQ0FBMEM7SUFDMUMsdUJBQXVCO0lBQ3ZCLFFBQVE7SUFDUixJQUFJO0lBRUosa0RBQWtEO0lBQ2xELHNDQUFzQztJQUV0QyxzQ0FBc0M7SUFDdEMsMkNBQTJDO0lBQzNDLHVCQUF1QjtJQUN2Qiw4QkFBOEI7SUFDOUIsb0RBQW9EO0lBQ3BELGtCQUFrQjtJQUNsQixRQUFRO0lBRVIsc0hBQXNIO0lBQ3RILDZDQUE2QztJQUM3QyxtQkFBbUI7SUFDbkIsZ0VBQWdFO0lBQ2hFLHdDQUF3QztJQUV4QyxzREFBc0Q7SUFFdEQsbUJBQW1CO0lBQ25CLElBQUk7SUFFSiw0REFBNEQ7SUFDNUQsc0JBQXNCO0lBQ3RCLHVCQUF1QjtJQUN2QixpREFBaUQ7SUFFakQscUJBQXFCO0lBQ3JCLElBQUk7SUFHSixvQ0FBb0M7SUFDcEMsdUJBQXVCO0lBQ3ZCLDRCQUE0QjtJQUM1Qiw4REFBOEQ7SUFDOUQseUNBQXlDO0lBQ3pDLCtCQUErQjtJQUMvQixLQUFLO0lBQ0wsOENBQThDO0lBQzlDLGtGQUFrRjtJQUVsRix5QkFBeUI7SUFDekIsb0VBQW9FO0lBQ3BFLCtDQUErQztJQUMvQywwQ0FBMEM7SUFDMUMsK0NBQStDO0lBQy9DLGdDQUFnQztJQUNoQyxZQUFZO0lBQ1osdUNBQXVDO0lBQ3ZDLFFBQVE7SUFDUixJQUFJO0lBQ0osOENBQThDO0lBQzlDLDBDQUEwQztJQUUxQyxnQ0FBZ0M7SUFDaEMsOEJBQThCO0lBQzlCLHdCQUF3QjtJQUN4QixrQ0FBa0M7SUFDbEMsUUFBUTtJQUNSLDZCQUE2QjtJQUM3QixJQUFJO0lBRUosZUFBZTtJQUNmLDZCQUE2QjtBQUUvQixDQUFDLENBQUEsQ0FBQSJ9