@intentius/chant-lexicon-cpln 0.53.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/README.md +85 -0
- package/dist/api.d.ts +77 -0
- package/dist/api.d.ts.map +1 -0
- package/dist/codegen/docs-cli.d.ts +3 -0
- package/dist/codegen/docs-cli.d.ts.map +1 -0
- package/dist/codegen/docs.d.ts +17 -0
- package/dist/codegen/docs.d.ts.map +1 -0
- package/dist/codegen/generate-cli.d.ts +6 -0
- package/dist/codegen/generate-cli.d.ts.map +1 -0
- package/dist/codegen/generate-lexicon.d.ts +36 -0
- package/dist/codegen/generate-lexicon.d.ts.map +1 -0
- package/dist/codegen/generate-typescript.d.ts +11 -0
- package/dist/codegen/generate-typescript.d.ts.map +1 -0
- package/dist/codegen/generate.d.ts +15 -0
- package/dist/codegen/generate.d.ts.map +1 -0
- package/dist/codegen/naming.d.ts +30 -0
- package/dist/codegen/naming.d.ts.map +1 -0
- package/dist/codegen/package.d.ts +17 -0
- package/dist/codegen/package.d.ts.map +1 -0
- package/dist/composites/cron-job.d.ts +60 -0
- package/dist/composites/cron-job.d.ts.map +1 -0
- package/dist/composites/gvc-environment.d.ts +47 -0
- package/dist/composites/gvc-environment.d.ts.map +1 -0
- package/dist/composites/index.d.ts +13 -0
- package/dist/composites/index.d.ts.map +1 -0
- package/dist/composites/public-domain.d.ts +68 -0
- package/dist/composites/public-domain.d.ts.map +1 -0
- package/dist/composites/secret-access.d.ts +78 -0
- package/dist/composites/secret-access.d.ts.map +1 -0
- package/dist/composites/serverless-service.d.ts +78 -0
- package/dist/composites/serverless-service.d.ts.map +1 -0
- package/dist/composites/stateful-service.d.ts +79 -0
- package/dist/composites/stateful-service.d.ts.map +1 -0
- package/dist/coverage.d.ts +59 -0
- package/dist/coverage.d.ts.map +1 -0
- package/dist/describe-resources.d.ts +71 -0
- package/dist/describe-resources.d.ts.map +1 -0
- package/dist/detect.d.ts +14 -0
- package/dist/detect.d.ts.map +1 -0
- package/dist/entity-props.d.ts +34 -0
- package/dist/entity-props.d.ts.map +1 -0
- package/dist/generated/index.d.ts +151 -0
- package/dist/generated/index.d.ts.map +1 -0
- package/dist/generated/runtime.d.ts +5 -0
- package/dist/generated/runtime.d.ts.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/init-templates.d.ts +16 -0
- package/dist/init-templates.d.ts.map +1 -0
- package/dist/integrity.json +35 -0
- package/dist/kinds.d.ts +70 -0
- package/dist/kinds.d.ts.map +1 -0
- package/dist/lint/audit-catalog.d.ts +19 -0
- package/dist/lint/audit-catalog.d.ts.map +1 -0
- package/dist/lint/post-synth/cpl010-unrestricted-outbound.d.ts +12 -0
- package/dist/lint/post-synth/cpl010-unrestricted-outbound.d.ts.map +1 -0
- package/dist/lint/post-synth/cpl011-internal-firewall-scope.d.ts +11 -0
- package/dist/lint/post-synth/cpl011-internal-firewall-scope.d.ts.map +1 -0
- package/dist/lint/post-synth/cpl012-no-literal-credential-env.d.ts +11 -0
- package/dist/lint/post-synth/cpl012-no-literal-credential-env.d.ts.map +1 -0
- package/dist/lint/post-synth/cpl013-qualified-identity-principal.d.ts +11 -0
- package/dist/lint/post-synth/cpl013-qualified-identity-principal.d.ts.map +1 -0
- package/dist/lint/post-synth/cpl014-qualified-secret-ref.d.ts +14 -0
- package/dist/lint/post-synth/cpl014-qualified-secret-ref.d.ts.map +1 -0
- package/dist/lint/post-synth/cpl020-serverless-single-port.d.ts +10 -0
- package/dist/lint/post-synth/cpl020-serverless-single-port.d.ts.map +1 -0
- package/dist/lint/post-synth/cpl021-cron-job-shape.d.ts +11 -0
- package/dist/lint/post-synth/cpl021-cron-job-shape.d.ts.map +1 -0
- package/dist/lint/post-synth/cpl022-container-ports.d.ts +10 -0
- package/dist/lint/post-synth/cpl022-container-ports.d.ts.map +1 -0
- package/dist/lint/post-synth/cpl023-container-resources.d.ts +12 -0
- package/dist/lint/post-synth/cpl023-container-resources.d.ts.map +1 -0
- package/dist/lint/post-synth/cpl024-probe-handler.d.ts +10 -0
- package/dist/lint/post-synth/cpl024-probe-handler.d.ts.map +1 -0
- package/dist/lint/post-synth/cpl025-autoscaling-shape.d.ts +11 -0
- package/dist/lint/post-synth/cpl025-autoscaling-shape.d.ts.map +1 -0
- package/dist/lint/post-synth/cpl026-scale-to-zero.d.ts +11 -0
- package/dist/lint/post-synth/cpl026-scale-to-zero.d.ts.map +1 -0
- package/dist/lint/post-synth/cpl027-capacity-ai-conflict.d.ts +13 -0
- package/dist/lint/post-synth/cpl027-capacity-ai-conflict.d.ts.map +1 -0
- package/dist/lint/post-synth/cpl028-volume-set.d.ts +3 -0
- package/dist/lint/post-synth/cpl028-volume-set.d.ts.map +1 -0
- package/dist/lint/post-synth/cpl029-link-targets.d.ts +3 -0
- package/dist/lint/post-synth/cpl029-link-targets.d.ts.map +1 -0
- package/dist/lint/post-synth/cpl030-domain-routing.d.ts +3 -0
- package/dist/lint/post-synth/cpl030-domain-routing.d.ts.map +1 -0
- package/dist/lint/post-synth/cpl040-pinned-image.d.ts +11 -0
- package/dist/lint/post-synth/cpl040-pinned-image.d.ts.map +1 -0
- package/dist/lint/post-synth/cpl041-image-reference-form.d.ts +12 -0
- package/dist/lint/post-synth/cpl041-image-reference-form.d.ts.map +1 -0
- package/dist/lint/post-synth/cpl042-gvc-placement.d.ts +10 -0
- package/dist/lint/post-synth/cpl042-gvc-placement.d.ts.map +1 -0
- package/dist/lint/post-synth/cpl043-policy-scope.d.ts +16 -0
- package/dist/lint/post-synth/cpl043-policy-scope.d.ts.map +1 -0
- package/dist/lint/post-synth/helpers.d.ts +45 -0
- package/dist/lint/post-synth/helpers.d.ts.map +1 -0
- package/dist/lint/post-synth/index.d.ts +3 -0
- package/dist/lint/post-synth/index.d.ts.map +1 -0
- package/dist/lint/rules/cpl001-no-secret-literals.d.ts +3 -0
- package/dist/lint/rules/cpl001-no-secret-literals.d.ts.map +1 -0
- package/dist/lint/rules/cpl002-prefer-resource-reference.d.ts +3 -0
- package/dist/lint/rules/cpl002-prefer-resource-reference.d.ts.map +1 -0
- package/dist/lint/rules/index.d.ts +6 -0
- package/dist/lint/rules/index.d.ts.map +1 -0
- package/dist/lsp/completions.d.ts +7 -0
- package/dist/lsp/completions.d.ts.map +1 -0
- package/dist/lsp/hover.d.ts +4 -0
- package/dist/lsp/hover.d.ts.map +1 -0
- package/dist/manifest.json +6 -0
- package/dist/meta.json +2110 -0
- package/dist/okf/index.md +39 -0
- package/dist/okf/rules/CPL001.md +22 -0
- package/dist/okf/rules/CPL002.md +22 -0
- package/dist/okf/rules/CPL010.md +15 -0
- package/dist/okf/rules/CPL011.md +15 -0
- package/dist/okf/rules/CPL012.md +15 -0
- package/dist/okf/rules/CPL013.md +15 -0
- package/dist/okf/rules/CPL014.md +16 -0
- package/dist/okf/rules/CPL020.md +11 -0
- package/dist/okf/rules/CPL021.md +15 -0
- package/dist/okf/rules/CPL022.md +15 -0
- package/dist/okf/rules/CPL023.md +15 -0
- package/dist/okf/rules/CPL024.md +15 -0
- package/dist/okf/rules/CPL025.md +15 -0
- package/dist/okf/rules/CPL026.md +15 -0
- package/dist/okf/rules/CPL027.md +15 -0
- package/dist/okf/rules/CPL028.md +15 -0
- package/dist/okf/rules/CPL029.md +15 -0
- package/dist/okf/rules/CPL030.md +16 -0
- package/dist/okf/rules/CPL040.md +15 -0
- package/dist/okf/rules/CPL041.md +15 -0
- package/dist/okf/rules/CPL042.md +11 -0
- package/dist/okf/rules/CPL043.md +15 -0
- package/dist/okf/types/Domain.md +22 -0
- package/dist/okf/types/Gvc.md +21 -0
- package/dist/okf/types/Identity.md +29 -0
- package/dist/okf/types/IpSet.md +21 -0
- package/dist/okf/types/Policy.md +28 -0
- package/dist/okf/types/Secret.md +23 -0
- package/dist/okf/types/VolumeSet.md +22 -0
- package/dist/okf/types/Workload.md +38 -0
- package/dist/ownership.d.ts +23 -0
- package/dist/ownership.d.ts.map +1 -0
- package/dist/package-cli.d.ts +3 -0
- package/dist/package-cli.d.ts.map +1 -0
- package/dist/plugin.d.ts +3 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/reference-catalog.d.ts +24 -0
- package/dist/reference-catalog.d.ts.map +1 -0
- package/dist/rules/cpl001-no-secret-literals.ts +83 -0
- package/dist/rules/cpl002-prefer-resource-reference.ts +71 -0
- package/dist/rules/cpl010-unrestricted-outbound.ts +41 -0
- package/dist/rules/cpl011-internal-firewall-scope.ts +38 -0
- package/dist/rules/cpl012-no-literal-credential-env.ts +58 -0
- package/dist/rules/cpl013-qualified-identity-principal.ts +45 -0
- package/dist/rules/cpl014-qualified-secret-ref.ts +54 -0
- package/dist/rules/cpl020-serverless-single-port.ts +58 -0
- package/dist/rules/cpl021-cron-job-shape.ts +64 -0
- package/dist/rules/cpl022-container-ports.ts +64 -0
- package/dist/rules/cpl023-container-resources.ts +87 -0
- package/dist/rules/cpl024-probe-handler.ts +51 -0
- package/dist/rules/cpl025-autoscaling-shape.ts +100 -0
- package/dist/rules/cpl026-scale-to-zero.ts +67 -0
- package/dist/rules/cpl027-capacity-ai-conflict.ts +78 -0
- package/dist/rules/cpl028-volume-set.ts +183 -0
- package/dist/rules/cpl029-link-targets.ts +155 -0
- package/dist/rules/cpl030-domain-routing.ts +137 -0
- package/dist/rules/cpl040-pinned-image.ts +48 -0
- package/dist/rules/cpl041-image-reference-form.ts +60 -0
- package/dist/rules/cpl042-gvc-placement.ts +57 -0
- package/dist/rules/cpl043-policy-scope.ts +0 -0
- package/dist/rules/helpers.ts +114 -0
- package/dist/serializer.d.ts +69 -0
- package/dist/serializer.d.ts.map +1 -0
- package/dist/skills/chant-cpln-secrets.md +110 -0
- package/dist/skills/chant-cpln-workloads.md +78 -0
- package/dist/skills/chant-cpln.md +103 -0
- package/dist/spec/fetch.d.ts +43 -0
- package/dist/spec/fetch.d.ts.map +1 -0
- package/dist/spec/parse.d.ts +79 -0
- package/dist/spec/parse.d.ts.map +1 -0
- package/dist/spec/snapshot-cli.d.ts +18 -0
- package/dist/spec/snapshot-cli.d.ts.map +1 -0
- package/dist/types/index.d.ts +1649 -0
- package/dist/validate-cli.d.ts +3 -0
- package/dist/validate-cli.d.ts.map +1 -0
- package/dist/validate.d.ts +26 -0
- package/dist/validate.d.ts.map +1 -0
- package/package.json +74 -0
- package/src/api.ts +134 -0
- package/src/codegen/docs-cli.ts +7 -0
- package/src/codegen/docs.ts +94 -0
- package/src/codegen/generate-cli.ts +34 -0
- package/src/codegen/generate-lexicon.ts +88 -0
- package/src/codegen/generate-typescript.ts +71 -0
- package/src/codegen/generate.ts +110 -0
- package/src/codegen/naming.ts +61 -0
- package/src/codegen/package.ts +35 -0
- package/src/composites/composites.test.ts +252 -0
- package/src/composites/cron-job.ts +124 -0
- package/src/composites/gvc-environment.ts +104 -0
- package/src/composites/index.ts +17 -0
- package/src/composites/public-domain.ts +144 -0
- package/src/composites/secret-access.ts +136 -0
- package/src/composites/serverless-service.ts +143 -0
- package/src/composites/stateful-service.ts +179 -0
- package/src/coverage.ts +149 -0
- package/src/describe-resources.test.ts +252 -0
- package/src/describe-resources.ts +310 -0
- package/src/detect.ts +58 -0
- package/src/entity-props.ts +98 -0
- package/src/generated/index.d.ts +1649 -0
- package/src/generated/index.ts +156 -0
- package/src/generated/lexicon-cpln.json +2110 -0
- package/src/generated/runtime.ts +4 -0
- package/src/index.ts +31 -0
- package/src/init-templates.ts +131 -0
- package/src/kinds.ts +173 -0
- package/src/lint/audit-catalog.ts +230 -0
- package/src/lint/post-synth/cpl010-unrestricted-outbound.ts +41 -0
- package/src/lint/post-synth/cpl011-internal-firewall-scope.ts +38 -0
- package/src/lint/post-synth/cpl012-no-literal-credential-env.ts +58 -0
- package/src/lint/post-synth/cpl013-qualified-identity-principal.ts +45 -0
- package/src/lint/post-synth/cpl014-qualified-secret-ref.ts +54 -0
- package/src/lint/post-synth/cpl020-serverless-single-port.ts +58 -0
- package/src/lint/post-synth/cpl021-cron-job-shape.ts +64 -0
- package/src/lint/post-synth/cpl022-container-ports.ts +64 -0
- package/src/lint/post-synth/cpl023-container-resources.ts +87 -0
- package/src/lint/post-synth/cpl024-probe-handler.ts +51 -0
- package/src/lint/post-synth/cpl025-autoscaling-shape.ts +100 -0
- package/src/lint/post-synth/cpl026-scale-to-zero.ts +67 -0
- package/src/lint/post-synth/cpl027-capacity-ai-conflict.ts +78 -0
- package/src/lint/post-synth/cpl028-volume-set.ts +183 -0
- package/src/lint/post-synth/cpl029-link-targets.ts +155 -0
- package/src/lint/post-synth/cpl030-domain-routing.ts +137 -0
- package/src/lint/post-synth/cpl040-pinned-image.ts +48 -0
- package/src/lint/post-synth/cpl041-image-reference-form.ts +60 -0
- package/src/lint/post-synth/cpl042-gvc-placement.ts +57 -0
- package/src/lint/post-synth/cpl043-policy-scope.ts +0 -0
- package/src/lint/post-synth/helpers.ts +114 -0
- package/src/lint/post-synth/index.ts +45 -0
- package/src/lint/post-synth/post-synth.test.ts +737 -0
- package/src/lint/rules/cpl001-no-secret-literals.ts +83 -0
- package/src/lint/rules/cpl002-prefer-resource-reference.ts +71 -0
- package/src/lint/rules/index.ts +9 -0
- package/src/lint/rules/rules.test.ts +108 -0
- package/src/lsp/completions.test.ts +44 -0
- package/src/lsp/completions.ts +27 -0
- package/src/lsp/hover.test.ts +53 -0
- package/src/lsp/hover.ts +130 -0
- package/src/ownership.ts +28 -0
- package/src/package-cli.ts +25 -0
- package/src/plugin.test.ts +131 -0
- package/src/plugin.ts +187 -0
- package/src/reference-catalog.ts +110 -0
- package/src/serializer.test.ts +233 -0
- package/src/serializer.ts +253 -0
- package/src/skills/chant-cpln-secrets.md +110 -0
- package/src/skills/chant-cpln-workloads.md +78 -0
- package/src/skills/chant-cpln.md +103 -0
- package/src/spec/cpln-openapi.snapshot.json +10651 -0
- package/src/spec/fetch.ts +77 -0
- package/src/spec/parse.ts +451 -0
- package/src/spec/snapshot-cli.ts +71 -0
- package/src/validate-cli.ts +8 -0
- package/src/validate.ts +102 -0
|
@@ -0,0 +1,1649 @@
|
|
|
1
|
+
// Code generated by chant cpln generate. DO NOT EDIT.
|
|
2
|
+
|
|
3
|
+
// --- Control Plane resource classes ---
|
|
4
|
+
|
|
5
|
+
export declare class Domain {
|
|
6
|
+
constructor(props: {
|
|
7
|
+
name: string;
|
|
8
|
+
description?: string;
|
|
9
|
+
spec?: DomainSpec;
|
|
10
|
+
tags?: Record<string, string>;
|
|
11
|
+
});
|
|
12
|
+
readonly created: string;
|
|
13
|
+
readonly id: string;
|
|
14
|
+
readonly lastModified: string;
|
|
15
|
+
readonly links: Record<string, unknown>[];
|
|
16
|
+
readonly status: Record<string, unknown>;
|
|
17
|
+
readonly version: number;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export declare class Gvc {
|
|
21
|
+
constructor(props: {
|
|
22
|
+
name: string;
|
|
23
|
+
description?: string;
|
|
24
|
+
spec?: GvcSpec;
|
|
25
|
+
tags?: Record<string, string>;
|
|
26
|
+
});
|
|
27
|
+
readonly alias: string;
|
|
28
|
+
readonly created: string;
|
|
29
|
+
readonly id: string;
|
|
30
|
+
readonly lastModified: string;
|
|
31
|
+
readonly links: Record<string, unknown>[];
|
|
32
|
+
readonly status: Record<string, unknown>;
|
|
33
|
+
readonly version: number;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export declare class Identity {
|
|
37
|
+
constructor(props: {
|
|
38
|
+
/** Name of the GVC this resource belongs to. */
|
|
39
|
+
gvc: string;
|
|
40
|
+
name: string;
|
|
41
|
+
aws?: IdentityAws;
|
|
42
|
+
azure?: IdentityAzure;
|
|
43
|
+
description?: string;
|
|
44
|
+
gcp?: IdentityGcp;
|
|
45
|
+
memcacheAccess?: IdentityMemcacheAccess[];
|
|
46
|
+
nativeNetworkResources?: IdentityNativeNetworkResources[];
|
|
47
|
+
networkResources?: NetworkResource[];
|
|
48
|
+
ngs?: IdentityNgs;
|
|
49
|
+
spicedbAccess?: IdentitySpicedbAccess[];
|
|
50
|
+
tags?: Record<string, string>;
|
|
51
|
+
});
|
|
52
|
+
readonly created: string;
|
|
53
|
+
readonly id: string;
|
|
54
|
+
readonly lastModified: string;
|
|
55
|
+
readonly links: Record<string, unknown>[];
|
|
56
|
+
readonly status: Record<string, unknown>;
|
|
57
|
+
readonly version: number;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export declare class IpSet {
|
|
61
|
+
constructor(props: {
|
|
62
|
+
name: string;
|
|
63
|
+
description?: string;
|
|
64
|
+
spec?: IpSetSpec;
|
|
65
|
+
tags?: Record<string, string>;
|
|
66
|
+
});
|
|
67
|
+
readonly created: string;
|
|
68
|
+
readonly id: string;
|
|
69
|
+
readonly lastModified: string;
|
|
70
|
+
readonly links: Record<string, unknown>[];
|
|
71
|
+
readonly status: Record<string, unknown>;
|
|
72
|
+
readonly version: number;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export declare class Policy {
|
|
76
|
+
constructor(props: {
|
|
77
|
+
name: string;
|
|
78
|
+
targetKind: "accessreport" | "agent" | "auditctx" | "cloudaccount" | "command" | "dbcluster" | "deployment" | "domain" | "event" | "group" | "gvc" | "identity" | "image" | "imagesummary" | "ipset" | "location" | "memcachecluster" | "mk8s" | "org" | "permissions" | "policy" | "policymembership" | "quota" | "resource" | "resourcepolicy" | "secret" | "serviceaccount" | "spicedbcluster" | "task" | "tenant" | "user" | "volumeset" | "workload";
|
|
79
|
+
bindings?: PolicyBinding[];
|
|
80
|
+
description?: string;
|
|
81
|
+
origin?: "builtin" | "default";
|
|
82
|
+
tags?: Record<string, string>;
|
|
83
|
+
target?: "all";
|
|
84
|
+
targetLinks?: string[];
|
|
85
|
+
targetQuery?: Query;
|
|
86
|
+
});
|
|
87
|
+
readonly created: string;
|
|
88
|
+
readonly id: string;
|
|
89
|
+
readonly lastModified: string;
|
|
90
|
+
readonly links: Record<string, unknown>[];
|
|
91
|
+
readonly version: number;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
export declare class Secret {
|
|
95
|
+
constructor(props: {
|
|
96
|
+
name: string;
|
|
97
|
+
type: "aws" | "azure-connector" | "azure-sdk" | "dictionary" | "docker" | "ecr" | "gcp" | "keypair" | "nats-account" | "opaque" | "tls" | "userpass";
|
|
98
|
+
data?: SecretOpaque | SecretTls | string | SecretAwskey | Record<string, unknown> | SecretUserpass | SecretKeypair;
|
|
99
|
+
description?: string;
|
|
100
|
+
tags?: Record<string, string>;
|
|
101
|
+
});
|
|
102
|
+
readonly created: string;
|
|
103
|
+
readonly id: string;
|
|
104
|
+
readonly lastModified: string;
|
|
105
|
+
readonly links: Record<string, unknown>[];
|
|
106
|
+
readonly version: number;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
export declare class VolumeSet {
|
|
110
|
+
constructor(props: {
|
|
111
|
+
/** Name of the GVC this resource belongs to. */
|
|
112
|
+
gvc: string;
|
|
113
|
+
name: string;
|
|
114
|
+
description?: string;
|
|
115
|
+
spec?: VolumeSetSpec;
|
|
116
|
+
tags?: Record<string, string>;
|
|
117
|
+
});
|
|
118
|
+
readonly created: string;
|
|
119
|
+
readonly id: string;
|
|
120
|
+
readonly lastModified: string;
|
|
121
|
+
readonly links: Record<string, unknown>[];
|
|
122
|
+
readonly status: Record<string, unknown>;
|
|
123
|
+
readonly version: number;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
export declare class Workload {
|
|
127
|
+
constructor(props: {
|
|
128
|
+
/** Name of the GVC this resource belongs to. */
|
|
129
|
+
gvc: string;
|
|
130
|
+
/** Name of the workload (max 49 characters) */
|
|
131
|
+
name: string;
|
|
132
|
+
description?: string;
|
|
133
|
+
/** Workload specification */
|
|
134
|
+
spec?: WorkloadSpec;
|
|
135
|
+
tags?: Record<string, string>;
|
|
136
|
+
});
|
|
137
|
+
readonly created: string;
|
|
138
|
+
readonly health: Record<string, unknown>;
|
|
139
|
+
readonly id: string;
|
|
140
|
+
readonly lastModified: string;
|
|
141
|
+
readonly links: Record<string, unknown>[];
|
|
142
|
+
readonly status: Record<string, unknown>;
|
|
143
|
+
readonly version: number;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
// --- Property type classes ---
|
|
147
|
+
|
|
148
|
+
export declare class DomainSpec {
|
|
149
|
+
constructor(props: {
|
|
150
|
+
acceptAllHosts?: boolean;
|
|
151
|
+
acceptAllSubdomains?: boolean;
|
|
152
|
+
certChallengeType?: "dns01" | "http01";
|
|
153
|
+
/** In 'cname' dnsMode, Control Plane will configure workloads to accept traffic for the domain but will not manage DNS records for the domain.
|
|
154
|
+
End users configure CNAME records in their own DNS pointed to the canonical workload endpoint.
|
|
155
|
+
Currently 'cname' dnsMode requires that a tls.serverCertificate is configured when subdomain based routing is used.
|
|
156
|
+
In 'ns' dnsMode, Control Plane will manage the subdomains and create all necessary DNS records.
|
|
157
|
+
End users configure an NS record to forward DNS requests to the Control Plane managed DNS servers. */
|
|
158
|
+
dnsMode?: "cname" | "ns";
|
|
159
|
+
/** One of gvcLink and routes may be provided. When gvcLink is configured each workload in the GVC will receive a subdomain in the form ${workload.name}.${domain.name} */
|
|
160
|
+
gvcLink?: string;
|
|
161
|
+
ports?: DomainSpecPorts[];
|
|
162
|
+
workloadLink?: string;
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
export declare class DomainSpecPorts {
|
|
167
|
+
constructor(props: {
|
|
168
|
+
cors?: DomainSpecPortsCors;
|
|
169
|
+
number?: number;
|
|
170
|
+
protocol?: "http" | "http2" | "tcp";
|
|
171
|
+
/** A list of mappings to workloads. */
|
|
172
|
+
routes?: DomainSpecPortsRoutes[];
|
|
173
|
+
/** Used for TLS connections for this Domain. End users are responsible for certificate updates. */
|
|
174
|
+
tls?: DomainSpecPortsTls;
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
export declare class DomainSpecPortsCors {
|
|
179
|
+
constructor(props: {
|
|
180
|
+
allowCredentials?: boolean;
|
|
181
|
+
allowHeaders?: string[];
|
|
182
|
+
allowMethods?: string[];
|
|
183
|
+
allowOrigins?: DomainSpecPortsCorsAllowOrigins[];
|
|
184
|
+
exposeHeaders?: string[];
|
|
185
|
+
maxAge?: string;
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
export declare class DomainSpecPortsCorsAllowOrigins {
|
|
190
|
+
constructor(props: {
|
|
191
|
+
exact?: string;
|
|
192
|
+
regex?: string;
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
export declare class DomainSpecPortsRoutes {
|
|
197
|
+
constructor(props: {
|
|
198
|
+
/** Split traffic for this route across one or more additional workloads by weight. */
|
|
199
|
+
canaries?: DomainSpecPortsRoutesCanaries[];
|
|
200
|
+
/** Modify the headers for all http requests for this route. */
|
|
201
|
+
headers?: DomainSpecPortsRoutesHeaders;
|
|
202
|
+
/** This option allows forwarding traffic for different host headers to different workloads.
|
|
203
|
+
This will only be used when the target GVC has dedicated load balancing enabled and the Domain is configure for wildcard support.
|
|
204
|
+
Contact your account manager for details. */
|
|
205
|
+
hostPrefix?: string;
|
|
206
|
+
/** A regex to match the host header.
|
|
207
|
+
This will only be used when the target GVC has dedicated load balancing enabled and the Domain is configure for wildcard support.
|
|
208
|
+
Contact your account manager for details. */
|
|
209
|
+
hostRegex?: string;
|
|
210
|
+
mirror?: DomainSpecPortsRoutesMirror[];
|
|
211
|
+
port?: number;
|
|
212
|
+
prefix?: string;
|
|
213
|
+
/** Used to match URI paths.
|
|
214
|
+
One of prefix OR regex may be provided.
|
|
215
|
+
Uses the google re2 regex syntax */
|
|
216
|
+
regex?: string;
|
|
217
|
+
/** When provided, the URI prefix will be replaced with this string before the request is sent to the workload. */
|
|
218
|
+
replacePrefix?: string;
|
|
219
|
+
/** The replica number of a stateful workload to route to. If not provided, traffic will be routed to all replicas. */
|
|
220
|
+
replica?: number;
|
|
221
|
+
workloadLink?: string;
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
export declare class DomainSpecPortsRoutesCanaries {
|
|
226
|
+
constructor(props: {
|
|
227
|
+
/** The port to send canary traffic to. If not provided, the first configured port on the workload is used. */
|
|
228
|
+
port?: number;
|
|
229
|
+
/** The percentage of traffic to send to this canary workload. A weight of 0 disables the canary so it can be toggled on and off without removing it. */
|
|
230
|
+
weight?: number;
|
|
231
|
+
/** The canary workload to route a weighted percentage of traffic to. */
|
|
232
|
+
workloadLink?: string;
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
export declare class DomainSpecPortsRoutesHeaders {
|
|
237
|
+
constructor(props: {
|
|
238
|
+
/** Manipulates HTTP headers */
|
|
239
|
+
request?: DomainSpecPortsRoutesHeadersRequest;
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
export declare class DomainSpecPortsRoutesHeadersRequest {
|
|
244
|
+
constructor(props: {
|
|
245
|
+
/** Sets or overrides headers to all http requests for this route. */
|
|
246
|
+
set?: Record<string, unknown>;
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
export declare class DomainSpecPortsRoutesMirror {
|
|
251
|
+
constructor(props: {
|
|
252
|
+
/** The percentage of traffic to mirror to the specified workload. */
|
|
253
|
+
percent?: number;
|
|
254
|
+
/** The port to send mirrored traffic to. If not provided, traffic will be mirrored to the first discovered port on the mirrored workload */
|
|
255
|
+
port?: number;
|
|
256
|
+
/** The workload to mirror traffic to. */
|
|
257
|
+
workloadLink?: string;
|
|
258
|
+
});
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
export declare class DomainSpecPortsTls {
|
|
262
|
+
constructor(props: {
|
|
263
|
+
cipherSuites?: ("AES128-GCM-SHA256" | "AES128-SHA" | "AES256-GCM-SHA384" | "AES256-SHA" | "DES-CBC3-SHA" | "ECDHE-ECDSA-AES128-GCM-SHA256" | "ECDHE-ECDSA-AES256-GCM-SHA384" | "ECDHE-ECDSA-CHACHA20-POLY1305" | "ECDHE-RSA-AES128-GCM-SHA256" | "ECDHE-RSA-AES128-SHA" | "ECDHE-RSA-AES256-GCM-SHA384" | "ECDHE-RSA-AES256-SHA" | "ECDHE-RSA-CHACHA20-POLY1305" | "TLS_AES_128_GCM_SHA256" | "TLS_AES_256_GCM_SHA384" | "TLS_CHACHA20_POLY1305_SHA256" | "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256" | "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384" | "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256" | "TLS_RSA_WITH_AES_128_GCM_SHA256" | "TLS_RSA_WITH_AES_256_GCM_SHA384")[];
|
|
264
|
+
/** When clientCertificate is defined, requests may optionally supply a client certificate. The certificate details are included in the x-forwarded-client-cert header. */
|
|
265
|
+
clientCertificate?: DomainSpecPortsTlsClientCertificate;
|
|
266
|
+
minProtocolVersion?: "TLSV1_0" | "TLSV1_1" | "TLSV1_2" | "TLSV1_3";
|
|
267
|
+
/** Configure an optional custom server certificate for the domain. When the port number is 443 and this is not supplied, a certificate is provisioned automatically. */
|
|
268
|
+
serverCertificate?: DomainSpecPortsTlsServerCertificate;
|
|
269
|
+
});
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
export declare class DomainSpecPortsTlsClientCertificate {
|
|
273
|
+
constructor(props: {
|
|
274
|
+
/** The secret will include a client certificate authority cert in PEM format used to verify requests which include client certificates. The key subject must match the domain and the key usage properties must be configured for client certificate authorization. The secret type must be keypair. */
|
|
275
|
+
secretLink?: string;
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
export declare class DomainSpecPortsTlsServerCertificate {
|
|
280
|
+
constructor(props: {
|
|
281
|
+
/** When provided, this is used as the server certificate authority. The secret type must be keypair and the content must be PEM encoded. */
|
|
282
|
+
secretLink?: string;
|
|
283
|
+
});
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
export declare class GvcSpec {
|
|
287
|
+
constructor(props: {
|
|
288
|
+
/** Workload in this GVC whose canonical endpoint backs the GVC alias DNS record.
|
|
289
|
+
When set, ${alias}.cpln.app is published as a CNAME to the workload's canonical endpoint,
|
|
290
|
+
inheriting its HTTP health probes and per-location geo failover. When unset, the alias
|
|
291
|
+
resolves directly to cluster ingress endpoints with no application-level health awareness.
|
|
292
|
+
Has no effect while the referenced workload is globally suspended (defaultOptions.suspend
|
|
293
|
+
or defaultOptions.autoscaling.maxScale == 0); per-location suspends are ignored. */
|
|
294
|
+
aliasWorkloadLink?: string;
|
|
295
|
+
domain?: string;
|
|
296
|
+
/** Customizes the subdomain format for the canonical workload endpoint.
|
|
297
|
+
`default` leaves it as ${workloadName}-${gvcName}.cpln.app
|
|
298
|
+
`org` follows the scheme ${workloadName}-${gvcName}.${org}.cpln.app */
|
|
299
|
+
endpointNamingFormat?: "default" | "legacy" | "org";
|
|
300
|
+
/** These environment variables will be available to any workload in the GVC. Note: a workload must opt-in to receive these variables. */
|
|
301
|
+
env?: GvcSpecEnv[];
|
|
302
|
+
keda?: GvcSpecKeda;
|
|
303
|
+
loadBalancer?: GvcSpecLoadBalancer;
|
|
304
|
+
pullSecretLinks?: string[];
|
|
305
|
+
sidecar?: GvcSpecSidecar;
|
|
306
|
+
staticPlacement?: GvcSpecStaticPlacement;
|
|
307
|
+
tracing?: GvcSpecTracing;
|
|
308
|
+
});
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
export declare class GvcSpecEnv {
|
|
312
|
+
constructor(props: {
|
|
313
|
+
name?: string;
|
|
314
|
+
value?: string;
|
|
315
|
+
});
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
export declare class GvcSpecKeda {
|
|
319
|
+
constructor(props: {
|
|
320
|
+
/** Enable KEDA for this GVC.
|
|
321
|
+
KEDA is a Kubernetes-based event-driven autoscaler that allows you to scale workloads based on external events.
|
|
322
|
+
When enabled,a keda operator will be deployed in the GVC and workloads in the GVC can use KEDA to scale based on external metrics. */
|
|
323
|
+
enabled?: boolean;
|
|
324
|
+
/** A link to an Identity resource that will be used for KEDA.
|
|
325
|
+
This will allow the keda operator to access cloud and network resources. */
|
|
326
|
+
identityLink?: string;
|
|
327
|
+
/** A list of secrets to be used as TriggerAuthentication objects.
|
|
328
|
+
The TriggerAuthentication object will be named after the secret and can be used by triggers on workloads in this GVC. */
|
|
329
|
+
secrets?: string[];
|
|
330
|
+
});
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
export declare class GvcSpecLoadBalancer {
|
|
334
|
+
constructor(props: {
|
|
335
|
+
/** Creates a dedicated load balancer in each location and enables additional Domain features: custom ports, protocols and wildcard hostnames. Charges apply for each location. */
|
|
336
|
+
dedicated?: boolean;
|
|
337
|
+
/** A link to an IPSet resource that will be used for this load balancer */
|
|
338
|
+
ipSet?: string;
|
|
339
|
+
multiZone?: GvcSpecLoadBalancerMultiZone;
|
|
340
|
+
/** Specify the url to be redirected to for different http status codes. */
|
|
341
|
+
redirect?: GvcSpecLoadBalancerRedirect;
|
|
342
|
+
/** Controls the address used for request logging and for setting the X-Envoy-External-Address header.
|
|
343
|
+
If set to 1, then the last address in an existing X-Forwarded-For header will be used in place of the source client IP address.
|
|
344
|
+
If set to 2, then the second to last address in an existing X-Forwarded-For header will be used in place of the source client IP address. If the XFF header does not have at least two addresses or does not exist then the source client IP address will be used instead. */
|
|
345
|
+
trustedProxies?: number;
|
|
346
|
+
});
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
export declare class GvcSpecLoadBalancerMultiZone {
|
|
350
|
+
constructor(props: {
|
|
351
|
+
enabled?: boolean;
|
|
352
|
+
});
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
export declare class GvcSpecLoadBalancerRedirect {
|
|
356
|
+
constructor(props: {
|
|
357
|
+
/** Specify the redirect url for all status codes in a class */
|
|
358
|
+
class?: GvcSpecLoadBalancerRedirectClass;
|
|
359
|
+
});
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
export declare class GvcSpecLoadBalancerRedirectClass {
|
|
363
|
+
constructor(props: {
|
|
364
|
+
/** An optional url redirect for 401 responses.
|
|
365
|
+
Supports envoy format strings to include request information.
|
|
366
|
+
E.g. https://your-oauth-server/oauth2/authorize?return_to=%REQ(:path)%&client_id=your-client-id
|
|
367
|
+
*/
|
|
368
|
+
status401?: string;
|
|
369
|
+
/** Specify the redirect url for any 500 level status code */
|
|
370
|
+
status5xx?: string;
|
|
371
|
+
});
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
export declare class GvcSpecSidecar {
|
|
375
|
+
constructor(props: {
|
|
376
|
+
envoy?: Record<string, unknown>;
|
|
377
|
+
});
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
export declare class GvcSpecStaticPlacement {
|
|
381
|
+
constructor(props: {
|
|
382
|
+
locationLinks?: string[];
|
|
383
|
+
/** Per-location routing options for DNS geo routing. Allows configuring priority-based failover and latency adjustments per location. */
|
|
384
|
+
locationOptions?: GvcSpecStaticPlacementLocationOptions[];
|
|
385
|
+
locationQuery?: GvcSpecStaticPlacementLocationQuery;
|
|
386
|
+
});
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
export declare class GvcSpecStaticPlacementLocationOptions {
|
|
390
|
+
constructor(props: {
|
|
391
|
+
/** Artificial latency offset in milliseconds added to measured latency. Positive values push traffic away from this location, negative values attract traffic. Default: 0. */
|
|
392
|
+
latencyOffsetMs?: number;
|
|
393
|
+
/** Maximum acceptable latency in milliseconds. If measured latency exceeds this latencyToleranceMs, the location is treated as unavailable for DNS geo routing. */
|
|
394
|
+
latencyToleranceMs?: number;
|
|
395
|
+
locationLink?: string;
|
|
396
|
+
/** Routing tier for DNS geo routing. Lower value = higher priority. Locations with the same routingTier form a group; within a group, lowest latency wins. If all locations in the highest-priority group are unavailable, the next group is used. */
|
|
397
|
+
routingTier?: number;
|
|
398
|
+
});
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
export declare class GvcSpecStaticPlacementLocationQuery {
|
|
402
|
+
constructor(props: {
|
|
403
|
+
kind?: string;
|
|
404
|
+
spec?: GvcSpecStaticPlacementLocationQuerySpec;
|
|
405
|
+
});
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
export declare class GvcSpecStaticPlacementLocationQuerySpec {
|
|
409
|
+
constructor(props: {
|
|
410
|
+
match?: "all" | "any" | "none";
|
|
411
|
+
sort?: GvcSpecStaticPlacementLocationQuerySpecSort;
|
|
412
|
+
terms?: GvcSpecStaticPlacementLocationQuerySpecTerms[];
|
|
413
|
+
});
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
export declare class GvcSpecStaticPlacementLocationQuerySpecSort {
|
|
417
|
+
constructor(props: {
|
|
418
|
+
by?: string;
|
|
419
|
+
order?: "asc" | "desc";
|
|
420
|
+
});
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
export declare class GvcSpecStaticPlacementLocationQuerySpecTerms {
|
|
424
|
+
constructor(props: {
|
|
425
|
+
op?: "!=" | "!exists" | "<" | "<=" | "=" | "=~" | ">" | ">=" | "contains" | "exists" | "~";
|
|
426
|
+
property?: string;
|
|
427
|
+
rel?: string;
|
|
428
|
+
tag?: string;
|
|
429
|
+
value?: string | number | boolean;
|
|
430
|
+
});
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
export declare class GvcSpecTracing {
|
|
434
|
+
constructor(props: {
|
|
435
|
+
customTags?: Record<string, unknown>;
|
|
436
|
+
lightstep?: GvcSpecTracingLightstep;
|
|
437
|
+
provider?: GvcSpecTracingProvider;
|
|
438
|
+
sampling?: number;
|
|
439
|
+
});
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
export declare class GvcSpecTracingLightstep {
|
|
443
|
+
constructor(props: {
|
|
444
|
+
credentials?: string;
|
|
445
|
+
endpoint?: string;
|
|
446
|
+
});
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
export declare class GvcSpecTracingProvider {
|
|
450
|
+
constructor(props: {
|
|
451
|
+
controlplane?: Record<string, unknown>;
|
|
452
|
+
lightstep?: GvcSpecTracingProviderLightstep;
|
|
453
|
+
otel?: GvcSpecTracingProviderOtel;
|
|
454
|
+
});
|
|
455
|
+
}
|
|
456
|
+
|
|
457
|
+
export declare class GvcSpecTracingProviderLightstep {
|
|
458
|
+
constructor(props: {
|
|
459
|
+
credentials?: string;
|
|
460
|
+
endpoint?: string;
|
|
461
|
+
});
|
|
462
|
+
}
|
|
463
|
+
|
|
464
|
+
export declare class GvcSpecTracingProviderOtel {
|
|
465
|
+
constructor(props: {
|
|
466
|
+
endpoint?: string;
|
|
467
|
+
});
|
|
468
|
+
}
|
|
469
|
+
|
|
470
|
+
export declare class IdentityAws {
|
|
471
|
+
constructor(props: {
|
|
472
|
+
cloudAccountLink?: string;
|
|
473
|
+
policyRefs?: string[];
|
|
474
|
+
roleName?: string;
|
|
475
|
+
trustPolicy?: IdentityAwsTrustPolicy;
|
|
476
|
+
});
|
|
477
|
+
}
|
|
478
|
+
|
|
479
|
+
export declare class IdentityAwsTrustPolicy {
|
|
480
|
+
constructor(props: {
|
|
481
|
+
Statement?: Record<string, unknown>[];
|
|
482
|
+
Version?: string;
|
|
483
|
+
});
|
|
484
|
+
}
|
|
485
|
+
|
|
486
|
+
export declare class IdentityAzure {
|
|
487
|
+
constructor(props: {
|
|
488
|
+
cloudAccountLink?: string;
|
|
489
|
+
roleAssignments?: IdentityAzureRoleAssignments[];
|
|
490
|
+
});
|
|
491
|
+
}
|
|
492
|
+
|
|
493
|
+
export declare class IdentityAzureRoleAssignments {
|
|
494
|
+
constructor(props: {
|
|
495
|
+
roles?: string[];
|
|
496
|
+
scope?: string;
|
|
497
|
+
});
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
export declare class IdentityGcp {
|
|
501
|
+
constructor(props: {
|
|
502
|
+
bindings?: IdentityGcpBindings[];
|
|
503
|
+
cloudAccountLink?: string;
|
|
504
|
+
scopes?: string[];
|
|
505
|
+
serviceAccount?: string;
|
|
506
|
+
});
|
|
507
|
+
}
|
|
508
|
+
|
|
509
|
+
export declare class IdentityGcpBindings {
|
|
510
|
+
constructor(props: {
|
|
511
|
+
resource?: string;
|
|
512
|
+
roles?: string[];
|
|
513
|
+
});
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
export declare class IdentityMemcacheAccess {
|
|
517
|
+
constructor(props: {
|
|
518
|
+
clusterLink?: string;
|
|
519
|
+
role?: "readWrite";
|
|
520
|
+
});
|
|
521
|
+
}
|
|
522
|
+
|
|
523
|
+
export declare class IdentityNativeNetworkResources {
|
|
524
|
+
constructor(props: {
|
|
525
|
+
awsPrivateLink?: IdentityNativeNetworkResourcesAwsPrivateLink;
|
|
526
|
+
FQDN?: string;
|
|
527
|
+
gcpServiceConnect?: IdentityNativeNetworkResourcesGcpServiceConnect;
|
|
528
|
+
name?: string;
|
|
529
|
+
ports?: number[];
|
|
530
|
+
});
|
|
531
|
+
}
|
|
532
|
+
|
|
533
|
+
export declare class IdentityNativeNetworkResourcesAwsPrivateLink {
|
|
534
|
+
constructor(props: {
|
|
535
|
+
endpointServiceName?: string;
|
|
536
|
+
});
|
|
537
|
+
}
|
|
538
|
+
|
|
539
|
+
export declare class IdentityNativeNetworkResourcesGcpServiceConnect {
|
|
540
|
+
constructor(props: {
|
|
541
|
+
targetService?: string;
|
|
542
|
+
});
|
|
543
|
+
}
|
|
544
|
+
|
|
545
|
+
export declare class IdentityNgs {
|
|
546
|
+
constructor(props: {
|
|
547
|
+
cloudAccountLink?: string;
|
|
548
|
+
/** Max number of bytes a connection can send */
|
|
549
|
+
data?: number;
|
|
550
|
+
/** Max message payload */
|
|
551
|
+
payload?: number;
|
|
552
|
+
pub?: IdentityNgsPub;
|
|
553
|
+
resp?: IdentityNgsResp;
|
|
554
|
+
sub?: IdentityNgsSub;
|
|
555
|
+
/** Max number of subscriptions per connection */
|
|
556
|
+
subs?: number;
|
|
557
|
+
});
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
export declare class IdentityNgsPub {
|
|
561
|
+
constructor(props: {
|
|
562
|
+
allow?: string[];
|
|
563
|
+
deny?: string[];
|
|
564
|
+
});
|
|
565
|
+
}
|
|
566
|
+
|
|
567
|
+
export declare class IdentityNgsResp {
|
|
568
|
+
constructor(props: {
|
|
569
|
+
/** Number of responses allowed on the replyTo subject, -1 means no limit */
|
|
570
|
+
max?: number;
|
|
571
|
+
/** Deadline to send replies on the replyTo subject [#ms(millis) | #s(econds) | m(inutes) | h(ours)]. -1 means no restriction */
|
|
572
|
+
ttl?: string;
|
|
573
|
+
});
|
|
574
|
+
}
|
|
575
|
+
|
|
576
|
+
export declare class IdentityNgsSub {
|
|
577
|
+
constructor(props: {
|
|
578
|
+
allow?: string[];
|
|
579
|
+
deny?: string[];
|
|
580
|
+
});
|
|
581
|
+
}
|
|
582
|
+
|
|
583
|
+
export declare class IdentitySpicedbAccess {
|
|
584
|
+
constructor(props: {
|
|
585
|
+
clusterLink?: string;
|
|
586
|
+
role?: "checkPermission" | "read" | "write";
|
|
587
|
+
});
|
|
588
|
+
}
|
|
589
|
+
|
|
590
|
+
export declare class IpSetLocation {
|
|
591
|
+
constructor(props: {
|
|
592
|
+
name?: string;
|
|
593
|
+
retentionPolicy?: "free" | "keep";
|
|
594
|
+
});
|
|
595
|
+
}
|
|
596
|
+
|
|
597
|
+
export declare class IpSetSpec {
|
|
598
|
+
constructor(props: {
|
|
599
|
+
link?: string;
|
|
600
|
+
locations?: IpSetLocation[];
|
|
601
|
+
});
|
|
602
|
+
}
|
|
603
|
+
|
|
604
|
+
export declare class NetworkResource {
|
|
605
|
+
constructor(props: {
|
|
606
|
+
agentLink?: string;
|
|
607
|
+
FQDN?: string;
|
|
608
|
+
IPs?: string[];
|
|
609
|
+
name?: string;
|
|
610
|
+
ports?: number[];
|
|
611
|
+
resolverIP?: string;
|
|
612
|
+
});
|
|
613
|
+
}
|
|
614
|
+
|
|
615
|
+
export declare class PolicyBinding {
|
|
616
|
+
constructor(props: {
|
|
617
|
+
permissions?: string[];
|
|
618
|
+
principalLinks?: string[];
|
|
619
|
+
});
|
|
620
|
+
}
|
|
621
|
+
|
|
622
|
+
export declare class Query {
|
|
623
|
+
constructor(props: {
|
|
624
|
+
kind?: string;
|
|
625
|
+
spec?: QuerySpec;
|
|
626
|
+
});
|
|
627
|
+
}
|
|
628
|
+
|
|
629
|
+
export declare class QuerySpec {
|
|
630
|
+
constructor(props: {
|
|
631
|
+
match?: "all" | "any" | "none";
|
|
632
|
+
sort?: QuerySpecSort;
|
|
633
|
+
terms?: QuerySpecTerms[];
|
|
634
|
+
});
|
|
635
|
+
}
|
|
636
|
+
|
|
637
|
+
export declare class QuerySpecSort {
|
|
638
|
+
constructor(props: {
|
|
639
|
+
by?: string;
|
|
640
|
+
order?: "asc" | "desc";
|
|
641
|
+
});
|
|
642
|
+
}
|
|
643
|
+
|
|
644
|
+
export declare class QuerySpecTerms {
|
|
645
|
+
constructor(props: {
|
|
646
|
+
op?: "!=" | "!exists" | "<" | "<=" | "=" | "=~" | ">" | ">=" | "contains" | "exists" | "~";
|
|
647
|
+
property?: string;
|
|
648
|
+
rel?: string;
|
|
649
|
+
tag?: string;
|
|
650
|
+
value?: string | number | boolean;
|
|
651
|
+
});
|
|
652
|
+
}
|
|
653
|
+
|
|
654
|
+
export declare class SecretAwskey {
|
|
655
|
+
constructor(props: {
|
|
656
|
+
accessKey?: string;
|
|
657
|
+
externalId?: string;
|
|
658
|
+
roleArn?: string;
|
|
659
|
+
secretKey?: string;
|
|
660
|
+
});
|
|
661
|
+
}
|
|
662
|
+
|
|
663
|
+
export declare class SecretKeypair {
|
|
664
|
+
constructor(props: {
|
|
665
|
+
passphrase?: string;
|
|
666
|
+
publicKey?: string;
|
|
667
|
+
secretKey?: string;
|
|
668
|
+
});
|
|
669
|
+
}
|
|
670
|
+
|
|
671
|
+
export declare class SecretOpaque {
|
|
672
|
+
constructor(props: {
|
|
673
|
+
encoding?: "base64" | "plain";
|
|
674
|
+
payload?: string;
|
|
675
|
+
});
|
|
676
|
+
}
|
|
677
|
+
|
|
678
|
+
export declare class SecretTls {
|
|
679
|
+
constructor(props: {
|
|
680
|
+
cert?: string;
|
|
681
|
+
chain?: string;
|
|
682
|
+
key?: string;
|
|
683
|
+
});
|
|
684
|
+
}
|
|
685
|
+
|
|
686
|
+
export declare class SecretUserpass {
|
|
687
|
+
constructor(props: {
|
|
688
|
+
encoding?: "base64" | "plain";
|
|
689
|
+
password?: string;
|
|
690
|
+
username?: string;
|
|
691
|
+
});
|
|
692
|
+
}
|
|
693
|
+
|
|
694
|
+
export declare class VolumeSetSpec {
|
|
695
|
+
constructor(props: {
|
|
696
|
+
autoscaling?: VolumeSetSpecAutoscaling;
|
|
697
|
+
/** Configure customer-managed encryption keys for volumes in this set on a per-region basis. Region names must follow the format: {cloud-provider}-{region} (e.g., aws-us-east-1). */
|
|
698
|
+
customEncryption?: VolumeSetSpecCustomEncryption;
|
|
699
|
+
fileSystemType?: "ext4" | "shared" | "xfs";
|
|
700
|
+
/** The initial size in GB of volumes in this set. */
|
|
701
|
+
initialCapacity?: number;
|
|
702
|
+
/** A list of mount options to use when mounting volumes in this set. */
|
|
703
|
+
mountOptions?: VolumeSetSpecMountOptions;
|
|
704
|
+
performanceClass?: "general-purpose-ssd" | "high-throughput-ssd" | "shared";
|
|
705
|
+
snapshots?: VolumeSetSpecSnapshots;
|
|
706
|
+
/** For self-hosted locations only. The storage class used for volumes in this set will be {performanceClass}-{fileSystemType}-{storageClassSuffix} if it exists, otherwise it will be {performanceClass}-{fileSystemType} */
|
|
707
|
+
storageClassSuffix?: string;
|
|
708
|
+
});
|
|
709
|
+
}
|
|
710
|
+
|
|
711
|
+
export declare class VolumeSetSpecAutoscaling {
|
|
712
|
+
constructor(props: {
|
|
713
|
+
/** The maximum size in GB for a volume in this set. A volume cannot grow to be bigger than this. */
|
|
714
|
+
maxCapacity?: number;
|
|
715
|
+
/** The guaranteed free space on the volume as a percentage of the volume's total size. ControlPlane will try to maintain at least that many percent free by scaling up the total size */
|
|
716
|
+
minFreePercentage?: number;
|
|
717
|
+
/** Predictive scaling configuration. When enabled, proactively expands volumes based on historical growth rate projections. */
|
|
718
|
+
predictive?: VolumeSetSpecAutoscalingPredictive;
|
|
719
|
+
/** When scaling is necessary, then new_capacity = current_capacity * storageScalingFactor. */
|
|
720
|
+
scalingFactor?: number;
|
|
721
|
+
});
|
|
722
|
+
}
|
|
723
|
+
|
|
724
|
+
export declare class VolumeSetSpecAutoscalingPredictive {
|
|
725
|
+
constructor(props: {
|
|
726
|
+
/** Enable predictive scaling based on historical growth rates. Default: false. */
|
|
727
|
+
enabled?: boolean;
|
|
728
|
+
/** Hours of historical data to analyze. Default: 24. Max: 168 (1 week). */
|
|
729
|
+
lookbackHours?: number;
|
|
730
|
+
/** Minimum data points required for reliable growth rate calculation. Default: 10. */
|
|
731
|
+
minDataPoints?: number;
|
|
732
|
+
/** Minimum growth rate (GB/hour) to trigger predictive expansion. Default: 0.01. */
|
|
733
|
+
minGrowthRateGBPerHour?: number;
|
|
734
|
+
/** Hours into the future to project storage needs. Default: 6. */
|
|
735
|
+
projectionHours?: number;
|
|
736
|
+
/** Scaling factor for predictive expansion. If not set, uses the parent autoscaling.scalingFactor. Use a lower value (e.g., 1.2) for gentler proactive scaling. */
|
|
737
|
+
scalingFactor?: number;
|
|
738
|
+
});
|
|
739
|
+
}
|
|
740
|
+
|
|
741
|
+
export declare class VolumeSetSpecCustomEncryption {
|
|
742
|
+
constructor(props: {
|
|
743
|
+
regions?: Record<string, unknown>;
|
|
744
|
+
});
|
|
745
|
+
}
|
|
746
|
+
|
|
747
|
+
export declare class VolumeSetSpecMountOptions {
|
|
748
|
+
constructor(props: {
|
|
749
|
+
/** For volume sets using the shared file system, this object specifies the CPU and memory resources allotted to each mount point */
|
|
750
|
+
resources?: VolumeSetSpecMountOptionsResources;
|
|
751
|
+
});
|
|
752
|
+
}
|
|
753
|
+
|
|
754
|
+
export declare class VolumeSetSpecMountOptionsResources {
|
|
755
|
+
constructor(props: {
|
|
756
|
+
/** CPU allocation specified as millicores (e.g., 50m, 1000m) */
|
|
757
|
+
maxCpu?: string;
|
|
758
|
+
/** Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes. */
|
|
759
|
+
maxMemory?: string;
|
|
760
|
+
/** CPU allocation specified as millicores (e.g., 50m, 1000m) */
|
|
761
|
+
minCpu?: string;
|
|
762
|
+
/** Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes. */
|
|
763
|
+
minMemory?: string;
|
|
764
|
+
});
|
|
765
|
+
}
|
|
766
|
+
|
|
767
|
+
export declare class VolumeSetSpecSnapshots {
|
|
768
|
+
constructor(props: {
|
|
769
|
+
/** If true, a volume snapshot will be created immediately before deletion of any volume in this set */
|
|
770
|
+
createFinalSnapshot?: boolean;
|
|
771
|
+
/** The default retention period for volume snapshots. This string should contain a floating point number followed by either d, h, or m. For example, "10d" would retain snapshots for 10 days. */
|
|
772
|
+
retentionDuration?: string;
|
|
773
|
+
/** A standard cron schedule expression used to determine when your job should execute. */
|
|
774
|
+
schedule?: string;
|
|
775
|
+
});
|
|
776
|
+
}
|
|
777
|
+
|
|
778
|
+
export declare class WorkloadSpec {
|
|
779
|
+
constructor(props: {
|
|
780
|
+
/** List of containers that make up the workload */
|
|
781
|
+
containers?: WorkloadSpecContainers[];
|
|
782
|
+
/** Set defaultOptions for the workload in all Control Plane Locations. */
|
|
783
|
+
defaultOptions?: WorkloadSpecDefaultOptions;
|
|
784
|
+
/** Additional Kubernetes customizations for BYOK */
|
|
785
|
+
extras?: WorkloadSpecExtras;
|
|
786
|
+
/** Optional control of inbound and outbound access to the workload for external (public) and internal (service to service) traffic. Access is restricted by default. */
|
|
787
|
+
firewallConfig?: WorkloadSpecFirewallConfig;
|
|
788
|
+
/** The identityLink is used as the access scope for 3rd party cloud resources. A single identity can provide access to multiple cloud providers. */
|
|
789
|
+
identityLink?: string;
|
|
790
|
+
/** Job configuration for cron workloads */
|
|
791
|
+
job?: WorkloadSpecJob;
|
|
792
|
+
/** Load balancer configuration */
|
|
793
|
+
loadBalancer?: WorkloadSpecLoadBalancer;
|
|
794
|
+
/** Override defaultOptions for the workload in specific Control Plane Locations. */
|
|
795
|
+
localOptions?: WorkloadSpecLocalOptions[];
|
|
796
|
+
/** Policy for retrying failed requests */
|
|
797
|
+
requestRetryPolicy?: WorkloadSpecRequestRetryPolicy;
|
|
798
|
+
/** Configuration for how workload updates are rolled out */
|
|
799
|
+
rolloutOptions?: WorkloadSpecRolloutOptions;
|
|
800
|
+
/** Security context for the workload */
|
|
801
|
+
securityOptions?: WorkloadSpecSecurityOptions;
|
|
802
|
+
/** Sidecar container configuration */
|
|
803
|
+
sidecar?: WorkloadSpecSidecar;
|
|
804
|
+
/** If this is enabled, Control Plane will automatically redeploy your workload when one of the container images is updated in the container registry. */
|
|
805
|
+
supportDynamicTags?: boolean;
|
|
806
|
+
/** Type of workload: standard (always running), cron (scheduled jobs), stateful (persistent state), serverless (rapid autoscaling), or vm (KubeVirt-backed virtual machine). */
|
|
807
|
+
type?: "cron" | "serverless" | "standard" | "stateful" | "vm";
|
|
808
|
+
/** VM-only configuration. Required when type=vm; rejected otherwise. */
|
|
809
|
+
vm?: WorkloadSpecVm;
|
|
810
|
+
});
|
|
811
|
+
}
|
|
812
|
+
|
|
813
|
+
export declare class WorkloadSpecContainers {
|
|
814
|
+
constructor(props: {
|
|
815
|
+
/** Command line arguments passed to the container at runtime. Replaces the CMD arguments of the running container. It is an ordered list. */
|
|
816
|
+
args?: string[];
|
|
817
|
+
/** Optionally override the entrypoint */
|
|
818
|
+
command?: string;
|
|
819
|
+
/** reserved CPU of the workload when capacityAI is disabled. maximum CPU when CapacityAI is enabled. */
|
|
820
|
+
cpu?: string;
|
|
821
|
+
/** Environment variables for the container at runtime. Default environment variables are also provided: CPLN_GVC, CPLN_LOCATION, CPLN_ORG, CPLN_PROVIDER, CPLN_WORKLOAD */
|
|
822
|
+
env?: WorkloadSpecContainersEnv[];
|
|
823
|
+
/** Reserved GPU resources for the workload. */
|
|
824
|
+
gpu?: WorkloadSpecContainersGpu;
|
|
825
|
+
/** 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. */
|
|
826
|
+
image?: string;
|
|
827
|
+
/** Enables inheritance of GVC environment variables. A variable in spec.env will override a GVC variable with the same name. */
|
|
828
|
+
inheritEnv?: boolean;
|
|
829
|
+
/** Lifecycle hooks for the container */
|
|
830
|
+
lifecycle?: WorkloadSpecContainersLifecycle;
|
|
831
|
+
/** A Probe to check if the workload is healthy or should be restarted. */
|
|
832
|
+
livenessProbe?: WorkloadSpecContainersLivenessProbe;
|
|
833
|
+
/** reserved memory of the workload when capacityAI is disabled. maximum memory when CapacityAI is enabled. */
|
|
834
|
+
memory?: string;
|
|
835
|
+
/** Prometheus metrics configuration for the container */
|
|
836
|
+
metrics?: WorkloadSpecContainersMetrics;
|
|
837
|
+
/** Minimum CPU when capacityAI is enabled. */
|
|
838
|
+
minCpu?: string;
|
|
839
|
+
/** Minimum memory when capacityAI is enabled */
|
|
840
|
+
minMemory?: string;
|
|
841
|
+
/** The name of the container. */
|
|
842
|
+
name?: string;
|
|
843
|
+
/** The port in the container which receives external traffic or traffic from other workloads. Only one container is allowed to specify a port. */
|
|
844
|
+
port?: number;
|
|
845
|
+
/** The ports in the container which can receive internal and external traffic. For serverless workloads only the first port will be used. */
|
|
846
|
+
ports?: WorkloadSpecContainersPorts[];
|
|
847
|
+
/** A Probe to check if the workload is ready to receive additional traffic. */
|
|
848
|
+
readinessProbe?: WorkloadSpecContainersReadinessProbe;
|
|
849
|
+
/** Mount Object Store (S3, GCS, AzureBlob) buckets as file system */
|
|
850
|
+
volumes?: WorkloadSpecContainersVolumes[];
|
|
851
|
+
/** The working directory for the container process */
|
|
852
|
+
workingDir?: string;
|
|
853
|
+
});
|
|
854
|
+
}
|
|
855
|
+
|
|
856
|
+
export declare class WorkloadSpecContainersEnv {
|
|
857
|
+
constructor(props: {
|
|
858
|
+
name?: string;
|
|
859
|
+
value?: string;
|
|
860
|
+
});
|
|
861
|
+
}
|
|
862
|
+
|
|
863
|
+
export declare class WorkloadSpecContainersGpu {
|
|
864
|
+
constructor(props: {
|
|
865
|
+
/** Custom GPU resource specification for non-NVIDIA GPUs */
|
|
866
|
+
custom?: WorkloadSpecContainersGpuCustom;
|
|
867
|
+
/** NVIDIA GPU resource specification */
|
|
868
|
+
nvidia?: WorkloadSpecContainersGpuNvidia;
|
|
869
|
+
});
|
|
870
|
+
}
|
|
871
|
+
|
|
872
|
+
export declare class WorkloadSpecContainersGpuCustom {
|
|
873
|
+
constructor(props: {
|
|
874
|
+
/** Number of custom GPUs to allocate */
|
|
875
|
+
quantity?: number;
|
|
876
|
+
/** Custom GPU resource name (e.g., amd.com/gpu) */
|
|
877
|
+
resource?: string;
|
|
878
|
+
/** Runtime class for custom GPU */
|
|
879
|
+
runtimeClass?: string;
|
|
880
|
+
});
|
|
881
|
+
}
|
|
882
|
+
|
|
883
|
+
export declare class WorkloadSpecContainersGpuNvidia {
|
|
884
|
+
constructor(props: {
|
|
885
|
+
/** NVIDIA GPU model (t4 or a10g) */
|
|
886
|
+
model?: Record<string, unknown>;
|
|
887
|
+
/** Number of NVIDIA GPUs to allocate */
|
|
888
|
+
quantity?: number;
|
|
889
|
+
});
|
|
890
|
+
}
|
|
891
|
+
|
|
892
|
+
export declare class WorkloadSpecContainersLifecycle {
|
|
893
|
+
constructor(props: {
|
|
894
|
+
/** Actions to perform after the container starts */
|
|
895
|
+
postStart?: WorkloadSpecContainersLifecyclePostStart;
|
|
896
|
+
/** Actions to perform before the container stops */
|
|
897
|
+
preStop?: WorkloadSpecContainersLifecyclePreStop;
|
|
898
|
+
});
|
|
899
|
+
}
|
|
900
|
+
|
|
901
|
+
export declare class WorkloadSpecContainersLifecyclePostStart {
|
|
902
|
+
constructor(props: {
|
|
903
|
+
/** Execute a command when the container starts */
|
|
904
|
+
exec?: WorkloadSpecContainersLifecyclePostStartExec;
|
|
905
|
+
});
|
|
906
|
+
}
|
|
907
|
+
|
|
908
|
+
export declare class WorkloadSpecContainersLifecyclePostStartExec {
|
|
909
|
+
constructor(props: {
|
|
910
|
+
/** Command and arguments executed immediately after the container is created. */
|
|
911
|
+
command?: string[];
|
|
912
|
+
});
|
|
913
|
+
}
|
|
914
|
+
|
|
915
|
+
export declare class WorkloadSpecContainersLifecyclePreStop {
|
|
916
|
+
constructor(props: {
|
|
917
|
+
/** Execute a command before the container stops */
|
|
918
|
+
exec?: WorkloadSpecContainersLifecyclePreStopExec;
|
|
919
|
+
});
|
|
920
|
+
}
|
|
921
|
+
|
|
922
|
+
export declare class WorkloadSpecContainersLifecyclePreStopExec {
|
|
923
|
+
constructor(props: {
|
|
924
|
+
/** Command and arguments executed immediately before the container is stopped. */
|
|
925
|
+
command?: string[];
|
|
926
|
+
});
|
|
927
|
+
}
|
|
928
|
+
|
|
929
|
+
export declare class WorkloadSpecContainersLivenessProbe {
|
|
930
|
+
constructor(props: {
|
|
931
|
+
/** Execute a command to check health */
|
|
932
|
+
exec?: WorkloadSpecContainersLivenessProbeExec;
|
|
933
|
+
/** Minimum consecutive failures for the health check to be considered failed after having succeeded */
|
|
934
|
+
failureThreshold?: number;
|
|
935
|
+
/** Perform a gRPC health check */
|
|
936
|
+
grpc?: WorkloadSpecContainersLivenessProbeGrpc;
|
|
937
|
+
/** Perform an HTTP GET health check */
|
|
938
|
+
httpGet?: WorkloadSpecContainersLivenessProbeHttpGet;
|
|
939
|
+
/** Number of seconds to wait before performing the first health check */
|
|
940
|
+
initialDelaySeconds?: number;
|
|
941
|
+
/** How often (in seconds) to perform the health check */
|
|
942
|
+
periodSeconds?: number;
|
|
943
|
+
/** Minimum consecutive successes for the health check to be considered successful after having failed */
|
|
944
|
+
successThreshold?: number;
|
|
945
|
+
/** Perform a TCP socket health check */
|
|
946
|
+
tcpSocket?: WorkloadSpecContainersLivenessProbeTcpSocket;
|
|
947
|
+
/** Number of seconds after which the health check times out */
|
|
948
|
+
timeoutSeconds?: number;
|
|
949
|
+
});
|
|
950
|
+
}
|
|
951
|
+
|
|
952
|
+
export declare class WorkloadSpecContainersLivenessProbeExec {
|
|
953
|
+
constructor(props: {
|
|
954
|
+
/** Command to execute for the health check */
|
|
955
|
+
command?: string[];
|
|
956
|
+
});
|
|
957
|
+
}
|
|
958
|
+
|
|
959
|
+
export declare class WorkloadSpecContainersLivenessProbeGrpc {
|
|
960
|
+
constructor(props: {
|
|
961
|
+
/** Port to perform the gRPC health check on */
|
|
962
|
+
port?: number;
|
|
963
|
+
});
|
|
964
|
+
}
|
|
965
|
+
|
|
966
|
+
export declare class WorkloadSpecContainersLivenessProbeHttpGet {
|
|
967
|
+
constructor(props: {
|
|
968
|
+
/** Custom HTTP headers to include in the health check request */
|
|
969
|
+
httpHeaders?: WorkloadSpecContainersLivenessProbeHttpGetHttpHeaders[];
|
|
970
|
+
/** HTTP path to request for the health check */
|
|
971
|
+
path?: string;
|
|
972
|
+
/** Port to perform the HTTP health check on */
|
|
973
|
+
port?: number;
|
|
974
|
+
/** HTTP scheme to use (HTTP or HTTPS) */
|
|
975
|
+
scheme?: "HTTP" | "HTTPS";
|
|
976
|
+
});
|
|
977
|
+
}
|
|
978
|
+
|
|
979
|
+
export declare class WorkloadSpecContainersLivenessProbeHttpGetHttpHeaders {
|
|
980
|
+
constructor(props: {
|
|
981
|
+
/** HTTP header name */
|
|
982
|
+
name?: string;
|
|
983
|
+
/** HTTP header value */
|
|
984
|
+
value?: string;
|
|
985
|
+
});
|
|
986
|
+
}
|
|
987
|
+
|
|
988
|
+
export declare class WorkloadSpecContainersLivenessProbeTcpSocket {
|
|
989
|
+
constructor(props: {
|
|
990
|
+
/** Port to perform the TCP socket check on */
|
|
991
|
+
port?: number;
|
|
992
|
+
});
|
|
993
|
+
}
|
|
994
|
+
|
|
995
|
+
export declare class WorkloadSpecContainersMetrics {
|
|
996
|
+
constructor(props: {
|
|
997
|
+
/** Drop metrics that match given patterns */
|
|
998
|
+
dropMetrics?: string[];
|
|
999
|
+
/** HTTP path where Prometheus metrics are exposed */
|
|
1000
|
+
path?: string;
|
|
1001
|
+
/** Port where Prometheus metrics are exposed */
|
|
1002
|
+
port?: number;
|
|
1003
|
+
});
|
|
1004
|
+
}
|
|
1005
|
+
|
|
1006
|
+
export declare class WorkloadSpecContainersPorts {
|
|
1007
|
+
constructor(props: {
|
|
1008
|
+
/** Port number */
|
|
1009
|
+
number?: number;
|
|
1010
|
+
/** Protocol used by the port (http, http2, grpc, or tcp) */
|
|
1011
|
+
protocol?: "grpc" | "http" | "http2" | "tcp";
|
|
1012
|
+
});
|
|
1013
|
+
}
|
|
1014
|
+
|
|
1015
|
+
export declare class WorkloadSpecContainersReadinessProbe {
|
|
1016
|
+
constructor(props: {
|
|
1017
|
+
/** Execute a command to check health */
|
|
1018
|
+
exec?: WorkloadSpecContainersReadinessProbeExec;
|
|
1019
|
+
/** Minimum consecutive failures for the health check to be considered failed after having succeeded */
|
|
1020
|
+
failureThreshold?: number;
|
|
1021
|
+
/** Perform a gRPC health check */
|
|
1022
|
+
grpc?: WorkloadSpecContainersReadinessProbeGrpc;
|
|
1023
|
+
/** Perform an HTTP GET health check */
|
|
1024
|
+
httpGet?: WorkloadSpecContainersReadinessProbeHttpGet;
|
|
1025
|
+
/** Number of seconds to wait before performing the first health check */
|
|
1026
|
+
initialDelaySeconds?: number;
|
|
1027
|
+
/** How often (in seconds) to perform the health check */
|
|
1028
|
+
periodSeconds?: number;
|
|
1029
|
+
/** Minimum consecutive successes for the health check to be considered successful after having failed */
|
|
1030
|
+
successThreshold?: number;
|
|
1031
|
+
/** Perform a TCP socket health check */
|
|
1032
|
+
tcpSocket?: WorkloadSpecContainersReadinessProbeTcpSocket;
|
|
1033
|
+
/** Number of seconds after which the health check times out */
|
|
1034
|
+
timeoutSeconds?: number;
|
|
1035
|
+
});
|
|
1036
|
+
}
|
|
1037
|
+
|
|
1038
|
+
export declare class WorkloadSpecContainersReadinessProbeExec {
|
|
1039
|
+
constructor(props: {
|
|
1040
|
+
/** Command to execute for the health check */
|
|
1041
|
+
command?: string[];
|
|
1042
|
+
});
|
|
1043
|
+
}
|
|
1044
|
+
|
|
1045
|
+
export declare class WorkloadSpecContainersReadinessProbeGrpc {
|
|
1046
|
+
constructor(props: {
|
|
1047
|
+
/** Port to perform the gRPC health check on */
|
|
1048
|
+
port?: number;
|
|
1049
|
+
});
|
|
1050
|
+
}
|
|
1051
|
+
|
|
1052
|
+
export declare class WorkloadSpecContainersReadinessProbeHttpGet {
|
|
1053
|
+
constructor(props: {
|
|
1054
|
+
/** Custom HTTP headers to include in the health check request */
|
|
1055
|
+
httpHeaders?: WorkloadSpecContainersReadinessProbeHttpGetHttpHeaders[];
|
|
1056
|
+
/** HTTP path to request for the health check */
|
|
1057
|
+
path?: string;
|
|
1058
|
+
/** Port to perform the HTTP health check on */
|
|
1059
|
+
port?: number;
|
|
1060
|
+
/** HTTP scheme to use (HTTP or HTTPS) */
|
|
1061
|
+
scheme?: "HTTP" | "HTTPS";
|
|
1062
|
+
});
|
|
1063
|
+
}
|
|
1064
|
+
|
|
1065
|
+
export declare class WorkloadSpecContainersReadinessProbeHttpGetHttpHeaders {
|
|
1066
|
+
constructor(props: {
|
|
1067
|
+
/** HTTP header name */
|
|
1068
|
+
name?: string;
|
|
1069
|
+
/** HTTP header value */
|
|
1070
|
+
value?: string;
|
|
1071
|
+
});
|
|
1072
|
+
}
|
|
1073
|
+
|
|
1074
|
+
export declare class WorkloadSpecContainersReadinessProbeTcpSocket {
|
|
1075
|
+
constructor(props: {
|
|
1076
|
+
/** Port to perform the TCP socket check on */
|
|
1077
|
+
port?: number;
|
|
1078
|
+
});
|
|
1079
|
+
}
|
|
1080
|
+
|
|
1081
|
+
export declare class WorkloadSpecContainersVolumes {
|
|
1082
|
+
constructor(props: {
|
|
1083
|
+
/** VM disk boot order. Only valid for type=vm. */
|
|
1084
|
+
bootOrder?: number;
|
|
1085
|
+
/** VM disk bus. Only valid for type=vm. A cpln://secret/ volume on a sata or scsi bus is presented to the guest as a read-only CD-ROM. */
|
|
1086
|
+
bus?: "sata" | "scsi" | "virtio";
|
|
1087
|
+
/** VM disk name. Required for type=vm; rejected for other workload types. */
|
|
1088
|
+
name?: string;
|
|
1089
|
+
/** Mount path inside the container. Required for non-vm workloads; rejected for type=vm. */
|
|
1090
|
+
path?: string;
|
|
1091
|
+
/** Only applicable to persistent volumes, this determines what Control Plane will do when creating a new workload replica if a corresponding volume exists. */
|
|
1092
|
+
recoveryPolicy?: "recycle" | "retain";
|
|
1093
|
+
uri?: string;
|
|
1094
|
+
});
|
|
1095
|
+
}
|
|
1096
|
+
|
|
1097
|
+
export declare class WorkloadSpecDefaultOptions {
|
|
1098
|
+
constructor(props: {
|
|
1099
|
+
autoscaling?: WorkloadSpecDefaultOptionsAutoscaling;
|
|
1100
|
+
/** Enables intelligent dynamic resource allocation of CPU and Memory for each container by setting resource reservations using analysis of historical usage data. This can significantly reduce cost but may cause temporary performance issues for workloads with sudden spikes in usage. */
|
|
1101
|
+
capacityAI?: boolean;
|
|
1102
|
+
/** The highest frequency capacity AI is allowed to update resource reservations when CapacityAI is enabled. */
|
|
1103
|
+
capacityAIUpdateMinutes?: number;
|
|
1104
|
+
/** Enables debug response headers when the headers "x-cpln-debug: true" is in the request. */
|
|
1105
|
+
debug?: boolean;
|
|
1106
|
+
multiZone?: WorkloadSpecDefaultOptionsMultiZone;
|
|
1107
|
+
/** Enables use of spot instances to reduce cost of running workloads with an increasedpotential of rescheduling workloads onto new nodes when they are forced to terminate. */
|
|
1108
|
+
spot?: boolean;
|
|
1109
|
+
suspend?: boolean;
|
|
1110
|
+
/** The maximum request duration that is allowed for Control Plane to respond.This timeout can be reached when the Control Plane is waiting for the workload to respond or waitingfor a new workload to become available when using Autoscaling. */
|
|
1111
|
+
timeoutSeconds?: number;
|
|
1112
|
+
});
|
|
1113
|
+
}
|
|
1114
|
+
|
|
1115
|
+
export declare class WorkloadSpecDefaultOptionsAutoscaling {
|
|
1116
|
+
constructor(props: {
|
|
1117
|
+
keda?: WorkloadSpecDefaultOptionsAutoscalingKeda;
|
|
1118
|
+
/** A hard maximum for the number of concurrent requests allowed to a replica. If no replicas are available to fulfill the request then it will be queued until a replica with capacity is available and delivered as soon as one is available again. Capacity can be available from requests completing or when a new replica is available from scale out. A value of 0 allows all requests. */
|
|
1119
|
+
maxConcurrency?: number;
|
|
1120
|
+
/** The maximum allowed number of replicas. */
|
|
1121
|
+
maxScale?: number;
|
|
1122
|
+
/** Controls the metric which will be used for scaling decisions.The goal is to maintain the target across all replicas of a deployment.'concurrency' uses the number of concurrent requests for the target.'cpu' uses % processor time for the target.'memory' memory in Mi for the target.'rps' uses requests per second for the target.'latency' uses the average request response time for the target. */
|
|
1123
|
+
metric?: "concurrency" | "cpu" | "disabled" | "keda" | "latency" | "memory" | "rps";
|
|
1124
|
+
/** For metrics represented as a distribution (e.g. latency) a percentile within the distribution must be chosen as the target. */
|
|
1125
|
+
metricPercentile?: "p50" | "p75" | "p99";
|
|
1126
|
+
/** The minimum allowed number of replicas. Control Plane can scale the workload down to 0 when there is no traffic and scale up immediately to fulfill new requests. */
|
|
1127
|
+
minScale?: number;
|
|
1128
|
+
multi?: WorkloadSpecDefaultOptionsAutoscalingMulti[];
|
|
1129
|
+
/** The amount of time with no requests received before a workload is scaled to 0. */
|
|
1130
|
+
scaleToZeroDelay?: number;
|
|
1131
|
+
/** Control Plane will scale the number of replicas for this deployment up/downin order to be as close as possible to the target metric across all replicas of a deployment. */
|
|
1132
|
+
target?: number;
|
|
1133
|
+
});
|
|
1134
|
+
}
|
|
1135
|
+
|
|
1136
|
+
export declare class WorkloadSpecDefaultOptionsAutoscalingKeda {
|
|
1137
|
+
constructor(props: {
|
|
1138
|
+
advanced?: WorkloadSpecDefaultOptionsAutoscalingKedaAdvanced;
|
|
1139
|
+
cooldownPeriod?: number;
|
|
1140
|
+
fallback?: WorkloadSpecDefaultOptionsAutoscalingKedaFallback;
|
|
1141
|
+
initialCooldownPeriod?: number;
|
|
1142
|
+
pollingInterval?: number;
|
|
1143
|
+
/** An array of KEDA triggers to be used for scaling workloads in this GVC. */
|
|
1144
|
+
triggers?: WorkloadSpecDefaultOptionsAutoscalingKedaTriggers[];
|
|
1145
|
+
});
|
|
1146
|
+
}
|
|
1147
|
+
|
|
1148
|
+
export declare class WorkloadSpecDefaultOptionsAutoscalingKedaAdvanced {
|
|
1149
|
+
constructor(props: {
|
|
1150
|
+
scalingModifiers?: WorkloadSpecDefaultOptionsAutoscalingKedaAdvancedScalingModifiers;
|
|
1151
|
+
});
|
|
1152
|
+
}
|
|
1153
|
+
|
|
1154
|
+
export declare class WorkloadSpecDefaultOptionsAutoscalingKedaAdvancedScalingModifiers {
|
|
1155
|
+
constructor(props: {
|
|
1156
|
+
/** defines the new activation target value to scale on for the composed metric. */
|
|
1157
|
+
activationTarget?: string;
|
|
1158
|
+
/** composes metrics together and allows them to be modified/manipulated. It accepts mathematical/conditional statements */
|
|
1159
|
+
formula?: string;
|
|
1160
|
+
/** defines metric type used for this new composite-metric. */
|
|
1161
|
+
metricType?: "AverageValue" | "Utilization" | "Value";
|
|
1162
|
+
/** defines new target value to scale on for the composed metric. */
|
|
1163
|
+
target?: string;
|
|
1164
|
+
});
|
|
1165
|
+
}
|
|
1166
|
+
|
|
1167
|
+
export declare class WorkloadSpecDefaultOptionsAutoscalingKedaFallback {
|
|
1168
|
+
constructor(props: {
|
|
1169
|
+
/** Behavior to apply when fallback is triggered. */
|
|
1170
|
+
behavior?: "currentReplicas" | "currentReplicasIfHigher" | "currentReplicasIfLower" | "static";
|
|
1171
|
+
/** Number of consecutive failures required to trigger fallback behavior. */
|
|
1172
|
+
failureThreshold?: number;
|
|
1173
|
+
/** Number of replicas to scale to when fallback is triggered. */
|
|
1174
|
+
replicas?: number;
|
|
1175
|
+
});
|
|
1176
|
+
}
|
|
1177
|
+
|
|
1178
|
+
export declare class WorkloadSpecDefaultOptionsAutoscalingKedaTriggers {
|
|
1179
|
+
constructor(props: {
|
|
1180
|
+
authenticationRef?: WorkloadSpecDefaultOptionsAutoscalingKedaTriggersAuthenticationRef;
|
|
1181
|
+
/** The configuration parameters that the trigger requires */
|
|
1182
|
+
metadata?: Record<string, unknown>;
|
|
1183
|
+
/** The type of metric to be used for scaling. */
|
|
1184
|
+
metricType?: "AverageValue" | "Utilization" | "Value";
|
|
1185
|
+
/** An optional name for the trigger. If not provided, a default name will be generated based on the trigger type. */
|
|
1186
|
+
name?: string;
|
|
1187
|
+
/** The type of KEDA trigger, e.g "prometheus", "aws-sqs", etc. */
|
|
1188
|
+
type?: string;
|
|
1189
|
+
/** Enables caching of metric values during polling interval */
|
|
1190
|
+
useCachedMetrics?: boolean;
|
|
1191
|
+
});
|
|
1192
|
+
}
|
|
1193
|
+
|
|
1194
|
+
export declare class WorkloadSpecDefaultOptionsAutoscalingKedaTriggersAuthenticationRef {
|
|
1195
|
+
constructor(props: {
|
|
1196
|
+
/** The name of secret listed in the GVC spec.keda.secrets */
|
|
1197
|
+
name?: string;
|
|
1198
|
+
});
|
|
1199
|
+
}
|
|
1200
|
+
|
|
1201
|
+
export declare class WorkloadSpecDefaultOptionsAutoscalingMulti {
|
|
1202
|
+
constructor(props: {
|
|
1203
|
+
metric?: Record<string, unknown>;
|
|
1204
|
+
/** Control Plane will scale the number of replicas for this deployment up/downin order to be as close as possible to the target metric across all replicas of a deployment. */
|
|
1205
|
+
target?: number;
|
|
1206
|
+
});
|
|
1207
|
+
}
|
|
1208
|
+
|
|
1209
|
+
export declare class WorkloadSpecDefaultOptionsMultiZone {
|
|
1210
|
+
constructor(props: {
|
|
1211
|
+
enabled?: boolean;
|
|
1212
|
+
});
|
|
1213
|
+
}
|
|
1214
|
+
|
|
1215
|
+
export declare class WorkloadSpecExtras {
|
|
1216
|
+
constructor(props: {
|
|
1217
|
+
/** Kubernetes pod affinity and anti-affinity rules */
|
|
1218
|
+
affinity?: Record<string, unknown>;
|
|
1219
|
+
/** Kubernetes pod tolerations for node taints */
|
|
1220
|
+
tolerations?: Record<string, unknown>[];
|
|
1221
|
+
/** Kubernetes topology spread constraints for pod distribution */
|
|
1222
|
+
topologySpreadConstraints?: Record<string, unknown>[];
|
|
1223
|
+
});
|
|
1224
|
+
}
|
|
1225
|
+
|
|
1226
|
+
export declare class WorkloadSpecFirewallConfig {
|
|
1227
|
+
constructor(props: {
|
|
1228
|
+
/** The external firewall is used to control access to and from the public internet. */
|
|
1229
|
+
external?: WorkloadSpecFirewallConfigExternal;
|
|
1230
|
+
/** The internal firewall is used to control access between workloads. */
|
|
1231
|
+
internal?: WorkloadSpecFirewallConfigInternal;
|
|
1232
|
+
});
|
|
1233
|
+
}
|
|
1234
|
+
|
|
1235
|
+
export declare class WorkloadSpecFirewallConfigExternal {
|
|
1236
|
+
constructor(props: {
|
|
1237
|
+
/** firewall options for HTTP workloads */
|
|
1238
|
+
http?: WorkloadSpecFirewallConfigExternalHttp;
|
|
1239
|
+
inboundAllowCIDR?: string[];
|
|
1240
|
+
inboundBlockedCIDR?: string[];
|
|
1241
|
+
/** The list of ipv4/ipv6 addresses or cidr blocks that this workload is allowed reach. No outbound access is allowed by default. Specify '0.0.0.0/0' to allow outbound access to the public internet (not recommended). */
|
|
1242
|
+
outboundAllowCIDR?: string[];
|
|
1243
|
+
/** The list of public hostnames that this workload is allowed to reach. No outbound access is allowed by default. A wildcard '*' is allowed on the prefix of the hostname only, ex: '*.amazonaws.com'. Use 'outboundAllowCIDR' to allow access to all external websites (not recommended). The ports 80, 443 & 445 are allowed by default. This can be modified using the outboundAllowPort setting. */
|
|
1244
|
+
outboundAllowHostname?: string[];
|
|
1245
|
+
/** Allow outbound access to specific ports and protocols. When not specified, communication to address ranges in outboundAllowCIDR is allowed on all ports and communication to names in outboundAllowHostname is allowed on ports 80/443. */
|
|
1246
|
+
outboundAllowPort?: WorkloadSpecFirewallConfigExternalOutboundAllowPort[];
|
|
1247
|
+
/** The list of ipv4/ipv6 addresses or cidr blocks that this workload is NOT allowed reach. Addresses in the allow list will only be allowed if they do not exist in this list. */
|
|
1248
|
+
outboundBlockedCIDR?: string[];
|
|
1249
|
+
});
|
|
1250
|
+
}
|
|
1251
|
+
|
|
1252
|
+
export declare class WorkloadSpecFirewallConfigExternalHttp {
|
|
1253
|
+
constructor(props: {
|
|
1254
|
+
/** A list of header filters for HTTP workloads. */
|
|
1255
|
+
inboundHeaderFilter?: WorkloadSpecFirewallConfigExternalHttpInboundHeaderFilter[];
|
|
1256
|
+
});
|
|
1257
|
+
}
|
|
1258
|
+
|
|
1259
|
+
export declare class WorkloadSpecFirewallConfigExternalHttpInboundHeaderFilter {
|
|
1260
|
+
constructor(props: {
|
|
1261
|
+
/** A list of regular expressions to match for allowed header values.
|
|
1262
|
+
Headers that do not match ANY of these values will be filtered and will not reach the workload. */
|
|
1263
|
+
allowedValues?: string[];
|
|
1264
|
+
/** A list of regular expressions to match for blocked header values.
|
|
1265
|
+
Headers that match ANY of these values will be filtered and will not reach the workload. */
|
|
1266
|
+
blockedValues?: string[];
|
|
1267
|
+
/** The header to match for. */
|
|
1268
|
+
key?: string;
|
|
1269
|
+
});
|
|
1270
|
+
}
|
|
1271
|
+
|
|
1272
|
+
export declare class WorkloadSpecFirewallConfigExternalOutboundAllowPort {
|
|
1273
|
+
constructor(props: {
|
|
1274
|
+
/** Port number to allow */
|
|
1275
|
+
number?: number;
|
|
1276
|
+
/** Protocol to allow (http, https, or tcp) */
|
|
1277
|
+
protocol?: "http" | "https" | "tcp";
|
|
1278
|
+
});
|
|
1279
|
+
}
|
|
1280
|
+
|
|
1281
|
+
export declare class WorkloadSpecFirewallConfigInternal {
|
|
1282
|
+
constructor(props: {
|
|
1283
|
+
/** Used to control the internal firewall configuration and mutual tls. 'none': no access is allowed between this workload and other workloads on Control Plane. 'same-gvc': workloads running on the same Global Virtual Cloud are allowed to access this workload internally. 'same-org': workloads running on the same Control Plane Organization are allowed to access this workload internally. 'workload-list': specific workloads provided in the 'inboundAllowWorkload' array are allowed to access this workload internally. */
|
|
1284
|
+
inboundAllowType?: "none" | "same-gvc" | "same-org" | "workload-list";
|
|
1285
|
+
/** A list of specific workloads which are allowed to access this workload internally. */
|
|
1286
|
+
inboundAllowWorkload?: string[];
|
|
1287
|
+
});
|
|
1288
|
+
}
|
|
1289
|
+
|
|
1290
|
+
export declare class WorkloadSpecJob {
|
|
1291
|
+
constructor(props: {
|
|
1292
|
+
/** The maximum number of seconds Control Plane will wait for the job to complete. If a job does not succeed or fail in the allotted time, Control Plane will stop the job, moving it into the Removed status. */
|
|
1293
|
+
activeDeadlineSeconds?: number;
|
|
1294
|
+
/** Either 'Forbid', 'Replace', or 'Allow'. This determines what Control Plane will do when the schedule requires a job to start, while a prior instance of the job is still running. */
|
|
1295
|
+
concurrencyPolicy?: "Allow" | "Forbid" | "Replace";
|
|
1296
|
+
/** The maximum number of completed job instances to display. This should be an integer between 1 and 10. */
|
|
1297
|
+
historyLimit?: number;
|
|
1298
|
+
/** Either 'OnFailure' or 'Never'. This determines what Control Plane will do when a job instance fails. */
|
|
1299
|
+
restartPolicy?: "Never" | "OnFailure";
|
|
1300
|
+
/** A standard cron schedule expression (5 fields). */
|
|
1301
|
+
schedule?: string;
|
|
1302
|
+
});
|
|
1303
|
+
}
|
|
1304
|
+
|
|
1305
|
+
export declare class WorkloadSpecLoadBalancer {
|
|
1306
|
+
constructor(props: {
|
|
1307
|
+
/** direct load balancers are created in each location that a workload is running in and are configured for the standard endpoints of the workload. Customers are responsible for configuring the workload with certificates if TLS is required */
|
|
1308
|
+
direct?: WorkloadSpecLoadBalancerDirect;
|
|
1309
|
+
/** Geo location header configuration */
|
|
1310
|
+
geoLocation?: WorkloadSpecLoadBalancerGeoLocation;
|
|
1311
|
+
/** When enabled, individual replicas of the workload can be reached directly using the subdomain prefix replica-<index>.
|
|
1312
|
+
For example, replica-0.my-workload.my-gvc.cpln.local or replica-0.my-workload-<gvc-alias>.cpln.app
|
|
1313
|
+
Can only be used with stateful workloads. */
|
|
1314
|
+
replicaDirect?: boolean;
|
|
1315
|
+
});
|
|
1316
|
+
}
|
|
1317
|
+
|
|
1318
|
+
export declare class WorkloadSpecLoadBalancerDirect {
|
|
1319
|
+
constructor(props: {
|
|
1320
|
+
/** when disabled, this load balancer will be stopped */
|
|
1321
|
+
enabled?: boolean;
|
|
1322
|
+
/** IP set to use for dedicated IPs */
|
|
1323
|
+
ipSet?: string;
|
|
1324
|
+
/** list of ports that will be exposed by this load balancer */
|
|
1325
|
+
ports?: WorkloadSpecLoadBalancerDirectPorts[];
|
|
1326
|
+
});
|
|
1327
|
+
}
|
|
1328
|
+
|
|
1329
|
+
export declare class WorkloadSpecLoadBalancerDirectPorts {
|
|
1330
|
+
constructor(props: {
|
|
1331
|
+
/** The port on the container tha will receive this traffic */
|
|
1332
|
+
containerPort?: number;
|
|
1333
|
+
/** The port that is available publicly */
|
|
1334
|
+
externalPort?: number;
|
|
1335
|
+
/** The protocol that is exposed publicly */
|
|
1336
|
+
protocol?: "TCP" | "UDP";
|
|
1337
|
+
/** overrides the default `https` url scheme that will be used for links in the UI and status */
|
|
1338
|
+
scheme?: "http" | "https" | "tcp" | "ws" | "wss";
|
|
1339
|
+
});
|
|
1340
|
+
}
|
|
1341
|
+
|
|
1342
|
+
export declare class WorkloadSpecLoadBalancerGeoLocation {
|
|
1343
|
+
constructor(props: {
|
|
1344
|
+
/** When enabled, geo location headers will be included on inbound http requests. Existing headers will be replaced. */
|
|
1345
|
+
enabled?: boolean;
|
|
1346
|
+
/** Custom header names for geo location data */
|
|
1347
|
+
headers?: WorkloadSpecLoadBalancerGeoLocationHeaders;
|
|
1348
|
+
});
|
|
1349
|
+
}
|
|
1350
|
+
|
|
1351
|
+
export declare class WorkloadSpecLoadBalancerGeoLocationHeaders {
|
|
1352
|
+
constructor(props: {
|
|
1353
|
+
/** The geo asn header */
|
|
1354
|
+
asn?: string;
|
|
1355
|
+
/** The geo city header */
|
|
1356
|
+
city?: string;
|
|
1357
|
+
/** The geo country header */
|
|
1358
|
+
country?: string;
|
|
1359
|
+
/** The geo region header */
|
|
1360
|
+
region?: string;
|
|
1361
|
+
});
|
|
1362
|
+
}
|
|
1363
|
+
|
|
1364
|
+
export declare class WorkloadSpecLocalOptions {
|
|
1365
|
+
constructor(props: {
|
|
1366
|
+
autoscaling?: WorkloadSpecLocalOptionsAutoscaling;
|
|
1367
|
+
/** Enables intelligent dynamic resource allocation of CPU and Memory for each container by setting resource reservations using analysis of historical usage data. This can significantly reduce cost but may cause temporary performance issues for workloads with sudden spikes in usage. */
|
|
1368
|
+
capacityAI?: boolean;
|
|
1369
|
+
/** The highest frequency capacity AI is allowed to update resource reservations when CapacityAI is enabled. */
|
|
1370
|
+
capacityAIUpdateMinutes?: number;
|
|
1371
|
+
/** Enables debug response headers when the headers "x-cpln-debug: true" is in the request. */
|
|
1372
|
+
debug?: boolean;
|
|
1373
|
+
location?: string;
|
|
1374
|
+
multiZone?: WorkloadSpecLocalOptionsMultiZone;
|
|
1375
|
+
/** Enables use of spot instances to reduce cost of running workloads with an increasedpotential of rescheduling workloads onto new nodes when they are forced to terminate. */
|
|
1376
|
+
spot?: boolean;
|
|
1377
|
+
suspend?: boolean;
|
|
1378
|
+
/** The maximum request duration that is allowed for Control Plane to respond.This timeout can be reached when the Control Plane is waiting for the workload to respond or waitingfor a new workload to become available when using Autoscaling. */
|
|
1379
|
+
timeoutSeconds?: number;
|
|
1380
|
+
});
|
|
1381
|
+
}
|
|
1382
|
+
|
|
1383
|
+
export declare class WorkloadSpecLocalOptionsAutoscaling {
|
|
1384
|
+
constructor(props: {
|
|
1385
|
+
keda?: WorkloadSpecLocalOptionsAutoscalingKeda;
|
|
1386
|
+
/** A hard maximum for the number of concurrent requests allowed to a replica. If no replicas are available to fulfill the request then it will be queued until a replica with capacity is available and delivered as soon as one is available again. Capacity can be available from requests completing or when a new replica is available from scale out. A value of 0 allows all requests. */
|
|
1387
|
+
maxConcurrency?: number;
|
|
1388
|
+
/** The maximum allowed number of replicas. */
|
|
1389
|
+
maxScale?: number;
|
|
1390
|
+
/** Controls the metric which will be used for scaling decisions.The goal is to maintain the target across all replicas of a deployment.'concurrency' uses the number of concurrent requests for the target.'cpu' uses % processor time for the target.'memory' memory in Mi for the target.'rps' uses requests per second for the target.'latency' uses the average request response time for the target. */
|
|
1391
|
+
metric?: "concurrency" | "cpu" | "disabled" | "keda" | "latency" | "memory" | "rps";
|
|
1392
|
+
/** For metrics represented as a distribution (e.g. latency) a percentile within the distribution must be chosen as the target. */
|
|
1393
|
+
metricPercentile?: "p50" | "p75" | "p99";
|
|
1394
|
+
/** The minimum allowed number of replicas. Control Plane can scale the workload down to 0 when there is no traffic and scale up immediately to fulfill new requests. */
|
|
1395
|
+
minScale?: number;
|
|
1396
|
+
multi?: WorkloadSpecLocalOptionsAutoscalingMulti[];
|
|
1397
|
+
/** The amount of time with no requests received before a workload is scaled to 0. */
|
|
1398
|
+
scaleToZeroDelay?: number;
|
|
1399
|
+
/** Control Plane will scale the number of replicas for this deployment up/downin order to be as close as possible to the target metric across all replicas of a deployment. */
|
|
1400
|
+
target?: number;
|
|
1401
|
+
});
|
|
1402
|
+
}
|
|
1403
|
+
|
|
1404
|
+
export declare class WorkloadSpecLocalOptionsAutoscalingKeda {
|
|
1405
|
+
constructor(props: {
|
|
1406
|
+
advanced?: WorkloadSpecLocalOptionsAutoscalingKedaAdvanced;
|
|
1407
|
+
cooldownPeriod?: number;
|
|
1408
|
+
fallback?: WorkloadSpecLocalOptionsAutoscalingKedaFallback;
|
|
1409
|
+
initialCooldownPeriod?: number;
|
|
1410
|
+
pollingInterval?: number;
|
|
1411
|
+
/** An array of KEDA triggers to be used for scaling workloads in this GVC. */
|
|
1412
|
+
triggers?: WorkloadSpecLocalOptionsAutoscalingKedaTriggers[];
|
|
1413
|
+
});
|
|
1414
|
+
}
|
|
1415
|
+
|
|
1416
|
+
export declare class WorkloadSpecLocalOptionsAutoscalingKedaAdvanced {
|
|
1417
|
+
constructor(props: {
|
|
1418
|
+
scalingModifiers?: WorkloadSpecLocalOptionsAutoscalingKedaAdvancedScalingModifiers;
|
|
1419
|
+
});
|
|
1420
|
+
}
|
|
1421
|
+
|
|
1422
|
+
export declare class WorkloadSpecLocalOptionsAutoscalingKedaAdvancedScalingModifiers {
|
|
1423
|
+
constructor(props: {
|
|
1424
|
+
/** defines the new activation target value to scale on for the composed metric. */
|
|
1425
|
+
activationTarget?: string;
|
|
1426
|
+
/** composes metrics together and allows them to be modified/manipulated. It accepts mathematical/conditional statements */
|
|
1427
|
+
formula?: string;
|
|
1428
|
+
/** defines metric type used for this new composite-metric. */
|
|
1429
|
+
metricType?: "AverageValue" | "Utilization" | "Value";
|
|
1430
|
+
/** defines new target value to scale on for the composed metric. */
|
|
1431
|
+
target?: string;
|
|
1432
|
+
});
|
|
1433
|
+
}
|
|
1434
|
+
|
|
1435
|
+
export declare class WorkloadSpecLocalOptionsAutoscalingKedaFallback {
|
|
1436
|
+
constructor(props: {
|
|
1437
|
+
/** Behavior to apply when fallback is triggered. */
|
|
1438
|
+
behavior?: "currentReplicas" | "currentReplicasIfHigher" | "currentReplicasIfLower" | "static";
|
|
1439
|
+
/** Number of consecutive failures required to trigger fallback behavior. */
|
|
1440
|
+
failureThreshold?: number;
|
|
1441
|
+
/** Number of replicas to scale to when fallback is triggered. */
|
|
1442
|
+
replicas?: number;
|
|
1443
|
+
});
|
|
1444
|
+
}
|
|
1445
|
+
|
|
1446
|
+
export declare class WorkloadSpecLocalOptionsAutoscalingKedaTriggers {
|
|
1447
|
+
constructor(props: {
|
|
1448
|
+
authenticationRef?: WorkloadSpecLocalOptionsAutoscalingKedaTriggersAuthenticationRef;
|
|
1449
|
+
/** The configuration parameters that the trigger requires */
|
|
1450
|
+
metadata?: Record<string, unknown>;
|
|
1451
|
+
/** The type of metric to be used for scaling. */
|
|
1452
|
+
metricType?: "AverageValue" | "Utilization" | "Value";
|
|
1453
|
+
/** An optional name for the trigger. If not provided, a default name will be generated based on the trigger type. */
|
|
1454
|
+
name?: string;
|
|
1455
|
+
/** The type of KEDA trigger, e.g "prometheus", "aws-sqs", etc. */
|
|
1456
|
+
type?: string;
|
|
1457
|
+
/** Enables caching of metric values during polling interval */
|
|
1458
|
+
useCachedMetrics?: boolean;
|
|
1459
|
+
});
|
|
1460
|
+
}
|
|
1461
|
+
|
|
1462
|
+
export declare class WorkloadSpecLocalOptionsAutoscalingKedaTriggersAuthenticationRef {
|
|
1463
|
+
constructor(props: {
|
|
1464
|
+
/** The name of secret listed in the GVC spec.keda.secrets */
|
|
1465
|
+
name?: string;
|
|
1466
|
+
});
|
|
1467
|
+
}
|
|
1468
|
+
|
|
1469
|
+
export declare class WorkloadSpecLocalOptionsAutoscalingMulti {
|
|
1470
|
+
constructor(props: {
|
|
1471
|
+
metric?: Record<string, unknown>;
|
|
1472
|
+
/** Control Plane will scale the number of replicas for this deployment up/downin order to be as close as possible to the target metric across all replicas of a deployment. */
|
|
1473
|
+
target?: number;
|
|
1474
|
+
});
|
|
1475
|
+
}
|
|
1476
|
+
|
|
1477
|
+
export declare class WorkloadSpecLocalOptionsMultiZone {
|
|
1478
|
+
constructor(props: {
|
|
1479
|
+
enabled?: boolean;
|
|
1480
|
+
});
|
|
1481
|
+
}
|
|
1482
|
+
|
|
1483
|
+
export declare class WorkloadSpecRequestRetryPolicy {
|
|
1484
|
+
constructor(props: {
|
|
1485
|
+
/** Maximum number of retry attempts for failed requests */
|
|
1486
|
+
attempts?: number;
|
|
1487
|
+
/** List of conditions that trigger request retries (e.g., 5xx, gateway-error, connect-failure, unavailable) */
|
|
1488
|
+
retryOn?: string[];
|
|
1489
|
+
});
|
|
1490
|
+
}
|
|
1491
|
+
|
|
1492
|
+
export declare class WorkloadSpecRolloutOptions {
|
|
1493
|
+
constructor(props: {
|
|
1494
|
+
/** Maximum number or percentage of replicas that can be created above the desired count during a rollout */
|
|
1495
|
+
maxSurgeReplicas?: string;
|
|
1496
|
+
/** Maximum number or percentage of replicas that can be unavailable during a rollout */
|
|
1497
|
+
maxUnavailableReplicas?: string;
|
|
1498
|
+
/** The minimum number of seconds a container must run without crashing to be considered available */
|
|
1499
|
+
minReadySeconds?: number;
|
|
1500
|
+
/** Determines whether replicas are scaled in order (OrderedReady) or in parallel (Parallel) */
|
|
1501
|
+
scalingPolicy?: "OrderedReady" | "Parallel";
|
|
1502
|
+
/** The amount of time in seconds a workload has to gracefully terminate before forcefully terminating it.
|
|
1503
|
+
This includes the time it takes for the preStop hook to run. */
|
|
1504
|
+
terminationGracePeriodSeconds?: number;
|
|
1505
|
+
});
|
|
1506
|
+
}
|
|
1507
|
+
|
|
1508
|
+
export declare class WorkloadSpecSecurityOptions {
|
|
1509
|
+
constructor(props: {
|
|
1510
|
+
/** The group id assigned to any mounted volume */
|
|
1511
|
+
filesystemGroupId?: number;
|
|
1512
|
+
/** The user id assigned to all container processes */
|
|
1513
|
+
runAsUser?: number;
|
|
1514
|
+
});
|
|
1515
|
+
}
|
|
1516
|
+
|
|
1517
|
+
export declare class WorkloadSpecSidecar {
|
|
1518
|
+
constructor(props: {
|
|
1519
|
+
/** Envoy proxy filters */
|
|
1520
|
+
envoy?: Record<string, unknown>;
|
|
1521
|
+
});
|
|
1522
|
+
}
|
|
1523
|
+
|
|
1524
|
+
export declare class WorkloadSpecVm {
|
|
1525
|
+
constructor(props: {
|
|
1526
|
+
accessCredentials?: WorkloadSpecVmAccessCredentials[];
|
|
1527
|
+
/** Boot disk configuration. When source is omitted, containers[0].image is used as an OCI containerDisk. */
|
|
1528
|
+
bootDisk?: WorkloadSpecVmBootDisk;
|
|
1529
|
+
clock?: WorkloadSpecVmClock;
|
|
1530
|
+
cloudInit?: WorkloadSpecVmCloudInit;
|
|
1531
|
+
cpu?: WorkloadSpecVmCpu;
|
|
1532
|
+
firmware?: WorkloadSpecVmFirmware;
|
|
1533
|
+
/** Guest operating system family. Drives per-OS cloud-init payload (file paths, init system, env/hosts injection, SSH CA bootstrap). */
|
|
1534
|
+
guestOS?: "linux" | "windows";
|
|
1535
|
+
hostname?: string;
|
|
1536
|
+
/** Pod-network interfaces for the VM. v1 supports a single network; multi-network arrives with per-interface port routing. */
|
|
1537
|
+
networks?: WorkloadSpecVmNetworks[];
|
|
1538
|
+
/** KubeVirt RunStrategy. Use Halted to keep the pool defined but powered off. */
|
|
1539
|
+
runStrategy?: "Always" | "Halted" | "Manual" | "RerunOnFailure";
|
|
1540
|
+
subdomain?: string;
|
|
1541
|
+
});
|
|
1542
|
+
}
|
|
1543
|
+
|
|
1544
|
+
export declare class WorkloadSpecVmAccessCredentials {
|
|
1545
|
+
constructor(props: {
|
|
1546
|
+
deliveryMethod?: "configDrive" | "qemuGuestAgent";
|
|
1547
|
+
sshPublicKeySecret?: string;
|
|
1548
|
+
users?: string[];
|
|
1549
|
+
});
|
|
1550
|
+
}
|
|
1551
|
+
|
|
1552
|
+
export declare class WorkloadSpecVmBootDisk {
|
|
1553
|
+
constructor(props: {
|
|
1554
|
+
bootOrder?: number;
|
|
1555
|
+
bus?: "sata" | "scsi" | "virtio";
|
|
1556
|
+
/** Per-replica boot PVC populated via CDI. Required for any non-OCI source. */
|
|
1557
|
+
persist?: WorkloadSpecVmBootDiskPersist;
|
|
1558
|
+
/** Exactly one source must be specified. */
|
|
1559
|
+
source?: WorkloadSpecVmBootDiskSource;
|
|
1560
|
+
});
|
|
1561
|
+
}
|
|
1562
|
+
|
|
1563
|
+
export declare class WorkloadSpecVmBootDiskPersist {
|
|
1564
|
+
constructor(props: {
|
|
1565
|
+
/** VolumeSet URI used to provision one PVC per replica for the boot disk. Format: cpln://volumeset/<name>. */
|
|
1566
|
+
volumeSet?: string;
|
|
1567
|
+
});
|
|
1568
|
+
}
|
|
1569
|
+
|
|
1570
|
+
export declare class WorkloadSpecVmBootDiskSource {
|
|
1571
|
+
constructor(props: {
|
|
1572
|
+
/** Boot disk image fetched over HTTP/HTTPS. Requires persist.volumeSet. */
|
|
1573
|
+
http?: WorkloadSpecVmBootDiskSourceHttp;
|
|
1574
|
+
/** Boot from an OCI containerDisk image. Default when no boot source is set; otherwise overrides containers[0].image. */
|
|
1575
|
+
oci?: WorkloadSpecVmBootDiskSourceOci;
|
|
1576
|
+
});
|
|
1577
|
+
}
|
|
1578
|
+
|
|
1579
|
+
export declare class WorkloadSpecVmBootDiskSourceHttp {
|
|
1580
|
+
constructor(props: {
|
|
1581
|
+
/** Disk image checksum, formatted as "sha256:<hex>" or "sha512:<hex>" */
|
|
1582
|
+
checksum?: string;
|
|
1583
|
+
url?: string;
|
|
1584
|
+
});
|
|
1585
|
+
}
|
|
1586
|
+
|
|
1587
|
+
export declare class WorkloadSpecVmBootDiskSourceOci {
|
|
1588
|
+
constructor(props: {
|
|
1589
|
+
/** Full image reference of a containerDisk (e.g., quay.io/containerdisks/ubuntu:22.04 or /org/<org>/image/<name>:<tag>) */
|
|
1590
|
+
image?: string;
|
|
1591
|
+
});
|
|
1592
|
+
}
|
|
1593
|
+
|
|
1594
|
+
export declare class WorkloadSpecVmClock {
|
|
1595
|
+
constructor(props: {
|
|
1596
|
+
timezone?: string;
|
|
1597
|
+
});
|
|
1598
|
+
}
|
|
1599
|
+
|
|
1600
|
+
export declare class WorkloadSpecVmCloudInit {
|
|
1601
|
+
constructor(props: {
|
|
1602
|
+
/** SSH public keys injected via cloud-init. Each Secret may carry one or more keys. */
|
|
1603
|
+
sshPublicKeySecrets?: string[];
|
|
1604
|
+
/** Inline cloud-init user-data. Not encrypted at rest in the data-service — use userDataSecret for sensitive payloads. */
|
|
1605
|
+
userData?: string;
|
|
1606
|
+
/** Inline cloud-init user-data, base64-encoded. Same caveats as userData. */
|
|
1607
|
+
userDataBase64?: string;
|
|
1608
|
+
/** Secret containing cloud-init user-data (key: userdata or user-data). */
|
|
1609
|
+
userDataSecret?: string;
|
|
1610
|
+
});
|
|
1611
|
+
}
|
|
1612
|
+
|
|
1613
|
+
export declare class WorkloadSpecVmCpu {
|
|
1614
|
+
constructor(props: {
|
|
1615
|
+
/** CPU sockets visible to the guest. Cores are derived from containers[0].cpu. */
|
|
1616
|
+
sockets?: number;
|
|
1617
|
+
/** CPU threads per core visible to the guest. */
|
|
1618
|
+
threads?: number;
|
|
1619
|
+
});
|
|
1620
|
+
}
|
|
1621
|
+
|
|
1622
|
+
export declare class WorkloadSpecVmFirmware {
|
|
1623
|
+
constructor(props: {
|
|
1624
|
+
bootloader?: "bios" | "efi";
|
|
1625
|
+
/** Enable UEFI Secure Boot. Not yet supported: pending persistent EFI NVRAM, without which the guest is unbootable after a reboot. */
|
|
1626
|
+
secureBoot?: boolean;
|
|
1627
|
+
/** SMBIOS system serial number reported to the guest. */
|
|
1628
|
+
serial?: string;
|
|
1629
|
+
smbios?: WorkloadSpecVmFirmwareSmbios;
|
|
1630
|
+
/** Fixed SMBIOS UUID for the VM. KubeVirt generates one when omitted. */
|
|
1631
|
+
uuid?: string;
|
|
1632
|
+
});
|
|
1633
|
+
}
|
|
1634
|
+
|
|
1635
|
+
export declare class WorkloadSpecVmFirmwareSmbios {
|
|
1636
|
+
constructor(props: {
|
|
1637
|
+
family?: string;
|
|
1638
|
+
manufacturer?: string;
|
|
1639
|
+
product?: string;
|
|
1640
|
+
sku?: string;
|
|
1641
|
+
version?: string;
|
|
1642
|
+
});
|
|
1643
|
+
}
|
|
1644
|
+
|
|
1645
|
+
export declare class WorkloadSpecVmNetworks {
|
|
1646
|
+
constructor(props: {
|
|
1647
|
+
name?: string;
|
|
1648
|
+
});
|
|
1649
|
+
}
|