@owlmeans/kluster 0.1.0 → 0.1.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/LICENSE +1 -1
- package/build/consts.d.ts +1 -0
- package/build/consts.d.ts.map +1 -1
- package/build/consts.js +2 -1
- package/build/consts.js.map +1 -1
- package/build/helper.d.ts.map +1 -1
- package/build/service.d.ts.map +1 -1
- package/build/service.js +9 -10
- package/build/service.js.map +1 -1
- package/build/types.d.ts +4 -3
- package/build/types.d.ts.map +1 -1
- package/package.json +10 -10
- package/src/consts.ts +3 -1
- package/src/service.ts +12 -10
- package/src/types.ts +6 -3
- package/tsconfig.tsbuildinfo +0 -1
package/LICENSE
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
MIT License
|
|
2
2
|
|
|
3
|
-
Copyright (c)
|
|
3
|
+
Copyright (c) 2026 OwlMeans Common — Fullstack typescript framework
|
|
4
4
|
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
package/build/consts.d.ts
CHANGED
package/build/consts.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,qBAAqB,YAAY,CAAA;AAE9C,eAAO,MAAM,aAAa,YAAwB,CAAA;AAElD,eAAO,MAAM,SAAS,YAAY,CAAA;AAElC,eAAO,MAAM,GAAG,MAAM,CAAA;AAEtB,eAAO,MAAM,iBAAiB,YAAY,CAAA;AAE1C,eAAO,MAAM,QAAQ,aAAa,CAAA;AAElC,eAAO,MAAM,WAAW,YAAY,CAAA"}
|
package/build/consts.js
CHANGED
package/build/consts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consts.js","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"consts.js","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,qBAAqB,GAAG,SAAS,CAAA;AAE9C,MAAM,CAAC,MAAM,aAAa,GAAG,qBAAqB,CAAA;AAElD,MAAM,CAAC,MAAM,SAAS,GAAG,SAAS,CAAA;AAElC,MAAM,CAAC,MAAM,GAAG,GAAG,GAAG,CAAA;AAEtB,MAAM,CAAC,MAAM,iBAAiB,GAAG,SAAS,CAAA;AAE1C,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAA;AAElC,MAAM,CAAC,MAAM,WAAW,GAAG,SAAS,CAAA"}
|
package/build/helper.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helper.d.ts","sourceRoot":"","sources":["../src/helper.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAIjE,OAAO,KAAK,EAAE,aAAa,EAAkB,MAAM,YAAY,CAAA;AAE/D,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,aAAa,EAAE,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"helper.d.ts","sourceRoot":"","sources":["../src/helper.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAIjE,OAAO,KAAK,EAAE,aAAa,EAAkB,MAAM,YAAY,CAAA;AAE/D,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,aAAa,EAAE,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,QAAO,MAAsB,KAAG,CAQ1H,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,UAiBjD,CAAA"}
|
package/build/service.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,cAAc,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,cAAc,EAAE,MAAM,YAAY,CAAA;AAW/D,eAAO,MAAM,kBAAkB,GAAI,QAAO,MAAsB,KAAG,cAyElE,CAAA"}
|
package/build/service.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { ACT_HOST, ACT_SERVICE, DEFAULT_ALIAS, DEFAULT_NAMESPACE } from './consts.js';
|
|
2
2
|
import { assertContext, createLazyService } from '@owlmeans/context';
|
|
3
|
-
import { KubeConfig, CoreV1Api, HttpError, NetworkingV1Api } from '@kubernetes/client-node';
|
|
3
|
+
import { KubeConfig, CoreV1Api, HttpError, NetworkingV1Api, AppsV1Api } from '@kubernetes/client-node';
|
|
4
4
|
import { readConfigValue } from '@owlmeans/server-config';
|
|
5
5
|
export const makeKlusterService = (alias = DEFAULT_ALIAS) => {
|
|
6
6
|
const location = `kluster:${alias}`;
|
|
7
7
|
const updateSelector = (selector) => selector.startsWith('/') || selector.startsWith('file:')
|
|
8
8
|
? readConfigValue(selector, selector) : selector;
|
|
9
9
|
const service = createLazyService(alias, {
|
|
10
|
-
getHostnames: async (selector) => {
|
|
10
|
+
getHostnames: async (selector, namespace) => {
|
|
11
11
|
try {
|
|
12
12
|
const ctx = assertContext(service.ctx, location);
|
|
13
|
-
|
|
13
|
+
namespace ??= ctx.cfg.kluster?.namespace ?? DEFAULT_NAMESPACE;
|
|
14
14
|
const { body } = await service.api.listNamespacedPod(namespace, undefined, undefined, undefined, undefined, selector);
|
|
15
15
|
return body.items.map(item => item.status?.podIP).filter(name => name != null);
|
|
16
16
|
}
|
|
@@ -24,15 +24,13 @@ export const makeKlusterService = (alias = DEFAULT_ALIAS) => {
|
|
|
24
24
|
return [];
|
|
25
25
|
}
|
|
26
26
|
},
|
|
27
|
-
getServiceHostname: async (selector) => {
|
|
27
|
+
getServiceHostname: async (selector, namespace) => {
|
|
28
28
|
try {
|
|
29
29
|
const ctx = assertContext(service.ctx, location);
|
|
30
|
-
|
|
30
|
+
namespace ??= ctx.cfg.kluster?.namespace ?? DEFAULT_NAMESPACE;
|
|
31
31
|
const { body } = await service.api.listNamespacedService(namespace, undefined, undefined, undefined, undefined, selector);
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
}
|
|
35
|
-
return body.items[0].metadata?.name ?? selector;
|
|
32
|
+
// console.log(util.inspect(body, { depth: null, colors: true }))
|
|
33
|
+
return body.items?.[0]?.spec?.clusterIP ?? null;
|
|
36
34
|
}
|
|
37
35
|
catch (e) {
|
|
38
36
|
if (e instanceof HttpError) {
|
|
@@ -54,7 +52,8 @@ export const makeKlusterService = (alias = DEFAULT_ALIAS) => {
|
|
|
54
52
|
}
|
|
55
53
|
throw new SyntaxError(`Unknown kluster directive: ${action}`);
|
|
56
54
|
},
|
|
57
|
-
makeNetworkingApi: () => service.config.makeApiClient(NetworkingV1Api)
|
|
55
|
+
makeNetworkingApi: () => service.config.makeApiClient(NetworkingV1Api),
|
|
56
|
+
makeAppsApi: () => service.config.makeApiClient(AppsV1Api),
|
|
58
57
|
}, service => async () => {
|
|
59
58
|
if (service.config == null || service.api == null) {
|
|
60
59
|
service.config = new KubeConfig();
|
package/build/service.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAErF,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACpE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
|
package/build/types.d.ts
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import type { LazyService } from '@owlmeans/context';
|
|
2
|
-
import type { KubeConfig, CoreV1Api, NetworkingV1Api } from '@kubernetes/client-node';
|
|
2
|
+
import type { KubeConfig, CoreV1Api, NetworkingV1Api, AppsV1Api } from '@kubernetes/client-node';
|
|
3
3
|
import type { ServerConfig } from '@owlmeans/server-context';
|
|
4
4
|
export interface KlusterService extends LazyService {
|
|
5
5
|
config?: KubeConfig;
|
|
6
6
|
api?: CoreV1Api;
|
|
7
|
-
getHostnames: (selector: string) => Promise<string[]>;
|
|
8
|
-
getServiceHostname: (selector: string) => Promise<string>;
|
|
7
|
+
getHostnames: (selector: string, namespace?: string) => Promise<string[]>;
|
|
8
|
+
getServiceHostname: (selector: string, namespace?: string) => Promise<string | null>;
|
|
9
9
|
dispatch: <T>(action: string, query: string) => Promise<T>;
|
|
10
10
|
makeNetworkingApi: () => NetworkingV1Api;
|
|
11
|
+
makeAppsApi: () => AppsV1Api;
|
|
11
12
|
}
|
|
12
13
|
export interface KlusterConfig extends ServerConfig {
|
|
13
14
|
kluster?: {
|
package/build/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAChG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAE5D,MAAM,WAAW,cAAe,SAAQ,WAAW;IACjD,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,GAAG,CAAC,EAAE,SAAS,CAAA;IAEf,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IAGzE,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAEpF,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAA;IAE1D,iBAAiB,EAAE,MAAM,eAAe,CAAA;IAExC,WAAW,EAAE,MAAM,SAAS,CAAA;CAC7B;AAED,MAAM,WAAW,aAAc,SAAQ,YAAY;IACjD,OAAO,CAAC,EAAE;QACR,SAAS,CAAC,EAAE,MAAM,CAAA;KACnB,CAAA;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@owlmeans/kluster",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
|
+
"license": "MIT",
|
|
4
5
|
"type": "module",
|
|
5
6
|
"scripts": {
|
|
6
7
|
"build": "tsc -b",
|
|
@@ -21,18 +22,17 @@
|
|
|
21
22
|
},
|
|
22
23
|
"dependencies": {
|
|
23
24
|
"@kubernetes/client-node": "^0.22.0",
|
|
24
|
-
"@owlmeans/config": "^0.1.
|
|
25
|
-
"@owlmeans/context": "^0.1.
|
|
26
|
-
"@owlmeans/server-config": "^0.1.
|
|
27
|
-
"@owlmeans/server-context": "^0.1.
|
|
25
|
+
"@owlmeans/config": "^0.1.2",
|
|
26
|
+
"@owlmeans/context": "^0.1.2",
|
|
27
|
+
"@owlmeans/server-config": "^0.1.2",
|
|
28
|
+
"@owlmeans/server-context": "^0.1.2"
|
|
28
29
|
},
|
|
29
30
|
"devDependencies": {
|
|
30
|
-
"@types/node": "^
|
|
31
|
-
"nodemon": "^3.1.
|
|
32
|
-
"typescript": "^5.
|
|
31
|
+
"@types/node": "^24.10.1",
|
|
32
|
+
"nodemon": "^3.1.11",
|
|
33
|
+
"typescript": "^5.8.3"
|
|
33
34
|
},
|
|
34
|
-
"private": false,
|
|
35
35
|
"publishConfig": {
|
|
36
36
|
"access": "public"
|
|
37
37
|
}
|
|
38
|
-
}
|
|
38
|
+
}
|
package/src/consts.ts
CHANGED
package/src/service.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { ACT_HOST, ACT_SERVICE, DEFAULT_ALIAS, DEFAULT_NAMESPACE } from './consts.js'
|
|
2
2
|
import type { KlusterConfig, KlusterService } from './types.js'
|
|
3
3
|
import { assertContext, createLazyService } from '@owlmeans/context'
|
|
4
|
-
import { KubeConfig, CoreV1Api, HttpError, NetworkingV1Api } from '@kubernetes/client-node'
|
|
4
|
+
import { KubeConfig, CoreV1Api, HttpError, NetworkingV1Api, AppsV1Api } from '@kubernetes/client-node'
|
|
5
5
|
import { ServerContext } from '@owlmeans/server-context'
|
|
6
6
|
import { readConfigValue } from '@owlmeans/server-config'
|
|
7
7
|
|
|
8
|
+
// import util from 'node:util'
|
|
9
|
+
|
|
8
10
|
type Config = KlusterConfig
|
|
9
11
|
type Context = ServerContext<Config>
|
|
10
12
|
|
|
@@ -16,10 +18,10 @@ export const makeKlusterService = (alias: string = DEFAULT_ALIAS): KlusterServic
|
|
|
16
18
|
? readConfigValue(selector, selector) : selector
|
|
17
19
|
|
|
18
20
|
const service: KlusterService = createLazyService<KlusterService>(alias, {
|
|
19
|
-
getHostnames: async selector => {
|
|
21
|
+
getHostnames: async (selector, namespace) => {
|
|
20
22
|
try {
|
|
21
23
|
const ctx = assertContext<Config, Context>(service.ctx as Context, location)
|
|
22
|
-
|
|
24
|
+
namespace ??= ctx.cfg.kluster?.namespace ?? DEFAULT_NAMESPACE
|
|
23
25
|
|
|
24
26
|
const { body } = await service.api!.listNamespacedPod(
|
|
25
27
|
namespace, undefined, undefined, undefined, undefined, selector
|
|
@@ -36,18 +38,16 @@ export const makeKlusterService = (alias: string = DEFAULT_ALIAS): KlusterServic
|
|
|
36
38
|
}
|
|
37
39
|
},
|
|
38
40
|
|
|
39
|
-
getServiceHostname: async selector => {
|
|
41
|
+
getServiceHostname: async (selector, namespace) => {
|
|
40
42
|
try {
|
|
41
43
|
const ctx = assertContext<Config, Context>(service.ctx as Context, location)
|
|
42
|
-
|
|
44
|
+
namespace ??= ctx.cfg.kluster?.namespace ?? DEFAULT_NAMESPACE
|
|
43
45
|
|
|
44
46
|
const { body } = await service.api!.listNamespacedService(namespace, undefined, undefined, undefined, undefined, selector)
|
|
45
47
|
|
|
46
|
-
|
|
47
|
-
return selector
|
|
48
|
-
}
|
|
48
|
+
// console.log(util.inspect(body, { depth: null, colors: true }))
|
|
49
49
|
|
|
50
|
-
return body.items[0]
|
|
50
|
+
return body.items?.[0]?.spec?.clusterIP ?? null
|
|
51
51
|
} catch (e) {
|
|
52
52
|
if (e instanceof HttpError) {
|
|
53
53
|
console.error(e.name, e.cause, e.message, e.body)
|
|
@@ -69,7 +69,9 @@ export const makeKlusterService = (alias: string = DEFAULT_ALIAS): KlusterServic
|
|
|
69
69
|
throw new SyntaxError(`Unknown kluster directive: ${action}`)
|
|
70
70
|
},
|
|
71
71
|
|
|
72
|
-
makeNetworkingApi: () => service.config!.makeApiClient(NetworkingV1Api)
|
|
72
|
+
makeNetworkingApi: () => service.config!.makeApiClient(NetworkingV1Api),
|
|
73
|
+
|
|
74
|
+
makeAppsApi: () => service.config!.makeApiClient(AppsV1Api),
|
|
73
75
|
}, service => async () => {
|
|
74
76
|
if (service.config == null || service.api == null) {
|
|
75
77
|
service.config = new KubeConfig()
|
package/src/types.ts
CHANGED
|
@@ -1,18 +1,21 @@
|
|
|
1
1
|
import type { LazyService } from '@owlmeans/context'
|
|
2
|
-
import type { KubeConfig, CoreV1Api, NetworkingV1Api } from '@kubernetes/client-node'
|
|
2
|
+
import type { KubeConfig, CoreV1Api, NetworkingV1Api, AppsV1Api } from '@kubernetes/client-node'
|
|
3
3
|
import type { ServerConfig } from '@owlmeans/server-context'
|
|
4
4
|
|
|
5
5
|
export interface KlusterService extends LazyService {
|
|
6
6
|
config?: KubeConfig
|
|
7
7
|
api?: CoreV1Api
|
|
8
8
|
|
|
9
|
-
getHostnames: (selector: string) => Promise<string[]>
|
|
9
|
+
getHostnames: (selector: string, namespace?: string) => Promise<string[]>
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
// It should also return the array of cluster ips
|
|
12
|
+
getServiceHostname: (selector: string, namespace?: string) => Promise<string | null>
|
|
12
13
|
|
|
13
14
|
dispatch: <T>(action: string, query: string) => Promise<T>
|
|
14
15
|
|
|
15
16
|
makeNetworkingApi: () => NetworkingV1Api
|
|
17
|
+
|
|
18
|
+
makeAppsApi: () => AppsV1Api
|
|
16
19
|
}
|
|
17
20
|
|
|
18
21
|
export interface KlusterConfig extends ServerConfig {
|
package/tsconfig.tsbuildinfo
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"root":["./src/consts.ts","./src/helper.ts","./src/index.ts","./src/service.ts","./src/types.ts"],"version":"5.6.3"}
|