typekro 0.32.1 → 0.33.0
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/.tsbuildinfo +1 -1
- package/dist/alchemy/resource-registration.d.ts +15 -0
- package/dist/alchemy/resource-registration.d.ts.map +1 -1
- package/dist/alchemy/resource-registration.js +13 -1
- package/dist/alchemy/resource-registration.js.map +1 -1
- package/dist/core/dependencies/resolver.d.ts.map +1 -1
- package/dist/core/dependencies/resolver.js +13 -3
- package/dist/core/dependencies/resolver.js.map +1 -1
- package/dist/core/deployment/kro-artifact-binding-migration.d.ts +15 -0
- package/dist/core/deployment/kro-artifact-binding-migration.d.ts.map +1 -0
- package/dist/core/deployment/kro-artifact-binding-migration.js +181 -0
- package/dist/core/deployment/kro-artifact-binding-migration.js.map +1 -0
- package/dist/core/deployment/kro-factory.d.ts +1 -1
- package/dist/core/deployment/kro-factory.d.ts.map +1 -1
- package/dist/core/deployment/kro-factory.js +27 -34
- package/dist/core/deployment/kro-factory.js.map +1 -1
- package/dist/core/planning/compiler.d.ts.map +1 -1
- package/dist/core/planning/compiler.js +9 -23
- package/dist/core/planning/compiler.js.map +1 -1
- package/dist/core/planning/plan-codec.d.ts.map +1 -1
- package/dist/core/planning/plan-codec.js +3 -0
- package/dist/core/planning/plan-codec.js.map +1 -1
- package/dist/core/planning/types.d.ts +3 -0
- package/dist/core/planning/types.d.ts.map +1 -1
- package/dist/core/planning/values.d.ts.map +1 -1
- package/dist/core/planning/values.js +3 -0
- package/dist/core/planning/values.js.map +1 -1
- package/dist/core/references/cel-evaluator.d.ts +0 -5
- package/dist/core/references/cel-evaluator.d.ts.map +1 -1
- package/dist/core/references/cel-evaluator.js +7 -32
- package/dist/core/references/cel-evaluator.js.map +1 -1
- package/dist/core/references/cel-lexical-scanner.d.ts +14 -0
- package/dist/core/references/cel-lexical-scanner.d.ts.map +1 -0
- package/dist/core/references/cel-lexical-scanner.js +90 -0
- package/dist/core/references/cel-lexical-scanner.js.map +1 -0
- package/dist/core/references/cel.d.ts.map +1 -1
- package/dist/core/references/cel.js +5 -1
- package/dist/core/references/cel.js.map +1 -1
- package/dist/core/serialization/cel-references.d.ts.map +1 -1
- package/dist/core/serialization/cel-references.js +3 -1
- package/dist/core/serialization/cel-references.js.map +1 -1
- package/dist/factories/envoy-ai-gateway/compositions/gateway.d.ts +9 -0
- package/dist/factories/envoy-ai-gateway/compositions/gateway.d.ts.map +1 -0
- package/dist/factories/envoy-ai-gateway/compositions/gateway.js +773 -0
- package/dist/factories/envoy-ai-gateway/compositions/gateway.js.map +1 -0
- package/dist/factories/envoy-ai-gateway/compositions/index.d.ts +4 -0
- package/dist/factories/envoy-ai-gateway/compositions/index.d.ts.map +1 -0
- package/dist/factories/envoy-ai-gateway/compositions/index.js +4 -0
- package/dist/factories/envoy-ai-gateway/compositions/index.js.map +1 -0
- package/dist/factories/envoy-ai-gateway/compositions/platform.d.ts +70 -0
- package/dist/factories/envoy-ai-gateway/compositions/platform.d.ts.map +1 -0
- package/dist/factories/envoy-ai-gateway/compositions/platform.js +376 -0
- package/dist/factories/envoy-ai-gateway/compositions/platform.js.map +1 -0
- package/dist/factories/envoy-ai-gateway/compositions/repository.d.ts +13 -0
- package/dist/factories/envoy-ai-gateway/compositions/repository.d.ts.map +1 -0
- package/dist/factories/envoy-ai-gateway/compositions/repository.js +29 -0
- package/dist/factories/envoy-ai-gateway/compositions/repository.js.map +1 -0
- package/dist/factories/envoy-ai-gateway/constants.d.ts +18 -0
- package/dist/factories/envoy-ai-gateway/constants.d.ts.map +1 -0
- package/dist/factories/envoy-ai-gateway/constants.js +18 -0
- package/dist/factories/envoy-ai-gateway/constants.js.map +1 -0
- package/dist/factories/envoy-ai-gateway/index.d.ts +11 -0
- package/dist/factories/envoy-ai-gateway/index.d.ts.map +1 -0
- package/dist/factories/envoy-ai-gateway/index.js +11 -0
- package/dist/factories/envoy-ai-gateway/index.js.map +1 -0
- package/dist/factories/envoy-ai-gateway/resources/gateway.d.ts +29 -0
- package/dist/factories/envoy-ai-gateway/resources/gateway.d.ts.map +1 -0
- package/dist/factories/envoy-ai-gateway/resources/gateway.js +195 -0
- package/dist/factories/envoy-ai-gateway/resources/gateway.js.map +1 -0
- package/dist/factories/envoy-ai-gateway/resources/helm.d.ts +11 -0
- package/dist/factories/envoy-ai-gateway/resources/helm.d.ts.map +1 -0
- package/dist/factories/envoy-ai-gateway/resources/helm.js +54 -0
- package/dist/factories/envoy-ai-gateway/resources/helm.js.map +1 -0
- package/dist/factories/envoy-ai-gateway/resources/index.d.ts +3 -0
- package/dist/factories/envoy-ai-gateway/resources/index.d.ts.map +1 -0
- package/dist/factories/envoy-ai-gateway/resources/index.js +3 -0
- package/dist/factories/envoy-ai-gateway/resources/index.js.map +1 -0
- package/dist/factories/envoy-ai-gateway/types.d.ts +451 -0
- package/dist/factories/envoy-ai-gateway/types.d.ts.map +1 -0
- package/dist/factories/envoy-ai-gateway/types.js +54 -0
- package/dist/factories/envoy-ai-gateway/types.js.map +1 -0
- package/dist/factories/index.d.ts +1 -0
- package/dist/factories/index.d.ts.map +1 -1
- package/dist/factories/index.js +4 -0
- package/dist/factories/index.js.map +1 -1
- package/dist/factories/kro/resource-graph-definition.d.ts.map +1 -1
- package/dist/factories/kro/resource-graph-definition.js +15 -7
- package/dist/factories/kro/resource-graph-definition.js.map +1 -1
- package/package.json +5 -1
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/** Production compatibility tuple verified against Envoy AI Gateway v0.6.0. */
|
|
2
|
+
export const DEFAULT_ENVOY_AI_GATEWAY_VERSION = 'v0.6.0';
|
|
3
|
+
export const DEFAULT_ENVOY_GATEWAY_VERSION = 'v1.7.0';
|
|
4
|
+
export const DEFAULT_ENVOY_GATEWAY_NAMESPACE = 'envoy-gateway-system';
|
|
5
|
+
export const DEFAULT_ENVOY_AI_GATEWAY_NAMESPACE = 'envoy-ai-gateway-system';
|
|
6
|
+
export const DEFAULT_ENVOY_PROXY_REPOSITORY_NAME = 'envoyproxy-helm';
|
|
7
|
+
export const DEFAULT_ENVOY_PROXY_REPOSITORY_URL = 'oci://docker.io/envoyproxy';
|
|
8
|
+
export const DEFAULT_ENVOY_AI_GATEWAY_CLASS_NAME = 'envoy-ai-gateway';
|
|
9
|
+
export const DEFAULT_ENVOY_AI_GATEWAY_CONTROLLER_SERVICE = 'ai-gateway-controller';
|
|
10
|
+
export const DEFAULT_ENVOY_GATEWAY_CONTROLLER_NAME = 'gateway.envoyproxy.io/gatewayclass-controller';
|
|
11
|
+
export const DEFAULT_ENVOY_AI_GATEWAY_LISTENER_PORT = 8080;
|
|
12
|
+
export const ENVOY_AI_GATEWAY_API_VERSION = 'aigateway.envoyproxy.io/v1beta1';
|
|
13
|
+
export const ENVOY_GATEWAY_API_VERSION = 'gateway.envoyproxy.io/v1alpha1';
|
|
14
|
+
export const GATEWAY_API_VERSION = 'gateway.networking.k8s.io/v1';
|
|
15
|
+
export const GATEWAY_API_TLS_POLICY_VERSION = 'gateway.networking.k8s.io/v1alpha3';
|
|
16
|
+
export const ENVOY_AI_GATEWAY_MINIMUM_KUBERNETES_VERSION = '1.32.0';
|
|
17
|
+
export const ENVOY_AI_GATEWAY_GATEWAY_API_VERSION = '1.4.1';
|
|
18
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/factories/envoy-ai-gateway/constants.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,MAAM,CAAC,MAAM,gCAAgC,GAAG,QAAQ,CAAC;AACzD,MAAM,CAAC,MAAM,6BAA6B,GAAG,QAAQ,CAAC;AACtD,MAAM,CAAC,MAAM,+BAA+B,GAAG,sBAAsB,CAAC;AACtE,MAAM,CAAC,MAAM,kCAAkC,GAAG,yBAAyB,CAAC;AAC5E,MAAM,CAAC,MAAM,mCAAmC,GAAG,iBAAiB,CAAC;AACrE,MAAM,CAAC,MAAM,kCAAkC,GAAG,4BAA4B,CAAC;AAC/E,MAAM,CAAC,MAAM,mCAAmC,GAAG,kBAAkB,CAAC;AACtE,MAAM,CAAC,MAAM,2CAA2C,GAAG,uBAAuB,CAAC;AACnF,MAAM,CAAC,MAAM,qCAAqC,GAChD,+CAA+C,CAAC;AAClD,MAAM,CAAC,MAAM,sCAAsC,GAAG,IAAI,CAAC;AAE3D,MAAM,CAAC,MAAM,4BAA4B,GAAG,iCAAiC,CAAC;AAC9E,MAAM,CAAC,MAAM,yBAAyB,GAAG,gCAAgC,CAAC;AAC1E,MAAM,CAAC,MAAM,mBAAmB,GAAG,8BAA8B,CAAC;AAClE,MAAM,CAAC,MAAM,8BAA8B,GAAG,oCAAoC,CAAC;AAEnF,MAAM,CAAC,MAAM,2CAA2C,GAAG,QAAQ,CAAC;AACpE,MAAM,CAAC,MAAM,oCAAoC,GAAG,OAAO,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Production Envoy AI Gateway integration.
|
|
3
|
+
*
|
|
4
|
+
* Installs the verified Envoy AI Gateway compatibility tuple and composes
|
|
5
|
+
* provider-neutral logical model routing over upstream Gateway API resources.
|
|
6
|
+
*/
|
|
7
|
+
export * from './compositions/index.js';
|
|
8
|
+
export * from './constants.js';
|
|
9
|
+
export * from './resources/index.js';
|
|
10
|
+
export * from './types.js';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/factories/envoy-ai-gateway/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Production Envoy AI Gateway integration.
|
|
3
|
+
*
|
|
4
|
+
* Installs the verified Envoy AI Gateway compatibility tuple and composes
|
|
5
|
+
* provider-neutral logical model routing over upstream Gateway API resources.
|
|
6
|
+
*/
|
|
7
|
+
export * from './compositions/index.js';
|
|
8
|
+
export * from './constants.js';
|
|
9
|
+
export * from './resources/index.js';
|
|
10
|
+
export * from './types.js';
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/factories/envoy-ai-gateway/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { Enhanced, ResourceStatus } from '../../../core/types/index.js';
|
|
2
|
+
import type { AcceptedResourceStatus, AIGatewayRouteSpec, AIServiceBackendSpec, BackendSecurityPolicySpec, BackendTLSPolicySpec, BackendTrafficPolicySpec, EnvoyBackendSpec, GatewayClassSpec, GatewayConfigSpec, GatewayObservedStatus, GatewayPolicyObservedStatus, GatewaySpec, MCPRouteSpec } from '../types.js';
|
|
3
|
+
interface NamespacedResourceConfig<TSpec extends object> {
|
|
4
|
+
readonly name: string;
|
|
5
|
+
readonly namespace: string;
|
|
6
|
+
readonly spec: TSpec;
|
|
7
|
+
readonly id?: string;
|
|
8
|
+
}
|
|
9
|
+
interface ClusterResourceConfig<TSpec extends object> {
|
|
10
|
+
readonly name: string;
|
|
11
|
+
readonly spec: TSpec;
|
|
12
|
+
readonly id?: string;
|
|
13
|
+
}
|
|
14
|
+
export declare function envoyAIAcceptedReadinessEvaluator(liveResource: unknown): ResourceStatus;
|
|
15
|
+
export declare function envoyGatewayClassReadinessEvaluator(liveResource: unknown): ResourceStatus;
|
|
16
|
+
export declare function envoyGatewayReadinessEvaluator(liveResource: unknown): ResourceStatus;
|
|
17
|
+
export declare function envoyGatewayPolicyReadinessEvaluator(liveResource: unknown): ResourceStatus;
|
|
18
|
+
export declare function envoyGatewayClass(config: ClusterResourceConfig<GatewayClassSpec>): Enhanced<GatewayClassSpec, AcceptedResourceStatus>;
|
|
19
|
+
export declare function envoyGatewayConfig(config: NamespacedResourceConfig<GatewayConfigSpec>): Enhanced<GatewayConfigSpec, AcceptedResourceStatus>;
|
|
20
|
+
export declare function envoyGateway(config: NamespacedResourceConfig<GatewaySpec>): Enhanced<GatewaySpec, GatewayObservedStatus>;
|
|
21
|
+
export declare function envoyBackend(config: NamespacedResourceConfig<EnvoyBackendSpec>): Enhanced<EnvoyBackendSpec, Record<string, never>>;
|
|
22
|
+
export declare function envoyAIServiceBackend(config: NamespacedResourceConfig<AIServiceBackendSpec>): Enhanced<AIServiceBackendSpec, AcceptedResourceStatus>;
|
|
23
|
+
export declare function envoyBackendSecurityPolicy(config: NamespacedResourceConfig<BackendSecurityPolicySpec>): Enhanced<BackendSecurityPolicySpec, AcceptedResourceStatus>;
|
|
24
|
+
export declare function envoyBackendTLSPolicy(config: NamespacedResourceConfig<BackendTLSPolicySpec>): Enhanced<BackendTLSPolicySpec, GatewayPolicyObservedStatus>;
|
|
25
|
+
export declare function envoyAIGatewayRoute(config: NamespacedResourceConfig<AIGatewayRouteSpec>): Enhanced<AIGatewayRouteSpec, AcceptedResourceStatus>;
|
|
26
|
+
export declare function envoyMCPRoute(config: NamespacedResourceConfig<MCPRouteSpec>): Enhanced<MCPRouteSpec, AcceptedResourceStatus>;
|
|
27
|
+
export declare function envoyBackendTrafficPolicy(config: NamespacedResourceConfig<BackendTrafficPolicySpec>): Enhanced<BackendTrafficPolicySpec, GatewayPolicyObservedStatus>;
|
|
28
|
+
export {};
|
|
29
|
+
//# sourceMappingURL=gateway.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../../../../src/factories/envoy-ai-gateway/resources/gateway.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAS7E,OAAO,KAAK,EACV,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,EACpB,yBAAyB,EACzB,oBAAoB,EACpB,wBAAwB,EACxB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,2BAA2B,EAC3B,WAAW,EAEX,YAAY,EACb,MAAM,aAAa,CAAC;AAErB,UAAU,wBAAwB,CAAC,KAAK,SAAS,MAAM;IACrD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,qBAAqB,CAAC,KAAK,SAAS,MAAM;IAClD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;CACtB;AA4DD,wBAAgB,iCAAiC,CAAC,YAAY,EAAE,OAAO,GAAG,cAAc,CAEvF;AAED,wBAAgB,mCAAmC,CAAC,YAAY,EAAE,OAAO,GAAG,cAAc,CAEzF;AAED,wBAAgB,8BAA8B,CAAC,YAAY,EAAE,OAAO,GAAG,cAAc,CA2CpF;AAED,wBAAgB,oCAAoC,CAAC,YAAY,EAAE,OAAO,GAAG,cAAc,CA0C1F;AAuBD,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,qBAAqB,CAAC,gBAAgB,CAAC,GAC9C,QAAQ,CAAC,gBAAgB,EAAE,sBAAsB,CAAC,CAcpD;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,wBAAwB,CAAC,iBAAiB,CAAC,GAClD,QAAQ,CAAC,iBAAiB,EAAE,sBAAsB,CAAC,CAErD;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,wBAAwB,CAAC,WAAW,CAAC,GAC5C,QAAQ,CAAC,WAAW,EAAE,qBAAqB,CAAC,CAkB9C;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,wBAAwB,CAAC,gBAAgB,CAAC,GACjD,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAKnD;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,wBAAwB,CAAC,oBAAoB,CAAC,GACrD,QAAQ,CAAC,oBAAoB,EAAE,sBAAsB,CAAC,CAExD;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,wBAAwB,CAAC,yBAAyB,CAAC,GAC1D,QAAQ,CAAC,yBAAyB,EAAE,sBAAsB,CAAC,CAE7D;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,wBAAwB,CAAC,oBAAoB,CAAC,GACrD,QAAQ,CAAC,oBAAoB,EAAE,2BAA2B,CAAC,CAK7D;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,wBAAwB,CAAC,kBAAkB,CAAC,GACnD,QAAQ,CAAC,kBAAkB,EAAE,sBAAsB,CAAC,CAEtD;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,wBAAwB,CAAC,YAAY,CAAC,GAC7C,QAAQ,CAAC,YAAY,EAAE,sBAAsB,CAAC,CAEhD;AAED,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,wBAAwB,CAAC,wBAAwB,CAAC,GACzD,QAAQ,CAAC,wBAAwB,EAAE,2BAA2B,CAAC,CAKjE"}
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
import { createAlwaysReadyEvaluator } from '../../../core/readiness/evaluator-factories.js';
|
|
2
|
+
import { registerPortableReadinessEvaluator } from '../../../core/readiness/index.js';
|
|
3
|
+
import { createResource } from '../../shared.js';
|
|
4
|
+
import { DEFAULT_ENVOY_GATEWAY_CONTROLLER_NAME, ENVOY_AI_GATEWAY_API_VERSION, ENVOY_GATEWAY_API_VERSION, GATEWAY_API_TLS_POLICY_VERSION, GATEWAY_API_VERSION, } from '../constants.js';
|
|
5
|
+
function conditionReadiness(liveResource, acceptedType, rejectedTypes) {
|
|
6
|
+
const resource = liveResource;
|
|
7
|
+
const conditions = resource?.status?.conditions ?? [];
|
|
8
|
+
const generation = resource?.metadata?.generation;
|
|
9
|
+
const rejected = conditions.find((condition) => rejectedTypes.includes(condition.type) &&
|
|
10
|
+
condition.status === 'True' &&
|
|
11
|
+
conditionIsCurrent(condition, generation));
|
|
12
|
+
if (rejected) {
|
|
13
|
+
return {
|
|
14
|
+
ready: false,
|
|
15
|
+
reason: rejected.reason ?? rejected.type,
|
|
16
|
+
message: rejected.message ?? `${rejected.type} is True`,
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
const accepted = conditions.find((condition) => condition.type === acceptedType);
|
|
20
|
+
const current = conditionIsCurrent(accepted, generation);
|
|
21
|
+
if (accepted?.status === 'True' && current) {
|
|
22
|
+
return {
|
|
23
|
+
ready: true,
|
|
24
|
+
reason: accepted.reason ?? acceptedType,
|
|
25
|
+
message: accepted.message ?? `${acceptedType} is True`,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
return {
|
|
29
|
+
ready: false,
|
|
30
|
+
reason: accepted?.reason ?? 'Reconciling',
|
|
31
|
+
message: accepted?.message ??
|
|
32
|
+
`${acceptedType} has not been observed for the current resource generation`,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
function conditionIsCurrent(condition, generation) {
|
|
36
|
+
if (generation === undefined)
|
|
37
|
+
return true;
|
|
38
|
+
// Envoy AI Gateway v0.6 emits Condition-shaped entries without
|
|
39
|
+
// observedGeneration on its v1beta1 resources. Preserve strict freshness
|
|
40
|
+
// whenever the controller supplies it, while accepting the controller's
|
|
41
|
+
// documented sparse condition shape when it cannot.
|
|
42
|
+
return condition?.observedGeneration === undefined || condition.observedGeneration === generation;
|
|
43
|
+
}
|
|
44
|
+
export function envoyAIAcceptedReadinessEvaluator(liveResource) {
|
|
45
|
+
return conditionReadiness(liveResource, 'Accepted', ['NotAccepted']);
|
|
46
|
+
}
|
|
47
|
+
export function envoyGatewayClassReadinessEvaluator(liveResource) {
|
|
48
|
+
return conditionReadiness(liveResource, 'Accepted', []);
|
|
49
|
+
}
|
|
50
|
+
export function envoyGatewayReadinessEvaluator(liveResource) {
|
|
51
|
+
const resource = liveResource;
|
|
52
|
+
const conditions = resource?.status?.conditions ?? [];
|
|
53
|
+
const generation = resource?.metadata?.generation;
|
|
54
|
+
const rejected = conditions.find((condition) => ['Accepted', 'Programmed'].includes(condition.type) &&
|
|
55
|
+
condition.status === 'False' &&
|
|
56
|
+
conditionIsCurrent(condition, generation));
|
|
57
|
+
if (rejected) {
|
|
58
|
+
return {
|
|
59
|
+
ready: false,
|
|
60
|
+
reason: rejected.reason ?? `${rejected.type}False`,
|
|
61
|
+
message: rejected.message ?? `${rejected.type} is False`,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
const accepted = conditions.find((condition) => condition.type === 'Accepted');
|
|
65
|
+
const programmed = conditions.find((condition) => condition.type === 'Programmed');
|
|
66
|
+
const ready = accepted?.status === 'True' &&
|
|
67
|
+
programmed?.status === 'True' &&
|
|
68
|
+
conditionIsCurrent(accepted, generation) &&
|
|
69
|
+
conditionIsCurrent(programmed, generation);
|
|
70
|
+
return ready
|
|
71
|
+
? {
|
|
72
|
+
ready: true,
|
|
73
|
+
reason: 'GatewayProgrammed',
|
|
74
|
+
message: programmed.message ?? 'Gateway is accepted and programmed',
|
|
75
|
+
}
|
|
76
|
+
: {
|
|
77
|
+
ready: false,
|
|
78
|
+
reason: programmed?.reason ?? accepted?.reason ?? 'GatewayProgressing',
|
|
79
|
+
message: programmed?.message ??
|
|
80
|
+
accepted?.message ??
|
|
81
|
+
'Gateway is waiting to be accepted and programmed',
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
export function envoyGatewayPolicyReadinessEvaluator(liveResource) {
|
|
85
|
+
const resource = liveResource;
|
|
86
|
+
const generation = resource?.metadata?.generation;
|
|
87
|
+
const conditions = (resource?.status?.ancestors ?? [])
|
|
88
|
+
.filter((ancestor) => ancestor.controllerName === DEFAULT_ENVOY_GATEWAY_CONTROLLER_NAME)
|
|
89
|
+
.flatMap((ancestor) => ancestor.conditions ?? []);
|
|
90
|
+
const rejected = conditions.find((condition) => ((condition.type === 'Accepted' && condition.status === 'False') ||
|
|
91
|
+
(condition.type === 'ResolvedRefs' && condition.status === 'False')) &&
|
|
92
|
+
conditionIsCurrent(condition, generation));
|
|
93
|
+
if (rejected) {
|
|
94
|
+
return {
|
|
95
|
+
ready: false,
|
|
96
|
+
terminal: true,
|
|
97
|
+
reason: rejected.reason ?? `${rejected.type}False`,
|
|
98
|
+
message: rejected.message ?? `${rejected.type} is False`,
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
const accepted = conditions.find((condition) => condition.type === 'Accepted' &&
|
|
102
|
+
condition.status === 'True' &&
|
|
103
|
+
conditionIsCurrent(condition, generation));
|
|
104
|
+
return accepted
|
|
105
|
+
? {
|
|
106
|
+
ready: true,
|
|
107
|
+
reason: accepted.reason ?? 'Accepted',
|
|
108
|
+
message: accepted.message ?? 'Policy is accepted',
|
|
109
|
+
}
|
|
110
|
+
: {
|
|
111
|
+
ready: false,
|
|
112
|
+
reason: 'Reconciling',
|
|
113
|
+
message: 'Policy has not been accepted for the current resource generation',
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
registerPortableReadinessEvaluator('typekro.readiness.envoy-ai-gateway.accepted', '1', envoyAIAcceptedReadinessEvaluator);
|
|
117
|
+
registerPortableReadinessEvaluator('typekro.readiness.envoy-ai-gateway.gateway-class', '1', envoyGatewayClassReadinessEvaluator);
|
|
118
|
+
registerPortableReadinessEvaluator('typekro.readiness.envoy-ai-gateway.gateway', '1', envoyGatewayReadinessEvaluator);
|
|
119
|
+
registerPortableReadinessEvaluator('typekro.readiness.envoy-ai-gateway.policy', '1', envoyGatewayPolicyReadinessEvaluator);
|
|
120
|
+
export function envoyGatewayClass(config) {
|
|
121
|
+
return createResource({
|
|
122
|
+
apiVersion: GATEWAY_API_VERSION,
|
|
123
|
+
kind: 'GatewayClass',
|
|
124
|
+
metadata: {
|
|
125
|
+
name: config.name,
|
|
126
|
+
labels: managedLabels(config.name),
|
|
127
|
+
},
|
|
128
|
+
spec: config.spec,
|
|
129
|
+
...(config.id ? { id: config.id } : {}),
|
|
130
|
+
}, { scope: 'cluster' }).withReadinessEvaluator(envoyGatewayClassReadinessEvaluator);
|
|
131
|
+
}
|
|
132
|
+
export function envoyGatewayConfig(config) {
|
|
133
|
+
return acceptedResource('GatewayConfig', ENVOY_AI_GATEWAY_API_VERSION, config);
|
|
134
|
+
}
|
|
135
|
+
export function envoyGateway(config) {
|
|
136
|
+
return createResource({
|
|
137
|
+
apiVersion: GATEWAY_API_VERSION,
|
|
138
|
+
kind: 'Gateway',
|
|
139
|
+
metadata: {
|
|
140
|
+
name: config.name,
|
|
141
|
+
namespace: config.namespace,
|
|
142
|
+
labels: managedLabels(config.name),
|
|
143
|
+
annotations: {
|
|
144
|
+
'aigateway.envoyproxy.io/gateway-config': config.name,
|
|
145
|
+
},
|
|
146
|
+
},
|
|
147
|
+
spec: config.spec,
|
|
148
|
+
...(config.id ? { id: config.id } : {}),
|
|
149
|
+
}, { scope: 'namespaced' }).withReadinessEvaluator(envoyGatewayReadinessEvaluator);
|
|
150
|
+
}
|
|
151
|
+
export function envoyBackend(config) {
|
|
152
|
+
return createResource(resourceDefinition('Backend', ENVOY_GATEWAY_API_VERSION, config), { scope: 'namespaced' }).withReadinessEvaluator(createAlwaysReadyEvaluator('Backend'));
|
|
153
|
+
}
|
|
154
|
+
export function envoyAIServiceBackend(config) {
|
|
155
|
+
return acceptedResource('AIServiceBackend', ENVOY_AI_GATEWAY_API_VERSION, config);
|
|
156
|
+
}
|
|
157
|
+
export function envoyBackendSecurityPolicy(config) {
|
|
158
|
+
return acceptedResource('BackendSecurityPolicy', ENVOY_AI_GATEWAY_API_VERSION, config);
|
|
159
|
+
}
|
|
160
|
+
export function envoyBackendTLSPolicy(config) {
|
|
161
|
+
return createResource(resourceDefinition('BackendTLSPolicy', GATEWAY_API_TLS_POLICY_VERSION, config), { scope: 'namespaced' }).withReadinessEvaluator(envoyGatewayPolicyReadinessEvaluator);
|
|
162
|
+
}
|
|
163
|
+
export function envoyAIGatewayRoute(config) {
|
|
164
|
+
return acceptedResource('AIGatewayRoute', ENVOY_AI_GATEWAY_API_VERSION, config);
|
|
165
|
+
}
|
|
166
|
+
export function envoyMCPRoute(config) {
|
|
167
|
+
return acceptedResource('MCPRoute', ENVOY_AI_GATEWAY_API_VERSION, config);
|
|
168
|
+
}
|
|
169
|
+
export function envoyBackendTrafficPolicy(config) {
|
|
170
|
+
return createResource(resourceDefinition('BackendTrafficPolicy', ENVOY_GATEWAY_API_VERSION, config), { scope: 'namespaced' }).withReadinessEvaluator(envoyGatewayPolicyReadinessEvaluator);
|
|
171
|
+
}
|
|
172
|
+
function acceptedResource(kind, apiVersion, config) {
|
|
173
|
+
return createResource(resourceDefinition(kind, apiVersion, config), { scope: 'namespaced' }).withReadinessEvaluator(envoyAIAcceptedReadinessEvaluator);
|
|
174
|
+
}
|
|
175
|
+
function resourceDefinition(kind, apiVersion, config) {
|
|
176
|
+
return {
|
|
177
|
+
apiVersion,
|
|
178
|
+
kind,
|
|
179
|
+
metadata: {
|
|
180
|
+
name: config.name,
|
|
181
|
+
namespace: config.namespace,
|
|
182
|
+
labels: managedLabels(config.name),
|
|
183
|
+
},
|
|
184
|
+
spec: config.spec,
|
|
185
|
+
...(config.id ? { id: config.id } : {}),
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
function managedLabels(instance) {
|
|
189
|
+
return {
|
|
190
|
+
'app.kubernetes.io/name': 'envoy-ai-gateway',
|
|
191
|
+
'app.kubernetes.io/instance': instance,
|
|
192
|
+
'app.kubernetes.io/managed-by': 'typekro',
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
//# sourceMappingURL=gateway.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gateway.js","sourceRoot":"","sources":["../../../../src/factories/envoy-ai-gateway/resources/gateway.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Enhanced } from '../../../core/types/index.js';
|
|
2
|
+
import { type HelmRepositoryConfig, type HelmRepositorySpec, type HelmRepositoryStatus } from '../../helm/index.js';
|
|
3
|
+
import type { HelmReleaseSpec, HelmReleaseStatus } from '../../helm/types.js';
|
|
4
|
+
import type { EnvoyGatewayHelmReleaseConfig } from '../types.js';
|
|
5
|
+
export declare function envoyProxyHelmRepository(config: Omit<HelmRepositoryConfig, 'url' | 'type'> & {
|
|
6
|
+
readonly url?: string;
|
|
7
|
+
}): Enhanced<HelmRepositorySpec, HelmRepositoryStatus>;
|
|
8
|
+
export declare function envoyGatewayHelmRelease(config: EnvoyGatewayHelmReleaseConfig): Enhanced<HelmReleaseSpec<Record<string, unknown>>, HelmReleaseStatus>;
|
|
9
|
+
export declare function envoyAIGatewayCrdsHelmRelease(config: EnvoyGatewayHelmReleaseConfig): Enhanced<HelmReleaseSpec<Record<string, unknown>>, HelmReleaseStatus>;
|
|
10
|
+
export declare function envoyAIGatewayControllerHelmRelease(config: EnvoyGatewayHelmReleaseConfig): Enhanced<HelmReleaseSpec<Record<string, unknown>>, HelmReleaseStatus>;
|
|
11
|
+
//# sourceMappingURL=helm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helm.d.ts","sourceRoot":"","sources":["../../../../src/factories/envoy-ai-gateway/resources/helm.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAGL,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EAC1B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE9E,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,aAAa,CAAC;AAEjE,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,IAAI,CAAC,oBAAoB,EAAE,KAAK,GAAG,MAAM,CAAC,GAAG;IAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7E,QAAQ,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,CAMpD;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,6BAA6B,GACpC,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAEvE;AAED,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,6BAA6B,GACpC,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAEvE;AAED,wBAAgB,mCAAmC,CACjD,MAAM,EAAE,6BAA6B,GACpC,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAEvE"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { createHelmRepositoryReadinessEvaluator, helmRepository, } from '../../helm/index.js';
|
|
2
|
+
import { helmRelease } from '../../helm/helm-release.js';
|
|
3
|
+
import { DEFAULT_ENVOY_PROXY_REPOSITORY_URL } from '../constants.js';
|
|
4
|
+
export function envoyProxyHelmRepository(config) {
|
|
5
|
+
return helmRepository({
|
|
6
|
+
...config,
|
|
7
|
+
url: config.url ?? DEFAULT_ENVOY_PROXY_REPOSITORY_URL,
|
|
8
|
+
type: 'oci',
|
|
9
|
+
}).withReadinessEvaluator(createHelmRepositoryReadinessEvaluator('Envoy'));
|
|
10
|
+
}
|
|
11
|
+
export function envoyGatewayHelmRelease(config) {
|
|
12
|
+
return envoyHelmRelease(config, 'gateway-helm');
|
|
13
|
+
}
|
|
14
|
+
export function envoyAIGatewayCrdsHelmRelease(config) {
|
|
15
|
+
return envoyHelmRelease(config, 'ai-gateway-crds-helm');
|
|
16
|
+
}
|
|
17
|
+
export function envoyAIGatewayControllerHelmRelease(config) {
|
|
18
|
+
return envoyHelmRelease(config, 'ai-gateway-helm');
|
|
19
|
+
}
|
|
20
|
+
function envoyHelmRelease(config, chart) {
|
|
21
|
+
return helmRelease({
|
|
22
|
+
name: config.name,
|
|
23
|
+
namespace: config.namespace,
|
|
24
|
+
chart: {
|
|
25
|
+
repository: DEFAULT_ENVOY_PROXY_REPOSITORY_URL,
|
|
26
|
+
name: chart,
|
|
27
|
+
version: config.version,
|
|
28
|
+
},
|
|
29
|
+
sourceRef: {
|
|
30
|
+
name: config.repositoryName,
|
|
31
|
+
namespace: config.repositoryNamespace,
|
|
32
|
+
},
|
|
33
|
+
values: config.values,
|
|
34
|
+
...(config.valuesFrom ? { valuesFrom: config.valuesFrom } : {}),
|
|
35
|
+
install: {
|
|
36
|
+
timeout: '15m',
|
|
37
|
+
remediation: {
|
|
38
|
+
retries: 3,
|
|
39
|
+
remediateLastFailure: true,
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
upgrade: {
|
|
43
|
+
timeout: '15m',
|
|
44
|
+
remediation: {
|
|
45
|
+
retries: 3,
|
|
46
|
+
remediateLastFailure: true,
|
|
47
|
+
strategy: 'rollback',
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
driftDetection: { mode: 'enabled' },
|
|
51
|
+
...(config.id ? { id: config.id } : {}),
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=helm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helm.js","sourceRoot":"","sources":["../../../../src/factories/envoy-ai-gateway/resources/helm.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,sCAAsC,EACtC,cAAc,GAIf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD,OAAO,EAAE,kCAAkC,EAAE,MAAM,iBAAiB,CAAC;AAGrE,MAAM,UAAU,wBAAwB,CACtC,MAA8E;IAE9E,OAAO,cAAc,CAAC;QACpB,GAAG,MAAM;QACT,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI,kCAAkC;QACrD,IAAI,EAAE,KAAK;KACZ,CAAC,CAAC,sBAAsB,CAAC,sCAAsC,CAAC,OAAO,CAAC,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,MAAqC;IAErC,OAAO,gBAAgB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,MAAqC;IAErC,OAAO,gBAAgB,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,mCAAmC,CACjD,MAAqC;IAErC,OAAO,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,gBAAgB,CACvB,MAAqC,EACrC,KAAa;IAEb,OAAO,WAAW,CAA0B;QAC1C,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,KAAK,EAAE;YACL,UAAU,EAAE,kCAAkC;YAC9C,IAAI,EAAE,KAAK;YACX,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB;QACD,SAAS,EAAE;YACT,IAAI,EAAE,MAAM,CAAC,cAAc;YAC3B,SAAS,EAAE,MAAM,CAAC,mBAAmB;SACtC;QACD,MAAM,EAAE,MAAM,CAAC,MAAoD;QACnE,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,OAAO,EAAE;YACP,OAAO,EAAE,KAAK;YACd,WAAW,EAAE;gBACX,OAAO,EAAE,CAAC;gBACV,oBAAoB,EAAE,IAAI;aAC3B;SACF;QACD,OAAO,EAAE;YACP,OAAO,EAAE,KAAK;YACd,WAAW,EAAE;gBACX,OAAO,EAAE,CAAC;gBACV,oBAAoB,EAAE,IAAI;gBAC1B,QAAQ,EAAE,UAAU;aACrB;SACF;QACD,cAAc,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QACnC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/factories/envoy-ai-gateway/resources/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/factories/envoy-ai-gateway/resources/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC"}
|