@highstate/library 0.26.0 → 0.27.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/highstate.library.msgpack +0 -0
- package/dist/index.js +638 -624
- package/package.json +4 -4
- package/src/k8s/apps/etcd.ts +11 -1
- package/src/k8s/apps/wg-feed-server.ts +20 -2
- package/src/wireguard.ts +10 -0
package/dist/index.js
CHANGED
|
@@ -3908,13 +3908,15 @@ var envoyGateway = defineUnit28({
|
|
|
3908
3908
|
source: source("envoy-gateway")
|
|
3909
3909
|
});
|
|
3910
3910
|
// src/k8s/apps/etcd.ts
|
|
3911
|
-
import {
|
|
3911
|
+
import { $addArgumentDescription as $addArgumentDescription30 } from "@highstate/contract";
|
|
3912
|
+
import { defineUnit as defineUnit29, z as z40 } from "@highstate/contract";
|
|
3912
3913
|
import { pick as pick6 } from "remeda";
|
|
3913
3914
|
var etcd = defineUnit29({
|
|
3914
3915
|
type: "k8s.apps.etcd.v1",
|
|
3915
3916
|
args: {
|
|
3916
3917
|
...appName("etcd"),
|
|
3917
|
-
...pick6(sharedArgs, ["external", "values", "patches", "service", "scheduling"])
|
|
3918
|
+
...pick6(sharedArgs, ["external", "values", "patches", "service", "scheduling"]),
|
|
3919
|
+
replicas: $addArgumentDescription30(z40.number().int().positive().refine((replicas) => replicas % 2 === 1, "etcd replicas must be odd").default(1), `The odd number of etcd members to deploy.`)
|
|
3918
3920
|
},
|
|
3919
3921
|
secrets: {
|
|
3920
3922
|
...pick6(sharedSecrets, ["backupKey"])
|
|
@@ -3937,20 +3939,20 @@ var etcd = defineUnit29({
|
|
|
3937
3939
|
source: source("etcd")
|
|
3938
3940
|
});
|
|
3939
3941
|
// src/k8s/apps/grafana.ts
|
|
3940
|
-
import { $addArgumentDescription as $
|
|
3941
|
-
import { defineUnit as defineUnit30, z as
|
|
3942
|
+
import { $addArgumentDescription as $addArgumentDescription31 } from "@highstate/contract";
|
|
3943
|
+
import { defineUnit as defineUnit30, z as z41 } from "@highstate/contract";
|
|
3942
3944
|
import { pick as pick7 } from "remeda";
|
|
3943
3945
|
var grafana = defineUnit30({
|
|
3944
3946
|
type: "k8s.apps.grafana.v1",
|
|
3945
3947
|
args: {
|
|
3946
3948
|
...appName("grafana"),
|
|
3947
3949
|
...pick7(sharedArgs, ["fqdn", "values", "patches", "service", "scheduling"]),
|
|
3948
|
-
plugins: $
|
|
3950
|
+
plugins: $addArgumentDescription31(z41.string().array().default([]), `The list of plugins to install on Grafana.
|
|
3949
3951
|
|
|
3950
3952
|
See https://grafana.com/grafana/plugins for available plugins and their names.`)
|
|
3951
3953
|
},
|
|
3952
3954
|
secrets: {
|
|
3953
|
-
adminPassword: $
|
|
3955
|
+
adminPassword: $addArgumentDescription31(z41.string().optional(), `The admin password used for Grafana.
|
|
3954
3956
|
|
|
3955
3957
|
If not provided, a random password will be generated.`)
|
|
3956
3958
|
},
|
|
@@ -4047,29 +4049,29 @@ var mariadb = defineUnit33({
|
|
|
4047
4049
|
source: source("mariadb")
|
|
4048
4050
|
});
|
|
4049
4051
|
// src/k8s/apps/matrix-stack.ts
|
|
4050
|
-
import { $addArgumentDescription as $
|
|
4051
|
-
import { defineUnit as defineUnit34, z as
|
|
4052
|
+
import { $addArgumentDescription as $addArgumentDescription32, $addInputDescription as $addInputDescription32 } from "@highstate/contract";
|
|
4053
|
+
import { defineUnit as defineUnit34, z as z42 } from "@highstate/contract";
|
|
4052
4054
|
import { pick as pick11 } from "remeda";
|
|
4053
4055
|
var matrixStack = defineUnit34({
|
|
4054
4056
|
type: "k8s.apps.matrix-stack.v1",
|
|
4055
4057
|
args: {
|
|
4056
4058
|
...appName("matrix-stack"),
|
|
4057
4059
|
...pick11(sharedArgs, ["values", "patches", "service"]),
|
|
4058
|
-
fqdn: $
|
|
4060
|
+
fqdn: $addArgumentDescription32(z42.string(), `The base domain for the Matrix stack services.
|
|
4059
4061
|
|
|
4060
4062
|
Subdomains for Matrix services are generated automatically.
|
|
4061
4063
|
This value cannot be changed after the first deployment.`),
|
|
4062
|
-
enableCinny: $
|
|
4064
|
+
enableCinny: $addArgumentDescription32(z42.boolean().default(false), `Whether to enable cinny web client deployment.
|
|
4063
4065
|
|
|
4064
4066
|
The FQDN will be generated as \`cinny.\${fqdn}\`.`),
|
|
4065
|
-
federationDomainWhitelist: $
|
|
4067
|
+
federationDomainWhitelist: $addArgumentDescription32(z42.array(z42.string()).default([]), `The list of remote Matrix domains that are allowed for federation.
|
|
4066
4068
|
|
|
4067
4069
|
Leave empty to allow federation with all domains.`)
|
|
4068
4070
|
},
|
|
4069
4071
|
inputs: {
|
|
4070
4072
|
...pick11(sharedInputs, ["k8sCluster", "accessPoint"]),
|
|
4071
|
-
synapsePostgresql: $
|
|
4072
|
-
masPostgresql: $
|
|
4073
|
+
synapsePostgresql: $addInputDescription32(exports_postgresql.connectionEntity, `The PostgreSQL connection for the Synapse server.`),
|
|
4074
|
+
masPostgresql: $addInputDescription32(exports_postgresql.connectionEntity, `The PostgreSQL connection for the Matrix Authentication Service.`)
|
|
4073
4075
|
},
|
|
4074
4076
|
secrets: {},
|
|
4075
4077
|
meta: {
|
|
@@ -4082,8 +4084,8 @@ var matrixStack = defineUnit34({
|
|
|
4082
4084
|
source: source("matrix-stack")
|
|
4083
4085
|
});
|
|
4084
4086
|
// src/k8s/apps/minio.ts
|
|
4085
|
-
import { $addArgumentDescription as $
|
|
4086
|
-
import { defineUnit as defineUnit35, z as
|
|
4087
|
+
import { $addArgumentDescription as $addArgumentDescription33 } from "@highstate/contract";
|
|
4088
|
+
import { defineUnit as defineUnit35, z as z43 } from "@highstate/contract";
|
|
4087
4089
|
import { pick as pick12 } from "remeda";
|
|
4088
4090
|
var minio = defineUnit35({
|
|
4089
4091
|
type: "k8s.apps.minio.v1",
|
|
@@ -4091,13 +4093,13 @@ var minio = defineUnit35({
|
|
|
4091
4093
|
...appName("minio"),
|
|
4092
4094
|
...pick12(optionalSharedArgs, ["fqdn", "namespace"]),
|
|
4093
4095
|
...pick12(sharedArgs, ["external", "values", "patches", "service", "scheduling"]),
|
|
4094
|
-
consoleFqdn: $
|
|
4096
|
+
consoleFqdn: $addArgumentDescription33(z43.string().optional(), `The FQDN of the MinIO console.
|
|
4095
4097
|
|
|
4096
4098
|
If not provided, the console will not be exposed and only the S3 API will be available.`),
|
|
4097
|
-
region: $
|
|
4099
|
+
region: $addArgumentDescription33(z43.string().default("us-east-1"), `The name of the region to associate with the MinIO deployment.
|
|
4098
4100
|
|
|
4099
4101
|
Defaults to "us-east-1".`),
|
|
4100
|
-
useConsoleFork: $
|
|
4102
|
+
useConsoleFork: $addArgumentDescription33(z43.boolean().default(false), `Whether to use the [fork](https://github.com/huncrys/minio-console) of MinIO Console instead of the built-in console.
|
|
4101
4103
|
The fork contains admin features that were removed from the original console.`)
|
|
4102
4104
|
},
|
|
4103
4105
|
secrets: {
|
|
@@ -4199,20 +4201,20 @@ var postgresql = defineUnit38({
|
|
|
4199
4201
|
source: source("postgresql")
|
|
4200
4202
|
});
|
|
4201
4203
|
// src/k8s/apps/refluxdb.ts
|
|
4202
|
-
import { $addArgumentDescription as $
|
|
4203
|
-
import { defineUnit as defineUnit39, z as
|
|
4204
|
+
import { $addArgumentDescription as $addArgumentDescription34 } from "@highstate/contract";
|
|
4205
|
+
import { defineUnit as defineUnit39, z as z44 } from "@highstate/contract";
|
|
4204
4206
|
import { pick as pick16 } from "remeda";
|
|
4205
4207
|
var refluxdb = defineUnit39({
|
|
4206
4208
|
type: "k8s.apps.refluxdb.v1",
|
|
4207
4209
|
args: {
|
|
4208
4210
|
...appName("refluxdb"),
|
|
4209
4211
|
...pick16(sharedArgs, ["external"]),
|
|
4210
|
-
nodeId: $
|
|
4212
|
+
nodeId: $addArgumentDescription34(z44.string().default("local1"), `The ID of the node.
|
|
4211
4213
|
|
|
4212
4214
|
Defaults to "local1".`)
|
|
4213
4215
|
},
|
|
4214
4216
|
secrets: {
|
|
4215
|
-
operatorToken: $
|
|
4217
|
+
operatorToken: $addArgumentDescription34(z44.string().optional(), `The operator token of the RefluxDB instance.`)
|
|
4216
4218
|
},
|
|
4217
4219
|
inputs: {
|
|
4218
4220
|
...pick16(sharedInputs, ["k8sCluster"]),
|
|
@@ -4235,13 +4237,13 @@ import { camelCaseToHumanReadable as __camelCaseToHumanReadable24 } from "@highs
|
|
|
4235
4237
|
import {
|
|
4236
4238
|
defineEntity as defineEntity29,
|
|
4237
4239
|
defineUnit as defineUnit40,
|
|
4238
|
-
z as
|
|
4240
|
+
z as z45
|
|
4239
4241
|
} from "@highstate/contract";
|
|
4240
4242
|
import { pick as pick17 } from "remeda";
|
|
4241
4243
|
var remnawaveEntity = defineEntity29({
|
|
4242
4244
|
type: "k8s.apps.remnawave.v1",
|
|
4243
|
-
schema:
|
|
4244
|
-
instanceId:
|
|
4245
|
+
schema: z45.object({
|
|
4246
|
+
instanceId: z45.string().meta({ title: __camelCaseToHumanReadable24("instanceId"), description: `The ID of the Remnawave instance.` })
|
|
4245
4247
|
}),
|
|
4246
4248
|
meta: {
|
|
4247
4249
|
color: "#0066cc",
|
|
@@ -4253,8 +4255,8 @@ var remnawaveEntity = defineEntity29({
|
|
|
4253
4255
|
var remnawave = defineUnit40({
|
|
4254
4256
|
type: "k8s.apps.remnawave.backend.v1",
|
|
4255
4257
|
secrets: {
|
|
4256
|
-
jwtAuthSecret:
|
|
4257
|
-
jwtApiTokensSecret:
|
|
4258
|
+
jwtAuthSecret: z45.string(),
|
|
4259
|
+
jwtApiTokensSecret: z45.string()
|
|
4258
4260
|
},
|
|
4259
4261
|
inputs: {
|
|
4260
4262
|
...pick17(sharedInputs, ["k8sCluster", "accessPoint", "postgresql", "redis"]),
|
|
@@ -4289,8 +4291,8 @@ var node = defineUnit40({
|
|
|
4289
4291
|
source: source("remnawave/node")
|
|
4290
4292
|
});
|
|
4291
4293
|
// src/k8s/apps/rustfs.ts
|
|
4292
|
-
import { $addArgumentDescription as $
|
|
4293
|
-
import { defineUnit as defineUnit41, z as
|
|
4294
|
+
import { $addArgumentDescription as $addArgumentDescription35 } from "@highstate/contract";
|
|
4295
|
+
import { defineUnit as defineUnit41, z as z46 } from "@highstate/contract";
|
|
4294
4296
|
import { pick as pick18 } from "remeda";
|
|
4295
4297
|
var rustfs = defineUnit41({
|
|
4296
4298
|
type: "k8s.apps.rustfs.v1",
|
|
@@ -4298,25 +4300,25 @@ var rustfs = defineUnit41({
|
|
|
4298
4300
|
...appName("rustfs"),
|
|
4299
4301
|
...pick18(optionalSharedArgs, ["fqdn", "namespace"]),
|
|
4300
4302
|
...pick18(sharedArgs, ["external", "values", "patches", "service", "scheduling"]),
|
|
4301
|
-
mode: $
|
|
4303
|
+
mode: $addArgumentDescription35(z46.enum(["standalone", "distributed"]).default("distributed"), `The deployment topology to use.
|
|
4302
4304
|
|
|
4303
4305
|
Standalone mode deploys one pod with one data volume.
|
|
4304
4306
|
Distributed mode deploys an erasure-coded StatefulSet across multiple pods and volumes.`),
|
|
4305
|
-
consoleFqdn: $
|
|
4307
|
+
consoleFqdn: $addArgumentDescription35(z46.string().optional(), `The FQDN of the RustFS console.
|
|
4306
4308
|
|
|
4307
4309
|
If not provided, the console will only be available inside the cluster.`),
|
|
4308
|
-
replicas: $
|
|
4310
|
+
replicas: $addArgumentDescription35(z46.number().int().min(2).default(4), `The number of nodes in a distributed deployment.
|
|
4309
4311
|
|
|
4310
4312
|
Ignored in standalone mode.`),
|
|
4311
|
-
drivesPerNode: $
|
|
4313
|
+
drivesPerNode: $addArgumentDescription35(z46.number().int().min(1).default(4), `The number of data volumes attached to each distributed node.
|
|
4312
4314
|
|
|
4313
4315
|
Ignored in standalone mode.`),
|
|
4314
|
-
unsafeBypassDiskCheck: $
|
|
4316
|
+
unsafeBypassDiskCheck: $addArgumentDescription35(z46.boolean().default(false), `Whether to bypass RustFS validation that each data volume uses a distinct physical disk.
|
|
4315
4317
|
|
|
4316
4318
|
This sets \`RUSTFS_UNSAFE_BYPASS_DISK_CHECK=true\` and must only be used for local testing or CI.
|
|
4317
4319
|
Enabling it in production can cause correlated data loss because multiple erasure-coded drives
|
|
4318
4320
|
may actually share one physical device.`),
|
|
4319
|
-
allowLessNodes: $
|
|
4321
|
+
allowLessNodes: $addArgumentDescription35(z46.boolean().default(false), `Whether distributed RustFS pods may share Kubernetes nodes.
|
|
4320
4322
|
|
|
4321
4323
|
By default, RustFS requires each replica to run on a different node for failure isolation.
|
|
4322
4324
|
Enable this when the Kubernetes cluster has fewer eligible nodes than RustFS replicas.
|
|
@@ -4324,10 +4326,10 @@ var rustfs = defineUnit41({
|
|
|
4324
4326
|
This reduces fault tolerance because one node failure can make multiple RustFS replicas unavailable.
|
|
4325
4327
|
|
|
4326
4328
|
Ignored in standalone mode.`),
|
|
4327
|
-
storageClass: $
|
|
4328
|
-
dataStorageSize: $
|
|
4329
|
-
logStorageSize: $
|
|
4330
|
-
region: $
|
|
4329
|
+
storageClass: $addArgumentDescription35(z46.string().default("local-path"), `The Kubernetes StorageClass used for RustFS volumes.`),
|
|
4330
|
+
dataStorageSize: $addArgumentDescription35(z46.string().default("100Gi"), `The requested capacity of each data volume.`),
|
|
4331
|
+
logStorageSize: $addArgumentDescription35(z46.string().default("1Gi"), `The requested capacity of each log volume.`),
|
|
4332
|
+
region: $addArgumentDescription35(z46.string().default("us-east-1"), `The S3 region reported by RustFS.`)
|
|
4331
4333
|
},
|
|
4332
4334
|
secrets: {
|
|
4333
4335
|
...pick18(sharedSecrets, ["adminPassword", "backupKey"])
|
|
@@ -4373,20 +4375,20 @@ var signoz = defineUnit42({
|
|
|
4373
4375
|
source: source("signoz")
|
|
4374
4376
|
});
|
|
4375
4377
|
// src/k8s/apps/syncthing.ts
|
|
4376
|
-
import { $addArgumentDescription as $
|
|
4377
|
-
import { defineUnit as defineUnit43, z as
|
|
4378
|
+
import { $addArgumentDescription as $addArgumentDescription36 } from "@highstate/contract";
|
|
4379
|
+
import { defineUnit as defineUnit43, z as z47 } from "@highstate/contract";
|
|
4378
4380
|
import { pick as pick20 } from "remeda";
|
|
4379
|
-
var backupModeSchema =
|
|
4381
|
+
var backupModeSchema = z47.enum(["state", "full"]);
|
|
4380
4382
|
var syncthing = defineUnit43({
|
|
4381
4383
|
type: "k8s.apps.syncthing.v1",
|
|
4382
4384
|
args: {
|
|
4383
4385
|
...appName("syncthing"),
|
|
4384
4386
|
...pick20(sharedArgs, ["fqdn", "external"]),
|
|
4385
|
-
deviceFqdn: $
|
|
4387
|
+
deviceFqdn: $addArgumentDescription36(z47.string().optional(), `The FQDN of the Syncthing instance used to sync with other devices.
|
|
4386
4388
|
|
|
4387
4389
|
The \`fqdn\` argument unlike this one points to the gateway and used to
|
|
4388
4390
|
access the Syncthing Web UI.`),
|
|
4389
|
-
backupMode: $
|
|
4391
|
+
backupMode: $addArgumentDescription36(backupModeSchema.default("state"), `The backup mode to use for the Syncthing instance.
|
|
4390
4392
|
|
|
4391
4393
|
- \`state\`: Only the state is backed up. When the instance is restored, it will
|
|
4392
4394
|
sync files from the other devices automatically.
|
|
@@ -4418,21 +4420,21 @@ var syncthing = defineUnit43({
|
|
|
4418
4420
|
source: source("syncthing")
|
|
4419
4421
|
});
|
|
4420
4422
|
// src/k8s/apps/traefik.ts
|
|
4421
|
-
import { $addArgumentDescription as $
|
|
4422
|
-
import { defineUnit as defineUnit44, z as
|
|
4423
|
+
import { $addArgumentDescription as $addArgumentDescription37 } from "@highstate/contract";
|
|
4424
|
+
import { defineUnit as defineUnit44, z as z48 } from "@highstate/contract";
|
|
4423
4425
|
import { pick as pick21 } from "remeda";
|
|
4424
4426
|
var traefik = defineUnit44({
|
|
4425
4427
|
type: "k8s.apps.traefik.v1",
|
|
4426
4428
|
args: {
|
|
4427
4429
|
...appName("traefik"),
|
|
4428
4430
|
...pick21(sharedArgs, ["external", "replicas", "values", "patches", "service", "scheduling"]),
|
|
4429
|
-
className: $
|
|
4431
|
+
className: $addArgumentDescription37(z48.string().default("traefik"), `The name of the class to configure for ingress and gateway resources.
|
|
4430
4432
|
|
|
4431
4433
|
Defaults to "traefik".`),
|
|
4432
|
-
enableTraefikCrds: $
|
|
4433
|
-
installCrds: $
|
|
4434
|
-
enableIngressApi: $
|
|
4435
|
-
enableGatewayApi: $
|
|
4434
|
+
enableTraefikCrds: $addArgumentDescription37(z48.boolean().default(true), `Whether to create and enable reconciliation for Traefik CRDs.`),
|
|
4435
|
+
installCrds: $addArgumentDescription37(z48.boolean().default(true), `Whether to install CRDs bundled with the Traefik Helm chart.`),
|
|
4436
|
+
enableIngressApi: $addArgumentDescription37(z48.boolean().default(true), `Whether to enable reconciliation for Ingress resources and create ingress class.`),
|
|
4437
|
+
enableGatewayApi: $addArgumentDescription37(z48.boolean().default(false), `Whether to enable reconciliation for Gateway API resources and create gateway class.`)
|
|
4436
4438
|
},
|
|
4437
4439
|
inputs: {
|
|
4438
4440
|
...pick21(sharedInputs, ["k8sCluster"])
|
|
@@ -4483,9 +4485,9 @@ var valkey = defineUnit45({
|
|
|
4483
4485
|
source: source("valkey")
|
|
4484
4486
|
});
|
|
4485
4487
|
// src/k8s/apps/vault.ts
|
|
4486
|
-
import { $addArgumentDescription as $
|
|
4488
|
+
import { $addArgumentDescription as $addArgumentDescription38, $addInputDescription as $addInputDescription38 } from "@highstate/contract";
|
|
4487
4489
|
import { camelCaseToHumanReadable as __camelCaseToHumanReadable25 } from "@highstate/contract";
|
|
4488
|
-
import { defineUnit as defineUnit46, z as
|
|
4490
|
+
import { defineUnit as defineUnit46, z as z49 } from "@highstate/contract";
|
|
4489
4491
|
import { pick as pick23 } from "remeda";
|
|
4490
4492
|
var vault = defineUnit46({
|
|
4491
4493
|
type: "k8s.apps.vault.v1",
|
|
@@ -4500,15 +4502,15 @@ var vault = defineUnit46({
|
|
|
4500
4502
|
"service",
|
|
4501
4503
|
"scheduling"
|
|
4502
4504
|
]),
|
|
4503
|
-
backend: $
|
|
4505
|
+
backend: $addArgumentDescription38(z49.enum(["file", "s3"]).default("file"), `The storage backend to use for Vault.
|
|
4504
4506
|
|
|
4505
4507
|
The options are:
|
|
4506
4508
|
- \`file\`: uses a persistent volume claim and supports restic backups (default);
|
|
4507
4509
|
- \`s3\`: uses an external S3-compatible bucket; expects \`s3Bucket\` input.`),
|
|
4508
|
-
autoInit: $
|
|
4509
|
-
enabled:
|
|
4510
|
-
shares:
|
|
4511
|
-
threshold:
|
|
4510
|
+
autoInit: $addArgumentDescription38(z49.object({
|
|
4511
|
+
enabled: z49.boolean().default(true).meta({ title: __camelCaseToHumanReadable25("enabled"), description: `Whether to initialize Vault automatically using the Vault CLI.` }),
|
|
4512
|
+
shares: z49.number().int().positive().default(1).meta({ title: __camelCaseToHumanReadable25("shares"), description: `The number of unseal key shares to create.` }),
|
|
4513
|
+
threshold: z49.number().int().positive().default(1).meta({ title: __camelCaseToHumanReadable25("threshold"), description: `The number of unseal key shares required to unseal Vault.` })
|
|
4512
4514
|
}).refine((autoInit) => autoInit.threshold <= autoInit.shares, {
|
|
4513
4515
|
message: "threshold must be less than or equal to shares",
|
|
4514
4516
|
path: ["threshold"]
|
|
@@ -4520,12 +4522,12 @@ var vault = defineUnit46({
|
|
|
4520
4522
|
},
|
|
4521
4523
|
secrets: {
|
|
4522
4524
|
...pick23(sharedSecrets, ["backupKey"]),
|
|
4523
|
-
rootToken: $
|
|
4524
|
-
unsealKeys: $
|
|
4525
|
+
rootToken: $addArgumentDescription38(z49.string().optional(), `The root token returned by \`vault operator init\`.`),
|
|
4526
|
+
unsealKeys: $addArgumentDescription38(z49.string().array().meta({ complex: true }).optional(), `The unseal key shares returned by \`vault operator init\`.`)
|
|
4525
4527
|
},
|
|
4526
4528
|
inputs: {
|
|
4527
4529
|
...pick23(sharedInputs, ["k8sCluster", "accessPoint"]),
|
|
4528
|
-
s3Bucket: $
|
|
4530
|
+
s3Bucket: $addInputDescription38({
|
|
4529
4531
|
entity: exports_s3.bucketEntity,
|
|
4530
4532
|
required: false
|
|
4531
4533
|
}, `When \`backend\` is \`s3\`, supply an existing S3 bucket connection (see \`s3.bucketEntity\`).`),
|
|
@@ -4544,19 +4546,19 @@ var vault = defineUnit46({
|
|
|
4544
4546
|
source: source("vault")
|
|
4545
4547
|
});
|
|
4546
4548
|
// src/k8s/apps/vaultwarden.ts
|
|
4547
|
-
import { $addArgumentDescription as $
|
|
4548
|
-
import { defineUnit as defineUnit47, z as
|
|
4549
|
+
import { $addArgumentDescription as $addArgumentDescription39 } from "@highstate/contract";
|
|
4550
|
+
import { defineUnit as defineUnit47, z as z50 } from "@highstate/contract";
|
|
4549
4551
|
import { pick as pick24 } from "remeda";
|
|
4550
4552
|
var vaultwarden = defineUnit47({
|
|
4551
4553
|
type: "k8s.apps.vaultwarden.v1",
|
|
4552
4554
|
args: {
|
|
4553
4555
|
...appName("vaultwarden"),
|
|
4554
4556
|
...pick24(sharedArgs, ["fqdn"]),
|
|
4555
|
-
allowSignup: $
|
|
4556
|
-
enableAdminPanel: $
|
|
4557
|
+
allowSignup: $addArgumentDescription39(z50.boolean().default(false), `Whether signup is allowed for the Vaultwarden instance. Defaults to \`false\` for security reasons.`),
|
|
4558
|
+
enableAdminPanel: $addArgumentDescription39(z50.boolean().default(true), `Whether admin panel is enabled. Defaults to \`true\`.`)
|
|
4557
4559
|
},
|
|
4558
4560
|
secrets: {
|
|
4559
|
-
adminToken: $
|
|
4561
|
+
adminToken: $addArgumentDescription39(z50.string().optional(), `The admin token for the Vaulwarden instance.
|
|
4560
4562
|
|
|
4561
4563
|
Will be automatically generated if \`enableAdminPanel\` is \`true\`.`),
|
|
4562
4564
|
...pick24(sharedSecrets, ["backupKey"])
|
|
@@ -4574,16 +4576,26 @@ var vaultwarden = defineUnit47({
|
|
|
4574
4576
|
source: source("vaultwarden")
|
|
4575
4577
|
});
|
|
4576
4578
|
// src/k8s/apps/wg-feed-server.ts
|
|
4577
|
-
import {
|
|
4579
|
+
import { $addArgumentDescription as $addArgumentDescription40, $addInputDescription as $addInputDescription40 } from "@highstate/contract";
|
|
4580
|
+
import { defineUnit as defineUnit48, z as z51 } from "@highstate/contract";
|
|
4578
4581
|
import { pick as pick25 } from "remeda";
|
|
4579
4582
|
var wgFeedServer = defineUnit48({
|
|
4580
4583
|
type: "k8s.apps.wg-feed-server.v1",
|
|
4581
4584
|
args: {
|
|
4582
4585
|
...appName("wg-feed-server"),
|
|
4583
|
-
...pick25(sharedArgs, ["fqdn"])
|
|
4586
|
+
...pick25(sharedArgs, ["fqdn", "replicas", "scheduling"]),
|
|
4587
|
+
pathPattern: $addArgumentDescription40(z51.string().optional(), `The regular expression matching paths served by the WG feed server.
|
|
4588
|
+
|
|
4589
|
+
Must be provided together with \`fallbackSite\`.`)
|
|
4584
4590
|
},
|
|
4585
4591
|
inputs: {
|
|
4586
|
-
...pick25(sharedInputs, ["k8sCluster", "accessPoint", "etcd"])
|
|
4592
|
+
...pick25(sharedInputs, ["k8sCluster", "accessPoint", "etcd"]),
|
|
4593
|
+
fallbackSite: $addInputDescription40({
|
|
4594
|
+
entity: folderEntity,
|
|
4595
|
+
required: false
|
|
4596
|
+
}, `The static site served for paths that do not match \`pathPattern\`.
|
|
4597
|
+
|
|
4598
|
+
Must be provided together with \`pathPattern\`.`)
|
|
4587
4599
|
},
|
|
4588
4600
|
outputs: {
|
|
4589
4601
|
endpoint: l4EndpointEntity
|
|
@@ -4599,10 +4611,10 @@ var wgFeedServer = defineUnit48({
|
|
|
4599
4611
|
source: source("wg-feed-server")
|
|
4600
4612
|
});
|
|
4601
4613
|
// src/k8s/apps/workload.ts
|
|
4602
|
-
import { $addArgumentDescription as $
|
|
4603
|
-
import { defineUnit as defineUnit49, z as
|
|
4614
|
+
import { $addArgumentDescription as $addArgumentDescription41 } from "@highstate/contract";
|
|
4615
|
+
import { defineUnit as defineUnit49, z as z52 } from "@highstate/contract";
|
|
4604
4616
|
import { pick as pick26 } from "remeda";
|
|
4605
|
-
var databaseConfigKeySchema =
|
|
4617
|
+
var databaseConfigKeySchema = z52.enum([
|
|
4606
4618
|
"url",
|
|
4607
4619
|
"host",
|
|
4608
4620
|
"port",
|
|
@@ -4610,86 +4622,86 @@ var databaseConfigKeySchema = z50.enum([
|
|
|
4610
4622
|
"password",
|
|
4611
4623
|
"database"
|
|
4612
4624
|
]);
|
|
4613
|
-
var environmentVariableSchema =
|
|
4614
|
-
|
|
4615
|
-
|
|
4616
|
-
dependencyKey:
|
|
4617
|
-
|
|
4618
|
-
|
|
4625
|
+
var environmentVariableSchema = z52.union([
|
|
4626
|
+
z52.string(),
|
|
4627
|
+
z52.object({
|
|
4628
|
+
dependencyKey: z52.templateLiteral([
|
|
4629
|
+
z52.enum(["mariadb", "postgresql", "mongodb"]),
|
|
4630
|
+
z52.literal("."),
|
|
4619
4631
|
databaseConfigKeySchema
|
|
4620
4632
|
])
|
|
4621
4633
|
}),
|
|
4622
|
-
|
|
4623
|
-
configKey:
|
|
4634
|
+
z52.object({
|
|
4635
|
+
configKey: z52.string()
|
|
4624
4636
|
}),
|
|
4625
|
-
|
|
4626
|
-
secretKey:
|
|
4637
|
+
z52.object({
|
|
4638
|
+
secretKey: z52.string()
|
|
4627
4639
|
})
|
|
4628
4640
|
]);
|
|
4629
4641
|
var workload = defineUnit49({
|
|
4630
4642
|
type: "k8s.apps.workload.v0",
|
|
4631
4643
|
args: {
|
|
4632
|
-
appName: $
|
|
4644
|
+
appName: $addArgumentDescription41(z52.string().optional(), `The name of the application.
|
|
4633
4645
|
|
|
4634
4646
|
If not provided, the name of the unit will be used.`),
|
|
4635
|
-
namespace: $
|
|
4647
|
+
namespace: $addArgumentDescription41(z52.string().optional(), `The name of the new namespace to create for the workload.
|
|
4636
4648
|
|
|
4637
4649
|
If not provided, the \`appName\` will be used as the namespace name.`),
|
|
4638
|
-
existingNamespace: $
|
|
4650
|
+
existingNamespace: $addArgumentDescription41(z52.string().optional(), `The name of the existing namespace to use for the workload.`),
|
|
4639
4651
|
...pick26(sharedArgs, ["external"]),
|
|
4640
4652
|
...serviceArg,
|
|
4641
4653
|
...schedulingArg,
|
|
4642
|
-
type: $
|
|
4643
|
-
image: $
|
|
4644
|
-
command: $
|
|
4645
|
-
port: $
|
|
4654
|
+
type: $addArgumentDescription41(z52.enum(["Deployment", "StatefulSet", "DaemonSet", "Job", "CronJob"]).default("Deployment"), `The type of the workload to create.`),
|
|
4655
|
+
image: $addArgumentDescription41(z52.string(), `The image to use for the workload.`),
|
|
4656
|
+
command: $addArgumentDescription41(z52.array(z52.string()).default([]), `The command to run in the container.`),
|
|
4657
|
+
port: $addArgumentDescription41(portSchema.optional(), `The port to expose for the workload.
|
|
4646
4658
|
|
|
4647
4659
|
If specified, a service will be created for the workload.`),
|
|
4648
|
-
fqdn: $
|
|
4660
|
+
fqdn: $addArgumentDescription41(z52.string().optional(), `The FQDN of the workload.
|
|
4649
4661
|
|
|
4650
4662
|
If specified, a service and an HTTP route will be created for the workload.`),
|
|
4651
|
-
replicas: $
|
|
4663
|
+
replicas: $addArgumentDescription41(z52.number().default(1), `The number of replicas for the workload.
|
|
4652
4664
|
|
|
4653
4665
|
By default, it is set to 1.`),
|
|
4654
|
-
dataPath: $
|
|
4666
|
+
dataPath: $addArgumentDescription41(z52.string().optional(), `The path where the workload data will be stored.
|
|
4655
4667
|
|
|
4656
4668
|
If specified, a persistent volume claim will be created for the workload.
|
|
4657
4669
|
|
|
4658
4670
|
If \`resticRepo\` input is provided, the automatic backup will be enabled for this path.`),
|
|
4659
|
-
env: $
|
|
4671
|
+
env: $addArgumentDescription41(z52.record(z52.string(), environmentVariableSchema).default({}), `The environment variables to set for the workload.
|
|
4660
4672
|
|
|
4661
4673
|
The values can be:
|
|
4662
4674
|
1. a static string value;
|
|
4663
4675
|
2. a dependency key to service configuration (e.g., \`mariadb.username\`);
|
|
4664
4676
|
3. a config key to reference a configuration value provided via \`config\` argument;
|
|
4665
4677
|
4. a secret key to reference a secret value provided via \`secretData\` secret.`),
|
|
4666
|
-
files: $
|
|
4667
|
-
config: $
|
|
4678
|
+
files: $addArgumentDescription41(z52.record(z52.string(), z52.string()).default({}), `The files to mount in the workload from a config map.`),
|
|
4679
|
+
config: $addArgumentDescription41(z52.record(z52.string(), z52.unknown()).default({}), `The configuration for the workload.
|
|
4668
4680
|
|
|
4669
4681
|
If provided, the config map will be created.
|
|
4670
4682
|
|
|
4671
4683
|
You can reference the configuration values in the environment variables using \`configKey\`.`),
|
|
4672
|
-
manifest: $
|
|
4684
|
+
manifest: $addArgumentDescription41(z52.record(z52.string(), z52.unknown()).default({}), `The Kubernetes manifest patch for the deployment.
|
|
4673
4685
|
|
|
4674
4686
|
Will be applied to the deployment manifest before it is created.`),
|
|
4675
|
-
httpRouteManifest: $
|
|
4687
|
+
httpRouteManifest: $addArgumentDescription41(z52.record(z52.string(), z52.unknown()).default({}), `The Kubernetes HTTP route manifest for the deployment.
|
|
4676
4688
|
|
|
4677
4689
|
Will be applied to the HTTP route manifest before it is created.`)
|
|
4678
4690
|
},
|
|
4679
4691
|
secrets: {
|
|
4680
|
-
mariadbPassword: $
|
|
4692
|
+
mariadbPassword: $addArgumentDescription41(z52.string().optional(), `The password for the MariaDB database.
|
|
4681
4693
|
|
|
4682
4694
|
If not provided and requested, a random password will be generated.`),
|
|
4683
|
-
postgresqlPassword: $
|
|
4695
|
+
postgresqlPassword: $addArgumentDescription41(z52.string().optional(), `The password for the PostgreSQL database.
|
|
4684
4696
|
|
|
4685
4697
|
If not provided and requested, a random password will be generated.`),
|
|
4686
|
-
mongodbPassword: $
|
|
4698
|
+
mongodbPassword: $addArgumentDescription41(z52.string().optional(), `The password for the MongoDB database.
|
|
4687
4699
|
|
|
4688
4700
|
If not provided and requested, a random password will be generated.`),
|
|
4689
|
-
backupKey: $
|
|
4701
|
+
backupKey: $addArgumentDescription41(z52.string().optional(), `The key for the backup.
|
|
4690
4702
|
|
|
4691
4703
|
If not provided and requested, a random key will be generated.`),
|
|
4692
|
-
secretData: $
|
|
4704
|
+
secretData: $addArgumentDescription41(z52.record(z52.string(), z52.string()).default({}), `The secret configuration for the workload.
|
|
4693
4705
|
|
|
4694
4706
|
If provided, the secret will be created with the specified content.
|
|
4695
4707
|
|
|
@@ -4719,19 +4731,19 @@ var workload = defineUnit49({
|
|
|
4719
4731
|
source: source("workload")
|
|
4720
4732
|
});
|
|
4721
4733
|
// src/k8s/cert-manager.ts
|
|
4722
|
-
import { $addArgumentDescription as $
|
|
4734
|
+
import { $addArgumentDescription as $addArgumentDescription42, $addInputDescription as $addInputDescription42 } from "@highstate/contract";
|
|
4723
4735
|
import { camelCaseToHumanReadable as __camelCaseToHumanReadable26 } from "@highstate/contract";
|
|
4724
|
-
import { defineUnit as defineUnit50, z as
|
|
4725
|
-
var tlsIssuerDataSchema =
|
|
4736
|
+
import { defineUnit as defineUnit50, z as z53 } from "@highstate/contract";
|
|
4737
|
+
var tlsIssuerDataSchema = z53.object({
|
|
4726
4738
|
cluster: clusterEntity.schema.meta({ title: __camelCaseToHumanReadable26("cluster"), description: `The Kubernetes cluster to use for creating gateway routes.` }),
|
|
4727
|
-
clusterIssuerName:
|
|
4739
|
+
clusterIssuerName: z53.string().meta({ title: __camelCaseToHumanReadable26("clusterIssuerName"), description: `The name of the cluster issuer which should be used to issue TLS certificates.` })
|
|
4728
4740
|
});
|
|
4729
4741
|
var certManager = defineUnit50({
|
|
4730
4742
|
type: "k8s.cert-manager.v1",
|
|
4731
4743
|
args: {
|
|
4732
4744
|
...helmExtensionArgs,
|
|
4733
4745
|
...schedulingArg,
|
|
4734
|
-
enableGatewayApi: $
|
|
4746
|
+
enableGatewayApi: $addArgumentDescription42(z53.boolean().default(false), `Whether to enable the native support for Gateway API in cert-manager.
|
|
4735
4747
|
|
|
4736
4748
|
Note that this can conflict with "Gateway API" unit since it is bringing its own CRDs.`)
|
|
4737
4749
|
},
|
|
@@ -4755,19 +4767,19 @@ var certManager = defineUnit50({
|
|
|
4755
4767
|
var dns01TlsIssuer = defineUnit50({
|
|
4756
4768
|
type: "k8s.dns01-issuer.v1",
|
|
4757
4769
|
args: {
|
|
4758
|
-
acmeServer: $
|
|
4759
|
-
|
|
4760
|
-
type:
|
|
4770
|
+
acmeServer: $addArgumentDescription42(z53.union([
|
|
4771
|
+
z53.object({
|
|
4772
|
+
type: z53.enum(["letsencrypt", "zerossl"])
|
|
4761
4773
|
}),
|
|
4762
|
-
|
|
4763
|
-
type:
|
|
4764
|
-
url:
|
|
4774
|
+
z53.object({
|
|
4775
|
+
type: z53.literal("custom"),
|
|
4776
|
+
url: z53.string()
|
|
4765
4777
|
})
|
|
4766
4778
|
]).default({ type: "letsencrypt" }), `The ACME server to use for issuing certificates.`)
|
|
4767
4779
|
},
|
|
4768
4780
|
secrets: {
|
|
4769
|
-
eabKeyId:
|
|
4770
|
-
eabKeySecret:
|
|
4781
|
+
eabKeyId: z53.string().optional(),
|
|
4782
|
+
eabKeySecret: z53.string().optional()
|
|
4771
4783
|
},
|
|
4772
4784
|
inputs: {
|
|
4773
4785
|
k8sCluster: clusterEntity,
|
|
@@ -4792,8 +4804,8 @@ var dns01TlsIssuer = defineUnit50({
|
|
|
4792
4804
|
var vaultTlsIssuer = defineUnit50({
|
|
4793
4805
|
type: "k8s.vault-issuer.v1",
|
|
4794
4806
|
inputs: {
|
|
4795
|
-
k8sCluster: $
|
|
4796
|
-
vaultPkiIssuer: $
|
|
4807
|
+
k8sCluster: $addInputDescription42(clusterEntity, `The Kubernetes cluster where the Vault issuer should be configured.`),
|
|
4808
|
+
vaultPkiIssuer: $addInputDescription42(pkiIssuerEntity, `The Vault PKI issuer to use for issuing certificates.`)
|
|
4797
4809
|
},
|
|
4798
4810
|
outputs: {
|
|
4799
4811
|
tlsIssuer: tlsIssuerEntity
|
|
@@ -4812,18 +4824,18 @@ var vaultTlsIssuer = defineUnit50({
|
|
|
4812
4824
|
}
|
|
4813
4825
|
});
|
|
4814
4826
|
// src/k8s/cilium.ts
|
|
4815
|
-
import { $addArgumentDescription as $
|
|
4827
|
+
import { $addArgumentDescription as $addArgumentDescription43 } from "@highstate/contract";
|
|
4816
4828
|
import { camelCaseToHumanReadable as __camelCaseToHumanReadable27 } from "@highstate/contract";
|
|
4817
|
-
import { defineUnit as defineUnit51, z as
|
|
4829
|
+
import { defineUnit as defineUnit51, z as z54 } from "@highstate/contract";
|
|
4818
4830
|
var cilium = defineUnit51({
|
|
4819
4831
|
type: "k8s.cilium.v1",
|
|
4820
4832
|
args: {
|
|
4821
|
-
allowForbiddenFqdnResolution: $
|
|
4833
|
+
allowForbiddenFqdnResolution: $addArgumentDescription43(z54.boolean().default(false), `If set to \`true\`, the generated network policy will allow
|
|
4822
4834
|
all DNS queries to be resolved, even if they are
|
|
4823
4835
|
for forbidden (non-allowed) FQDNs.
|
|
4824
4836
|
|
|
4825
4837
|
By default, is \`false\`.`),
|
|
4826
|
-
enableHubble: $
|
|
4838
|
+
enableHubble: $addArgumentDescription43(z54.boolean().default(true), `Whether to enable Hubble Relay and UI for observability.
|
|
4827
4839
|
|
|
4828
4840
|
By default, this is \`true\`.
|
|
4829
4841
|
|
|
@@ -4849,9 +4861,9 @@ var cilium = defineUnit51({
|
|
|
4849
4861
|
path: "unit"
|
|
4850
4862
|
}
|
|
4851
4863
|
});
|
|
4852
|
-
var ciliumClusterMetadata =
|
|
4853
|
-
"cilium.cni":
|
|
4854
|
-
allowForbiddenFqdnResolution:
|
|
4864
|
+
var ciliumClusterMetadata = z54.object({
|
|
4865
|
+
"cilium.cni": z54.object({
|
|
4866
|
+
allowForbiddenFqdnResolution: z54.boolean().default(false).meta({ title: __camelCaseToHumanReadable27("allowForbiddenFqdnResolution"), description: `If set to \`true\`, the generated network policy will allow
|
|
4855
4867
|
all DNS queries to be resolved, even if they are
|
|
4856
4868
|
for forbidden (non-allowed) FQDNs.
|
|
4857
4869
|
|
|
@@ -4859,24 +4871,24 @@ var ciliumClusterMetadata = z52.object({
|
|
|
4859
4871
|
})
|
|
4860
4872
|
});
|
|
4861
4873
|
// src/k8s/coredns.ts
|
|
4862
|
-
import { $addArgumentDescription as $
|
|
4863
|
-
import { defineUnit as defineUnit52, z as
|
|
4874
|
+
import { $addArgumentDescription as $addArgumentDescription44 } from "@highstate/contract";
|
|
4875
|
+
import { defineUnit as defineUnit52, z as z55 } from "@highstate/contract";
|
|
4864
4876
|
var coreDns = defineUnit52({
|
|
4865
4877
|
type: "k8s.coredns.v1",
|
|
4866
4878
|
args: {
|
|
4867
4879
|
...schedulingArg,
|
|
4868
|
-
mode: $
|
|
4880
|
+
mode: $addArgumentDescription44(z55.enum(["cluster", "node"]).default("cluster"), `The mode to use for CoreDNS deployment.
|
|
4869
4881
|
|
|
4870
4882
|
\`cluster\` creates a regular Deployment with a small replica count.
|
|
4871
4883
|
It is the default Kubernetes model and fits clusters with reliable pod/service networking between nodes.
|
|
4872
4884
|
|
|
4873
4885
|
\`node\` creates a DaemonSet and configures the DNS Service to route only to node-local endpoints.
|
|
4874
4886
|
It fits edge, NATed, or partitioned clusters where each node should answer DNS locally and avoid cross-node DNS traffic.`),
|
|
4875
|
-
clusterDomain: $
|
|
4876
|
-
clusterIP: $
|
|
4887
|
+
clusterDomain: $addArgumentDescription44(z55.string().default("cluster.local"), `The Kubernetes cluster DNS domain served by CoreDNS.`),
|
|
4888
|
+
clusterIP: $addArgumentDescription44(z55.string().default("10.43.0.10"), `The stable Service IP to reserve for cluster DNS.
|
|
4877
4889
|
|
|
4878
4890
|
The default matches the common K3s service CIDR.`),
|
|
4879
|
-
useExternalKubeApi: $
|
|
4891
|
+
useExternalKubeApi: $addArgumentDescription44(z55.boolean().default(false), `Whether CoreDNS should connect through the best external Kubernetes API endpoint.
|
|
4880
4892
|
|
|
4881
4893
|
By default, CoreDNS uses the in-cluster Kubernetes service endpoint.`)
|
|
4882
4894
|
},
|
|
@@ -4905,14 +4917,14 @@ __export(exports_game_servers, {
|
|
|
4905
4917
|
});
|
|
4906
4918
|
|
|
4907
4919
|
// src/k8s/game-servers/openttd.ts
|
|
4908
|
-
import { defineUnit as defineUnit53, z as
|
|
4920
|
+
import { defineUnit as defineUnit53, z as z56 } from "@highstate/contract";
|
|
4909
4921
|
import { pick as pick27 } from "remeda";
|
|
4910
4922
|
var openttd = defineUnit53({
|
|
4911
4923
|
type: "k8s.game-servers.openttd.v1",
|
|
4912
4924
|
args: {
|
|
4913
4925
|
...appName("openttd-server"),
|
|
4914
4926
|
...pick27(sharedArgs, ["fqdn"]),
|
|
4915
|
-
port:
|
|
4927
|
+
port: z56.number().default(3979).describe("The port the game server will be exposed on.")
|
|
4916
4928
|
},
|
|
4917
4929
|
inputs: {
|
|
4918
4930
|
...pick27(sharedInputs, ["k8sCluster", "dnsProviders"]),
|
|
@@ -4932,14 +4944,14 @@ var openttd = defineUnit53({
|
|
|
4932
4944
|
}
|
|
4933
4945
|
});
|
|
4934
4946
|
// src/k8s/game-servers/satisfactory.ts
|
|
4935
|
-
import { defineUnit as defineUnit54, z as
|
|
4947
|
+
import { defineUnit as defineUnit54, z as z57 } from "@highstate/contract";
|
|
4936
4948
|
import { pick as pick28 } from "remeda";
|
|
4937
4949
|
var satisfactory = defineUnit54({
|
|
4938
4950
|
type: "k8s.game-servers.satisfactory.v1",
|
|
4939
4951
|
args: {
|
|
4940
4952
|
...appName("satisfactory-server"),
|
|
4941
4953
|
...pick28(sharedArgs, ["fqdn"]),
|
|
4942
|
-
port:
|
|
4954
|
+
port: z57.number().default(7777).describe("The port the game server will be exposed on.")
|
|
4943
4955
|
},
|
|
4944
4956
|
inputs: {
|
|
4945
4957
|
...pick28(sharedInputs, ["k8sCluster", "accessPoint"]),
|
|
@@ -4959,31 +4971,31 @@ var satisfactory = defineUnit54({
|
|
|
4959
4971
|
}
|
|
4960
4972
|
});
|
|
4961
4973
|
// src/k8s/gateway.ts
|
|
4962
|
-
import { $addArgumentDescription as $
|
|
4974
|
+
import { $addArgumentDescription as $addArgumentDescription45 } from "@highstate/contract";
|
|
4963
4975
|
import { camelCaseToHumanReadable as __camelCaseToHumanReadable28 } from "@highstate/contract";
|
|
4964
|
-
import { defineUnit as defineUnit55, z as
|
|
4965
|
-
var semverVersionSchema =
|
|
4966
|
-
var gatewayDataSchema =
|
|
4976
|
+
import { defineUnit as defineUnit55, z as z58 } from "@highstate/contract";
|
|
4977
|
+
var semverVersionSchema = z58.string().regex(/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/);
|
|
4978
|
+
var gatewayDataSchema = z58.object({
|
|
4967
4979
|
cluster: clusterEntity.schema.meta({ title: __camelCaseToHumanReadable28("cluster"), description: `The Kubernetes cluster to use for creating gateway routes.` }),
|
|
4968
4980
|
namespace: namespaceEntity2.schema.meta({ title: __camelCaseToHumanReadable28("namespace"), description: `The namespace where the gateway controller of the class is running.` }),
|
|
4969
|
-
className:
|
|
4970
|
-
httpPort:
|
|
4981
|
+
className: z58.string().meta({ title: __camelCaseToHumanReadable28("className"), description: `The name of the gateway class to use.` }),
|
|
4982
|
+
httpPort: z58.number().default(80).meta({ title: __camelCaseToHumanReadable28("httpPort"), description: `The port to use for HTTP in listener.
|
|
4971
4983
|
|
|
4972
4984
|
If not provided, defaults to 80.` }),
|
|
4973
|
-
httpsPort:
|
|
4985
|
+
httpsPort: z58.number().default(443).meta({ title: __camelCaseToHumanReadable28("httpsPort"), description: `The port to use for HTTPS in listener.
|
|
4974
4986
|
|
|
4975
4987
|
If not provided, defaults to 443.` }),
|
|
4976
4988
|
controllerImplRef: implementationReferenceSchema.optional().meta({ title: __camelCaseToHumanReadable28("controllerImplRef"), description: `The nested implementation reference for the Gateway API controller.` })
|
|
4977
4989
|
});
|
|
4978
|
-
var gatewayImplRefSchema =
|
|
4979
|
-
package:
|
|
4990
|
+
var gatewayImplRefSchema = z58.object({
|
|
4991
|
+
package: z58.literal("@highstate/k8s"),
|
|
4980
4992
|
data: gatewayDataSchema
|
|
4981
4993
|
});
|
|
4982
4994
|
var gatewayApi = defineUnit55({
|
|
4983
4995
|
type: "k8s.gateway-api.v1",
|
|
4984
4996
|
args: {
|
|
4985
|
-
channel: $
|
|
4986
|
-
version: $
|
|
4997
|
+
channel: $addArgumentDescription45(z58.enum(["stable", "experimental"]).default("stable"), `The Gateway API release channel to install.`),
|
|
4998
|
+
version: $addArgumentDescription45(semverVersionSchema.optional(), `The Gateway API version to install.
|
|
4987
4999
|
|
|
4988
5000
|
Defaults to the latest stable version when using the stable channel.
|
|
4989
5001
|
Must be specified when using the experimental channel.`)
|
|
@@ -5024,23 +5036,23 @@ __export(exports_phantun, {
|
|
|
5024
5036
|
import { defineUnit as defineUnit56 } from "@highstate/contract";
|
|
5025
5037
|
|
|
5026
5038
|
// src/k8s/obfuscators/shared.ts
|
|
5027
|
-
import { $addArgumentDescription as $
|
|
5028
|
-
import { $args as $args7, $inputs as $inputs3, $outputs as $outputs2, z as
|
|
5039
|
+
import { $addArgumentDescription as $addArgumentDescription46, $addInputDescription as $addInputDescription46 } from "@highstate/contract";
|
|
5040
|
+
import { $args as $args7, $inputs as $inputs3, $outputs as $outputs2, z as z59 } from "@highstate/contract";
|
|
5029
5041
|
var deobfuscatorSpec = {
|
|
5030
5042
|
args: $args7({
|
|
5031
|
-
appName: $
|
|
5043
|
+
appName: $addArgumentDescription46(z59.string().optional(), `The name of the namespace and deployment to deploy the deobfuscator on.
|
|
5032
5044
|
|
|
5033
5045
|
By default, calculated as \`deobfs-{type}-{name}\`.`),
|
|
5034
|
-
targetEndpoints: $
|
|
5046
|
+
targetEndpoints: $addArgumentDescription46(z59.string().array().default([]), `The L4 endpoint to forward deobfuscated traffic to.
|
|
5035
5047
|
|
|
5036
5048
|
Will take precedence over the \`targetEndpoint\` input.`),
|
|
5037
|
-
external: $
|
|
5049
|
+
external: $addArgumentDescription46(z59.boolean().default(false), `Whether to expose the deobfuscator service by "NodePort" or "LoadBalancer".
|
|
5038
5050
|
|
|
5039
5051
|
By default, the service is not exposed and only accessible from within the cluster.`)
|
|
5040
5052
|
}),
|
|
5041
5053
|
inputs: $inputs3({
|
|
5042
|
-
k8sCluster: $
|
|
5043
|
-
targetEndpoints: $
|
|
5054
|
+
k8sCluster: $addInputDescription46(clusterEntity, `The Kubernetes cluster to deploy the deobfuscator on.`),
|
|
5055
|
+
targetEndpoints: $addInputDescription46({
|
|
5044
5056
|
entity: l4EndpointEntity,
|
|
5045
5057
|
required: false,
|
|
5046
5058
|
multiple: true
|
|
@@ -5049,7 +5061,7 @@ var deobfuscatorSpec = {
|
|
|
5049
5061
|
Will select the most appropriate endpoint based on the environment.`)
|
|
5050
5062
|
}),
|
|
5051
5063
|
outputs: $outputs2({
|
|
5052
|
-
endpoints: $
|
|
5064
|
+
endpoints: $addInputDescription46({
|
|
5053
5065
|
entity: l4EndpointEntity,
|
|
5054
5066
|
required: false,
|
|
5055
5067
|
multiple: true
|
|
@@ -5058,19 +5070,19 @@ var deobfuscatorSpec = {
|
|
|
5058
5070
|
};
|
|
5059
5071
|
var obfuscatorSpec = {
|
|
5060
5072
|
args: $args7({
|
|
5061
|
-
appName: $
|
|
5073
|
+
appName: $addArgumentDescription46(z59.string().optional(), `The name of the namespace and deployment to deploy the obfuscator on.
|
|
5062
5074
|
|
|
5063
5075
|
By default, calculated as \`obfs-{type}-{name}\`.`),
|
|
5064
|
-
endpoints: $
|
|
5076
|
+
endpoints: $addArgumentDescription46(z59.string().array().default([]), `The endpoint of the deobfuscator to pass obfuscated traffic to.
|
|
5065
5077
|
|
|
5066
5078
|
Will take precedence over the \`endpoint\` input.`),
|
|
5067
|
-
external: $
|
|
5079
|
+
external: $addArgumentDescription46(z59.boolean().default(false), `Whether to expose the obfuscator service by "NodePort" or "LoadBalancer".
|
|
5068
5080
|
|
|
5069
5081
|
By default, the service is not exposed and only accessible from within the cluster.`)
|
|
5070
5082
|
}),
|
|
5071
5083
|
inputs: $inputs3({
|
|
5072
|
-
k8sCluster: $
|
|
5073
|
-
endpoints: $
|
|
5084
|
+
k8sCluster: $addInputDescription46(clusterEntity, `The Kubernetes cluster to deploy the obfuscator on.`),
|
|
5085
|
+
endpoints: $addInputDescription46({
|
|
5074
5086
|
entity: l4EndpointEntity,
|
|
5075
5087
|
required: false,
|
|
5076
5088
|
multiple: true
|
|
@@ -5079,7 +5091,7 @@ var obfuscatorSpec = {
|
|
|
5079
5091
|
Will select the most appropriate endpoint based on the environment.`)
|
|
5080
5092
|
}),
|
|
5081
5093
|
outputs: $outputs2({
|
|
5082
|
-
entryEndpoints: $
|
|
5094
|
+
entryEndpoints: $addInputDescription46({
|
|
5083
5095
|
entity: l4EndpointEntity,
|
|
5084
5096
|
multiple: true
|
|
5085
5097
|
}, `The L4 endpoints accepting unobfuscated traffic.`)
|
|
@@ -5118,9 +5130,9 @@ var obfuscator = defineUnit56({
|
|
|
5118
5130
|
}
|
|
5119
5131
|
});
|
|
5120
5132
|
// src/k8s/reduced-access.ts
|
|
5121
|
-
import { $addArgumentDescription as $
|
|
5122
|
-
import { defineUnit as defineUnit57, z as
|
|
5123
|
-
var accessVerbSchema =
|
|
5133
|
+
import { $addArgumentDescription as $addArgumentDescription47, $addInputDescription as $addInputDescription47 } from "@highstate/contract";
|
|
5134
|
+
import { defineUnit as defineUnit57, z as z60 } from "@highstate/contract";
|
|
5135
|
+
var accessVerbSchema = z60.enum([
|
|
5124
5136
|
"get",
|
|
5125
5137
|
"list",
|
|
5126
5138
|
"watch",
|
|
@@ -5130,32 +5142,32 @@ var accessVerbSchema = z58.enum([
|
|
|
5130
5142
|
"delete",
|
|
5131
5143
|
"deletecollection"
|
|
5132
5144
|
]);
|
|
5133
|
-
var acessRuleSchema =
|
|
5134
|
-
apiGroups:
|
|
5135
|
-
resources:
|
|
5145
|
+
var acessRuleSchema = z60.object({
|
|
5146
|
+
apiGroups: z60.string().array(),
|
|
5147
|
+
resources: z60.string().array(),
|
|
5136
5148
|
verbs: accessVerbSchema.array(),
|
|
5137
|
-
resourceNames:
|
|
5149
|
+
resourceNames: z60.string().array().default([])
|
|
5138
5150
|
});
|
|
5139
5151
|
var reducedAccessCluster = defineUnit57({
|
|
5140
5152
|
type: "k8s.reduced-access-cluster.v1",
|
|
5141
5153
|
args: {
|
|
5142
|
-
serviceAccountName: $
|
|
5154
|
+
serviceAccountName: $addArgumentDescription47(z60.string().optional(), `The name of the ServiceAccount to create.
|
|
5143
5155
|
|
|
5144
5156
|
If not provided, will be the same as the unit name.`),
|
|
5145
|
-
rules: $
|
|
5157
|
+
rules: $addArgumentDescription47(acessRuleSchema.array().default([]), `The rules defining the access permissions for the ServiceAccount.
|
|
5146
5158
|
|
|
5147
5159
|
If rule's \`apiGroups\` and \`resources\` exactly match resources from the \`resources\` input,
|
|
5148
5160
|
their names will be added to the rule's \`resourceNames\` list.`)
|
|
5149
5161
|
},
|
|
5150
5162
|
inputs: {
|
|
5151
5163
|
k8sCluster: clusterEntity,
|
|
5152
|
-
namespace: $
|
|
5153
|
-
extraNamespaces: $
|
|
5164
|
+
namespace: $addInputDescription47(namespaceEntity2, `The namespace where the ServiceAccount will be created.`),
|
|
5165
|
+
extraNamespaces: $addInputDescription47({
|
|
5154
5166
|
entity: namespaceEntity2,
|
|
5155
5167
|
multiple: true,
|
|
5156
5168
|
required: false
|
|
5157
5169
|
}, `The extra namespaces to bind to the ClusterRole and allow ServiceAccount to access them with specified rules.`),
|
|
5158
|
-
resources: $
|
|
5170
|
+
resources: $addInputDescription47({
|
|
5159
5171
|
entity: resourceEntity,
|
|
5160
5172
|
multiple: true,
|
|
5161
5173
|
required: false
|
|
@@ -5190,24 +5202,24 @@ __export(exports_netaminity, {
|
|
|
5190
5202
|
gatewayDataSchema: () => gatewayDataSchema2,
|
|
5191
5203
|
gateway: () => gateway2
|
|
5192
5204
|
});
|
|
5193
|
-
import { $addArgumentDescription as $
|
|
5205
|
+
import { $addArgumentDescription as $addArgumentDescription48, $addInputDescription as $addInputDescription48 } from "@highstate/contract";
|
|
5194
5206
|
import { camelCaseToHumanReadable as __camelCaseToHumanReadable29 } from "@highstate/contract";
|
|
5195
5207
|
import {
|
|
5196
5208
|
defineEntity as defineEntity30,
|
|
5197
5209
|
defineUnit as defineUnit58,
|
|
5198
5210
|
secretSchema as secretSchema14,
|
|
5199
|
-
z as
|
|
5211
|
+
z as z61
|
|
5200
5212
|
} from "@highstate/contract";
|
|
5201
5213
|
var source2 = (path) => ({
|
|
5202
5214
|
package: "@highstate/netaminity",
|
|
5203
5215
|
path
|
|
5204
5216
|
});
|
|
5205
|
-
var portSchema2 =
|
|
5206
|
-
var serviceTypeSchema2 =
|
|
5207
|
-
var podTemplateSchema =
|
|
5208
|
-
var replicasSchema =
|
|
5209
|
-
var oddReplicasSchema =
|
|
5210
|
-
var gatewayDataSchema2 =
|
|
5217
|
+
var portSchema2 = z61.number().int().min(1).max(65535);
|
|
5218
|
+
var serviceTypeSchema2 = z61.enum(["ClusterIP", "NodePort", "LoadBalancer"]);
|
|
5219
|
+
var podTemplateSchema = z61.record(z61.string(), z61.unknown()).default({});
|
|
5220
|
+
var replicasSchema = z61.number().int().min(1).default(1);
|
|
5221
|
+
var oddReplicasSchema = z61.number().int().min(1).refine((replicas) => replicas % 2 === 1, "Netaminity replicas must be odd").default(1);
|
|
5222
|
+
var gatewayDataSchema2 = z61.object({
|
|
5211
5223
|
proxyGateway: gatewayEntity.schema.meta({ title: __camelCaseToHumanReadable29("proxyGateway"), description: `The proxy-side gateway that accepts public TLS traffic.` }),
|
|
5212
5224
|
targetGateway: gatewayEntity.schema.meta({ title: __camelCaseToHumanReadable29("targetGateway"), description: `The target-side gateway that terminates TLS and routes requests.` }),
|
|
5213
5225
|
proxyImplRef: implementationReferenceSchema.meta({ title: __camelCaseToHumanReadable29("proxyImplRef"), description: `The implementation reference used to create proxy-side TLS routes.` }),
|
|
@@ -5229,9 +5241,9 @@ var proxyEntity = defineEntity30({
|
|
|
5229
5241
|
required: false
|
|
5230
5242
|
}
|
|
5231
5243
|
},
|
|
5232
|
-
schema:
|
|
5233
|
-
proxyEndpoint:
|
|
5234
|
-
sharedSecret: secretSchema14(
|
|
5244
|
+
schema: z61.object({
|
|
5245
|
+
proxyEndpoint: z61.string().meta({ title: __camelCaseToHumanReadable29("proxyEndpoint"), description: `The control endpoint where Netaminity targets connect to the proxy.` }),
|
|
5246
|
+
sharedSecret: secretSchema14(z61.string()).meta({ title: __camelCaseToHumanReadable29("sharedSecret"), description: `The shared authentication secret used by the proxy and its targets.` })
|
|
5235
5247
|
}),
|
|
5236
5248
|
meta: {
|
|
5237
5249
|
color: "#477D75",
|
|
@@ -5244,7 +5256,7 @@ var proxyEntity = defineEntity30({
|
|
|
5244
5256
|
var targetEntity = defineEntity30({
|
|
5245
5257
|
type: "netaminity.target.v1",
|
|
5246
5258
|
extends: { namespacedResourceEntity },
|
|
5247
|
-
schema:
|
|
5259
|
+
schema: z61.unknown(),
|
|
5248
5260
|
meta: {
|
|
5249
5261
|
color: "#8064A2",
|
|
5250
5262
|
title: "Netaminity Target",
|
|
@@ -5264,7 +5276,7 @@ var tunnelEntity = defineEntity30({
|
|
|
5264
5276
|
required: false
|
|
5265
5277
|
}
|
|
5266
5278
|
},
|
|
5267
|
-
schema:
|
|
5279
|
+
schema: z61.unknown(),
|
|
5268
5280
|
meta: {
|
|
5269
5281
|
color: "#2878A0",
|
|
5270
5282
|
title: "Netaminity Tunnel",
|
|
@@ -5278,17 +5290,17 @@ var operator = defineUnit58({
|
|
|
5278
5290
|
args: {
|
|
5279
5291
|
...helmExtensionArgs,
|
|
5280
5292
|
...schedulingArg,
|
|
5281
|
-
replicas: $
|
|
5293
|
+
replicas: $addArgumentDescription48(oddReplicasSchema, `The number of Netaminity operator replicas.
|
|
5282
5294
|
|
|
5283
5295
|
Leader election ensures that only one replica actively reconciles resources.
|
|
5284
5296
|
The replica count must be odd.`),
|
|
5285
|
-
proxyHost: $
|
|
5297
|
+
proxyHost: $addArgumentDescription48(z61.string().optional(), `The hostname or IP address used to advertise NodePort proxy control Services.
|
|
5286
5298
|
|
|
5287
5299
|
When omitted, the proxy host input or the first cluster endpoint is used.`)
|
|
5288
5300
|
},
|
|
5289
5301
|
inputs: {
|
|
5290
|
-
k8sCluster: $
|
|
5291
|
-
proxyHost: $
|
|
5302
|
+
k8sCluster: $addInputDescription48(clusterEntity, `The Kubernetes cluster where the Netaminity operator should be installed.`),
|
|
5303
|
+
proxyHost: $addInputDescription48({
|
|
5292
5304
|
entity: l3EndpointEntity,
|
|
5293
5305
|
required: false
|
|
5294
5306
|
}, `The hostname or IP address used to advertise NodePort proxy control Services.
|
|
@@ -5296,7 +5308,7 @@ var operator = defineUnit58({
|
|
|
5296
5308
|
The first cluster endpoint is used when this input and the proxyHost argument are omitted.`)
|
|
5297
5309
|
},
|
|
5298
5310
|
outputs: {
|
|
5299
|
-
k8sCluster: $
|
|
5311
|
+
k8sCluster: $addInputDescription48(clusterEntity, `The Kubernetes cluster after the Netaminity operator has been installed.`)
|
|
5300
5312
|
},
|
|
5301
5313
|
meta: {
|
|
5302
5314
|
description: `Installs the Netaminity operator on a Kubernetes cluster.`,
|
|
@@ -5310,58 +5322,58 @@ var operator = defineUnit58({
|
|
|
5310
5322
|
var proxy = defineUnit58({
|
|
5311
5323
|
type: "netaminity.proxy.v1",
|
|
5312
5324
|
args: {
|
|
5313
|
-
resourceName: $
|
|
5325
|
+
resourceName: $addArgumentDescription48(z61.string().optional(), `The name of the Proxy custom resource.
|
|
5314
5326
|
|
|
5315
5327
|
If omitted, the unit name is used.`),
|
|
5316
|
-
namespace: $
|
|
5328
|
+
namespace: $addArgumentDescription48(z61.string().optional(), `The name of the Kubernetes namespace to create for the proxy.
|
|
5317
5329
|
|
|
5318
5330
|
Ignored when the namespace input is provided.`),
|
|
5319
|
-
serviceEnabled: $
|
|
5320
|
-
serviceName: $
|
|
5331
|
+
serviceEnabled: $addArgumentDescription48(z61.boolean().default(true), `Whether to create a Service for consumers of the proxied target.`),
|
|
5332
|
+
serviceName: $addArgumentDescription48(z61.string().optional(), `The name of the consumer Service.
|
|
5321
5333
|
|
|
5322
5334
|
If omitted, the Proxy resource name is used.`),
|
|
5323
|
-
servicePort: $
|
|
5335
|
+
servicePort: $addArgumentDescription48(portSchema2.optional(), `The TCP port exposed by the consumer Service.
|
|
5324
5336
|
|
|
5325
5337
|
When omitted, the port of the first endpoint input is used.`),
|
|
5326
|
-
external: $
|
|
5338
|
+
external: $addArgumentDescription48(z61.boolean().default(false), `Whether to expose the consumer Service outside the cluster.
|
|
5327
5339
|
|
|
5328
5340
|
The Service type is selected automatically from the cluster configuration.`),
|
|
5329
|
-
proxyServiceName: $
|
|
5330
|
-
proxyServiceType: $
|
|
5331
|
-
proxyNodePort: $
|
|
5341
|
+
proxyServiceName: $addArgumentDescription48(z61.string().optional(), `The name of the control Service used by targets.`),
|
|
5342
|
+
proxyServiceType: $addArgumentDescription48(serviceTypeSchema2.default("NodePort"), `The Kubernetes type of the control Service used by targets.`),
|
|
5343
|
+
proxyNodePort: $addArgumentDescription48(portSchema2.optional(), `The fixed NodePort for the control Service.
|
|
5332
5344
|
|
|
5333
5345
|
Kubernetes assigns one when omitted.`),
|
|
5334
|
-
replicas: $
|
|
5335
|
-
hostNetwork: $
|
|
5336
|
-
distributeByNodes: $
|
|
5337
|
-
podTemplate: $
|
|
5346
|
+
replicas: $addArgumentDescription48(replicasSchema, `The number of interchangeable proxy pods behind the Proxy Services.`),
|
|
5347
|
+
hostNetwork: $addArgumentDescription48(z61.boolean().default(false), `Whether generated proxy pods use the node network namespace.`),
|
|
5348
|
+
distributeByNodes: $addArgumentDescription48(z61.boolean().default(true), `Whether generated proxy pods prefer distribution across Kubernetes nodes.`),
|
|
5349
|
+
podTemplate: $addArgumentDescription48(podTemplateSchema, `The raw Netaminity pod template applied to the generated proxy pod.`)
|
|
5338
5350
|
},
|
|
5339
5351
|
secrets: {
|
|
5340
|
-
sharedSecret: $
|
|
5352
|
+
sharedSecret: $addArgumentDescription48(z61.string().optional(), `The shared authentication secret used by the proxy and its targets.
|
|
5341
5353
|
|
|
5342
5354
|
A random key is generated when omitted.`)
|
|
5343
5355
|
},
|
|
5344
5356
|
inputs: {
|
|
5345
|
-
k8sCluster: $
|
|
5346
|
-
endpoints: $
|
|
5357
|
+
k8sCluster: $addInputDescription48(clusterEntity, `The Kubernetes cluster with the Netaminity operator installed.`),
|
|
5358
|
+
endpoints: $addInputDescription48({
|
|
5347
5359
|
entity: l4EndpointEntity,
|
|
5348
5360
|
multiple: true,
|
|
5349
5361
|
required: false
|
|
5350
5362
|
}, `The target TCP endpoints whose port should be exposed by the consumer Service.
|
|
5351
5363
|
|
|
5352
5364
|
The first endpoint's port is used when the servicePort argument is omitted.`),
|
|
5353
|
-
namespace: $
|
|
5365
|
+
namespace: $addInputDescription48({
|
|
5354
5366
|
entity: namespaceEntity2,
|
|
5355
5367
|
required: false
|
|
5356
5368
|
}, `The existing Kubernetes namespace where the proxy should be created.`)
|
|
5357
5369
|
},
|
|
5358
5370
|
outputs: {
|
|
5359
|
-
proxy: $
|
|
5360
|
-
service: $
|
|
5371
|
+
proxy: $addInputDescription48(proxyEntity, `The Netaminity proxy, including its control endpoint and shared secret.`),
|
|
5372
|
+
service: $addInputDescription48({
|
|
5361
5373
|
entity: serviceEntity,
|
|
5362
5374
|
required: false
|
|
5363
5375
|
}, `The consumer Service created for the proxy.`),
|
|
5364
|
-
endpoints: $
|
|
5376
|
+
endpoints: $addInputDescription48({
|
|
5365
5377
|
entity: l4EndpointEntity,
|
|
5366
5378
|
multiple: true
|
|
5367
5379
|
}, `The endpoints where consumers can access the proxied service.`)
|
|
@@ -5379,36 +5391,36 @@ var proxy = defineUnit58({
|
|
|
5379
5391
|
var target = defineUnit58({
|
|
5380
5392
|
type: "netaminity.target.v1",
|
|
5381
5393
|
args: {
|
|
5382
|
-
resourceName: $
|
|
5394
|
+
resourceName: $addArgumentDescription48(z61.string().optional(), `The name of the Target custom resource.
|
|
5383
5395
|
|
|
5384
5396
|
If omitted, the unit name is used.`),
|
|
5385
|
-
namespace: $
|
|
5397
|
+
namespace: $addArgumentDescription48(z61.string().optional(), `The name of the Kubernetes namespace to create for the target.
|
|
5386
5398
|
|
|
5387
5399
|
Ignored when the namespace input is provided.`),
|
|
5388
|
-
endpoint: $
|
|
5400
|
+
endpoint: $addArgumentDescription48(z61.string().min(3).optional(), `The target TCP endpoint reachable from the generated target pod.
|
|
5389
5401
|
|
|
5390
5402
|
When omitted, the first endpoint input is used.`),
|
|
5391
|
-
hostNetwork: $
|
|
5392
|
-
distributeByNodes: $
|
|
5393
|
-
podTemplate: $
|
|
5403
|
+
hostNetwork: $addArgumentDescription48(z61.boolean().default(false), `Whether the generated target pod uses the node network namespace.`),
|
|
5404
|
+
distributeByNodes: $addArgumentDescription48(z61.boolean().default(true), `Whether the generated target pod prefers distribution across Kubernetes nodes.`),
|
|
5405
|
+
podTemplate: $addArgumentDescription48(podTemplateSchema, `The raw Netaminity pod template applied to the generated target pod.`)
|
|
5394
5406
|
},
|
|
5395
5407
|
inputs: {
|
|
5396
|
-
k8sCluster: $
|
|
5397
|
-
proxy: $
|
|
5398
|
-
endpoints: $
|
|
5408
|
+
k8sCluster: $addInputDescription48(clusterEntity, `The Kubernetes cluster with the Netaminity operator installed.`),
|
|
5409
|
+
proxy: $addInputDescription48(proxyEntity, `The standalone Netaminity proxy to connect the target to.`),
|
|
5410
|
+
endpoints: $addInputDescription48({
|
|
5399
5411
|
entity: l4EndpointEntity,
|
|
5400
5412
|
multiple: true,
|
|
5401
5413
|
required: false
|
|
5402
5414
|
}, `The target TCP endpoints reachable from the generated target pod.
|
|
5403
5415
|
|
|
5404
5416
|
The first endpoint is used when the endpoint argument is omitted.`),
|
|
5405
|
-
namespace: $
|
|
5417
|
+
namespace: $addInputDescription48({
|
|
5406
5418
|
entity: namespaceEntity2,
|
|
5407
5419
|
required: false
|
|
5408
5420
|
}, `The existing Kubernetes namespace where the target should be created.`)
|
|
5409
5421
|
},
|
|
5410
5422
|
outputs: {
|
|
5411
|
-
target: $
|
|
5423
|
+
target: $addInputDescription48(targetEntity, `The created Netaminity target resource.`)
|
|
5412
5424
|
},
|
|
5413
5425
|
meta: {
|
|
5414
5426
|
description: `Creates a Netaminity target connected to a standalone proxy.`,
|
|
@@ -5423,54 +5435,54 @@ var target = defineUnit58({
|
|
|
5423
5435
|
var tunnel = defineUnit58({
|
|
5424
5436
|
type: "netaminity.tunnel.v1",
|
|
5425
5437
|
args: {
|
|
5426
|
-
resourceName: $
|
|
5438
|
+
resourceName: $addArgumentDescription48(z61.string().optional(), `The name of the Tunnel custom resource.
|
|
5427
5439
|
|
|
5428
5440
|
If omitted, the unit name is used.`),
|
|
5429
|
-
namespace: $
|
|
5441
|
+
namespace: $addArgumentDescription48(z61.string().optional(), `The name of the Kubernetes namespace to create for the tunnel.
|
|
5430
5442
|
|
|
5431
5443
|
Ignored when the namespace input is provided.`),
|
|
5432
|
-
replicas: $
|
|
5433
|
-
proxyReplicas: $
|
|
5434
|
-
hostNetwork: $
|
|
5435
|
-
distributeByNodes: $
|
|
5436
|
-
endpoint: $
|
|
5444
|
+
replicas: $addArgumentDescription48(replicasSchema, `The number of proxy and target pairs created for the tunnel.`),
|
|
5445
|
+
proxyReplicas: $addArgumentDescription48(replicasSchema, `The number of interchangeable proxy pods created for each Proxy resource.`),
|
|
5446
|
+
hostNetwork: $addArgumentDescription48(z61.boolean().default(false), `Whether generated proxy and target pods use their node network namespace.`),
|
|
5447
|
+
distributeByNodes: $addArgumentDescription48(z61.boolean().default(true), `Whether generated proxy and target pods prefer distribution across Kubernetes nodes.`),
|
|
5448
|
+
endpoint: $addArgumentDescription48(z61.string().min(3).optional(), `The target TCP endpoint reachable from generated target pods.
|
|
5437
5449
|
|
|
5438
5450
|
When omitted, the first endpoint input is used.`),
|
|
5439
|
-
serviceName: $
|
|
5451
|
+
serviceName: $addArgumentDescription48(z61.string().optional(), `The name of the consumer Service.
|
|
5440
5452
|
|
|
5441
5453
|
If omitted, the Tunnel resource name is used.`),
|
|
5442
|
-
servicePort: $
|
|
5454
|
+
servicePort: $addArgumentDescription48(portSchema2.optional(), `The TCP port exposed by the consumer Service.
|
|
5443
5455
|
|
|
5444
5456
|
When omitted, the destination endpoint port is used.`),
|
|
5445
|
-
external: $
|
|
5457
|
+
external: $addArgumentDescription48(z61.boolean().default(false), `Whether to expose the consumer Service outside the cluster.
|
|
5446
5458
|
|
|
5447
5459
|
The Service type is selected automatically from the cluster configuration.`),
|
|
5448
|
-
proxyServiceType: $
|
|
5449
|
-
proxyNodePort: $
|
|
5460
|
+
proxyServiceType: $addArgumentDescription48(serviceTypeSchema2.default("NodePort"), `The Kubernetes type of the control Services used by generated targets.`),
|
|
5461
|
+
proxyNodePort: $addArgumentDescription48(portSchema2.optional(), `The first fixed NodePort assigned to generated proxy control Services.
|
|
5450
5462
|
|
|
5451
5463
|
Replica indexes are added to this value.`),
|
|
5452
|
-
podTemplate: $
|
|
5453
|
-
proxyPodTemplate: $
|
|
5454
|
-
targetPodTemplate: $
|
|
5464
|
+
podTemplate: $addArgumentDescription48(podTemplateSchema, `The raw base pod template inherited by generated proxy and target pods.`),
|
|
5465
|
+
proxyPodTemplate: $addArgumentDescription48(podTemplateSchema, `The raw pod template merged into generated proxy pods.`),
|
|
5466
|
+
targetPodTemplate: $addArgumentDescription48(podTemplateSchema, `The raw pod template merged into generated target pods.`)
|
|
5455
5467
|
},
|
|
5456
5468
|
inputs: {
|
|
5457
|
-
k8sCluster: $
|
|
5458
|
-
endpoints: $
|
|
5469
|
+
k8sCluster: $addInputDescription48(clusterEntity, `The Kubernetes cluster with the Netaminity operator installed.`),
|
|
5470
|
+
endpoints: $addInputDescription48({
|
|
5459
5471
|
entity: l4EndpointEntity,
|
|
5460
5472
|
multiple: true,
|
|
5461
5473
|
required: false
|
|
5462
5474
|
}, `The target TCP endpoints reachable from generated target pods.
|
|
5463
5475
|
|
|
5464
5476
|
The first endpoint is used when the endpoint argument is omitted.`),
|
|
5465
|
-
namespace: $
|
|
5477
|
+
namespace: $addInputDescription48({
|
|
5466
5478
|
entity: namespaceEntity2,
|
|
5467
5479
|
required: false
|
|
5468
5480
|
}, `The existing Kubernetes namespace where the tunnel should be created.`)
|
|
5469
5481
|
},
|
|
5470
5482
|
outputs: {
|
|
5471
|
-
tunnel: $
|
|
5472
|
-
service: $
|
|
5473
|
-
endpoints: $
|
|
5483
|
+
tunnel: $addInputDescription48(tunnelEntity, `The created Netaminity tunnel resource.`),
|
|
5484
|
+
service: $addInputDescription48(serviceEntity, `The consumer Service created for the tunnel.`),
|
|
5485
|
+
endpoints: $addInputDescription48({
|
|
5474
5486
|
entity: l4EndpointEntity,
|
|
5475
5487
|
multiple: true
|
|
5476
5488
|
}, `The endpoints where consumers can access the tunnel.`)
|
|
@@ -5488,66 +5500,66 @@ var tunnel = defineUnit58({
|
|
|
5488
5500
|
var tunnelMc = defineUnit58({
|
|
5489
5501
|
type: "netaminity.tunnel.mc.v1",
|
|
5490
5502
|
args: {
|
|
5491
|
-
resourceName: $
|
|
5503
|
+
resourceName: $addArgumentDescription48(z61.string().optional(), `The base name of the generated Proxy and Target custom resources.
|
|
5492
5504
|
|
|
5493
5505
|
If omitted, the unit name is used.`),
|
|
5494
|
-
proxyNamespace: $
|
|
5506
|
+
proxyNamespace: $addArgumentDescription48(z61.string().optional(), `The name of the Kubernetes namespace to create in the proxy cluster.
|
|
5495
5507
|
|
|
5496
5508
|
Ignored when the proxyNamespace input is provided.`),
|
|
5497
|
-
targetNamespace: $
|
|
5509
|
+
targetNamespace: $addArgumentDescription48(z61.string().optional(), `The name of the Kubernetes namespace to create in the target cluster.
|
|
5498
5510
|
|
|
5499
5511
|
Ignored when the targetNamespace input is provided.`),
|
|
5500
|
-
replicas: $
|
|
5501
|
-
proxyReplicas: $
|
|
5502
|
-
hostNetwork: $
|
|
5503
|
-
distributeByNodes: $
|
|
5504
|
-
endpoint: $
|
|
5512
|
+
replicas: $addArgumentDescription48(replicasSchema, `The number of Proxy and Target pairs created for the tunnel.`),
|
|
5513
|
+
proxyReplicas: $addArgumentDescription48(replicasSchema, `The number of interchangeable proxy pods created for each Proxy resource.`),
|
|
5514
|
+
hostNetwork: $addArgumentDescription48(z61.boolean().default(false), `Whether generated Proxy and Target pods use their node network namespace.`),
|
|
5515
|
+
distributeByNodes: $addArgumentDescription48(z61.boolean().default(true), `Whether generated Proxy and Target pods prefer distribution across Kubernetes nodes.`),
|
|
5516
|
+
endpoint: $addArgumentDescription48(z61.string().min(3).optional(), `The target TCP endpoint reachable from generated Target pods.
|
|
5505
5517
|
|
|
5506
5518
|
When omitted, the first endpoint input is used.`),
|
|
5507
|
-
serviceName: $
|
|
5519
|
+
serviceName: $addArgumentDescription48(z61.string().optional(), `The name of the shared consumer Service in the proxy cluster.
|
|
5508
5520
|
|
|
5509
5521
|
If omitted, the base resource name is used.`),
|
|
5510
|
-
servicePort: $
|
|
5522
|
+
servicePort: $addArgumentDescription48(portSchema2.optional(), `The TCP port exposed by the shared consumer Service.
|
|
5511
5523
|
|
|
5512
5524
|
When omitted, the destination endpoint port is used.`),
|
|
5513
|
-
external: $
|
|
5525
|
+
external: $addArgumentDescription48(z61.boolean().default(false), `Whether to expose the shared consumer Service outside the proxy cluster.
|
|
5514
5526
|
|
|
5515
5527
|
The Service type is selected automatically from the proxy cluster configuration.`),
|
|
5516
|
-
proxyServiceType: $
|
|
5517
|
-
proxyNodePort: $
|
|
5528
|
+
proxyServiceType: $addArgumentDescription48(serviceTypeSchema2.default("NodePort"), `The Kubernetes type of the control Services used by generated Targets.`),
|
|
5529
|
+
proxyNodePort: $addArgumentDescription48(portSchema2.optional(), `The first fixed NodePort assigned to generated Proxy control Services.
|
|
5518
5530
|
|
|
5519
5531
|
Replica indexes are added to this value.`),
|
|
5520
|
-
podTemplate: $
|
|
5521
|
-
proxyPodTemplate: $
|
|
5522
|
-
targetPodTemplate: $
|
|
5532
|
+
podTemplate: $addArgumentDescription48(podTemplateSchema, `The raw base pod template inherited by generated Proxy and Target pods.`),
|
|
5533
|
+
proxyPodTemplate: $addArgumentDescription48(podTemplateSchema, `The raw pod template merged into generated Proxy pods.`),
|
|
5534
|
+
targetPodTemplate: $addArgumentDescription48(podTemplateSchema, `The raw pod template merged into generated Target pods.`)
|
|
5523
5535
|
},
|
|
5524
5536
|
secrets: {
|
|
5525
|
-
sharedSecret: $
|
|
5537
|
+
sharedSecret: $addArgumentDescription48(z61.string().optional(), `The shared authentication secret used by every generated Proxy and Target.
|
|
5526
5538
|
|
|
5527
5539
|
A random key is generated when omitted.`)
|
|
5528
5540
|
},
|
|
5529
5541
|
inputs: {
|
|
5530
|
-
proxyK8sCluster: $
|
|
5531
|
-
targetK8sCluster: $
|
|
5532
|
-
endpoints: $
|
|
5542
|
+
proxyK8sCluster: $addInputDescription48(clusterEntity, `The Kubernetes cluster where generated Proxies and the consumer Service are created.`),
|
|
5543
|
+
targetK8sCluster: $addInputDescription48(clusterEntity, `The Kubernetes cluster where generated Targets are created.`),
|
|
5544
|
+
endpoints: $addInputDescription48({
|
|
5533
5545
|
entity: l4EndpointEntity,
|
|
5534
5546
|
multiple: true,
|
|
5535
5547
|
required: false
|
|
5536
5548
|
}, `The target TCP endpoints reachable from generated Target pods.
|
|
5537
5549
|
|
|
5538
5550
|
The first endpoint is used when the endpoint argument is omitted.`),
|
|
5539
|
-
proxyNamespace: $
|
|
5551
|
+
proxyNamespace: $addInputDescription48({
|
|
5540
5552
|
entity: namespaceEntity2,
|
|
5541
5553
|
required: false
|
|
5542
5554
|
}, `The existing Kubernetes namespace where Proxies and the consumer Service are created.`),
|
|
5543
|
-
targetNamespace: $
|
|
5555
|
+
targetNamespace: $addInputDescription48({
|
|
5544
5556
|
entity: namespaceEntity2,
|
|
5545
5557
|
required: false
|
|
5546
5558
|
}, `The existing Kubernetes namespace where Targets are created.`)
|
|
5547
5559
|
},
|
|
5548
5560
|
outputs: {
|
|
5549
|
-
service: $
|
|
5550
|
-
endpoints: $
|
|
5561
|
+
service: $addInputDescription48(serviceEntity, `The shared consumer Service created in the proxy cluster.`),
|
|
5562
|
+
endpoints: $addInputDescription48({
|
|
5551
5563
|
entity: l4EndpointEntity,
|
|
5552
5564
|
multiple: true
|
|
5553
5565
|
}, `The endpoints where consumers can access the multi-cluster tunnel.`)
|
|
@@ -5565,49 +5577,49 @@ var tunnelMc = defineUnit58({
|
|
|
5565
5577
|
var gateway2 = defineUnit58({
|
|
5566
5578
|
type: "netaminity.gateway.v1",
|
|
5567
5579
|
args: {
|
|
5568
|
-
resourceName: $
|
|
5580
|
+
resourceName: $addArgumentDescription48(z61.string().optional(), `The name of the generated Netaminity resources.
|
|
5569
5581
|
|
|
5570
5582
|
If omitted, the unit name is used.`),
|
|
5571
|
-
proxyNamespace: $
|
|
5583
|
+
proxyNamespace: $addArgumentDescription48(z61.string().optional(), `The name of the Kubernetes namespace to create in the proxy cluster.
|
|
5572
5584
|
|
|
5573
5585
|
Ignored when the proxyNamespace input is provided.`),
|
|
5574
|
-
targetNamespace: $
|
|
5586
|
+
targetNamespace: $addArgumentDescription48(z61.string().optional(), `The name of the Kubernetes namespace to create in the target cluster.
|
|
5575
5587
|
|
|
5576
5588
|
Ignored when the targetNamespace input is provided.`),
|
|
5577
|
-
replicas: $
|
|
5578
|
-
proxyReplicas: $
|
|
5579
|
-
hostNetwork: $
|
|
5580
|
-
distributeByNodes: $
|
|
5581
|
-
targetGatewayPort: $
|
|
5582
|
-
proxyServiceType: $
|
|
5583
|
-
proxyNodePort: $
|
|
5589
|
+
replicas: $addArgumentDescription48(replicasSchema, `The number of Proxy and Target pairs created for the shared tunnel.`),
|
|
5590
|
+
proxyReplicas: $addArgumentDescription48(replicasSchema, `The number of interchangeable proxy pods created for each Proxy resource.`),
|
|
5591
|
+
hostNetwork: $addArgumentDescription48(z61.boolean().default(false), `Whether generated Proxy and Target pods use their node network namespace.`),
|
|
5592
|
+
distributeByNodes: $addArgumentDescription48(z61.boolean().default(true), `Whether generated Proxy and Target pods prefer distribution across Kubernetes nodes.`),
|
|
5593
|
+
targetGatewayPort: $addArgumentDescription48(portSchema2.default(443), `The TLS port exposed by the target-side gateway.`),
|
|
5594
|
+
proxyServiceType: $addArgumentDescription48(serviceTypeSchema2.default("NodePort"), `The Kubernetes type of the control Services used by generated Targets.`),
|
|
5595
|
+
proxyNodePort: $addArgumentDescription48(portSchema2.optional(), `The first fixed NodePort assigned to generated Proxy control Services.
|
|
5584
5596
|
|
|
5585
5597
|
Replica indexes are added to this value.`),
|
|
5586
|
-
podTemplate: $
|
|
5587
|
-
proxyPodTemplate: $
|
|
5588
|
-
targetPodTemplate: $
|
|
5598
|
+
podTemplate: $addArgumentDescription48(podTemplateSchema, `The raw base pod template inherited by generated Proxy and Target pods.`),
|
|
5599
|
+
proxyPodTemplate: $addArgumentDescription48(podTemplateSchema, `The raw pod template merged into generated Proxy pods.`),
|
|
5600
|
+
targetPodTemplate: $addArgumentDescription48(podTemplateSchema, `The raw pod template merged into generated Target pods.`)
|
|
5589
5601
|
},
|
|
5590
5602
|
secrets: {
|
|
5591
|
-
sharedSecret: $
|
|
5603
|
+
sharedSecret: $addArgumentDescription48(z61.string().optional(), `The shared authentication secret used by every generated Proxy and Target.
|
|
5592
5604
|
|
|
5593
5605
|
A random key is generated when omitted.`)
|
|
5594
5606
|
},
|
|
5595
5607
|
inputs: {
|
|
5596
|
-
proxyGateway: $
|
|
5597
|
-
targetGateway: $
|
|
5598
|
-
proxyK8sCluster: $
|
|
5599
|
-
targetK8sCluster: $
|
|
5600
|
-
proxyNamespace: $
|
|
5608
|
+
proxyGateway: $addInputDescription48(gatewayEntity, `The public gateway in the proxy cluster.`),
|
|
5609
|
+
targetGateway: $addInputDescription48(gatewayEntity, `The local gateway in the target cluster.`),
|
|
5610
|
+
proxyK8sCluster: $addInputDescription48(clusterEntity, `The operator-ready Kubernetes cluster where Proxy resources are created.`),
|
|
5611
|
+
targetK8sCluster: $addInputDescription48(clusterEntity, `The operator-ready Kubernetes cluster where Target resources are created.`),
|
|
5612
|
+
proxyNamespace: $addInputDescription48({
|
|
5601
5613
|
entity: namespaceEntity2,
|
|
5602
5614
|
required: false
|
|
5603
5615
|
}, `The existing Kubernetes namespace where Proxy resources are created.`),
|
|
5604
|
-
targetNamespace: $
|
|
5616
|
+
targetNamespace: $addInputDescription48({
|
|
5605
5617
|
entity: namespaceEntity2,
|
|
5606
5618
|
required: false
|
|
5607
5619
|
}, `The existing Kubernetes namespace where Target resources are created.`)
|
|
5608
5620
|
},
|
|
5609
5621
|
outputs: {
|
|
5610
|
-
gateway: $
|
|
5622
|
+
gateway: $addInputDescription48(gatewayEntity, `The gateway that delegates termination to the target cluster through Netaminity.`)
|
|
5611
5623
|
},
|
|
5612
5624
|
meta: {
|
|
5613
5625
|
description: `Wraps proxy-side and target-side gateways with one shared Netaminity tunnel.`,
|
|
@@ -5626,15 +5638,15 @@ __export(exports_nixos, {
|
|
|
5626
5638
|
inlineModule: () => inlineModule,
|
|
5627
5639
|
inlineFlake: () => inlineFlake
|
|
5628
5640
|
});
|
|
5629
|
-
import { $addArgumentDescription as $
|
|
5630
|
-
import { defineUnit as defineUnit59, z as
|
|
5641
|
+
import { $addArgumentDescription as $addArgumentDescription49 } from "@highstate/contract";
|
|
5642
|
+
import { defineUnit as defineUnit59, z as z62 } from "@highstate/contract";
|
|
5631
5643
|
var inlineModule = defineUnit59({
|
|
5632
5644
|
type: "nixos.inline-module.v1",
|
|
5633
5645
|
args: {
|
|
5634
|
-
moduleName: $
|
|
5646
|
+
moduleName: $addArgumentDescription49(z62.string().optional(), `The name of the module file.
|
|
5635
5647
|
|
|
5636
5648
|
If not provided, the name will be the name of the unit.`),
|
|
5637
|
-
code: $
|
|
5649
|
+
code: $addArgumentDescription49(z62.string().meta({ language: "nix" }), `The code of the NixOS module.
|
|
5638
5650
|
|
|
5639
5651
|
In this code you can reference other modules and files by their names.`)
|
|
5640
5652
|
},
|
|
@@ -5669,10 +5681,10 @@ var inlineModule = defineUnit59({
|
|
|
5669
5681
|
var inlineFlake = defineUnit59({
|
|
5670
5682
|
type: "nixos.inline-flake.v1",
|
|
5671
5683
|
args: {
|
|
5672
|
-
flakeName: $
|
|
5684
|
+
flakeName: $addArgumentDescription49(z62.string().optional(), `The name of the flake folder.
|
|
5673
5685
|
|
|
5674
5686
|
If not provided, the name will be the name of the unit.`),
|
|
5675
|
-
code: $
|
|
5687
|
+
code: $addArgumentDescription49(z62.string().meta({ language: "nix" }), `The code of the \`flake.nix\` file.
|
|
5676
5688
|
|
|
5677
5689
|
In this code you can reference other flakes, modules, files, and folders by their names.
|
|
5678
5690
|
The inputs for them will be automatically added to the \`inputs\` attribute of the flake.
|
|
@@ -5713,7 +5725,7 @@ var inlineFlake = defineUnit59({
|
|
|
5713
5725
|
var system = defineUnit59({
|
|
5714
5726
|
type: "nixos.system.v1",
|
|
5715
5727
|
args: {
|
|
5716
|
-
system:
|
|
5728
|
+
system: z62.string().optional()
|
|
5717
5729
|
},
|
|
5718
5730
|
inputs: {
|
|
5719
5731
|
server: serverEntity,
|
|
@@ -5751,13 +5763,13 @@ __export(exports_proxmox, {
|
|
|
5751
5763
|
connection: () => connection8,
|
|
5752
5764
|
clusterEntity: () => clusterEntity3
|
|
5753
5765
|
});
|
|
5754
|
-
import { $addArgumentDescription as $
|
|
5766
|
+
import { $addArgumentDescription as $addArgumentDescription50, $addInputDescription as $addInputDescription50 } from "@highstate/contract";
|
|
5755
5767
|
import { camelCaseToHumanReadable as __camelCaseToHumanReadable30 } from "@highstate/contract";
|
|
5756
5768
|
import {
|
|
5757
5769
|
defineEntity as defineEntity31,
|
|
5758
5770
|
defineUnit as defineUnit60,
|
|
5759
5771
|
secretSchema as secretSchema15,
|
|
5760
|
-
z as
|
|
5772
|
+
z as z63
|
|
5761
5773
|
} from "@highstate/contract";
|
|
5762
5774
|
var clusterEntity3 = defineEntity31({
|
|
5763
5775
|
type: "proxmox.cluster.v1",
|
|
@@ -5767,14 +5779,14 @@ var clusterEntity3 = defineEntity31({
|
|
|
5767
5779
|
required: false
|
|
5768
5780
|
}
|
|
5769
5781
|
},
|
|
5770
|
-
schema:
|
|
5782
|
+
schema: z63.object({
|
|
5771
5783
|
endpoint: l7EndpointEntity.schema,
|
|
5772
|
-
insecure:
|
|
5773
|
-
username:
|
|
5774
|
-
defaultNodeName:
|
|
5775
|
-
defaultDatastoreId:
|
|
5776
|
-
password: secretSchema15(
|
|
5777
|
-
apiToken: secretSchema15(
|
|
5784
|
+
insecure: z63.boolean().optional(),
|
|
5785
|
+
username: z63.string().optional(),
|
|
5786
|
+
defaultNodeName: z63.string(),
|
|
5787
|
+
defaultDatastoreId: z63.string(),
|
|
5788
|
+
password: secretSchema15(z63.string()).optional(),
|
|
5789
|
+
apiToken: secretSchema15(z63.string()).optional()
|
|
5778
5790
|
}),
|
|
5779
5791
|
meta: {
|
|
5780
5792
|
color: "#e56901"
|
|
@@ -5782,8 +5794,8 @@ var clusterEntity3 = defineEntity31({
|
|
|
5782
5794
|
});
|
|
5783
5795
|
var imageEntity = defineEntity31({
|
|
5784
5796
|
type: "proxmox.image.v1",
|
|
5785
|
-
schema:
|
|
5786
|
-
id:
|
|
5797
|
+
schema: z63.object({
|
|
5798
|
+
id: z63.string()
|
|
5787
5799
|
}),
|
|
5788
5800
|
meta: {
|
|
5789
5801
|
color: "#e56901"
|
|
@@ -5792,30 +5804,30 @@ var imageEntity = defineEntity31({
|
|
|
5792
5804
|
var connection8 = defineUnit60({
|
|
5793
5805
|
type: "proxmox.connection.v1",
|
|
5794
5806
|
args: {
|
|
5795
|
-
endpoint: $
|
|
5796
|
-
insecure: $
|
|
5797
|
-
username: $
|
|
5807
|
+
endpoint: $addArgumentDescription50(z63.string(), `The endpoint of the Proxmox API.`),
|
|
5808
|
+
insecure: $addArgumentDescription50(z63.boolean().optional(), `Whether to allow insecure connections to the Proxmox API.`),
|
|
5809
|
+
username: $addArgumentDescription50(z63.string().optional(), `The username to use for the Proxmox API.
|
|
5798
5810
|
|
|
5799
5811
|
Only required for password token authentication.`),
|
|
5800
|
-
defaultNodeName: $
|
|
5812
|
+
defaultNodeName: $addArgumentDescription50(z63.string().optional(), `The name of the default Proxmox node to use for operations.
|
|
5801
5813
|
|
|
5802
5814
|
If not specified, the first node in the cluster will be used.`),
|
|
5803
|
-
defaultDatastoreId: $
|
|
5815
|
+
defaultDatastoreId: $addArgumentDescription50(z63.string().optional(), `The ID of the default Proxmox datastore to use for operations.
|
|
5804
5816
|
|
|
5805
5817
|
If not specified, the first datastore in the cluster will be used.`),
|
|
5806
|
-
ssh: $
|
|
5818
|
+
ssh: $addArgumentDescription50(argsSchema.prefault({}), `The SSH configuration to use for connecting to the Proxmox nodes.`)
|
|
5807
5819
|
},
|
|
5808
5820
|
secrets: {
|
|
5809
|
-
password: $
|
|
5810
|
-
schema:
|
|
5821
|
+
password: $addArgumentDescription50({
|
|
5822
|
+
schema: z63.string().optional(),
|
|
5811
5823
|
meta: {
|
|
5812
5824
|
title: "Proxmox Password"
|
|
5813
5825
|
}
|
|
5814
5826
|
}, `The password to use for the Proxmox API.
|
|
5815
5827
|
|
|
5816
5828
|
Requires \`username\` to be set.`),
|
|
5817
|
-
apiToken: $
|
|
5818
|
-
schema:
|
|
5829
|
+
apiToken: $addArgumentDescription50({
|
|
5830
|
+
schema: z63.string().optional(),
|
|
5819
5831
|
meta: {
|
|
5820
5832
|
title: "Proxmox API Token"
|
|
5821
5833
|
}
|
|
@@ -5826,8 +5838,8 @@ var connection8 = defineUnit60({
|
|
|
5826
5838
|
...inputs
|
|
5827
5839
|
},
|
|
5828
5840
|
outputs: {
|
|
5829
|
-
proxmoxCluster: $
|
|
5830
|
-
server: $
|
|
5841
|
+
proxmoxCluster: $addInputDescription50(clusterEntity3, `The Proxmox cluster.`),
|
|
5842
|
+
server: $addInputDescription50({
|
|
5831
5843
|
entity: serverEntity,
|
|
5832
5844
|
required: false
|
|
5833
5845
|
}, `The server representing the Proxmox API endpoint.`)
|
|
@@ -5847,22 +5859,22 @@ var connection8 = defineUnit60({
|
|
|
5847
5859
|
var image = defineUnit60({
|
|
5848
5860
|
type: "proxmox.image.v1",
|
|
5849
5861
|
args: {
|
|
5850
|
-
fileName: $
|
|
5862
|
+
fileName: $addArgumentDescription50(z63.string().optional(), `The name of the image to upload.
|
|
5851
5863
|
|
|
5852
5864
|
If not specified, the default name is \`<unitName>-<sha256>.<extension>\`
|
|
5853
5865
|
or \`<unitName>.<extension>\` if \`sha256\` is not provided.`),
|
|
5854
|
-
url: $
|
|
5855
|
-
checksum: $
|
|
5856
|
-
nodeName: $
|
|
5866
|
+
url: $addArgumentDescription50(z63.string().optional(), `The URL of the image to upload.`),
|
|
5867
|
+
checksum: $addArgumentDescription50(checksumSchema.optional(), `The checksum of the image file to verify.`),
|
|
5868
|
+
nodeName: $addArgumentDescription50(z63.string().optional(), `The name of the Proxmox node to upload the image to.
|
|
5857
5869
|
|
|
5858
5870
|
If not specified, the default node name from the cluster will be used.`),
|
|
5859
|
-
datastoreId: $
|
|
5871
|
+
datastoreId: $addArgumentDescription50(z63.string().optional(), `The ID of the Proxmox datastore to upload the image to.
|
|
5860
5872
|
|
|
5861
5873
|
If not specified, the default datastore ID from the cluster will be used.`)
|
|
5862
5874
|
},
|
|
5863
5875
|
inputs: {
|
|
5864
|
-
proxmoxCluster: $
|
|
5865
|
-
file: $
|
|
5876
|
+
proxmoxCluster: $addInputDescription50(clusterEntity3, `The Proxmox cluster to upload the image to.`),
|
|
5877
|
+
file: $addInputDescription50({
|
|
5866
5878
|
entity: fileEntity,
|
|
5867
5879
|
required: false
|
|
5868
5880
|
}, `The file to upload as an image.
|
|
@@ -5888,7 +5900,7 @@ var image = defineUnit60({
|
|
|
5888
5900
|
var existingImage = defineUnit60({
|
|
5889
5901
|
type: "proxmox.existing-image.v1",
|
|
5890
5902
|
args: {
|
|
5891
|
-
id:
|
|
5903
|
+
id: z63.string()
|
|
5892
5904
|
},
|
|
5893
5905
|
inputs: {
|
|
5894
5906
|
proxmoxCluster: clusterEntity3
|
|
@@ -5912,56 +5924,56 @@ var existingImage = defineUnit60({
|
|
|
5912
5924
|
var virtualMachine = defineUnit60({
|
|
5913
5925
|
type: "proxmox.virtual-machine.v1",
|
|
5914
5926
|
args: {
|
|
5915
|
-
vmName: $
|
|
5927
|
+
vmName: $addArgumentDescription50(z63.string().optional(), `The name of the virtual machine.
|
|
5916
5928
|
|
|
5917
5929
|
If not specified, the unit name will be used.`),
|
|
5918
|
-
nodeName: $
|
|
5930
|
+
nodeName: $addArgumentDescription50(z63.string().optional(), `The name of the node to create the virtual machine on.
|
|
5919
5931
|
|
|
5920
5932
|
If not specified, the default node name from the cluster will be used.`),
|
|
5921
|
-
datastoreId: $
|
|
5933
|
+
datastoreId: $addArgumentDescription50(z63.string().optional(), `The ID of the Proxmox datastore to create the virtual machine on.
|
|
5922
5934
|
|
|
5923
5935
|
If not specified, the default datastore ID from the cluster will be used.`),
|
|
5924
|
-
cpuType: $
|
|
5936
|
+
cpuType: $addArgumentDescription50(z63.string().default("host"), `The type of CPU to use for the virtual machine.
|
|
5925
5937
|
|
|
5926
5938
|
By default, this is set to "host" which offers the best performance.`),
|
|
5927
|
-
resources: $
|
|
5928
|
-
cores:
|
|
5939
|
+
resources: $addArgumentDescription50(z63.object({
|
|
5940
|
+
cores: z63.number().default(1).meta({ title: __camelCaseToHumanReadable30("cores"), description: `The number of CPU cores to allocate to the virtual machine.
|
|
5929
5941
|
|
|
5930
5942
|
By default, this is set to 1.` }),
|
|
5931
|
-
sockets:
|
|
5943
|
+
sockets: z63.number().default(1).meta({ title: __camelCaseToHumanReadable30("sockets"), description: `The number of CPU sockets to allocate to the virtual machine.
|
|
5932
5944
|
|
|
5933
5945
|
By default, this is set to 1.` }),
|
|
5934
|
-
memory:
|
|
5946
|
+
memory: z63.number().default(512).meta({ title: __camelCaseToHumanReadable30("memory"), description: `The amount of dedicated memory to allocate to the virtual machine, in MB.
|
|
5935
5947
|
|
|
5936
5948
|
By default, this is set to 512 MB.` }),
|
|
5937
|
-
diskSize:
|
|
5949
|
+
diskSize: z63.number().default(8).meta({ title: __camelCaseToHumanReadable30("diskSize"), description: `The size of the disk to create for the virtual machine, in GB.
|
|
5938
5950
|
|
|
5939
5951
|
By default, this is set to 8 GB.` })
|
|
5940
5952
|
}).prefault({}), `The resources to allocate to the virtual machine.`),
|
|
5941
|
-
ipv4: $
|
|
5942
|
-
|
|
5943
|
-
type:
|
|
5953
|
+
ipv4: $addArgumentDescription50(z63.discriminatedUnion("type", [
|
|
5954
|
+
z63.object({
|
|
5955
|
+
type: z63.literal("dhcp")
|
|
5944
5956
|
}),
|
|
5945
|
-
|
|
5946
|
-
type:
|
|
5947
|
-
address:
|
|
5957
|
+
z63.object({
|
|
5958
|
+
type: z63.literal("static"),
|
|
5959
|
+
address: z63.ipv4().meta({ title: __camelCaseToHumanReadable30("address"), description: `The IPv4 address to assign to the virtual machine.` }),
|
|
5948
5960
|
prefix: ipv4PrefixSchema.default(24).meta({ title: __camelCaseToHumanReadable30("prefix"), description: `The CIDR prefix for the IPv4 address.
|
|
5949
5961
|
|
|
5950
5962
|
By default, this is set to 24.` }),
|
|
5951
|
-
gateway:
|
|
5963
|
+
gateway: z63.ipv4().optional().meta({ title: __camelCaseToHumanReadable30("gateway"), description: `The IPv4 gateway for the virtual machine.
|
|
5952
5964
|
|
|
5953
5965
|
If not specified, will be set to the first address in the subnet.` })
|
|
5954
5966
|
})
|
|
5955
5967
|
]).default({ type: "dhcp" }), `The IPv4 address configuration for the virtual machine.`),
|
|
5956
|
-
network: $
|
|
5968
|
+
network: $addArgumentDescription50(z63.object({
|
|
5957
5969
|
dns: ipv46Schema.array().default([]).meta({ title: __camelCaseToHumanReadable30("dns"), description: `The list of DNS servers to use for the virtual machine.` }),
|
|
5958
|
-
bridge:
|
|
5970
|
+
bridge: z63.string().default("vmbr0").meta({ title: __camelCaseToHumanReadable30("bridge"), description: `The name of the network bridge to connect the virtual machine to.
|
|
5959
5971
|
|
|
5960
5972
|
By default, this is set to "vmbr0".` })
|
|
5961
5973
|
}).prefault({}), `The network configuration for the virtual machine.`),
|
|
5962
|
-
ssh: $
|
|
5963
|
-
waitForAgent: $
|
|
5964
|
-
vendorData: $
|
|
5974
|
+
ssh: $addArgumentDescription50(vmSshArgs, `The SSH configuration for the virtual machine.`),
|
|
5975
|
+
waitForAgent: $addArgumentDescription50(z63.boolean().default(true), `Whether to wait for the Proxmox agent to be ready before returning.`),
|
|
5976
|
+
vendorData: $addArgumentDescription50(z63.string().optional().meta({ multiline: true }), `The cloud-init vendor data to use for the virtual machine.
|
|
5965
5977
|
|
|
5966
5978
|
Will take precedence over the \`vendorData\` input.`)
|
|
5967
5979
|
},
|
|
@@ -5971,7 +5983,7 @@ var virtualMachine = defineUnit60({
|
|
|
5971
5983
|
inputs: {
|
|
5972
5984
|
proxmoxCluster: clusterEntity3,
|
|
5973
5985
|
image: imageEntity,
|
|
5974
|
-
vendorData: $
|
|
5986
|
+
vendorData: $addInputDescription50({
|
|
5975
5987
|
entity: fileEntity,
|
|
5976
5988
|
required: false
|
|
5977
5989
|
}, `The cloud-init vendor data to use for the virtual machine.
|
|
@@ -5998,12 +6010,12 @@ var exports_sops = {};
|
|
|
5998
6010
|
__export(exports_sops, {
|
|
5999
6011
|
secrets: () => secrets2
|
|
6000
6012
|
});
|
|
6001
|
-
import { $addArgumentDescription as $
|
|
6002
|
-
import { defineUnit as defineUnit61, z as
|
|
6013
|
+
import { $addArgumentDescription as $addArgumentDescription51 } from "@highstate/contract";
|
|
6014
|
+
import { defineUnit as defineUnit61, z as z64 } from "@highstate/contract";
|
|
6003
6015
|
var secrets2 = defineUnit61({
|
|
6004
6016
|
type: "sops.secrets.v1",
|
|
6005
6017
|
secrets: {
|
|
6006
|
-
data: $
|
|
6018
|
+
data: $addArgumentDescription51(z64.record(z64.string(), z64.unknown()), `The content of the SOPS secrets file.
|
|
6007
6019
|
|
|
6008
6020
|
Will take precedence over the \`data\` input.`)
|
|
6009
6021
|
},
|
|
@@ -6040,32 +6052,32 @@ __export(exports_talos, {
|
|
|
6040
6052
|
clusterEntity: () => clusterEntity4,
|
|
6041
6053
|
cluster: () => cluster2
|
|
6042
6054
|
});
|
|
6043
|
-
import { $addArgumentDescription as $
|
|
6055
|
+
import { $addArgumentDescription as $addArgumentDescription52 } from "@highstate/contract";
|
|
6044
6056
|
import {
|
|
6045
6057
|
defineEntity as defineEntity32,
|
|
6046
6058
|
defineUnit as defineUnit62,
|
|
6047
|
-
z as
|
|
6059
|
+
z as z65
|
|
6048
6060
|
} from "@highstate/contract";
|
|
6049
6061
|
var clusterEntity4 = defineEntity32({
|
|
6050
6062
|
type: "talos.cluster.v1",
|
|
6051
|
-
schema:
|
|
6052
|
-
clientConfiguration:
|
|
6053
|
-
machineSecrets:
|
|
6063
|
+
schema: z65.object({
|
|
6064
|
+
clientConfiguration: z65.string(),
|
|
6065
|
+
machineSecrets: z65.string()
|
|
6054
6066
|
}),
|
|
6055
6067
|
meta: {
|
|
6056
6068
|
color: "#2d2d2d"
|
|
6057
6069
|
}
|
|
6058
6070
|
});
|
|
6059
|
-
var cniSchema2 =
|
|
6060
|
-
var csiSchema =
|
|
6071
|
+
var cniSchema2 = z65.enum(["none", "cilium", "flannel"]);
|
|
6072
|
+
var csiSchema = z65.enum(["none", "local-path-provisioner"]);
|
|
6061
6073
|
var cluster2 = defineUnit62({
|
|
6062
6074
|
type: "talos.cluster.v1",
|
|
6063
6075
|
args: {
|
|
6064
6076
|
...scheduleOnMastersPolicyArgs,
|
|
6065
|
-
clusterName: $
|
|
6077
|
+
clusterName: $addArgumentDescription52(z65.string().optional(), `The name of the cluster.
|
|
6066
6078
|
|
|
6067
6079
|
By default, the name of the instance is used.`),
|
|
6068
|
-
cni: $
|
|
6080
|
+
cni: $addArgumentDescription52(cniSchema2.default("cilium"), `The CNI plugin to use.
|
|
6069
6081
|
|
|
6070
6082
|
The following options are available:
|
|
6071
6083
|
- "cilium" (default)
|
|
@@ -6073,18 +6085,18 @@ var cluster2 = defineUnit62({
|
|
|
6073
6085
|
- "none" (disable CNI, must be installed manually)
|
|
6074
6086
|
|
|
6075
6087
|
The "cilium" CNI plugin is recommended to cover advanced network policies like FQDNs.`),
|
|
6076
|
-
csi: $
|
|
6088
|
+
csi: $addArgumentDescription52(csiSchema.default("local-path-provisioner"), `The CSI plugin to use.
|
|
6077
6089
|
|
|
6078
6090
|
The following options are available:
|
|
6079
6091
|
- "local-path-provisioner" (default)
|
|
6080
6092
|
- "none" (disable CSI, must be installed manually if needed)`),
|
|
6081
|
-
sharedConfigPatch: $
|
|
6093
|
+
sharedConfigPatch: $addArgumentDescription52(z65.record(z65.string(), z65.any()).optional(), `The shared configuration patch.
|
|
6082
6094
|
It will be applied to all nodes.`),
|
|
6083
|
-
masterConfigPatch: $
|
|
6095
|
+
masterConfigPatch: $addArgumentDescription52(z65.record(z65.string(), z65.any()).optional(), `The master configuration patch.
|
|
6084
6096
|
It will be applied to all master nodes.`),
|
|
6085
|
-
workerConfigPatch: $
|
|
6097
|
+
workerConfigPatch: $addArgumentDescription52(z65.record(z65.string(), z65.any()).optional(), `The worker configuration patch.
|
|
6086
6098
|
It will be applied to all worker nodes.`),
|
|
6087
|
-
enableTunDevicePlugin: $
|
|
6099
|
+
enableTunDevicePlugin: $addArgumentDescription52(z65.boolean().default(true), `Whether to enable the Tun device plugin.
|
|
6088
6100
|
|
|
6089
6101
|
There is the only option for Talos to get tun device in containers.
|
|
6090
6102
|
|
|
@@ -6114,12 +6126,12 @@ __export(exports_cloudflare, {
|
|
|
6114
6126
|
providerDataSchema: () => providerDataSchema,
|
|
6115
6127
|
connection: () => connection9
|
|
6116
6128
|
});
|
|
6117
|
-
import { $addArgumentDescription as $
|
|
6129
|
+
import { $addArgumentDescription as $addArgumentDescription53 } from "@highstate/contract";
|
|
6118
6130
|
import { camelCaseToHumanReadable as __camelCaseToHumanReadable31 } from "@highstate/contract";
|
|
6119
|
-
import { defineUnit as defineUnit63, secretSchema as secretSchema16, z as
|
|
6120
|
-
var providerDataSchema =
|
|
6121
|
-
zoneIds:
|
|
6122
|
-
apiToken: secretSchema16(
|
|
6131
|
+
import { defineUnit as defineUnit63, secretSchema as secretSchema16, z as z66 } from "@highstate/contract";
|
|
6132
|
+
var providerDataSchema = z66.object({
|
|
6133
|
+
zoneIds: z66.record(z66.string(), z66.string()).meta({ title: __camelCaseToHumanReadable31("zoneIds"), description: `The mapping of zone names to their corresponding Cloudflare zone IDs.` }),
|
|
6134
|
+
apiToken: secretSchema16(z66.string()).meta({ title: __camelCaseToHumanReadable31("apiToken"), description: `The API token for the Cloudflare account.
|
|
6123
6135
|
|
|
6124
6136
|
The API key must have permissions to manage DNS records for exactly one zone.
|
|
6125
6137
|
If multiple zones are specified, the unit will fail.
|
|
@@ -6131,7 +6143,7 @@ var providerDataSchema = z64.object({
|
|
|
6131
6143
|
var connection9 = defineUnit63({
|
|
6132
6144
|
type: "cloudflare.connection.v1",
|
|
6133
6145
|
secrets: {
|
|
6134
|
-
apiToken: $
|
|
6146
|
+
apiToken: $addArgumentDescription53(z66.string(), `The API token for the Cloudflare account.
|
|
6135
6147
|
|
|
6136
6148
|
The API key must have permissions to manage DNS records for exactly one zone.
|
|
6137
6149
|
If multiple zones are specified, the unit will fail.
|
|
@@ -6168,22 +6180,22 @@ __export(exports_gcp, {
|
|
|
6168
6180
|
connectionEntity: () => connectionEntity11,
|
|
6169
6181
|
connection: () => connection10
|
|
6170
6182
|
});
|
|
6171
|
-
import { $addArgumentDescription as $
|
|
6183
|
+
import { $addArgumentDescription as $addArgumentDescription54, $addInputDescription as $addInputDescription54 } from "@highstate/contract";
|
|
6172
6184
|
import { camelCaseToHumanReadable as __camelCaseToHumanReadable32 } from "@highstate/contract";
|
|
6173
6185
|
import {
|
|
6174
6186
|
$args as $args8,
|
|
6175
6187
|
defineEntity as defineEntity33,
|
|
6176
6188
|
defineUnit as defineUnit64,
|
|
6177
6189
|
secretSchema as secretSchema17,
|
|
6178
|
-
z as
|
|
6190
|
+
z as z67
|
|
6179
6191
|
} from "@highstate/contract";
|
|
6180
6192
|
var connectionEntity11 = defineEntity33({
|
|
6181
6193
|
type: "gcp.connection.v1",
|
|
6182
|
-
schema:
|
|
6183
|
-
serviceAccountKeyJson: secretSchema17(
|
|
6184
|
-
projectId:
|
|
6185
|
-
defaultRegion:
|
|
6186
|
-
defaultZone:
|
|
6194
|
+
schema: z67.object({
|
|
6195
|
+
serviceAccountKeyJson: secretSchema17(z67.string()).meta({ title: __camelCaseToHumanReadable32("serviceAccountKeyJson"), description: `The service account JSON key used for authentication.` }),
|
|
6196
|
+
projectId: z67.string().meta({ title: __camelCaseToHumanReadable32("projectId"), description: `The ID of the Google Cloud project.` }),
|
|
6197
|
+
defaultRegion: z67.string().meta({ title: __camelCaseToHumanReadable32("defaultRegion"), description: `The default region.` }),
|
|
6198
|
+
defaultZone: z67.string().optional().meta({ title: __camelCaseToHumanReadable32("defaultZone"), description: `The default availability zone.` })
|
|
6187
6199
|
}),
|
|
6188
6200
|
meta: {
|
|
6189
6201
|
color: "#4285F4",
|
|
@@ -6195,16 +6207,16 @@ var connectionEntity11 = defineEntity33({
|
|
|
6195
6207
|
var connection10 = defineUnit64({
|
|
6196
6208
|
type: "gcp.connection.v1",
|
|
6197
6209
|
args: {
|
|
6198
|
-
region: $
|
|
6199
|
-
id:
|
|
6200
|
-
defaultZone:
|
|
6210
|
+
region: $addArgumentDescription54(z67.object({
|
|
6211
|
+
id: z67.string().default("us-central1").meta({ title: __camelCaseToHumanReadable32("id"), description: `The ID of the region.` }),
|
|
6212
|
+
defaultZone: z67.string().optional().meta({ title: __camelCaseToHumanReadable32("defaultZone"), description: `The default availability zone in the selected region.
|
|
6201
6213
|
|
|
6202
6214
|
If not specified, an available zone in the region will be selected automatically.` })
|
|
6203
6215
|
}).prefault({}), `The region to create connection for.`)
|
|
6204
6216
|
},
|
|
6205
6217
|
secrets: {
|
|
6206
|
-
serviceAccountKeyJson: $
|
|
6207
|
-
schema:
|
|
6218
|
+
serviceAccountKeyJson: $addArgumentDescription54({
|
|
6219
|
+
schema: z67.string().meta({ language: "json" }),
|
|
6208
6220
|
meta: {
|
|
6209
6221
|
title: "Service Account Key JSON"
|
|
6210
6222
|
}
|
|
@@ -6214,7 +6226,7 @@ var connection10 = defineUnit64({
|
|
|
6214
6226
|
...inputs
|
|
6215
6227
|
},
|
|
6216
6228
|
outputs: {
|
|
6217
|
-
connection: $
|
|
6229
|
+
connection: $addInputDescription54(connectionEntity11, `The Google Cloud connection.`)
|
|
6218
6230
|
},
|
|
6219
6231
|
meta: {
|
|
6220
6232
|
description: `The connection to a Google Cloud account.`,
|
|
@@ -6228,15 +6240,15 @@ var connection10 = defineUnit64({
|
|
|
6228
6240
|
path: "connection"
|
|
6229
6241
|
}
|
|
6230
6242
|
});
|
|
6231
|
-
var diskSchema =
|
|
6232
|
-
type:
|
|
6233
|
-
size:
|
|
6234
|
-
encrypted:
|
|
6243
|
+
var diskSchema = z67.object({
|
|
6244
|
+
type: z67.enum(["pd-standard", "pd-balanced", "pd-ssd", "pd-extreme"]).default("pd-balanced").meta({ title: __camelCaseToHumanReadable32("type"), description: `The disk type.` }),
|
|
6245
|
+
size: z67.number().default(20).meta({ title: __camelCaseToHumanReadable32("size"), description: `The disk size in GB.` }),
|
|
6246
|
+
encrypted: z67.boolean().default(false).meta({ title: __camelCaseToHumanReadable32("encrypted"), description: `Whether the disk should be encrypted with a separate KMS key.` })
|
|
6235
6247
|
});
|
|
6236
6248
|
var diskEntity = defineEntity33({
|
|
6237
6249
|
type: "gcp.disk.v1",
|
|
6238
|
-
schema:
|
|
6239
|
-
id:
|
|
6250
|
+
schema: z67.object({
|
|
6251
|
+
id: z67.string().meta({ title: __camelCaseToHumanReadable32("id"), description: `The global ID of the disk.` })
|
|
6240
6252
|
}),
|
|
6241
6253
|
meta: {
|
|
6242
6254
|
title: "GCP Disk",
|
|
@@ -6248,7 +6260,7 @@ var diskEntity = defineEntity33({
|
|
|
6248
6260
|
var disk = defineUnit64({
|
|
6249
6261
|
type: "gcp.disk.v1",
|
|
6250
6262
|
args: {
|
|
6251
|
-
diskName: $
|
|
6263
|
+
diskName: $addArgumentDescription54(z67.string().optional(), `The name of the disk in the project.
|
|
6252
6264
|
If not specified, the name of the unit will be used.`),
|
|
6253
6265
|
...diskSchema.shape
|
|
6254
6266
|
},
|
|
@@ -6256,7 +6268,7 @@ var disk = defineUnit64({
|
|
|
6256
6268
|
connection: connectionEntity11
|
|
6257
6269
|
},
|
|
6258
6270
|
outputs: {
|
|
6259
|
-
disk: $
|
|
6271
|
+
disk: $addInputDescription54(diskEntity, `The disk entity.`)
|
|
6260
6272
|
},
|
|
6261
6273
|
meta: {
|
|
6262
6274
|
description: `The disk on Google Cloud.`,
|
|
@@ -6273,8 +6285,8 @@ var disk = defineUnit64({
|
|
|
6273
6285
|
});
|
|
6274
6286
|
var imageEntity2 = defineEntity33({
|
|
6275
6287
|
type: "gcp.image.v1",
|
|
6276
|
-
schema:
|
|
6277
|
-
id:
|
|
6288
|
+
schema: z67.object({
|
|
6289
|
+
id: z67.string().meta({ title: __camelCaseToHumanReadable32("id"), description: `The global ID of the image.` })
|
|
6278
6290
|
}),
|
|
6279
6291
|
meta: {
|
|
6280
6292
|
title: "GCP Image",
|
|
@@ -6286,7 +6298,7 @@ var imageEntity2 = defineEntity33({
|
|
|
6286
6298
|
var existingImage2 = defineUnit64({
|
|
6287
6299
|
type: "gcp.existing-image.v1",
|
|
6288
6300
|
args: {
|
|
6289
|
-
id: $
|
|
6301
|
+
id: $addArgumentDescription54(z67.string(), `The ID or self-link of the image.
|
|
6290
6302
|
|
|
6291
6303
|
See [Compute Engine public images](https://cloud.google.com/compute/docs/images/os-details)
|
|
6292
6304
|
and [Google Cloud Marketplace](https://console.cloud.google.com/marketplace)
|
|
@@ -6296,7 +6308,7 @@ var existingImage2 = defineUnit64({
|
|
|
6296
6308
|
connection: connectionEntity11
|
|
6297
6309
|
},
|
|
6298
6310
|
outputs: {
|
|
6299
|
-
image: $
|
|
6311
|
+
image: $addInputDescription54(imageEntity2, `The image entity.`)
|
|
6300
6312
|
},
|
|
6301
6313
|
meta: {
|
|
6302
6314
|
description: `The existing image from Google Cloud public images or custom images.`,
|
|
@@ -6312,27 +6324,27 @@ var existingImage2 = defineUnit64({
|
|
|
6312
6324
|
}
|
|
6313
6325
|
});
|
|
6314
6326
|
var vmArgs = $args8({
|
|
6315
|
-
machineType: $
|
|
6316
|
-
bootDisk: $
|
|
6317
|
-
network: $
|
|
6318
|
-
subnetworkId:
|
|
6327
|
+
machineType: $addArgumentDescription54(z67.string().default("e2-standard-2"), `The machine type for the instance.`),
|
|
6328
|
+
bootDisk: $addArgumentDescription54(diskSchema.prefault({}), `The boot disk configuration.`),
|
|
6329
|
+
network: $addArgumentDescription54(z67.object({
|
|
6330
|
+
subnetworkId: z67.string().optional().meta({ title: __camelCaseToHumanReadable32("subnetworkId"), description: `The subnetwork self-link to connect to.
|
|
6319
6331
|
If not specified, will auto-discover the default subnet for the zone.` }),
|
|
6320
|
-
assignPublicIp:
|
|
6321
|
-
reservePublicIp:
|
|
6332
|
+
assignPublicIp: z67.boolean().default(true).meta({ title: __camelCaseToHumanReadable32("assignPublicIp"), description: `Whether to assign a public IP.` }),
|
|
6333
|
+
reservePublicIp: z67.boolean().default(true).meta({ title: __camelCaseToHumanReadable32("reservePublicIp"), description: `Whether to reserve the public IP permanently.` })
|
|
6322
6334
|
}).prefault({}), `The network configuration.`),
|
|
6323
|
-
ssh: $
|
|
6324
|
-
preemptible: $
|
|
6335
|
+
ssh: $addArgumentDescription54(vmSshArgs, `The SSH configuration.`),
|
|
6336
|
+
preemptible: $addArgumentDescription54(z67.boolean().default(false), `Whether the virtual machine is preemptible.`)
|
|
6325
6337
|
});
|
|
6326
6338
|
var virtualMachine2 = defineUnit64({
|
|
6327
6339
|
type: "gcp.virtual-machine.v1",
|
|
6328
6340
|
args: {
|
|
6329
|
-
vmName: $
|
|
6341
|
+
vmName: $addArgumentDescription54(z67.string().optional(), `The name of the virtual machine.
|
|
6330
6342
|
If not specified, the name of the unit will be used.`),
|
|
6331
|
-
projectId: $
|
|
6343
|
+
projectId: $addArgumentDescription54(z67.string().optional(), `The ID of the project to create the VM in.
|
|
6332
6344
|
If not specified, will use the project from the connection.`),
|
|
6333
|
-
region: $
|
|
6345
|
+
region: $addArgumentDescription54(z67.string().optional(), `The region to create the VM in.
|
|
6334
6346
|
If not specified, will use the region from the connection.`),
|
|
6335
|
-
zone: $
|
|
6347
|
+
zone: $addArgumentDescription54(z67.string().optional(), `The zone to create the VM in.
|
|
6336
6348
|
If not specified, will use the default zone from the connection.`),
|
|
6337
6349
|
...vmArgs
|
|
6338
6350
|
},
|
|
@@ -6361,15 +6373,15 @@ var virtualMachine2 = defineUnit64({
|
|
|
6361
6373
|
var instanceGroup = defineUnit64({
|
|
6362
6374
|
type: "gcp.instance-group.v1",
|
|
6363
6375
|
args: {
|
|
6364
|
-
groupName: $
|
|
6376
|
+
groupName: $addArgumentDescription54(z67.string().optional(), `The name of the instance group.
|
|
6365
6377
|
If not specified, the name of the unit will be used.`),
|
|
6366
|
-
projectId: $
|
|
6378
|
+
projectId: $addArgumentDescription54(z67.string().optional(), `The ID of the project to create the instance group in.
|
|
6367
6379
|
If not specified, will use the project from the connection.`),
|
|
6368
|
-
region: $
|
|
6380
|
+
region: $addArgumentDescription54(z67.string().optional(), `The region to create the instance group in.
|
|
6369
6381
|
If not specified, will use the region from the connection.`),
|
|
6370
|
-
zone: $
|
|
6382
|
+
zone: $addArgumentDescription54(z67.string().optional(), `The zone to create the instance group in.
|
|
6371
6383
|
If not specified, will use the default zone from the connection.`),
|
|
6372
|
-
size: $
|
|
6384
|
+
size: $addArgumentDescription54(z67.number().default(1), `The number of instances to create in the group.`),
|
|
6373
6385
|
...vmArgs
|
|
6374
6386
|
},
|
|
6375
6387
|
secrets: {
|
|
@@ -6404,8 +6416,8 @@ var exports_mullvad = {};
|
|
|
6404
6416
|
__export(exports_mullvad, {
|
|
6405
6417
|
peer: () => peer2
|
|
6406
6418
|
});
|
|
6407
|
-
import { $addArgumentDescription as $
|
|
6408
|
-
import { defineUnit as defineUnit66, z as
|
|
6419
|
+
import { $addArgumentDescription as $addArgumentDescription56, $addInputDescription as $addInputDescription56 } from "@highstate/contract";
|
|
6420
|
+
import { defineUnit as defineUnit66, z as z69 } from "@highstate/contract";
|
|
6409
6421
|
|
|
6410
6422
|
// src/wireguard.ts
|
|
6411
6423
|
var exports_wireguard = {};
|
|
@@ -6435,7 +6447,7 @@ __export(exports_wireguard, {
|
|
|
6435
6447
|
backendSchema: () => backendSchema,
|
|
6436
6448
|
amneziaParametersSchema: () => amneziaParametersSchema
|
|
6437
6449
|
});
|
|
6438
|
-
import { $addArgumentDescription as $
|
|
6450
|
+
import { $addArgumentDescription as $addArgumentDescription55, $addInputDescription as $addInputDescription55 } from "@highstate/contract";
|
|
6439
6451
|
import { camelCaseToHumanReadable as __camelCaseToHumanReadable33 } from "@highstate/contract";
|
|
6440
6452
|
import {
|
|
6441
6453
|
$args as $args9,
|
|
@@ -6445,47 +6457,47 @@ import {
|
|
|
6445
6457
|
defineUnit as defineUnit65,
|
|
6446
6458
|
genericNameSchema as genericNameSchema2,
|
|
6447
6459
|
secretSchema as secretSchema18,
|
|
6448
|
-
z as
|
|
6460
|
+
z as z68
|
|
6449
6461
|
} from "@highstate/contract";
|
|
6450
6462
|
import { pick as pick29 } from "remeda";
|
|
6451
|
-
var backendSchema =
|
|
6452
|
-
var amneziaParametersSchema =
|
|
6453
|
-
i1:
|
|
6454
|
-
i2:
|
|
6455
|
-
i3:
|
|
6456
|
-
i4:
|
|
6457
|
-
i5:
|
|
6458
|
-
s1:
|
|
6459
|
-
s2:
|
|
6460
|
-
s3:
|
|
6461
|
-
s4:
|
|
6462
|
-
jc:
|
|
6463
|
-
jmin:
|
|
6464
|
-
jmax:
|
|
6465
|
-
h1:
|
|
6466
|
-
h2:
|
|
6467
|
-
h3:
|
|
6468
|
-
h4:
|
|
6463
|
+
var backendSchema = z68.enum(["wireguard", "amneziawg"]);
|
|
6464
|
+
var amneziaParametersSchema = z68.object({
|
|
6465
|
+
i1: z68.string().optional(),
|
|
6466
|
+
i2: z68.string().optional(),
|
|
6467
|
+
i3: z68.string().optional(),
|
|
6468
|
+
i4: z68.string().optional(),
|
|
6469
|
+
i5: z68.string().optional(),
|
|
6470
|
+
s1: z68.number().optional(),
|
|
6471
|
+
s2: z68.number().optional(),
|
|
6472
|
+
s3: z68.number().optional(),
|
|
6473
|
+
s4: z68.number().optional(),
|
|
6474
|
+
jc: z68.number().optional(),
|
|
6475
|
+
jmin: z68.number().optional(),
|
|
6476
|
+
jmax: z68.number().optional(),
|
|
6477
|
+
h1: z68.string().optional(),
|
|
6478
|
+
h2: z68.string().optional(),
|
|
6479
|
+
h3: z68.string().optional(),
|
|
6480
|
+
h4: z68.string().optional()
|
|
6469
6481
|
});
|
|
6470
6482
|
var networkArgs2 = {
|
|
6471
6483
|
backend: backendSchema.default("wireguard"),
|
|
6472
|
-
ipv4:
|
|
6473
|
-
ipv6:
|
|
6484
|
+
ipv4: z68.boolean().default(true),
|
|
6485
|
+
ipv6: z68.boolean().default(false),
|
|
6474
6486
|
amnezia: amneziaParametersSchema.default({})
|
|
6475
6487
|
};
|
|
6476
6488
|
var configSharedArgs = $args9({
|
|
6477
|
-
peerEndpointFilter: $
|
|
6489
|
+
peerEndpointFilter: $addArgumentDescription55(z68.string().optional().meta({ language: "javascript" }), `The filter to use when selecting endpoints for each peer.
|
|
6478
6490
|
|
|
6479
6491
|
The first matching endpoint will be used.
|
|
6480
6492
|
|
|
6481
6493
|
If not provided, all endpoints will be considered.`),
|
|
6482
|
-
listen: $
|
|
6494
|
+
listen: $addArgumentDescription55(z68.boolean().default(false), `Whether to include the \`ListenPort\` in the generated config.
|
|
6483
6495
|
|
|
6484
6496
|
By default, is \`false\` because in most cases the config is used for peers which don't listen for incoming connections.`)
|
|
6485
6497
|
});
|
|
6486
6498
|
var networkEntity2 = defineEntity34({
|
|
6487
6499
|
type: "wireguard.network.v1",
|
|
6488
|
-
schema:
|
|
6500
|
+
schema: z68.object(networkArgs2),
|
|
6489
6501
|
meta: {
|
|
6490
6502
|
description: `The entity representing the WireGuard network configuration.
|
|
6491
6503
|
|
|
@@ -6497,30 +6509,30 @@ var networkEntity2 = defineEntity34({
|
|
|
6497
6509
|
secondaryIcon: "mdi:local-area-network-connect"
|
|
6498
6510
|
}
|
|
6499
6511
|
});
|
|
6500
|
-
var nodeExposePolicySchema =
|
|
6501
|
-
var feedDaemonSyncModeSchema =
|
|
6502
|
-
var feedDaemonBackendTypeSchema =
|
|
6512
|
+
var nodeExposePolicySchema = z68.enum(["always", "when-has-endpoint", "never"]);
|
|
6513
|
+
var feedDaemonSyncModeSchema = z68.enum(["sse", "polling"]);
|
|
6514
|
+
var feedDaemonBackendTypeSchema = z68.enum([
|
|
6503
6515
|
"wg-quick",
|
|
6504
6516
|
"networkmanager",
|
|
6505
6517
|
"netns",
|
|
6506
6518
|
"windows",
|
|
6507
6519
|
"windows-manager"
|
|
6508
6520
|
]);
|
|
6509
|
-
var feedDisplayInfoSchema =
|
|
6510
|
-
title:
|
|
6511
|
-
description:
|
|
6512
|
-
iconUrl:
|
|
6521
|
+
var feedDisplayInfoSchema = z68.object({
|
|
6522
|
+
title: z68.string().meta({ title: __camelCaseToHumanReadable33("title"), description: `The display title of the tunnel.` }),
|
|
6523
|
+
description: z68.string().optional().meta({ title: __camelCaseToHumanReadable33("description"), description: `The display description of the tunnel.` }),
|
|
6524
|
+
iconUrl: z68.url().optional().meta({ title: __camelCaseToHumanReadable33("iconUrl"), description: `The display icon URL of the tunnel.
|
|
6513
6525
|
|
|
6514
6526
|
Must only be \`data:\` URL with SVG image.` })
|
|
6515
6527
|
});
|
|
6516
|
-
var feedMetadataSchema =
|
|
6517
|
-
id:
|
|
6528
|
+
var feedMetadataSchema = z68.object({
|
|
6529
|
+
id: z68.string().meta({ title: __camelCaseToHumanReadable33("id"), description: `The ID of the tunnel in the feed.` }),
|
|
6518
6530
|
name: genericNameSchema2.meta({ title: __camelCaseToHumanReadable33("name"), description: `The suggested name of the interface for the tunnel.` }),
|
|
6519
|
-
enabled:
|
|
6520
|
-
forced:
|
|
6521
|
-
exclusive:
|
|
6531
|
+
enabled: z68.boolean().default(false).meta({ title: __camelCaseToHumanReadable33("enabled"), description: `Whether the tunnel should be enabled by the client.` }),
|
|
6532
|
+
forced: z68.boolean().default(false).meta({ title: __camelCaseToHumanReadable33("forced"), description: `Whether the tunnel state must be forced by the client.` }),
|
|
6533
|
+
exclusive: z68.boolean().default(false).meta({ title: __camelCaseToHumanReadable33("exclusive"), description: `Whether the tunnel is exclusive and should not be enabled with other tunnels.` }),
|
|
6522
6534
|
displayInfo: feedDisplayInfoSchema.meta({ title: __camelCaseToHumanReadable33("displayInfo"), description: `The display information of the tunnel.` }),
|
|
6523
|
-
warningMessage:
|
|
6535
|
+
warningMessage: z68.string().optional().meta({ title: __camelCaseToHumanReadable33("warningMessage"), description: `The warning message to display for the tunnel.` })
|
|
6524
6536
|
});
|
|
6525
6537
|
var peerEntity = defineEntity34({
|
|
6526
6538
|
type: "wireguard.peer.v1",
|
|
@@ -6555,23 +6567,23 @@ var peerEntity = defineEntity34({
|
|
|
6555
6567
|
required: false
|
|
6556
6568
|
}
|
|
6557
6569
|
},
|
|
6558
|
-
schema:
|
|
6570
|
+
schema: z68.object({
|
|
6559
6571
|
name: genericNameSchema2.meta({ title: __camelCaseToHumanReadable33("name"), description: `The name of the WireGuard peer.` }),
|
|
6560
|
-
publicKey:
|
|
6561
|
-
presharedKey: secretSchema18(
|
|
6572
|
+
publicKey: z68.string().meta({ title: __camelCaseToHumanReadable33("publicKey"), description: `The public key of the WireGuard peer.` }),
|
|
6573
|
+
presharedKey: secretSchema18(z68.string()).optional().meta({ title: __camelCaseToHumanReadable33("presharedKey"), description: `The pre-shared key of the WireGuard peer.
|
|
6562
6574
|
|
|
6563
6575
|
If one of two peers has \`presharedKey\` set, the other peer must have \`presharedKey\` set too and they must be equal.
|
|
6564
6576
|
|
|
6565
6577
|
Will be ignored if both peers have \`presharedKeyPart\` set.` }),
|
|
6566
|
-
presharedKeyPart: secretSchema18(
|
|
6578
|
+
presharedKeyPart: secretSchema18(z68.string()).optional().meta({ title: __camelCaseToHumanReadable33("presharedKeyPart"), description: `The pre-shared key part of the WireGuard peer.
|
|
6567
6579
|
|
|
6568
6580
|
If both peers have \`presharedKeyPart\` set, their \`presharedKey\` will be calculated as sha256 of the two parts.` }),
|
|
6569
|
-
listenPort:
|
|
6581
|
+
listenPort: z68.number().default(51820).meta({ title: __camelCaseToHumanReadable33("listenPort"), description: `The port where the WireGuard peer is listening.
|
|
6570
6582
|
|
|
6571
6583
|
Will be used:
|
|
6572
6584
|
1. For implementations if the listen port is not set elsewhere.
|
|
6573
6585
|
2. To map L3 endpoints to L4 endpoints with this port.` }),
|
|
6574
|
-
persistentKeepalive:
|
|
6586
|
+
persistentKeepalive: z68.number().int().nonnegative().default(0).meta({ title: __camelCaseToHumanReadable33("persistentKeepalive"), description: `The keepalive interval in seconds that will be used by all nodes connecting to this peer.
|
|
6575
6587
|
|
|
6576
6588
|
If set to 0, keepalive is disabled.` }),
|
|
6577
6589
|
feedMetadata: feedMetadataSchema.optional().meta({ title: __camelCaseToHumanReadable33("feedMetadata"), description: `The wg-feed metadata of the WireGuard peer.
|
|
@@ -6590,8 +6602,8 @@ var identityEntity = defineEntity34({
|
|
|
6590
6602
|
includes: {
|
|
6591
6603
|
peer: peerEntity
|
|
6592
6604
|
},
|
|
6593
|
-
schema:
|
|
6594
|
-
privateKey: secretSchema18(
|
|
6605
|
+
schema: z68.object({
|
|
6606
|
+
privateKey: secretSchema18(z68.string()).meta({ title: __camelCaseToHumanReadable33("privateKey"), description: `The private key of the WireGuard identity.` })
|
|
6595
6607
|
}),
|
|
6596
6608
|
meta: {
|
|
6597
6609
|
color: "#F44336",
|
|
@@ -6610,7 +6622,7 @@ var configEntity = defineEntity34({
|
|
|
6610
6622
|
multiple: true
|
|
6611
6623
|
}
|
|
6612
6624
|
},
|
|
6613
|
-
schema:
|
|
6625
|
+
schema: z68.object({
|
|
6614
6626
|
feedMetadata: feedMetadataSchema.optional().meta({ title: __camelCaseToHumanReadable33("feedMetadata"), description: `The metadata to include in the wg-feed for this config.
|
|
6615
6627
|
|
|
6616
6628
|
Must be provided for the configs uploaded to wg-feed.` })
|
|
@@ -6624,14 +6636,14 @@ var configEntity = defineEntity34({
|
|
|
6624
6636
|
}
|
|
6625
6637
|
});
|
|
6626
6638
|
var feedDaemonArgs = $args9({
|
|
6627
|
-
feedName: $
|
|
6628
|
-
backendName: $
|
|
6629
|
-
backendType: $
|
|
6630
|
-
syncMode: $
|
|
6631
|
-
pollingInterval: $
|
|
6639
|
+
feedName: $addArgumentDescription55(genericNameSchema2.default("main"), `The label of the feed in the wg-feed daemon config.`),
|
|
6640
|
+
backendName: $addArgumentDescription55(genericNameSchema2.default("default"), `The label of the backend in the wg-feed daemon config.`),
|
|
6641
|
+
backendType: $addArgumentDescription55(feedDaemonBackendTypeSchema.default("wg-quick"), `The backend type used by the wg-feed daemon.`),
|
|
6642
|
+
syncMode: $addArgumentDescription55(feedDaemonSyncModeSchema.default("sse"), `The sync mode used by the wg-feed daemon.`),
|
|
6643
|
+
pollingInterval: $addArgumentDescription55(z68.number().int().nonnegative().default(0), `The polling interval in seconds.
|
|
6632
6644
|
|
|
6633
6645
|
If set to 0, wg-feed daemon uses the server-provided TTL.`),
|
|
6634
|
-
statePath: $
|
|
6646
|
+
statePath: $addArgumentDescription55(z68.string().default("/var/lib/wg-feed/state.json"), `The state file path used by the wg-feed daemon.`)
|
|
6635
6647
|
});
|
|
6636
6648
|
var network3 = defineUnit65({
|
|
6637
6649
|
type: "wireguard.network.v1",
|
|
@@ -6652,9 +6664,9 @@ var network3 = defineUnit65({
|
|
|
6652
6664
|
}
|
|
6653
6665
|
});
|
|
6654
6666
|
var sharedFeedArgs = $args9({
|
|
6655
|
-
feedMetadata: $
|
|
6656
|
-
|
|
6657
|
-
provided:
|
|
6667
|
+
feedMetadata: $addArgumentDescription55(z68.discriminatedUnion("provided", [
|
|
6668
|
+
z68.object({
|
|
6669
|
+
provided: z68.literal("yes").meta({ title: __camelCaseToHumanReadable33("provided"), description: `Whether this config is enabled for upload to wg-feed.
|
|
6658
6670
|
|
|
6659
6671
|
You must fill the metadata fields.` }),
|
|
6660
6672
|
...pick29(feedMetadataSchema.shape, [
|
|
@@ -6667,24 +6679,24 @@ var sharedFeedArgs = $args9({
|
|
|
6667
6679
|
]),
|
|
6668
6680
|
...feedDisplayInfoSchema.shape
|
|
6669
6681
|
}),
|
|
6670
|
-
|
|
6671
|
-
provided:
|
|
6682
|
+
z68.object({
|
|
6683
|
+
provided: z68.literal("no").meta({ title: __camelCaseToHumanReadable33("provided"), description: `Whether this config is enabled for upload to wg-feed.` })
|
|
6672
6684
|
})
|
|
6673
6685
|
]).prefault({ provided: "no" }), `The metadata to include in the wg-feed for this config.`)
|
|
6674
6686
|
});
|
|
6675
6687
|
var sharedPeerArgs = $args9({
|
|
6676
|
-
peerName: $
|
|
6688
|
+
peerName: $addArgumentDescription55(z68.string().optional(), `The name of the WireGuard peer.
|
|
6677
6689
|
|
|
6678
6690
|
If not provided, the peer will be named after the unit.`),
|
|
6679
|
-
addresses: $
|
|
6691
|
+
addresses: $addArgumentDescription55(z68.string().array().default([]), `The addresses of the WireGuard interface.
|
|
6680
6692
|
|
|
6681
6693
|
The address may be any IPv4 or IPv6 address. CIDR notation is also supported.`),
|
|
6682
|
-
exitNode: $
|
|
6694
|
+
exitNode: $addArgumentDescription55(z68.boolean().default(false), `The convenience option to set \`allowedIps\` to \`0.0.0.0/0, ::/0\`.
|
|
6683
6695
|
|
|
6684
6696
|
Will be merged with the \`allowedIps\` if provided.`),
|
|
6685
|
-
allowedSubnets: $
|
|
6686
|
-
excludedSubnets: $
|
|
6687
|
-
excludePrivateSubnets: $
|
|
6697
|
+
allowedSubnets: $addArgumentDescription55(z68.string().array().default([]), `The list of IP ranges to include in the allowed IPs of the peer.`),
|
|
6698
|
+
excludedSubnets: $addArgumentDescription55(z68.string().array().default([]), `The list of IP ranges to exclude from the tunnel.`),
|
|
6699
|
+
excludePrivateSubnets: $addArgumentDescription55(z68.boolean().default(false), `The convenience option to exclude private IPs from the tunnel.
|
|
6688
6700
|
|
|
6689
6701
|
For IPv4, the private IPs are:
|
|
6690
6702
|
|
|
@@ -6698,47 +6710,47 @@ var sharedPeerArgs = $args9({
|
|
|
6698
6710
|
- \`fe80::/10\`
|
|
6699
6711
|
|
|
6700
6712
|
Will be merged with \`excludedIps\` if provided.`),
|
|
6701
|
-
endpoints: $
|
|
6702
|
-
dns: $
|
|
6713
|
+
endpoints: $addArgumentDescription55(z68.string().array().default([]), `The endpoints of the WireGuard peer.`),
|
|
6714
|
+
dns: $addArgumentDescription55(z68.string().array().default([]), `The DNS servers that should be used by the interface connected to the WireGuard peer.
|
|
6703
6715
|
|
|
6704
6716
|
If multiple peers define DNS servers, the node will merge them into a single list (but this is discouraged).`),
|
|
6705
|
-
includeAddresses: $
|
|
6717
|
+
includeAddresses: $addArgumentDescription55(z68.boolean().default(true), `The convenience option to include the addresses to the allowed IPs.
|
|
6706
6718
|
|
|
6707
6719
|
By default, is \`true\`.`),
|
|
6708
|
-
includeDns: $
|
|
6720
|
+
includeDns: $addArgumentDescription55(z68.boolean().default(true), `The convenience option to include the DNS servers to the allowed IPs.
|
|
6709
6721
|
|
|
6710
6722
|
By default, is \`true\`.`),
|
|
6711
|
-
listenPort: $
|
|
6712
|
-
persistentKeepalive: $
|
|
6723
|
+
listenPort: $addArgumentDescription55(z68.number().default(51820), `The port to listen on.`),
|
|
6724
|
+
persistentKeepalive: $addArgumentDescription55(z68.number().int().nonnegative().default(0), `The keepalive interval in seconds that will be used by all nodes connecting to this peer.
|
|
6713
6725
|
|
|
6714
6726
|
If set to 0, keepalive is disabled.`),
|
|
6715
6727
|
...sharedFeedArgs
|
|
6716
6728
|
});
|
|
6717
6729
|
var sharedPeerInputs = $inputs4({
|
|
6718
|
-
network: $
|
|
6730
|
+
network: $addInputDescription55({
|
|
6719
6731
|
entity: networkEntity2,
|
|
6720
6732
|
required: false
|
|
6721
6733
|
}, `The network to use for the WireGuard identity.
|
|
6722
6734
|
|
|
6723
6735
|
If not provided, the identity will use default network configuration.`),
|
|
6724
|
-
endpoints: $
|
|
6736
|
+
endpoints: $addInputDescription55({
|
|
6725
6737
|
entity: l3EndpointEntity,
|
|
6726
6738
|
multiple: true,
|
|
6727
6739
|
required: false
|
|
6728
6740
|
}, `The L3/L4 endpoints of the identity.
|
|
6729
6741
|
|
|
6730
6742
|
All L3 endpoints will be adjusted to L4 endpoints with listen port of the identity.`),
|
|
6731
|
-
allowedEndpoints: $
|
|
6743
|
+
allowedEndpoints: $addInputDescription55({
|
|
6732
6744
|
entity: l3EndpointEntity,
|
|
6733
6745
|
multiple: true,
|
|
6734
6746
|
required: false
|
|
6735
6747
|
}, `the endpoints to add to the allowed IPs of the identity.`),
|
|
6736
|
-
allowedSubnets: $
|
|
6748
|
+
allowedSubnets: $addInputDescription55({
|
|
6737
6749
|
entity: subnetEntity,
|
|
6738
6750
|
multiple: true,
|
|
6739
6751
|
required: false
|
|
6740
6752
|
}, `The subnets to add to the allowed IPs of the identity.`),
|
|
6741
|
-
relayedPeers: $
|
|
6753
|
+
relayedPeers: $addInputDescription55({
|
|
6742
6754
|
entity: peerEntity,
|
|
6743
6755
|
multiple: true,
|
|
6744
6756
|
required: false
|
|
@@ -6751,10 +6763,10 @@ var peer = defineUnit65({
|
|
|
6751
6763
|
type: "wireguard.peer.v1",
|
|
6752
6764
|
args: {
|
|
6753
6765
|
...sharedPeerArgs,
|
|
6754
|
-
publicKey: $
|
|
6766
|
+
publicKey: $addArgumentDescription55(z68.string(), `The public key of the WireGuard peer.`)
|
|
6755
6767
|
},
|
|
6756
6768
|
secrets: {
|
|
6757
|
-
presharedKey: $
|
|
6769
|
+
presharedKey: $addArgumentDescription55(z68.string().optional(), `The pre-shared key which should be used for the peer.`)
|
|
6758
6770
|
},
|
|
6759
6771
|
inputs: sharedPeerInputs,
|
|
6760
6772
|
outputs: sharedPeerOutputs,
|
|
@@ -6795,10 +6807,10 @@ var identity = defineUnit65({
|
|
|
6795
6807
|
type: "wireguard.identity.v1",
|
|
6796
6808
|
args: sharedPeerArgs,
|
|
6797
6809
|
secrets: {
|
|
6798
|
-
privateKey: $
|
|
6810
|
+
privateKey: $addArgumentDescription55(z68.string().optional(), `The private key of the WireGuard identity.
|
|
6799
6811
|
|
|
6800
6812
|
If not provided, the key will be generated automatically.`),
|
|
6801
|
-
presharedKeyPart: $
|
|
6813
|
+
presharedKeyPart: $addArgumentDescription55(z68.string().optional(), `The part of the pre-shared of the WireGuard identity.
|
|
6802
6814
|
|
|
6803
6815
|
Will be generated automatically if not provided.`)
|
|
6804
6816
|
},
|
|
@@ -6821,30 +6833,32 @@ var identity = defineUnit65({
|
|
|
6821
6833
|
var nodeK8s = defineUnit65({
|
|
6822
6834
|
type: "wireguard.node.k8s.v1",
|
|
6823
6835
|
args: {
|
|
6824
|
-
appName: $
|
|
6836
|
+
appName: $addArgumentDescription55(z68.string().optional(), `The name of the namespace/deployment/statefulset where the WireGuard node will be deployed.
|
|
6825
6837
|
|
|
6826
6838
|
By default, the name is \`wg-\${identity.name}\`.`),
|
|
6827
|
-
external: $
|
|
6828
|
-
|
|
6839
|
+
external: $addArgumentDescription55(z68.boolean().default(false), `Whether to expose the WireGuard node to the outside world.`),
|
|
6840
|
+
nodePort: $addArgumentDescription55(z68.number().int().min(30000).max(32767).optional(), `The NodePort to assign when the node is exposed.`),
|
|
6841
|
+
exposePolicy: $addArgumentDescription55(nodeExposePolicySchema.default("when-has-endpoint"), `The policy to use for exposing the WireGuard node.
|
|
6829
6842
|
|
|
6830
6843
|
- \`always\` - The node will be exposed and the service will be created.
|
|
6831
6844
|
- \`when-has-endpoint\` - The node will be exposed only if the provided idenity has at least one endpoint.
|
|
6832
6845
|
- \`never\` - The node will not be exposed and the service will not be created.
|
|
6833
6846
|
|
|
6834
6847
|
* By default, the \`when-has-endpoint\` policy is used.`),
|
|
6835
|
-
|
|
6848
|
+
listen: $addArgumentDescription55(z68.boolean().default(true), `Whether to include a listen port in the generated WireGuard configuration.`),
|
|
6849
|
+
containerSpec: $addArgumentDescription55(z68.record(z68.string(), z68.unknown()).optional(), `The extra specification of the container which runs the WireGuard node.
|
|
6836
6850
|
|
|
6837
6851
|
Will override any overlapping fields.`),
|
|
6838
|
-
forwardRestrictedSubnets: $
|
|
6852
|
+
forwardRestrictedSubnets: $addArgumentDescription55(z68.string().array().default([]), `List of CIDR blocks that should be blocked from forwarding through this WireGuard node.
|
|
6839
6853
|
|
|
6840
6854
|
This prevents other peers from reaching these destination CIDRs while still allowing
|
|
6841
6855
|
the peers in those CIDRs to access the internet and other allowed endpoints.
|
|
6842
6856
|
|
|
6843
6857
|
Useful for peer isolation where you want to prevent cross-peer communication.`),
|
|
6844
|
-
allowClusterPods: $
|
|
6858
|
+
allowClusterPods: $addArgumentDescription55(z68.boolean().default(false), `Whether to allow traffic to all pods inside the cluster from the WireGuard node.
|
|
6845
6859
|
|
|
6846
6860
|
By default, is false.`),
|
|
6847
|
-
lockdownUpstream: $
|
|
6861
|
+
lockdownUpstream: $addArgumentDescription55(z68.boolean().default(false), `Whether to drop all traffic from the interface using ip rule with priority 100.
|
|
6848
6862
|
|
|
6849
6863
|
This is useful for preventing the traffic leaks before upstream node is attached via \`downstreamInterface\` input.
|
|
6850
6864
|
They will add their own ip rule with <100 priority which allows traffic from the interface.`)
|
|
@@ -6904,32 +6918,32 @@ var nodeK8s = defineUnit65({
|
|
|
6904
6918
|
var nodeFeedK8s = defineUnit65({
|
|
6905
6919
|
type: "wireguard.node.feed.k8s.v1",
|
|
6906
6920
|
args: {
|
|
6907
|
-
appName: $
|
|
6921
|
+
appName: $addArgumentDescription55(z68.string().optional(), `The name of the namespace/deployment/statefulset where the daemon will be deployed.
|
|
6908
6922
|
|
|
6909
6923
|
By default, the name is \`wg-\${identity.name}\`.`),
|
|
6910
|
-
external: $
|
|
6911
|
-
expose: $
|
|
6912
|
-
listenPort: $
|
|
6924
|
+
external: $addArgumentDescription55(z68.boolean().default(false), `Whether to expose the WireGuard node to the outside world.`),
|
|
6925
|
+
expose: $addArgumentDescription55(z68.boolean().default(false), `Whether to create a Service and allow ingress.`),
|
|
6926
|
+
listenPort: $addArgumentDescription55(z68.number().default(51820), `The UDP port that will be exposed by the Service.
|
|
6913
6927
|
|
|
6914
6928
|
This is required for consumers that need to know the port ahead of time.`),
|
|
6915
|
-
nodePort: $
|
|
6916
|
-
interfaceName: $
|
|
6929
|
+
nodePort: $addArgumentDescription55(z68.number().int().min(30000).max(32767).optional(), `The NodePort to assign when the node is exposed.`),
|
|
6930
|
+
interfaceName: $addArgumentDescription55(z68.string().default("wg0"), `The name of the WireGuard interface to export as \`interface\` output.
|
|
6917
6931
|
|
|
6918
6932
|
Note: wg-feed may manage multiple tunnels.
|
|
6919
6933
|
This output is a convenience handle for downstream units.`),
|
|
6920
6934
|
...feedDaemonArgs,
|
|
6921
|
-
enabledTunnels: $
|
|
6922
|
-
forwardRestrictedSubnets: $
|
|
6935
|
+
enabledTunnels: $addArgumentDescription55(z68.string().array().default([]), `The wg-feed tunnel IDs to force-enable in the daemon config.`),
|
|
6936
|
+
forwardRestrictedSubnets: $addArgumentDescription55(z68.string().array().default([]), `List of CIDR blocks that should be blocked from forwarding through this WireGuard node.
|
|
6923
6937
|
|
|
6924
6938
|
This prevents other peers from reaching these destination CIDRs while still allowing
|
|
6925
6939
|
the peers in those CIDRs to access the internet and other allowed endpoints.
|
|
6926
6940
|
|
|
6927
6941
|
Useful for peer isolation where you want to prevent cross-peer communication.`),
|
|
6928
|
-
lockdownUpstream: $
|
|
6942
|
+
lockdownUpstream: $addArgumentDescription55(z68.boolean().default(false), `Whether to drop all traffic from the interface using ip rule with priority 100.
|
|
6929
6943
|
|
|
6930
6944
|
This is useful for preventing the traffic leaks before upstream node is attached via \`downstreamInterface\` input.
|
|
6931
6945
|
They will add their own ip rule with <100 priority which allows traffic from the interface.`),
|
|
6932
|
-
containerSpec: $
|
|
6946
|
+
containerSpec: $addArgumentDescription55(z68.record(z68.string(), z68.unknown()).optional(), `The extra specification of the container which runs the wg-feed daemon.
|
|
6933
6947
|
|
|
6934
6948
|
Will override any overlapping fields.`)
|
|
6935
6949
|
},
|
|
@@ -6981,27 +6995,27 @@ var nodeFeedK8s = defineUnit65({
|
|
|
6981
6995
|
var nodeFeed = defineUnit65({
|
|
6982
6996
|
type: "wireguard.node.feed.v1",
|
|
6983
6997
|
args: {
|
|
6984
|
-
serviceName: $
|
|
6998
|
+
serviceName: $addArgumentDescription55(z68.string().optional(), `The name of the wg-feed daemon systemd service.
|
|
6985
6999
|
|
|
6986
7000
|
By default, the name is \`wg-feed-\${unitName}\`.`),
|
|
6987
|
-
listenPort: $
|
|
6988
|
-
interfaceName: $
|
|
7001
|
+
listenPort: $addArgumentDescription55(z68.number().default(51820), `The UDP port that will be exposed by the output peer.`),
|
|
7002
|
+
interfaceName: $addArgumentDescription55(z68.string().default("wg0"), `The name of the WireGuard interface to use for lockdown rules.
|
|
6989
7003
|
|
|
6990
7004
|
Note: wg-feed may manage multiple tunnels.`),
|
|
6991
|
-
daemonPath: $
|
|
6992
|
-
configPath: $
|
|
7005
|
+
daemonPath: $addArgumentDescription55(z68.string().default("/usr/local/bin/wg-feed-daemon"), `The path where the wg-feed daemon binary should be installed.`),
|
|
7006
|
+
configPath: $addArgumentDescription55(z68.string().default("/etc/wg-feed/config.yaml"), `The path where the wg-feed daemon config should be written.`),
|
|
6993
7007
|
...feedDaemonArgs,
|
|
6994
|
-
enabledTunnels: $
|
|
6995
|
-
forwardRestrictedSubnets: $
|
|
7008
|
+
enabledTunnels: $addArgumentDescription55(z68.string().array().default([]), `The wg-feed tunnel IDs to force-enable in the daemon config.`),
|
|
7009
|
+
forwardRestrictedSubnets: $addArgumentDescription55(z68.string().array().default([]), `List of CIDR blocks that should be blocked from forwarding through this WireGuard node.
|
|
6996
7010
|
|
|
6997
7011
|
This prevents other peers from reaching these destination CIDRs while still allowing
|
|
6998
7012
|
the peers in those CIDRs to access the internet and other allowed endpoints.`),
|
|
6999
|
-
lockdownUpstream: $
|
|
7013
|
+
lockdownUpstream: $addArgumentDescription55(z68.boolean().default(false), `Whether to drop all traffic from the interface using ip rule with priority 100.
|
|
7000
7014
|
|
|
7001
7015
|
This is useful for preventing traffic leaks before another routing rule is installed.`)
|
|
7002
7016
|
},
|
|
7003
7017
|
secrets: {
|
|
7004
|
-
endpoints: $
|
|
7018
|
+
endpoints: $addArgumentDescription55(z68.string().array().default([]), `The wg-feed setup URLs to configure on the daemon.
|
|
7005
7019
|
|
|
7006
7020
|
This is useful for URLs that include secret fragments such as age keys.`)
|
|
7007
7021
|
},
|
|
@@ -7042,23 +7056,23 @@ var nodeFeed = defineUnit65({
|
|
|
7042
7056
|
var node2 = defineUnit65({
|
|
7043
7057
|
type: "wireguard.node.v1",
|
|
7044
7058
|
args: {
|
|
7045
|
-
interfaceName: $
|
|
7059
|
+
interfaceName: $addArgumentDescription55(z68.string().optional(), `The name of the WireGuard interface.
|
|
7046
7060
|
|
|
7047
7061
|
By default, the name is \`wg-\${identity.name}\` (truncated to 15 characters).`),
|
|
7048
|
-
forwardRestrictedIps: $
|
|
7062
|
+
forwardRestrictedIps: $addArgumentDescription55(z68.string().array().default([]), `List of CIDR blocks that should be blocked from forwarding through this WireGuard node.
|
|
7049
7063
|
|
|
7050
7064
|
This prevents other peers from reaching these destination CIDRs while still allowing
|
|
7051
7065
|
the peers in those CIDRs to access the internet and other allowed endpoints.
|
|
7052
7066
|
|
|
7053
7067
|
Useful for peer isolation where you want to prevent cross-peer communication.`),
|
|
7054
|
-
enableMasquerade: $
|
|
7068
|
+
enableMasquerade: $addArgumentDescription55(z68.boolean().default(true), `Whether to enable IP masquerading (NAT) for outgoing traffic.
|
|
7055
7069
|
|
|
7056
7070
|
By default, IP masquerading is enabled.`),
|
|
7057
7071
|
...configSharedArgs,
|
|
7058
|
-
preUpScript: $
|
|
7059
|
-
postUpScript: $
|
|
7060
|
-
preDownScript: $
|
|
7061
|
-
postDownScript: $
|
|
7072
|
+
preUpScript: $addArgumentDescription55(z68.string().optional().meta({ language: "shell" }), `Script to run before bringing up the interface.`),
|
|
7073
|
+
postUpScript: $addArgumentDescription55(z68.string().optional().meta({ language: "shell" }), `Script to run after bringing up the interface.`),
|
|
7074
|
+
preDownScript: $addArgumentDescription55(z68.string().optional().meta({ language: "shell" }), `Script to run before bringing down the interface.`),
|
|
7075
|
+
postDownScript: $addArgumentDescription55(z68.string().optional().meta({ language: "shell" }), `Script to run after bringing down the interface.`)
|
|
7062
7076
|
},
|
|
7063
7077
|
inputs: {
|
|
7064
7078
|
identity: {
|
|
@@ -7135,7 +7149,7 @@ var config = defineUnit65({
|
|
|
7135
7149
|
var existingConfig = defineUnit65({
|
|
7136
7150
|
type: "wireguard.existing-config.v1",
|
|
7137
7151
|
args: {
|
|
7138
|
-
config: $
|
|
7152
|
+
config: $addArgumentDescription55(z68.string().meta({ language: "ini" }), `The existing wg-quick or awg-quick configuration content.`)
|
|
7139
7153
|
},
|
|
7140
7154
|
outputs: {
|
|
7141
7155
|
config: configEntity,
|
|
@@ -7202,29 +7216,29 @@ var configBundle = defineUnit65({
|
|
|
7202
7216
|
var feed = defineUnit65({
|
|
7203
7217
|
type: "wireguard.feed.v1",
|
|
7204
7218
|
args: {
|
|
7205
|
-
ttlSeconds: $
|
|
7219
|
+
ttlSeconds: $addArgumentDescription55(z68.number().int().positive().default(900), `The TTL seconds to suggest to wg-feed clients.
|
|
7206
7220
|
|
|
7207
7221
|
By default, is 900 seconds (15 minutes).`),
|
|
7208
|
-
serverEndpoints: $
|
|
7222
|
+
serverEndpoints: $addArgumentDescription55(z68.string().array().default([]), `The endpoints of the wg-feed servers to use for generating the subscription URLs.
|
|
7209
7223
|
|
|
7210
7224
|
At least one endpoint must be provided either here or via \`serverEndpoints\` input.
|
|
7211
7225
|
|
|
7212
7226
|
The resulting subscription URL will be inferred as: \`https://{firstEndpoint}/{feedId}#{privateKey}\`.`),
|
|
7213
|
-
publicKey: $
|
|
7227
|
+
publicKey: $addArgumentDescription55(z68.string().optional(), `The AGE public key (x25519 recipient) to encrypt the configs with.
|
|
7214
7228
|
|
|
7215
7229
|
Note: If you provide this, you must provide the corresponding private key to the clients.
|
|
7216
7230
|
Resulting subscription URL will not contain the private key.`),
|
|
7217
|
-
displayInfo: $
|
|
7218
|
-
warningMessage: $
|
|
7231
|
+
displayInfo: $addArgumentDescription55(feedDisplayInfoSchema, `The display information of the feed.`),
|
|
7232
|
+
warningMessage: $addArgumentDescription55(z68.string().optional(), `The warning message to display for the feed.`)
|
|
7219
7233
|
},
|
|
7220
7234
|
secrets: {
|
|
7221
|
-
feedId: $
|
|
7235
|
+
feedId: $addArgumentDescription55(z68.string().optional(), `The cuidv2 of the feed.
|
|
7222
7236
|
Will be used as path of the feed in etcd/subscription URL.
|
|
7223
7237
|
|
|
7224
7238
|
In most cases, you don't want to provide this and let it be generated automatically.
|
|
7225
7239
|
|
|
7226
7240
|
The \`id\` field of the feed document will be inferred from this value as \`uuidv5(feedId, "2b5e358c-3510-48fb-b1cf-a8aee788925a")\`.`),
|
|
7227
|
-
privateKey: $
|
|
7241
|
+
privateKey: $addArgumentDescription55(z68.string().optional(), `The AGE private key (x25519 identity) to embed in the subscription URL.
|
|
7228
7242
|
|
|
7229
7243
|
If not provided and \`publicKey\` is not provided, a new key pair will be generated.`)
|
|
7230
7244
|
},
|
|
@@ -7261,11 +7275,11 @@ var feed = defineUnit65({
|
|
|
7261
7275
|
var peer2 = defineUnit66({
|
|
7262
7276
|
type: "mullvad.peer.v1",
|
|
7263
7277
|
args: {
|
|
7264
|
-
hostname:
|
|
7265
|
-
includeDns: $
|
|
7278
|
+
hostname: z69.string().optional(),
|
|
7279
|
+
includeDns: $addArgumentDescription56(z69.boolean().default(true), `Whether to include Mullvad DNS servers in the peer configuration.`)
|
|
7266
7280
|
},
|
|
7267
7281
|
inputs: {
|
|
7268
|
-
network: $
|
|
7282
|
+
network: $addInputDescription56({
|
|
7269
7283
|
entity: networkEntity2,
|
|
7270
7284
|
required: false
|
|
7271
7285
|
}, `The network to use for the WireGuard peer.
|
|
@@ -7299,18 +7313,18 @@ __export(exports_timeweb, {
|
|
|
7299
7313
|
connectionEntity: () => connectionEntity12,
|
|
7300
7314
|
connection: () => connection11
|
|
7301
7315
|
});
|
|
7302
|
-
import { $addArgumentDescription as $
|
|
7316
|
+
import { $addArgumentDescription as $addArgumentDescription57 } from "@highstate/contract";
|
|
7303
7317
|
import {
|
|
7304
7318
|
defineEntity as defineEntity35,
|
|
7305
7319
|
defineUnit as defineUnit67,
|
|
7306
7320
|
secretSchema as secretSchema19,
|
|
7307
|
-
z as
|
|
7321
|
+
z as z70
|
|
7308
7322
|
} from "@highstate/contract";
|
|
7309
7323
|
var connectionEntity12 = defineEntity35({
|
|
7310
7324
|
type: "timeweb.connection.v1",
|
|
7311
|
-
schema:
|
|
7312
|
-
name:
|
|
7313
|
-
apiToken: secretSchema19(
|
|
7325
|
+
schema: z70.object({
|
|
7326
|
+
name: z70.string(),
|
|
7327
|
+
apiToken: secretSchema19(z70.string())
|
|
7314
7328
|
}),
|
|
7315
7329
|
meta: {
|
|
7316
7330
|
color: "#0078FF",
|
|
@@ -7322,7 +7336,7 @@ var connectionEntity12 = defineEntity35({
|
|
|
7322
7336
|
var connection11 = defineUnit67({
|
|
7323
7337
|
type: "timeweb.connection.v1",
|
|
7324
7338
|
secrets: {
|
|
7325
|
-
apiToken: $
|
|
7339
|
+
apiToken: $addArgumentDescription57(z70.string(), `The API token for the Timeweb account.
|
|
7326
7340
|
|
|
7327
7341
|
Can be obtained from the Timeweb control panel.`)
|
|
7328
7342
|
},
|
|
@@ -7343,19 +7357,19 @@ var connection11 = defineUnit67({
|
|
|
7343
7357
|
var virtualMachine3 = defineUnit67({
|
|
7344
7358
|
type: "timeweb.virtual-machine.v1",
|
|
7345
7359
|
args: {
|
|
7346
|
-
vmName: $
|
|
7360
|
+
vmName: $addArgumentDescription57(z70.string().optional(), `The name of the virtual machine.
|
|
7347
7361
|
|
|
7348
7362
|
If not provided, the name of the unit will be used.`),
|
|
7349
|
-
presetId: $
|
|
7363
|
+
presetId: $addArgumentDescription57(z70.number().optional(), `The ID of the preset to use for the virtual machine.
|
|
7350
7364
|
|
|
7351
7365
|
Can be obtained from the Timeweb control panel when creating a new virtual machine.`),
|
|
7352
|
-
osId: $
|
|
7366
|
+
osId: $addArgumentDescription57(z70.number().optional(), `The ID of the operating system to use for the virtual machine.
|
|
7353
7367
|
|
|
7354
7368
|
Can be obtained from the Timeweb control panel when creating a new virtual machine.`),
|
|
7355
|
-
availabilityZone: $
|
|
7369
|
+
availabilityZone: $addArgumentDescription57(z70.string(), `The ID of the connection to use for the virtual machine.
|
|
7356
7370
|
|
|
7357
7371
|
Can be obtained from the Timeweb control panel when creating a new virtual machine.`),
|
|
7358
|
-
ssh: $
|
|
7372
|
+
ssh: $addArgumentDescription57(vmSshArgs, `The SSH arguments to use for the virtual machine.`)
|
|
7359
7373
|
},
|
|
7360
7374
|
inputs: {
|
|
7361
7375
|
connection: connectionEntity12,
|
|
@@ -7393,24 +7407,24 @@ __export(exports_yandex, {
|
|
|
7393
7407
|
connectionEntity: () => connectionEntity13,
|
|
7394
7408
|
connection: () => connection12
|
|
7395
7409
|
});
|
|
7396
|
-
import { $addArgumentDescription as $
|
|
7410
|
+
import { $addArgumentDescription as $addArgumentDescription58, $addInputDescription as $addInputDescription58 } from "@highstate/contract";
|
|
7397
7411
|
import { camelCaseToHumanReadable as __camelCaseToHumanReadable34 } from "@highstate/contract";
|
|
7398
7412
|
import {
|
|
7399
7413
|
$args as $args10,
|
|
7400
7414
|
defineEntity as defineEntity36,
|
|
7401
7415
|
defineUnit as defineUnit68,
|
|
7402
7416
|
secretSchema as secretSchema20,
|
|
7403
|
-
z as
|
|
7417
|
+
z as z71
|
|
7404
7418
|
} from "@highstate/contract";
|
|
7405
7419
|
var connectionEntity13 = defineEntity36({
|
|
7406
7420
|
type: "yandex.connection.v1",
|
|
7407
|
-
schema:
|
|
7408
|
-
authorizedKeyJson: secretSchema20(
|
|
7409
|
-
cloudId:
|
|
7410
|
-
defaultFolderId:
|
|
7411
|
-
defaultZone:
|
|
7412
|
-
regionId:
|
|
7413
|
-
serviceAccountId:
|
|
7421
|
+
schema: z71.object({
|
|
7422
|
+
authorizedKeyJson: secretSchema20(z71.string()).meta({ title: __camelCaseToHumanReadable34("authorizedKeyJson"), description: `The JSON of the authorized key for the service account.` }),
|
|
7423
|
+
cloudId: z71.string().meta({ title: __camelCaseToHumanReadable34("cloudId"), description: `The ID of the cloud.` }),
|
|
7424
|
+
defaultFolderId: z71.string().meta({ title: __camelCaseToHumanReadable34("defaultFolderId"), description: `The default folder ID.` }),
|
|
7425
|
+
defaultZone: z71.string().meta({ title: __camelCaseToHumanReadable34("defaultZone"), description: `The default availability zone.` }),
|
|
7426
|
+
regionId: z71.string().optional().meta({ title: __camelCaseToHumanReadable34("regionId"), description: `The region ID.` }),
|
|
7427
|
+
serviceAccountId: z71.string().meta({ title: __camelCaseToHumanReadable34("serviceAccountId"), description: `The ID of the service account used for authentication.` })
|
|
7414
7428
|
}),
|
|
7415
7429
|
meta: {
|
|
7416
7430
|
color: "#0080ff",
|
|
@@ -7422,22 +7436,22 @@ var connectionEntity13 = defineEntity36({
|
|
|
7422
7436
|
var connection12 = defineUnit68({
|
|
7423
7437
|
type: "yandex.connection.v1",
|
|
7424
7438
|
args: {
|
|
7425
|
-
region: $
|
|
7426
|
-
|
|
7427
|
-
id:
|
|
7428
|
-
defaultZone:
|
|
7439
|
+
region: $addArgumentDescription58(z71.discriminatedUnion("id", [
|
|
7440
|
+
z71.object({
|
|
7441
|
+
id: z71.literal("ru-central1").meta({ title: __camelCaseToHumanReadable34("id"), description: `The ID of the region.` }),
|
|
7442
|
+
defaultZone: z71.enum(["ru-central1-a", "ru-central1-b", "ru-central1-d", "ru-central1-e"]).default("ru-central1-d").meta({ title: __camelCaseToHumanReadable34("defaultZone"), description: `The default availability zone in ru-central1 to place resources in.` })
|
|
7429
7443
|
}),
|
|
7430
|
-
|
|
7431
|
-
id:
|
|
7432
|
-
defaultZone:
|
|
7444
|
+
z71.object({
|
|
7445
|
+
id: z71.literal("kz1").meta({ title: __camelCaseToHumanReadable34("id"), description: `The ID of the region.` }),
|
|
7446
|
+
defaultZone: z71.enum(["kz1-a"]).default("kz1-a").meta({ title: __camelCaseToHumanReadable34("defaultZone"), description: `The default availability zone in kz1 to place resources in.` })
|
|
7433
7447
|
})
|
|
7434
7448
|
]).prefault({ id: "ru-central1" }), `The region to create connection for.
|
|
7435
7449
|
|
|
7436
7450
|
See [Regions](https://yandex.cloud/en/docs/overview/concepts/region) for details.`)
|
|
7437
7451
|
},
|
|
7438
7452
|
secrets: {
|
|
7439
|
-
authorizedKeyJson: $
|
|
7440
|
-
schema:
|
|
7453
|
+
authorizedKeyJson: $addArgumentDescription58({
|
|
7454
|
+
schema: z71.string().meta({ language: "json" }),
|
|
7441
7455
|
meta: {
|
|
7442
7456
|
title: "Authorized Key JSON"
|
|
7443
7457
|
}
|
|
@@ -7451,7 +7465,7 @@ var connection12 = defineUnit68({
|
|
|
7451
7465
|
...inputs
|
|
7452
7466
|
},
|
|
7453
7467
|
outputs: {
|
|
7454
|
-
connection: $
|
|
7468
|
+
connection: $addInputDescription58(connectionEntity13, `The Yandex Cloud connection.`)
|
|
7455
7469
|
},
|
|
7456
7470
|
meta: {
|
|
7457
7471
|
description: `The connection to a Yandex Cloud account.`,
|
|
@@ -7465,24 +7479,24 @@ var connection12 = defineUnit68({
|
|
|
7465
7479
|
path: "connection"
|
|
7466
7480
|
}
|
|
7467
7481
|
});
|
|
7468
|
-
var diskSchema2 =
|
|
7469
|
-
type:
|
|
7482
|
+
var diskSchema2 = z71.object({
|
|
7483
|
+
type: z71.enum(["network-ssd", "network-hdd", "network-ssd-nonreplicated", "network-ssd-io-m3"]).default("network-ssd").meta({ title: __camelCaseToHumanReadable34("type"), description: `The disk type.
|
|
7470
7484
|
|
|
7471
7485
|
- Network SSD (network-ssd): Fast network drive; SSD network block storage.
|
|
7472
7486
|
- Network HDD (network-hdd): Standard network drive; HDD network block storage.
|
|
7473
7487
|
- Non-replicated SSD (network-ssd-nonreplicated): Enhanced performance network drive without redundancy.
|
|
7474
7488
|
- Ultra high-speed network storage with three replicas (SSD) (network-ssd-io-m3): High-performance SSD offering the same speed as network-ssd-nonreplicated, plus redundancy.` }),
|
|
7475
|
-
size:
|
|
7489
|
+
size: z71.number().default(20).meta({ title: __camelCaseToHumanReadable34("size"), description: `The disk size in GB.
|
|
7476
7490
|
|
|
7477
7491
|
For \`network-ssd-nonreplicated\` and \`network-ssd-io-m3\` must be multiple of 93.` }),
|
|
7478
|
-
encrypted:
|
|
7492
|
+
encrypted: z71.boolean().default(true).meta({ title: __camelCaseToHumanReadable34("encrypted"), description: `Whether the disk should be encrypted by separate key in KMS.
|
|
7479
7493
|
|
|
7480
7494
|
If \`true\`, a new key will be created for the disk.` })
|
|
7481
7495
|
});
|
|
7482
7496
|
var diskEntity2 = defineEntity36({
|
|
7483
7497
|
type: "yandex.disk.v1",
|
|
7484
|
-
schema:
|
|
7485
|
-
id:
|
|
7498
|
+
schema: z71.object({
|
|
7499
|
+
id: z71.string().meta({ title: __camelCaseToHumanReadable34("id"), description: `The global ID of the disk.` })
|
|
7486
7500
|
}),
|
|
7487
7501
|
meta: {
|
|
7488
7502
|
title: "YC Disk",
|
|
@@ -7494,7 +7508,7 @@ var diskEntity2 = defineEntity36({
|
|
|
7494
7508
|
var disk2 = defineUnit68({
|
|
7495
7509
|
type: "yandex.disk.v1",
|
|
7496
7510
|
args: {
|
|
7497
|
-
diskName: $
|
|
7511
|
+
diskName: $addArgumentDescription58(z71.string().optional(), `The name of the disk in the folder.
|
|
7498
7512
|
If not specified, the name of the unit will be used.`),
|
|
7499
7513
|
...diskSchema2.shape
|
|
7500
7514
|
},
|
|
@@ -7502,7 +7516,7 @@ var disk2 = defineUnit68({
|
|
|
7502
7516
|
connection: connectionEntity13
|
|
7503
7517
|
},
|
|
7504
7518
|
outputs: {
|
|
7505
|
-
disk: $
|
|
7519
|
+
disk: $addInputDescription58(diskEntity2, `The disk entity.`)
|
|
7506
7520
|
},
|
|
7507
7521
|
meta: {
|
|
7508
7522
|
description: `The disk on Yandex Cloud.`,
|
|
@@ -7519,10 +7533,10 @@ var disk2 = defineUnit68({
|
|
|
7519
7533
|
});
|
|
7520
7534
|
var publicAddressEntity = defineEntity36({
|
|
7521
7535
|
type: "yandex.public-address.v1",
|
|
7522
|
-
schema:
|
|
7523
|
-
id:
|
|
7524
|
-
name:
|
|
7525
|
-
address:
|
|
7536
|
+
schema: z71.object({
|
|
7537
|
+
id: z71.string().meta({ title: __camelCaseToHumanReadable34("id"), description: `The global ID of the public address.` }),
|
|
7538
|
+
name: z71.string().meta({ title: __camelCaseToHumanReadable34("name"), description: `The name of the public address.` }),
|
|
7539
|
+
address: z71.string().meta({ title: __camelCaseToHumanReadable34("address"), description: `The IPv4 address value.` })
|
|
7526
7540
|
}),
|
|
7527
7541
|
meta: {
|
|
7528
7542
|
title: "YC Public Address",
|
|
@@ -7534,20 +7548,20 @@ var publicAddressEntity = defineEntity36({
|
|
|
7534
7548
|
var publicAddress = defineUnit68({
|
|
7535
7549
|
type: "yandex.public-address.v1",
|
|
7536
7550
|
args: {
|
|
7537
|
-
addressName: $
|
|
7551
|
+
addressName: $addArgumentDescription58(z71.string().optional(), `The name of the public address in the folder.
|
|
7538
7552
|
If not specified, the name of the unit will be used.`),
|
|
7539
|
-
cloudId: $
|
|
7553
|
+
cloudId: $addArgumentDescription58(z71.string().optional(), `The ID of the cloud to create the public address in.
|
|
7540
7554
|
If not specified, will use the cloud from the connection.`),
|
|
7541
|
-
folderId: $
|
|
7555
|
+
folderId: $addArgumentDescription58(z71.string().optional(), `The ID of the folder to create the public address in.
|
|
7542
7556
|
If not specified, will use the default folder from the connection.`),
|
|
7543
|
-
zone: $
|
|
7557
|
+
zone: $addArgumentDescription58(z71.string().optional(), `The availability zone to reserve the address in.
|
|
7544
7558
|
If not specified, will use the default zone from the connection.`)
|
|
7545
7559
|
},
|
|
7546
7560
|
inputs: {
|
|
7547
7561
|
connection: connectionEntity13
|
|
7548
7562
|
},
|
|
7549
7563
|
outputs: {
|
|
7550
|
-
publicAddress: $
|
|
7564
|
+
publicAddress: $addInputDescription58(publicAddressEntity, `The public address entity.`)
|
|
7551
7565
|
},
|
|
7552
7566
|
meta: {
|
|
7553
7567
|
description: `The reserved public IPv4 address on Yandex Cloud.`,
|
|
@@ -7564,8 +7578,8 @@ var publicAddress = defineUnit68({
|
|
|
7564
7578
|
});
|
|
7565
7579
|
var imageEntity3 = defineEntity36({
|
|
7566
7580
|
type: "yandex.image.v1",
|
|
7567
|
-
schema:
|
|
7568
|
-
id:
|
|
7581
|
+
schema: z71.object({
|
|
7582
|
+
id: z71.string().meta({ title: __camelCaseToHumanReadable34("id"), description: `The global ID of the image.` })
|
|
7569
7583
|
}),
|
|
7570
7584
|
meta: {
|
|
7571
7585
|
title: "YC Image",
|
|
@@ -7577,7 +7591,7 @@ var imageEntity3 = defineEntity36({
|
|
|
7577
7591
|
var existingImage3 = defineUnit68({
|
|
7578
7592
|
type: "yandex.existing-image.v1",
|
|
7579
7593
|
args: {
|
|
7580
|
-
id: $
|
|
7594
|
+
id: $addArgumentDescription58(z71.string(), `The ID of the image.
|
|
7581
7595
|
|
|
7582
7596
|
See [Yandex Cloud Marketplace Images](https://yandex.cloud/en/marketplace) to find available images and their IDs.
|
|
7583
7597
|
You can also use user images by specifying their IDs.`)
|
|
@@ -7586,7 +7600,7 @@ var existingImage3 = defineUnit68({
|
|
|
7586
7600
|
connection: connectionEntity13
|
|
7587
7601
|
},
|
|
7588
7602
|
outputs: {
|
|
7589
|
-
image: $
|
|
7603
|
+
image: $addInputDescription58(imageEntity3, `The image entity.`)
|
|
7590
7604
|
},
|
|
7591
7605
|
meta: {
|
|
7592
7606
|
description: `The existing image from Yandex Cloud Marketplace or user images.`,
|
|
@@ -7601,7 +7615,7 @@ var existingImage3 = defineUnit68({
|
|
|
7601
7615
|
path: "existing-image"
|
|
7602
7616
|
}
|
|
7603
7617
|
});
|
|
7604
|
-
var platformIdSchema =
|
|
7618
|
+
var platformIdSchema = z71.enum([
|
|
7605
7619
|
"standard-v1",
|
|
7606
7620
|
"standard-v2",
|
|
7607
7621
|
"standard-v3",
|
|
@@ -7618,57 +7632,57 @@ var platformIdSchema = z69.enum([
|
|
|
7618
7632
|
"gpu-platform-v4"
|
|
7619
7633
|
]);
|
|
7620
7634
|
var vmArgs2 = $args10({
|
|
7621
|
-
platformId: $
|
|
7635
|
+
platformId: $addArgumentDescription58(platformIdSchema.default("standard-v3"), `The platform ID for the instance.
|
|
7622
7636
|
|
|
7623
7637
|
See [Platforms](https://yandex.cloud/en/docs/compute/concepts/vm-platforms) for details.`),
|
|
7624
|
-
resources: $
|
|
7625
|
-
cores:
|
|
7626
|
-
memory:
|
|
7627
|
-
coreFraction:
|
|
7638
|
+
resources: $addArgumentDescription58(z71.object({
|
|
7639
|
+
cores: z71.number().default(2).meta({ title: __camelCaseToHumanReadable34("cores"), description: `The number of CPU cores.` }),
|
|
7640
|
+
memory: z71.number().default(4).meta({ title: __camelCaseToHumanReadable34("memory"), description: `The amount of memory in GB.` }),
|
|
7641
|
+
coreFraction: z71.number().min(10).max(100).default(100).meta({ title: __camelCaseToHumanReadable34("coreFraction"), description: `The guaranteed CPU core performance (10-100).` })
|
|
7628
7642
|
}).prefault({}), `The resources to allocate to the virtual machine.`),
|
|
7629
|
-
bootDisk: $
|
|
7630
|
-
network: $
|
|
7631
|
-
subnetId:
|
|
7643
|
+
bootDisk: $addArgumentDescription58(diskSchema2.prefault({}), `The boot disk configuration.`),
|
|
7644
|
+
network: $addArgumentDescription58(z71.object({
|
|
7645
|
+
subnetId: z71.string().optional().meta({ title: __camelCaseToHumanReadable34("subnetId"), description: `The subnet ID to connect to.
|
|
7632
7646
|
If not specified, will auto-discover the default subnet for the zone.` }),
|
|
7633
|
-
assignPublicIp:
|
|
7634
|
-
reservePublicIp:
|
|
7647
|
+
assignPublicIp: z71.boolean().default(true).meta({ title: __camelCaseToHumanReadable34("assignPublicIp"), description: `Whether to assign a public IP.` }),
|
|
7648
|
+
reservePublicIp: z71.boolean().default(true).meta({ title: __camelCaseToHumanReadable34("reservePublicIp"), description: `Whether to reserve the public IP permanently.
|
|
7635
7649
|
|
|
7636
7650
|
If not set, the public IP can be changed when the VM is stopped and started again.
|
|
7637
7651
|
|
|
7638
7652
|
Makes no sense if \`assignPublicIp\` is false.` })
|
|
7639
7653
|
}).prefault({}), `The network configuration.`),
|
|
7640
|
-
ssh: $
|
|
7641
|
-
preemptible: $
|
|
7654
|
+
ssh: $addArgumentDescription58(vmSshArgs, `The SSH configuration.`),
|
|
7655
|
+
preemptible: $addArgumentDescription58(z71.boolean().default(false), `Whether the virtual machine is preemptible.
|
|
7642
7656
|
|
|
7643
7657
|
See [Preemptible VMs](https://yandex.cloud/en/docs/compute/concepts/preemptible-vms) for details.`)
|
|
7644
7658
|
});
|
|
7645
|
-
var nlbArgs =
|
|
7646
|
-
enabled:
|
|
7647
|
-
name:
|
|
7659
|
+
var nlbArgs = z71.object({
|
|
7660
|
+
enabled: z71.boolean().default(false).meta({ title: __camelCaseToHumanReadable34("enabled"), description: `Whether to create a network load balancer for the instance group.` }),
|
|
7661
|
+
name: z71.string().optional().meta({ title: __camelCaseToHumanReadable34("name"), description: `The name of the network load balancer.
|
|
7648
7662
|
If not specified, the instance group name will be used.` }),
|
|
7649
|
-
listeners:
|
|
7663
|
+
listeners: z71.string().array().default([]).meta({ title: __camelCaseToHumanReadable34("listeners"), description: `The load-balanced ports to expose through the shared public address.
|
|
7650
7664
|
|
|
7651
7665
|
Each listener must use \`protocol:source=>target\` format, for example \`tcp:80=>8080\`.
|
|
7652
7666
|
|
|
7653
7667
|
If the source and target ports are the same, use \`protocol:port\` shorthand, for example \`tcp:80\`.
|
|
7654
7668
|
|
|
7655
7669
|
When SSH is enabled, the \`tcp:<ssh-port>\` listener is included automatically.` }),
|
|
7656
|
-
healthCheckProtocol:
|
|
7670
|
+
healthCheckProtocol: z71.enum(["tcp", "http"]).default("tcp").meta({ title: __camelCaseToHumanReadable34("healthCheckProtocol"), description: `The health check protocol.` }),
|
|
7657
7671
|
healthCheckPort: portSchema.default(22).meta({ title: __camelCaseToHumanReadable34("healthCheckPort"), description: `The port to use for health checks.` }),
|
|
7658
|
-
healthCheckPath:
|
|
7659
|
-
healthCheckInterval:
|
|
7660
|
-
healthCheckTimeout:
|
|
7661
|
-
healthCheckHealthyThreshold:
|
|
7662
|
-
healthCheckUnhealthyThreshold:
|
|
7672
|
+
healthCheckPath: z71.string().default("/").meta({ title: __camelCaseToHumanReadable34("healthCheckPath"), description: `The HTTP path to use for health checks.` }),
|
|
7673
|
+
healthCheckInterval: z71.number().int().min(1).max(60).default(2).meta({ title: __camelCaseToHumanReadable34("healthCheckInterval"), description: `The interval between health checks in seconds.` }),
|
|
7674
|
+
healthCheckTimeout: z71.number().int().min(1).max(60).default(1).meta({ title: __camelCaseToHumanReadable34("healthCheckTimeout"), description: `The timeout for health check responses in seconds.` }),
|
|
7675
|
+
healthCheckHealthyThreshold: z71.number().int().default(2).meta({ title: __camelCaseToHumanReadable34("healthCheckHealthyThreshold"), description: `The number of successful checks required to mark a target healthy.` }),
|
|
7676
|
+
healthCheckUnhealthyThreshold: z71.number().int().default(2).meta({ title: __camelCaseToHumanReadable34("healthCheckUnhealthyThreshold"), description: `The number of failed checks required to mark a target unhealthy.` })
|
|
7663
7677
|
});
|
|
7664
7678
|
var virtualMachine4 = defineUnit68({
|
|
7665
7679
|
type: "yandex.virtual-machine.v1",
|
|
7666
7680
|
args: {
|
|
7667
|
-
vmName: $
|
|
7681
|
+
vmName: $addArgumentDescription58(z71.string().optional(), `The name of the virtual machine.
|
|
7668
7682
|
If not specified, the name of the unit will be used.`),
|
|
7669
|
-
cloudId: $
|
|
7683
|
+
cloudId: $addArgumentDescription58(z71.string().optional(), `The ID of the cloud to create the VM in.
|
|
7670
7684
|
If not specified, will use the cloud from the connection.`),
|
|
7671
|
-
folderId: $
|
|
7685
|
+
folderId: $addArgumentDescription58(z71.string().optional(), `The ID of the folder to create the VM in.
|
|
7672
7686
|
If not specified, will use the default folder from the connection.`),
|
|
7673
7687
|
...vmArgs2
|
|
7674
7688
|
},
|
|
@@ -7678,11 +7692,11 @@ var virtualMachine4 = defineUnit68({
|
|
|
7678
7692
|
inputs: {
|
|
7679
7693
|
connection: connectionEntity13,
|
|
7680
7694
|
image: imageEntity3,
|
|
7681
|
-
publicAddress: $
|
|
7695
|
+
publicAddress: $addInputDescription58({
|
|
7682
7696
|
entity: publicAddressEntity,
|
|
7683
7697
|
required: false
|
|
7684
7698
|
}, `The reserved public address to attach to the virtual machine.`),
|
|
7685
|
-
sshProxyEndpoint: $
|
|
7699
|
+
sshProxyEndpoint: $addInputDescription58({
|
|
7686
7700
|
entity: l4EndpointEntity,
|
|
7687
7701
|
required: false
|
|
7688
7702
|
}, `The endpoint of the SSH jump host used to connect to the virtual machine.`),
|
|
@@ -7705,16 +7719,16 @@ var virtualMachine4 = defineUnit68({
|
|
|
7705
7719
|
var instanceGroup2 = defineUnit68({
|
|
7706
7720
|
type: "yandex.instance-group.v1",
|
|
7707
7721
|
args: {
|
|
7708
|
-
groupName: $
|
|
7722
|
+
groupName: $addArgumentDescription58(z71.string().optional(), `The name of the instance group.
|
|
7709
7723
|
If not specified, the name of the unit will be used.`),
|
|
7710
|
-
cloudId: $
|
|
7724
|
+
cloudId: $addArgumentDescription58(z71.string().optional(), `The ID of the cloud to create the instance group in.
|
|
7711
7725
|
If not specified, will use the cloud from the connection.`),
|
|
7712
|
-
folderId: $
|
|
7726
|
+
folderId: $addArgumentDescription58(z71.string().optional(), `The ID of the folder to create the instance group in.
|
|
7713
7727
|
If not specified, will use the default folder from the connection.`),
|
|
7714
|
-
size: $
|
|
7715
|
-
zones: $
|
|
7728
|
+
size: $addArgumentDescription58(z71.number().default(1), `The number of instances to create in the group.`),
|
|
7729
|
+
zones: $addArgumentDescription58(z71.string().array().optional(), `The zones to spread instances across.
|
|
7716
7730
|
If not specified, will use the default zone from the connection.`),
|
|
7717
|
-
nlb: $
|
|
7731
|
+
nlb: $addArgumentDescription58(nlbArgs.prefault({}), `The network load balancer configuration.`),
|
|
7718
7732
|
...vmArgs2
|
|
7719
7733
|
},
|
|
7720
7734
|
secrets: {
|
|
@@ -7723,17 +7737,17 @@ var instanceGroup2 = defineUnit68({
|
|
|
7723
7737
|
inputs: {
|
|
7724
7738
|
connection: connectionEntity13,
|
|
7725
7739
|
image: imageEntity3,
|
|
7726
|
-
publicAddresses: $
|
|
7740
|
+
publicAddresses: $addInputDescription58({
|
|
7727
7741
|
entity: publicAddressEntity,
|
|
7728
7742
|
required: false,
|
|
7729
7743
|
multiple: true
|
|
7730
7744
|
}, `The public addresses to attach to instances.
|
|
7731
7745
|
Addresses are sorted by name and assigned to instances in that order.`),
|
|
7732
|
-
nlbPublicAddress: $
|
|
7746
|
+
nlbPublicAddress: $addInputDescription58({
|
|
7733
7747
|
entity: publicAddressEntity,
|
|
7734
7748
|
required: false
|
|
7735
7749
|
}, `The reserved public address to use for the network load balancer.`),
|
|
7736
|
-
sshProxyEndpoint: $
|
|
7750
|
+
sshProxyEndpoint: $addInputDescription58({
|
|
7737
7751
|
entity: l4EndpointEntity,
|
|
7738
7752
|
required: false
|
|
7739
7753
|
}, `The endpoint of the SSH jump host used to connect to the instances.`),
|