@effect/cluster 0.53.3 → 0.53.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/K8sHttpClient/package.json +6 -0
- package/dist/cjs/EntityResource.js +17 -2
- package/dist/cjs/EntityResource.js.map +1 -1
- package/dist/cjs/K8sHttpClient.js +164 -0
- package/dist/cjs/K8sHttpClient.js.map +1 -0
- package/dist/cjs/RunnerHealth.js +3 -63
- package/dist/cjs/RunnerHealth.js.map +1 -1
- package/dist/cjs/index.js +3 -1
- package/dist/dts/EntityResource.d.ts +9 -0
- package/dist/dts/EntityResource.d.ts.map +1 -1
- package/dist/dts/K8sHttpClient.d.ts +91 -0
- package/dist/dts/K8sHttpClient.d.ts.map +1 -0
- package/dist/dts/RunnerHealth.d.ts +3 -4
- package/dist/dts/RunnerHealth.d.ts.map +1 -1
- package/dist/dts/index.d.ts +4 -0
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/esm/EntityResource.js +16 -1
- package/dist/esm/EntityResource.js.map +1 -1
- package/dist/esm/K8sHttpClient.js +153 -0
- package/dist/esm/K8sHttpClient.js.map +1 -0
- package/dist/esm/RunnerHealth.js +3 -63
- package/dist/esm/RunnerHealth.js.map +1 -1
- package/dist/esm/index.js +4 -0
- package/dist/esm/index.js.map +1 -1
- package/package.json +16 -5
- package/src/EntityResource.ts +32 -2
- package/src/K8sHttpClient.ts +240 -0
- package/src/RunnerHealth.ts +4 -79
- package/src/index.ts +5 -0
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.make = exports.TypeId = exports.CloseScope = void 0;
|
|
6
|
+
exports.makeK8sPod = exports.make = exports.TypeId = exports.CloseScope = void 0;
|
|
7
7
|
var Context = _interopRequireWildcard(require("effect/Context"));
|
|
8
8
|
var Duration = _interopRequireWildcard(require("effect/Duration"));
|
|
9
9
|
var Effect = _interopRequireWildcard(require("effect/Effect"));
|
|
@@ -11,6 +11,7 @@ var _Function = require("effect/Function");
|
|
|
11
11
|
var RcRef = _interopRequireWildcard(require("effect/RcRef"));
|
|
12
12
|
var Scope = _interopRequireWildcard(require("effect/Scope"));
|
|
13
13
|
var Entity = _interopRequireWildcard(require("./Entity.js"));
|
|
14
|
+
var K8sHttpClient = _interopRequireWildcard(require("./K8sHttpClient.js"));
|
|
14
15
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
15
16
|
/**
|
|
16
17
|
* @since 1.0.0
|
|
@@ -46,6 +47,7 @@ class CloseScope extends /*#__PURE__*/Context.Tag("@effect/cluster/EntityResourc
|
|
|
46
47
|
exports.CloseScope = CloseScope;
|
|
47
48
|
const make = exports.make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
48
49
|
let shuttingDown = false;
|
|
50
|
+
yield* Entity.keepAlive(true);
|
|
49
51
|
const ref = yield* RcRef.make({
|
|
50
52
|
acquire: Effect.gen(function* () {
|
|
51
53
|
const closeable = yield* Scope.make();
|
|
@@ -54,7 +56,6 @@ const make = exports.make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
|
54
56
|
yield* Scope.close(closeable, exit);
|
|
55
57
|
yield* Entity.keepAlive(false);
|
|
56
58
|
}));
|
|
57
|
-
yield* Entity.keepAlive(true);
|
|
58
59
|
return yield* options.acquire.pipe(Effect.provideService(CloseScope, closeable));
|
|
59
60
|
}),
|
|
60
61
|
idleTimeToLive: options.idleTimeToLive ?? Duration.infinity
|
|
@@ -71,4 +72,18 @@ const make = exports.make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
|
71
72
|
close: RcRef.invalidate(ref)
|
|
72
73
|
});
|
|
73
74
|
});
|
|
75
|
+
/**
|
|
76
|
+
* @since 1.0.0
|
|
77
|
+
* @category Kubernetes
|
|
78
|
+
*/
|
|
79
|
+
const makeK8sPod = exports.makeK8sPod = /*#__PURE__*/Effect.fnUntraced(function* (spec, options) {
|
|
80
|
+
const createPod = yield* K8sHttpClient.makeCreatePod;
|
|
81
|
+
return yield* make({
|
|
82
|
+
...options,
|
|
83
|
+
acquire: Effect.gen(function* () {
|
|
84
|
+
const scope = yield* CloseScope;
|
|
85
|
+
return yield* createPod(spec).pipe(Scope.extend(scope));
|
|
86
|
+
})
|
|
87
|
+
});
|
|
88
|
+
});
|
|
74
89
|
//# sourceMappingURL=EntityResource.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityResource.js","names":["Context","_interopRequireWildcard","require","Duration","Effect","_Function","RcRef","Scope","Entity","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","TypeId","exports","CloseScope","Tag","make","fnUntraced","options","shuttingDown","ref","acquire","gen","closeable","addFinalizer","exit","close","
|
|
1
|
+
{"version":3,"file":"EntityResource.js","names":["Context","_interopRequireWildcard","require","Duration","Effect","_Function","RcRef","Scope","Entity","K8sHttpClient","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","TypeId","exports","CloseScope","Tag","make","fnUntraced","options","shuttingDown","keepAlive","ref","acquire","gen","closeable","addFinalizer","exit","close","pipe","provideService","idleTimeToLive","infinity","void","scoped","identity","invalidate","makeK8sPod","spec","createPod","makeCreatePod","scope","extend"],"sources":["../../src/EntityResource.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.makeGetPods = exports.makeCreatePod = exports.layer = exports.PodStatus = exports.Pod = exports.K8sHttpClient = void 0;
|
|
7
|
+
var FileSystem = _interopRequireWildcard(require("@effect/platform/FileSystem"));
|
|
8
|
+
var HttpClient = _interopRequireWildcard(require("@effect/platform/HttpClient"));
|
|
9
|
+
var HttpClientRequest = _interopRequireWildcard(require("@effect/platform/HttpClientRequest"));
|
|
10
|
+
var HttpClientResponse = _interopRequireWildcard(require("@effect/platform/HttpClientResponse"));
|
|
11
|
+
var Context = _interopRequireWildcard(require("effect/Context"));
|
|
12
|
+
var Effect = _interopRequireWildcard(require("effect/Effect"));
|
|
13
|
+
var _Function = require("effect/Function");
|
|
14
|
+
var Layer = _interopRequireWildcard(require("effect/Layer"));
|
|
15
|
+
var Option = _interopRequireWildcard(require("effect/Option"));
|
|
16
|
+
var Schedule = _interopRequireWildcard(require("effect/Schedule"));
|
|
17
|
+
var Schema = _interopRequireWildcard(require("effect/Schema"));
|
|
18
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
19
|
+
/**
|
|
20
|
+
* @since 1.0.0
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* @since 1.0.0
|
|
25
|
+
* @category Tags
|
|
26
|
+
*/
|
|
27
|
+
class K8sHttpClient extends /*#__PURE__*/Context.Tag("@effect/cluster/K8sHttpClient")() {}
|
|
28
|
+
/**
|
|
29
|
+
* @since 1.0.0
|
|
30
|
+
* @category Layers
|
|
31
|
+
*/
|
|
32
|
+
exports.K8sHttpClient = K8sHttpClient;
|
|
33
|
+
const layer = exports.layer = /*#__PURE__*/Layer.effect(K8sHttpClient, /*#__PURE__*/Effect.gen(function* () {
|
|
34
|
+
const fs = yield* FileSystem.FileSystem;
|
|
35
|
+
const token = yield* fs.readFileString("/var/run/secrets/kubernetes.io/serviceaccount/token").pipe(Effect.option);
|
|
36
|
+
return (yield* HttpClient.HttpClient).pipe(HttpClient.mapRequest(HttpClientRequest.prependUrl("https://kubernetes.default.svc/api")), token._tag === "Some" ? HttpClient.mapRequest(HttpClientRequest.bearerToken(token.value.trim())) : _Function.identity, HttpClient.filterStatusOk, HttpClient.retryTransient({
|
|
37
|
+
schedule: Schedule.spaced(5000)
|
|
38
|
+
}));
|
|
39
|
+
}));
|
|
40
|
+
/**
|
|
41
|
+
* @since 1.0.0
|
|
42
|
+
* @category Constructors
|
|
43
|
+
*/
|
|
44
|
+
const makeGetPods = exports.makeGetPods = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
45
|
+
const client = yield* K8sHttpClient;
|
|
46
|
+
const getPods = HttpClientRequest.get(options?.namespace ? `/v1/namespaces/${options.namespace}/pods` : "/v1/pods").pipe(HttpClientRequest.setUrlParam("fieldSelector", "status.phase=Running"), options?.labelSelector ? HttpClientRequest.setUrlParam("labelSelector", options.labelSelector) : _Function.identity);
|
|
47
|
+
return yield* client.execute(getPods).pipe(Effect.flatMap(HttpClientResponse.schemaBodyJson(PodList)), Effect.map(list => {
|
|
48
|
+
const pods = new Map();
|
|
49
|
+
for (let i = 0; i < list.items.length; i++) {
|
|
50
|
+
const pod = list.items[i];
|
|
51
|
+
pods.set(pod.status.podIP, pod);
|
|
52
|
+
}
|
|
53
|
+
return pods;
|
|
54
|
+
}), Effect.tapErrorCause(cause => Effect.logWarning("Failed to fetch pods from Kubernetes API", cause)), Effect.cachedWithTTL("10 seconds"));
|
|
55
|
+
});
|
|
56
|
+
/**
|
|
57
|
+
* @since 1.0.0
|
|
58
|
+
* @category Constructors
|
|
59
|
+
*/
|
|
60
|
+
const makeCreatePod = exports.makeCreatePod = /*#__PURE__*/Effect.gen(function* () {
|
|
61
|
+
const client = yield* K8sHttpClient;
|
|
62
|
+
return Effect.fnUntraced(function* (spec) {
|
|
63
|
+
spec = {
|
|
64
|
+
apiVersion: "v1",
|
|
65
|
+
kind: "Pod",
|
|
66
|
+
metadata: {
|
|
67
|
+
namespace: "default",
|
|
68
|
+
...spec.metadata
|
|
69
|
+
},
|
|
70
|
+
...spec
|
|
71
|
+
};
|
|
72
|
+
const namespace = spec.metadata?.namespace ?? "default";
|
|
73
|
+
const name = spec.metadata.name;
|
|
74
|
+
const readPodRaw = HttpClientRequest.get(`/v1/namespaces/${namespace}/pods/${name}`).pipe(client.execute);
|
|
75
|
+
const readPod = readPodRaw.pipe(Effect.flatMap(HttpClientResponse.schemaBodyJson(Pod)), Effect.asSome, Effect.retry({
|
|
76
|
+
while: e => e._tag === "ParseError",
|
|
77
|
+
schedule: Schedule.spaced("1 seconds")
|
|
78
|
+
}), Effect.catchIf(err => err._tag === "ResponseError" && err.response.status === 404, () => Effect.succeedNone), Effect.orDie);
|
|
79
|
+
const isPodFound = readPodRaw.pipe(Effect.as(true), Effect.catchIf(err => err._tag === "ResponseError" && err.response.status === 404, () => Effect.succeed(false)));
|
|
80
|
+
const createPod = HttpClientRequest.post(`/v1/namespaces/${namespace}/pods`).pipe(HttpClientRequest.bodyUnsafeJson(spec), client.execute, Effect.catchIf(err => err._tag === "ResponseError" && err.response.status === 409, () => readPod), Effect.tapErrorCause(Effect.logInfo), Effect.orDie);
|
|
81
|
+
const deletePod = HttpClientRequest.del(`/v1/namespaces/${namespace}/pods/${name}`).pipe(client.execute, Effect.flatMap(res => res.json), Effect.catchIf(err => err._tag === "ResponseError" && err.response.status === 404, () => Effect.void), Effect.tapErrorCause(Effect.logInfo), Effect.orDie, Effect.asVoid);
|
|
82
|
+
yield* Effect.addFinalizer(Effect.fnUntraced(function* () {
|
|
83
|
+
yield* deletePod;
|
|
84
|
+
yield* isPodFound.pipe(Effect.repeat({
|
|
85
|
+
until: found => !found,
|
|
86
|
+
schedule: Schedule.spaced("3 seconds")
|
|
87
|
+
}), Effect.orDie);
|
|
88
|
+
}));
|
|
89
|
+
let opod = Option.none();
|
|
90
|
+
while (Option.isNone(opod) || !opod.value.isReady) {
|
|
91
|
+
if (Option.isNone(opod)) {
|
|
92
|
+
yield* createPod;
|
|
93
|
+
}
|
|
94
|
+
yield* Effect.sleep("3 seconds");
|
|
95
|
+
opod = yield* readPod;
|
|
96
|
+
}
|
|
97
|
+
return opod.value.status;
|
|
98
|
+
}, Effect.withSpan("K8sHttpClient.createPod"));
|
|
99
|
+
});
|
|
100
|
+
/**
|
|
101
|
+
* @since 1.0.0
|
|
102
|
+
* @category Schemas
|
|
103
|
+
*/
|
|
104
|
+
class PodStatus extends /*#__PURE__*/Schema.Class("@effect/cluster/K8sHttpClient/PodStatus")({
|
|
105
|
+
phase: Schema.String,
|
|
106
|
+
conditions: /*#__PURE__*/Schema.Array(/*#__PURE__*/Schema.Struct({
|
|
107
|
+
type: Schema.String,
|
|
108
|
+
status: Schema.String,
|
|
109
|
+
lastTransitionTime: Schema.String
|
|
110
|
+
})),
|
|
111
|
+
podIP: Schema.String,
|
|
112
|
+
hostIP: Schema.String
|
|
113
|
+
}) {}
|
|
114
|
+
/**
|
|
115
|
+
* @since 1.0.0
|
|
116
|
+
* @category Schemas
|
|
117
|
+
*/
|
|
118
|
+
exports.PodStatus = PodStatus;
|
|
119
|
+
class Pod extends /*#__PURE__*/Schema.Class("@effect/cluster/K8sHttpClient/Pod")({
|
|
120
|
+
status: PodStatus
|
|
121
|
+
}) {
|
|
122
|
+
get isReady() {
|
|
123
|
+
for (let i = 0; i < this.status.conditions.length; i++) {
|
|
124
|
+
const condition = this.status.conditions[i];
|
|
125
|
+
if (condition.type === "Ready") {
|
|
126
|
+
return condition.status === "True";
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return false;
|
|
130
|
+
}
|
|
131
|
+
get isReadyOrInitializing() {
|
|
132
|
+
let initializedAt;
|
|
133
|
+
let readyAt;
|
|
134
|
+
for (let i = 0; i < this.status.conditions.length; i++) {
|
|
135
|
+
const condition = this.status.conditions[i];
|
|
136
|
+
switch (condition.type) {
|
|
137
|
+
case "Initialized":
|
|
138
|
+
{
|
|
139
|
+
if (condition.status !== "True") {
|
|
140
|
+
return true;
|
|
141
|
+
}
|
|
142
|
+
initializedAt = condition.lastTransitionTime;
|
|
143
|
+
break;
|
|
144
|
+
}
|
|
145
|
+
case "Ready":
|
|
146
|
+
{
|
|
147
|
+
if (condition.status === "True") {
|
|
148
|
+
return true;
|
|
149
|
+
}
|
|
150
|
+
readyAt = condition.lastTransitionTime;
|
|
151
|
+
break;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
// if the pod is still booting up, consider it ready as it would have
|
|
156
|
+
// already registered itself with RunnerStorage by now
|
|
157
|
+
return initializedAt === readyAt;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
exports.Pod = Pod;
|
|
161
|
+
const PodList = /*#__PURE__*/Schema.Struct({
|
|
162
|
+
items: /*#__PURE__*/Schema.Array(Pod)
|
|
163
|
+
});
|
|
164
|
+
//# sourceMappingURL=K8sHttpClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"K8sHttpClient.js","names":["FileSystem","_interopRequireWildcard","require","HttpClient","HttpClientRequest","HttpClientResponse","Context","Effect","_Function","Layer","Option","Schedule","Schema","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","K8sHttpClient","Tag","exports","layer","effect","gen","fs","token","readFileString","pipe","option","mapRequest","prependUrl","_tag","bearerToken","value","trim","identity","filterStatusOk","retryTransient","schedule","spaced","makeGetPods","fnUntraced","options","client","getPods","namespace","setUrlParam","labelSelector","execute","flatMap","schemaBodyJson","PodList","map","list","pods","Map","items","length","pod","status","podIP","tapErrorCause","cause","logWarning","cachedWithTTL","makeCreatePod","spec","apiVersion","kind","metadata","name","readPodRaw","readPod","Pod","asSome","retry","while","catchIf","err","response","succeedNone","orDie","isPodFound","as","succeed","createPod","post","bodyUnsafeJson","logInfo","deletePod","del","res","json","void","asVoid","addFinalizer","repeat","until","found","opod","none","isNone","isReady","sleep","withSpan","PodStatus","Class","phase","String","conditions","Array","Struct","type","lastTransitionTime","hostIP","condition","isReadyOrInitializing","initializedAt","readyAt"],"sources":["../../src/K8sHttpClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/cjs/RunnerHealth.js
CHANGED
|
@@ -4,16 +4,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.makePing = exports.makeK8s = exports.layerPing = exports.layerNoop = exports.layerK8s = exports.RunnerHealth = void 0;
|
|
7
|
-
var FileSystem = _interopRequireWildcard(require("@effect/platform/FileSystem"));
|
|
8
|
-
var HttpClient = _interopRequireWildcard(require("@effect/platform/HttpClient"));
|
|
9
|
-
var HttpClientRequest = _interopRequireWildcard(require("@effect/platform/HttpClientRequest"));
|
|
10
|
-
var HttpClientResponse = _interopRequireWildcard(require("@effect/platform/HttpClientResponse"));
|
|
11
7
|
var Context = _interopRequireWildcard(require("effect/Context"));
|
|
12
8
|
var Effect = _interopRequireWildcard(require("effect/Effect"));
|
|
13
|
-
var _Function = require("effect/Function");
|
|
14
9
|
var Layer = _interopRequireWildcard(require("effect/Layer"));
|
|
15
10
|
var Schedule = _interopRequireWildcard(require("effect/Schedule"));
|
|
16
|
-
var
|
|
11
|
+
var K8s = _interopRequireWildcard(require("./K8sHttpClient.js"));
|
|
17
12
|
var Runners = _interopRequireWildcard(require("./Runners.js"));
|
|
18
13
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
19
14
|
/**
|
|
@@ -72,66 +67,11 @@ const layerPing = exports.layerPing = /*#__PURE__*/Layer.scoped(RunnerHealth, ma
|
|
|
72
67
|
* @category Constructors
|
|
73
68
|
*/
|
|
74
69
|
const makeK8s = exports.makeK8s = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
75
|
-
const
|
|
76
|
-
const token = yield* fs.readFileString("/var/run/secrets/kubernetes.io/serviceaccount/token").pipe(Effect.option);
|
|
77
|
-
const client = (yield* HttpClient.HttpClient).pipe(HttpClient.filterStatusOk);
|
|
78
|
-
const baseRequest = HttpClientRequest.get("https://kubernetes.default.svc/api").pipe(token._tag === "Some" ? HttpClientRequest.bearerToken(token.value.trim()) : _Function.identity);
|
|
79
|
-
const getPods = baseRequest.pipe(HttpClientRequest.appendUrl(options?.namespace ? `/v1/namespaces/${options.namespace}/pods` : "/v1/pods"), HttpClientRequest.setUrlParam("fieldSelector", "status.phase=Running"), options?.labelSelector ? HttpClientRequest.setUrlParam("labelSelector", options.labelSelector) : _Function.identity);
|
|
80
|
-
const allPods = yield* client.execute(getPods).pipe(Effect.flatMap(HttpClientResponse.schemaBodyJson(PodList)), Effect.map(list => {
|
|
81
|
-
const pods = new Map();
|
|
82
|
-
for (let i = 0; i < list.items.length; i++) {
|
|
83
|
-
const pod = list.items[i];
|
|
84
|
-
pods.set(pod.status.podIP, pod);
|
|
85
|
-
}
|
|
86
|
-
return pods;
|
|
87
|
-
}), Effect.tapErrorCause(cause => Effect.logWarning("Failed to fetch pods from Kubernetes API", cause)), Effect.cachedWithTTL("10 seconds"));
|
|
70
|
+
const allPods = yield* K8s.makeGetPods(options);
|
|
88
71
|
return RunnerHealth.of({
|
|
89
|
-
isAlive: address => allPods.pipe(Effect.map(pods => pods.get(address.host)?.
|
|
72
|
+
isAlive: address => allPods.pipe(Effect.map(pods => pods.get(address.host)?.isReadyOrInitializing ?? false), Effect.catchAllCause(() => Effect.succeed(true)))
|
|
90
73
|
});
|
|
91
74
|
});
|
|
92
|
-
class Pod extends /*#__PURE__*/Schema.Class("effect/cluster/RunnerHealth/Pod")({
|
|
93
|
-
status: /*#__PURE__*/Schema.Struct({
|
|
94
|
-
phase: Schema.String,
|
|
95
|
-
conditions: /*#__PURE__*/Schema.Array(/*#__PURE__*/Schema.Struct({
|
|
96
|
-
type: Schema.String,
|
|
97
|
-
status: Schema.String,
|
|
98
|
-
lastTransitionTime: Schema.String
|
|
99
|
-
})),
|
|
100
|
-
podIP: Schema.String
|
|
101
|
-
})
|
|
102
|
-
}) {
|
|
103
|
-
get isReady() {
|
|
104
|
-
let initializedAt;
|
|
105
|
-
let readyAt;
|
|
106
|
-
for (let i = 0; i < this.status.conditions.length; i++) {
|
|
107
|
-
const condition = this.status.conditions[i];
|
|
108
|
-
switch (condition.type) {
|
|
109
|
-
case "Initialized":
|
|
110
|
-
{
|
|
111
|
-
if (condition.status !== "True") {
|
|
112
|
-
return true;
|
|
113
|
-
}
|
|
114
|
-
initializedAt = condition.lastTransitionTime;
|
|
115
|
-
break;
|
|
116
|
-
}
|
|
117
|
-
case "Ready":
|
|
118
|
-
{
|
|
119
|
-
if (condition.status === "True") {
|
|
120
|
-
return true;
|
|
121
|
-
}
|
|
122
|
-
readyAt = condition.lastTransitionTime;
|
|
123
|
-
break;
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
// if the pod is still booting up, consider it ready as it would have
|
|
128
|
-
// already registered itself with RunnerStorage by now
|
|
129
|
-
return initializedAt === readyAt;
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
const PodList = /*#__PURE__*/Schema.Struct({
|
|
133
|
-
items: /*#__PURE__*/Schema.Array(Pod)
|
|
134
|
-
});
|
|
135
75
|
/**
|
|
136
76
|
* A layer which will check the Kubernetes API to see if a Runner is healthy.
|
|
137
77
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RunnerHealth.js","names":["
|
|
1
|
+
{"version":3,"file":"RunnerHealth.js","names":["Context","_interopRequireWildcard","require","Effect","Layer","Schedule","K8s","Runners","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","RunnerHealth","Tag","exports","layerNoop","succeed","isAlive","makePing","gen","runners","schedule","spaced","address","ping","pipe","timeout","retry","times","isSuccess","of","layerPing","scoped","makeK8s","fnUntraced","options","allPods","makeGetPods","map","pods","host","isReadyOrInitializing","catchAllCause","layerK8s","effect"],"sources":["../../src/RunnerHealth.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/cjs/index.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.SqlRunnerStorage = exports.SqlMessageStorage = exports.SocketRunner = exports.Snowflake = exports.SingletonAddress = exports.Singleton = exports.ShardingRegistrationEvent = exports.ShardingConfig = exports.Sharding = exports.ShardId = exports.Runners = exports.RunnerStorage = exports.RunnerServer = exports.RunnerHealth = exports.RunnerAddress = exports.Runner = exports.Reply = exports.MessageStorage = exports.Message = exports.MachineId = exports.HttpRunner = exports.Envelope = exports.EntityType = exports.EntityResource = exports.EntityProxyServer = exports.EntityProxy = exports.EntityId = exports.EntityAddress = exports.Entity = exports.DeliverAt = exports.ClusterWorkflowEngine = exports.ClusterSchema = exports.ClusterMetrics = exports.ClusterError = exports.ClusterCron = void 0;
|
|
6
|
+
exports.SqlRunnerStorage = exports.SqlMessageStorage = exports.SocketRunner = exports.Snowflake = exports.SingletonAddress = exports.Singleton = exports.ShardingRegistrationEvent = exports.ShardingConfig = exports.Sharding = exports.ShardId = exports.Runners = exports.RunnerStorage = exports.RunnerServer = exports.RunnerHealth = exports.RunnerAddress = exports.Runner = exports.Reply = exports.MessageStorage = exports.Message = exports.MachineId = exports.K8sHttpClient = exports.HttpRunner = exports.Envelope = exports.EntityType = exports.EntityResource = exports.EntityProxyServer = exports.EntityProxy = exports.EntityId = exports.EntityAddress = exports.Entity = exports.DeliverAt = exports.ClusterWorkflowEngine = exports.ClusterSchema = exports.ClusterMetrics = exports.ClusterError = exports.ClusterCron = void 0;
|
|
7
7
|
var _ClusterCron = _interopRequireWildcard(require("./ClusterCron.js"));
|
|
8
8
|
exports.ClusterCron = _ClusterCron;
|
|
9
9
|
var _ClusterError = _interopRequireWildcard(require("./ClusterError.js"));
|
|
@@ -34,6 +34,8 @@ var _Envelope = _interopRequireWildcard(require("./Envelope.js"));
|
|
|
34
34
|
exports.Envelope = _Envelope;
|
|
35
35
|
var _HttpRunner = _interopRequireWildcard(require("./HttpRunner.js"));
|
|
36
36
|
exports.HttpRunner = _HttpRunner;
|
|
37
|
+
var _K8sHttpClient = _interopRequireWildcard(require("./K8sHttpClient.js"));
|
|
38
|
+
exports.K8sHttpClient = _K8sHttpClient;
|
|
37
39
|
var _MachineId = _interopRequireWildcard(require("./MachineId.js"));
|
|
38
40
|
exports.MachineId = _MachineId;
|
|
39
41
|
var _Message = _interopRequireWildcard(require("./Message.js"));
|
|
@@ -5,7 +5,9 @@ import * as Context from "effect/Context";
|
|
|
5
5
|
import * as Duration from "effect/Duration";
|
|
6
6
|
import * as Effect from "effect/Effect";
|
|
7
7
|
import * as Scope from "effect/Scope";
|
|
8
|
+
import type * as v1 from "kubernetes-types/core/v1.d.ts";
|
|
8
9
|
import * as Entity from "./Entity.js";
|
|
10
|
+
import * as K8sHttpClient from "./K8sHttpClient.js";
|
|
9
11
|
import type { Sharding } from "./Sharding.js";
|
|
10
12
|
/**
|
|
11
13
|
* @since 1.0.0
|
|
@@ -54,5 +56,12 @@ export declare const make: <A, E, R>(options: {
|
|
|
54
56
|
readonly acquire: Effect.Effect<A, E, R>;
|
|
55
57
|
readonly idleTimeToLive?: Duration.DurationInput | undefined;
|
|
56
58
|
}) => Effect.Effect<EntityResource<A, E>, E, Scope.Scope | Exclude<R, CloseScope> | Sharding | Entity.CurrentAddress>;
|
|
59
|
+
/**
|
|
60
|
+
* @since 1.0.0
|
|
61
|
+
* @category Kubernetes
|
|
62
|
+
*/
|
|
63
|
+
export declare const makeK8sPod: (spec: v1.Pod, options?: {
|
|
64
|
+
readonly idleTimeToLive?: Duration.DurationInput | undefined;
|
|
65
|
+
} | undefined) => Effect.Effect<EntityResource<K8sHttpClient.PodStatus>, never, Scope.Scope | Sharding | Entity.CurrentAddress | K8sHttpClient.K8sHttpClient>;
|
|
57
66
|
export {};
|
|
58
67
|
//# sourceMappingURL=EntityResource.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityResource.d.ts","sourceRoot":"","sources":["../../src/EntityResource.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE7C;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,MAA0C,CAAA;AAE/D;;;GAGG;AACH,MAAM,MAAM,MAAM,GAAG,iCAAiC,CAAA;AAEtD;;;GAGG;AACH,MAAM,WAAW,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,KAAK;IAClD,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;IAC9C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;CACpC;;AAED;;;;;;;GAOG;AACH,qBAAa,UAAW,SAAQ,eAG7B;CAAG;AAEN;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IACxC,QAAQ,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,aAAa,GAAG,SAAS,CAAA;CAC7D,KAAK,MAAM,CAAC,MAAM,CACjB,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,EACpB,CAAC,EACD,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,QAAQ,GAAG,MAAM,CAAC,cAAc,CAyCvE,CAAA"}
|
|
1
|
+
{"version":3,"file":"EntityResource.d.ts","sourceRoot":"","sources":["../../src/EntityResource.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,KAAK,EAAE,MAAM,+BAA+B,CAAA;AACxD,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE7C;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,MAA0C,CAAA;AAE/D;;;GAGG;AACH,MAAM,MAAM,MAAM,GAAG,iCAAiC,CAAA;AAEtD;;;GAGG;AACH,MAAM,WAAW,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,KAAK;IAClD,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;IAC9C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;CACpC;;AAED;;;;;;;GAOG;AACH,qBAAa,UAAW,SAAQ,eAG7B;CAAG;AAEN;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IACxC,QAAQ,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,aAAa,GAAG,SAAS,CAAA;CAC7D,KAAK,MAAM,CAAC,MAAM,CACjB,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,EACpB,CAAC,EACD,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,QAAQ,GAAG,MAAM,CAAC,cAAc,CAyCvE,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,CACvB,IAAI,EAAE,EAAE,CAAC,GAAG,EACZ,OAAO,CAAC,EAAE;IACR,QAAQ,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,aAAa,GAAG,SAAS,CAAA;CAC7D,GAAG,SAAS,KACV,MAAM,CAAC,MAAM,CAChB,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,EACvC,KAAK,EACL,KAAK,CAAC,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC,cAAc,GAAG,aAAa,CAAC,aAAa,CAc5E,CAAA"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 1.0.0
|
|
3
|
+
*/
|
|
4
|
+
import * as FileSystem from "@effect/platform/FileSystem";
|
|
5
|
+
import * as HttpClient from "@effect/platform/HttpClient";
|
|
6
|
+
import type * as HttpClientError from "@effect/platform/HttpClientError";
|
|
7
|
+
import * as Context from "effect/Context";
|
|
8
|
+
import * as Effect from "effect/Effect";
|
|
9
|
+
import * as Layer from "effect/Layer";
|
|
10
|
+
import type * as ParseResult from "effect/ParseResult";
|
|
11
|
+
import * as Schema from "effect/Schema";
|
|
12
|
+
import type * as v1 from "kubernetes-types/core/v1.d.ts";
|
|
13
|
+
declare const K8sHttpClient_base: Context.TagClass<K8sHttpClient, "@effect/cluster/K8sHttpClient", HttpClient.HttpClient>;
|
|
14
|
+
/**
|
|
15
|
+
* @since 1.0.0
|
|
16
|
+
* @category Tags
|
|
17
|
+
*/
|
|
18
|
+
export declare class K8sHttpClient extends K8sHttpClient_base {
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* @since 1.0.0
|
|
22
|
+
* @category Layers
|
|
23
|
+
*/
|
|
24
|
+
export declare const layer: Layer.Layer<K8sHttpClient, never, HttpClient.HttpClient | FileSystem.FileSystem>;
|
|
25
|
+
/**
|
|
26
|
+
* @since 1.0.0
|
|
27
|
+
* @category Constructors
|
|
28
|
+
*/
|
|
29
|
+
export declare const makeGetPods: (options?: {
|
|
30
|
+
readonly namespace?: string | undefined;
|
|
31
|
+
readonly labelSelector?: string | undefined;
|
|
32
|
+
} | undefined) => Effect.Effect<Effect.Effect<Map<string, Pod>, HttpClientError.HttpClientError | ParseResult.ParseError, never>, never, K8sHttpClient>;
|
|
33
|
+
/**
|
|
34
|
+
* @since 1.0.0
|
|
35
|
+
* @category Constructors
|
|
36
|
+
*/
|
|
37
|
+
export declare const makeCreatePod: Effect.Effect<(spec: v1.Pod) => Effect.Effect<PodStatus, never, import("effect/Scope").Scope>, never, K8sHttpClient>;
|
|
38
|
+
declare const PodStatus_base: Schema.Class<PodStatus, {
|
|
39
|
+
phase: typeof Schema.String;
|
|
40
|
+
conditions: Schema.Array$<Schema.Struct<{
|
|
41
|
+
type: typeof Schema.String;
|
|
42
|
+
status: typeof Schema.String;
|
|
43
|
+
lastTransitionTime: typeof Schema.String;
|
|
44
|
+
}>>;
|
|
45
|
+
podIP: typeof Schema.String;
|
|
46
|
+
hostIP: typeof Schema.String;
|
|
47
|
+
}, Schema.Struct.Encoded<{
|
|
48
|
+
phase: typeof Schema.String;
|
|
49
|
+
conditions: Schema.Array$<Schema.Struct<{
|
|
50
|
+
type: typeof Schema.String;
|
|
51
|
+
status: typeof Schema.String;
|
|
52
|
+
lastTransitionTime: typeof Schema.String;
|
|
53
|
+
}>>;
|
|
54
|
+
podIP: typeof Schema.String;
|
|
55
|
+
hostIP: typeof Schema.String;
|
|
56
|
+
}>, never, {
|
|
57
|
+
readonly phase: string;
|
|
58
|
+
} & {
|
|
59
|
+
readonly podIP: string;
|
|
60
|
+
} & {
|
|
61
|
+
readonly hostIP: string;
|
|
62
|
+
} & {
|
|
63
|
+
readonly conditions: readonly {
|
|
64
|
+
readonly type: string;
|
|
65
|
+
readonly status: string;
|
|
66
|
+
readonly lastTransitionTime: string;
|
|
67
|
+
}[];
|
|
68
|
+
}, {}, {}>;
|
|
69
|
+
/**
|
|
70
|
+
* @since 1.0.0
|
|
71
|
+
* @category Schemas
|
|
72
|
+
*/
|
|
73
|
+
export declare class PodStatus extends PodStatus_base {
|
|
74
|
+
}
|
|
75
|
+
declare const Pod_base: Schema.Class<Pod, {
|
|
76
|
+
status: typeof PodStatus;
|
|
77
|
+
}, Schema.Struct.Encoded<{
|
|
78
|
+
status: typeof PodStatus;
|
|
79
|
+
}>, never, {
|
|
80
|
+
readonly status: PodStatus;
|
|
81
|
+
}, {}, {}>;
|
|
82
|
+
/**
|
|
83
|
+
* @since 1.0.0
|
|
84
|
+
* @category Schemas
|
|
85
|
+
*/
|
|
86
|
+
export declare class Pod extends Pod_base {
|
|
87
|
+
get isReady(): boolean;
|
|
88
|
+
get isReadyOrInitializing(): boolean;
|
|
89
|
+
}
|
|
90
|
+
export {};
|
|
91
|
+
//# sourceMappingURL=K8sHttpClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"K8sHttpClient.d.ts","sourceRoot":"","sources":["../../src/K8sHttpClient.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,6BAA6B,CAAA;AACzD,OAAO,KAAK,UAAU,MAAM,6BAA6B,CAAA;AACzD,OAAO,KAAK,KAAK,eAAe,MAAM,kCAAkC,CAAA;AAGxE,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,KAAK,KAAK,WAAW,MAAM,oBAAoB,CAAA;AAEtD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,EAAE,MAAM,+BAA+B,CAAA;;AAExD;;;GAGG;AACH,qBAAa,aAAc,SAAQ,kBAGhC;CAAG;AAEN;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAC7B,aAAa,EACb,KAAK,EACL,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAiB9C,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,CACxB,OAAO,CAAC,EAAE;IACR,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACvC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAC5C,GAAG,SAAS,KACV,MAAM,CAAC,MAAM,CAChB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,eAAe,CAAC,eAAe,GAAG,WAAW,CAAC,UAAU,EAAE,KAAK,CAAC,EAChG,KAAK,EACL,aAAa,CA2Bb,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,sHA6ExB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEF;;;GAGG;AACH,qBAAa,SAAU,SAAQ,cAS7B;CAAG;;;;;;;;AAEL;;;GAGG;AACH,qBAAa,GAAI,SAAQ,QAEvB;IACA,IAAI,OAAO,IAAI,OAAO,CAQrB;IAED,IAAI,qBAAqB,IAAI,OAAO,CAyBnC;CACF"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @since 1.0.0
|
|
3
3
|
*/
|
|
4
|
-
import * as FileSystem from "@effect/platform/FileSystem";
|
|
5
|
-
import * as HttpClient from "@effect/platform/HttpClient";
|
|
6
4
|
import * as Context from "effect/Context";
|
|
7
5
|
import * as Effect from "effect/Effect";
|
|
8
6
|
import * as Layer from "effect/Layer";
|
|
9
7
|
import type * as Scope from "effect/Scope";
|
|
8
|
+
import * as K8s from "./K8sHttpClient.js";
|
|
10
9
|
import type { RunnerAddress } from "./RunnerAddress.js";
|
|
11
10
|
import * as Runners from "./Runners.js";
|
|
12
11
|
declare const RunnerHealth_base: Context.TagClass<RunnerHealth, "@effect/cluster/RunnerHealth", {
|
|
@@ -54,7 +53,7 @@ export declare const makeK8s: (options?: {
|
|
|
54
53
|
readonly labelSelector?: string | undefined;
|
|
55
54
|
} | undefined) => Effect.Effect<{
|
|
56
55
|
readonly isAlive: (address: RunnerAddress) => Effect.Effect<boolean>;
|
|
57
|
-
}, never,
|
|
56
|
+
}, never, K8s.K8sHttpClient>;
|
|
58
57
|
/**
|
|
59
58
|
* A layer which will check the Kubernetes API to see if a Runner is healthy.
|
|
60
59
|
*
|
|
@@ -70,6 +69,6 @@ export declare const makeK8s: (options?: {
|
|
|
70
69
|
export declare const layerK8s: (options?: {
|
|
71
70
|
readonly namespace?: string | undefined;
|
|
72
71
|
readonly labelSelector?: string | undefined;
|
|
73
|
-
} | undefined) => Layer.Layer<RunnerHealth, never,
|
|
72
|
+
} | undefined) => Layer.Layer<RunnerHealth, never, K8s.K8sHttpClient>;
|
|
74
73
|
export {};
|
|
75
74
|
//# sourceMappingURL=RunnerHealth.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RunnerHealth.d.ts","sourceRoot":"","sources":["../../src/RunnerHealth.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"RunnerHealth.d.ts","sourceRoot":"","sources":["../../src/RunnerHealth.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,GAAG,MAAM,oBAAoB,CAAA;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;;sBAejB,CAAC,OAAO,EAAE,aAAa,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;;AAbxE;;;;;;;;;GASG;AACH,qBAAa,YAAa,SAAQ,iBAK/B;CAAG;AAEN;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,yCAEpB,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,CAClC,YAAY,CAAC,MAAM,CAAC,EACpB,KAAK,EACL,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC,KAAK,CAc7B,CAAA;AAEF;;;;;GAKG;AACH,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,KAAK,CACjC,YAAY,EACZ,KAAK,EACL,OAAO,CAAC,OAAO,CACuB,CAAA;AAExC;;;GAGG;AACH,eAAO,MAAM,OAAO;yBACG,MAAM,GAAG,SAAS;6BACd,MAAM,GAAG,SAAS;;sBAzDvB,CAAC,OAAO,EAAE,aAAa,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;4BAoEtE,CAAA;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,QAAQ,GACnB,UAAU;IACR,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACvC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAC5C,GAAG,SAAS,KACZ,KAAK,CAAC,KAAK,CACZ,YAAY,EACZ,KAAK,EACL,GAAG,CAAC,aAAa,CAC8B,CAAA"}
|
package/dist/dts/index.d.ts
CHANGED
package/dist/dts/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C;;GAEG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD;;GAEG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAErD;;GAEG;AACH,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AAEnD;;GAEG;AACH,OAAO,KAAK,qBAAqB,MAAM,4BAA4B,CAAA;AAEnE;;GAEG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;GAEG;AACH,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AAEnD;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;GAEG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C;;GAEG;AACH,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA;AAE3D;;GAEG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAErD;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C;;GAEG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;GAEG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAErD;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAEnC;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;GAEG;AACH,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AAEnD;;GAEG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD;;GAEG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD;;GAEG;AACH,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AAEnD;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;GAEG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAErD;;GAEG;AACH,OAAO,KAAK,yBAAyB,MAAM,gCAAgC,CAAA;AAE3E;;GAEG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C;;GAEG;AACH,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAA;AAEzD;;GAEG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C;;GAEG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD;;GAEG;AACH,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA;AAE3D;;GAEG;AACH,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C;;GAEG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD;;GAEG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAErD;;GAEG;AACH,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AAEnD;;GAEG;AACH,OAAO,KAAK,qBAAqB,MAAM,4BAA4B,CAAA;AAEnE;;GAEG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;GAEG;AACH,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AAEnD;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;GAEG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C;;GAEG;AACH,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA;AAE3D;;GAEG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAErD;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C;;GAEG;AACH,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AAEnD;;GAEG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;GAEG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAErD;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAEnC;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;GAEG;AACH,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AAEnD;;GAEG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD;;GAEG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD;;GAEG;AACH,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AAEnD;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;GAEG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAErD;;GAEG;AACH,OAAO,KAAK,yBAAyB,MAAM,gCAAgC,CAAA;AAE3E;;GAEG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C;;GAEG;AACH,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAA;AAEzD;;GAEG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C;;GAEG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD;;GAEG;AACH,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA;AAE3D;;GAEG;AACH,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAA"}
|