@cat-indev/catops-cli 0.0.1-alpha.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +397 -0
- package/dist/bin/devops-cli.d.ts +2 -0
- package/dist/bin/devops-cli.js +132 -0
- package/dist/bin/devops-cli.js.map +1 -0
- package/dist/core/Context.d.ts +42 -0
- package/dist/core/Context.js +153 -0
- package/dist/core/Context.js.map +1 -0
- package/dist/core/Menu.d.ts +23 -0
- package/dist/core/Menu.js +159 -0
- package/dist/core/Menu.js.map +1 -0
- package/dist/core/Notifier.d.ts +27 -0
- package/dist/core/Notifier.js +93 -0
- package/dist/core/Notifier.js.map +1 -0
- package/dist/core/classifiers.d.ts +31 -0
- package/dist/core/classifiers.js +53 -0
- package/dist/core/classifiers.js.map +1 -0
- package/dist/core/logger.d.ts +8 -0
- package/dist/core/logger.js +37 -0
- package/dist/core/logger.js.map +1 -0
- package/dist/core/prompt.d.ts +10 -0
- package/dist/core/prompt.js +87 -0
- package/dist/core/prompt.js.map +1 -0
- package/dist/core/senders.d.ts +27 -0
- package/dist/core/senders.js +109 -0
- package/dist/core/senders.js.map +1 -0
- package/dist/core/types.d.ts +105 -0
- package/dist/core/types.js +3 -0
- package/dist/core/types.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.js +50 -0
- package/dist/index.js.map +1 -0
- package/dist/services/ansible.d.ts +11 -0
- package/dist/services/ansible.js +35 -0
- package/dist/services/ansible.js.map +1 -0
- package/dist/services/archive.d.ts +4 -0
- package/dist/services/archive.js +16 -0
- package/dist/services/archive.js.map +1 -0
- package/dist/services/argocd.d.ts +20 -0
- package/dist/services/argocd.js +48 -0
- package/dist/services/argocd.js.map +1 -0
- package/dist/services/az.d.ts +33 -0
- package/dist/services/az.js +48 -0
- package/dist/services/az.js.map +1 -0
- package/dist/services/azdo.d.ts +13 -0
- package/dist/services/azdo.js +57 -0
- package/dist/services/azdo.js.map +1 -0
- package/dist/services/docker.d.ts +18 -0
- package/dist/services/docker.js +36 -0
- package/dist/services/docker.js.map +1 -0
- package/dist/services/git.d.ts +9 -0
- package/dist/services/git.js +36 -0
- package/dist/services/git.js.map +1 -0
- package/dist/services/helm.d.ts +4 -0
- package/dist/services/helm.js +24 -0
- package/dist/services/helm.js.map +1 -0
- package/dist/services/index.d.ts +32 -0
- package/dist/services/index.js +81 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/kubectl.d.ts +135 -0
- package/dist/services/kubectl.js +266 -0
- package/dist/services/kubectl.js.map +1 -0
- package/dist/services/npm.d.ts +5 -0
- package/dist/services/npm.js +20 -0
- package/dist/services/npm.js.map +1 -0
- package/dist/services/oc.d.ts +146 -0
- package/dist/services/oc.js +296 -0
- package/dist/services/oc.js.map +1 -0
- package/dist/services/shell.d.ts +20 -0
- package/dist/services/shell.js +195 -0
- package/dist/services/shell.js.map +1 -0
- package/dist/services/tekton.d.ts +14 -0
- package/dist/services/tekton.js +46 -0
- package/dist/services/tekton.js.map +1 -0
- package/dist/services/terraform.d.ts +26 -0
- package/dist/services/terraform.js +63 -0
- package/dist/services/terraform.js.map +1 -0
- package/package.json +58 -0
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DeploymentGroupRolloutError = exports.DeploymentRolloutError = void 0;
|
|
4
|
+
exports.login = login;
|
|
5
|
+
exports.project = project;
|
|
6
|
+
exports.apply = apply;
|
|
7
|
+
exports.get = get;
|
|
8
|
+
exports.rollout = rollout;
|
|
9
|
+
exports.newApp = newApp;
|
|
10
|
+
exports.startBuild = startBuild;
|
|
11
|
+
exports.logs = logs;
|
|
12
|
+
exports.waitForDeployment = waitForDeployment;
|
|
13
|
+
exports.waitForDeploymentGroup = waitForDeploymentGroup;
|
|
14
|
+
const shell_1 = require("./shell");
|
|
15
|
+
function isOcOptions(value) {
|
|
16
|
+
return Boolean(value)
|
|
17
|
+
&& typeof value === "object"
|
|
18
|
+
&& !Array.isArray(value)
|
|
19
|
+
&& ("kubeconfig" in value || "namespace" in value || Object.keys(value).length === 0);
|
|
20
|
+
}
|
|
21
|
+
function withGlobalFlags(args, options = {}) {
|
|
22
|
+
const result = [...args];
|
|
23
|
+
if (options.kubeconfig) {
|
|
24
|
+
result.push("--kubeconfig", options.kubeconfig);
|
|
25
|
+
}
|
|
26
|
+
if (options.namespace) {
|
|
27
|
+
result.push("-n", options.namespace);
|
|
28
|
+
}
|
|
29
|
+
return result;
|
|
30
|
+
}
|
|
31
|
+
function login({ server, token, username, password, insecureSkipTlsVerify = false, ...options }) {
|
|
32
|
+
const args = ["login", server];
|
|
33
|
+
if (token) {
|
|
34
|
+
args.push("--token", token);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
args.push("-u", username ?? "", "-p", password ?? "");
|
|
38
|
+
}
|
|
39
|
+
if (insecureSkipTlsVerify) {
|
|
40
|
+
args.push("--insecure-skip-tls-verify");
|
|
41
|
+
}
|
|
42
|
+
return shell_1.shell.exec("oc", ...withGlobalFlags(args, options));
|
|
43
|
+
}
|
|
44
|
+
function project(name, options = {}) {
|
|
45
|
+
return shell_1.shell.exec("oc", ...withGlobalFlags(["project", name], options));
|
|
46
|
+
}
|
|
47
|
+
function apply(file, options = {}) {
|
|
48
|
+
return shell_1.shell.exec("oc", ...withGlobalFlags(["apply", "-f", file], options));
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Igual que antes (`oc.get("pods", "-o", "wide")`), pero ahora también
|
|
52
|
+
* acepta OcOptions como último argumento:
|
|
53
|
+
* oc.get("pods", "-o", "wide", { namespace: "prod" })
|
|
54
|
+
*/
|
|
55
|
+
function get(...rawArgs) {
|
|
56
|
+
let args = rawArgs;
|
|
57
|
+
let options = {};
|
|
58
|
+
const last = rawArgs[rawArgs.length - 1];
|
|
59
|
+
if (rawArgs.length && isOcOptions(last)) {
|
|
60
|
+
options = last;
|
|
61
|
+
args = rawArgs.slice(0, -1);
|
|
62
|
+
}
|
|
63
|
+
return shell_1.shell.exec("oc", "get", ...withGlobalFlags(args, options));
|
|
64
|
+
}
|
|
65
|
+
function rollout(deployment, options = {}) {
|
|
66
|
+
return shell_1.shell.exec("oc", ...withGlobalFlags(["rollout", "status", `dc/${deployment}`], options));
|
|
67
|
+
}
|
|
68
|
+
function newApp(...args) {
|
|
69
|
+
return shell_1.shell.exec("oc", "new-app", ...args);
|
|
70
|
+
}
|
|
71
|
+
function startBuild(buildConfig, { follow = true, ...options } = {}) {
|
|
72
|
+
const args = ["start-build", buildConfig];
|
|
73
|
+
if (follow) {
|
|
74
|
+
args.push("-F");
|
|
75
|
+
}
|
|
76
|
+
return shell_1.shell.exec("oc", ...withGlobalFlags(args, options));
|
|
77
|
+
}
|
|
78
|
+
function logs(pod, options = {}) {
|
|
79
|
+
return shell_1.shell.exec("oc", ...withGlobalFlags(["logs", pod], options));
|
|
80
|
+
}
|
|
81
|
+
// ---------------------------------------------------------------------------
|
|
82
|
+
// waitForDeployment — validación cíclica del rollout, para Deployment (k8s
|
|
83
|
+
// nativo) o DeploymentConfig (OpenShift clásico).
|
|
84
|
+
// ---------------------------------------------------------------------------
|
|
85
|
+
function sleep(ms) {
|
|
86
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Se lanza cuando `waitForDeployment` no llega a un rollout exitoso. Lleva
|
|
90
|
+
* `command: "oc"` para que `classifiers.byCommand({ oc: "kubernetes" })`
|
|
91
|
+
* lo clasifique automáticamente si usas el sistema de notificaciones.
|
|
92
|
+
*/
|
|
93
|
+
class DeploymentRolloutError extends Error {
|
|
94
|
+
constructor(message, info) {
|
|
95
|
+
super(message);
|
|
96
|
+
this.command = "oc";
|
|
97
|
+
this.name = "DeploymentRolloutError";
|
|
98
|
+
this.status = info.status;
|
|
99
|
+
this.deployment = info.deployment;
|
|
100
|
+
this.elapsedMs = info.elapsedMs;
|
|
101
|
+
this.restarts = info.restarts;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
exports.DeploymentRolloutError = DeploymentRolloutError;
|
|
105
|
+
function matchLabelsOf(selector) {
|
|
106
|
+
if (!selector)
|
|
107
|
+
return undefined;
|
|
108
|
+
if ("matchLabels" in selector) {
|
|
109
|
+
return selector.matchLabels;
|
|
110
|
+
}
|
|
111
|
+
return selector;
|
|
112
|
+
}
|
|
113
|
+
async function readWorkloadJSON(resourceType, name, options) {
|
|
114
|
+
const result = await get(`${resourceType}/${name}`, "-o", "json", options);
|
|
115
|
+
return JSON.parse(result.stdout);
|
|
116
|
+
}
|
|
117
|
+
async function countPodRestarts(matchLabels, options) {
|
|
118
|
+
if (!matchLabels || !Object.keys(matchLabels).length) {
|
|
119
|
+
return 0;
|
|
120
|
+
}
|
|
121
|
+
const selector = Object.entries(matchLabels)
|
|
122
|
+
.map(([key, value]) => `${key}=${value}`)
|
|
123
|
+
.join(",");
|
|
124
|
+
const result = await get("pods", "-l", selector, "-o", "json", options);
|
|
125
|
+
const parsed = JSON.parse(result.stdout);
|
|
126
|
+
return (parsed.items ?? []).reduce((total, pod) => {
|
|
127
|
+
const podRestarts = (pod.status?.containerStatuses ?? [])
|
|
128
|
+
.reduce((sum, container) => sum + (container.restartCount ?? 0), 0);
|
|
129
|
+
return total + podRestarts;
|
|
130
|
+
}, 0);
|
|
131
|
+
}
|
|
132
|
+
function isProgressingFailed(conditions) {
|
|
133
|
+
const progressing = conditions.find(c => c.type === "Progressing");
|
|
134
|
+
if (progressing?.status === "False")
|
|
135
|
+
return true;
|
|
136
|
+
return conditions.some(c => c.type === "ReplicaFailure" && c.status === "True");
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Valida cíclicamente el estado de un Deployment/DeploymentConfig hasta que:
|
|
140
|
+
* - llega a estado exitoso (replicas listas/actualizadas == replicas deseadas) -> resuelve,
|
|
141
|
+
* - supera `maxRestarts` reinicios acumulados -> lanza DeploymentRolloutError,
|
|
142
|
+
* - se queda en estado Failed más de `failedGracePeriod` sin recuperarse -> lanza DeploymentRolloutError,
|
|
143
|
+
* - o se cumple `timeout` sin éxito -> lanza DeploymentRolloutError.
|
|
144
|
+
*
|
|
145
|
+
* El polling se detiene ("se mata el proceso") apenas se detecta cualquiera
|
|
146
|
+
* de las condiciones de fallo, re-lanzando el error para que `ctx.run(...)`
|
|
147
|
+
* lo capture y lo reporte vía `ctx.notifier` si lo tienes configurado.
|
|
148
|
+
*/
|
|
149
|
+
async function waitForDeployment(options) {
|
|
150
|
+
const { deployment, resourceType = "deployment", timeout = 300000, pollInterval = 5000, failedGracePeriod = pollInterval * 6, maxRestarts, ...ocOptions } = options;
|
|
151
|
+
const startedAt = Date.now();
|
|
152
|
+
let failedSince = null;
|
|
153
|
+
while (true) {
|
|
154
|
+
const elapsedMs = Date.now() - startedAt;
|
|
155
|
+
if (elapsedMs >= timeout) {
|
|
156
|
+
const message = `Timeout esperando el rollout de "${deployment}" (${timeout}ms)`;
|
|
157
|
+
throw new DeploymentRolloutError(message, { status: "timeout", deployment, elapsedMs, restarts: -1 });
|
|
158
|
+
}
|
|
159
|
+
let json;
|
|
160
|
+
try {
|
|
161
|
+
json = await readWorkloadJSON(resourceType, deployment, ocOptions);
|
|
162
|
+
}
|
|
163
|
+
catch {
|
|
164
|
+
// El recurso puede no existir todavía (justo después de un apply); reintenta.
|
|
165
|
+
await sleep(pollInterval);
|
|
166
|
+
continue;
|
|
167
|
+
}
|
|
168
|
+
const desired = json.spec?.replicas ?? 1;
|
|
169
|
+
const ready = json.status?.readyReplicas ?? json.status?.availableReplicas ?? 0;
|
|
170
|
+
const updated = json.status?.updatedReplicas ?? 0;
|
|
171
|
+
const conditions = json.status?.conditions ?? [];
|
|
172
|
+
const failed = isProgressingFailed(conditions);
|
|
173
|
+
const success = !failed && ready >= desired && updated >= desired;
|
|
174
|
+
let restarts = 0;
|
|
175
|
+
if (maxRestarts !== undefined) {
|
|
176
|
+
restarts = await countPodRestarts(matchLabelsOf(json.spec?.selector), ocOptions);
|
|
177
|
+
if (restarts > maxRestarts) {
|
|
178
|
+
const message = `"${deployment}" superó el máximo de reinicios permitido (${restarts} > ${maxRestarts})`;
|
|
179
|
+
throw new DeploymentRolloutError(message, { status: "failed", deployment, elapsedMs, restarts });
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
if (success) {
|
|
183
|
+
const message = `"${deployment}" alcanzó el estado esperado (${ready}/${desired} listas)`;
|
|
184
|
+
return { status: "success", deployment, elapsedMs, restarts, message };
|
|
185
|
+
}
|
|
186
|
+
if (failed) {
|
|
187
|
+
if (failedSince === null) {
|
|
188
|
+
failedSince = Date.now();
|
|
189
|
+
}
|
|
190
|
+
else if (Date.now() - failedSince >= failedGracePeriod) {
|
|
191
|
+
const message = `"${deployment}" quedó en estado Failed y no se recuperó en ${failedGracePeriod}ms`;
|
|
192
|
+
throw new DeploymentRolloutError(message, { status: "failed", deployment, elapsedMs, restarts });
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
else {
|
|
196
|
+
failedSince = null;
|
|
197
|
+
}
|
|
198
|
+
await sleep(pollInterval);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Se lanza cuando `waitForDeploymentGroup` no logra que TODAS las instancias
|
|
203
|
+
* del grupo lleguen a estado exitoso. Lleva `command: "oc"` para que
|
|
204
|
+
* `classifiers.byCommand({ oc: "kubernetes" })` lo clasifique solo.
|
|
205
|
+
*/
|
|
206
|
+
class DeploymentGroupRolloutError extends Error {
|
|
207
|
+
constructor(message, info) {
|
|
208
|
+
super(message);
|
|
209
|
+
this.command = "oc";
|
|
210
|
+
this.name = "DeploymentGroupRolloutError";
|
|
211
|
+
this.label = info.label;
|
|
212
|
+
this.elapsedMs = info.elapsedMs;
|
|
213
|
+
this.succeeded = info.succeeded;
|
|
214
|
+
this.failed = info.failed;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
exports.DeploymentGroupRolloutError = DeploymentGroupRolloutError;
|
|
218
|
+
function toSelectorString(label) {
|
|
219
|
+
if (typeof label === "string")
|
|
220
|
+
return label;
|
|
221
|
+
return Object.entries(label)
|
|
222
|
+
.map(([key, value]) => `${key}=${value}`)
|
|
223
|
+
.join(",");
|
|
224
|
+
}
|
|
225
|
+
async function listWorkloadNames(resourceType, selector, options) {
|
|
226
|
+
const listCommand = resourceType === "dc" ? "dc" : "deployments";
|
|
227
|
+
const result = await get(listCommand, "-l", selector, "-o", "json", options);
|
|
228
|
+
const parsed = JSON.parse(result.stdout);
|
|
229
|
+
return (parsed.items ?? [])
|
|
230
|
+
.map(item => item.metadata?.name)
|
|
231
|
+
.filter((name) => Boolean(name));
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Descubre todos los Deployments/DeploymentConfigs que compartan el `label`
|
|
235
|
+
* dado (p. ej. todas las instancias GitOps de un mismo repo, marcadas con
|
|
236
|
+
* `deployment-group: repository-14`) y espera a que TODAS lleguen a estado
|
|
237
|
+
* exitoso, corriendo `waitForDeployment` por cada una en paralelo con el
|
|
238
|
+
* mismo `timeout` global.
|
|
239
|
+
*
|
|
240
|
+
* Si alguna instancia falla (timeout individual, Failed sin recuperarse, o
|
|
241
|
+
* maxRestarts superado), se espera a que terminen las demás y se lanza
|
|
242
|
+
* `DeploymentGroupRolloutError` con el detalle de cuáles fallaron y cuáles sí
|
|
243
|
+
* llegaron a estado exitoso — listo para que `ctx.run(...)` lo capture y lo
|
|
244
|
+
* reporte vía `ctx.notifier`.
|
|
245
|
+
*/
|
|
246
|
+
async function waitForDeploymentGroup(options) {
|
|
247
|
+
const { label, resourceType = "deployment", timeout = 300000, pollInterval = 5000, failedGracePeriod = pollInterval * 6, maxRestarts, ...ocOptions } = options;
|
|
248
|
+
const selector = toSelectorString(label);
|
|
249
|
+
const startedAt = Date.now();
|
|
250
|
+
const names = await listWorkloadNames(resourceType, selector, ocOptions);
|
|
251
|
+
if (!names.length) {
|
|
252
|
+
const message = `No se encontraron ${resourceType === "dc" ? "deploymentconfigs" : "deployments"} con el label "${selector}"`;
|
|
253
|
+
throw new DeploymentGroupRolloutError(message, {
|
|
254
|
+
label: selector,
|
|
255
|
+
elapsedMs: Date.now() - startedAt,
|
|
256
|
+
succeeded: [],
|
|
257
|
+
failed: []
|
|
258
|
+
});
|
|
259
|
+
}
|
|
260
|
+
const remainingMs = () => Math.max(0, timeout - (Date.now() - startedAt));
|
|
261
|
+
const settled = await Promise.allSettled(names.map(deployment => waitForDeployment({
|
|
262
|
+
deployment,
|
|
263
|
+
resourceType,
|
|
264
|
+
timeout: remainingMs(),
|
|
265
|
+
pollInterval,
|
|
266
|
+
failedGracePeriod,
|
|
267
|
+
maxRestarts,
|
|
268
|
+
...ocOptions
|
|
269
|
+
})));
|
|
270
|
+
const succeeded = [];
|
|
271
|
+
const failed = [];
|
|
272
|
+
const deployments = [];
|
|
273
|
+
settled.forEach((outcome, index) => {
|
|
274
|
+
const name = names[index];
|
|
275
|
+
if (outcome.status === "fulfilled") {
|
|
276
|
+
succeeded.push(name);
|
|
277
|
+
deployments.push(outcome.value);
|
|
278
|
+
return;
|
|
279
|
+
}
|
|
280
|
+
const reason = outcome.reason;
|
|
281
|
+
failed.push({
|
|
282
|
+
deployment: name,
|
|
283
|
+
status: reason?.status ?? "failed",
|
|
284
|
+
message: reason?.message ?? String(outcome.reason)
|
|
285
|
+
});
|
|
286
|
+
});
|
|
287
|
+
const elapsedMs = Date.now() - startedAt;
|
|
288
|
+
if (failed.length) {
|
|
289
|
+
const summary = failed.map(f => `${f.deployment} (${f.status})`).join(", ");
|
|
290
|
+
const message = `${failed.length}/${names.length} instancias del grupo "${selector}" no llegaron a estado exitoso: ${summary}`;
|
|
291
|
+
throw new DeploymentGroupRolloutError(message, { label: selector, elapsedMs, succeeded, failed });
|
|
292
|
+
}
|
|
293
|
+
const message = `Las ${names.length} instancias del grupo "${selector}" alcanzaron el estado esperado`;
|
|
294
|
+
return { status: "success", label: selector, elapsedMs, deployments, message };
|
|
295
|
+
}
|
|
296
|
+
//# sourceMappingURL=oc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oc.js","sourceRoot":"","sources":["../../src/services/oc.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ExecOptions, ExecResult } from "../core/types";
|
|
2
|
+
declare class Shell {
|
|
3
|
+
cwdPath: string;
|
|
4
|
+
environment: NodeJS.ProcessEnv;
|
|
5
|
+
defaults: Required<ExecOptions>;
|
|
6
|
+
configure(options?: ExecOptions): this;
|
|
7
|
+
cwd(dir: string): this;
|
|
8
|
+
env(name: string, value: string): this;
|
|
9
|
+
private _execOnce;
|
|
10
|
+
exec(command: string, ...rawArgs: Array<string | ExecOptions>): Promise<ExecResult>;
|
|
11
|
+
exists(file: string): Promise<boolean>;
|
|
12
|
+
mkdir(dir: string): Promise<void>;
|
|
13
|
+
remove(target: string): Promise<void>;
|
|
14
|
+
copy(from: string, to: string): Promise<void>;
|
|
15
|
+
move(from: string, to: string): Promise<void>;
|
|
16
|
+
read(file: string): Promise<string>;
|
|
17
|
+
write(file: string, data: string): Promise<void>;
|
|
18
|
+
}
|
|
19
|
+
export declare const shell: Shell;
|
|
20
|
+
export type { Shell };
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.shell = void 0;
|
|
37
|
+
const fs = __importStar(require("fs/promises"));
|
|
38
|
+
const fssync = __importStar(require("fs"));
|
|
39
|
+
const path = __importStar(require("path"));
|
|
40
|
+
const child_process_1 = require("child_process");
|
|
41
|
+
const logger_1 = require("../core/logger");
|
|
42
|
+
function isPlainObject(value) {
|
|
43
|
+
return Boolean(value)
|
|
44
|
+
&& typeof value === "object"
|
|
45
|
+
&& !Array.isArray(value);
|
|
46
|
+
}
|
|
47
|
+
function sleep(ms) {
|
|
48
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
49
|
+
}
|
|
50
|
+
class Shell {
|
|
51
|
+
constructor() {
|
|
52
|
+
this.cwdPath = process.cwd();
|
|
53
|
+
this.environment = { ...process.env };
|
|
54
|
+
// Defaults globales, ajustables con shell.configure({...})
|
|
55
|
+
// o por-llamada pasando un objeto de opciones al final de exec(...).
|
|
56
|
+
this.defaults = {
|
|
57
|
+
retry: 1,
|
|
58
|
+
retryDelay: 1000,
|
|
59
|
+
timeout: 0,
|
|
60
|
+
dryRun: false,
|
|
61
|
+
shell: false
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
configure(options = {}) {
|
|
65
|
+
Object.assign(this.defaults, options);
|
|
66
|
+
return this;
|
|
67
|
+
}
|
|
68
|
+
cwd(dir) {
|
|
69
|
+
this.cwdPath = path.resolve(dir);
|
|
70
|
+
return this;
|
|
71
|
+
}
|
|
72
|
+
env(name, value) {
|
|
73
|
+
this.environment[name] = value;
|
|
74
|
+
return this;
|
|
75
|
+
}
|
|
76
|
+
_execOnce(command, args, options) {
|
|
77
|
+
return new Promise((resolve, reject) => {
|
|
78
|
+
logger_1.logger.info(`EXEC: ${command} ${args.join(" ")}`);
|
|
79
|
+
if (options.dryRun) {
|
|
80
|
+
logger_1.logger.warn(`DRY-RUN: no se ejecuta realmente "${command} ${args.join(" ")}"`);
|
|
81
|
+
resolve({
|
|
82
|
+
code: 0,
|
|
83
|
+
stdout: "",
|
|
84
|
+
stderr: "",
|
|
85
|
+
dryRun: true,
|
|
86
|
+
command,
|
|
87
|
+
args
|
|
88
|
+
});
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
const stdout = [];
|
|
92
|
+
const stderr = [];
|
|
93
|
+
const child = (0, child_process_1.spawn)(command, args, {
|
|
94
|
+
cwd: this.cwdPath,
|
|
95
|
+
env: this.environment,
|
|
96
|
+
shell: options.shell,
|
|
97
|
+
stdio: ["inherit", "pipe", "pipe"]
|
|
98
|
+
});
|
|
99
|
+
let timedOut = false;
|
|
100
|
+
let timer = null;
|
|
101
|
+
if (options.timeout > 0) {
|
|
102
|
+
timer = setTimeout(() => {
|
|
103
|
+
timedOut = true;
|
|
104
|
+
logger_1.logger.error(`TIMEOUT: "${command}" excedió ${options.timeout}ms, se envía SIGTERM`);
|
|
105
|
+
child.kill("SIGTERM");
|
|
106
|
+
}, options.timeout);
|
|
107
|
+
}
|
|
108
|
+
child.stdout?.on("data", data => {
|
|
109
|
+
const text = data.toString();
|
|
110
|
+
stdout.push(text);
|
|
111
|
+
logger_1.logger.info(text.trimEnd());
|
|
112
|
+
});
|
|
113
|
+
child.stderr?.on("data", data => {
|
|
114
|
+
const text = data.toString();
|
|
115
|
+
stderr.push(text);
|
|
116
|
+
logger_1.logger.error(text.trimEnd());
|
|
117
|
+
});
|
|
118
|
+
child.on("close", code => {
|
|
119
|
+
if (timer)
|
|
120
|
+
clearTimeout(timer);
|
|
121
|
+
const result = {
|
|
122
|
+
code,
|
|
123
|
+
stdout: stdout.join(""),
|
|
124
|
+
stderr: stderr.join(""),
|
|
125
|
+
timedOut,
|
|
126
|
+
command,
|
|
127
|
+
args
|
|
128
|
+
};
|
|
129
|
+
code === 0 && !timedOut
|
|
130
|
+
? resolve(result)
|
|
131
|
+
: reject(result);
|
|
132
|
+
});
|
|
133
|
+
child.on("error", error => {
|
|
134
|
+
if (timer)
|
|
135
|
+
clearTimeout(timer);
|
|
136
|
+
Object.assign(error, { command, args });
|
|
137
|
+
reject(error);
|
|
138
|
+
});
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
async exec(command, ...rawArgs) {
|
|
142
|
+
let args = rawArgs;
|
|
143
|
+
let callOptions = {};
|
|
144
|
+
const last = rawArgs[rawArgs.length - 1];
|
|
145
|
+
if (rawArgs.length && isPlainObject(last)) {
|
|
146
|
+
callOptions = last;
|
|
147
|
+
args = rawArgs.slice(0, -1);
|
|
148
|
+
}
|
|
149
|
+
const options = {
|
|
150
|
+
...this.defaults,
|
|
151
|
+
...callOptions
|
|
152
|
+
};
|
|
153
|
+
const attempts = Math.max(1, options.retry);
|
|
154
|
+
let lastError = null;
|
|
155
|
+
for (let attempt = 1; attempt <= attempts; attempt++) {
|
|
156
|
+
try {
|
|
157
|
+
return await this._execOnce(command, args, options);
|
|
158
|
+
}
|
|
159
|
+
catch (error) {
|
|
160
|
+
lastError = error;
|
|
161
|
+
const isLastAttempt = attempt === attempts;
|
|
162
|
+
if (isLastAttempt)
|
|
163
|
+
break;
|
|
164
|
+
logger_1.logger.warn(`Reintentando "${command}" (intento ${attempt + 1}/${attempts}) tras fallo`);
|
|
165
|
+
if (options.retryDelay > 0) {
|
|
166
|
+
await sleep(options.retryDelay);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
throw lastError;
|
|
171
|
+
}
|
|
172
|
+
async exists(file) {
|
|
173
|
+
return fssync.existsSync(file);
|
|
174
|
+
}
|
|
175
|
+
async mkdir(dir) {
|
|
176
|
+
await fs.mkdir(dir, { recursive: true });
|
|
177
|
+
}
|
|
178
|
+
async remove(target) {
|
|
179
|
+
await fs.rm(target, { recursive: true, force: true });
|
|
180
|
+
}
|
|
181
|
+
async copy(from, to) {
|
|
182
|
+
await fs.cp(from, to, { recursive: true });
|
|
183
|
+
}
|
|
184
|
+
async move(from, to) {
|
|
185
|
+
await fs.rename(from, to);
|
|
186
|
+
}
|
|
187
|
+
async read(file) {
|
|
188
|
+
return fs.readFile(file, "utf8");
|
|
189
|
+
}
|
|
190
|
+
async write(file, data) {
|
|
191
|
+
await fs.writeFile(file, data);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
exports.shell = new Shell();
|
|
195
|
+
//# sourceMappingURL=shell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shell.js","sourceRoot":"","sources":["../../src/services/shell.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ExecResult } from "../core/types";
|
|
2
|
+
export interface TektonPipelineStartOptions {
|
|
3
|
+
params?: Record<string, string>;
|
|
4
|
+
workspace?: string;
|
|
5
|
+
serviceAccount?: string;
|
|
6
|
+
}
|
|
7
|
+
export interface TektonLogsOptions {
|
|
8
|
+
follow?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare function pipelineStart(name: string, { params, workspace, serviceAccount }?: TektonPipelineStartOptions): Promise<ExecResult>;
|
|
11
|
+
export declare function pipelinerunList(pipelineName?: string): Promise<ExecResult>;
|
|
12
|
+
export declare function pipelinerunLogs(name: string, { follow }?: TektonLogsOptions): Promise<ExecResult>;
|
|
13
|
+
export declare function taskStart(name: string, params?: Record<string, string>): Promise<ExecResult>;
|
|
14
|
+
export declare function taskrunLogs(name: string): Promise<ExecResult>;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.pipelineStart = pipelineStart;
|
|
4
|
+
exports.pipelinerunList = pipelinerunList;
|
|
5
|
+
exports.pipelinerunLogs = pipelinerunLogs;
|
|
6
|
+
exports.taskStart = taskStart;
|
|
7
|
+
exports.taskrunLogs = taskrunLogs;
|
|
8
|
+
const shell_1 = require("./shell");
|
|
9
|
+
function pipelineStart(name, { params = {}, workspace, serviceAccount } = {}) {
|
|
10
|
+
const args = ["pipeline", "start", name];
|
|
11
|
+
Object.entries(params).forEach(([k, v]) => {
|
|
12
|
+
args.push("-p", `${k}=${v}`);
|
|
13
|
+
});
|
|
14
|
+
if (workspace) {
|
|
15
|
+
args.push("-w", workspace);
|
|
16
|
+
}
|
|
17
|
+
if (serviceAccount) {
|
|
18
|
+
args.push("-s", serviceAccount);
|
|
19
|
+
}
|
|
20
|
+
return shell_1.shell.exec("tkn", ...args);
|
|
21
|
+
}
|
|
22
|
+
function pipelinerunList(pipelineName) {
|
|
23
|
+
const args = ["pipelinerun", "list"];
|
|
24
|
+
if (pipelineName) {
|
|
25
|
+
args.push(pipelineName);
|
|
26
|
+
}
|
|
27
|
+
return shell_1.shell.exec("tkn", ...args);
|
|
28
|
+
}
|
|
29
|
+
function pipelinerunLogs(name, { follow = true } = {}) {
|
|
30
|
+
const args = ["pipelinerun", "logs", name];
|
|
31
|
+
if (follow) {
|
|
32
|
+
args.push("-f");
|
|
33
|
+
}
|
|
34
|
+
return shell_1.shell.exec("tkn", ...args);
|
|
35
|
+
}
|
|
36
|
+
function taskStart(name, params = {}) {
|
|
37
|
+
const args = ["task", "start", name];
|
|
38
|
+
Object.entries(params).forEach(([k, v]) => {
|
|
39
|
+
args.push("-p", `${k}=${v}`);
|
|
40
|
+
});
|
|
41
|
+
return shell_1.shell.exec("tkn", ...args);
|
|
42
|
+
}
|
|
43
|
+
function taskrunLogs(name) {
|
|
44
|
+
return shell_1.shell.exec("tkn", "taskrun", "logs", name, "-f");
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=tekton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tekton.js","sourceRoot":"","sources":["../../src/services/tekton.ts"],"names":[],"mappings":";;AAaA,sCAkBC;AAED,0CAUC;AAED,0CAUC;AAED,8BAUC;AAED,kCAEC;AAvED,mCAAgC;AAahC,SAAgB,aAAa,CAAC,IAAY,EAAE,EAAE,MAAM,GAAG,EAAE,EAAE,SAAS,EAAE,cAAc,KAAiC,EAAE;IAEnH,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAEzC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;QACtC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,IAAI,SAAS,EAAE,CAAC;QACZ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,cAAc,EAAE,CAAC;QACjB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,aAAK,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;AAEtC,CAAC;AAED,SAAgB,eAAe,CAAC,YAAqB;IAEjD,MAAM,IAAI,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAErC,IAAI,YAAY,EAAE,CAAC;QACf,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO,aAAK,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;AAEtC,CAAC;AAED,SAAgB,eAAe,CAAC,IAAY,EAAE,EAAE,MAAM,GAAG,IAAI,KAAwB,EAAE;IAEnF,MAAM,IAAI,GAAG,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAE3C,IAAI,MAAM,EAAE,CAAC;QACT,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,aAAK,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;AAEtC,CAAC;AAED,SAAgB,SAAS,CAAC,IAAY,EAAE,SAAiC,EAAE;IAEvE,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAErC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;QACtC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,OAAO,aAAK,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;AAEtC,CAAC;AAED,SAAgB,WAAW,CAAC,IAAY;IACpC,OAAO,aAAK,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC5D,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { ExecResult } from "../core/types";
|
|
2
|
+
export interface TerraformInitOptions {
|
|
3
|
+
backendConfig?: Record<string, string>;
|
|
4
|
+
}
|
|
5
|
+
export interface TerraformPlanOptions {
|
|
6
|
+
out?: string;
|
|
7
|
+
varFile?: string;
|
|
8
|
+
vars?: Record<string, string>;
|
|
9
|
+
}
|
|
10
|
+
export interface TerraformApplyOptions {
|
|
11
|
+
autoApprove?: boolean;
|
|
12
|
+
planFile?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface TerraformDestroyOptions {
|
|
15
|
+
autoApprove?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export interface TerraformFmtOptions {
|
|
18
|
+
check?: boolean;
|
|
19
|
+
}
|
|
20
|
+
export declare function init({ backendConfig }?: TerraformInitOptions): Promise<ExecResult>;
|
|
21
|
+
export declare function plan({ out, varFile, vars }?: TerraformPlanOptions): Promise<ExecResult>;
|
|
22
|
+
export declare function apply({ autoApprove, planFile }?: TerraformApplyOptions): Promise<ExecResult>;
|
|
23
|
+
export declare function destroy({ autoApprove }?: TerraformDestroyOptions): Promise<ExecResult>;
|
|
24
|
+
export declare function output(name?: string): Promise<ExecResult>;
|
|
25
|
+
export declare function validate(): Promise<ExecResult>;
|
|
26
|
+
export declare function fmt({ check }?: TerraformFmtOptions): Promise<ExecResult>;
|