UNPKG

pk-template

Version:
74 lines 7.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const exec_1 = require("./exec"); const kubectl_1 = require("./kubectl"); class PkKubeCtl extends kubectl_1.KubeCtl { constructor(config, progress) { super(config, progress); } queryUnnamespacables() { const command = `kubectl api-resources --no-headers --namespaced=false --kubeconfig ${this.config.kubeConfig}`; const result = exec_1.execPipeSync(command); const lines = result.split('\n').filter(l => l); const set = {}; // Time-to-black-magic. Please refer to https://jira.krafton.com/browse/PUBG-8902 to see the background. const mustHaveElement = 'storage.k8s.io'; const mustHaveElementIdx = result.indexOf(mustHaveElement); const lineIdentifier = '\n'; const mustHaveElementLineIdx = result.lastIndexOf(lineIdentifier, mustHaveElementIdx) + lineIdentifier.length; const apiGroupIdx = mustHaveElementIdx - mustHaveElementLineIdx; for (const line of lines) { const sp = line.substring(apiGroupIdx).trim().split(/\s+/); const key = sp.length == 2 ? `/${sp[1]}` : `${sp[0]}/${sp[2]}`; set[key] = true; } return set; } getPkzSpec(name) { const command = `kubectl get configmap ${name} --kubeconfig ${this.config.kubeConfig} --namespace pk-deployments -ojson`; const result = exec_1.execPipeSync(command, '(NotFound)'); if (result) { const configmap = JSON.parse(result); return configmap; } return null; } toApiGroup(apiVersion) { const sp = apiVersion.split('/'); return sp.length == 2 ? sp[0] : ''; } isNamespacedType(apiGroup, kind) { if (!this.unnamespacables) { this.unnamespacables = this.queryUnnamespacables(); } return !this.unnamespacables[`${apiGroup}/${kind}`]; } isNamespacedObject(object) { const apiGroup = this.toApiGroup(object.apiVersion); return this.isNamespacedType(apiGroup, object.kind); } deleteObjects(keys) { for (const key of keys) { if (key.apiGroup == '' && key.kind == 'Namespace' && key.name == 'default') { this.progress.verbose(' skip default namespaces'); continue; } const namespaced = this.isNamespacedType(key.apiGroup, key.kind); if (namespaced && !key.namespace) { this.progress.error(`!!! cannot determine object to delete (apigroup=${key.apiGroup}, kind=${key.kind}, name=${key.name}), namespace is missing`); continue; } this.progress.confirm(`delete ${key.kind} ${namespaced ? key.namespace + '/' : ''}${key.name}`); if (namespaced) { this.deleteRaw(this.config, key.kind, key.name, key.namespace); } else { this.deleteRaw(this.config, key.kind, key.name); } } } } exports.PkKubeCtl = PkKubeCtl; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGsta3ViZWN0bC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9way1rdWJlY3RsL3BrLWt1YmVjdGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxpQ0FBc0M7QUFFdEMsdUNBQW9DO0FBRXBDLE1BQWEsU0FBVSxTQUFRLGlCQUFPO0lBR3BDLFlBQ0UsTUFBc0IsRUFDdEIsUUFBbUI7UUFDbkIsS0FBSyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsb0JBQW9CO1FBQ2xCLE1BQU0sT0FBTyxHQUFHLHNFQUFzRSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQy9HLE1BQU0sTUFBTSxHQUFHLG1CQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFckMsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoRCxNQUFNLEdBQUcsR0FBUyxFQUFFLENBQUM7UUFFckIsd0dBQXdHO1FBQ3hHLE1BQU0sZUFBZSxHQUFHLGdCQUFnQixDQUFDO1FBQ3pDLE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMzRCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDNUIsTUFBTSxzQkFBc0IsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxrQkFBa0IsQ0FBQyxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUM7UUFDOUcsTUFBTSxXQUFXLEdBQUcsa0JBQWtCLEdBQUcsc0JBQXNCLENBQUM7UUFDaEUsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUU7WUFDeEIsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMs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