UNPKG

@pubgcorp/pk-template

Version:
152 lines 9.45 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } 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) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.applyPkd = void 0; const applyPkd = (options, pkz) => __awaiter(void 0, 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 !!!'); }); exports.applyPkd = applyPkd; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGstZGVwbG95L2FwcGx5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQWVPLE1BQU0sUUFBUSxHQUFHLENBQU8sT0FBMEIsRUFBRSxHQUFrQixFQUFFLEVBQUU7SUFFL0Usa0VBQWtFO0lBQ2xFLGdDQUFnQztJQUNoQyw2REFBNkQ7SUFDN0QsNERBQTREO0lBQzVELDhEQUE4RDtJQUM5RCw0REFBNEQ7SUFDNUQsU0FBUztJQUVULGlDQUFpQztJQUNqQyx1Q0FBdUM7SUFDdkMsNkRBQTZEO0lBQzdELGdDQUFnQztJQUNoQyxpR0FBaUc7SUFDakcsa0RBQWtEO0lBQ2xELG1DQUFtQztJQUNuQyxnQkFBZ0I7SUFDaEIsWUFBWTtJQUVaLDRCQUE0QjtJQUM1QixnQ0FBZ0M7SUFDaEMsd0NBQXdDO0lBQ3hDLHlCQUF5QjtJQUV6QiwwQkFBMEI7SUFDMUIsaUNBQWlDO0lBQ2pDLGdDQUFnQztJQUNoQyxrQ0FBa0M7SUFDbEMsd0NBQXdDO0lBQ3hDLHlCQUF5QjtJQUV6Qix1QkFBdUI7SUFDdkIsK0NBQStDO0lBQy9DLG9EQUFvRDtJQUNwRCx1R0FBdUc7SUFDdkcsNENBQTRDO0lBQzVDLGdEQUFnRDtJQUNoRCwrQkFBK0I7SUFDL0IsZ0RBQWdEO0lBQ2hELHdCQUF3QjtJQUN4QiwyQkFBMkI7SUFDM0IsNENBQTRDO0lBQzVDLG9CQUFvQjtJQUNwQixZQUFZO0lBQ1osUUFBUTtJQUVSLGdCQUFnQjtJQUNoQixJQUFJO0lBRUosMEVBQTBFO0lBQzFFLGtFQUFrRTtJQUNsRSxpRkFBaUY7SUFDakYsd0ZBQXdGO0lBQ3hGLHdGQUF3RjtJQUN4RiwwQ0FBMEM7SUFDMUMsSUFBSTtJQUVKLHNFQUFzRTtJQUN0RSw4QkFBOEI7SUFDOUIsNkNBQTZDO0lBQzdDLCtEQUErRDtJQUMvRCxrRUFBa0U7SUFDbEUsMEVBQTBFO0lBQzFFLHFGQUFxRjtJQUNyRixtQkFBbUI7SUFDbkIsa0NBQWtDO0lBQ2xDLG9GQUFvRjtJQUNwRixRQUFRO0lBQ1IsbUJBQW1CO0lBQ25CLGlFQUFpRTtJQUNqRSxtQkFBbUI7SUFDbkIsNkJBQTZCO0lBQzdCLElBQUk7SUFFSixtREFBbUQ7SUFDbkQsZ0NBQWdDO0lBQ2hDLGtFQUFrRTtJQUNsRSw0RkFBNEY7SUFDNUYsaUNBQWlDO0lBQ2pDLDJDQUEyQztJQUMzQyxxQkFBcUI7SUFDckIsOEJBQThCO0lBQzlCLHFEQUFxRDtJQUNyRCxlQUFlO0lBQ2YsaURBQWlEO0lBQ2pELHVCQUF1QjtJQUN2QiwwREFBMEQ7SUFDMUQsNkNBQTZDO0lBQzdDLDBDQUEwQztJQUMxQyx1QkFBdUI7SUFDdkIsUUFBUTtJQUNSLElBQUk7SUFFSixrREFBa0Q7SUFDbEQsc0NBQXNDO0lBRXRDLHNDQUFzQztJQUN0QywyQ0FBMkM7SUFDM0MsdUJBQXVCO0lBQ3ZCLDhCQUE4QjtJQUM5QixvREFBb0Q7SUFDcEQsa0JBQWtCO0lBQ2xCLFFBQVE7SUFFUixzSEFBc0g7SUFDdEgsNkNBQTZDO0lBQzdDLG1CQUFtQjtJQUNuQixnRUFBZ0U7SUFDaEUsd0NBQXdDO0lBRXhDLHNEQUFzRDtJQUV0RCxtQkFBbUI7SUFDbkIsSUFBSTtJQUVKLDREQUE0RDtJQUM1RCxzQkFBc0I7SUFDdEIsdUJBQXVCO0lBQ3ZCLGlEQUFpRDtJQUVqRCxxQkFBcUI7SUFDckIsSUFBSTtJQUdKLG9DQUFvQztJQUNwQyx1QkFBdUI7SUFDdkIsNEJBQTRCO0lBQzVCLDhEQUE4RDtJQUM5RCx5Q0FBeUM7SUFDekMsK0JBQStCO0lBQy9CLEtBQUs7SUFDTCw4Q0FBOEM7SUFDOUMsa0ZBQWtGO0lBRWxGLHlCQUF5QjtJQUN6QixvRUFBb0U7SUFDcEUsK0NBQStDO0lBQy9DLDBDQUEwQztJQUMxQywrQ0FBK0M7SUFDL0MsZ0NBQWdDO0lBQ2hDLFlBQVk7SUFDWix1Q0FBdUM7SUFDdkMsUUFBUTtJQUNSLElBQUk7SUFDSiw4Q0FBOEM7SUFDOUMsMENBQTBDO0lBRTFDLGdDQUFnQztJQUNoQyw4QkFBOEI7SUFDOUIsd0JBQXdCO0lBQ3hCLGtDQUFrQztJQUNsQyxRQUFRO0lBQ1IsNkJBQTZCO0lBQzdCLElBQUk7SUFFSixlQUFlO0lBQ2YsNkJBQTZCO0FBRS9CLENBQUMsQ0FBQSxDQUFBO0FBL0pZLFFBQUEsUUFBUSxZQStKcEIifQ==