@alienplatform/core 1.7.1 → 1.9.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/.turbo/turbo-build.log +12 -11
- package/dist/index.d.ts +783 -100
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +199 -33
- package/dist/index.js.map +1 -1
- package/dist/stack.js +579 -44
- package/dist/stack.js.map +1 -1
- package/dist/tests/index.js +1 -1
- package/package.json +1 -1
- package/src/__tests__/__snapshots__/stack.test.ts.snap +10 -4
- package/src/__tests__/error.test.ts +1 -1
- package/src/__tests__/stack.test.ts +184 -2
- package/src/compute-cluster.ts +211 -0
- package/src/container.ts +38 -26
- package/src/daemon.ts +79 -0
- package/src/generated/index.ts +42 -2
- package/src/generated/schemas/architecture.json +1 -0
- package/src/generated/schemas/capacityGroup.json +1 -0
- package/src/generated/schemas/capacityGroupScalePolicy.json +1 -0
- package/src/generated/schemas/computeChoiceRange.json +1 -0
- package/src/generated/schemas/computeCluster.json +1 -0
- package/src/generated/schemas/computePoolSelection.json +1 -0
- package/src/generated/schemas/computeSettings.json +1 -0
- package/src/generated/schemas/container.json +1 -1
- package/src/generated/schemas/containerOutputs.json +1 -1
- package/src/generated/schemas/containerPort.json +1 -1
- package/src/generated/schemas/daemon.json +1 -1
- package/src/generated/schemas/daemonOutputs.json +1 -1
- package/src/generated/schemas/daemonRuntime.json +1 -0
- package/src/generated/schemas/daemonRuntimeMount.json +1 -0
- package/src/generated/schemas/exposeProtocol.json +1 -1
- package/src/generated/schemas/gpuSpec.json +1 -0
- package/src/generated/schemas/machineProfile.json +1 -0
- package/src/generated/schemas/publicEndpoint.json +1 -0
- package/src/generated/schemas/publicEndpointOutput.json +1 -0
- package/src/generated/schemas/stack.json +1 -1
- package/src/generated/schemas/stackImportRequest.json +1 -1
- package/src/generated/schemas/stackImportResponse.json +1 -1
- package/src/generated/schemas/stackInputDefaultValue.json +1 -0
- package/src/generated/schemas/stackInputDefinition.json +1 -0
- package/src/generated/schemas/stackInputEnvironmentMapping.json +1 -0
- package/src/generated/schemas/stackInputEnvironmentVariableType.json +1 -0
- package/src/generated/schemas/stackInputKind.json +1 -0
- package/src/generated/schemas/stackInputProvider.json +1 -0
- package/src/generated/schemas/stackInputValidation.json +1 -0
- package/src/generated/schemas/stackSettings.json +1 -1
- package/src/generated/schemas/worker.json +1 -1
- package/src/generated/schemas/workerOutputs.json +1 -1
- package/src/generated/schemas/workerPublicEndpoint.json +1 -0
- package/src/generated/zod/architecture-schema.ts +13 -0
- package/src/generated/zod/capacity-group-scale-policy-schema.ts +27 -0
- package/src/generated/zod/capacity-group-schema.ts +27 -0
- package/src/generated/zod/compute-choice-range-schema.ts +17 -0
- package/src/generated/zod/compute-cluster-schema.ts +20 -0
- package/src/generated/zod/compute-pool-selection-schema.ts +22 -0
- package/src/generated/zod/compute-settings-schema.ts +18 -0
- package/src/generated/zod/container-outputs-schema.ts +5 -6
- package/src/generated/zod/container-port-schema.ts +1 -5
- package/src/generated/zod/container-schema.ts +7 -3
- package/src/generated/zod/daemon-outputs-schema.ts +4 -0
- package/src/generated/zod/daemon-runtime-mount-schema.ts +14 -0
- package/src/generated/zod/daemon-runtime-schema.ts +19 -0
- package/src/generated/zod/daemon-schema.ts +14 -2
- package/src/generated/zod/expose-protocol-schema.ts +2 -2
- package/src/generated/zod/gpu-spec-schema.ts +16 -0
- package/src/generated/zod/index.ts +42 -2
- package/src/generated/zod/machine-profile-schema.ts +25 -0
- package/src/generated/zod/public-endpoint-output-schema.ts +21 -0
- package/src/generated/zod/public-endpoint-schema.ts +22 -0
- package/src/generated/zod/stack-import-request-schema.ts +3 -0
- package/src/generated/zod/stack-input-default-value-schema.ts +25 -0
- package/src/generated/zod/stack-input-definition-schema.ts +43 -0
- package/src/generated/zod/stack-input-environment-mapping-schema.ts +20 -0
- package/src/generated/zod/stack-input-environment-variable-type-schema.ts +13 -0
- package/src/generated/zod/stack-input-kind-schema.ts +13 -0
- package/src/generated/zod/stack-input-provider-schema.ts +13 -0
- package/src/generated/zod/stack-input-validation-schema.ts +23 -0
- package/src/generated/zod/stack-schema.ts +4 -0
- package/src/generated/zod/stack-settings-schema.ts +5 -1
- package/src/generated/zod/worker-outputs-schema.ts +4 -5
- package/src/generated/zod/worker-public-endpoint-schema.ts +17 -0
- package/src/generated/zod/worker-schema.ts +4 -4
- package/src/index.ts +9 -0
- package/src/input.ts +380 -0
- package/src/stack.ts +19 -0
- package/src/worker.ts +24 -14
- package/src/generated/schemas/ingress.json +0 -1
- package/src/generated/zod/ingress-schema.ts +0 -13
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as
|
|
1
|
+
import { $ as QueueOutputsSchema, $n as AzureVaultImportDataSchema, $r as ServiceAccountHeartbeatStatusSchema, $t as DeploymentModelSchema, A as StackInputKindSchema, Ai as ObservedHealthSchema, An as CommandStatusResponseSchema, Ar as AzureBuildImportDataSchema, At as GcpServiceUsageActivationHeartbeatDataSchema, B as ResourceHeartbeatSchema, Bi as AgentStatusSchema, Bn as BuildHeartbeatDataSchema, Br as AwsServiceAccountImportDataSchema, Bt as GcpKvImportDataSchema, C as StorageEventSchema, Ci as LocalArtifactRegistryHeartbeatDataSchema, Cn as WorkloadReplicaStatusSchema, Cr as AzureContainerAppsEnvironmentImportDataSchema, Ct as HttpMethodSchema, D as StackInputDefinitionSchema, Di as AwsEcrRepositoryHeartbeatDataSchema, Dn as ComputeClusterHeartbeatDataSchema, Dr as AzureContainerAppsBuildHeartbeatDataSchema, Dt as GcpVpcNetworkHeartbeatDataSchema, E as StackSchema, Ei as AwsEcrArtifactRegistryHeartbeatDataSchema, En as ComputeClusterSchema, Er as AzureContainerAppsEnvironmentHeartbeatStatusSchema, Et as GcpWorkerImportDataSchema, F as UpdatesModeSchema, Fi as ResourceStatusSchema, Fn as CapacityGroupScalePolicySchema, Fr as NetworkHeartbeatStatusSchema, Ft as GcpRemoteStackManagementImportDataSchema, G as ServiceActivationHeartbeatDataSchema, Gn as GcpCloudBuildHeartbeatDataSchema, Gr as RemoteStackManagementHeartbeatStatusSchema, Gt as GcpBuildImportDataSchema, H as WorkerHeartbeatDataSchema, Hi as AlienErrorSchema, Hn as KubernetesEventSnapshotSchema, Hr as StorageHeartbeatStatusSchema, Ht as GcpComputeClusterImportDataSchema, I as TelemetryModeSchema, Ii as ResourceRefSchema, In as ComputeChoiceRangeSchema, Ir as AwsVaultImportDataSchema, It as GcpRemoteStackManagementHeartbeatDataSchema, J as RemoteStackManagementOutputsSchema, Jn as BodySpecSchema, Jr as VaultHeartbeatStatusSchema, Jt as EventStateSchema, K as ServiceAccountHeartbeatDataSchema, Kn as BuildConfigSchema, Kr as AwsQueueImportDataSchema, Kt as GcpArtifactRegistryImportDataSchema, L as ServiceAccountSchema, Li as ResourceLifecycleSchema, Ln as BuildStatusSchema, Lr as AwsStorageImportDataSchema, Lt as GcpQueueImportDataSchema, M as StackInputEnvironmentVariableTypeSchema, Mi as AlienEventSchema, Mn as CommandResponseSchema, Mr as AzureArtifactRegistryImportDataSchema, Mt as GcpServiceAccountImportDataSchema, N as StackInputDefaultValueSchema, Ni as StackStateSchema, Nn as CapacityGroupSchema, Nr as AwsWorkerImportDataSchema, Nt as GcpServiceAccountHeartbeatDataSchema, O as StackInputValidationSchema, Oi as ArtifactRegistryHeartbeatStatusSchema, On as LocalComputeClusterHeartbeatDataSchema, Or as AzureComputeClusterImportDataSchema, Ot as GcpVaultImportDataSchema, P as StackSettingsSchema, Pi as StackResourceStateSchema, Pn as MachineProfileSchema, Pr as AwsVpcNetworkHeartbeatDataSchema, Pt as GcpSecretManagerVaultHeartbeatDataSchema, Q as QueueSchema, Qn as AzureVnetNetworkHeartbeatDataSchema, Qr as AwsIamRoleServiceAccountHeartbeatDataSchema, Qt as DevStatusStateSchema, R as ServiceAccountOutputsSchema, Ri as ResourceTypeSchema, Rn as BuildSchema, Rr as AwsSqsQueueHeartbeatDataSchema, Rt as GcpPubSubQueueHeartbeatDataSchema, S as StorageEventsSchema, Si as ArtifactRegistryHeartbeatDataSchema, Sn as HorizonContainerHeartbeatDataSchema, Sr as AzureContainerAppsWorkerHeartbeatDataSchema, St as KubernetesNodeConditionStatusSchema, T as StackStatusSchema, Ti as AzureContainerRegistryHeartbeatDataSchema, Tn as ContainerAutoscalingSchema, Tr as AzureContainerAppsEnvironmentWorkloadProfileSchema, Tt as HeartbeatBackendSchema, U as VaultHeartbeatDataSchema, Un as KubernetesEventSourceSchema, Ur as AwsRemoteStackManagementImportDataSchema, Ut as GcpCloudStorageHeartbeatDataSchema, V as ResourceHeartbeatDataSchema, Vi as DevResourceInfoSchema, Vn as KubernetesBuildHeartbeatDataSchema, Vr as AwsS3StorageHeartbeatDataSchema, Vt as GcpFirestoreKvHeartbeatDataSchema, W as StorageHeartbeatDataSchema, Wn as KubernetesEventInvolvedObjectSchema, Wr as AwsRemoteStackManagementHeartbeatDataSchema, Wt as GcpCloudRunWorkerHeartbeatDataSchema, X as ReleaseRequestSchema, Xn as PresignedRequestBackendSchema, Xr as AwsLambdaWorkerHeartbeatDataSchema, Xt as ResponseHandlingSchema, Y as RemoteStackManagementHeartbeatDataSchema, Yn as PresignedRequestSchema, Yr as AwsNetworkImportDataSchema, Yt as EnvelopeSchema, Z as ReadinessProbeSchema, Zn as AzureWorkerImportDataSchema, Zr as AwsKvImportDataSchema, Zt as DevStatusSchema, _ as UploadCompleteResponseSchema, _i as BuildHeartbeatStatusSchema, _n as LocalRuntimeUnitKindSchema, _r as AzureQueueImportDataSchema, _t as KubernetesWorkerHeartbeatDataSchema, a as defineNumberInput, ai as ManagedRuntimeEventSnapshotSchema, an as DaemonCodeSchema, ar as AzureServiceBusQueueHeartbeatDataSchema, at as LocalWorkerHeartbeatDataSchema, b as StorageSchema, bi as ArtifactRegistrySchema, bn as KubernetesContainerHeartbeatDataSchema, br as AzureKvImportDataSchema, bt as KubernetesNodeUsageSchema, c as defineStringListInput, ci as AwsComputeClusterImportDataSchema, cn as CreateCommandRequestSchema, cr as AzureServiceActivationImportDataSchema, ct as LocalServiceAccountHeartbeatDataSchema, d as WorkerSchema, di as ObservedCountsSchema, dn as ExposeProtocolSchema, dr as ServiceActivationHeartbeatStatusSchema, dt as LeaseRequestSchema, ei as AwsDynamoDbKvHeartbeatDataSchema, en as DaemonSchema, er as AzureTableKvHeartbeatDataSchema, et as QueueMessageSchema, f as WorkerTriggerSchema, fi as ComputeClusterHeartbeatStatusSchema, fn as ContainerPortSchema, fr as AzureResourceGroupImportDataSchema, ft as LeaseInfoSchema, g as VaultOutputsSchema, gi as AwsCodeBuildHeartbeatDataSchema, gn as LocalRuntimeUnitStatusSchema, gr as AzureRemoteStackManagementHeartbeatDataSchema, gt as LocalKvHeartbeatDataSchema, h as VaultSchema, hi as MetricSampleSchema, hn as LocalContainerHeartbeatDataSchema, hr as AzureRemoteStackManagementImportDataSchema, ht as KvHeartbeatDataSchema, i as defineIntegerInput, ii as ManagedRuntimeUnitStatusSchema, in as KubernetesDaemonHeartbeatDataSchema, ir as AzureStorageAccountEndpointsSchema, it as PermissionSetSchema, j as StackInputEnvironmentMappingSchema, ji as HeartbeatIssueSeveritySchema, jn as CommandStateSchema, jr as AzureBlobStorageHeartbeatDataSchema, jt as GcpServiceActivationImportDataSchema, k as StackInputProviderSchema, ki as ProviderLifecycleStateSchema, kn as GcpComputeClusterHeartbeatDataSchema, kr as AzureComputeClusterHeartbeatDataSchema, kt as GcpStorageImportDataSchema, l as getStackInputDefinitions, li as AwsComputeClusterHeartbeatDataSchema, ln as ContainerSchema, lr as AzureServiceAccountImportDataSchema, lt as LocalQueueHeartbeatDataSchema, m as WorkerOutputsSchema, mi as ComputeCapacityRecommendationSchema, mn as ContainerHeartbeatDataSchema, mr as AzureResourceGroupHeartbeatStatusSchema, mt as KvOutputsSchema, n as defineBooleanInput, ni as AwsDynamoDbKeySchemaElementSchema, nn as DaemonHeartbeatDataSchema, nr as AzureStorageAccountImportDataSchema, nt as NetworkHeartbeatDataSchema, o as defineSecretInput, oi as ManagedRuntimeEventSourceSchema, on as CreateCommandResponseSchema, or as AzureServiceBusNamespaceImportDataSchema, ot as LocalVaultHeartbeatDataSchema, p as WorkerPublicEndpointSchema, pi as ComputeCapacityGroupStatusSchema, pn as ContainerOutputsSchema, pr as AzureResourceGroupHeartbeatDataSchema, pt as KvSchema, q as RemoteStackManagementSchema, qn as ComputeTypeSchema, qr as AwsParameterStoreVaultHeartbeatDataSchema, qt as EventChangeSchema, r as defineEnumInput, ri as WorkloadHeartbeatStatusSchema, rn as LocalDaemonHeartbeatDataSchema, rr as AzureStorageAccountHeartbeatDataSchema, rt as MessagePayloadSchema, s as defineStringInput, si as ManagedRuntimeEventInvolvedObjectSchema, sn as StorageUploadSchema, sr as AzureServiceBusNamespaceHeartbeatDataSchema, st as LocalStorageHeartbeatDataSchema, t as Stack, ti as KvHeartbeatStatusSchema, tn as DaemonOutputsSchema, tr as AzureStorageImportDataSchema, tt as QueueHeartbeatDataSchema, u as inputs, ui as ProviderFleetStatusSchema, un as PublicEndpointSchema, ur as AzureResourceProviderActivationHeartbeatDataSchema, ut as LeaseResponseSchema, v as UploadCompleteRequestSchema, vi as AwsBuildImportDataSchema, vn as LocalRuntimeEventSnapshotSchema, vr as AzureNetworkImportDataSchema, vt as KubernetesSecretVaultHeartbeatDataSchema, w as StorageEventTypeSchema, wi as GcpArtifactRegistryHeartbeatDataSchema, wn as ContainerCodeSchema, wr as AzureContainerAppsEnvironmentHeartbeatDataSchema, wt as HeartbeatsModeSchema, x as StorageOutputsSchema, xi as ArtifactRegistryOutputsSchema, xn as KubernetesPodRuntimeUnitStatusSchema, xr as AzureKeyVaultHeartbeatDataSchema, xt as KubernetesNodeResourcesSchema, y as SubmitResponseRequestSchema, yi as AwsArtifactRegistryImportDataSchema, yn as LocalRuntimeEventSubjectSchema, yr as AzureManagedIdentityServiceAccountHeartbeatDataSchema, yt as KubernetesClusterNodeStatusSchema, z as ScheduledEventSchema, zi as PlatformSchema, zn as BuildOutputsSchema, zr as QueueHeartbeatStatusSchema, zt as GcpNetworkImportDataSchema } from "./stack.js";
|
|
2
2
|
import * as z$1 from "zod/v4";
|
|
3
3
|
import { serializeError } from "serialize-error";
|
|
4
4
|
//#region src/resource.ts
|
|
@@ -104,6 +104,7 @@ var Worker = class {
|
|
|
104
104
|
_config = {
|
|
105
105
|
links: [],
|
|
106
106
|
triggers: [],
|
|
107
|
+
publicEndpoints: [],
|
|
107
108
|
environment: {}
|
|
108
109
|
};
|
|
109
110
|
/**
|
|
@@ -163,16 +164,18 @@ var Worker = class {
|
|
|
163
164
|
return this;
|
|
164
165
|
}
|
|
165
166
|
/**
|
|
166
|
-
*
|
|
167
|
-
*
|
|
168
|
-
*
|
|
169
|
-
*
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
167
|
+
* Exposes a named public HTTP endpoint for the worker.
|
|
168
|
+
*
|
|
169
|
+
* If no public endpoint is declared, the worker is private and only reachable
|
|
170
|
+
* through triggers, commands, or provider invocation APIs.
|
|
171
|
+
*/
|
|
172
|
+
publicEndpoint(name, options = {}) {
|
|
173
|
+
if (!this._config.publicEndpoints) this._config.publicEndpoints = [];
|
|
174
|
+
this._config.publicEndpoints.push({
|
|
175
|
+
name,
|
|
176
|
+
hostLabel: options.hostLabel,
|
|
177
|
+
wildcardSubdomains: options.wildcardSubdomains ?? false
|
|
178
|
+
});
|
|
176
179
|
return this;
|
|
177
180
|
}
|
|
178
181
|
/**
|
|
@@ -210,7 +213,7 @@ var Worker = class {
|
|
|
210
213
|
/**
|
|
211
214
|
* Configures a readiness probe for the worker.
|
|
212
215
|
* The probe will be executed after provisioning/update to verify the worker is ready.
|
|
213
|
-
* Only works with workers that
|
|
216
|
+
* Only works with workers that declare a public endpoint.
|
|
214
217
|
*
|
|
215
218
|
* @example
|
|
216
219
|
* ```typescript
|
|
@@ -221,7 +224,7 @@ var Worker = class {
|
|
|
221
224
|
*
|
|
222
225
|
* const func = new Worker("my-api")
|
|
223
226
|
* .code({ type: "image", image: "my-api:latest" })
|
|
224
|
-
* .
|
|
227
|
+
* .publicEndpoint("api")
|
|
225
228
|
* .readinessProbe(probe)
|
|
226
229
|
* .build();
|
|
227
230
|
* ```
|
|
@@ -302,6 +305,7 @@ var Container = class {
|
|
|
302
305
|
_config = {
|
|
303
306
|
links: [],
|
|
304
307
|
ports: [],
|
|
308
|
+
publicEndpoints: [],
|
|
305
309
|
environment: {},
|
|
306
310
|
stateful: false
|
|
307
311
|
};
|
|
@@ -460,34 +464,35 @@ var Container = class {
|
|
|
460
464
|
return this;
|
|
461
465
|
}
|
|
462
466
|
/**
|
|
463
|
-
* Exposes a
|
|
467
|
+
* Exposes a named public endpoint for a container port.
|
|
468
|
+
*
|
|
469
|
+
* Endpoint names are the stable contract for URLs, DNS, and runtime
|
|
470
|
+
* environment injection.
|
|
471
|
+
*
|
|
472
|
+
* @param name Endpoint name, unique within this container.
|
|
464
473
|
* @param port Port number to expose.
|
|
465
|
-
* @param
|
|
474
|
+
* @param options "http"/"tcp" or endpoint options.
|
|
466
475
|
* @returns The Container builder instance.
|
|
467
476
|
*/
|
|
468
|
-
|
|
477
|
+
publicEndpoint(name, port, options = "http") {
|
|
469
478
|
if (!this._config.ports) this._config.ports = [];
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
479
|
+
if (!this._config.publicEndpoints) this._config.publicEndpoints = [];
|
|
480
|
+
const endpoint = typeof options === "string" ? {
|
|
481
|
+
protocol: options,
|
|
482
|
+
hostLabel: void 0,
|
|
483
|
+
wildcardSubdomains: false
|
|
484
|
+
} : options;
|
|
485
|
+
if (!this._config.ports.some((p) => p.port === port)) this._config.ports.push({ port });
|
|
486
|
+
this._config.publicEndpoints.push({
|
|
487
|
+
name,
|
|
473
488
|
port,
|
|
474
|
-
|
|
489
|
+
protocol: endpoint.protocol,
|
|
490
|
+
hostLabel: endpoint.hostLabel,
|
|
491
|
+
wildcardSubdomains: endpoint.wildcardSubdomains ?? false
|
|
475
492
|
});
|
|
476
493
|
return this;
|
|
477
494
|
}
|
|
478
495
|
/**
|
|
479
|
-
* Convenience method to expose the first/primary port publicly.
|
|
480
|
-
* Must be called after .port() or .ports().
|
|
481
|
-
* @param protocol "http" for HTTPS with TLS termination, "tcp" for TCP passthrough.
|
|
482
|
-
* @returns The Container builder instance.
|
|
483
|
-
*/
|
|
484
|
-
expose(protocol) {
|
|
485
|
-
if (!this._config.ports || this._config.ports.length === 0) throw new Error("Cannot expose port: no ports defined. Call .port() first.");
|
|
486
|
-
if (!this._config.ports[0]) throw new Error("Cannot expose port: ports array is empty");
|
|
487
|
-
this._config.ports[0].expose = protocol;
|
|
488
|
-
return this;
|
|
489
|
-
}
|
|
490
|
-
/**
|
|
491
496
|
* Sets environment variables for the container.
|
|
492
497
|
* @param vars Key-value pairs of environment variables.
|
|
493
498
|
* @returns The Container builder instance.
|
|
@@ -607,6 +612,117 @@ var Container = class {
|
|
|
607
612
|
}
|
|
608
613
|
};
|
|
609
614
|
//#endregion
|
|
615
|
+
//#region src/compute-cluster.ts
|
|
616
|
+
/**
|
|
617
|
+
* Declares a ComputeCluster — the setup-owned machine boundary for daemons and
|
|
618
|
+
* containers. Each capacity group inside the cluster becomes a separate
|
|
619
|
+
* Auto Scaling Group (AWS), Managed Instance Group (GCP), or VM Scale Set
|
|
620
|
+
* (Azure). Daemons reference a cluster via `daemon.cluster(...)` and (when
|
|
621
|
+
* the cluster has more than one capacity group) a specific group via
|
|
622
|
+
* `daemon.pool(...)`.
|
|
623
|
+
*
|
|
624
|
+
* Application source declares portable pool requirements. Provider machine
|
|
625
|
+
* names are selected later through deployment settings.
|
|
626
|
+
*/
|
|
627
|
+
var ComputeCluster = class {
|
|
628
|
+
_config = { capacityGroups: [] };
|
|
629
|
+
constructor(id) {
|
|
630
|
+
this._config.id = id;
|
|
631
|
+
}
|
|
632
|
+
/**
|
|
633
|
+
* Returns the resource type for permission targets that apply to all
|
|
634
|
+
* compute-cluster resources.
|
|
635
|
+
*/
|
|
636
|
+
static any() {
|
|
637
|
+
return "compute-cluster";
|
|
638
|
+
}
|
|
639
|
+
pool(groupId, config) {
|
|
640
|
+
const { minSize, maxSize } = selectedScaleBounds(config.scale);
|
|
641
|
+
this._config.capacityGroups.push({
|
|
642
|
+
groupId,
|
|
643
|
+
profile: machineProfileFromRequirements(config.requirements),
|
|
644
|
+
minSize,
|
|
645
|
+
maxSize,
|
|
646
|
+
scalePolicy: scalePolicyFromInput(config.scale),
|
|
647
|
+
nestedVirtualization: config.requirements.nestedVirtualization
|
|
648
|
+
});
|
|
649
|
+
return this;
|
|
650
|
+
}
|
|
651
|
+
/**
|
|
652
|
+
* Sets the container CIDR block used for inter-container networking inside
|
|
653
|
+
* the cluster. Each machine gets a /24 subnet carved from this range.
|
|
654
|
+
* Defaults to 10.244.0.0/16 if not specified.
|
|
655
|
+
*/
|
|
656
|
+
containerCidr(cidr) {
|
|
657
|
+
this._config.containerCidr = cidr;
|
|
658
|
+
return this;
|
|
659
|
+
}
|
|
660
|
+
/**
|
|
661
|
+
* Builds and validates the cluster configuration.
|
|
662
|
+
*/
|
|
663
|
+
build() {
|
|
664
|
+
return new Resource({
|
|
665
|
+
type: "compute-cluster",
|
|
666
|
+
...ComputeClusterSchema.parse(this._config)
|
|
667
|
+
});
|
|
668
|
+
}
|
|
669
|
+
};
|
|
670
|
+
function selectedScaleBounds(scale) {
|
|
671
|
+
if (scale.type === "fixed") {
|
|
672
|
+
const machines = defaultChoice(scale.machines);
|
|
673
|
+
return {
|
|
674
|
+
minSize: machines,
|
|
675
|
+
maxSize: machines
|
|
676
|
+
};
|
|
677
|
+
}
|
|
678
|
+
return {
|
|
679
|
+
minSize: defaultChoice(scale.min),
|
|
680
|
+
maxSize: defaultChoice(scale.max)
|
|
681
|
+
};
|
|
682
|
+
}
|
|
683
|
+
function scalePolicyFromInput(scale) {
|
|
684
|
+
if (scale.type === "fixed") return {
|
|
685
|
+
type: "fixed",
|
|
686
|
+
machines: choiceRange(scale.machines)
|
|
687
|
+
};
|
|
688
|
+
return {
|
|
689
|
+
type: "autoscale",
|
|
690
|
+
min: choiceRange(scale.min),
|
|
691
|
+
max: choiceRange(scale.max)
|
|
692
|
+
};
|
|
693
|
+
}
|
|
694
|
+
function choiceRange(choice) {
|
|
695
|
+
if (typeof choice === "number") return {
|
|
696
|
+
min: choice,
|
|
697
|
+
max: choice,
|
|
698
|
+
default: choice
|
|
699
|
+
};
|
|
700
|
+
return choice;
|
|
701
|
+
}
|
|
702
|
+
function defaultChoice(choice) {
|
|
703
|
+
if (typeof choice === "number") return choice;
|
|
704
|
+
return choice.default;
|
|
705
|
+
}
|
|
706
|
+
function machineProfileFromRequirements(requirements) {
|
|
707
|
+
return {
|
|
708
|
+
cpu: typeof requirements.cpu === "number" ? `${requirements.cpu}` : requirements.cpu,
|
|
709
|
+
memoryBytes: parseQuantityBytes(requirements.memory),
|
|
710
|
+
ephemeralStorageBytes: parseQuantityBytes(requirements.ephemeralStorage ?? "20Gi"),
|
|
711
|
+
architecture: requirements.architecture,
|
|
712
|
+
gpu: requirements.accelerators?.[0] ? {
|
|
713
|
+
type: requirements.accelerators[0].type,
|
|
714
|
+
count: requirements.accelerators[0].count
|
|
715
|
+
} : void 0
|
|
716
|
+
};
|
|
717
|
+
}
|
|
718
|
+
function parseQuantityBytes(value) {
|
|
719
|
+
const match = value.match(/^([0-9]+(?:\.[0-9]+)?)(Ki|Mi|Gi|Ti|k|M|G|T)?$/);
|
|
720
|
+
if (!match) throw new Error(`Invalid memory/storage quantity: ${value}`);
|
|
721
|
+
const amount = Number(match[1]);
|
|
722
|
+
const suffix = match[2];
|
|
723
|
+
return Math.round(amount * (suffix === "Ti" ? 1024 ** 4 : suffix === "Gi" ? 1024 ** 3 : suffix === "Mi" ? 1024 ** 2 : suffix === "Ki" ? 1024 : suffix === "T" ? 1e3 ** 4 : suffix === "G" ? 1e3 ** 3 : suffix === "M" ? 1e3 ** 2 : suffix === "k" ? 1e3 : 1));
|
|
724
|
+
}
|
|
725
|
+
//#endregion
|
|
610
726
|
//#region src/daemon.ts
|
|
611
727
|
/**
|
|
612
728
|
* Represents a resident process that runs once per eligible machine or node.
|
|
@@ -617,6 +733,7 @@ var Container = class {
|
|
|
617
733
|
var Daemon = class {
|
|
618
734
|
_config = {
|
|
619
735
|
links: [],
|
|
736
|
+
publicEndpoints: [],
|
|
620
737
|
environment: {},
|
|
621
738
|
cpu: {
|
|
622
739
|
min: "0.1",
|
|
@@ -695,6 +812,55 @@ var Daemon = class {
|
|
|
695
812
|
return this;
|
|
696
813
|
}
|
|
697
814
|
/**
|
|
815
|
+
* Sets backend runtime options for trusted daemon infrastructure.
|
|
816
|
+
*
|
|
817
|
+
* Use this only for daemons that intentionally need host-level access, such
|
|
818
|
+
* as a privileged loader that installs or supervises a native host process.
|
|
819
|
+
*/
|
|
820
|
+
runtime(runtime) {
|
|
821
|
+
this._config.runtime = runtime;
|
|
822
|
+
return this;
|
|
823
|
+
}
|
|
824
|
+
/**
|
|
825
|
+
* Exposes a named public endpoint for a daemon port.
|
|
826
|
+
*/
|
|
827
|
+
publicEndpoint(name, port, options = "http") {
|
|
828
|
+
if (!this._config.publicEndpoints) this._config.publicEndpoints = [];
|
|
829
|
+
const endpoint = typeof options === "string" ? {
|
|
830
|
+
protocol: options,
|
|
831
|
+
hostLabel: void 0,
|
|
832
|
+
wildcardSubdomains: false
|
|
833
|
+
} : options;
|
|
834
|
+
const publicEndpoint = {
|
|
835
|
+
name,
|
|
836
|
+
port,
|
|
837
|
+
protocol: endpoint.protocol,
|
|
838
|
+
hostLabel: endpoint.hostLabel,
|
|
839
|
+
wildcardSubdomains: endpoint.wildcardSubdomains ?? false
|
|
840
|
+
};
|
|
841
|
+
this._config.publicEndpoints.push(publicEndpoint);
|
|
842
|
+
return this;
|
|
843
|
+
}
|
|
844
|
+
/**
|
|
845
|
+
* Configures the HTTP health check used by public daemon endpoint load balancers.
|
|
846
|
+
*/
|
|
847
|
+
healthCheck(config) {
|
|
848
|
+
this._config.healthCheck = config;
|
|
849
|
+
return this;
|
|
850
|
+
}
|
|
851
|
+
/**
|
|
852
|
+
* Configures readiness probe (alias for healthCheck).
|
|
853
|
+
*/
|
|
854
|
+
readinessProbe(config) {
|
|
855
|
+
this._config.healthCheck = {
|
|
856
|
+
path: config.path,
|
|
857
|
+
method: config.method,
|
|
858
|
+
timeoutSeconds: 1,
|
|
859
|
+
failureThreshold: 3
|
|
860
|
+
};
|
|
861
|
+
return this;
|
|
862
|
+
}
|
|
863
|
+
/**
|
|
698
864
|
* Sets key-value pairs as environment variables for the daemon.
|
|
699
865
|
* @param env A map of environment variable names to their values.
|
|
700
866
|
* @returns The Daemon builder instance.
|
|
@@ -1730,6 +1896,6 @@ function getResourceOutputs(params) {
|
|
|
1730
1896
|
return outputs.data;
|
|
1731
1897
|
}
|
|
1732
1898
|
//#endregion
|
|
1733
|
-
export { AgentStatusSchema, AlienError, AlienErrorSchema as AlienErrorOptionsSchema, AlienEventSchema, ArtifactRegistry, ArtifactRegistrySchema as ArtifactRegistryConfigSchema, ArtifactRegistryHeartbeatDataSchema, ArtifactRegistryHeartbeatStatusSchema, AwsArtifactRegistryImportDataSchema, AwsBuildImportDataSchema, AwsCodeBuildHeartbeatDataSchema, AwsComputeClusterHeartbeatDataSchema, AwsComputeClusterImportDataSchema, AwsDynamoDbKeySchemaElementSchema, AwsDynamoDbKvHeartbeatDataSchema, AwsEcrArtifactRegistryHeartbeatDataSchema, AwsEcrRepositoryHeartbeatDataSchema, AwsIamRoleServiceAccountHeartbeatDataSchema, AwsKvImportDataSchema, AwsLambdaWorkerHeartbeatDataSchema, AwsNetworkImportDataSchema, AwsParameterStoreVaultHeartbeatDataSchema, AwsQueueImportDataSchema, AwsRemoteStackManagementHeartbeatDataSchema, AwsRemoteStackManagementImportDataSchema, AwsS3StorageHeartbeatDataSchema, AwsServiceAccountImportDataSchema, AwsSqsQueueHeartbeatDataSchema, AwsStorageImportDataSchema, AwsVaultImportDataSchema, AwsVpcNetworkHeartbeatDataSchema, AwsWorkerImportDataSchema, AzureArtifactRegistryImportDataSchema, AzureBlobStorageHeartbeatDataSchema, AzureBuildImportDataSchema, AzureComputeClusterHeartbeatDataSchema, AzureComputeClusterImportDataSchema, AzureContainerAppsBuildHeartbeatDataSchema, AzureContainerAppsEnvironmentHeartbeatDataSchema, AzureContainerAppsEnvironmentHeartbeatStatusSchema, AzureContainerAppsEnvironmentImportDataSchema, AzureContainerAppsEnvironmentWorkloadProfileSchema, AzureContainerAppsWorkerHeartbeatDataSchema, AzureContainerRegistryHeartbeatDataSchema, AzureKeyVaultHeartbeatDataSchema, AzureKvImportDataSchema, AzureManagedIdentityServiceAccountHeartbeatDataSchema, AzureNetworkImportDataSchema, AzureQueueImportDataSchema, AzureRemoteStackManagementHeartbeatDataSchema, AzureRemoteStackManagementImportDataSchema, AzureResourceGroupHeartbeatDataSchema, AzureResourceGroupHeartbeatStatusSchema, AzureResourceGroupImportDataSchema, AzureResourceProviderActivationHeartbeatDataSchema, AzureServiceAccountImportDataSchema, AzureServiceActivationImportDataSchema, AzureServiceBusNamespaceHeartbeatDataSchema, AzureServiceBusNamespaceImportDataSchema, AzureServiceBusQueueHeartbeatDataSchema, AzureStorageAccountEndpointsSchema, AzureStorageAccountHeartbeatDataSchema, AzureStorageAccountImportDataSchema, AzureStorageImportDataSchema, AzureTableKvHeartbeatDataSchema, AzureVaultImportDataSchema, AzureVnetNetworkHeartbeatDataSchema, AzureWorkerImportDataSchema, BodySpecSchema, Build, BuildConfigSchema, BuildHeartbeatDataSchema, BuildHeartbeatStatusSchema, BuildOutputsSchema, BuildStatusSchema, CommandResponseSchema, CommandStateSchema, CommandStatusResponseSchema, ComputeCapacityGroupStatusSchema, ComputeCapacityRecommendationSchema, ComputeClusterHeartbeatDataSchema, ComputeClusterHeartbeatStatusSchema, ComputeTypeSchema, Container, ContainerAutoscalingSchema, ContainerCodeSchema, ContainerSchema as ContainerConfigSchema, ContainerHeartbeatDataSchema, ContainerPortSchema, CreateCommandRequestSchema, CreateCommandResponseSchema, Daemon, DaemonCodeSchema, DaemonSchema as DaemonConfigSchema, DaemonHeartbeatDataSchema, DaemonOutputsSchema, DeploymentModelSchema, DevResourceInfoSchema, DevStatusSchema, DevStatusStateSchema, EnvelopeSchema, EventChangeSchema, EventStateSchema, ExposeProtocolSchema, GcpArtifactRegistryHeartbeatDataSchema, GcpArtifactRegistryImportDataSchema, GcpBuildImportDataSchema, GcpCloudBuildHeartbeatDataSchema, GcpCloudRunWorkerHeartbeatDataSchema, GcpCloudStorageHeartbeatDataSchema, GcpComputeClusterHeartbeatDataSchema, GcpComputeClusterImportDataSchema, GcpFirestoreKvHeartbeatDataSchema, GcpKvImportDataSchema, GcpNetworkImportDataSchema, GcpPubSubQueueHeartbeatDataSchema, GcpQueueImportDataSchema, GcpRemoteStackManagementHeartbeatDataSchema, GcpRemoteStackManagementImportDataSchema, GcpSecretManagerVaultHeartbeatDataSchema, GcpServiceAccountHeartbeatDataSchema, GcpServiceAccountImportDataSchema, GcpServiceActivationImportDataSchema, GcpServiceUsageActivationHeartbeatDataSchema, GcpStorageImportDataSchema, GcpVaultImportDataSchema, GcpVpcNetworkHeartbeatDataSchema, GcpWorkerImportDataSchema, HeartbeatBackendSchema, HeartbeatIssueSeveritySchema, HeartbeatsModeSchema, HorizonContainerHeartbeatDataSchema, HttpMethodSchema,
|
|
1899
|
+
export { AgentStatusSchema, AlienError, AlienErrorSchema as AlienErrorOptionsSchema, AlienEventSchema, ArtifactRegistry, ArtifactRegistrySchema as ArtifactRegistryConfigSchema, ArtifactRegistryHeartbeatDataSchema, ArtifactRegistryHeartbeatStatusSchema, AwsArtifactRegistryImportDataSchema, AwsBuildImportDataSchema, AwsCodeBuildHeartbeatDataSchema, AwsComputeClusterHeartbeatDataSchema, AwsComputeClusterImportDataSchema, AwsDynamoDbKeySchemaElementSchema, AwsDynamoDbKvHeartbeatDataSchema, AwsEcrArtifactRegistryHeartbeatDataSchema, AwsEcrRepositoryHeartbeatDataSchema, AwsIamRoleServiceAccountHeartbeatDataSchema, AwsKvImportDataSchema, AwsLambdaWorkerHeartbeatDataSchema, AwsNetworkImportDataSchema, AwsParameterStoreVaultHeartbeatDataSchema, AwsQueueImportDataSchema, AwsRemoteStackManagementHeartbeatDataSchema, AwsRemoteStackManagementImportDataSchema, AwsS3StorageHeartbeatDataSchema, AwsServiceAccountImportDataSchema, AwsSqsQueueHeartbeatDataSchema, AwsStorageImportDataSchema, AwsVaultImportDataSchema, AwsVpcNetworkHeartbeatDataSchema, AwsWorkerImportDataSchema, AzureArtifactRegistryImportDataSchema, AzureBlobStorageHeartbeatDataSchema, AzureBuildImportDataSchema, AzureComputeClusterHeartbeatDataSchema, AzureComputeClusterImportDataSchema, AzureContainerAppsBuildHeartbeatDataSchema, AzureContainerAppsEnvironmentHeartbeatDataSchema, AzureContainerAppsEnvironmentHeartbeatStatusSchema, AzureContainerAppsEnvironmentImportDataSchema, AzureContainerAppsEnvironmentWorkloadProfileSchema, AzureContainerAppsWorkerHeartbeatDataSchema, AzureContainerRegistryHeartbeatDataSchema, AzureKeyVaultHeartbeatDataSchema, AzureKvImportDataSchema, AzureManagedIdentityServiceAccountHeartbeatDataSchema, AzureNetworkImportDataSchema, AzureQueueImportDataSchema, AzureRemoteStackManagementHeartbeatDataSchema, AzureRemoteStackManagementImportDataSchema, AzureResourceGroupHeartbeatDataSchema, AzureResourceGroupHeartbeatStatusSchema, AzureResourceGroupImportDataSchema, AzureResourceProviderActivationHeartbeatDataSchema, AzureServiceAccountImportDataSchema, AzureServiceActivationImportDataSchema, AzureServiceBusNamespaceHeartbeatDataSchema, AzureServiceBusNamespaceImportDataSchema, AzureServiceBusQueueHeartbeatDataSchema, AzureStorageAccountEndpointsSchema, AzureStorageAccountHeartbeatDataSchema, AzureStorageAccountImportDataSchema, AzureStorageImportDataSchema, AzureTableKvHeartbeatDataSchema, AzureVaultImportDataSchema, AzureVnetNetworkHeartbeatDataSchema, AzureWorkerImportDataSchema, BodySpecSchema, Build, BuildConfigSchema, BuildHeartbeatDataSchema, BuildHeartbeatStatusSchema, BuildOutputsSchema, BuildStatusSchema, CapacityGroupScalePolicySchema, CapacityGroupSchema, CommandResponseSchema, CommandStateSchema, CommandStatusResponseSchema, ComputeCapacityGroupStatusSchema, ComputeCapacityRecommendationSchema, ComputeChoiceRangeSchema, ComputeCluster, ComputeClusterSchema as ComputeClusterConfigSchema, ComputeClusterHeartbeatDataSchema, ComputeClusterHeartbeatStatusSchema, ComputeTypeSchema, Container, ContainerAutoscalingSchema, ContainerCodeSchema, ContainerSchema as ContainerConfigSchema, ContainerHeartbeatDataSchema, ContainerPortSchema, CreateCommandRequestSchema, CreateCommandResponseSchema, Daemon, DaemonCodeSchema, DaemonSchema as DaemonConfigSchema, DaemonHeartbeatDataSchema, DaemonOutputsSchema, DeploymentModelSchema, DevResourceInfoSchema, DevStatusSchema, DevStatusStateSchema, EnvelopeSchema, EventChangeSchema, EventStateSchema, ExposeProtocolSchema, GcpArtifactRegistryHeartbeatDataSchema, GcpArtifactRegistryImportDataSchema, GcpBuildImportDataSchema, GcpCloudBuildHeartbeatDataSchema, GcpCloudRunWorkerHeartbeatDataSchema, GcpCloudStorageHeartbeatDataSchema, GcpComputeClusterHeartbeatDataSchema, GcpComputeClusterImportDataSchema, GcpFirestoreKvHeartbeatDataSchema, GcpKvImportDataSchema, GcpNetworkImportDataSchema, GcpPubSubQueueHeartbeatDataSchema, GcpQueueImportDataSchema, GcpRemoteStackManagementHeartbeatDataSchema, GcpRemoteStackManagementImportDataSchema, GcpSecretManagerVaultHeartbeatDataSchema, GcpServiceAccountHeartbeatDataSchema, GcpServiceAccountImportDataSchema, GcpServiceActivationImportDataSchema, GcpServiceUsageActivationHeartbeatDataSchema, GcpStorageImportDataSchema, GcpVaultImportDataSchema, GcpVpcNetworkHeartbeatDataSchema, GcpWorkerImportDataSchema, HeartbeatBackendSchema, HeartbeatIssueSeveritySchema, HeartbeatsModeSchema, HorizonContainerHeartbeatDataSchema, HttpMethodSchema, KubernetesBuildHeartbeatDataSchema, KubernetesClusterNodeStatusSchema, KubernetesContainerHeartbeatDataSchema, KubernetesDaemonHeartbeatDataSchema, KubernetesEventInvolvedObjectSchema, KubernetesEventSnapshotSchema, KubernetesEventSourceSchema, KubernetesNodeConditionStatusSchema, KubernetesNodeResourcesSchema, KubernetesNodeUsageSchema, KubernetesPodRuntimeUnitStatusSchema, KubernetesSecretVaultHeartbeatDataSchema, KubernetesWorkerHeartbeatDataSchema, Kv, KvSchema as KvConfigSchema, KvHeartbeatDataSchema, KvHeartbeatStatusSchema, LeaseInfoSchema, LeaseRequestSchema, LeaseResponseSchema, LocalArtifactRegistryHeartbeatDataSchema, LocalComputeClusterHeartbeatDataSchema, LocalContainerHeartbeatDataSchema, LocalDaemonHeartbeatDataSchema, LocalKvHeartbeatDataSchema, LocalQueueHeartbeatDataSchema, LocalRuntimeEventSnapshotSchema, LocalRuntimeEventSubjectSchema, LocalRuntimeUnitKindSchema, LocalRuntimeUnitStatusSchema, LocalServiceAccountHeartbeatDataSchema, LocalStorageHeartbeatDataSchema, LocalVaultHeartbeatDataSchema, LocalWorkerHeartbeatDataSchema, MachineProfileSchema, ManagedRuntimeEventInvolvedObjectSchema, ManagedRuntimeEventSnapshotSchema, ManagedRuntimeEventSourceSchema, ManagedRuntimeUnitStatusSchema, MessagePayloadSchema, MetricSampleSchema, NetworkHeartbeatDataSchema, NetworkHeartbeatStatusSchema, ObservedCountsSchema, ObservedHealthSchema, PermissionSetSchema, PlatformSchema, PresignedRequestBackendSchema, PresignedRequestSchema, ProviderFleetStatusSchema, ProviderLifecycleStateSchema, PublicEndpointSchema, Queue, QueueSchema as QueueConfigSchema, QueueHeartbeatDataSchema, QueueHeartbeatStatusSchema, QueueMessageSchema, ReadinessProbeSchema, ReleaseRequestSchema, RemoteStackManagementHeartbeatDataSchema, RemoteStackManagementHeartbeatStatusSchema, Resource, ResourceHeartbeatDataSchema, ResourceHeartbeatSchema, ResourceLifecycleSchema, ResourceNotFoundError, ResourceOutputsParseError, ResourceRefSchema, ResourceSchemaMapping, ResourceStatusSchema, ResourceTypeSchema, ResponseHandlingSchema, ScheduledEventSchema, ServiceAccount, ServiceAccountSchema as ServiceAccountConfigSchema, ServiceAccountHeartbeatDataSchema, ServiceAccountHeartbeatStatusSchema, ServiceAccountOutputsSchema, ServiceActivationHeartbeatDataSchema, ServiceActivationHeartbeatStatusSchema, Stack, StackInputDefaultValueSchema, StackInputDefinitionSchema, StackInputEnvironmentMappingSchema, StackInputEnvironmentVariableTypeSchema, StackInputKindSchema, StackInputProviderSchema, StackInputValidationSchema, StackResourceStateSchema, StackSchema, StackSettingsSchema, StackStateSchema, StackStatusSchema, Storage, StorageSchema as StorageConfigSchema, StorageEventSchema, StorageEventTypeSchema, StorageEventsSchema, StorageHeartbeatDataSchema, StorageHeartbeatStatusSchema, StorageUploadSchema, SubmitResponseRequestSchema, TelemetryModeSchema, UnexpectedResourceTypeError, UpdatesModeSchema, UploadCompleteRequestSchema, UploadCompleteResponseSchema, Vault, VaultSchema as VaultConfigSchema, VaultHeartbeatDataSchema, VaultHeartbeatStatusSchema, Worker, WorkerSchema as WorkerConfigSchema, WorkerHeartbeatDataSchema, WorkerOutputsSchema, WorkerPublicEndpointSchema, WorkerTriggerSchema, WorkloadHeartbeatStatusSchema, WorkloadReplicaStatusSchema, defineBooleanInput as boolean, defineError, defineEnumInput as enum, getResourceOutputs, getStackInputDefinitions, inputs, defineIntegerInput as integer, defineNumberInput as number, defineSecretInput as secret, defineStringInput as string, defineStringListInput as stringList };
|
|
1734
1900
|
|
|
1735
1901
|
//# sourceMappingURL=index.js.map
|