@webda/kubernetes 3.4.4 → 4.0.0-beta.2
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/lib/cron.d.ts +1 -0
- package/lib/cron.d.ts.map +1 -0
- package/lib/cron.spec.d.ts +2 -0
- package/lib/cron.spec.d.ts.map +1 -0
- package/lib/cron.spec.js +38 -0
- package/lib/cron.spec.js.map +1 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/services/kuberunner.d.ts +2 -6
- package/lib/services/kuberunner.d.ts.map +1 -0
- package/lib/services/kuberunner.js +2 -2
- package/lib/services/kuberunner.js.map +1 -1
- package/lib/services/kuberunner.spec.d.ts +2 -0
- package/lib/services/kuberunner.spec.d.ts.map +1 -0
- package/lib/services/kuberunner.spec.js +116 -0
- package/lib/services/kuberunner.spec.js.map +1 -0
- package/lib/shell.d.ts +1 -0
- package/lib/shell.d.ts.map +1 -0
- package/lib/utils/client.d.ts +1 -0
- package/lib/utils/client.d.ts.map +1 -0
- package/lib/utils/client.spec.d.ts +2 -0
- package/lib/utils/client.spec.d.ts.map +1 -0
- package/lib/utils/client.spec.js +37 -0
- package/lib/utils/client.spec.js.map +1 -0
- package/package.json +18 -13
package/lib/cron.d.ts
CHANGED
|
@@ -14,3 +14,4 @@ import { Application, CronDefinition } from "@webda/core";
|
|
|
14
14
|
* @returns The template string with all placeholders replaced with their corresponding values.
|
|
15
15
|
*/
|
|
16
16
|
export declare function CronReplace(template: string | any, cron: CronDefinition, app: Application, replacements?: any): any;
|
|
17
|
+
//# sourceMappingURL=cron.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cron.d.ts","sourceRoot":"","sources":["../src/cron.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE1D;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,WAAW,EAAE,YAAY,GAAE,GAAQ,OAwCjH"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cron.spec.d.ts","sourceRoot":"","sources":["../src/cron.spec.ts"],"names":[],"mappings":""}
|
package/lib/cron.spec.js
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { suite, test } from "@testdeck/mocha";
|
|
8
|
+
import { WebdaTest } from "@webda/core/lib/test.js";
|
|
9
|
+
import * as assert from "assert";
|
|
10
|
+
import { CronReplace } from "./cron.js";
|
|
11
|
+
let CronTest = class CronTest extends WebdaTest {
|
|
12
|
+
basic() {
|
|
13
|
+
const text = `{
|
|
14
|
+
"value": ["a", "\${cron.argsArray}"],
|
|
15
|
+
"value2": ["a", "\${...cron.args}"],
|
|
16
|
+
"cmdline": "echo 'a' '\${cron.argsLine}'"
|
|
17
|
+
}`;
|
|
18
|
+
let res = JSON.parse(CronReplace(text, { args: ["b", "c"], cron: "* * * * *", description: "Test", method: "method", serviceName: "service" }, this.webda.getApplication(), {}));
|
|
19
|
+
assert.deepStrictEqual(res.value, ["a", "b", "c"]);
|
|
20
|
+
assert.deepStrictEqual(res.value2, ["a", "b", "c"]);
|
|
21
|
+
assert.strictEqual(res.cmdline, "echo 'a' 'b' 'c'");
|
|
22
|
+
assert.strictEqual(CronReplace(`cmdline2:\n - echo "a" "\${cron.argsLine}"\n`, { args: ["b", "c"], cron: "* * * * *", description: "Test", method: "method", serviceName: "service" }, this.webda.getApplication()), `cmdline2:\n - echo "a" "b" "c"\n`);
|
|
23
|
+
res = CronReplace({
|
|
24
|
+
value: [
|
|
25
|
+
"a",
|
|
26
|
+
"${...cron.args}"
|
|
27
|
+
]
|
|
28
|
+
}, { args: ["b", "c"], cron: "* * * * *", description: "Test", method: "method", serviceName: "service" }, this.webda.getApplication());
|
|
29
|
+
assert.deepStrictEqual(res.value, ["a", "b", "c"]);
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
__decorate([
|
|
33
|
+
test
|
|
34
|
+
], CronTest.prototype, "basic", null);
|
|
35
|
+
CronTest = __decorate([
|
|
36
|
+
suite
|
|
37
|
+
], CronTest);
|
|
38
|
+
//# sourceMappingURL=cron.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cron.spec.js","sourceRoot":"","sources":["../src/cron.spec.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAGrC,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,SAAS;IAE9B,KAAK;QACH,MAAM,IAAI,GAAG;;;;MAIX,CAAC;QACH,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAC9B,IAAI,EACJ,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,EACtG,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,EAC3B,EAAE,CACH,CAAC,CAAC;QACH,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QACnD,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;QACpD,MAAM,CAAC,WAAW,CAChB,WAAW,CAAC,+CAA+C,EAAE,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,EACjK,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,EAAE,mCAAmC,CAAC,CAAC;QACvE,GAAG,GAAG,WAAW,CAAC;YAChB,KAAK,EAAE;gBACL,GAAG;gBACH,iBAAiB;aAClB;SACF,EAAE,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,EACzG,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAA;QAC5B,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IACrD,CAAC;CACF,CAAA;AA3BC;IADC,IAAI;qCA2BJ;AA5BG,QAAQ;IADb,KAAK;GACA,QAAQ,CA6Bb"}
|
package/lib/index.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC"}
|
|
@@ -24,11 +24,6 @@ export declare class KubeRunnerParameters extends RunnerParameters implements Ku
|
|
|
24
24
|
jobImage?: string;
|
|
25
25
|
constructor(params: any);
|
|
26
26
|
}
|
|
27
|
-
/**
|
|
28
|
-
* Type of action returned by LocalRunner
|
|
29
|
-
*/
|
|
30
|
-
export interface KubeJob {
|
|
31
|
-
}
|
|
32
27
|
/**
|
|
33
28
|
* Run a Job locally on the server by spawning a child process
|
|
34
29
|
*
|
|
@@ -43,10 +38,11 @@ export default class KubeRunner<T extends KubeRunnerParameters = KubeRunnerParam
|
|
|
43
38
|
/**
|
|
44
39
|
* @inheritdoc
|
|
45
40
|
*/
|
|
46
|
-
launchAction(_action: AsyncAction, info: JobInfo): Promise<
|
|
41
|
+
launchAction(_action: AsyncAction, info: JobInfo): Promise<k8s.V1Job>;
|
|
47
42
|
/**
|
|
48
43
|
* @inheritdoc
|
|
49
44
|
*/
|
|
50
45
|
resolve(): this;
|
|
51
46
|
}
|
|
52
47
|
export { KubeRunner };
|
|
48
|
+
//# sourceMappingURL=kuberunner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kuberunner.d.ts","sourceRoot":"","sources":["../../src/services/kuberunner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC9E,OAAO,EAAa,iBAAiB,EAAa,MAAM,aAAa,CAAC;AACtE,OAAO,EAA0B,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAgBjG;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,gBAAiB,YAAW,oBAAoB;IACxF;;OAEG;IACH,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAClC;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;gBAEN,MAAM,EAAE,GAAG;CAUxB;AAED;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,UAAU,CAAC,CAAC,SAAS,oBAAoB,GAAG,oBAAoB,CAAE,SAAQ,MAAM,CAAC,CAAC,CAAC;IACtG,MAAM,EAAE,GAAG,CAAC,mBAAmB,CAAC;IAEhC;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,GAAG,GAAG,iBAAiB;IAI9C;;OAEG;IACG,YAAY,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;IA+B3E;;OAEG;IACH,OAAO,IAAI,IAAI;CAKhB;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -58,9 +58,9 @@ export default class KubeRunner extends Runner {
|
|
|
58
58
|
resources.spec.template &&
|
|
59
59
|
resources.spec.template.spec &&
|
|
60
60
|
resources.spec.template.spec.containers) {
|
|
61
|
-
for (
|
|
61
|
+
for (const cont of resources.spec.template.spec.containers) {
|
|
62
62
|
cont.env ?? (cont.env = []);
|
|
63
|
-
for (
|
|
63
|
+
for (const envKey in info) {
|
|
64
64
|
cont.env.push({
|
|
65
65
|
name: envKey,
|
|
66
66
|
value: info[envKey]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kuberunner.js","sourceRoot":"","sources":["../../src/services/kuberunner.ts"],"names":[],"mappings":"AACA,OAAO,EAAwB,MAAM,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAqB,SAAS,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAA0C,MAAM,iBAAiB,CAAC;AAEjG,MAAM,sBAAsB,GAAG;;;;;;;;;;;;CAY9B,CAAC;AAEF;;GAEG;AACH,MAAM,OAAO,oBAAqB,SAAQ,gBAAgB;IAkBxD,YAAY,MAAW;QACrB,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YACnE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACxE,CAAC;QACD,IAAI,CAAC,YAAY,KAAjB,IAAI,CAAC,YAAY,GAAK,SAAS,CAAC,KAAK,CAAC,sBAAsB,CAAC,EAAC;QAC9D,IAAI,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;YAC1C,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;CACF;
|
|
1
|
+
{"version":3,"file":"kuberunner.js","sourceRoot":"","sources":["../../src/services/kuberunner.ts"],"names":[],"mappings":"AACA,OAAO,EAAwB,MAAM,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAqB,SAAS,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAA0C,MAAM,iBAAiB,CAAC;AAEjG,MAAM,sBAAsB,GAAG;;;;;;;;;;;;CAY9B,CAAC;AAEF;;GAEG;AACH,MAAM,OAAO,oBAAqB,SAAQ,gBAAgB;IAkBxD,YAAY,MAAW;QACrB,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YACnE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACxE,CAAC;QACD,IAAI,CAAC,YAAY,KAAjB,IAAI,CAAC,YAAY,GAAK,SAAS,CAAC,KAAK,CAAC,sBAAsB,CAAC,EAAC;QAC9D,IAAI,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;YAC1C,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,UAAkE,SAAQ,MAAS;IAGtG;;OAEG;IACH,cAAc,CAAC,MAAW;QACxB,OAAO,IAAI,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,OAAoB,EAAE,IAAa;QACpD,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE;aAC9B,cAAc,EAAE;aAChB,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE;YAC9C,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE;YAC3B,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ;YAC/B,GAAG,IAAI;YACP,GAAG,EAAE,OAAO,CAAC,GAAG;SACjB,CAAC,CAAC;QACL,8BAA8B;QAC9B,IACE,SAAS,CAAC,IAAI;YACd,SAAS,CAAC,IAAI,CAAC,QAAQ;YACvB,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI;YAC5B,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EACvC,CAAC;YACD,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBAC3D,IAAI,CAAC,GAAG,KAAR,IAAI,CAAC,GAAG,GAAK,EAAE,EAAC;gBAChB,KAAK,MAAM,MAAM,IAAI,IAAI,EAAE,CAAC;oBAC1B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;wBACZ,IAAI,EAAE,MAAM;wBACZ,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC;qBACpB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QACD,0BAA0B;QAC1B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACxG,CAAC;IAED;;OAEG;IACH,OAAO;QACL,KAAK,CAAC,OAAO,EAAE,CAAC;QAChB,IAAI,CAAC,MAAM,GAA4B,sBAAsB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/E,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kuberunner.spec.d.ts","sourceRoot":"","sources":["../../src/services/kuberunner.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import * as assert from "assert";
|
|
8
|
+
import { suite, test } from "@testdeck/mocha";
|
|
9
|
+
import { WebdaTest } from "@webda/core/lib/test.js";
|
|
10
|
+
import KubeRunner from "./kuberunner.js";
|
|
11
|
+
import { AsyncAction } from "@webda/async";
|
|
12
|
+
import { stub } from "sinon";
|
|
13
|
+
let KubeRunnerTest = class KubeRunnerTest extends WebdaTest {
|
|
14
|
+
cov() {
|
|
15
|
+
assert.throws(() => new KubeRunner(this.webda, "runner", {}), /Either jobImage or jobResources need/);
|
|
16
|
+
}
|
|
17
|
+
loadResource() {
|
|
18
|
+
const runner = new KubeRunner(this.webda, "runner", { jobResources: "./test/resource-fake.yml" });
|
|
19
|
+
runner.resolve();
|
|
20
|
+
assert.deepStrictEqual(runner.getParameters().jobResources, { fake: true });
|
|
21
|
+
}
|
|
22
|
+
getJobInfo(action) {
|
|
23
|
+
return {
|
|
24
|
+
JOB_HOOK: "hook",
|
|
25
|
+
JOB_ID: "uuid",
|
|
26
|
+
JOB_ORCHESTRATOR: "test",
|
|
27
|
+
JOB_SECRET_KEY: "mykey"
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
async launchAction() {
|
|
31
|
+
const runner = new KubeRunner(this.webda, "runner", { jobImage: "webda.io/runner" });
|
|
32
|
+
runner.resolve();
|
|
33
|
+
const kube = stub(runner.client, "create").returns({
|
|
34
|
+
// @ts-ignore
|
|
35
|
+
body: {
|
|
36
|
+
spec: true,
|
|
37
|
+
metadata: "fake",
|
|
38
|
+
apiVersion: "1.0",
|
|
39
|
+
kind: "Job"
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
const action = new AsyncAction();
|
|
43
|
+
try {
|
|
44
|
+
let result = await runner.launchAction(action, this.getJobInfo(action));
|
|
45
|
+
assert.deepStrictEqual(result, {
|
|
46
|
+
metadata: "fake",
|
|
47
|
+
apiVersion: "1.0",
|
|
48
|
+
kind: "Job"
|
|
49
|
+
});
|
|
50
|
+
const envs = [
|
|
51
|
+
{ name: "JOB_HOOK", value: "hook" },
|
|
52
|
+
{ name: "JOB_ID", value: "uuid" },
|
|
53
|
+
{ name: "JOB_ORCHESTRATOR", value: "test" },
|
|
54
|
+
{ name: "JOB_SECRET_KEY", value: "mykey" }
|
|
55
|
+
];
|
|
56
|
+
// @ts-ignore
|
|
57
|
+
assert.deepStrictEqual(kube.getCall(0).args[0].spec.template.spec.containers[0].env, envs);
|
|
58
|
+
kube.resetHistory();
|
|
59
|
+
runner.getParameters().jobResources = {
|
|
60
|
+
spec: {
|
|
61
|
+
template: {
|
|
62
|
+
spec: {
|
|
63
|
+
containers: [
|
|
64
|
+
{},
|
|
65
|
+
{
|
|
66
|
+
env: [
|
|
67
|
+
{
|
|
68
|
+
name: "TEST",
|
|
69
|
+
value: "test"
|
|
70
|
+
}
|
|
71
|
+
]
|
|
72
|
+
}
|
|
73
|
+
]
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
result = await runner.launchAction(action, this.getJobInfo(action));
|
|
79
|
+
// @ts-ignore
|
|
80
|
+
assert.deepStrictEqual(kube.getCall(0).args[0].spec.template.spec.containers[0].env, envs);
|
|
81
|
+
// @ts-ignore
|
|
82
|
+
assert.deepStrictEqual(kube.getCall(0).args[0].spec.template.spec.containers[1].env, [
|
|
83
|
+
{
|
|
84
|
+
name: "TEST",
|
|
85
|
+
value: "test"
|
|
86
|
+
},
|
|
87
|
+
...envs
|
|
88
|
+
]);
|
|
89
|
+
// COV parts
|
|
90
|
+
runner.getParameters().jobResources = {};
|
|
91
|
+
await runner.launchAction(action, this.getJobInfo(action));
|
|
92
|
+
runner.getParameters().jobResources = { spec: {} };
|
|
93
|
+
await runner.launchAction(action, this.getJobInfo(action));
|
|
94
|
+
runner.getParameters().jobResources = { spec: { template: {} } };
|
|
95
|
+
await runner.launchAction(action, this.getJobInfo(action));
|
|
96
|
+
runner.getParameters().jobResources = { spec: { template: { spec: {} } } };
|
|
97
|
+
await runner.launchAction(action, this.getJobInfo(action));
|
|
98
|
+
}
|
|
99
|
+
finally {
|
|
100
|
+
kube.restore();
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
__decorate([
|
|
105
|
+
test
|
|
106
|
+
], KubeRunnerTest.prototype, "cov", null);
|
|
107
|
+
__decorate([
|
|
108
|
+
test
|
|
109
|
+
], KubeRunnerTest.prototype, "loadResource", null);
|
|
110
|
+
__decorate([
|
|
111
|
+
test
|
|
112
|
+
], KubeRunnerTest.prototype, "launchAction", null);
|
|
113
|
+
KubeRunnerTest = __decorate([
|
|
114
|
+
suite
|
|
115
|
+
], KubeRunnerTest);
|
|
116
|
+
//# sourceMappingURL=kuberunner.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kuberunner.spec.js","sourceRoot":"","sources":["../../src/services/kuberunner.spec.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAG7B,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,SAAS;IAEpC,GAAG;QACD,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,sCAAsC,CAAC,CAAC;IACxG,CAAC;IAGD,YAAY;QACV,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,YAAY,EAAE,0BAA0B,EAAE,CAAC,CAAC;QAClG,MAAM,CAAC,OAAO,EAAE,CAAC;QAEjB,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,UAAU,CAAC,MAAmB;QAC5B,OAAO;YACL,QAAQ,EAAE,MAAM;YAChB,MAAM,EAAE,MAAM;YACd,gBAAgB,EAAE,MAAM;YACxB,cAAc,EAAE,OAAO;SACxB,CAAC;IACJ,CAAC;IAGK,AAAN,KAAK,CAAC,YAAY;QAChB,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC,CAAC;QACrF,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC;YACjD,aAAa;YACb,IAAI,EAAE;gBACJ,IAAI,EAAE,IAAI;gBACV,QAAQ,EAAE,MAAM;gBAChB,UAAU,EAAE,KAAK;gBACjB,IAAI,EAAE,KAAK;aACZ;SACF,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QACjC,IAAI,CAAC;YACH,IAAI,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;YACxE,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE;gBAC7B,QAAQ,EAAE,MAAM;gBAChB,UAAU,EAAE,KAAK;gBACjB,IAAI,EAAE,KAAK;aACZ,CAAC,CAAC;YACH,MAAM,IAAI,GAAG;gBACX,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE;gBACnC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE;gBACjC,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,EAAE;gBAC3C,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,OAAO,EAAE;aAC3C,CAAC;YACF,aAAa;YACb,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC3F,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,MAAM,CAAC,aAAa,EAAE,CAAC,YAAY,GAAG;gBACpC,IAAI,EAAE;oBACJ,QAAQ,EAAE;wBACR,IAAI,EAAE;4BACJ,UAAU,EAAE;gCACV,EAAE;gCACF;oCACE,GAAG,EAAE;wCACH;4CACE,IAAI,EAAE,MAAM;4CACZ,KAAK,EAAE,MAAM;yCACd;qCACF;iCACF;6BACF;yBACF;qBACF;iBACF;aACF,CAAC;YACF,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;YACpE,aAAa;YACb,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC3F,aAAa;YACb,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;gBACnF;oBACE,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,MAAM;iBACd;gBACD,GAAG,IAAI;aACR,CAAC,CAAC;YACH,YAAY;YACZ,MAAM,CAAC,aAAa,EAAE,CAAC,YAAY,GAAG,EAAE,CAAC;YACzC,MAAM,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;YAC3D,MAAM,CAAC,aAAa,EAAE,CAAC,YAAY,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;YACnD,MAAM,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;YAC3D,MAAM,CAAC,aAAa,EAAE,CAAC,YAAY,GAAG,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,CAAC;YACjE,MAAM,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;YAC3D,MAAM,CAAC,aAAa,EAAE,CAAC,YAAY,GAAG,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAC3E,MAAM,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7D,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;CACF,CAAA;AA9FC;IADC,IAAI;yCAGJ;AAGD;IADC,IAAI;kDAMJ;AAYK;IADL,IAAI;kDAwEJ;AA/FG,cAAc;IADnB,KAAK;GACA,cAAc,CAgGnB"}
|
package/lib/shell.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../src/shell.ts"],"names":[],"mappings":"AAKA,qBAAa,eAAe;WACb,YAAY,CAAC,OAAO,KAAA,EAAE,IAAI,KAAA;CA+BxC;AAED;;;;;GAKG;AACH,iBAAS,KAAK,CAAC,CAAC,KAAA,OAOf;AAED,QAAA,MAAM,YAAY,qCAA+B,CAAC;AAElD,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC"}
|
package/lib/utils/client.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/utils/client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,GAAG,MAAM,yBAAyB,CAAC;AAE/C;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC;IACnC;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,oBAAoB,GAAI,GAAG,CAAC,UAAU,CAgB3E;AAED,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;IACxB,QAAQ,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,oBAAoB,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,mBAAmB,CAOrH"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.spec.d.ts","sourceRoot":"","sources":["../../src/utils/client.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import * as assert from "assert";
|
|
8
|
+
import { suite, test } from "@testdeck/mocha";
|
|
9
|
+
import { getKubernetesApiClient } from "./client.js";
|
|
10
|
+
import * as k8s from "@kubernetes/client-node";
|
|
11
|
+
/**
|
|
12
|
+
* This is mainly for COV
|
|
13
|
+
* We should inject true configuration to check more
|
|
14
|
+
*/
|
|
15
|
+
let GetKubernetesApiClient = class GetKubernetesApiClient {
|
|
16
|
+
withConfig() {
|
|
17
|
+
assert.throws(() => getKubernetesApiClient({
|
|
18
|
+
config: "./test/kubeconfig"
|
|
19
|
+
}), /Unknown format/);
|
|
20
|
+
assert.throws(() => getKubernetesApiClient({
|
|
21
|
+
config: {}
|
|
22
|
+
}), /No active cluster/);
|
|
23
|
+
}
|
|
24
|
+
withContext() {
|
|
25
|
+
assert.throws(() => getKubernetesApiClient({ context: "plop" }, k8s.AppsV1Api), /No active cluster/);
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
__decorate([
|
|
29
|
+
test
|
|
30
|
+
], GetKubernetesApiClient.prototype, "withConfig", null);
|
|
31
|
+
__decorate([
|
|
32
|
+
test
|
|
33
|
+
], GetKubernetesApiClient.prototype, "withContext", null);
|
|
34
|
+
GetKubernetesApiClient = __decorate([
|
|
35
|
+
suite
|
|
36
|
+
], GetKubernetesApiClient);
|
|
37
|
+
//# sourceMappingURL=client.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.spec.js","sourceRoot":"","sources":["../../src/utils/client.spec.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,KAAK,GAAG,MAAM,yBAAyB,CAAC;AAE/C;;;GAGG;AAEH,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IAE1B,UAAU;QACR,MAAM,CAAC,MAAM,CACX,GAAG,EAAE,CACH,sBAAsB,CAAC;YACrB,MAAM,EAAE,mBAAmB;SAC5B,CAAC,EACJ,gBAAgB,CACjB,CAAC;QACF,MAAM,CAAC,MAAM,CACX,GAAG,EAAE,CACH,sBAAsB,CAAM;YAC1B,MAAM,EAAE,EAAE;SACX,CAAC,EACJ,mBAAmB,CACpB,CAAC;IACJ,CAAC;IAGD,WAAW;QACT,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,sBAAsB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,mBAAmB,CAAC,CAAC;IACvG,CAAC;CACF,CAAA;AArBC;IADC,IAAI;wDAgBJ;AAGD;IADC,IAAI;yDAGJ;AAtBG,sBAAsB;IAD3B,KAAK;GACA,sBAAsB,CAuB3B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webda/kubernetes",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0-beta.2",
|
|
4
4
|
"description": "Kubernetes Helpers",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -8,8 +8,13 @@
|
|
|
8
8
|
"build:module": "webda build",
|
|
9
9
|
"build:watch": "webda build --watch",
|
|
10
10
|
"pretest": "npm run build",
|
|
11
|
-
"test": "c8 mocha
|
|
12
|
-
"
|
|
11
|
+
"test": "c8 mocha",
|
|
12
|
+
"test:debug": "mocha --no-timeouts",
|
|
13
|
+
"run": "node core",
|
|
14
|
+
"format": "prettier --check src/**/*",
|
|
15
|
+
"lint": "eslint",
|
|
16
|
+
"lint:fix": "eslint --fix",
|
|
17
|
+
"format:fix": "prettier --write src/**/*"
|
|
13
18
|
},
|
|
14
19
|
"keywords": [
|
|
15
20
|
"webda-module"
|
|
@@ -21,20 +26,19 @@
|
|
|
21
26
|
"package.json"
|
|
22
27
|
],
|
|
23
28
|
"dependencies": {
|
|
24
|
-
"@kubernetes/client-node": "^0.
|
|
25
|
-
"@webda/async": "^
|
|
26
|
-
"@webda/core": "^
|
|
29
|
+
"@kubernetes/client-node": "^0.22.0",
|
|
30
|
+
"@webda/async": "^4.0.0-beta.2",
|
|
31
|
+
"@webda/core": "^4.0.0-beta.2"
|
|
27
32
|
},
|
|
28
33
|
"devDependencies": {
|
|
29
34
|
"@testdeck/mocha": "^0.3.3",
|
|
30
|
-
"@types/node": "
|
|
31
|
-
"@webda/tsc-esm": "^
|
|
35
|
+
"@types/node": "20.0.0",
|
|
36
|
+
"@webda/tsc-esm": "^4.0.0-beta.2",
|
|
32
37
|
"c8": "^10.1.2",
|
|
33
38
|
"mocha": "^10.0.0",
|
|
34
|
-
"sinon": "^
|
|
39
|
+
"sinon": "^19.0.2",
|
|
35
40
|
"source-map-support": "^0.5.19",
|
|
36
|
-
"
|
|
37
|
-
"typescript": "~5.5.3"
|
|
41
|
+
"tsx": "^4.17.0"
|
|
38
42
|
},
|
|
39
43
|
"c8": {
|
|
40
44
|
"report-dir": "./reports",
|
|
@@ -64,7 +68,7 @@
|
|
|
64
68
|
},
|
|
65
69
|
"type": "module",
|
|
66
70
|
"engines": {
|
|
67
|
-
"node": ">=
|
|
71
|
+
"node": ">=20.0.0"
|
|
68
72
|
},
|
|
69
73
|
"nx": {
|
|
70
74
|
"implicitDependencies": [
|
|
@@ -73,5 +77,6 @@
|
|
|
73
77
|
"@webda/async"
|
|
74
78
|
]
|
|
75
79
|
},
|
|
76
|
-
"
|
|
80
|
+
"license": "LGPL-3.0-only",
|
|
81
|
+
"gitHead": "e992dcfb82cefa6cd5c61c54a0e63778b6f53d8e"
|
|
77
82
|
}
|