pk-template
Version:
p template engine for kubernetes
50 lines • 4.15 kB
JavaScript
;
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());
});
};
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result["default"] = mod;
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const exec_1 = require("./exec");
const pkyaml = __importStar(require("../pk-yaml"));
class KubeCtl {
constructor(config, progress) {
this.config = config;
this.progress = progress;
}
applyRaw(opt, objects) {
return __awaiter(this, void 0, void 0, function* () {
const yaml = objects.map(o => pkyaml.dumpYaml(o)).filter(o => o != null).join('---\n');
const command = `kubectl apply --kubeconfig ${opt.kubeConfig}${opt.isDryRun ? ' --dry-run' : ''} -f -`;
process.stdout.write(' ');
yield exec_1.execStdin(command, yaml, data => {
const indented = data.replace(/\n/g, '\n ');
process.stdout.write(indented);
});
});
}
deleteRaw(opt, kind, name, namespace) {
const command = namespace === undefined
? `kubectl delete ${kind} ${name} --kubeconfig ${opt.kubeConfig}`
: `kubectl delete ${kind} ${name} --kubeconfig ${opt.kubeConfig} --namespace ${namespace}`;
if (this.config.isDryRun) {
this.progress.info(' skipped');
}
else {
const result = exec_1.execPipeSync(command, '(NotFound)');
this.progress.info(` ${result || 'not found'}`);
}
}
}
exports.KubeCtl = KubeCtl;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3ViZWN0bC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9way1rdWJlY3RsL2t1YmVjdGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxpQ0FBaUQ7QUFDakQsbURBQXFDO0FBRXJDLE1BQWEsT0FBTztJQUNsQixZQUNZLE1BQXNCLEVBQ3RCLFFBQW1CO1FBRG5CLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBQ3RCLGFBQVEsR0FBUixRQUFRLENBQVc7SUFDL0IsQ0FBQztJQUVLLFFBQVEsQ0FBQyxHQUFtQixFQUFFLE9BQWtCOztZQUNwRCxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdkYsTUFBTSxPQUFPLEdBQUcsOEJBQThCLEdBQUcsQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQztZQUV2RyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM3QixNQUFNLGdCQUFTLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRTtnQkFDcEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQy9DLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2pDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUFBO0lBRUQsU0FBUyxDQUFDLEdBQW1CLEVBQUUsSUFBWSxFQUFFLElBQVksRUFBRSxTQUFrQjtRQUMzRSxNQUFNLE9BQU8sR0FBRyxTQUFTLEtBQUssU0FBUztZQUNyQyxDQUFDLENBQUMsa0JBQWtCLElBQUksSUFBSSxJQUFJLGlCQUFpQixHQUFHLENBQUMsVUFBVSxFQUFFO1lBQ2pFLENBQUMsQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLElBQUksaUJBQWlCLEdBQUcsQ0FBQyxVQUFVLGdCQUFnQixTQUFTLEVBQUUsQ0FBQztRQUU3RixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQ25DO2FBQU07WUFDTCxNQUFNLE1BQU0sR0FBRyxtQkFBWSxDQUFDLE9BQU8sRUFBRSxZQUFZLENBQUMsQ0FBQztZQUNuRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLE1BQU0sSUFBSSxXQUFXLEVBQUUsQ0FBQyxDQUFDO1NBQ3BEO0lBQ0gsQ0FBQztDQUNGO0FBN0JELDBCQTZCQyJ9