@intentius/chant-lexicon-cpln 0.124.40 → 0.124.41
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/generated/index.d.ts +4 -0
- package/dist/generated/index.d.ts.map +1 -1
- package/dist/generated/index.js +4 -0
- package/dist/integrity.json +4 -4
- package/dist/manifest.json +1 -1
- package/dist/meta.json +534 -114
- package/dist/okf/types/Secret.md +2 -2
- package/dist/types/index.d.ts +71 -10
- package/package.json +2 -2
- package/src/generated/index.d.ts +71 -10
- package/src/generated/index.ts +4 -0
- package/src/generated/lexicon-cpln.json +534 -114
package/dist/okf/types/Secret.md
CHANGED
|
@@ -11,8 +11,8 @@ resource_type: Cpln::Core::Secret
|
|
|
11
11
|
## Properties
|
|
12
12
|
|
|
13
13
|
- `name` (`string`, required)
|
|
14
|
-
- `type` (`"aws" | "azure-connector" | "azure-sdk" | "dictionary" | "docker" | "ecr" | "gcp" | "keypair" | "nats-account" | "opaque" | "tls" | "userpass"`, required)
|
|
15
|
-
- `data` (`SecretOpaque | SecretTls | string | SecretAwskey | Record<string, unknown> | SecretUserpass | SecretKeypair`, optional)
|
|
14
|
+
- `type` (`"aws" | "azure-connector" | "azure-sdk" | "dictionary" | "docker" | "ecr" | "gcp" | "keypair" | "nats-account" | "opaque" | "tls" | "userpass"`, required): The kind of secret, which determines the shape of data
|
|
15
|
+
- `data` (`SecretOpaque | SecretTls | string | SecretAwskey | Record<string, unknown> | SecretUserpass | SecretKeypair`, optional): The secret contents, shaped according to type
|
|
16
16
|
- `description` (`string`, optional)
|
|
17
17
|
- `tags` (`Record<string, string>`, optional)
|
|
18
18
|
|
package/dist/types/index.d.ts
CHANGED
|
@@ -94,7 +94,9 @@ export declare class Policy {
|
|
|
94
94
|
export declare class Secret {
|
|
95
95
|
constructor(props: {
|
|
96
96
|
name: string;
|
|
97
|
+
/** The kind of secret, which determines the shape of data */
|
|
97
98
|
type: "aws" | "azure-connector" | "azure-sdk" | "dictionary" | "docker" | "ecr" | "gcp" | "keypair" | "nats-account" | "opaque" | "tls" | "userpass";
|
|
99
|
+
/** The secret contents, shaped according to type */
|
|
98
100
|
data?: SecretOpaque | SecretTls | string | SecretAwskey | Record<string, unknown> | SecretUserpass | SecretKeypair;
|
|
99
101
|
description?: string;
|
|
100
102
|
tags?: Record<string, string>;
|
|
@@ -658,40 +660,55 @@ export declare class QuerySpecTerms {
|
|
|
658
660
|
|
|
659
661
|
export declare class SecretAwskey {
|
|
660
662
|
constructor(props: {
|
|
663
|
+
/** AWS access key ID */
|
|
661
664
|
accessKey?: string;
|
|
665
|
+
/** External ID for the role-assumption trust policy */
|
|
662
666
|
externalId?: string;
|
|
667
|
+
/** Optional IAM role ARN to assume using the access key */
|
|
663
668
|
roleArn?: string;
|
|
669
|
+
/** AWS secret access key */
|
|
664
670
|
secretKey?: string;
|
|
665
671
|
});
|
|
666
672
|
}
|
|
667
673
|
|
|
668
674
|
export declare class SecretKeypair {
|
|
669
675
|
constructor(props: {
|
|
676
|
+
/** Passphrase protecting the private key */
|
|
670
677
|
passphrase?: string;
|
|
678
|
+
/** Public key */
|
|
671
679
|
publicKey?: string;
|
|
680
|
+
/** Private key */
|
|
672
681
|
secretKey?: string;
|
|
673
682
|
});
|
|
674
683
|
}
|
|
675
684
|
|
|
676
685
|
export declare class SecretOpaque {
|
|
677
686
|
constructor(props: {
|
|
687
|
+
/** How payload is encoded */
|
|
678
688
|
encoding?: "base64" | "plain";
|
|
689
|
+
/** The secret value */
|
|
679
690
|
payload?: string;
|
|
680
691
|
});
|
|
681
692
|
}
|
|
682
693
|
|
|
683
694
|
export declare class SecretTls {
|
|
684
695
|
constructor(props: {
|
|
696
|
+
/** Certificate, PEM-encoded */
|
|
685
697
|
cert?: string;
|
|
698
|
+
/** Certificate chain, PEM-encoded */
|
|
686
699
|
chain?: string;
|
|
700
|
+
/** Private key, PEM-encoded */
|
|
687
701
|
key?: string;
|
|
688
702
|
});
|
|
689
703
|
}
|
|
690
704
|
|
|
691
705
|
export declare class SecretUserpass {
|
|
692
706
|
constructor(props: {
|
|
707
|
+
/** Declared encoding of the username/password; not decoded (values are stored as provided) */
|
|
693
708
|
encoding?: "base64" | "plain";
|
|
709
|
+
/** Password */
|
|
694
710
|
password?: string;
|
|
711
|
+
/** Username */
|
|
695
712
|
username?: string;
|
|
696
713
|
});
|
|
697
714
|
}
|
|
@@ -786,6 +803,8 @@ export declare class WorkloadSpec {
|
|
|
786
803
|
containers?: WorkloadSpecContainers[];
|
|
787
804
|
/** Set defaultOptions for the workload in all Control Plane Locations. */
|
|
788
805
|
defaultOptions?: WorkloadSpecDefaultOptions;
|
|
806
|
+
/** Limits how many replicas voluntary disruptions (node drains, cluster autoscaler scale-down, node upgrades) can evict at once. Set either minAvailable or maxUnavailable. A minAvailable that would allow no evictions at the minScale of defaultOptions or any localOptions is rejected. Not supported for cron or vm workloads. When omitted, workloads with minScale 4 or more allow 20% of replicas to be unavailable. */
|
|
807
|
+
disruptionBudget?: WorkloadSpecDisruptionBudget;
|
|
789
808
|
/** Additional Kubernetes customizations for BYOK */
|
|
790
809
|
extras?: WorkloadSpecExtras;
|
|
791
810
|
/** Optional control of inbound and outbound access to the workload for external (public) and internal (service to service) traffic. Access is restricted by default. */
|
|
@@ -804,7 +823,7 @@ export declare class WorkloadSpec {
|
|
|
804
823
|
requestRetryPolicy?: WorkloadSpecRequestRetryPolicy;
|
|
805
824
|
/** Configuration for how workload updates are rolled out */
|
|
806
825
|
rolloutOptions?: WorkloadSpecRolloutOptions;
|
|
807
|
-
/**
|
|
826
|
+
/** Marks this workload as a sandbox and carries its settings. Two types: dev (a human devbox: browser IDE and terminal behind a Control Plane sign-in, the connect permission on the workload) and worker (an agent box: the devboxd API behind a token, hosting agent sessions, many per box). Both are stateful workloads with a home volume that scale to zero when idle and resume on the next request; when spec.type is omitted the server sets stateful. A sandbox is created in one call with just this section: when spec.containers is omitted the server injects the standard container for the profile (dev: build.cpln.io/public/sandbox-base:v1 with the browser IDE; worker: build.cpln.io/public/agentbox-base:v1 running devboxd; 1 CPU, 2 GiB), when a worker token is omitted the server generates it, and the server creates and owns the home volumeset <name>-state, mounted at /home/devuser and deleted with the sandbox. Size the box on spec.containers[0].cpu and memory (a container that omits them gets 1 CPU, 2 GiB). The firewall defaults open in both directions; the sign-in (dev) or the token (worker) is what gates access. Idle sandboxes scale to zero after scaleToZeroDelay (default 300 s) and run as a single replica. The URL is status.endpoint on the workload deployment: for dev the IDE at /_ide/, terminal at /_term/, your app at /; for worker the devboxd API. The server also stamps the tags cpln/sandbox, cpln/kata, cpln/kataPrivileged (privileged root inside the microVM, which is the isolation boundary), cpln/scaleToZero and, for dev, cpln/dev-type (read by cpln sandbox connect); do not set them yourself. Read a worker token back from this section after create. */
|
|
808
827
|
sandbox?: WorkloadSpecSandbox;
|
|
809
828
|
/** Security context for the workload */
|
|
810
829
|
securityOptions?: WorkloadSpecSecurityOptions;
|
|
@@ -829,6 +848,8 @@ export declare class WorkloadSpecContainers {
|
|
|
829
848
|
cpu?: string;
|
|
830
849
|
/** Environment variables for the container at runtime. Default environment variables are also provided: CPLN_GVC, CPLN_LOCATION, CPLN_ORG, CPLN_PROVIDER, CPLN_WORKLOAD */
|
|
831
850
|
env?: WorkloadSpecContainersEnv[];
|
|
851
|
+
/** Inject all key/value pairs of the referenced dictionary secrets as environment variables. An explicit spec.env variable overrides an envFrom key of the same name; later envFrom entries override earlier ones. Keys that are not valid environment variable names are skipped. */
|
|
852
|
+
envFrom?: WorkloadSpecContainersEnvFrom[];
|
|
832
853
|
/** Reserved GPU resources for the workload. */
|
|
833
854
|
gpu?: WorkloadSpecContainersGpu;
|
|
834
855
|
/** The full image and tag path for a public or private docker registry. Private container images must have valid credentials configured in 'pullSecretLinks' on the GVC (Global Virtual Cloud). Required for all workload types except 'vm', which boots from spec.vm.bootDisk.source instead. */
|
|
@@ -869,6 +890,20 @@ export declare class WorkloadSpecContainersEnv {
|
|
|
869
890
|
});
|
|
870
891
|
}
|
|
871
892
|
|
|
893
|
+
export declare class WorkloadSpecContainersEnvFrom {
|
|
894
|
+
constructor(props: {
|
|
895
|
+
/** References a dictionary secret whose key/value pairs are injected as environment variables */
|
|
896
|
+
secretRef?: WorkloadSpecContainersEnvFromSecretRef;
|
|
897
|
+
});
|
|
898
|
+
}
|
|
899
|
+
|
|
900
|
+
export declare class WorkloadSpecContainersEnvFromSecretRef {
|
|
901
|
+
constructor(props: {
|
|
902
|
+
/** Name of a dictionary (opaque key/value) secret whose keys are injected as environment variables */
|
|
903
|
+
name?: string;
|
|
904
|
+
});
|
|
905
|
+
}
|
|
906
|
+
|
|
872
907
|
export declare class WorkloadSpecContainersGpu {
|
|
873
908
|
constructor(props: {
|
|
874
909
|
/** Custom GPU resource specification for non-NVIDIA GPUs */
|
|
@@ -1282,6 +1317,15 @@ export declare class WorkloadSpecDefaultOptionsMultiZone {
|
|
|
1282
1317
|
});
|
|
1283
1318
|
}
|
|
1284
1319
|
|
|
1320
|
+
export declare class WorkloadSpecDisruptionBudget {
|
|
1321
|
+
constructor(props: {
|
|
1322
|
+
/** Maximum number or percentage of replicas that can be unavailable during voluntary disruptions such as node drains */
|
|
1323
|
+
maxUnavailable?: string;
|
|
1324
|
+
/** Minimum number or percentage of replicas that must stay available during voluntary disruptions such as node drains */
|
|
1325
|
+
minAvailable?: string;
|
|
1326
|
+
});
|
|
1327
|
+
}
|
|
1328
|
+
|
|
1285
1329
|
export declare class WorkloadSpecExtras {
|
|
1286
1330
|
constructor(props: {
|
|
1287
1331
|
/** Kubernetes pod affinity and anti-affinity rules */
|
|
@@ -1624,10 +1668,18 @@ export declare class WorkloadSpecLocalOptionsMultiZone {
|
|
|
1624
1668
|
|
|
1625
1669
|
export declare class WorkloadSpecNetworking {
|
|
1626
1670
|
constructor(props: {
|
|
1627
|
-
/**
|
|
1628
|
-
|
|
1629
|
-
|
|
1630
|
-
|
|
1671
|
+
/** Routing of internal (cpln.local) requests */
|
|
1672
|
+
internal?: WorkloadSpecNetworkingInternal;
|
|
1673
|
+
});
|
|
1674
|
+
}
|
|
1675
|
+
|
|
1676
|
+
export declare class WorkloadSpecNetworkingInternal {
|
|
1677
|
+
constructor(props: {
|
|
1678
|
+
/** How requests to <workload>.<gvc>.cpln.local from the same GVC are routed.
|
|
1679
|
+
locationEndpoint: served only by replicas in the caller's location.
|
|
1680
|
+
gvcEndpoint: fail over to the workload's canonical endpoint (the nearest healthy location) when no local replica can serve them. Cross-location traffic is billed as egress.
|
|
1681
|
+
Defaults to gvcEndpoint for workloads created after this field was introduced; absent means locationEndpoint. */
|
|
1682
|
+
routing?: "gvcEndpoint" | "locationEndpoint";
|
|
1631
1683
|
});
|
|
1632
1684
|
}
|
|
1633
1685
|
|
|
@@ -1648,6 +1700,8 @@ export declare class WorkloadSpecRolloutOptions {
|
|
|
1648
1700
|
maxUnavailableReplicas?: string;
|
|
1649
1701
|
/** The minimum number of seconds a container must run without crashing to be considered available */
|
|
1650
1702
|
minReadySeconds?: number;
|
|
1703
|
+
/** When true, replicas are rolled out whenever a secret or the identity referenced by the workload is modified */
|
|
1704
|
+
rolloutOnReferenceChange?: boolean;
|
|
1651
1705
|
/** Determines whether replicas are scaled in order (OrderedReady) or in parallel (Parallel) */
|
|
1652
1706
|
scalingPolicy?: "OrderedReady" | "Parallel";
|
|
1653
1707
|
/** The amount of time in seconds a workload has to gracefully terminate before forcefully terminating it.
|
|
@@ -1660,20 +1714,27 @@ export declare class WorkloadSpecSandbox {
|
|
|
1660
1714
|
constructor(props: {
|
|
1661
1715
|
/** The port the primary application inside the dev container listens on. The sandbox gateway proxies the endpoint root to it. */
|
|
1662
1716
|
appPort?: number;
|
|
1663
|
-
/**
|
|
1717
|
+
/** dev type: the IDE the owner primarily connects with. Informational: clients use it to pick a default connect flow; the server does not act on it. */
|
|
1664
1718
|
ide?: "browser" | "cursor" | "ssh" | "vscode";
|
|
1665
|
-
/**
|
|
1719
|
+
/** Deprecated and ignored: the browser IDE admits callers whose Control Plane token holds connect on this workload; no password exists. */
|
|
1720
|
+
password?: string;
|
|
1721
|
+
/** Idle seconds before the sandbox scales to zero; the next request to its endpoint wakes it (a suspended box resumes in place, so the request that claims a worker is also what wakes it). Every sandbox scales to zero (the overlay stamps cpln/scaleToZero and pins autoscaling to one replica); this sets how long it stays up idle. Default 300. */
|
|
1666
1722
|
scaleToZeroDelay?: number;
|
|
1667
|
-
/**
|
|
1723
|
+
/** worker type: the bearer token that secures the devboxd HTTP API. Generated by the server when omitted on create and kept on later writes; set it to choose your own. Injected into the dev container as DEVBOXD_TOKEN. */
|
|
1724
|
+
token?: string;
|
|
1725
|
+
/** Deprecated and ignored: TTL enforcement moves to fleet-level tooling. */
|
|
1668
1726
|
ttl?: string;
|
|
1727
|
+
/** dev: a human sandbox - browser IDE and terminal served on the workload endpoint behind a Control Plane sign-in (connect permission on the workload; gateway port 8888, IDE at /_ide/, terminal at /_term/, your app at /). worker: an agent box - the devboxd HTTP API on port 49983 is the only listener, secured by the token, and the workload endpoint is that API; no IDE, no password; agents run in devboxd sessions on it, many per box. Both keep a home volume, scale to zero when idle and resume on the next request. */
|
|
1728
|
+
type?: "dev" | "worker";
|
|
1729
|
+
/** The home volume. The server creates and owns a shared-filesystem volumeset named <workload>-state and deletes it with the sandbox. */
|
|
1669
1730
|
volume?: WorkloadSpecSandboxVolume;
|
|
1670
1731
|
});
|
|
1671
1732
|
}
|
|
1672
1733
|
|
|
1673
1734
|
export declare class WorkloadSpecSandboxVolume {
|
|
1674
1735
|
constructor(props: {
|
|
1675
|
-
/**
|
|
1676
|
-
|
|
1736
|
+
/** Initial size in GB of the home volumeset the server creates for this sandbox (mounted at /home/devuser). Immutable after create: resize the volumeset itself. */
|
|
1737
|
+
initialCapacity?: number;
|
|
1677
1738
|
});
|
|
1678
1739
|
}
|
|
1679
1740
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@intentius/chant-lexicon-cpln",
|
|
3
|
-
"version": "0.124.
|
|
3
|
+
"version": "0.124.41",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"files": [
|
|
6
6
|
"src/",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"typescript": "^5.9.3"
|
|
50
50
|
},
|
|
51
51
|
"peerDependencies": {
|
|
52
|
-
"@intentius/chant": "^0.124.
|
|
52
|
+
"@intentius/chant": "^0.124.41"
|
|
53
53
|
},
|
|
54
54
|
"description": "Control Plane (cpln) lexicon for chant — declarative IaC in TypeScript",
|
|
55
55
|
"license": "Apache-2.0",
|
package/src/generated/index.d.ts
CHANGED
|
@@ -94,7 +94,9 @@ export declare class Policy {
|
|
|
94
94
|
export declare class Secret {
|
|
95
95
|
constructor(props: {
|
|
96
96
|
name: string;
|
|
97
|
+
/** The kind of secret, which determines the shape of data */
|
|
97
98
|
type: "aws" | "azure-connector" | "azure-sdk" | "dictionary" | "docker" | "ecr" | "gcp" | "keypair" | "nats-account" | "opaque" | "tls" | "userpass";
|
|
99
|
+
/** The secret contents, shaped according to type */
|
|
98
100
|
data?: SecretOpaque | SecretTls | string | SecretAwskey | Record<string, unknown> | SecretUserpass | SecretKeypair;
|
|
99
101
|
description?: string;
|
|
100
102
|
tags?: Record<string, string>;
|
|
@@ -658,40 +660,55 @@ export declare class QuerySpecTerms {
|
|
|
658
660
|
|
|
659
661
|
export declare class SecretAwskey {
|
|
660
662
|
constructor(props: {
|
|
663
|
+
/** AWS access key ID */
|
|
661
664
|
accessKey?: string;
|
|
665
|
+
/** External ID for the role-assumption trust policy */
|
|
662
666
|
externalId?: string;
|
|
667
|
+
/** Optional IAM role ARN to assume using the access key */
|
|
663
668
|
roleArn?: string;
|
|
669
|
+
/** AWS secret access key */
|
|
664
670
|
secretKey?: string;
|
|
665
671
|
});
|
|
666
672
|
}
|
|
667
673
|
|
|
668
674
|
export declare class SecretKeypair {
|
|
669
675
|
constructor(props: {
|
|
676
|
+
/** Passphrase protecting the private key */
|
|
670
677
|
passphrase?: string;
|
|
678
|
+
/** Public key */
|
|
671
679
|
publicKey?: string;
|
|
680
|
+
/** Private key */
|
|
672
681
|
secretKey?: string;
|
|
673
682
|
});
|
|
674
683
|
}
|
|
675
684
|
|
|
676
685
|
export declare class SecretOpaque {
|
|
677
686
|
constructor(props: {
|
|
687
|
+
/** How payload is encoded */
|
|
678
688
|
encoding?: "base64" | "plain";
|
|
689
|
+
/** The secret value */
|
|
679
690
|
payload?: string;
|
|
680
691
|
});
|
|
681
692
|
}
|
|
682
693
|
|
|
683
694
|
export declare class SecretTls {
|
|
684
695
|
constructor(props: {
|
|
696
|
+
/** Certificate, PEM-encoded */
|
|
685
697
|
cert?: string;
|
|
698
|
+
/** Certificate chain, PEM-encoded */
|
|
686
699
|
chain?: string;
|
|
700
|
+
/** Private key, PEM-encoded */
|
|
687
701
|
key?: string;
|
|
688
702
|
});
|
|
689
703
|
}
|
|
690
704
|
|
|
691
705
|
export declare class SecretUserpass {
|
|
692
706
|
constructor(props: {
|
|
707
|
+
/** Declared encoding of the username/password; not decoded (values are stored as provided) */
|
|
693
708
|
encoding?: "base64" | "plain";
|
|
709
|
+
/** Password */
|
|
694
710
|
password?: string;
|
|
711
|
+
/** Username */
|
|
695
712
|
username?: string;
|
|
696
713
|
});
|
|
697
714
|
}
|
|
@@ -786,6 +803,8 @@ export declare class WorkloadSpec {
|
|
|
786
803
|
containers?: WorkloadSpecContainers[];
|
|
787
804
|
/** Set defaultOptions for the workload in all Control Plane Locations. */
|
|
788
805
|
defaultOptions?: WorkloadSpecDefaultOptions;
|
|
806
|
+
/** Limits how many replicas voluntary disruptions (node drains, cluster autoscaler scale-down, node upgrades) can evict at once. Set either minAvailable or maxUnavailable. A minAvailable that would allow no evictions at the minScale of defaultOptions or any localOptions is rejected. Not supported for cron or vm workloads. When omitted, workloads with minScale 4 or more allow 20% of replicas to be unavailable. */
|
|
807
|
+
disruptionBudget?: WorkloadSpecDisruptionBudget;
|
|
789
808
|
/** Additional Kubernetes customizations for BYOK */
|
|
790
809
|
extras?: WorkloadSpecExtras;
|
|
791
810
|
/** Optional control of inbound and outbound access to the workload for external (public) and internal (service to service) traffic. Access is restricted by default. */
|
|
@@ -804,7 +823,7 @@ export declare class WorkloadSpec {
|
|
|
804
823
|
requestRetryPolicy?: WorkloadSpecRequestRetryPolicy;
|
|
805
824
|
/** Configuration for how workload updates are rolled out */
|
|
806
825
|
rolloutOptions?: WorkloadSpecRolloutOptions;
|
|
807
|
-
/**
|
|
826
|
+
/** Marks this workload as a sandbox and carries its settings. Two types: dev (a human devbox: browser IDE and terminal behind a Control Plane sign-in, the connect permission on the workload) and worker (an agent box: the devboxd API behind a token, hosting agent sessions, many per box). Both are stateful workloads with a home volume that scale to zero when idle and resume on the next request; when spec.type is omitted the server sets stateful. A sandbox is created in one call with just this section: when spec.containers is omitted the server injects the standard container for the profile (dev: build.cpln.io/public/sandbox-base:v1 with the browser IDE; worker: build.cpln.io/public/agentbox-base:v1 running devboxd; 1 CPU, 2 GiB), when a worker token is omitted the server generates it, and the server creates and owns the home volumeset <name>-state, mounted at /home/devuser and deleted with the sandbox. Size the box on spec.containers[0].cpu and memory (a container that omits them gets 1 CPU, 2 GiB). The firewall defaults open in both directions; the sign-in (dev) or the token (worker) is what gates access. Idle sandboxes scale to zero after scaleToZeroDelay (default 300 s) and run as a single replica. The URL is status.endpoint on the workload deployment: for dev the IDE at /_ide/, terminal at /_term/, your app at /; for worker the devboxd API. The server also stamps the tags cpln/sandbox, cpln/kata, cpln/kataPrivileged (privileged root inside the microVM, which is the isolation boundary), cpln/scaleToZero and, for dev, cpln/dev-type (read by cpln sandbox connect); do not set them yourself. Read a worker token back from this section after create. */
|
|
808
827
|
sandbox?: WorkloadSpecSandbox;
|
|
809
828
|
/** Security context for the workload */
|
|
810
829
|
securityOptions?: WorkloadSpecSecurityOptions;
|
|
@@ -829,6 +848,8 @@ export declare class WorkloadSpecContainers {
|
|
|
829
848
|
cpu?: string;
|
|
830
849
|
/** Environment variables for the container at runtime. Default environment variables are also provided: CPLN_GVC, CPLN_LOCATION, CPLN_ORG, CPLN_PROVIDER, CPLN_WORKLOAD */
|
|
831
850
|
env?: WorkloadSpecContainersEnv[];
|
|
851
|
+
/** Inject all key/value pairs of the referenced dictionary secrets as environment variables. An explicit spec.env variable overrides an envFrom key of the same name; later envFrom entries override earlier ones. Keys that are not valid environment variable names are skipped. */
|
|
852
|
+
envFrom?: WorkloadSpecContainersEnvFrom[];
|
|
832
853
|
/** Reserved GPU resources for the workload. */
|
|
833
854
|
gpu?: WorkloadSpecContainersGpu;
|
|
834
855
|
/** The full image and tag path for a public or private docker registry. Private container images must have valid credentials configured in 'pullSecretLinks' on the GVC (Global Virtual Cloud). Required for all workload types except 'vm', which boots from spec.vm.bootDisk.source instead. */
|
|
@@ -869,6 +890,20 @@ export declare class WorkloadSpecContainersEnv {
|
|
|
869
890
|
});
|
|
870
891
|
}
|
|
871
892
|
|
|
893
|
+
export declare class WorkloadSpecContainersEnvFrom {
|
|
894
|
+
constructor(props: {
|
|
895
|
+
/** References a dictionary secret whose key/value pairs are injected as environment variables */
|
|
896
|
+
secretRef?: WorkloadSpecContainersEnvFromSecretRef;
|
|
897
|
+
});
|
|
898
|
+
}
|
|
899
|
+
|
|
900
|
+
export declare class WorkloadSpecContainersEnvFromSecretRef {
|
|
901
|
+
constructor(props: {
|
|
902
|
+
/** Name of a dictionary (opaque key/value) secret whose keys are injected as environment variables */
|
|
903
|
+
name?: string;
|
|
904
|
+
});
|
|
905
|
+
}
|
|
906
|
+
|
|
872
907
|
export declare class WorkloadSpecContainersGpu {
|
|
873
908
|
constructor(props: {
|
|
874
909
|
/** Custom GPU resource specification for non-NVIDIA GPUs */
|
|
@@ -1282,6 +1317,15 @@ export declare class WorkloadSpecDefaultOptionsMultiZone {
|
|
|
1282
1317
|
});
|
|
1283
1318
|
}
|
|
1284
1319
|
|
|
1320
|
+
export declare class WorkloadSpecDisruptionBudget {
|
|
1321
|
+
constructor(props: {
|
|
1322
|
+
/** Maximum number or percentage of replicas that can be unavailable during voluntary disruptions such as node drains */
|
|
1323
|
+
maxUnavailable?: string;
|
|
1324
|
+
/** Minimum number or percentage of replicas that must stay available during voluntary disruptions such as node drains */
|
|
1325
|
+
minAvailable?: string;
|
|
1326
|
+
});
|
|
1327
|
+
}
|
|
1328
|
+
|
|
1285
1329
|
export declare class WorkloadSpecExtras {
|
|
1286
1330
|
constructor(props: {
|
|
1287
1331
|
/** Kubernetes pod affinity and anti-affinity rules */
|
|
@@ -1624,10 +1668,18 @@ export declare class WorkloadSpecLocalOptionsMultiZone {
|
|
|
1624
1668
|
|
|
1625
1669
|
export declare class WorkloadSpecNetworking {
|
|
1626
1670
|
constructor(props: {
|
|
1627
|
-
/**
|
|
1628
|
-
|
|
1629
|
-
|
|
1630
|
-
|
|
1671
|
+
/** Routing of internal (cpln.local) requests */
|
|
1672
|
+
internal?: WorkloadSpecNetworkingInternal;
|
|
1673
|
+
});
|
|
1674
|
+
}
|
|
1675
|
+
|
|
1676
|
+
export declare class WorkloadSpecNetworkingInternal {
|
|
1677
|
+
constructor(props: {
|
|
1678
|
+
/** How requests to <workload>.<gvc>.cpln.local from the same GVC are routed.
|
|
1679
|
+
locationEndpoint: served only by replicas in the caller's location.
|
|
1680
|
+
gvcEndpoint: fail over to the workload's canonical endpoint (the nearest healthy location) when no local replica can serve them. Cross-location traffic is billed as egress.
|
|
1681
|
+
Defaults to gvcEndpoint for workloads created after this field was introduced; absent means locationEndpoint. */
|
|
1682
|
+
routing?: "gvcEndpoint" | "locationEndpoint";
|
|
1631
1683
|
});
|
|
1632
1684
|
}
|
|
1633
1685
|
|
|
@@ -1648,6 +1700,8 @@ export declare class WorkloadSpecRolloutOptions {
|
|
|
1648
1700
|
maxUnavailableReplicas?: string;
|
|
1649
1701
|
/** The minimum number of seconds a container must run without crashing to be considered available */
|
|
1650
1702
|
minReadySeconds?: number;
|
|
1703
|
+
/** When true, replicas are rolled out whenever a secret or the identity referenced by the workload is modified */
|
|
1704
|
+
rolloutOnReferenceChange?: boolean;
|
|
1651
1705
|
/** Determines whether replicas are scaled in order (OrderedReady) or in parallel (Parallel) */
|
|
1652
1706
|
scalingPolicy?: "OrderedReady" | "Parallel";
|
|
1653
1707
|
/** The amount of time in seconds a workload has to gracefully terminate before forcefully terminating it.
|
|
@@ -1660,20 +1714,27 @@ export declare class WorkloadSpecSandbox {
|
|
|
1660
1714
|
constructor(props: {
|
|
1661
1715
|
/** The port the primary application inside the dev container listens on. The sandbox gateway proxies the endpoint root to it. */
|
|
1662
1716
|
appPort?: number;
|
|
1663
|
-
/**
|
|
1717
|
+
/** dev type: the IDE the owner primarily connects with. Informational: clients use it to pick a default connect flow; the server does not act on it. */
|
|
1664
1718
|
ide?: "browser" | "cursor" | "ssh" | "vscode";
|
|
1665
|
-
/**
|
|
1719
|
+
/** Deprecated and ignored: the browser IDE admits callers whose Control Plane token holds connect on this workload; no password exists. */
|
|
1720
|
+
password?: string;
|
|
1721
|
+
/** Idle seconds before the sandbox scales to zero; the next request to its endpoint wakes it (a suspended box resumes in place, so the request that claims a worker is also what wakes it). Every sandbox scales to zero (the overlay stamps cpln/scaleToZero and pins autoscaling to one replica); this sets how long it stays up idle. Default 300. */
|
|
1666
1722
|
scaleToZeroDelay?: number;
|
|
1667
|
-
/**
|
|
1723
|
+
/** worker type: the bearer token that secures the devboxd HTTP API. Generated by the server when omitted on create and kept on later writes; set it to choose your own. Injected into the dev container as DEVBOXD_TOKEN. */
|
|
1724
|
+
token?: string;
|
|
1725
|
+
/** Deprecated and ignored: TTL enforcement moves to fleet-level tooling. */
|
|
1668
1726
|
ttl?: string;
|
|
1727
|
+
/** dev: a human sandbox - browser IDE and terminal served on the workload endpoint behind a Control Plane sign-in (connect permission on the workload; gateway port 8888, IDE at /_ide/, terminal at /_term/, your app at /). worker: an agent box - the devboxd HTTP API on port 49983 is the only listener, secured by the token, and the workload endpoint is that API; no IDE, no password; agents run in devboxd sessions on it, many per box. Both keep a home volume, scale to zero when idle and resume on the next request. */
|
|
1728
|
+
type?: "dev" | "worker";
|
|
1729
|
+
/** The home volume. The server creates and owns a shared-filesystem volumeset named <workload>-state and deletes it with the sandbox. */
|
|
1669
1730
|
volume?: WorkloadSpecSandboxVolume;
|
|
1670
1731
|
});
|
|
1671
1732
|
}
|
|
1672
1733
|
|
|
1673
1734
|
export declare class WorkloadSpecSandboxVolume {
|
|
1674
1735
|
constructor(props: {
|
|
1675
|
-
/**
|
|
1676
|
-
|
|
1736
|
+
/** Initial size in GB of the home volumeset the server creates for this sandbox (mounted at /home/devuser). Immutable after create: resize the volumeset itself. */
|
|
1737
|
+
initialCapacity?: number;
|
|
1677
1738
|
});
|
|
1678
1739
|
}
|
|
1679
1740
|
|
package/src/generated/index.ts
CHANGED
|
@@ -79,6 +79,8 @@ export const VolumeSetSpecSnapshots = /* @__PURE__ */ createProperty("Cpln::Core
|
|
|
79
79
|
export const WorkloadSpec = /* @__PURE__ */ createProperty("Cpln::Core::WorkloadSpec", "cpln");
|
|
80
80
|
export const WorkloadSpecContainers = /* @__PURE__ */ createProperty("Cpln::Core::WorkloadSpecContainers", "cpln");
|
|
81
81
|
export const WorkloadSpecContainersEnv = /* @__PURE__ */ createProperty("Cpln::Core::WorkloadSpecContainersEnv", "cpln");
|
|
82
|
+
export const WorkloadSpecContainersEnvFrom = /* @__PURE__ */ createProperty("Cpln::Core::WorkloadSpecContainersEnvFrom", "cpln");
|
|
83
|
+
export const WorkloadSpecContainersEnvFromSecretRef = /* @__PURE__ */ createProperty("Cpln::Core::WorkloadSpecContainersEnvFromSecretRef", "cpln");
|
|
82
84
|
export const WorkloadSpecContainersGpu = /* @__PURE__ */ createProperty("Cpln::Core::WorkloadSpecContainersGpu", "cpln");
|
|
83
85
|
export const WorkloadSpecContainersGpuCustom = /* @__PURE__ */ createProperty("Cpln::Core::WorkloadSpecContainersGpuCustom", "cpln");
|
|
84
86
|
export const WorkloadSpecContainersGpuNvidia = /* @__PURE__ */ createProperty("Cpln::Core::WorkloadSpecContainersGpuNvidia", "cpln");
|
|
@@ -118,6 +120,7 @@ export const WorkloadSpecDefaultOptionsAutoscalingKedaTriggers = /* @__PURE__ */
|
|
|
118
120
|
export const WorkloadSpecDefaultOptionsAutoscalingKedaTriggersAuthenticationRef = /* @__PURE__ */ createProperty("Cpln::Core::WorkloadSpecDefaultOptionsAutoscalingKedaTriggersAuthenticationRef", "cpln");
|
|
119
121
|
export const WorkloadSpecDefaultOptionsAutoscalingMulti = /* @__PURE__ */ createProperty("Cpln::Core::WorkloadSpecDefaultOptionsAutoscalingMulti", "cpln");
|
|
120
122
|
export const WorkloadSpecDefaultOptionsMultiZone = /* @__PURE__ */ createProperty("Cpln::Core::WorkloadSpecDefaultOptionsMultiZone", "cpln");
|
|
123
|
+
export const WorkloadSpecDisruptionBudget = /* @__PURE__ */ createProperty("Cpln::Core::WorkloadSpecDisruptionBudget", "cpln");
|
|
121
124
|
export const WorkloadSpecExtras = /* @__PURE__ */ createProperty("Cpln::Core::WorkloadSpecExtras", "cpln");
|
|
122
125
|
export const WorkloadSpecExtrasMetadata = /* @__PURE__ */ createProperty("Cpln::Core::WorkloadSpecExtrasMetadata", "cpln");
|
|
123
126
|
export const WorkloadSpecFirewallConfig = /* @__PURE__ */ createProperty("Cpln::Core::WorkloadSpecFirewallConfig", "cpln");
|
|
@@ -149,6 +152,7 @@ export const WorkloadSpecLocalOptionsAutoscalingKedaTriggersAuthenticationRef =
|
|
|
149
152
|
export const WorkloadSpecLocalOptionsAutoscalingMulti = /* @__PURE__ */ createProperty("Cpln::Core::WorkloadSpecLocalOptionsAutoscalingMulti", "cpln");
|
|
150
153
|
export const WorkloadSpecLocalOptionsMultiZone = /* @__PURE__ */ createProperty("Cpln::Core::WorkloadSpecLocalOptionsMultiZone", "cpln");
|
|
151
154
|
export const WorkloadSpecNetworking = /* @__PURE__ */ createProperty("Cpln::Core::WorkloadSpecNetworking", "cpln");
|
|
155
|
+
export const WorkloadSpecNetworkingInternal = /* @__PURE__ */ createProperty("Cpln::Core::WorkloadSpecNetworkingInternal", "cpln");
|
|
152
156
|
export const WorkloadSpecRequestRetryPolicy = /* @__PURE__ */ createProperty("Cpln::Core::WorkloadSpecRequestRetryPolicy", "cpln");
|
|
153
157
|
export const WorkloadSpecRolloutOptions = /* @__PURE__ */ createProperty("Cpln::Core::WorkloadSpecRolloutOptions", "cpln");
|
|
154
158
|
export const WorkloadSpecSandbox = /* @__PURE__ */ createProperty("Cpln::Core::WorkloadSpecSandbox", "cpln");
|