@highstate/k8s 0.20.0 → 0.21.1
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/dist/chunk-23vn2rdc.js +11 -0
- package/dist/chunk-2pfx13ay.js +11 -0
- package/dist/chunk-46ntav0c.js +299 -0
- package/dist/chunk-556pc9e6.js +155 -0
- package/dist/chunk-7kgjgcft.js +170 -0
- package/dist/{chunk-ADHZK6V2.js → chunk-9hs97f1q.js} +13 -11
- package/dist/chunk-aame3x1b.js +11 -0
- package/dist/chunk-b05q6fm2.js +37 -0
- package/dist/chunk-bmvc9d2d.js +11 -0
- package/dist/chunk-de82bbp2.js +7 -0
- package/dist/chunk-facs31cb.js +624 -0
- package/dist/chunk-h1b79v66.js +1425 -0
- package/dist/chunk-k4w9zpn5.js +215 -0
- package/dist/chunk-pqc6w52f.js +352 -0
- package/dist/chunk-qyshvz32.js +176 -0
- package/dist/chunk-tpfyj6fe.js +199 -0
- package/dist/chunk-z6bmpnm7.js +180 -0
- package/dist/highstate.manifest.json +3 -3
- package/dist/impl/dynamic-endpoint-resolver.js +82 -81
- package/dist/impl/gateway-route.js +131 -168
- package/dist/impl/tls-certificate.js +31 -32
- package/dist/index.js +245 -201
- package/dist/units/cert-manager/index.js +19 -13
- package/dist/units/cluster-patch/index.js +9 -8
- package/dist/units/dns01-issuer/index.js +44 -41
- package/dist/units/existing-cluster/index.js +25 -13
- package/dist/units/gateway-api/index.js +15 -16
- package/dist/units/reduced-access-cluster/index.js +28 -32
- package/package.json +21 -21
- package/src/cron-job.ts +26 -1
- package/src/deployment.ts +17 -1
- package/src/job.ts +15 -1
- package/src/scripting/bundle.ts +21 -98
- package/src/scripting/environment.ts +2 -9
- package/src/shared.ts +1 -1
- package/src/stateful-set.ts +17 -1
- package/src/workload.ts +31 -14
- package/LICENSE +0 -21
- package/dist/chunk-23X5SXQG.js +0 -301
- package/dist/chunk-23X5SXQG.js.map +0 -1
- package/dist/chunk-ADHZK6V2.js.map +0 -1
- package/dist/chunk-BTAEFJ5N.js +0 -291
- package/dist/chunk-BTAEFJ5N.js.map +0 -1
- package/dist/chunk-HH2JJELM.js +0 -13
- package/dist/chunk-HH2JJELM.js.map +0 -1
- package/dist/chunk-IXE3OKB4.js +0 -249
- package/dist/chunk-IXE3OKB4.js.map +0 -1
- package/dist/chunk-OG2OPX7B.js +0 -333
- package/dist/chunk-OG2OPX7B.js.map +0 -1
- package/dist/chunk-P26SQ2ZB.js +0 -393
- package/dist/chunk-P26SQ2ZB.js.map +0 -1
- package/dist/chunk-PG27ZY2H.js +0 -319
- package/dist/chunk-PG27ZY2H.js.map +0 -1
- package/dist/chunk-PZYGZSN5.js +0 -54
- package/dist/chunk-PZYGZSN5.js.map +0 -1
- package/dist/chunk-S77TE7UC.js +0 -309
- package/dist/chunk-S77TE7UC.js.map +0 -1
- package/dist/chunk-SZKOAHNX.js +0 -1804
- package/dist/chunk-SZKOAHNX.js.map +0 -1
- package/dist/chunk-TOLFVF4S.js +0 -889
- package/dist/chunk-TOLFVF4S.js.map +0 -1
- package/dist/chunk-TVKT3ZYX.js +0 -423
- package/dist/chunk-TVKT3ZYX.js.map +0 -1
- package/dist/cron-job-RKB2HYTO.js +0 -7
- package/dist/cron-job-RKB2HYTO.js.map +0 -1
- package/dist/deployment-T35TUOL2.js +0 -7
- package/dist/deployment-T35TUOL2.js.map +0 -1
- package/dist/impl/dynamic-endpoint-resolver.js.map +0 -1
- package/dist/impl/gateway-route.js.map +0 -1
- package/dist/impl/tls-certificate.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/job-PE4AKOHB.js +0 -7
- package/dist/job-PE4AKOHB.js.map +0 -1
- package/dist/stateful-set-LUIRHQJY.js +0 -7
- package/dist/stateful-set-LUIRHQJY.js.map +0 -1
- package/dist/units/cert-manager/index.js.map +0 -1
- package/dist/units/cluster-patch/index.js.map +0 -1
- package/dist/units/dns01-issuer/index.js.map +0 -1
- package/dist/units/existing-cluster/index.js.map +0 -1
- package/dist/units/gateway-api/index.js.map +0 -1
- package/dist/units/reduced-access-cluster/index.js.map +0 -1
package/dist/chunk-P26SQ2ZB.js
DELETED
|
@@ -1,393 +0,0 @@
|
|
|
1
|
-
import { Service } from './chunk-OG2OPX7B.js';
|
|
2
|
-
import { commonExtraArgs, NamespacedResource, Namespace, mapMetadata, getProvider } from './chunk-TOLFVF4S.js';
|
|
3
|
-
import { output, makeEntityOutput, toPromise, interpolate, ComponentResource, normalizeInputsAndMap, normalize, normalizeInputs } from '@highstate/pulumi';
|
|
4
|
-
import { parseEndpoint } from '@highstate/common';
|
|
5
|
-
import { getOrCreate } from '@highstate/contract';
|
|
6
|
-
import { gateway } from '@highstate/gateway-api';
|
|
7
|
-
import { k8s } from '@highstate/library';
|
|
8
|
-
import { omit, pipe, map } from 'remeda';
|
|
9
|
-
|
|
10
|
-
function resolveBackendRef(ref) {
|
|
11
|
-
if (Service.isInstance(ref)) {
|
|
12
|
-
return output({
|
|
13
|
-
name: ref.metadata.name,
|
|
14
|
-
namespace: ref.metadata.namespace,
|
|
15
|
-
port: ref.spec.ports[0].port
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
if ("service" in ref) {
|
|
19
|
-
const service = output(ref.service);
|
|
20
|
-
return output({
|
|
21
|
-
name: service.metadata.name,
|
|
22
|
-
namespace: service.metadata.namespace,
|
|
23
|
-
port: ref.port ?? service.spec.ports[0].port
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
return output({
|
|
27
|
-
name: ref.name,
|
|
28
|
-
namespace: ref.namespace,
|
|
29
|
-
port: ref.port
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
var gatewayExtraArgs = [...commonExtraArgs, "fqdn", "fqdns"];
|
|
33
|
-
var Gateway = class _Gateway extends NamespacedResource {
|
|
34
|
-
constructor(type, name, args, opts, metadata, namespace, spec, status) {
|
|
35
|
-
super(type, name, args, opts, metadata, namespace);
|
|
36
|
-
this.spec = spec;
|
|
37
|
-
this.status = status;
|
|
38
|
-
}
|
|
39
|
-
static apiVersion = "gateway.networking.k8s.io/v1";
|
|
40
|
-
static kind = "Gateway";
|
|
41
|
-
/**
|
|
42
|
-
* The Highstate gateway entity.
|
|
43
|
-
*/
|
|
44
|
-
get entity() {
|
|
45
|
-
return makeEntityOutput({
|
|
46
|
-
entity: k8s.gatewayEntity,
|
|
47
|
-
identity: this.metadata.uid,
|
|
48
|
-
meta: {
|
|
49
|
-
title: this.metadata.name
|
|
50
|
-
},
|
|
51
|
-
value: {
|
|
52
|
-
...this.entityBase
|
|
53
|
-
}
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Returns the endpoints L3 endpoints on which the gateway is exposed.
|
|
58
|
-
*/
|
|
59
|
-
get endpoints() {
|
|
60
|
-
return this.status.addresses.apply((addresses) => {
|
|
61
|
-
if (!addresses) {
|
|
62
|
-
return [];
|
|
63
|
-
}
|
|
64
|
-
return addresses.map((address) => parseEndpoint(address.value));
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Creates a new gateway.
|
|
69
|
-
*/
|
|
70
|
-
static create(name, args, opts) {
|
|
71
|
-
return new CreatedGateway(name, args, opts);
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Creates a new gateway or patches an existing one.
|
|
75
|
-
*
|
|
76
|
-
* @param name The name of the resource. May not be the same as the gateway name.
|
|
77
|
-
* @param args The arguments to create or patch the gateway with.
|
|
78
|
-
* @param opts Optional resource options.
|
|
79
|
-
*/
|
|
80
|
-
static createOrPatch(name, args, opts) {
|
|
81
|
-
if (args.existing) {
|
|
82
|
-
return new GatewayPatch(name, {
|
|
83
|
-
...args,
|
|
84
|
-
name: output(args.existing).metadata.name,
|
|
85
|
-
namespace: Namespace.forResourceAsync(args.existing, output(args.namespace).cluster)
|
|
86
|
-
});
|
|
87
|
-
}
|
|
88
|
-
return new CreatedGateway(name, args, opts);
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Creates a new gateway or gets an existing one.
|
|
92
|
-
*
|
|
93
|
-
* @param name The name of the resource. May not be the same as the gateway name. Will not be used when existing gateway is retrieved.
|
|
94
|
-
* @param args The arguments to create or get the gateway with.
|
|
95
|
-
* @param opts Optional resource options.
|
|
96
|
-
*/
|
|
97
|
-
static async createOrGet(name, args, opts) {
|
|
98
|
-
if (args.existing) {
|
|
99
|
-
return await _Gateway.forAsync(args.existing, output(args.namespace).cluster);
|
|
100
|
-
}
|
|
101
|
-
return new CreatedGateway(name, args, opts);
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Patches an existing gateway.
|
|
105
|
-
*
|
|
106
|
-
* Will throw an error if the gateway does not exist.
|
|
107
|
-
*
|
|
108
|
-
* @param name The name of the resource. May not be the same as the gateway name.
|
|
109
|
-
* @param args The arguments to patch the gateway with.
|
|
110
|
-
* @param opts Optional resource options.
|
|
111
|
-
*/
|
|
112
|
-
static patch(name, args, opts) {
|
|
113
|
-
return new GatewayPatch(name, args, opts);
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Wraps an existing Kubernetes gateway.
|
|
117
|
-
*/
|
|
118
|
-
static wrap(name, args, opts) {
|
|
119
|
-
return new WrappedGateway(name, args, opts);
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Gets an existing gateway.
|
|
123
|
-
*
|
|
124
|
-
* Will throw an error if the gateway does not exist.
|
|
125
|
-
*/
|
|
126
|
-
static get(name, args, opts) {
|
|
127
|
-
return new ExternalGateway(name, args, opts);
|
|
128
|
-
}
|
|
129
|
-
static gatewayCache = /* @__PURE__ */ new Map();
|
|
130
|
-
/**
|
|
131
|
-
* Gets an existing gateway for a given entity.
|
|
132
|
-
* Prefer this method over `get` when possible.
|
|
133
|
-
*
|
|
134
|
-
* It automatically names the resource with the following format: `{clusterName}.{namespace}.{gatewayName}.{clusterId}`.
|
|
135
|
-
*
|
|
136
|
-
* This method is idempotent and will return the same instance for the same entity.
|
|
137
|
-
*
|
|
138
|
-
* @param entity The entity to get the gateway for.
|
|
139
|
-
* @param cluster The cluster where the gateway is located.
|
|
140
|
-
*/
|
|
141
|
-
static for(entity, cluster) {
|
|
142
|
-
return getOrCreate(
|
|
143
|
-
_Gateway.gatewayCache,
|
|
144
|
-
`${entity.clusterName}.${entity.metadata.namespace}.${entity.metadata.name}.${entity.clusterId}`,
|
|
145
|
-
(name) => {
|
|
146
|
-
return _Gateway.get(name, {
|
|
147
|
-
name: entity.metadata.name,
|
|
148
|
-
namespace: Namespace.forResourceAsync(entity, cluster)
|
|
149
|
-
});
|
|
150
|
-
}
|
|
151
|
-
);
|
|
152
|
-
}
|
|
153
|
-
/**
|
|
154
|
-
* Gets an existing gateway for a given entity.
|
|
155
|
-
* Prefer this method over `get` when possible.
|
|
156
|
-
*
|
|
157
|
-
* It automatically names the resource with the following format: `{clusterName}.{namespace}.{gatewayName}.{clusterId}`.
|
|
158
|
-
*
|
|
159
|
-
* This method is idempotent and will return the same instance for the same entity.
|
|
160
|
-
*
|
|
161
|
-
* @param entity The entity to get the gateway for.
|
|
162
|
-
* @param cluster The cluster where the gateway is located.
|
|
163
|
-
*/
|
|
164
|
-
static async forAsync(entity, cluster) {
|
|
165
|
-
const resolvedEntity = await toPromise(entity);
|
|
166
|
-
return _Gateway.for(resolvedEntity, output(cluster));
|
|
167
|
-
}
|
|
168
|
-
};
|
|
169
|
-
var CreatedGateway = class extends Gateway {
|
|
170
|
-
constructor(name, args, opts) {
|
|
171
|
-
const gatewayResource = output(args.namespace).cluster.apply((cluster) => {
|
|
172
|
-
return new gateway.v1.Gateway(
|
|
173
|
-
name,
|
|
174
|
-
{
|
|
175
|
-
metadata: mapMetadata(args, name),
|
|
176
|
-
spec: omit(args, gatewayExtraArgs)
|
|
177
|
-
},
|
|
178
|
-
{ ...opts, parent: this, provider: getProvider(cluster) }
|
|
179
|
-
);
|
|
180
|
-
});
|
|
181
|
-
super(
|
|
182
|
-
"highstate:k8s:Gateway",
|
|
183
|
-
name,
|
|
184
|
-
args,
|
|
185
|
-
opts,
|
|
186
|
-
gatewayResource.metadata,
|
|
187
|
-
output(args.namespace),
|
|
188
|
-
gatewayResource.spec,
|
|
189
|
-
gatewayResource.status
|
|
190
|
-
);
|
|
191
|
-
}
|
|
192
|
-
};
|
|
193
|
-
var GatewayPatch = class extends Gateway {
|
|
194
|
-
constructor(name, args, opts) {
|
|
195
|
-
const gatewayResource = output(args.namespace).cluster.apply((cluster) => {
|
|
196
|
-
return new gateway.v1.GatewayPatch(
|
|
197
|
-
name,
|
|
198
|
-
{
|
|
199
|
-
metadata: mapMetadata(args, name),
|
|
200
|
-
spec: omit(args, gatewayExtraArgs)
|
|
201
|
-
},
|
|
202
|
-
{ ...opts, parent: this, provider: getProvider(cluster) }
|
|
203
|
-
);
|
|
204
|
-
});
|
|
205
|
-
super(
|
|
206
|
-
"highstate:k8s:GatewayPatch",
|
|
207
|
-
name,
|
|
208
|
-
args,
|
|
209
|
-
opts,
|
|
210
|
-
gatewayResource.metadata,
|
|
211
|
-
output(args.namespace),
|
|
212
|
-
gatewayResource.spec,
|
|
213
|
-
gatewayResource.status
|
|
214
|
-
);
|
|
215
|
-
}
|
|
216
|
-
};
|
|
217
|
-
var WrappedGateway = class extends Gateway {
|
|
218
|
-
constructor(name, args, opts) {
|
|
219
|
-
super(
|
|
220
|
-
"highstate:k8s:WrappedGateway",
|
|
221
|
-
name,
|
|
222
|
-
args,
|
|
223
|
-
opts,
|
|
224
|
-
output(args.gateway).metadata,
|
|
225
|
-
output(args.namespace),
|
|
226
|
-
output(args.gateway).spec,
|
|
227
|
-
output(args.gateway).status
|
|
228
|
-
);
|
|
229
|
-
}
|
|
230
|
-
};
|
|
231
|
-
var ExternalGateway = class extends Gateway {
|
|
232
|
-
constructor(name, args, opts) {
|
|
233
|
-
const gatewayResource = output(args.namespace).cluster.apply((cluster) => {
|
|
234
|
-
return gateway.v1.Gateway.get(
|
|
235
|
-
name,
|
|
236
|
-
interpolate`${output(args.namespace).metadata.name}/${args.name}`,
|
|
237
|
-
{ ...opts, parent: this, provider: getProvider(cluster) }
|
|
238
|
-
);
|
|
239
|
-
});
|
|
240
|
-
super(
|
|
241
|
-
"highstate:k8s:ExternalGateway",
|
|
242
|
-
name,
|
|
243
|
-
args,
|
|
244
|
-
opts,
|
|
245
|
-
gatewayResource.metadata,
|
|
246
|
-
output(args.namespace),
|
|
247
|
-
gatewayResource.spec,
|
|
248
|
-
gatewayResource.status
|
|
249
|
-
);
|
|
250
|
-
}
|
|
251
|
-
};
|
|
252
|
-
var HttpRoute = class extends ComponentResource {
|
|
253
|
-
/**
|
|
254
|
-
* The underlying Kubernetes resource.
|
|
255
|
-
*/
|
|
256
|
-
route;
|
|
257
|
-
constructor(name, args, opts) {
|
|
258
|
-
super("highstate:k8s:HttpRoute", name, args, opts);
|
|
259
|
-
this.route = output(args.gateway).cluster.apply((cluster) => {
|
|
260
|
-
return new gateway.v1.HTTPRoute(
|
|
261
|
-
name,
|
|
262
|
-
{
|
|
263
|
-
metadata: mapMetadata(args, name).apply((metadata) => ({
|
|
264
|
-
...metadata,
|
|
265
|
-
namespace: output(args.gateway).namespace.metadata.name
|
|
266
|
-
})),
|
|
267
|
-
spec: {
|
|
268
|
-
hostnames: normalizeInputs(args.hostname, args.hostnames),
|
|
269
|
-
parentRefs: [
|
|
270
|
-
{
|
|
271
|
-
name: output(args.gateway).metadata.name
|
|
272
|
-
}
|
|
273
|
-
],
|
|
274
|
-
rules: normalizeInputsAndMap(args.rule, args.rules, (rule) => ({
|
|
275
|
-
timeouts: rule.timeouts,
|
|
276
|
-
matches: pipe(
|
|
277
|
-
normalize(rule.match, rule.matches),
|
|
278
|
-
map(mapHttpRouteRuleMatch),
|
|
279
|
-
addDefaultPathMatch
|
|
280
|
-
),
|
|
281
|
-
filters: normalize(rule.filter, rule.filters),
|
|
282
|
-
backendRefs: normalizeInputsAndMap(rule.backend, rule.backends, resolveBackendRef)
|
|
283
|
-
}))
|
|
284
|
-
}
|
|
285
|
-
},
|
|
286
|
-
{ ...opts, parent: this, provider: getProvider(cluster) }
|
|
287
|
-
);
|
|
288
|
-
});
|
|
289
|
-
}
|
|
290
|
-
};
|
|
291
|
-
function addDefaultPathMatch(matches) {
|
|
292
|
-
return matches.length ? matches : [{ path: { type: "PathPrefix", value: "/" } }];
|
|
293
|
-
}
|
|
294
|
-
function mapHttpRouteRuleMatch(match) {
|
|
295
|
-
if (typeof match === "string") {
|
|
296
|
-
return { path: { type: "PathPrefix", value: match } };
|
|
297
|
-
}
|
|
298
|
-
return match;
|
|
299
|
-
}
|
|
300
|
-
var TcpRoute = class extends ComponentResource {
|
|
301
|
-
/**
|
|
302
|
-
* The underlying Kubernetes resource.
|
|
303
|
-
*/
|
|
304
|
-
route;
|
|
305
|
-
constructor(name, args, opts) {
|
|
306
|
-
super("highstate:k8s:TcpRoute", name, args, opts);
|
|
307
|
-
const gatewayOutput = output(args.gateway);
|
|
308
|
-
const parentRefs = output({
|
|
309
|
-
gateway: gatewayOutput,
|
|
310
|
-
listenerName: args.listenerName
|
|
311
|
-
}).apply(
|
|
312
|
-
({ gateway: gateway5, listenerName }) => [
|
|
313
|
-
{
|
|
314
|
-
group: "gateway.networking.k8s.io",
|
|
315
|
-
kind: "Gateway",
|
|
316
|
-
name: gateway5.metadata.name,
|
|
317
|
-
namespace: gateway5.namespace.metadata.name,
|
|
318
|
-
sectionName: listenerName
|
|
319
|
-
}
|
|
320
|
-
]
|
|
321
|
-
);
|
|
322
|
-
const backendRefs = normalizeInputsAndMap(args.backend, args.backends, resolveBackendRef);
|
|
323
|
-
this.route = gatewayOutput.cluster.apply((cluster) => {
|
|
324
|
-
return new gateway.v1alpha2.TCPRoute(
|
|
325
|
-
name,
|
|
326
|
-
{
|
|
327
|
-
metadata: mapMetadata(args, name).apply((metadata) => ({
|
|
328
|
-
...metadata,
|
|
329
|
-
namespace: gatewayOutput.namespace.metadata.name
|
|
330
|
-
})),
|
|
331
|
-
spec: {
|
|
332
|
-
parentRefs,
|
|
333
|
-
rules: [
|
|
334
|
-
{
|
|
335
|
-
backendRefs
|
|
336
|
-
}
|
|
337
|
-
]
|
|
338
|
-
}
|
|
339
|
-
},
|
|
340
|
-
{ ...opts, parent: this, provider: getProvider(cluster) }
|
|
341
|
-
);
|
|
342
|
-
});
|
|
343
|
-
}
|
|
344
|
-
};
|
|
345
|
-
var UdpRoute = class extends ComponentResource {
|
|
346
|
-
/**
|
|
347
|
-
* The underlying Kubernetes resource.
|
|
348
|
-
*/
|
|
349
|
-
route;
|
|
350
|
-
constructor(name, args, opts) {
|
|
351
|
-
super("highstate:k8s:UdpRoute", name, args, opts);
|
|
352
|
-
const gatewayOutput = output(args.gateway);
|
|
353
|
-
const parentRefs = output({
|
|
354
|
-
gateway: gatewayOutput,
|
|
355
|
-
listenerName: args.listenerName
|
|
356
|
-
}).apply(
|
|
357
|
-
({ gateway: gateway5, listenerName }) => [
|
|
358
|
-
{
|
|
359
|
-
group: "gateway.networking.k8s.io",
|
|
360
|
-
kind: "Gateway",
|
|
361
|
-
name: gateway5.metadata.name,
|
|
362
|
-
namespace: gateway5.namespace.metadata.name,
|
|
363
|
-
sectionName: listenerName
|
|
364
|
-
}
|
|
365
|
-
]
|
|
366
|
-
);
|
|
367
|
-
const backendRefs = normalizeInputsAndMap(args.backend, args.backends, resolveBackendRef);
|
|
368
|
-
this.route = gatewayOutput.cluster.apply((cluster) => {
|
|
369
|
-
return new gateway.v1alpha2.UDPRoute(
|
|
370
|
-
name,
|
|
371
|
-
{
|
|
372
|
-
metadata: mapMetadata(args, name).apply((metadata) => ({
|
|
373
|
-
...metadata,
|
|
374
|
-
namespace: gatewayOutput.namespace.metadata.name
|
|
375
|
-
})),
|
|
376
|
-
spec: {
|
|
377
|
-
parentRefs,
|
|
378
|
-
rules: [
|
|
379
|
-
{
|
|
380
|
-
backendRefs
|
|
381
|
-
}
|
|
382
|
-
]
|
|
383
|
-
}
|
|
384
|
-
},
|
|
385
|
-
{ ...opts, parent: this, provider: getProvider(cluster) }
|
|
386
|
-
);
|
|
387
|
-
});
|
|
388
|
-
}
|
|
389
|
-
};
|
|
390
|
-
|
|
391
|
-
export { Gateway, HttpRoute, TcpRoute, UdpRoute, mapHttpRouteRuleMatch, resolveBackendRef };
|
|
392
|
-
//# sourceMappingURL=chunk-P26SQ2ZB.js.map
|
|
393
|
-
//# sourceMappingURL=chunk-P26SQ2ZB.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/gateway/backend.ts","../src/gateway/gateway.ts","../src/gateway/http-route.ts","../src/gateway/tcp-route.ts","../src/gateway/udp-route.ts"],"names":["output","gateway","ComponentResource","normalizeInputsAndMap"],"mappings":";;;;;;;;;AAoCO,SAAS,kBAAkB,GAAA,EAAiD;AACjF,EAAA,IAAI,OAAA,CAAQ,UAAA,CAAW,GAAG,CAAA,EAAG;AAC3B,IAAA,OAAO,MAAA,CAAO;AAAA,MACZ,IAAA,EAAM,IAAI,QAAA,CAAS,IAAA;AAAA,MACnB,SAAA,EAAW,IAAI,QAAA,CAAS,SAAA;AAAA,MACxB,IAAA,EAAM,GAAA,CAAI,IAAA,CAAK,KAAA,CAAM,CAAC,CAAA,CAAE;AAAA,KACzB,CAAA;AAAA,EACH;AAEA,EAAA,IAAI,aAAa,GAAA,EAAK;AACpB,IAAA,MAAM,OAAA,GAAU,MAAA,CAAO,GAAA,CAAI,OAAO,CAAA;AAElC,IAAA,OAAO,MAAA,CAAO;AAAA,MACZ,IAAA,EAAM,QAAQ,QAAA,CAAS,IAAA;AAAA,MACvB,SAAA,EAAW,QAAQ,QAAA,CAAS,SAAA;AAAA,MAC5B,MAAM,GAAA,CAAI,IAAA,IAAQ,QAAQ,IAAA,CAAK,KAAA,CAAM,CAAC,CAAA,CAAE;AAAA,KACzC,CAAA;AAAA,EACH;AAEA,EAAA,OAAO,MAAA,CAAO;AAAA,IACZ,MAAM,GAAA,CAAI,IAAA;AAAA,IACV,WAAW,GAAA,CAAI,SAAA;AAAA,IACf,MAAM,GAAA,CAAI;AAAA,GACX,CAAA;AACH;ACfA,IAAM,gBAAA,GAAmB,CAAC,GAAG,eAAA,EAAiB,QAAQ,OAAO,CAAA;AAKtD,IAAe,OAAA,GAAf,MAAe,QAAA,SAAgB,kBAAA,CAAmB;AAAA,EAI7C,WAAA,CACR,MACA,IAAA,EACA,IAAA,EACA,MAKA,QAAA,EACA,SAAA,EAKS,MAKA,MAAA,EACT;AACA,IAAA,KAAA,CAAM,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,UAAU,SAAS,CAAA;AAPxC,IAAA,IAAA,CAAA,IAAA,GAAA,IAAA;AAKA,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA;AAAA,EAGX;AAAA,EA1BA,OAAgB,UAAA,GAAa,8BAAA;AAAA,EAC7B,OAAgB,IAAA,GAAO,SAAA;AAAA;AAAA;AAAA;AAAA,EA8BvB,IAAI,MAAA,GAA8B;AAChC,IAAA,OAAO,gBAAA,CAAiB;AAAA,MACtB,QAAQ,GAAA,CAAI,aAAA;AAAA,MACZ,QAAA,EAAU,KAAK,QAAA,CAAS,GAAA;AAAA,MACxB,IAAA,EAAM;AAAA,QACJ,KAAA,EAAO,KAAK,QAAA,CAAS;AAAA,OACvB;AAAA,MACA,KAAA,EAAO;AAAA,QACL,GAAG,IAAA,CAAK;AAAA;AACV,KACD,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,SAAA,GAA0C;AAC5C,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,SAAA,CAAU,KAAA,CAAM,CAAA,SAAA,KAAa;AAC9C,MAAA,IAAI,CAAC,SAAA,EAAW;AACd,QAAA,OAAO,EAAC;AAAA,MACV;AAEA,MAAA,OAAO,UAAU,GAAA,CAAI,CAAA,OAAA,KAAW,aAAA,CAAc,OAAA,CAAQ,KAAK,CAAC,CAAA;AAAA,IAC9D,CAAC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,MAAA,CAAO,IAAA,EAAc,IAAA,EAAmB,IAAA,EAA0C;AACvF,IAAA,OAAO,IAAI,cAAA,CAAe,IAAA,EAAM,IAAA,EAAM,IAAI,CAAA;AAAA,EAC5C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,OAAO,aAAA,CACL,IAAA,EACA,IAAA,EACA,IAAA,EACS;AACT,IAAA,IAAI,KAAK,QAAA,EAAU;AACjB,MAAA,OAAO,IAAI,aAAa,IAAA,EAAM;AAAA,QAC5B,GAAG,IAAA;AAAA,QACH,IAAA,EAAMA,MAAAA,CAAO,IAAA,CAAK,QAAQ,EAAE,QAAA,CAAS,IAAA;AAAA,QACrC,SAAA,EAAW,UAAU,gBAAA,CAAiB,IAAA,CAAK,UAAUA,MAAAA,CAAO,IAAA,CAAK,SAAS,CAAA,CAAE,OAAO;AAAA,OACpF,CAAA;AAAA,IACH;AAEA,IAAA,OAAO,IAAI,cAAA,CAAe,IAAA,EAAM,IAAA,EAAM,IAAI,CAAA;AAAA,EAC5C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,aAAa,WAAA,CACX,IAAA,EACA,IAAA,EACA,IAAA,EACkB;AAClB,IAAA,IAAI,KAAK,QAAA,EAAU;AACjB,MAAA,OAAO,MAAM,SAAQ,QAAA,CAAS,IAAA,CAAK,UAAUA,MAAAA,CAAO,IAAA,CAAK,SAAS,CAAA,CAAE,OAAO,CAAA;AAAA,IAC7E;AAEA,IAAA,OAAO,IAAI,cAAA,CAAe,IAAA,EAAM,IAAA,EAAM,IAAI,CAAA;AAAA,EAC5C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,OAAO,KAAA,CAAM,IAAA,EAAc,IAAA,EAAmB,IAAA,EAA0C;AACtF,IAAA,OAAO,IAAI,YAAA,CAAa,IAAA,EAAM,IAAA,EAAM,IAAI,CAAA;AAAA,EAC1C;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,IAAA,CAAK,IAAA,EAAc,IAAA,EAA0B,IAAA,EAA0C;AAC5F,IAAA,OAAO,IAAI,cAAA,CAAe,IAAA,EAAM,IAAA,EAAM,IAAI,CAAA;AAAA,EAC5C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAO,GAAA,CAAI,IAAA,EAAc,IAAA,EAA2B,IAAA,EAA0C;AAC5F,IAAA,OAAO,IAAI,eAAA,CAAgB,IAAA,EAAM,IAAA,EAAM,IAAI,CAAA;AAAA,EAC7C;AAAA,EAEA,OAAwB,YAAA,mBAAe,IAAI,GAAA,EAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAahE,OAAO,GAAA,CAAI,MAAA,EAAqB,OAAA,EAAsC;AACpE,IAAA,OAAO,WAAA;AAAA,MACL,QAAA,CAAQ,YAAA;AAAA,MACR,CAAA,EAAG,MAAA,CAAO,WAAW,CAAA,CAAA,EAAI,MAAA,CAAO,QAAA,CAAS,SAAS,CAAA,CAAA,EAAI,MAAA,CAAO,QAAA,CAAS,IAAI,CAAA,CAAA,EAAI,OAAO,SAAS,CAAA,CAAA;AAAA,MAC9F,CAAA,IAAA,KAAQ;AACN,QAAA,OAAO,QAAA,CAAQ,IAAI,IAAA,EAAM;AAAA,UACvB,IAAA,EAAM,OAAO,QAAA,CAAS,IAAA;AAAA,UACtB,SAAA,EAAW,SAAA,CAAU,gBAAA,CAAiB,MAAA,EAAQ,OAAO;AAAA,SACtD,CAAA;AAAA,MACH;AAAA,KACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaA,aAAa,QAAA,CAAS,MAAA,EAA4B,OAAA,EAA+C;AAC/F,IAAA,MAAM,cAAA,GAAiB,MAAM,SAAA,CAAU,MAAM,CAAA;AAE7C,IAAA,OAAO,QAAA,CAAQ,GAAA,CAAI,cAAA,EAAgBA,MAAAA,CAAO,OAAO,CAAC,CAAA;AAAA,EACpD;AACF;AAEA,IAAM,cAAA,GAAN,cAA6B,OAAA,CAAQ;AAAA,EACnC,WAAA,CAAY,IAAA,EAAc,IAAA,EAAmB,IAAA,EAAiC;AAC5E,IAAA,MAAM,kBAAkBA,MAAAA,CAAO,IAAA,CAAK,SAAS,CAAA,CAAE,OAAA,CAAQ,MAAM,CAAA,OAAA,KAAW;AACtE,MAAA,OAAO,IAAI,QAAQ,EAAA,CAAG,OAAA;AAAA,QACpB,IAAA;AAAA,QACA;AAAA,UACE,QAAA,EAAU,WAAA,CAAY,IAAA,EAAM,IAAI,CAAA;AAAA,UAChC,IAAA,EAAM,IAAA,CAAK,IAAA,EAAM,gBAAgB;AAAA,SACnC;AAAA,QACA,EAAE,GAAG,IAAA,EAAM,MAAA,EAAQ,MAAM,QAAA,EAAU,WAAA,CAAY,OAAO,CAAA;AAAE,OAC1D;AAAA,IACF,CAAC,CAAA;AAED,IAAA,KAAA;AAAA,MACE,uBAAA;AAAA,MACA,IAAA;AAAA,MACA,IAAA;AAAA,MACA,IAAA;AAAA,MAEA,eAAA,CAAgB,QAAA;AAAA,MAChBA,MAAAA,CAAO,KAAK,SAAS,CAAA;AAAA,MACrB,eAAA,CAAgB,IAAA;AAAA,MAChB,eAAA,CAAgB;AAAA,KAClB;AAAA,EACF;AACF,CAAA;AAEA,IAAM,YAAA,GAAN,cAA2B,OAAA,CAAQ;AAAA,EACjC,WAAA,CAAY,IAAA,EAAc,IAAA,EAAmB,IAAA,EAAiC;AAC5E,IAAA,MAAM,kBAAkBA,MAAAA,CAAO,IAAA,CAAK,SAAS,CAAA,CAAE,OAAA,CAAQ,MAAM,CAAA,OAAA,KAAW;AACtE,MAAA,OAAO,IAAI,QAAQ,EAAA,CAAG,YAAA;AAAA,QACpB,IAAA;AAAA,QACA;AAAA,UACE,QAAA,EAAU,WAAA,CAAY,IAAA,EAAM,IAAI,CAAA;AAAA,UAChC,IAAA,EAAM,IAAA,CAAK,IAAA,EAAM,gBAAgB;AAAA,SACnC;AAAA,QACA,EAAE,GAAG,IAAA,EAAM,MAAA,EAAQ,MAAM,QAAA,EAAU,WAAA,CAAY,OAAO,CAAA;AAAE,OAC1D;AAAA,IACF,CAAC,CAAA;AAED,IAAA,KAAA;AAAA,MACE,4BAAA;AAAA,MACA,IAAA;AAAA,MACA,IAAA;AAAA,MACA,IAAA;AAAA,MAEA,eAAA,CAAgB,QAAA;AAAA,MAChBA,MAAAA,CAAO,KAAK,SAAS,CAAA;AAAA,MACrB,eAAA,CAAgB,IAAA;AAAA,MAChB,eAAA,CAAgB;AAAA,KAClB;AAAA,EACF;AACF,CAAA;AAcA,IAAM,cAAA,GAAN,cAA6B,OAAA,CAAQ;AAAA,EACnC,WAAA,CAAY,IAAA,EAAc,IAAA,EAA0B,IAAA,EAAiC;AACnF,IAAA,KAAA;AAAA,MACE,8BAAA;AAAA,MACA,IAAA;AAAA,MACA,IAAA;AAAA,MACA,IAAA;AAAA,MAEAA,MAAAA,CAAO,IAAA,CAAK,OAAO,CAAA,CAAE,QAAA;AAAA,MACrBA,MAAAA,CAAO,KAAK,SAAS,CAAA;AAAA,MACrBA,MAAAA,CAAO,IAAA,CAAK,OAAO,CAAA,CAAE,IAAA;AAAA,MACrBA,MAAAA,CAAO,IAAA,CAAK,OAAO,CAAA,CAAE;AAAA,KACvB;AAAA,EACF;AACF,CAAA;AAcA,IAAM,eAAA,GAAN,cAA8B,OAAA,CAAQ;AAAA,EACpC,WAAA,CAAY,IAAA,EAAc,IAAA,EAA2B,IAAA,EAAiC;AACpF,IAAA,MAAM,kBAAkBA,MAAAA,CAAO,IAAA,CAAK,SAAS,CAAA,CAAE,OAAA,CAAQ,MAAM,CAAA,OAAA,KAAW;AACtE,MAAA,OAAO,OAAA,CAAQ,GAAG,OAAA,CAAQ,GAAA;AAAA,QACxB,IAAA;AAAA,QACA,WAAA,CAAA,EAAcA,OAAO,IAAA,CAAK,SAAS,EAAE,QAAA,CAAS,IAAI,CAAA,CAAA,EAAI,IAAA,CAAK,IAAI,CAAA,CAAA;AAAA,QAC/D,EAAE,GAAG,IAAA,EAAM,MAAA,EAAQ,MAAM,QAAA,EAAU,WAAA,CAAY,OAAO,CAAA;AAAE,OAC1D;AAAA,IACF,CAAC,CAAA;AAED,IAAA,KAAA;AAAA,MACE,+BAAA;AAAA,MACA,IAAA;AAAA,MACA,IAAA;AAAA,MACA,IAAA;AAAA,MAEA,eAAA,CAAgB,QAAA;AAAA,MAChBA,MAAAA,CAAO,KAAK,SAAS,CAAA;AAAA,MACrB,eAAA,CAAgB,IAAA;AAAA,MAChB,eAAA,CAAgB;AAAA,KAClB;AAAA,EACF;AACF,CAAA;AC5QO,IAAM,SAAA,GAAN,cAAwB,iBAAA,CAAkB;AAAA;AAAA;AAAA;AAAA,EAI/B,KAAA;AAAA,EAEhB,WAAA,CAAY,IAAA,EAAc,IAAA,EAAqB,IAAA,EAAiC;AAC9E,IAAA,KAAA,CAAM,yBAAA,EAA2B,IAAA,EAAM,IAAA,EAAM,IAAI,CAAA;AAEjD,IAAA,IAAA,CAAK,QAAQA,MAAAA,CAAO,IAAA,CAAK,OAAO,CAAA,CAAE,OAAA,CAAQ,MAAM,CAAA,OAAA,KAAW;AACzD,MAAA,OAAO,IAAIC,QAAQ,EAAA,CAAG,SAAA;AAAA,QACpB,IAAA;AAAA,QACA;AAAA,UACE,UAAU,WAAA,CAAY,IAAA,EAAM,IAAI,CAAA,CAAE,MAAM,CAAA,QAAA,MAAa;AAAA,YACnD,GAAG,QAAA;AAAA,YACH,WAAWD,MAAAA,CAAO,IAAA,CAAK,OAAO,CAAA,CAAE,UAAU,QAAA,CAAS;AAAA,WACrD,CAAE,CAAA;AAAA,UACF,IAAA,EAAM;AAAA,YACJ,SAAA,EAAW,eAAA,CAAgB,IAAA,CAAK,QAAA,EAAU,KAAK,SAAS,CAAA;AAAA,YAExD,UAAA,EAAY;AAAA,cACV;AAAA,gBACE,IAAA,EAAMA,MAAAA,CAAO,IAAA,CAAK,OAAO,EAAE,QAAA,CAAS;AAAA;AACtC,aACF;AAAA,YAEA,OAAO,qBAAA,CAAsB,IAAA,CAAK,IAAA,EAAM,IAAA,CAAK,OAAO,CAAA,IAAA,MAAS;AAAA,cAC3D,UAAU,IAAA,CAAK,QAAA;AAAA,cAEf,OAAA,EAAS,IAAA;AAAA,gBACP,SAAA,CAAU,IAAA,CAAK,KAAA,EAAO,IAAA,CAAK,OAAO,CAAA;AAAA,gBAClC,IAAI,qBAAqB,CAAA;AAAA,gBACzB;AAAA,eACF;AAAA,cAEA,OAAA,EAAS,SAAA,CAAU,IAAA,CAAK,MAAA,EAAQ,KAAK,OAAO,CAAA;AAAA,cAC5C,aAAa,qBAAA,CAAsB,IAAA,CAAK,OAAA,EAAS,IAAA,CAAK,UAAU,iBAAiB;AAAA,aACnF,CAAE;AAAA;AACJ,SACF;AAAA,QACA,EAAE,GAAG,IAAA,EAAM,MAAA,EAAQ,MAAM,QAAA,EAAU,WAAA,CAAY,OAAO,CAAA;AAAE,OAC1D;AAAA,IACF,CAAC,CAAA;AAAA,EACH;AACF;AAEA,SAAS,oBACP,OAAA,EACoD;AACpD,EAAA,OAAO,OAAA,CAAQ,MAAA,GAAS,OAAA,GAAU,CAAC,EAAE,IAAA,EAAM,EAAE,IAAA,EAAM,YAAA,EAAc,KAAA,EAAO,GAAA,EAAI,EAAG,CAAA;AACjF;AAEO,SAAS,sBACd,KAAA,EACkD;AAClD,EAAA,IAAI,OAAO,UAAU,QAAA,EAAU;AAC7B,IAAA,OAAO,EAAE,IAAA,EAAM,EAAE,MAAM,YAAA,EAAc,KAAA,EAAO,OAAM,EAAE;AAAA,EACtD;AAEA,EAAA,OAAO,KAAA;AACT;ACtGO,IAAM,QAAA,GAAN,cAAuBE,iBAAAA,CAAkB;AAAA;AAAA;AAAA;AAAA,EAI9B,KAAA;AAAA,EAEhB,WAAA,CAAY,IAAA,EAAc,IAAA,EAAoB,IAAA,EAAiC;AAC7E,IAAA,KAAA,CAAM,wBAAA,EAA0B,IAAA,EAAM,IAAA,EAAM,IAAI,CAAA;AAEhD,IAAA,MAAM,aAAA,GAAgBF,MAAAA,CAAO,IAAA,CAAK,OAAO,CAAA;AAEzC,IAAA,MAAM,aAAaA,MAAAA,CAAO;AAAA,MACxB,OAAA,EAAS,aAAA;AAAA,MACT,cAAc,IAAA,CAAK;AAAA,KACpB,CAAA,CAAE,KAAA;AAAA,MACD,CAAC,EAAE,OAAA,EAAAC,QAAAA,EAAS,cAAa,KACvB;AAAA,QACE;AAAA,UACE,KAAA,EAAO,2BAAA;AAAA,UACP,IAAA,EAAM,SAAA;AAAA,UACN,IAAA,EAAMA,SAAQ,QAAA,CAAS,IAAA;AAAA,UACvB,SAAA,EAAWA,QAAAA,CAAQ,SAAA,CAAU,QAAA,CAAS,IAAA;AAAA,UACtC,WAAA,EAAa;AAAA;AACf;AACF,KACJ;AAEA,IAAA,MAAM,cAAcE,qBAAAA,CAAsB,IAAA,CAAK,OAAA,EAAS,IAAA,CAAK,UAAU,iBAAiB,CAAA;AAExF,IAAA,IAAA,CAAK,KAAA,GAAQ,aAAA,CAAc,OAAA,CAAQ,KAAA,CAAM,CAAA,OAAA,KAAW;AAClD,MAAA,OAAO,IAAIF,QAAQ,QAAA,CAAS,QAAA;AAAA,QAC1B,IAAA;AAAA,QACA;AAAA,UACE,UAAU,WAAA,CAAY,IAAA,EAAM,IAAI,CAAA,CAAE,MAAM,CAAA,QAAA,MAAa;AAAA,YACnD,GAAG,QAAA;AAAA,YACH,SAAA,EAAW,aAAA,CAAc,SAAA,CAAU,QAAA,CAAS;AAAA,WAC9C,CAAE,CAAA;AAAA,UACF,IAAA,EAAM;AAAA,YACJ,UAAA;AAAA,YACA,KAAA,EAAO;AAAA,cACL;AAAA,gBACE;AAAA;AACF;AACF;AACF,SACF;AAAA,QACA,EAAE,GAAG,IAAA,EAAM,MAAA,EAAQ,MAAM,QAAA,EAAU,WAAA,CAAY,OAAO,CAAA;AAAE,OAC1D;AAAA,IACF,CAAC,CAAA;AAAA,EACH;AACF;AClDO,IAAM,QAAA,GAAN,cAAuBC,iBAAAA,CAAkB;AAAA;AAAA;AAAA;AAAA,EAI9B,KAAA;AAAA,EAEhB,WAAA,CAAY,IAAA,EAAc,IAAA,EAAoB,IAAA,EAAiC;AAC7E,IAAA,KAAA,CAAM,wBAAA,EAA0B,IAAA,EAAM,IAAA,EAAM,IAAI,CAAA;AAEhD,IAAA,MAAM,aAAA,GAAgBF,MAAAA,CAAO,IAAA,CAAK,OAAO,CAAA;AAEzC,IAAA,MAAM,aAAaA,MAAAA,CAAO;AAAA,MACxB,OAAA,EAAS,aAAA;AAAA,MACT,cAAc,IAAA,CAAK;AAAA,KACpB,CAAA,CAAE,KAAA;AAAA,MACD,CAAC,EAAE,OAAA,EAAAC,QAAAA,EAAS,cAAa,KACvB;AAAA,QACE;AAAA,UACE,KAAA,EAAO,2BAAA;AAAA,UACP,IAAA,EAAM,SAAA;AAAA,UACN,IAAA,EAAMA,SAAQ,QAAA,CAAS,IAAA;AAAA,UACvB,SAAA,EAAWA,QAAAA,CAAQ,SAAA,CAAU,QAAA,CAAS,IAAA;AAAA,UACtC,WAAA,EAAa;AAAA;AACf;AACF,KACJ;AAEA,IAAA,MAAM,cAAcE,qBAAAA,CAAsB,IAAA,CAAK,OAAA,EAAS,IAAA,CAAK,UAAU,iBAAiB,CAAA;AAExF,IAAA,IAAA,CAAK,KAAA,GAAQ,aAAA,CAAc,OAAA,CAAQ,KAAA,CAAM,CAAA,OAAA,KAAW;AAClD,MAAA,OAAO,IAAIF,QAAQ,QAAA,CAAS,QAAA;AAAA,QAC1B,IAAA;AAAA,QACA;AAAA,UACE,UAAU,WAAA,CAAY,IAAA,EAAM,IAAI,CAAA,CAAE,MAAM,CAAA,QAAA,MAAa;AAAA,YACnD,GAAG,QAAA;AAAA,YACH,SAAA,EAAW,aAAA,CAAc,SAAA,CAAU,QAAA,CAAS;AAAA,WAC9C,CAAE,CAAA;AAAA,UACF,IAAA,EAAM;AAAA,YACJ,UAAA;AAAA,YACA,KAAA,EAAO;AAAA,cACL;AAAA,gBACE;AAAA;AACF;AACF;AACF,SACF;AAAA,QACA,EAAE,GAAG,IAAA,EAAM,MAAA,EAAQ,MAAM,QAAA,EAAU,WAAA,CAAY,OAAO,CAAA;AAAE,OAC1D;AAAA,IACF,CAAC,CAAA;AAAA,EACH;AACF","file":"chunk-P26SQ2ZB.js","sourcesContent":["import type { core } from \"@pulumi/kubernetes\"\nimport { type Input, type Output, output, type Unwrap } from \"@highstate/pulumi\"\nimport { Service } from \"../service\"\n\nexport interface FullBackendRef {\n /**\n * The name of the resource being referenced.\n */\n name: Input<string>\n\n /**\n * The namespace of the resource being referenced.\n * May be undefined if the resource is not in a namespace.\n */\n namespace?: Input<string | undefined>\n\n /**\n * The port of the resource being referenced.\n */\n port: Input<number>\n}\n\nexport interface ServiceBackendRef {\n /**\n * The name of the service being referenced.\n */\n service: Input<core.v1.Service | Service>\n\n /**\n * The port of the service being referenced.\n */\n port?: Input<number>\n}\n\nexport type BackendRef = FullBackendRef | ServiceBackendRef | Service\n\nexport function resolveBackendRef(ref: BackendRef): Output<Unwrap<FullBackendRef>> {\n if (Service.isInstance(ref)) {\n return output({\n name: ref.metadata.name,\n namespace: ref.metadata.namespace,\n port: ref.spec.ports[0].port,\n })\n }\n\n if (\"service\" in ref) {\n const service = output(ref.service)\n\n return output({\n name: service.metadata.name,\n namespace: service.metadata.namespace,\n port: ref.port ?? service.spec.ports[0].port,\n })\n }\n\n return output({\n name: ref.name,\n namespace: ref.namespace,\n port: ref.port,\n })\n}\n","import type { types } from \"@pulumi/kubernetes\"\nimport { parseEndpoint } from \"@highstate/common\"\nimport { getOrCreate } from \"@highstate/contract\"\nimport { gateway, type types as gwTypes } from \"@highstate/gateway-api\"\nimport { k8s, type network } from \"@highstate/library\"\nimport {\n type ComponentResourceOptions,\n type Input,\n type InputArray,\n type Inputs,\n interpolate,\n makeEntityOutput,\n type Output,\n output,\n toPromise,\n} from \"@highstate/pulumi\"\nimport { omit } from \"remeda\"\nimport { Namespace } from \"../namespace\"\nimport {\n commonExtraArgs,\n getProvider,\n mapMetadata,\n NamespacedResource,\n type ScopedResourceArgs,\n} from \"../shared\"\n\nexport type GatewayArgs = ScopedResourceArgs & {\n /**\n * The FQDN to configure the listeners for.\n */\n fqdn?: Input<string>\n\n /**\n * The FQDNs to configure the listeners for.\n */\n fqdns?: InputArray<string>\n} & gwTypes.input.gateway.v1.GatewaySpec\n\nexport type CreateOrGetGatewayArgs = GatewayArgs & {\n /**\n * The gateway entity to patch/retrieve.\n */\n existing: Input<k8s.Gateway> | undefined\n}\n\nconst gatewayExtraArgs = [...commonExtraArgs, \"fqdn\", \"fqdns\"] as const\n\n/**\n * Represents a Kubernetes Gateway resource.\n */\nexport abstract class Gateway extends NamespacedResource {\n static readonly apiVersion = \"gateway.networking.k8s.io/v1\"\n static readonly kind = \"Gateway\"\n\n protected constructor(\n type: string,\n name: string,\n args: Inputs,\n opts: ComponentResourceOptions | undefined,\n\n /**\n * The namespace where the gateway is located.\n */\n metadata: Output<types.output.meta.v1.ObjectMeta>,\n namespace: Output<Namespace>,\n\n /**\n * The spec of the underlying Gateway resource.\n */\n readonly spec: Output<gwTypes.output.gateway.v1.GatewaySpec>,\n\n /**\n * The status of the underlying Gateway resource.\n */\n readonly status: Output<gwTypes.output.gateway.v1.GatewayStatus>,\n ) {\n super(type, name, args, opts, metadata, namespace)\n }\n\n /**\n * The Highstate gateway entity.\n */\n get entity(): Output<k8s.Gateway> {\n return makeEntityOutput({\n entity: k8s.gatewayEntity,\n identity: this.metadata.uid,\n meta: {\n title: this.metadata.name,\n },\n value: {\n ...this.entityBase,\n },\n })\n }\n\n /**\n * Returns the endpoints L3 endpoints on which the gateway is exposed.\n */\n get endpoints(): Output<network.L3Endpoint[]> {\n return this.status.addresses.apply(addresses => {\n if (!addresses) {\n return []\n }\n\n return addresses.map(address => parseEndpoint(address.value))\n })\n }\n\n /**\n * Creates a new gateway.\n */\n static create(name: string, args: GatewayArgs, opts?: ComponentResourceOptions): Gateway {\n return new CreatedGateway(name, args, opts)\n }\n\n /**\n * Creates a new gateway or patches an existing one.\n *\n * @param name The name of the resource. May not be the same as the gateway name.\n * @param args The arguments to create or patch the gateway with.\n * @param opts Optional resource options.\n */\n static createOrPatch(\n name: string,\n args: CreateOrGetGatewayArgs,\n opts?: ComponentResourceOptions,\n ): Gateway {\n if (args.existing) {\n return new GatewayPatch(name, {\n ...args,\n name: output(args.existing).metadata.name,\n namespace: Namespace.forResourceAsync(args.existing, output(args.namespace).cluster),\n })\n }\n\n return new CreatedGateway(name, args, opts)\n }\n\n /**\n * Creates a new gateway or gets an existing one.\n *\n * @param name The name of the resource. May not be the same as the gateway name. Will not be used when existing gateway is retrieved.\n * @param args The arguments to create or get the gateway with.\n * @param opts Optional resource options.\n */\n static async createOrGet(\n name: string,\n args: CreateOrGetGatewayArgs,\n opts?: ComponentResourceOptions,\n ): Promise<Gateway> {\n if (args.existing) {\n return await Gateway.forAsync(args.existing, output(args.namespace).cluster)\n }\n\n return new CreatedGateway(name, args, opts)\n }\n\n /**\n * Patches an existing gateway.\n *\n * Will throw an error if the gateway does not exist.\n *\n * @param name The name of the resource. May not be the same as the gateway name.\n * @param args The arguments to patch the gateway with.\n * @param opts Optional resource options.\n */\n static patch(name: string, args: GatewayArgs, opts?: ComponentResourceOptions): Gateway {\n return new GatewayPatch(name, args, opts)\n }\n\n /**\n * Wraps an existing Kubernetes gateway.\n */\n static wrap(name: string, args: WrappedGatewayArgs, opts?: ComponentResourceOptions): Gateway {\n return new WrappedGateway(name, args, opts)\n }\n\n /**\n * Gets an existing gateway.\n *\n * Will throw an error if the gateway does not exist.\n */\n static get(name: string, args: ExternalGatewayArgs, opts?: ComponentResourceOptions): Gateway {\n return new ExternalGateway(name, args, opts)\n }\n\n private static readonly gatewayCache = new Map<string, Gateway>()\n\n /**\n * Gets an existing gateway for a given entity.\n * Prefer this method over `get` when possible.\n *\n * It automatically names the resource with the following format: `{clusterName}.{namespace}.{gatewayName}.{clusterId}`.\n *\n * This method is idempotent and will return the same instance for the same entity.\n *\n * @param entity The entity to get the gateway for.\n * @param cluster The cluster where the gateway is located.\n */\n static for(entity: k8s.Gateway, cluster: Input<k8s.Cluster>): Gateway {\n return getOrCreate(\n Gateway.gatewayCache,\n `${entity.clusterName}.${entity.metadata.namespace}.${entity.metadata.name}.${entity.clusterId}`,\n name => {\n return Gateway.get(name, {\n name: entity.metadata.name,\n namespace: Namespace.forResourceAsync(entity, cluster),\n })\n },\n )\n }\n\n /**\n * Gets an existing gateway for a given entity.\n * Prefer this method over `get` when possible.\n *\n * It automatically names the resource with the following format: `{clusterName}.{namespace}.{gatewayName}.{clusterId}`.\n *\n * This method is idempotent and will return the same instance for the same entity.\n *\n * @param entity The entity to get the gateway for.\n * @param cluster The cluster where the gateway is located.\n */\n static async forAsync(entity: Input<k8s.Gateway>, cluster: Input<k8s.Cluster>): Promise<Gateway> {\n const resolvedEntity = await toPromise(entity)\n\n return Gateway.for(resolvedEntity, output(cluster))\n }\n}\n\nclass CreatedGateway extends Gateway {\n constructor(name: string, args: GatewayArgs, opts?: ComponentResourceOptions) {\n const gatewayResource = output(args.namespace).cluster.apply(cluster => {\n return new gateway.v1.Gateway(\n name,\n {\n metadata: mapMetadata(args, name),\n spec: omit(args, gatewayExtraArgs),\n },\n { ...opts, parent: this, provider: getProvider(cluster) },\n )\n })\n\n super(\n \"highstate:k8s:Gateway\",\n name,\n args,\n opts,\n\n gatewayResource.metadata as Output<types.output.meta.v1.ObjectMeta>,\n output(args.namespace),\n gatewayResource.spec,\n gatewayResource.status,\n )\n }\n}\n\nclass GatewayPatch extends Gateway {\n constructor(name: string, args: GatewayArgs, opts?: ComponentResourceOptions) {\n const gatewayResource = output(args.namespace).cluster.apply(cluster => {\n return new gateway.v1.GatewayPatch(\n name,\n {\n metadata: mapMetadata(args, name),\n spec: omit(args, gatewayExtraArgs),\n },\n { ...opts, parent: this, provider: getProvider(cluster) },\n )\n })\n\n super(\n \"highstate:k8s:GatewayPatch\",\n name,\n args,\n opts,\n\n gatewayResource.metadata as Output<types.output.meta.v1.ObjectMeta>,\n output(args.namespace),\n gatewayResource.spec,\n gatewayResource.status,\n )\n }\n}\n\nexport type WrappedGatewayArgs = {\n /**\n * The underlying Kubernetes gateway to wrap.\n */\n gateway: Input<gateway.v1.Gateway>\n\n /**\n * The namespace where the gateway is located.\n */\n namespace: Input<Namespace>\n}\n\nclass WrappedGateway extends Gateway {\n constructor(name: string, args: WrappedGatewayArgs, opts?: ComponentResourceOptions) {\n super(\n \"highstate:k8s:WrappedGateway\",\n name,\n args,\n opts,\n\n output(args.gateway).metadata as Output<types.output.meta.v1.ObjectMeta>,\n output(args.namespace),\n output(args.gateway).spec,\n output(args.gateway).status,\n )\n }\n}\n\nexport type ExternalGatewayArgs = {\n /**\n * The name of the gateway to get.\n */\n name: Input<string>\n\n /**\n * The namespace of the gateway to get.\n */\n namespace: Input<Namespace>\n}\n\nclass ExternalGateway extends Gateway {\n constructor(name: string, args: ExternalGatewayArgs, opts?: ComponentResourceOptions) {\n const gatewayResource = output(args.namespace).cluster.apply(cluster => {\n return gateway.v1.Gateway.get(\n name,\n interpolate`${output(args.namespace).metadata.name}/${args.name}`,\n { ...opts, parent: this, provider: getProvider(cluster) },\n )\n })\n\n super(\n \"highstate:k8s:ExternalGateway\",\n name,\n args,\n opts,\n\n gatewayResource.metadata as Output<types.output.meta.v1.ObjectMeta>,\n output(args.namespace),\n gatewayResource.spec,\n gatewayResource.status,\n )\n }\n}\n","import type { Gateway } from \"./gateway\"\nimport { gateway, type types } from \"@highstate/gateway-api\"\nimport {\n ComponentResource,\n type ComponentResourceOptions,\n type Input,\n type InputArray,\n normalize,\n normalizeInputs,\n normalizeInputsAndMap,\n type Output,\n output,\n} from \"@highstate/pulumi\"\nimport { map, pipe } from \"remeda\"\nimport { getProvider, mapMetadata, type ScopedResourceArgs } from \"../shared\"\nimport { type BackendRef, resolveBackendRef } from \"./backend\"\n\nexport type HttpRouteArgs = Omit<ScopedResourceArgs, \"namespace\"> & {\n /**\n * The gateway to associate with the route.\n */\n gateway: Input<Gateway>\n\n /**\n * The alias for `hostnames: [hostname]`.\n */\n hostname?: Input<string>\n\n /**\n * The rule of the route.\n */\n rule?: Input<HttpRouteRuleArgs>\n\n /**\n * The rules of the route.\n */\n rules?: InputArray<HttpRouteRuleArgs>\n} & Omit<Partial<types.input.gateway.v1.HTTPRouteSpec>, \"rules\">\n\nexport type HttpRouteRuleArgs = Omit<\n types.input.gateway.v1.HTTPRouteSpecRules,\n \"matches\" | \"filters\" | \"backendRefs\"\n> & {\n /**\n * The conditions of the rule.\n * Can be specified as string to match on the path.\n */\n matches?: InputArray<HttpRouteRuleMatchOptions>\n\n /**\n * The condition of the rule.\n * Can be specified as string to match on the path.\n */\n match?: Input<HttpRouteRuleMatchOptions>\n\n /**\n * The filters of the rule.\n */\n filters?: InputArray<types.input.gateway.v1.HTTPRouteSpecRulesFilters>\n\n /**\n * The filter of the rule.\n */\n filter?: Input<types.input.gateway.v1.HTTPRouteSpecRulesFilters>\n\n /**\n * The service to route to.\n */\n backend?: Input<BackendRef>\n\n /**\n * The services to route to.\n */\n backends?: InputArray<BackendRef>\n}\n\nexport type HttpRouteRuleMatchOptions = types.input.gateway.v1.HTTPRouteSpecRulesMatches | string\n\nexport class HttpRoute extends ComponentResource {\n /**\n * The underlying Kubernetes resource.\n */\n public readonly route: Output<gateway.v1.HTTPRoute>\n\n constructor(name: string, args: HttpRouteArgs, opts?: ComponentResourceOptions) {\n super(\"highstate:k8s:HttpRoute\", name, args, opts)\n\n this.route = output(args.gateway).cluster.apply(cluster => {\n return new gateway.v1.HTTPRoute(\n name,\n {\n metadata: mapMetadata(args, name).apply(metadata => ({\n ...metadata,\n namespace: output(args.gateway).namespace.metadata.name,\n })),\n spec: {\n hostnames: normalizeInputs(args.hostname, args.hostnames),\n\n parentRefs: [\n {\n name: output(args.gateway).metadata.name,\n },\n ],\n\n rules: normalizeInputsAndMap(args.rule, args.rules, rule => ({\n timeouts: rule.timeouts,\n\n matches: pipe(\n normalize(rule.match, rule.matches),\n map(mapHttpRouteRuleMatch),\n addDefaultPathMatch,\n ),\n\n filters: normalize(rule.filter, rule.filters),\n backendRefs: normalizeInputsAndMap(rule.backend, rule.backends, resolveBackendRef),\n })),\n } satisfies types.input.gateway.v1.HTTPRouteSpec,\n },\n { ...opts, parent: this, provider: getProvider(cluster) },\n )\n })\n }\n}\n\nfunction addDefaultPathMatch(\n matches: types.input.gateway.v1.HTTPRouteSpecRulesMatches[],\n): types.input.gateway.v1.HTTPRouteSpecRulesMatches[] {\n return matches.length ? matches : [{ path: { type: \"PathPrefix\", value: \"/\" } }]\n}\n\nexport function mapHttpRouteRuleMatch(\n match: HttpRouteRuleMatchOptions,\n): types.input.gateway.v1.HTTPRouteSpecRulesMatches {\n if (typeof match === \"string\") {\n return { path: { type: \"PathPrefix\", value: match } }\n }\n\n return match\n}\n","import type { Gateway } from \"./gateway\"\nimport { gateway, type types } from \"@highstate/gateway-api\"\nimport {\n ComponentResource,\n type ComponentResourceOptions,\n type Input,\n type InputArray,\n normalizeInputsAndMap,\n type Output,\n output,\n} from \"@highstate/pulumi\"\nimport { getProvider, mapMetadata, type ScopedResourceArgs } from \"../shared\"\nimport { type BackendRef, resolveBackendRef } from \"./backend\"\n\nexport type TcpRouteArgs = Omit<ScopedResourceArgs, \"namespace\"> & {\n /**\n * The gateway to associate with the route.\n */\n gateway: Input<Gateway>\n\n /**\n * The name of the listener to attach the route to.\n */\n listenerName: Input<string>\n\n /**\n * The backend reference handled by the route.\n */\n backend?: Input<BackendRef>\n\n /**\n * The backend references handled by the route.\n */\n backends?: InputArray<BackendRef>\n}\n\nexport class TcpRoute extends ComponentResource {\n /**\n * The underlying Kubernetes resource.\n */\n public readonly route: Output<gateway.v1alpha2.TCPRoute>\n\n constructor(name: string, args: TcpRouteArgs, opts?: ComponentResourceOptions) {\n super(\"highstate:k8s:TcpRoute\", name, args, opts)\n\n const gatewayOutput = output(args.gateway)\n\n const parentRefs = output({\n gateway: gatewayOutput,\n listenerName: args.listenerName,\n }).apply(\n ({ gateway, listenerName }) =>\n [\n {\n group: \"gateway.networking.k8s.io\",\n kind: \"Gateway\",\n name: gateway.metadata.name,\n namespace: gateway.namespace.metadata.name,\n sectionName: listenerName,\n },\n ] satisfies types.input.gateway.v1alpha2.TCPRouteSpecParentRefs[],\n )\n\n const backendRefs = normalizeInputsAndMap(args.backend, args.backends, resolveBackendRef)\n\n this.route = gatewayOutput.cluster.apply(cluster => {\n return new gateway.v1alpha2.TCPRoute(\n name,\n {\n metadata: mapMetadata(args, name).apply(metadata => ({\n ...metadata,\n namespace: gatewayOutput.namespace.metadata.name,\n })),\n spec: {\n parentRefs,\n rules: [\n {\n backendRefs,\n },\n ],\n } satisfies types.input.gateway.v1alpha2.TCPRouteSpec,\n },\n { ...opts, parent: this, provider: getProvider(cluster) },\n )\n })\n }\n}\n","import type { Gateway } from \"./gateway\"\nimport { gateway, type types } from \"@highstate/gateway-api\"\nimport {\n ComponentResource,\n type ComponentResourceOptions,\n type Input,\n type InputArray,\n normalizeInputsAndMap,\n type Output,\n output,\n} from \"@highstate/pulumi\"\nimport { getProvider, mapMetadata, type ScopedResourceArgs } from \"../shared\"\nimport { type BackendRef, resolveBackendRef } from \"./backend\"\n\nexport type UdpRouteArgs = Omit<ScopedResourceArgs, \"namespace\"> & {\n /**\n * The gateway to associate with the route.\n */\n gateway: Input<Gateway>\n\n /**\n * The name of the listener to attach the route to.\n */\n listenerName: Input<string>\n\n /**\n * The backend reference handled by the route.\n */\n backend?: Input<BackendRef>\n\n /**\n * The backend references handled by the route.\n */\n backends?: InputArray<BackendRef>\n}\n\nexport class UdpRoute extends ComponentResource {\n /**\n * The underlying Kubernetes resource.\n */\n public readonly route: Output<gateway.v1alpha2.UDPRoute>\n\n constructor(name: string, args: UdpRouteArgs, opts?: ComponentResourceOptions) {\n super(\"highstate:k8s:UdpRoute\", name, args, opts)\n\n const gatewayOutput = output(args.gateway)\n\n const parentRefs = output({\n gateway: gatewayOutput,\n listenerName: args.listenerName,\n }).apply(\n ({ gateway, listenerName }) =>\n [\n {\n group: \"gateway.networking.k8s.io\",\n kind: \"Gateway\",\n name: gateway.metadata.name,\n namespace: gateway.namespace.metadata.name,\n sectionName: listenerName,\n },\n ] satisfies types.input.gateway.v1alpha2.UDPRouteSpecParentRefs[],\n )\n\n const backendRefs = normalizeInputsAndMap(args.backend, args.backends, resolveBackendRef)\n\n this.route = gatewayOutput.cluster.apply(cluster => {\n return new gateway.v1alpha2.UDPRoute(\n name,\n {\n metadata: mapMetadata(args, name).apply(metadata => ({\n ...metadata,\n namespace: gatewayOutput.namespace.metadata.name,\n })),\n spec: {\n parentRefs,\n rules: [\n {\n backendRefs,\n },\n ],\n } satisfies types.input.gateway.v1alpha2.UDPRouteSpec,\n },\n { ...opts, parent: this, provider: getProvider(cluster) },\n )\n })\n }\n}\n"]}
|