@highstate/library 0.9.1 → 0.9.3
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.manifest.json +1 -1
- package/dist/index.js +7 -3
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
- package/src/talos.ts +4 -2
package/dist/index.js
CHANGED
@@ -836,15 +836,19 @@ var cluster = defineUnit6({
|
|
836
836
|
/**
|
837
837
|
* Allow scheduling workloads on the master nodes.
|
838
838
|
*
|
839
|
-
*
|
839
|
+
* If no workers are specified, this option is ignored and the master nodes are used as workers.
|
840
|
+
*
|
841
|
+
* By default, this option is set to false.
|
840
842
|
*
|
841
843
|
* @schema
|
842
844
|
*/
|
843
845
|
scheduleOnMasters: {
|
844
|
-
...Type6.Boolean(),
|
846
|
+
...Type6.Default(Type6.Boolean(), false),
|
845
847
|
description: `Allow scheduling workloads on the master nodes.
|
846
848
|
|
847
|
-
|
849
|
+
If no workers are specified, this option is ignored and the master nodes are used as workers.
|
850
|
+
|
851
|
+
By default, this option is set to false.`
|
848
852
|
},
|
849
853
|
/**
|
850
854
|
* The endpoint of the cluster.
|
package/dist/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../src/common.ts","../src/ssh.ts","../src/proxmox.ts","../src/k8s.ts","../src/dns.ts","../src/talos.ts","../src/wireguard.ts","../src/apps/index.ts","../src/apps/mariadb.ts","../src/restic.ts","../src/apps/postgresql.ts","../src/apps/vaultwarden.ts","../src/apps/traefik.ts","../src/apps/kubernetes-dashboard.ts","../src/apps/grocy.ts","../src/apps/maybe.ts","../src/apps/mongodb.ts","../src/apps/deployment.ts","../src/apps/syncthing.ts","../src/apps/code-server.ts","../src/cloudflare.ts","../src/k3s.ts","../src/mullvad.ts","../src/timeweb.ts","../src/nixos.ts","../src/sops.ts","../src/obfuscators/index.ts","../src/obfuscators/phantun.ts","../src/obfuscators/shared.ts"],"sourcesContent":["import { defineEntity, defineUnit, Type, type Static } from \"@highstate/contract\"\nimport { credentialsSchema, keyPairEntity } from \"./ssh\"\n\nexport const serverEntity = defineEntity({\n type: \"common.server\",\n\n schema: Type.Object({\n endpoint: Type.String(),\n hostname: Type.String(),\n sshCredentials: Type.Optional(credentialsSchema),\n }),\n\n meta: {\n color: \"#009688\",\n },\n})\n\nexport const l3EndpointEntity = defineEntity({\n type: \"common.l3-endpoint\",\n\n schema: Type.Object({\n endpoint: Type.String(),\n }),\n\n meta: {\n color: \"#1B5E20\",\n description: \"The L3 endpoint for some service. May be a domain name or an IP address.\",\n },\n})\n\nexport const l4EndpointEntity = defineEntity({\n type: \"common.l4-endpoint\",\n\n schema: Type.Object({\n endpoint: Type.String(),\n port: Type.Number(),\n }),\n\n meta: {\n color: \"#F57F17\",\n description: \"The L4 endpoint for some service. Extends an L3 endpoint with a port.\",\n },\n})\n\nexport const existingServer = defineUnit({\n type: \"common.existing-server\",\n\n args: {\n endpoint: Type.String(),\n sshUser: Type.Optional(Type.String({ default: \"root\" })),\n sshPort: Type.Optional(Type.Number({ default: 22 })),\n },\n\n secrets: {\n sshPassword: Type.Optional(Type.String()),\n sshPrivateKey: Type.Optional(Type.String()),\n },\n\n inputs: {\n sshKeyPair: {\n entity: keyPairEntity,\n required: false,\n },\n },\n\n outputs: {\n server: serverEntity,\n },\n\n meta: {\n displayName: \"Existing Server\",\n description: \"An existing server that can be used in the configuration.\",\n primaryIcon: \"mdi:server\",\n defaultNamePrefix: \"server\",\n },\n\n source: {\n package: \"@highstate/common\",\n path: \"existing-server\",\n },\n})\n\nexport const script = defineUnit({\n type: \"common.script\",\n\n args: {\n script: Type.String({ language: \"shell\" }),\n updateScript: Type.Optional(Type.String({ language: \"shell\" })),\n deleteScript: Type.Optional(Type.String({ language: \"shell\" })),\n },\n\n inputs: {\n server: serverEntity,\n },\n\n outputs: {\n server: serverEntity,\n },\n\n meta: {\n displayName: \"Shell Script\",\n description: \"Run a shell script on the server.\",\n primaryIcon: \"mdi:bash\",\n },\n\n source: {\n package: \"@highstate/common\",\n path: \"script\",\n },\n})\n\nexport const fileMetaEntity = defineEntity({\n type: \"common.file-meta\",\n\n schema: Type.Object({\n name: Type.String(),\n size: Type.Number(),\n isBinary: Type.Optional(Type.Boolean()),\n isExecutable: Type.Optional(Type.Boolean()),\n }),\n\n meta: {\n color: \"#FF5722\",\n description: \"Metadata for a file.\",\n },\n})\n\nexport const fileContentEntity = defineEntity({\n type: \"common.file-content\",\n\n schema: Type.Union([\n Type.Object({\n type: Type.Literal(\"inline\"),\n content: Type.String(),\n }),\n Type.Object({\n type: Type.Literal(\"remote\"),\n url: Type.String(),\n }),\n ]),\n\n meta: {\n color: \"#FF5722\",\n description: \"The content of a file.\",\n },\n})\n\nexport const fileEntity = defineEntity({\n type: \"common.file\",\n\n schema: Type.Object({\n meta: fileMetaEntity.schema,\n content: fileContentEntity.schema,\n }),\n\n meta: {\n color: \"#FF5722\",\n },\n})\n\nexport type Server = Static<typeof serverEntity.schema>\nexport type L3Endpoint = Static<typeof l3EndpointEntity.schema>\nexport type L4Endpoint = Static<typeof l4EndpointEntity.schema>\n\nexport type File = Static<typeof fileEntity.schema>\nexport type FileMeta = Static<typeof fileMetaEntity.schema>\nexport type FileContent = Static<typeof fileContentEntity.schema>\n","import { defineEntity, defineUnit, Type, type Static } from \"@highstate/contract\"\n\nexport const keyTypeSchema = Type.Union([\n //\n Type.Literal(\"rsa\"),\n Type.Literal(\"ed25519\"),\n])\n\nexport const keyPairEntity = defineEntity({\n type: \"ssh.key-pair\",\n\n schema: Type.Object({\n type: keyTypeSchema,\n privateKey: Type.String(),\n publicKey: Type.String(),\n }),\n\n meta: {\n color: \"#2b5797\",\n },\n})\n\nexport const credentialsSchema = Type.Object({\n endpoint: Type.Optional(Type.String()),\n user: Type.Optional(Type.String()),\n port: Type.Optional(Type.Number()),\n password: Type.Optional(Type.String()),\n privateKey: Type.Optional(Type.String()),\n})\n\nexport const keyPair = defineUnit({\n type: \"ssh.key-pair\",\n\n secrets: {\n privateKey: Type.Optional(Type.String()),\n },\n\n outputs: {\n keyPair: keyPairEntity,\n },\n\n meta: {\n displayName: \"SSH Key Pair\",\n description: \"Holds the ED25519 SSH key pair and generates the private key if not provided.\",\n category: \"ssh\",\n primaryIcon: \"charm:key\",\n primaryIconColor: \"#ffffff\",\n secondaryIcon: \"mdi:lock\",\n secondaryIconColor: \"#ffffff\",\n },\n\n source: {\n package: \"@highstate/common\",\n path: \"ssh/key-pair\",\n },\n})\n\nexport type KeyType = Static<typeof keyTypeSchema>\nexport type Credentials = Static<typeof credentialsSchema>\nexport type KeyPair = Static<typeof keyPairEntity.schema>\n","import { defineEntity, defineUnit, Type } from \"@highstate/contract\"\nimport { serverEntity } from \"./common\"\nimport { keyPairEntity } from \"./ssh\"\n\nexport const clusterEntity = defineEntity({\n type: \"proxmox.cluster\",\n\n schema: Type.Object({\n endpoint: Type.String(),\n insecure: Type.Optional(Type.Boolean()),\n username: Type.Optional(Type.String()),\n\n defaultNodeName: Type.String(),\n defaultDatastoreId: Type.String(),\n\n password: Type.Optional(Type.String()),\n apiToken: Type.Optional(Type.String()),\n }),\n\n meta: {\n color: \"#e56901\",\n },\n})\n\nexport const imageEntity = defineEntity({\n type: \"proxmox.image\",\n\n schema: Type.Object({\n id: Type.String(),\n }),\n\n meta: {\n color: \"#e56901\",\n },\n})\n\nexport const connection = defineUnit({\n type: \"proxmox.connection\",\n\n args: {\n endpoint: Type.String(),\n insecure: Type.Optional(Type.Boolean()),\n username: Type.Optional(Type.String()),\n\n defaultNodeName: Type.Optional(Type.String()),\n defaultDatastoreId: Type.Optional(Type.String()),\n },\n\n secrets: {\n password: Type.Optional(Type.String()),\n apiToken: Type.Optional(Type.String()),\n },\n\n outputs: {\n proxmoxCluster: clusterEntity,\n },\n\n meta: {\n displayName: \"Proxmox Connection\",\n description: \"The connection to an existing Proxmox cluster.\",\n category: \"Proxmox\",\n primaryIcon: \"simple-icons:proxmox\",\n primaryIconColor: \"#e56901\",\n secondaryIcon: \"codicon:vm\",\n },\n\n source: {\n package: \"@highstate/proxmox\",\n path: \"connection\",\n },\n})\n\nexport const image = defineUnit({\n type: \"proxmox.image\",\n\n args: {\n url: Type.String(),\n nodeName: Type.Optional(Type.String()),\n sha256: Type.Optional(Type.String()),\n datastoreId: Type.Optional(Type.String()),\n },\n\n inputs: {\n proxmoxCluster: clusterEntity,\n },\n\n outputs: {\n image: imageEntity,\n },\n\n meta: {\n displayName: \"Proxmox Image\",\n description: \"The image to upload to a Proxmox cluster.\",\n category: \"Proxmox\",\n primaryIcon: \"simple-icons:proxmox\",\n primaryIconColor: \"#e56901\",\n secondaryIcon: \"mage:compact-disk-fill\",\n },\n\n source: {\n package: \"@highstate/proxmox\",\n path: \"image\",\n },\n})\n\nexport const existingImage = defineUnit({\n type: \"proxmox.existing-image\",\n\n args: {\n id: Type.String(),\n },\n\n outputs: {\n image: imageEntity,\n },\n\n meta: {\n displayName: \"Proxmox Existing Image\",\n description: \"The existing image on a Proxmox cluster.\",\n category: \"Proxmox\",\n primaryIcon: \"simple-icons:proxmox\",\n primaryIconColor: \"#e56901\",\n secondaryIcon: \"mage:compact-disk-fill\",\n },\n\n source: {\n package: \"@highstate/proxmox\",\n path: \"existing-image\",\n },\n})\n\nexport const virtualMachine = defineUnit({\n type: \"proxmox.virtual-machine\",\n\n args: {\n nodeName: Type.Optional(Type.String()),\n\n cpuType: Type.Optional(Type.String({ default: \"host\" })),\n cores: Type.Optional(Type.Number({ default: 1 })),\n sockets: Type.Optional(Type.Number({ default: 1 })),\n memory: Type.Optional(Type.Number({ default: 512 })),\n\n ipv4: Type.Optional(Type.String()),\n ipv4Gateway: Type.Optional(Type.String()),\n dns: Type.Optional(Type.Array(Type.String())),\n\n datastoreId: Type.Optional(Type.String()),\n diskSize: Type.Optional(Type.Number({ default: 8 })),\n bridge: Type.Optional(Type.String({ default: \"vmbr0\" })),\n\n sshPort: Type.Optional(Type.Number({ default: 22 })),\n sshUser: Type.Optional(Type.String({ default: \"root\" })),\n\n waitForAgent: Type.Optional(Type.Boolean({ default: true })),\n },\n\n inputs: {\n proxmoxCluster: clusterEntity,\n image: imageEntity,\n\n sshKeyPair: {\n entity: keyPairEntity,\n required: false,\n },\n },\n\n secrets: {\n sshPassword: Type.Optional(Type.String()),\n },\n\n outputs: {\n server: serverEntity,\n },\n\n meta: {\n displayName: \"Proxmox Virtual Machine\",\n description: \"The virtual machine on a Proxmox cluster.\",\n category: \"Proxmox\",\n primaryIcon: \"simple-icons:proxmox\",\n primaryIconColor: \"#e56901\",\n secondaryIcon: \"codicon:vm\",\n },\n\n source: {\n package: \"@highstate/proxmox\",\n path: \"virtual-machine\",\n },\n})\n","import { defineEntity, defineUnit, Type, type Static } from \"@highstate/contract\"\nimport { Literal } from \"@sinclair/typebox\"\nimport { providerEntity } from \"./dns\"\n\nexport const tunDevicePolicySchema = Type.Union([\n Type.Object({\n type: Literal(\"host\"),\n }),\n Type.Object({\n type: Literal(\"plugin\"),\n resourceName: Type.String(),\n resourceValue: Type.String(),\n }),\n])\n\nexport const clusterInfoSchema = Type.Object({\n id: Type.String(),\n name: Type.String(),\n cni: Type.Optional(Type.String()),\n externalIps: Type.Array(Type.String()),\n fqdn: Type.Optional(Type.String()),\n kubeApiServerIp: Type.Optional(Type.String()),\n kubeApiServerPort: Type.Optional(Type.Number()),\n\n /**\n * Specifies the policy for using the tun device inside containers.\n *\n * If not provided, the default policy is `host` which assumes just mounting /dev/net/tun from the host.\n *\n * For some runtimes, like Talos's one, the /dev/net/tun device is not available in the host, so the plugin policy should be used.\n */\n tunDevicePolicy: Type.Optional(tunDevicePolicySchema),\n})\n\nexport const serviceTypeSchema = Type.StringEnum([\"NodePort\", \"LoadBalancer\", \"ClusterIP\"])\n\nexport const metadataSchema = Type.Object({\n namespace: Type.Optional(Type.String()),\n name: Type.String(),\n labels: Type.Optional(Type.Record(Type.String(), Type.String())),\n annotations: Type.Optional(Type.Record(Type.String(), Type.String())),\n})\n\nexport const servicePortSchema = Type.Object({\n name: Type.Optional(Type.String()),\n port: Type.Optional(Type.Number()),\n targetPort: Type.Optional(Type.Union([Type.Number(), Type.String()])),\n protocol: Type.Optional(Type.String()),\n})\n\nexport const serviceSpecSchema = Type.Object({\n type: Type.Optional(Type.String()),\n selector: Type.Record(Type.String(), Type.String()),\n ports: Type.Array(servicePortSchema),\n clusterIP: Type.Optional(Type.String()),\n clusterIPs: Type.Optional(Type.Array(Type.String())),\n externalIPs: Type.Optional(Type.Array(Type.String())),\n})\n\nexport const serviceEntity = defineEntity({\n type: \"k8s.service\",\n\n schema: Type.Object({\n type: Type.Literal(\"k8s.service\"),\n clusterInfo: clusterInfoSchema,\n metadata: metadataSchema,\n spec: serviceSpecSchema,\n }),\n\n meta: {\n color: \"#2196F3\",\n },\n})\n\nexport const clusterEntity = defineEntity({\n type: \"k8s.cluster\",\n\n schema: Type.Object({\n info: clusterInfoSchema,\n kubeconfig: Type.String(),\n }),\n\n meta: {\n color: \"#2196F3\",\n },\n})\n\nexport const internalIpsPolicySchema = Type.StringEnum([\"always\", \"public\", \"never\"])\n\nexport const sharedClusterArgs = {\n /**\n * The list of external IPs of the cluster nodes allowed to be used for external access.\n *\n * If not provided, will be automatically detected by querying the cluster nodes.\n *\n * @schema\n */\n externalIps: {\n ...Type.Optional(Type.Array(Type.String())),\n description: `The list of external IPs of the cluster nodes allowed to be used for external access.\n\n If not provided, will be automatically detected by querying the cluster nodes.`,\n},\n\n /**\n * The policy for using internal IPs of the nodes as external IPs.\n *\n * - `always`: always use internal IPs as external IPs;\n * - `public`: use internal IPs as external IPs only if they are (theoretically) routable from the public internet **(default)**;\n * - `never`: never use internal IPs as external IPs.\n *\n * @schema\n */\n internalIpsPolicy: {\n ...{ ...internalIpsPolicySchema, default: \"public\" },\n description: `The policy for using internal IPs of the nodes as external IPs.\n\n - \\`always\\`: always use internal IPs as external IPs;\n - \\`public\\`: use internal IPs as external IPs only if they are (theoretically) routable from the public internet **(default)**;\n - \\`never\\`: never use internal IPs as external IPs.`,\n},\n\n /**\n * The FQDN to register the cluster nodes with.\n *\n * If provided and `registerFqdn` is set to `true`, the corresponding DNS provider must be provided to set up the DNS records.\n *\n * @schema\n */\n fqdn: {\n ...Type.Optional(Type.String()),\n description: `The FQDN to register the cluster nodes with.\n\n If provided and \\`registerFqdn\\` is set to \\`true\\`, the corresponding DNS provider must be provided to set up the DNS records.`,\n},\n\n /**\n * Whether to register the cluster nodes with the provided FQDN.\n *\n * By default, `true`.\n *\n * @schema\n */\n registerFqdn: {\n ...Type.Boolean({ default: true }),\n description: `Whether to register the cluster nodes with the provided FQDN.\n\n By default, \\`true\\`.`,\n},\n}\n\nexport const existingCluster = defineUnit({\n type: \"k8s.existing-cluster\",\n\n args: {\n ...sharedClusterArgs,\n\n /**\n * The policy for using the tun device inside containers.\n *\n * If not provided, the default policy is `host` which assumes just mounting /dev/net/tun from the host.\n *\n * For some runtimes, like Talos's one, the /dev/net/tun device is not available in the host, so the plugin policy should be used.\n *\n * @schema\n */\n tunDevicePolicy: {\n ...Type.Optional(tunDevicePolicySchema),\n description: `The policy for using the tun device inside containers.\n\n If not provided, the default policy is \\`host\\` which assumes just mounting /dev/net/tun from the host.\n\n For some runtimes, like Talos's one, the /dev/net/tun device is not available in the host, so the plugin policy should be used.`,\n},\n },\n\n secrets: {\n /**\n * The kubeconfig of the cluster to use for connecting to the cluster.\n *\n * Will be available for all components using `cluster` output of this unit.\n *\n * @schema\n */\n kubeconfig: {\n ...Type.Record(Type.String(), Type.Any()),\n description: `The kubeconfig of the cluster to use for connecting to the cluster.\n\n Will be available for all components using \\`cluster\\` output of this unit.`,\n},\n },\n\n outputs: {\n cluster: clusterEntity,\n },\n\n meta: {\n displayName: \"Existing Cluster\",\n description: \"An existing Kubernetes cluster.\",\n primaryIcon: \"mdi:kubernetes\",\n },\n\n source: {\n package: \"@highstate/k8s\",\n path: \"units/existing-cluster\",\n },\n})\n\nexport const gatewayEntity = defineEntity({\n type: \"k8s.gateway\",\n\n schema: Type.Object({\n clusterInfo: clusterInfoSchema,\n gatewayClassName: Type.String(),\n httpListenerPort: Type.Number(),\n httpsListenerPort: Type.Number(),\n ip: Type.String(),\n service: Type.Optional(serviceEntity.schema),\n }),\n\n meta: {\n color: \"#4CAF50\",\n },\n})\n\nexport const tlsIssuerEntity = defineEntity({\n type: \"k8s.tls-issuer\",\n\n schema: Type.Object({\n clusterInfo: clusterInfoSchema,\n clusterIssuerName: Type.String(),\n }),\n\n meta: {\n color: \"#f06292\",\n },\n})\n\nexport const accessPointEntity = defineEntity({\n type: \"k8s.access-point\",\n\n schema: Type.Object({\n gateway: gatewayEntity.schema,\n tlsIssuer: tlsIssuerEntity.schema,\n dnsProviders: Type.Array(providerEntity.schema),\n }),\n\n meta: {\n color: \"#F57F17\",\n },\n})\n\nexport const accessPoint = defineUnit({\n type: \"k8s.access-point\",\n\n inputs: {\n gateway: gatewayEntity,\n tlsIssuer: tlsIssuerEntity,\n dnsProviders: {\n entity: providerEntity,\n multiple: true,\n },\n },\n\n outputs: {\n accessPoint: accessPointEntity,\n },\n\n meta: {\n displayName: \"Access Point\",\n description: \"An access point which can be used to connect to services.\",\n primaryIcon: \"mdi:access-point\",\n },\n\n source: {\n package: \"@highstate/k8s\",\n path: \"units/access-point\",\n },\n})\n\nexport const certManager = defineUnit({\n type: \"k8s.cert-manager\",\n\n inputs: {\n k8sCluster: clusterEntity,\n },\n\n outputs: {\n k8sCluster: clusterEntity,\n },\n\n meta: {\n displayName: \"Cert Manager\",\n description: \"A certificate manager for managing TLS certificates.\",\n primaryIcon: \"simple-icons:letsencrypt\",\n },\n\n source: {\n package: \"@highstate/k8s\",\n path: \"units/cert-manager\",\n },\n})\n\nexport const dns01TlsIssuer = defineUnit({\n type: \"k8s.dns01-issuer\",\n\n args: {\n /**\n * The top-level domains to filter the DNS01 challenge for.\n *\n * If not provided, will use all domains passed to the DNS providers.\n *\n * @schema\n */\n domains: {\n ...Type.Optional(Type.Array(Type.String())),\n description: `The top-level domains to filter the DNS01 challenge for.\n\n If not provided, will use all domains passed to the DNS providers.`,\n},\n },\n\n inputs: {\n k8sCluster: clusterEntity,\n dnsProviders: {\n entity: providerEntity,\n multiple: true,\n },\n },\n\n outputs: {\n tlsIssuer: tlsIssuerEntity,\n },\n\n meta: {\n displayName: \"DNS01 Issuer\",\n description: \"A TLS issuer for issuing certificate using DNS01 challenge.\",\n primaryIcon: \"mdi:certificate\",\n },\n\n source: {\n package: \"@highstate/k8s\",\n path: \"units/dns01-issuer\",\n },\n})\n\nexport const containerSchema = Type.Object({\n name: Type.String(),\n image: Type.String(),\n})\n\nexport const labelSelectorSchema = Type.Object({\n matchLabels: Type.Record(Type.String(), Type.String()),\n})\n\nexport const deploymentSpecSchema = Type.Object({\n replicas: Type.Number(),\n selector: labelSelectorSchema,\n template: Type.Object({\n metadata: metadataSchema,\n spec: Type.Object({\n containers: Type.Array(containerSchema),\n }),\n }),\n})\n\nexport const deploymentEntity = defineEntity({\n type: \"k8s.deployment\",\n\n schema: Type.Object({\n type: Type.Literal(\"k8s.deployment\"),\n clusterInfo: clusterInfoSchema,\n metadata: metadataSchema,\n\n service: Type.Optional(serviceEntity.schema),\n }),\n\n meta: {\n color: \"#4CAF50\",\n },\n})\n\nexport const statefulSetEntity = defineEntity({\n type: \"k8s.stateful-set\",\n\n schema: Type.Object({\n type: Type.Literal(\"k8s.stateful-set\"),\n clusterInfo: clusterInfoSchema,\n metadata: metadataSchema,\n\n service: Type.Optional(serviceEntity.schema),\n }),\n\n meta: {\n color: \"#FFC107\",\n },\n})\n\nexport const persistentVolumeClaimEntity = defineEntity({\n type: \"k8s.persistent-volume-claim\",\n\n schema: Type.Object({\n type: Type.Literal(\"k8s.persistent-volume-claim\"),\n clusterInfo: clusterInfoSchema,\n metadata: metadataSchema,\n }),\n\n meta: {\n color: \"#FFC107\",\n },\n})\n\nexport const interfaceEntity = defineEntity({\n type: \"k8s.interface\",\n\n schema: Type.Object({\n name: Type.String(),\n deployment: deploymentEntity.schema,\n }),\n\n meta: {\n color: \"#2196F3\",\n description:\n \"The interface in a network space of pod kernel which can accept or transmit packets.\",\n },\n})\n\nexport const gatewayApi = defineUnit({\n type: \"k8s.gateway-api\",\n\n inputs: {\n k8sCluster: clusterEntity,\n },\n\n outputs: {\n k8sCluster: clusterEntity,\n },\n\n meta: {\n displayName: \"Gateway API\",\n description: \"Installs the Gateway API CRDs to the cluster.\",\n primaryIcon: \"mdi:kubernetes\",\n primaryIconColor: \"#4CAF50\",\n },\n\n source: {\n package: \"@highstate/k8s\",\n path: \"units/gateway-api\",\n },\n})\n\nexport type ClusterInfo = Static<typeof clusterInfoSchema>\nexport type Cluster = Static<typeof clusterEntity.schema>\n\nexport type Gateway = Static<typeof gatewayEntity.schema>\nexport type TlsIssuer = Static<typeof tlsIssuerEntity.schema>\nexport type AccessPoint = Static<typeof accessPointEntity.schema>\n\nexport type Metadata = Static<typeof metadataSchema>\n\nexport type ServiceType = Static<typeof serviceTypeSchema>\nexport type ServicePort = Static<typeof servicePortSchema>\nexport type ServiceSpec = Static<typeof serviceSpecSchema>\nexport type Service = Static<typeof serviceEntity.schema>\n\nexport type Container = Static<typeof containerSchema>\nexport type DeploymentSpec = Static<typeof deploymentSpecSchema>\nexport type Deployment = Static<typeof deploymentEntity.schema>\n\nexport type PersistentVolumeClaim = Static<typeof persistentVolumeClaimEntity.schema>\nexport type StatefulSet = Static<typeof statefulSetEntity.schema>\n\nexport type Interface = Static<typeof interfaceEntity.schema>\nexport type InternalIpsPolicy = Static<typeof internalIpsPolicySchema>\n","import { defineEntity, defineUnit, Type, type Static } from \"@highstate/contract\"\n\nexport const providerEntity = defineEntity({\n type: \"dns.provider\",\n\n schema: Type.Object({\n name: Type.String(),\n type: Type.String(),\n data: Type.Record(Type.String(), Type.Unknown()),\n domain: Type.String(),\n }),\n\n meta: {\n color: \"#FF5722\",\n },\n})\n\nexport const record = defineUnit({\n type: \"common.dns-record\",\n\n args: {\n name: Type.String(),\n type: Type.String(),\n value: Type.String(),\n ttl: Type.Optional(Type.Number()),\n },\n\n inputs: {\n dnsProvider: providerEntity,\n },\n\n meta: {\n displayName: \"DNS Record\",\n description: \"A DNS record to create.\",\n primaryIcon: \"mdi:server\",\n defaultNamePrefix: \"record\",\n },\n\n source: {\n package: \"@highstate/common\",\n path: \"dns/record\",\n },\n})\n\nexport type Provider = Static<typeof providerEntity.schema>\n","import { defineEntity, defineUnit, Type } from \"@highstate/contract\"\nimport { serverEntity } from \"./common\"\nimport { clusterEntity as k8sClusterEntity } from \"./k8s\"\n\nexport const clusterEntity = defineEntity({\n type: \"talos.cluster\",\n\n schema: Type.Object({\n clientConfiguration: Type.String(),\n machineSecrets: Type.String(),\n }),\n\n meta: {\n color: \"#2d2d2d\",\n },\n})\n\nexport const cniSchema = Type.StringEnum([\"none\", \"cilium\", \"flannel\"])\nexport const csiSchema = Type.StringEnum([\"none\", \"local-path-provisioner\"])\n\nexport const cluster = defineUnit({\n type: \"talos.cluster\",\n\n args: {\n /**\n * Allow scheduling workloads on the master nodes.\n *\n * By default, \"true\" if no worker nodes are provided.\n *\n * @schema\n */\n scheduleOnMasters: {\n ...Type.Boolean(),\n description: `Allow scheduling workloads on the master nodes.\n\n By default, \"true\" if no worker nodes are provided.`,\n},\n\n /**\n * The endpoint of the cluster.\n *\n * By default, the first master node's endpoint is used.\n *\n * @schema\n */\n endpoint: {\n ...Type.Optional(Type.String()),\n description: `The endpoint of the cluster.\n\n By default, the first master node's endpoint is used.`,\n},\n\n /**\n * The name of the cluster.\n *\n * By default, the name of the instance is used.\n *\n * @schema\n */\n clusterName: {\n ...Type.Optional(Type.String()),\n description: `The name of the cluster.\n\n By default, the name of the instance is used.`,\n},\n\n /**\n * The CNI plugin to use.\n *\n * The following options are available:\n * - \"cilium\" (default)\n * - \"flannel\" (built-in in Talos)\n * - \"none\" (disable CNI, must be installed manually)\n *\n * The \"cilium\" CNI plugin is recommended to cover advanced network policies like FQDNs.\n *\n * @schema\n */\n cni: {\n ...Type.Default(cniSchema, \"cilium\"),\n description: `The CNI plugin to use.\n\n The following options are available:\n - \"cilium\" (default)\n - \"flannel\" (built-in in Talos)\n - \"none\" (disable CNI, must be installed manually)\n\n The \"cilium\" CNI plugin is recommended to cover advanced network policies like FQDNs.`,\n},\n\n /**\n * The CSI plugin to use.\n *\n * The following options are available:\n * - \"local-path-provisioner\" (default)\n * - \"none\" (disable CSI, must be installed manually if needed)\n *\n * @schema\n */\n csi: {\n ...Type.Default(csiSchema, \"local-path-provisioner\"),\n description: `The CSI plugin to use.\n\n The following options are available:\n - \"local-path-provisioner\" (default)\n - \"none\" (disable CSI, must be installed manually if needed)`,\n},\n\n /**\n * The shared configuration patch.\n * It will be applied to all nodes.\n *\n * @schema\n */\n sharedConfigPatch: {\n ...Type.Optional(Type.Record(Type.String(), Type.Any())),\n description: `The shared configuration patch.\n It will be applied to all nodes.`,\n},\n\n /**\n * The master configuration patch.\n * It will be applied to all master nodes.\n *\n * @schema\n */\n masterConfigPatch: {\n ...Type.Optional(Type.Record(Type.String(), Type.Any())),\n description: `The master configuration patch.\n It will be applied to all master nodes.`,\n},\n\n /**\n * The worker configuration patch.\n * It will be applied to all worker nodes.\n *\n * @schema\n */\n workerConfigPatch: {\n ...Type.Optional(Type.Record(Type.String(), Type.Any())),\n description: `The worker configuration patch.\n It will be applied to all worker nodes.`,\n},\n },\n\n inputs: {\n masters: {\n entity: serverEntity,\n multiple: true,\n },\n workers: {\n entity: serverEntity,\n multiple: true,\n required: false,\n },\n },\n\n outputs: {\n k8sCluster: k8sClusterEntity,\n talosCluster: clusterEntity,\n },\n\n meta: {\n displayName: \"Talos Cluster\",\n description: \"A Kubernetes cluster managed by Talos.\",\n category: \"Talos\",\n color: \"#2d2d2d\",\n primaryIcon: \"simple-icons:talos\",\n secondaryIcon: \"devicon:kubernetes\",\n },\n\n source: {\n package: \"@highstate/talos\",\n path: \"cluster\",\n },\n})\n","import { defineEntity, defineUnit, Type, type Static } from \"@highstate/contract\"\nimport {\n clusterEntity,\n deploymentEntity,\n interfaceEntity,\n serviceEntity,\n serviceTypeSchema,\n statefulSetEntity,\n} from \"./k8s\"\nimport { providerEntity } from \"./dns\"\nimport { l4EndpointEntity } from \"./common\"\n\nexport const backendSchema = Type.StringEnum([\"wireguard\", \"amneziawg\"])\nexport const presharedKeyModeSchema = Type.StringEnum([\"none\", \"global\", \"secure\"])\n\nexport type Backend = Static<typeof backendSchema>\nexport type PresharedKeyMode = Static<typeof presharedKeyModeSchema>\n\nexport const networkEntity = defineEntity({\n type: \"wireguard.network\",\n\n schema: Type.Object({\n backend: Type.Optional(backendSchema),\n presharedKeyMode: presharedKeyModeSchema,\n globalPresharedKey: Type.Optional(Type.String()),\n ipv6: Type.Optional(Type.Boolean()),\n }),\n})\n\nexport const identityEntity = defineEntity({\n type: \"wireguard.identity\",\n\n schema: Type.Object({\n name: Type.String(),\n network: Type.Optional(networkEntity.schema),\n address: Type.Optional(Type.String()),\n privateKey: Type.String(),\n presharedKeyPart: Type.Optional(Type.String()),\n k8sServices: Type.Array(serviceEntity.schema),\n exitNode: Type.Boolean(),\n listenPort: Type.Optional(Type.Number()),\n externalIp: Type.Optional(Type.String()),\n endpoint: Type.Optional(Type.String()),\n fqdn: Type.Optional(Type.String()),\n }),\n\n meta: {\n color: \"#F44336\",\n },\n})\n\nexport const peerEntity = defineEntity({\n type: \"wireguard.peer\",\n\n schema: Type.Object({\n name: Type.String(),\n network: Type.Optional(networkEntity.schema),\n publicKey: Type.String(),\n address: Type.Optional(Type.String()),\n allowedIps: Type.Array(Type.String()),\n endpoint: Type.Optional(Type.String()),\n presharedKeyPart: Type.Optional(Type.String()),\n excludedIps: Type.Optional(Type.Array(Type.String())),\n dns: Type.Optional(Type.Array(Type.String())),\n }),\n\n meta: {\n color: \"#673AB7\",\n },\n})\n\nexport const k8sNodeEntity = defineEntity({\n type: \"wireguard.node\",\n\n schema: Type.Object({\n network: Type.String(),\n address: Type.String(),\n endpoint: Type.Optional(Type.String()),\n peers: Type.Array(Type.String()),\n }),\n})\n\nexport type Network = Static<typeof networkEntity.schema>\nexport type Identity = Static<typeof identityEntity.schema>\nexport type Peer = Static<typeof peerEntity.schema>\n\n/**\n * The network hols the shared configuration for the WireGuard identities, peers and nodes.\n */\nexport const network = defineUnit({\n type: \"wireguard.network\",\n\n args: {\n /**\n * The backend to use for the WireGuard network.\n *\n * Possible values are:\n * 1. `wireguard` - The default backend.\n * 2. `amneziawg` - The censorship-resistant fork of WireGuard.\n *\n * By default, the `wireguard` backend is used.\n *\n * @schema\n */\n backend: {\n ...Type.Default(backendSchema, \"wireguard\"),\n description: `The backend to use for the WireGuard network.\n\n Possible values are:\n 1. \\`wireguard\\` - The default backend.\n 2. \\`amneziawg\\` - The censorship-resistant fork of WireGuard.\n\n By default, the \\`wireguard\\` backend is used.`,\n},\n\n /**\n * The option which defines how to handle pre-shared keys between peers.\n *\n * 1. `none` - No pre-shared keys will be used.\n * 2. `global` - A single pre-shared key will be used for all peer pairs in the network.\n * 3. `secure` - Each peer pair will have its own pre-shared key.\n * In this case, each identity generates `presharedKeyPart` and the actual pre-shared key\n * for each peer pair will be computed as `xor(peer1.presharedKeyPart, peer2.presharedKeyPart)`.\n *\n * If the whole network is managed by the HighState, the `secure` mode is recommended.\n *\n * By default, the `none` mode is used.\n *\n * @schema\n */\n presharedKeyMode: {\n ...Type.Optional(presharedKeyModeSchema),\n description: `The option which defines how to handle pre-shared keys between peers.\n\n 1. \\`none\\` - No pre-shared keys will be used.\n 2. \\`global\\` - A single pre-shared key will be used for all peer pairs in the network.\n 3. \\`secure\\` - Each peer pair will have its own pre-shared key.\n In this case, each identity generates \\`presharedKeyPart\\` and the actual pre-shared key\n for each peer pair will be computed as \\`xor(peer1.presharedKeyPart, peer2.presharedKeyPart)\\`.\n\n If the whole network is managed by the HighState, the \\`secure\\` mode is recommended.\n\n By default, the \\`none\\` mode is used.`,\n},\n\n /**\n * The option to enable IPv6 support in the network.\n *\n * By default, IPv6 support is disabled.\n *\n * @schema\n */\n ipv6: {\n ...Type.Optional(Type.Boolean()),\n description: `The option to enable IPv6 support in the network.\n\n By default, IPv6 support is disabled.`,\n},\n },\n\n secrets: {\n /**\n * The global pre-shared key to use for all peer pairs in the network.\n *\n * Will be used only if `presharedKeyMode` is set to `global`.\n * Will be generated automatically if not provided.\n *\n * @schema\n */\n globalPresharedKey: {\n ...Type.Optional(Type.String()),\n description: `The global pre-shared key to use for all peer pairs in the network.\n\n Will be used only if \\`presharedKeyMode\\` is set to \\`global\\`.\n Will be generated automatically if not provided.`,\n},\n },\n\n outputs: {\n network: networkEntity,\n },\n\n meta: {\n description: \"The WireGuard network with some shared configuration.\",\n primaryIcon: \"simple-icons:wireguard\",\n primaryIconColor: \"#88171a\",\n secondaryIcon: \"mdi:local-area-network-connect\",\n },\n\n source: {\n package: \"@highstate/wireguard\",\n path: \"network\",\n },\n})\n\nconst sharedPeerArgs = {\n /**\n * The name of the WireGuard peer.\n *\n * If not provided, the peer will be named after the unit.\n *\n * @schema\n */\n peerName: {\n ...Type.Optional(Type.String()),\n description: `The name of the WireGuard peer.\n\n If not provided, the peer will be named after the unit.`,\n},\n\n /**\n * The address of the WireGuard interface.\n *\n * The address may be any IPv4 or IPv6 address. CIDR notation is also supported.\n *\n * @schema\n */\n address: {\n ...Type.Optional(Type.String()),\n description: `The address of the WireGuard interface.\n\n The address may be any IPv4 or IPv6 address. CIDR notation is also supported.`,\n},\n\n /**\n * The list of allowed IPs for the peer.\n *\n * @schema\n */\n allowedIps: {\n ...Type.Optional(Type.Array(Type.String())),\n description: `The list of allowed IPs for the peer.`,\n},\n\n /**\n * The convenience option to set `allowedIps` to `0.0.0.0/0, ::/0`.\n *\n * Will be merged with the `allowedIps` if provided.\n *\n * @schema\n */\n exitNode: {\n ...Type.Optional(Type.Boolean()),\n description: `The convenience option to set \\`allowedIps\\` to \\`0.0.0.0/0, ::/0\\`.\n\n Will be merged with the \\`allowedIps\\` if provided.`,\n},\n\n /**\n * The list of IP ranges to exclude from the tunnel.\n *\n * Implementation notes:\n *\n * - This list will not be used to generate the allowed IPs for the peer.\n * - Instead, the node will setup extra direct routes to these IPs via default gateway.\n * - This allows to use `0.0.0.0/0, ::/0` in the `allowedIps` (and corresponding fwmark magic) and still have some IPs excluded from the tunnel.\n *\n * @schema\n */\n excludedIps: {\n ...Type.Optional(Type.Array(Type.String())),\n description: `The list of IP ranges to exclude from the tunnel.\n\n Implementation notes:\n\n - This list will not be used to generate the allowed IPs for the peer.\n - Instead, the node will setup extra direct routes to these IPs via default gateway.\n - This allows to use \\`0.0.0.0/0, ::/0\\` in the \\`allowedIps\\` (and corresponding fwmark magic) and still have some IPs excluded from the tunnel.`,\n},\n\n /**\n * The convenience option to exclude private IPs from the tunnel.\n *\n * For IPv4, the private IPs are:\n *\n * - `10.0.0.0/8`\n * - `172.16.0.0/12`\n * - `192.168.0.0/16`\n *\n * For IPv6, the private IPs are:\n *\n * - `fc00::/7`\n * - `fe80::/10`\n *\n * Will be merged with `excludedIps` if provided.\n *\n * @schema\n */\n excludePrivateIps: {\n ...Type.Optional(Type.Boolean()),\n description: `The convenience option to exclude private IPs from the tunnel.\n\n For IPv4, the private IPs are:\n\n - \\`10.0.0.0/8\\`\n - \\`172.16.0.0/12\\`\n - \\`192.168.0.0/16\\`\n\n For IPv6, the private IPs are:\n\n - \\`fc00::/7\\`\n - \\`fe80::/10\\`\n\n Will be merged with \\`excludedIps\\` if provided.`,\n},\n\n /**\n * The endpoint of the WireGuard peer.\n *\n * @schema\n */\n endpoint: {\n ...Type.Optional(Type.String()),\n description: `The endpoint of the WireGuard peer.`,\n},\n\n /**\n * The DNS servers that should be used by the interface connected to the WireGuard peer.\n *\n * If multiple peers define DNS servers, the node will merge them into a single list (but this is discouraged).\n *\n * @schema\n */\n dns: {\n ...Type.Optional(Type.Array(Type.String())),\n description: `The DNS servers that should be used by the interface connected to the WireGuard peer.\n\n If multiple peers define DNS servers, the node will merge them into a single list (but this is discouraged).`,\n},\n\n /**\n * The convenience option to include the DNS servers to the allowed IPs.\n *\n * By default, is `true`.\n *\n * @schema\n */\n includeDns: {\n ...Type.Optional(Type.Boolean({ default: true })),\n description: `The convenience option to include the DNS servers to the allowed IPs.\n\n By default, is \\`true\\`.`,\n},\n}\n\nconst sharedInterfaceArgs = {\n /**\n * The port to listen on.\n *\n * Will override the `listenPort` of the identity if provided.\n *\n * @schema\n */\n listenPort: {\n ...Type.Optional(Type.Number()),\n description: `The port to listen on.\n\n Will override the \\`listenPort\\` of the identity if provided.`,\n},\n\n /**\n * The DNS servers that should be used by the interface connected to the WireGuard node.\n *\n * Will be merged with the DNS servers of the peers.\n *\n * @schema\n */\n dns: {\n ...Type.Optional(Type.Array(Type.String())),\n description: `The DNS servers that should be used by the interface connected to the WireGuard node.\n\n Will be merged with the DNS servers of the peers.`,\n},\n}\n\nexport const peer = defineUnit({\n type: \"wireguard.peer\",\n\n args: {\n ...sharedPeerArgs,\n\n /**\n * The public key of the WireGuard peer.\n *\n * @schema\n */\n publicKey: {\n ...Type.Optional(Type.String()),\n description: `The public key of the WireGuard peer.`,\n},\n },\n\n inputs: {\n /**\n * The network to use for the WireGuard peer.\n *\n * If not provided, the peer will use default network configuration.\n *\n * @schema\n */\n network: {\n ...{\n entity: networkEntity,\n required: false,\n },\n description: `The network to use for the WireGuard peer.\n\n If not provided, the peer will use default network configuration.`,\n},\n\n /**\n * The existing WireGuard peer to extend.\n *\n * @schema\n */\n peer: {\n ...{\n entity: peerEntity,\n required: false,\n },\n description: `The existing WireGuard peer to extend.`,\n},\n\n /**\n * The L4 endpoint of the peer.\n *\n * Will take priority over all calculated endpoints if provided.\n *\n * @schema\n */\n l4Endpoint: {\n ...{\n entity: l4EndpointEntity,\n required: false,\n },\n description: `The L4 endpoint of the peer.\n\n Will take priority over all calculated endpoints if provided.`,\n},\n },\n\n outputs: {\n peer: peerEntity,\n },\n\n meta: {\n description: \"The WireGuard peer with the public key.\",\n primaryIcon: \"simple-icons:wireguard\",\n primaryIconColor: \"#88171a\",\n secondaryIcon: \"mdi:badge-account-horizontal\",\n },\n\n source: {\n package: \"@highstate/wireguard\",\n path: \"peer\",\n },\n})\n\nexport const identity = defineUnit({\n type: \"wireguard.identity\",\n\n args: {\n ...sharedPeerArgs,\n\n /**\n * The port to listen on.\n *\n * Used by the implementation of the identity and to calculate the endpoint of the peer.\n *\n * @schema\n */\n listenPort: {\n ...Type.Optional(Type.Number()),\n description: `The port to listen on.\n\n Used by the implementation of the identity and to calculate the endpoint of the peer.`,\n},\n\n /**\n * The external IP address of the WireGuard identity.\n *\n * Used by the implementation of the identity and to calculate the endpoint of the peer.\n *\n * @schema\n */\n externalIp: {\n ...Type.Optional(Type.String()),\n description: `The external IP address of the WireGuard identity.\n\n Used by the implementation of the identity and to calculate the endpoint of the peer.`,\n},\n\n /**\n * The endpoint of the WireGuard peer.\n *\n * By default, the endpoint is calculated as `externalIp:listenPort`.\n *\n * If overridden, does not affect node which implements the identity, but is used in the peer configuration of other nodes.\n *\n * Will take priority over all calculated endpoints and `l4Endpoint` input.\n *\n * @schema\n */\n endpoint: {\n ...Type.Optional(Type.String()),\n description: `The endpoint of the WireGuard peer.\n\n By default, the endpoint is calculated as \\`externalIp:listenPort\\`.\n\n If overridden, does not affect node which implements the identity, but is used in the peer configuration of other nodes.\n\n Will take priority over all calculated endpoints and \\`l4Endpoint\\` input.`,\n},\n\n /**\n * The FQDN of the WireGuard identity.\n * Will be used as endpoint for the peer.\n *\n * If `dnsProvider` is provided, external IP is available and `registerFqdn` is set to `true`, and FQDN is provided explicitly (not obtained from the k8s cluster),\n * the FQDN will be registered with the DNS provider.\n *\n * @schema\n */\n fqdn: {\n ...Type.Optional(Type.String()),\n description: `The FQDN of the WireGuard identity.\n Will be used as endpoint for the peer.\n\n If \\`dnsProvider\\` is provided, external IP is available and \\`registerFqdn\\` is set to \\`true\\`, and FQDN is provided explicitly (not obtained from the k8s cluster),\n the FQDN will be registered with the DNS provider.`,\n},\n\n /**\n * Whether to register the FQDN of the identity with the matching DNS providers.\n *\n * By default, `true`.\n *\n * @schema\n */\n registerFqdn: {\n ...Type.Default(Type.Boolean(), true),\n description: `Whether to register the FQDN of the identity with the matching DNS providers.\n\n By default, \\`true\\`.`,\n},\n },\n\n secrets: {\n /**\n * The private key of the WireGuard identity.\n *\n * If not provided, the key will be generated automatically.\n *\n * @schema\n */\n privateKey: {\n ...Type.Optional(Type.String()),\n description: `The private key of the WireGuard identity.\n\n If not provided, the key will be generated automatically.`,\n},\n\n /**\n * The part of the pre-shared of the WireGuard identity.\n *\n * Will be generated automatically if not provided.\n *\n * @schema\n */\n presharedKeyPart: {\n ...Type.Optional(Type.String()),\n description: `The part of the pre-shared of the WireGuard identity.\n\n Will be generated automatically if not provided.`,\n},\n },\n\n inputs: {\n /**\n * The network to use for the WireGuard identity.\n *\n * If not provided, the identity will use default network configuration.\n *\n * @schema\n */\n network: {\n ...{\n entity: networkEntity,\n required: false,\n },\n description: `The network to use for the WireGuard identity.\n\n If not provided, the identity will use default network configuration.`,\n},\n\n /**\n * The list of Kubernetes services to expose the WireGuard identity.\n *\n * Their IP addresses will be added to the `allowedIps` of the identity and passed to the node to set up network policies.\n *\n * @schema\n */\n k8sServices: {\n ...{\n entity: serviceEntity,\n multiple: true,\n required: false,\n },\n description: `The list of Kubernetes services to expose the WireGuard identity.\n\n Their IP addresses will be added to the \\`allowedIps\\` of the identity and passed to the node to set up network policies.`,\n},\n\n /**\n * The Kubernetes cluster associated with the identity.\n *\n * If provided, will be used to obtain the external IP or FQDN of the identity.\n *\n * @schema\n */\n k8sCluster: {\n ...{\n entity: clusterEntity,\n required: false,\n },\n description: `The Kubernetes cluster associated with the identity.\n\n If provided, will be used to obtain the external IP or FQDN of the identity.`,\n},\n\n /**\n * The L4 endpoint of the identity.\n *\n * Will take priority over all calculated endpoints if provided.\n *\n * @schema\n */\n l4Endpoint: {\n ...{\n entity: l4EndpointEntity,\n required: false,\n },\n description: `The L4 endpoint of the identity.\n\n Will take priority over all calculated endpoints if provided.`,\n},\n\n /**\n * The DNS providers to register the FQDN of the identity with.\n *\n * @schema\n */\n dnsProviders: {\n ...{\n entity: providerEntity,\n required: false,\n multiple: true,\n },\n description: `The DNS providers to register the FQDN of the identity with.`,\n},\n },\n\n outputs: {\n identity: identityEntity,\n peer: peerEntity,\n\n l4Endpoint: {\n entity: l4EndpointEntity,\n required: false,\n },\n },\n\n meta: {\n description: \"The WireGuard identity with the public key.\",\n primaryIcon: \"simple-icons:wireguard\",\n primaryIconColor: \"#88171a\",\n secondaryIcon: \"mdi:account\",\n },\n\n source: {\n package: \"@highstate/wireguard\",\n path: \"identity\",\n },\n})\n\nexport const node = defineUnit({\n type: \"wireguard.node\",\n\n args: {\n appName: Type.Optional(Type.String()),\n serviceType: Type.Optional(serviceTypeSchema),\n\n ...sharedInterfaceArgs,\n\n /**\n * The external IP address of the WireGuard node.\n *\n * Will override the `externalIp` of the identity if provided.\n *\n * @schema\n */\n externalIp: {\n ...Type.Optional(Type.String()),\n description: `The external IP address of the WireGuard node.\n\n Will override the \\`externalIp\\` of the identity if provided.`,\n},\n\n /**\n * The extra specification of the container which runs the WireGuard node.\n *\n * Will override any overlapping fields.\n *\n * @schema\n */\n containerSpec: {\n ...Type.Optional(Type.Record(Type.String(), Type.Any())),\n description: `The extra specification of the container which runs the WireGuard node.\n\n Will override any overlapping fields.`,\n},\n },\n\n inputs: {\n identity: identityEntity,\n k8sCluster: clusterEntity,\n\n deployment: {\n entity: deploymentEntity,\n required: false,\n },\n\n statefulSet: {\n entity: statefulSetEntity,\n required: false,\n },\n\n interface: {\n entity: interfaceEntity,\n required: false,\n },\n\n peers: {\n entity: peerEntity,\n multiple: true,\n required: false,\n },\n },\n\n outputs: {\n deployment: {\n entity: deploymentEntity,\n required: false,\n },\n\n interface: {\n entity: interfaceEntity,\n required: false,\n },\n\n service: {\n entity: serviceEntity,\n required: false,\n },\n },\n\n meta: {\n description: \"The WireGuard node running on the Kubernetes.\",\n primaryIcon: \"simple-icons:wireguard\",\n primaryIconColor: \"#88171a\",\n secondaryIcon: \"mdi:server\",\n },\n\n source: {\n package: \"@highstate/wireguard\",\n path: \"node\",\n },\n})\n\nexport const config = defineUnit({\n type: \"wireguard.config\",\n\n args: {\n ...sharedInterfaceArgs,\n\n /**\n * The name of the \"default\" interface where non-tunneled traffic should go.\n *\n * If not provided, the config will not respect `excludedIps`.\n *\n * @schema\n */\n defaultInterface: {\n ...Type.Optional(Type.String()),\n description: `The name of the \"default\" interface where non-tunneled traffic should go.\n\n If not provided, the config will not respect \\`excludedIps\\`.`,\n},\n },\n\n inputs: {\n identity: identityEntity,\n peers: {\n entity: peerEntity,\n multiple: true,\n required: false,\n },\n },\n\n meta: {\n displayName: \"WireGuard Config\",\n description: \"Just the WireGuard configuration for the identity and peers.\",\n primaryIcon: \"simple-icons:wireguard\",\n primaryIconColor: \"#88171a\",\n secondaryIcon: \"mdi:settings\",\n },\n\n source: {\n package: \"@highstate/wireguard\",\n path: \"config\",\n },\n})\n\nexport const configBundle = defineUnit({\n type: \"wireguard.config-bundle\",\n\n inputs: {\n identity: identityEntity,\n peers: {\n entity: peerEntity,\n multiple: true,\n },\n sharedPeers: {\n entity: peerEntity,\n multiple: true,\n required: false,\n },\n },\n\n meta: {\n displayName: \"WireGuard Config Bundle\",\n description: \"The WireGuard configuration bundle for the identity and peers.\",\n primaryIcon: \"simple-icons:wireguard\",\n primaryIconColor: \"#88171a\",\n secondaryIcon: \"mdi:folder-settings-variant\",\n },\n\n source: {\n package: \"@highstate/wireguard\",\n path: \"config-bundle\",\n },\n})\n","export * from \"./mariadb\"\nexport * from \"./postgresql\"\nexport * from \"./vaultwarden\"\n// export * from \"./zitadel\"\n// export * from \"./gitea\"\nexport * from \"./traefik\"\nexport * from \"./kubernetes-dashboard\"\nexport * from \"./grocy\"\nexport * from \"./maybe\"\nexport * from \"./mongodb\"\nexport * from \"./deployment\"\nexport * from \"./syncthing\"\nexport * from \"./code-server\"\n","import { defineEntity, defineUnit, Type, type Static } from \"@highstate/contract\"\nimport { clusterEntity, serviceEntity } from \"../k8s\"\nimport { repoEntity } from \"../restic\"\nimport { providerEntity } from \"../dns\"\n\nexport const mariadbEntity = defineEntity({\n type: \"apps.mariadb\",\n\n schema: Type.Object({\n service: Type.Optional(serviceEntity.schema),\n\n host: Type.String(),\n port: Type.Number(),\n rootPassword: Type.String(),\n }),\n\n meta: {\n color: \"#f06292\",\n },\n})\n\nexport const mariadb = defineUnit({\n type: \"apps.mariadb\",\n\n args: {\n fqdn: Type.Optional(Type.String()),\n appName: Type.Optional(Type.String()),\n },\n\n secrets: {\n rootPassword: Type.Optional(Type.String()),\n },\n\n inputs: {\n k8sCluster: clusterEntity,\n resticRepo: {\n entity: repoEntity,\n required: false,\n },\n dnsProvider: {\n entity: providerEntity,\n required: false,\n },\n },\n\n outputs: {\n mariadb: mariadbEntity,\n service: serviceEntity,\n },\n\n meta: {\n displayName: \"MariaDB\",\n description: \"The MariaDB database deployed on Kubernetes.\",\n primaryIcon: \"simple-icons:mariadb\",\n secondaryIcon: \"mdi:database\",\n },\n\n source: {\n package: \"@highstate/apps\",\n path: \"mariadb/app\",\n },\n})\n\nexport const mariadbDatabase = defineUnit({\n type: \"apps.mariadb.database\",\n\n args: {\n database: Type.Optional(Type.String()),\n username: Type.Optional(Type.String()),\n },\n\n secrets: {\n password: Type.Optional(Type.String()),\n },\n\n inputs: {\n k8sCluster: clusterEntity,\n mariadb: mariadbEntity,\n },\n\n meta: {\n displayName: \"MariaDB Database\",\n description:\n \"The virtual MariaDB database created on the MariaDB instance. Works only for MariaDB instances deployed on Kubernetes.\",\n primaryIcon: \"simple-icons:mariadb\",\n secondaryIcon: \"mdi:database-plus\",\n },\n\n source: {\n package: \"@highstate/apps\",\n path: \"mariadb/database\",\n },\n})\n\nexport type MariaDB = Static<typeof mariadbEntity.schema>\n","import { defineEntity, defineUnit, Type, type Static } from \"@highstate/contract\"\n\nexport const repoEntity = defineEntity({\n type: \"restic.repo\",\n\n schema: Type.Object({\n password: Type.String(),\n remoteDomains: Type.Array(Type.String()),\n\n type: Type.Literal(\"rclone\"),\n rcloneConfig: Type.String(),\n remoteName: Type.String(),\n basePath: Type.String(),\n }),\n\n meta: {\n color: \"#e56901\",\n },\n})\n\nexport const repo = defineUnit({\n type: \"restic.repo\",\n\n args: {\n remoteDomains: Type.Optional(Type.Array(Type.String())),\n basePath: Type.Optional(Type.String()),\n },\n\n secrets: {\n password: Type.Optional(Type.String()),\n rcloneConfig: Type.String({ multiline: true }),\n },\n\n outputs: {\n repo: repoEntity,\n },\n\n meta: {\n displayName: \"Restic Repo\",\n description: \"Holds the configuration for a Restic repository and its remote storage.\",\n primaryIconColor: \"#e56901\",\n primaryIcon: \"material-symbols:backup\",\n },\n\n source: {\n package: \"@highstate/restic\",\n path: \"repo\",\n },\n})\n\nexport type Repo = Static<typeof repoEntity.schema>\n","import { defineEntity, defineUnit, Type, type Static } from \"@highstate/contract\"\nimport { clusterEntity, serviceEntity } from \"../k8s\"\nimport { repoEntity } from \"../restic\"\nimport { providerEntity } from \"../dns\"\n\nexport const postgresqlEntity = defineEntity({\n type: \"apps.postgresql\",\n\n schema: Type.Object({\n service: Type.Optional(serviceEntity.schema),\n\n host: Type.String(),\n port: Type.Number(),\n rootPassword: Type.String(),\n }),\n\n meta: {\n color: \"#336791\",\n },\n})\n\nexport const postgresql = defineUnit({\n type: \"apps.postgresql\",\n\n args: {\n fqdn: Type.Optional(Type.String()),\n appName: Type.Optional(Type.String()),\n },\n\n secrets: {\n rootPassword: Type.Optional(Type.String()),\n },\n\n inputs: {\n k8sCluster: clusterEntity,\n resticRepo: {\n entity: repoEntity,\n required: false,\n },\n dnsProvider: {\n entity: providerEntity,\n required: false,\n },\n },\n\n outputs: {\n postgresql: postgresqlEntity,\n service: serviceEntity,\n },\n\n meta: {\n displayName: \"PostgreSQL\",\n description: \"The PostgreSQL database deployed on Kubernetes.\",\n primaryIcon: \"simple-icons:postgresql\",\n secondaryIcon: \"mdi:database\",\n },\n\n source: {\n package: \"@highstate/apps\",\n path: \"postgresql/app\",\n },\n})\n\nexport const postgresqlDatabase = defineUnit({\n type: \"apps.postgresql.database\",\n\n args: {\n database: Type.Optional(Type.String()),\n username: Type.Optional(Type.String()),\n },\n\n secrets: {\n password: Type.Optional(Type.String()),\n },\n\n inputs: {\n k8sCluster: clusterEntity,\n postgresql: postgresqlEntity,\n },\n\n meta: {\n displayName: \"PostgreSQL Database\",\n description:\n \"The virtual PostgreSQL database created on the PostgreSQL instance. Works only for PostgreSQL instances deployed on Kubernetes.\",\n primaryIcon: \"simple-icons:postgresql\",\n secondaryIcon: \"mdi:database-plus\",\n },\n\n source: {\n package: \"@highstate/apps\",\n path: \"postgresql/database\",\n },\n})\n\nexport type PostgreSQL = Static<typeof postgresqlEntity.schema>\n","import { defineUnit, Type } from \"@highstate/contract\"\nimport { accessPointEntity, clusterEntity } from \"../k8s\"\nimport { mariadbEntity } from \"./mariadb\"\n\nexport const vaultwarden = defineUnit({\n type: \"apps.vaultwarden\",\n\n args: {\n fqdn: Type.String(),\n appName: Type.Optional(Type.String()),\n },\n\n inputs: {\n mariadb: mariadbEntity,\n accessPoint: accessPointEntity,\n k8sCluster: clusterEntity,\n },\n\n secrets: {\n mariadbPassword: Type.Optional(Type.String()),\n },\n\n meta: {\n displayName: \"Vaultwarden\",\n description: \"The Vaultwarden password manager deployed on Kubernetes.\",\n primaryIcon: \"simple-icons:vaultwarden\",\n },\n\n source: {\n package: \"@highstate/apps\",\n path: \"vaultwarden\",\n },\n})\n","import { defineUnit, Type } from \"@highstate/contract\"\nimport { clusterEntity, gatewayEntity, serviceEntity, serviceTypeSchema } from \"../k8s\"\n\nexport const traefikGateway = defineUnit({\n type: \"apps.traefik-gateway\",\n\n args: {\n appName: Type.Optional(Type.String()),\n className: Type.Optional(Type.String()),\n serviceType: Type.Optional(serviceTypeSchema),\n },\n\n inputs: {\n k8sCluster: clusterEntity,\n },\n\n outputs: {\n gateway: gatewayEntity,\n service: serviceEntity,\n },\n\n meta: {\n displayName: \"Traefik Gateway\",\n description: \"A Traefik gateway for routing traffic to services.\",\n primaryIcon: \"simple-icons:traefikproxy\",\n },\n\n source: {\n package: \"@highstate/apps\",\n path: \"traefik\",\n },\n})\n","import { defineUnit, Type } from \"@highstate/contract\"\nimport { accessPointEntity, clusterEntity } from \"../k8s\"\n\nexport const kubernetesDashboard = defineUnit({\n type: \"apps.kubernetes-dashboard\",\n\n args: {\n fqdn: Type.String(),\n appName: Type.Optional(Type.String()),\n },\n\n inputs: {\n k8sCluster: clusterEntity,\n accessPoint: accessPointEntity,\n },\n\n meta: {\n displayName: \"Kubernetes Dashboard\",\n description: \"The Kubernetes Dashboard deployed on Kubernetes.\",\n primaryIcon: \"simple-icons:kubernetes\",\n secondaryIcon: \"mdi:dashboard\",\n },\n\n source: {\n package: \"@highstate/apps\",\n path: \"kubernetes-dashboard\",\n },\n})\n","import { defineUnit, Type } from \"@highstate/contract\"\nimport { accessPointEntity, clusterEntity } from \"../k8s\"\nimport { repoEntity } from \"../restic\"\n\nexport const grocy = defineUnit({\n type: \"apps.grocy\",\n\n args: {\n fqdn: Type.String(),\n appName: Type.Optional(Type.String()),\n },\n\n inputs: {\n resticRepo: {\n entity: repoEntity,\n required: false,\n },\n accessPoint: accessPointEntity,\n k8sCluster: clusterEntity,\n },\n\n meta: {\n displayName: \"Grocy\",\n description:\n \"Grocy is a web-based self-hosted groceries & household management solution for your home.\",\n primaryIcon: \"simple-icons:grocy\",\n },\n\n source: {\n package: \"@highstate/apps\",\n path: \"grocy\",\n },\n})\n","import { defineUnit, Type } from \"@highstate/contract\"\nimport { accessPointEntity, clusterEntity } from \"../k8s\"\nimport { repoEntity } from \"../restic\"\nimport { postgresqlEntity } from \"./postgresql\"\n\nexport const maybe = defineUnit({\n type: \"apps.maybe\",\n\n args: {\n fqdn: Type.String(),\n appName: Type.Optional(Type.String()),\n },\n\n inputs: {\n postgresql: postgresqlEntity,\n accessPoint: accessPointEntity,\n k8sCluster: clusterEntity,\n resticRepo: {\n entity: repoEntity,\n required: false,\n },\n },\n\n secrets: {\n postgresqlPassword: Type.Optional(Type.String()),\n secretKey: Type.Optional(Type.String()),\n },\n\n meta: {\n displayName: \"Maybe\",\n description: \"The OS for your personal finances.\",\n primaryIcon: \"arcticons:finance-manager\",\n },\n\n source: {\n package: \"@highstate/apps\",\n path: \"maybe\",\n },\n})\n","import { defineEntity, defineUnit, Type, type Static } from \"@highstate/contract\"\nimport { clusterEntity, serviceEntity, serviceTypeSchema } from \"../k8s\"\nimport { repoEntity } from \"../restic\"\nimport { providerEntity } from \"../dns\"\n\nexport const mongodbEntity = defineEntity({\n type: \"apps.mongodb\",\n\n schema: Type.Object({\n service: Type.Optional(serviceEntity.schema),\n\n host: Type.String(),\n port: Type.Number(),\n rootPassword: Type.String(),\n }),\n\n meta: {\n color: \"#13aa52\",\n },\n})\n\nexport const mongodb = defineUnit({\n type: \"apps.mongodb\",\n\n args: {\n fqdn: Type.Optional(Type.String()),\n appName: Type.Optional(Type.String()),\n serviceType: Type.Optional(serviceTypeSchema),\n },\n\n secrets: {\n rootPassword: Type.Optional(Type.String()),\n },\n\n inputs: {\n k8sCluster: clusterEntity,\n resticRepo: {\n entity: repoEntity,\n required: false,\n },\n dnsProvider: {\n entity: providerEntity,\n required: false,\n },\n },\n\n outputs: {\n mongodb: mongodbEntity,\n service: serviceEntity,\n },\n\n meta: {\n displayName: \"MongoDB\",\n description: \"The MongoDB instance deployed on Kubernetes.\",\n primaryIcon: \"simple-icons:mongodb\",\n secondaryIcon: \"mdi:database\",\n },\n\n source: {\n package: \"@highstate/apps\",\n path: \"mongodb/app\",\n },\n})\n\nexport const mongodbDatabase = defineUnit({\n type: \"apps.mongodb.database\",\n\n args: {\n database: Type.Optional(Type.String()),\n username: Type.Optional(Type.String()),\n },\n\n secrets: {\n password: Type.Optional(Type.String()),\n },\n\n inputs: {\n k8sCluster: clusterEntity,\n mongodb: mongodbEntity,\n },\n\n meta: {\n displayName: \"MongoDB Database\",\n description:\n \"The virtual MongoDB database created on the MongoDB instance. Works only for MongoDB instances deployed on Kubernetes.\",\n primaryIcon: \"simple-icons:mongodb\",\n secondaryIcon: \"mdi:database-plus\",\n },\n\n source: {\n package: \"@highstate/apps\",\n path: \"mongodb/database\",\n },\n})\n\nexport type MongoDB = Static<typeof mongodbEntity.schema>\n","import { defineUnit, Type } from \"@highstate/contract\"\nimport { clusterEntity, deploymentEntity, serviceEntity, serviceTypeSchema } from \"../k8s\"\nimport { repoEntity } from \"../restic\"\nimport { providerEntity } from \"../dns\"\nimport { mariadbEntity } from \"./mariadb\"\nimport { postgresqlEntity } from \"./postgresql\"\nimport { mongodbEntity } from \"./mongodb\"\n\nexport const deployment = defineUnit({\n type: \"apps.deployment\",\n\n args: {\n appName: Type.Optional(Type.String()),\n\n fqdn: Type.Optional(Type.String()),\n serviceType: Type.Optional(serviceTypeSchema),\n\n image: Type.Optional(Type.String()),\n port: Type.Optional(Type.Number()),\n replicas: Type.Optional(Type.Number()),\n\n dataPath: Type.Optional(Type.String()),\n\n env: Type.Optional(Type.Record(Type.String(), Type.Any())),\n\n mariadbEnvMapping: Type.Optional(Type.Record(Type.String(), Type.Any())),\n postgresqlEnvMapping: Type.Optional(Type.Record(Type.String(), Type.Any())),\n mongodbEnvMapping: Type.Optional(Type.Record(Type.String(), Type.Any())),\n\n manifest: Type.Optional(Type.Record(Type.String(), Type.Any())),\n serviceManifest: Type.Optional(Type.Record(Type.String(), Type.Any())),\n httpRouteManifest: Type.Optional(Type.Record(Type.String(), Type.Any())),\n },\n\n inputs: {\n k8sCluster: clusterEntity,\n\n mariadb: {\n entity: mariadbEntity,\n required: false,\n },\n postgresql: {\n entity: postgresqlEntity,\n required: false,\n },\n mongodb: {\n entity: mongodbEntity,\n required: false,\n },\n resticRepo: {\n entity: repoEntity,\n required: false,\n },\n dnsProvider: {\n entity: providerEntity,\n required: false,\n },\n },\n\n outputs: {\n deployment: deploymentEntity,\n service: serviceEntity,\n },\n\n secrets: {\n mariadbPassword: Type.Optional(Type.String()),\n postgresqlPassword: Type.Optional(Type.String()),\n mongodbPassword: Type.Optional(Type.String()),\n },\n\n meta: {\n displayName: \"Kubernetes Deployment\",\n description: \"A generic Kubernetes deployment with optional service and gateway routes.\",\n primaryIcon: \"mdi:kubernetes\",\n secondaryIcon: \"mdi:cube-outline\",\n },\n\n source: {\n package: \"@highstate/apps\",\n path: \"deployment\",\n },\n})\n","import { defineUnit, Type } from \"@highstate/contract\"\nimport {\n accessPointEntity,\n clusterEntity,\n persistentVolumeClaimEntity,\n serviceEntity,\n} from \"../k8s\"\nimport { repoEntity } from \"../restic\"\n\nexport const backupModeSchema = Type.Union([Type.Literal(\"metadata\"), Type.Literal(\"full\")])\n\nexport const syncthing = defineUnit({\n type: \"apps.syncthing\",\n\n args: {\n fqdn: Type.String(),\n deviceFqdn: Type.Optional(Type.String()),\n appName: Type.Optional(Type.String()),\n backupMode: Type.Optional({ ...backupModeSchema, default: \"metadata\" }),\n },\n\n inputs: {\n accessPoint: accessPointEntity,\n k8sCluster: clusterEntity,\n resticRepo: {\n entity: repoEntity,\n required: false,\n },\n volume: {\n entity: persistentVolumeClaimEntity,\n required: false,\n },\n },\n\n outputs: {\n service: serviceEntity,\n volume: persistentVolumeClaimEntity,\n },\n\n meta: {\n displayName: \"Syncthing\",\n description: \"The Syncthing instance deployed on Kubernetes.\",\n primaryIcon: \"simple-icons:syncthing\",\n },\n\n source: {\n package: \"@highstate/apps\",\n path: \"syncthing\",\n },\n})\n","import { defineUnit, Type } from \"@highstate/contract\"\nimport {\n accessPointEntity,\n clusterEntity,\n persistentVolumeClaimEntity,\n statefulSetEntity,\n} from \"../k8s\"\nimport { repoEntity } from \"../restic\"\n\nexport const codeServer = defineUnit({\n type: \"apps.code-server\",\n\n args: {\n fqdn: Type.String(),\n appName: Type.Optional(Type.String()),\n },\n\n secrets: {\n password: Type.Optional(Type.String()),\n sudoPassword: Type.Optional(Type.String()),\n },\n\n inputs: {\n accessPoint: accessPointEntity,\n k8sCluster: clusterEntity,\n resticRepo: {\n entity: repoEntity,\n required: false,\n },\n volume: {\n entity: persistentVolumeClaimEntity,\n required: false,\n },\n },\n\n outputs: {\n statefulSet: statefulSetEntity,\n volume: persistentVolumeClaimEntity,\n },\n\n meta: {\n displayName: \"Code Server\",\n description: \"The Code Server instance deployed on Kubernetes.\",\n primaryIcon: \"material-icon-theme:vscode\",\n },\n\n source: {\n package: \"@highstate/apps\",\n path: \"code-server\",\n },\n})\n","import { defineUnit, Type } from \"@highstate/contract\"\nimport { providerEntity } from \"./dns\"\n\nexport const connection = defineUnit({\n type: \"cloudflare.connection\",\n\n secrets: {\n apiToken: Type.String(),\n },\n\n outputs: {\n dnsProvider: providerEntity,\n },\n\n meta: {\n displayName: \"Cloudflare Connection\",\n description: \"Creates a new Cloudflare connection for one zone.\",\n primaryIcon: \"simple-icons:cloudflare\",\n },\n\n source: {\n package: \"@highstate/cloudflare\",\n path: \"connection\",\n },\n})\n","import { defineUnit } from \"@highstate/contract\"\nimport { Type } from \"@sinclair/typebox\"\nimport { serverEntity } from \"./common\"\nimport { clusterEntity, sharedClusterArgs } from \"./k8s\"\nimport { providerEntity } from \"./dns\"\n\nexport const cluster = defineUnit({\n type: \"k3s.cluster\",\n\n args: {\n ...sharedClusterArgs,\n config: Type.Optional(Type.Record(Type.String(), Type.Any())),\n },\n\n inputs: {\n server: serverEntity,\n dnsProviders: {\n entity: providerEntity,\n required: false,\n multiple: true,\n },\n },\n\n outputs: {\n k8sCluster: clusterEntity,\n },\n\n meta: {\n displayName: \"K3s Cluster\",\n description: \"The K3s cluster created on top of the server.\",\n category: \"k3s\",\n primaryIcon: \"devicon:k3s\",\n secondaryIcon: \"devicon:kubernetes\",\n },\n\n source: {\n package: \"@highstate/k3s\",\n path: \"cluster\",\n },\n})\n","import { defineUnit, Type } from \"@highstate/contract\"\nimport { networkEntity, peerEntity } from \"./wireguard\"\nimport { l4EndpointEntity } from \"./common\"\n\nexport const endpointType = Type.Union([\n Type.Literal(\"fqdn\"),\n Type.Literal(\"ipv4\"),\n Type.Literal(\"ipv6\"),\n])\n\nexport const peer = defineUnit({\n type: \"mullvad.peer\",\n\n args: {\n hostname: Type.Optional(Type.String()),\n endpointType: Type.Optional({ ...endpointType, default: \"fqdn\" }),\n\n /**\n * Whether to include Mullvad DNS servers in the peer configuration.\n *\n * @schema\n */\n includeDns: {\n ...Type.Default(Type.Boolean(), true),\n description: `Whether to include Mullvad DNS servers in the peer configuration.`,\n},\n },\n\n inputs: {\n /**\n * The network to use for the WireGuard peer.\n *\n * If not provided, the peer will use default network configuration.\n */\n network: {\n entity: networkEntity,\n required: false,\n },\n },\n\n outputs: {\n peer: peerEntity,\n l4Endpoint: l4EndpointEntity,\n },\n\n meta: {\n displayName: \"Mullvad Peer\",\n description: \"The Mullvad WireGuard peer fetched from the Mullvad API.\",\n primaryIcon: \"simple-icons:mullvad\",\n secondaryIcon: \"cib:wireguard\",\n secondaryIconColor: \"#88171a\",\n },\n\n source: {\n package: \"@highstate/mullvad\",\n path: \"peer\",\n },\n})\n","import { defineEntity, defineUnit, Type } from \"@highstate/contract\"\nimport { serverEntity } from \"./common\"\nimport { keyPairEntity } from \"./ssh\"\n\nexport const connectionEntity = defineEntity({\n type: \"timeweb.connection\",\n\n schema: Type.Object({\n name: Type.String(),\n apiToken: Type.String(),\n }),\n})\n\nexport const connection = defineUnit({\n type: \"timeweb.connection\",\n\n secrets: {\n apiToken: Type.String(),\n },\n\n outputs: {\n connection: connectionEntity,\n },\n\n meta: {\n displayName: \"Timeweb Connection\",\n description: \"Creates a new Timeweb connection.\",\n primaryIcon: \"material-symbols:cloud\",\n },\n\n source: {\n package: \"@highstate/timeweb\",\n path: \"connection\",\n },\n})\n\nexport const virtualMachine = defineUnit({\n type: \"timeweb.virtual-machine\",\n\n args: {\n presetId: Type.Optional(Type.Number()),\n osId: Type.Optional(Type.Number()),\n availabilityZone: Type.String(),\n },\n\n inputs: {\n connection: connectionEntity,\n sshKeyPair: {\n entity: keyPairEntity,\n required: false,\n },\n },\n\n secrets: {\n sshPrivateKey: Type.Optional(Type.String()),\n },\n\n outputs: {\n server: serverEntity,\n },\n\n meta: {\n displayName: \"Timeweb Virtual Machine\",\n description: \"Creates a new Timeweb virtual machine.\",\n primaryIcon: \"material-symbols:cloud\",\n secondaryIcon: \"codicon:vm\",\n },\n\n source: {\n package: \"@highstate/timeweb\",\n path: \"virtual-machine\",\n },\n})\n","import { defineEntity, defineUnit, Type } from \"@highstate/contract\"\nimport { fileEntity, serverEntity } from \"./common\"\n\nexport const inlineModuleEntity = defineEntity({\n type: \"nixos.inline-module\",\n\n schema: Type.Object({\n code: Type.String(),\n }),\n\n meta: {\n displayName: \"NixOS Inline Module\",\n description: \"The NixOS module reference.\",\n color: \"#5277c3\",\n },\n})\n\nexport const inlineModule = defineUnit({\n type: \"nixos.inline-module\",\n\n args: {\n code: Type.String({ language: \"nix\" }),\n },\n\n inputs: {\n files: {\n entity: fileEntity,\n required: false,\n multiple: true,\n },\n },\n\n outputs: {\n module: inlineModuleEntity,\n },\n\n meta: {\n displayName: \"NixOS Inline Module\",\n description: \"Creates a NixOS module from inline code.\",\n primaryIcon: \"simple-icons:nixos\",\n primaryIconColor: \"#7ebae4\",\n secondaryIcon: \"mdi:file-code\",\n },\n\n source: {\n package: \"@highstate/nixos\",\n path: \"inline-module\",\n },\n})\n\nexport const flakeEntity = defineEntity({\n type: \"nixos.flake\",\n\n schema: Type.Object({\n url: Type.String(),\n }),\n\n meta: {\n displayName: \"NixOS Flake\",\n description: \"The NixOS flake reference.\",\n color: \"#5277c3\",\n },\n})\n\nexport const remoteFlake = defineUnit({\n type: \"nixos.remote-flake\",\n\n args: {\n url: Type.String(),\n },\n\n outputs: {\n flake: flakeEntity,\n },\n\n meta: {\n displayName: \"NixOS Remote Flake\",\n description: \"References a remote NixOS flake.\",\n primaryIcon: \"simple-icons:nixos\",\n primaryIconColor: \"#7ebae4\",\n secondaryIcon: \"simple-icons:git\",\n secondaryIconColor: \"#f1502f\",\n },\n\n source: {\n package: \"@highstate/nixos\",\n path: \"flake\",\n },\n})\n\nexport const inlineFlake = defineUnit({\n type: \"nixos.inline-flake\",\n\n args: {\n code: Type.String({ language: \"nix\" }),\n },\n\n inputs: {\n flakes: {\n entity: flakeEntity,\n required: false,\n multiple: true,\n },\n modules: {\n entity: inlineModuleEntity,\n required: false,\n multiple: true,\n },\n files: {\n entity: fileEntity,\n required: false,\n multiple: true,\n },\n },\n\n outputs: {\n flake: flakeEntity,\n },\n\n meta: {\n displayName: \"NixOS Inline Flake\",\n description: \"Creates a NixOS flake from inline code.\",\n primaryIcon: \"simple-icons:nixos\",\n primaryIconColor: \"#7ebae4\",\n secondaryIcon: \"mdi:file-code\",\n },\n\n source: {\n package: \"@highstate/nixos\",\n path: \"inline-flake\",\n },\n})\n\nexport const system = defineUnit({\n type: \"nixos.system\",\n\n args: {\n system: Type.Optional(Type.String()),\n },\n\n inputs: {\n flake: flakeEntity,\n server: serverEntity,\n modules: {\n entity: inlineModuleEntity,\n required: false,\n multiple: true,\n },\n },\n\n outputs: {\n server: serverEntity,\n },\n\n meta: {\n displayName: \"NixOS System\",\n description: \"Creates a NixOS system on top of any server.\",\n primaryIcon: \"simple-icons:nixos\",\n primaryIconColor: \"#7ebae4\",\n secondaryIcon: \"codicon:vm\",\n },\n\n source: {\n package: \"@highstate/nixos\",\n path: \"system\",\n },\n})\n","import { defineUnit, Type } from \"@highstate/contract\"\nimport { fileEntity, serverEntity } from \"./common\"\n\nexport const secrets = defineUnit({\n type: \"sops.secrets\",\n\n args: {\n secrets: Type.Record(Type.String(), Type.Any()),\n },\n\n inputs: {\n servers: {\n entity: serverEntity,\n required: false,\n multiple: true,\n },\n },\n\n outputs: {\n file: fileEntity,\n },\n\n meta: {\n displayName: \"SOPS Secrets\",\n description: \"Encrypts secrets using SOPS for the specified servers.\",\n primaryIcon: \"mdi:file-lock\",\n },\n\n source: {\n package: \"@highstate/sops\",\n path: \"secrets\",\n },\n})\n","export * as phantun from \"./phantun\"\n","import { defineUnit } from \"@highstate/contract\"\nimport { deobfuscatorSpec, obfuscatorSpec } from \"./shared\"\n\nexport const deobfuscator = defineUnit({\n type: \"obfuscators.phantun.deobfuscator\",\n ...deobfuscatorSpec,\n\n meta: {\n displayName: \"Phantun Deobfuscator\",\n description: \"The Phantun Deobfuscator deployed on Kubernetes.\",\n primaryIcon: \"mdi:network-outline\",\n secondaryIcon: \"mdi:hide\",\n },\n\n source: {\n package: \"@highstate/obfuscators\",\n path: \"phantun/deobfuscator\",\n },\n})\n\nexport const obfuscator = defineUnit({\n type: \"obfuscators.phantun.obfuscator\",\n ...obfuscatorSpec,\n\n meta: {\n displayName: \"Phantun Obfuscator\",\n description: \"The Phantun Obfuscator deployed on Kubernetes.\",\n primaryIcon: \"mdi:network-outline\",\n secondaryIcon: \"mdi:hide\",\n },\n\n source: {\n package: \"@highstate/obfuscators\",\n path: \"phantun/obfuscator\",\n },\n})\n","import { Type } from \"@sinclair/typebox\"\nimport { clusterEntity } from \"../k8s\"\nimport { l4EndpointEntity } from \"../common\"\n\nexport const deobfuscatorSpec = {\n args: {\n /**\n * The L4 endpoint to forward deobfuscated traffic to.\n *\n * Will take precedence over the `targetEndpoint` input.\n *\n * @schema\n */\n targetEndpoint: {\n ...Type.Optional(Type.String()),\n description: `The L4 endpoint to forward deobfuscated traffic to.\n\n Will take precedence over the \\`targetEndpoint\\` input.`,\n},\n },\n\n inputs: {\n /**\n * The Kubernetes cluster to deploy the deobfuscator on.\n *\n * @schema\n */\n k8sCluster: {\n ...clusterEntity,\n description: `The Kubernetes cluster to deploy the deobfuscator on.`,\n},\n\n /**\n * The L4 endpoint to forward deobfuscated traffic to.\n *\n * @schema\n */\n targetEndpoint: {\n ...l4EndpointEntity,\n description: `The L4 endpoint to forward deobfuscated traffic to.`,\n},\n },\n\n outputs: {\n /**\n * The L4 endpoint of the deobfuscator accepting obfuscated traffic.\n *\n * @schema\n */\n endpoint: {\n ...l4EndpointEntity,\n description: `The L4 endpoint of the deobfuscator accepting obfuscated traffic.`,\n},\n },\n}\n\nexport const obfuscatorSpec = {\n args: {\n /**\n * The endpoint of the deobfuscator to pass obfuscated traffic to.\n *\n * Will take precedence over the `l4Endpoint` input.\n *\n * @schema\n */\n endpoint: {\n ...Type.Optional(Type.String()),\n description: `The endpoint of the deobfuscator to pass obfuscated traffic to.\n\n Will take precedence over the \\`l4Endpoint\\` input.`,\n},\n },\n\n inputs: {\n /**\n * The Kubernetes cluster to deploy the obfuscator on.\n *\n * @schema\n */\n k8sCluster: {\n ...clusterEntity,\n description: `The Kubernetes cluster to deploy the obfuscator on.`,\n},\n\n /**\n * The L4 endpoint of the deobfuscator to pass obfuscated traffic to.\n *\n * @schema\n */\n endpoint: {\n ...{\n entity: l4EndpointEntity,\n required: false,\n },\n description: `The L4 endpoint of the deobfuscator to pass obfuscated traffic to.`,\n},\n },\n\n outputs: {\n /**\n * The L4 endpoint accepting unobfuscated traffic.\n *\n * @schema\n */\n entryEndpoint: {\n ...l4EndpointEntity,\n description: `The L4 endpoint accepting unobfuscated traffic.`,\n},\n },\n}\n"],"mappings":"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","names":["defineEntity","defineUnit","Type","defineEntity","Type","defineUnit","defineEntity","defineUnit","Type","defineEntity","Type","defineUnit","clusterEntity","defineEntity","defineUnit","Type","defineEntity","defineUnit","Type","Type","defineEntity","clusterEntity","defineUnit","clusterEntity","defineEntity","defineUnit","Type","clusterEntity","defineEntity","Type","defineUnit","defineEntity","defineUnit","Type","Type","defineEntity","defineUnit","clusterEntity","defineEntity","defineUnit","Type","defineEntity","defineUnit","Type","defineEntity","Type","defineUnit","clusterEntity","defineEntity","defineUnit","Type","defineEntity","Type","defineUnit","clusterEntity","defineUnit","Type","defineUnit","Type","clusterEntity","defineUnit","Type","defineUnit","Type","clusterEntity","defineUnit","Type","defineUnit","Type","clusterEntity","defineUnit","Type","defineUnit","Type","clusterEntity","defineUnit","Type","defineUnit","Type","clusterEntity","defineEntity","defineUnit","Type","defineEntity","Type","defineUnit","clusterEntity","defineUnit","Type","defineUnit","Type","clusterEntity","defineUnit","Type","Type","defineUnit","clusterEntity","defineUnit","Type","defineUnit","Type","clusterEntity","connection","defineUnit","Type","connection","defineUnit","Type","cluster","defineUnit","Type","cluster","defineUnit","Type","clusterEntity","peer","defineUnit","Type","Type","peer","defineUnit","connection","virtualMachine","defineEntity","defineUnit","Type","defineEntity","Type","connection","defineUnit","virtualMachine","defineEntity","defineUnit","Type","defineEntity","Type","defineUnit","defineUnit","Type","defineUnit","Type","defineUnit","Type","Type","clusterEntity","defineUnit"]}
|
1
|
+
{"version":3,"sources":["../src/common.ts","../src/ssh.ts","../src/proxmox.ts","../src/k8s.ts","../src/dns.ts","../src/talos.ts","../src/wireguard.ts","../src/apps/index.ts","../src/apps/mariadb.ts","../src/restic.ts","../src/apps/postgresql.ts","../src/apps/vaultwarden.ts","../src/apps/traefik.ts","../src/apps/kubernetes-dashboard.ts","../src/apps/grocy.ts","../src/apps/maybe.ts","../src/apps/mongodb.ts","../src/apps/deployment.ts","../src/apps/syncthing.ts","../src/apps/code-server.ts","../src/cloudflare.ts","../src/k3s.ts","../src/mullvad.ts","../src/timeweb.ts","../src/nixos.ts","../src/sops.ts","../src/obfuscators/index.ts","../src/obfuscators/phantun.ts","../src/obfuscators/shared.ts"],"sourcesContent":["import { defineEntity, defineUnit, Type, type Static } from \"@highstate/contract\"\nimport { credentialsSchema, keyPairEntity } from \"./ssh\"\n\nexport const serverEntity = defineEntity({\n type: \"common.server\",\n\n schema: Type.Object({\n endpoint: Type.String(),\n hostname: Type.String(),\n sshCredentials: Type.Optional(credentialsSchema),\n }),\n\n meta: {\n color: \"#009688\",\n },\n})\n\nexport const l3EndpointEntity = defineEntity({\n type: \"common.l3-endpoint\",\n\n schema: Type.Object({\n endpoint: Type.String(),\n }),\n\n meta: {\n color: \"#1B5E20\",\n description: \"The L3 endpoint for some service. May be a domain name or an IP address.\",\n },\n})\n\nexport const l4EndpointEntity = defineEntity({\n type: \"common.l4-endpoint\",\n\n schema: Type.Object({\n endpoint: Type.String(),\n port: Type.Number(),\n }),\n\n meta: {\n color: \"#F57F17\",\n description: \"The L4 endpoint for some service. Extends an L3 endpoint with a port.\",\n },\n})\n\nexport const existingServer = defineUnit({\n type: \"common.existing-server\",\n\n args: {\n endpoint: Type.String(),\n sshUser: Type.Optional(Type.String({ default: \"root\" })),\n sshPort: Type.Optional(Type.Number({ default: 22 })),\n },\n\n secrets: {\n sshPassword: Type.Optional(Type.String()),\n sshPrivateKey: Type.Optional(Type.String()),\n },\n\n inputs: {\n sshKeyPair: {\n entity: keyPairEntity,\n required: false,\n },\n },\n\n outputs: {\n server: serverEntity,\n },\n\n meta: {\n displayName: \"Existing Server\",\n description: \"An existing server that can be used in the configuration.\",\n primaryIcon: \"mdi:server\",\n defaultNamePrefix: \"server\",\n },\n\n source: {\n package: \"@highstate/common\",\n path: \"existing-server\",\n },\n})\n\nexport const script = defineUnit({\n type: \"common.script\",\n\n args: {\n script: Type.String({ language: \"shell\" }),\n updateScript: Type.Optional(Type.String({ language: \"shell\" })),\n deleteScript: Type.Optional(Type.String({ language: \"shell\" })),\n },\n\n inputs: {\n server: serverEntity,\n },\n\n outputs: {\n server: serverEntity,\n },\n\n meta: {\n displayName: \"Shell Script\",\n description: \"Run a shell script on the server.\",\n primaryIcon: \"mdi:bash\",\n },\n\n source: {\n package: \"@highstate/common\",\n path: \"script\",\n },\n})\n\nexport const fileMetaEntity = defineEntity({\n type: \"common.file-meta\",\n\n schema: Type.Object({\n name: Type.String(),\n size: Type.Number(),\n isBinary: Type.Optional(Type.Boolean()),\n isExecutable: Type.Optional(Type.Boolean()),\n }),\n\n meta: {\n color: \"#FF5722\",\n description: \"Metadata for a file.\",\n },\n})\n\nexport const fileContentEntity = defineEntity({\n type: \"common.file-content\",\n\n schema: Type.Union([\n Type.Object({\n type: Type.Literal(\"inline\"),\n content: Type.String(),\n }),\n Type.Object({\n type: Type.Literal(\"remote\"),\n url: Type.String(),\n }),\n ]),\n\n meta: {\n color: \"#FF5722\",\n description: \"The content of a file.\",\n },\n})\n\nexport const fileEntity = defineEntity({\n type: \"common.file\",\n\n schema: Type.Object({\n meta: fileMetaEntity.schema,\n content: fileContentEntity.schema,\n }),\n\n meta: {\n color: \"#FF5722\",\n },\n})\n\nexport type Server = Static<typeof serverEntity.schema>\nexport type L3Endpoint = Static<typeof l3EndpointEntity.schema>\nexport type L4Endpoint = Static<typeof l4EndpointEntity.schema>\n\nexport type File = Static<typeof fileEntity.schema>\nexport type FileMeta = Static<typeof fileMetaEntity.schema>\nexport type FileContent = Static<typeof fileContentEntity.schema>\n","import { defineEntity, defineUnit, Type, type Static } from \"@highstate/contract\"\n\nexport const keyTypeSchema = Type.Union([\n //\n Type.Literal(\"rsa\"),\n Type.Literal(\"ed25519\"),\n])\n\nexport const keyPairEntity = defineEntity({\n type: \"ssh.key-pair\",\n\n schema: Type.Object({\n type: keyTypeSchema,\n privateKey: Type.String(),\n publicKey: Type.String(),\n }),\n\n meta: {\n color: \"#2b5797\",\n },\n})\n\nexport const credentialsSchema = Type.Object({\n endpoint: Type.Optional(Type.String()),\n user: Type.Optional(Type.String()),\n port: Type.Optional(Type.Number()),\n password: Type.Optional(Type.String()),\n privateKey: Type.Optional(Type.String()),\n})\n\nexport const keyPair = defineUnit({\n type: \"ssh.key-pair\",\n\n secrets: {\n privateKey: Type.Optional(Type.String()),\n },\n\n outputs: {\n keyPair: keyPairEntity,\n },\n\n meta: {\n displayName: \"SSH Key Pair\",\n description: \"Holds the ED25519 SSH key pair and generates the private key if not provided.\",\n category: \"ssh\",\n primaryIcon: \"charm:key\",\n primaryIconColor: \"#ffffff\",\n secondaryIcon: \"mdi:lock\",\n secondaryIconColor: \"#ffffff\",\n },\n\n source: {\n package: \"@highstate/common\",\n path: \"ssh/key-pair\",\n },\n})\n\nexport type KeyType = Static<typeof keyTypeSchema>\nexport type Credentials = Static<typeof credentialsSchema>\nexport type KeyPair = Static<typeof keyPairEntity.schema>\n","import { defineEntity, defineUnit, Type } from \"@highstate/contract\"\nimport { serverEntity } from \"./common\"\nimport { keyPairEntity } from \"./ssh\"\n\nexport const clusterEntity = defineEntity({\n type: \"proxmox.cluster\",\n\n schema: Type.Object({\n endpoint: Type.String(),\n insecure: Type.Optional(Type.Boolean()),\n username: Type.Optional(Type.String()),\n\n defaultNodeName: Type.String(),\n defaultDatastoreId: Type.String(),\n\n password: Type.Optional(Type.String()),\n apiToken: Type.Optional(Type.String()),\n }),\n\n meta: {\n color: \"#e56901\",\n },\n})\n\nexport const imageEntity = defineEntity({\n type: \"proxmox.image\",\n\n schema: Type.Object({\n id: Type.String(),\n }),\n\n meta: {\n color: \"#e56901\",\n },\n})\n\nexport const connection = defineUnit({\n type: \"proxmox.connection\",\n\n args: {\n endpoint: Type.String(),\n insecure: Type.Optional(Type.Boolean()),\n username: Type.Optional(Type.String()),\n\n defaultNodeName: Type.Optional(Type.String()),\n defaultDatastoreId: Type.Optional(Type.String()),\n },\n\n secrets: {\n password: Type.Optional(Type.String()),\n apiToken: Type.Optional(Type.String()),\n },\n\n outputs: {\n proxmoxCluster: clusterEntity,\n },\n\n meta: {\n displayName: \"Proxmox Connection\",\n description: \"The connection to an existing Proxmox cluster.\",\n category: \"Proxmox\",\n primaryIcon: \"simple-icons:proxmox\",\n primaryIconColor: \"#e56901\",\n secondaryIcon: \"codicon:vm\",\n },\n\n source: {\n package: \"@highstate/proxmox\",\n path: \"connection\",\n },\n})\n\nexport const image = defineUnit({\n type: \"proxmox.image\",\n\n args: {\n url: Type.String(),\n nodeName: Type.Optional(Type.String()),\n sha256: Type.Optional(Type.String()),\n datastoreId: Type.Optional(Type.String()),\n },\n\n inputs: {\n proxmoxCluster: clusterEntity,\n },\n\n outputs: {\n image: imageEntity,\n },\n\n meta: {\n displayName: \"Proxmox Image\",\n description: \"The image to upload to a Proxmox cluster.\",\n category: \"Proxmox\",\n primaryIcon: \"simple-icons:proxmox\",\n primaryIconColor: \"#e56901\",\n secondaryIcon: \"mage:compact-disk-fill\",\n },\n\n source: {\n package: \"@highstate/proxmox\",\n path: \"image\",\n },\n})\n\nexport const existingImage = defineUnit({\n type: \"proxmox.existing-image\",\n\n args: {\n id: Type.String(),\n },\n\n outputs: {\n image: imageEntity,\n },\n\n meta: {\n displayName: \"Proxmox Existing Image\",\n description: \"The existing image on a Proxmox cluster.\",\n category: \"Proxmox\",\n primaryIcon: \"simple-icons:proxmox\",\n primaryIconColor: \"#e56901\",\n secondaryIcon: \"mage:compact-disk-fill\",\n },\n\n source: {\n package: \"@highstate/proxmox\",\n path: \"existing-image\",\n },\n})\n\nexport const virtualMachine = defineUnit({\n type: \"proxmox.virtual-machine\",\n\n args: {\n nodeName: Type.Optional(Type.String()),\n\n cpuType: Type.Optional(Type.String({ default: \"host\" })),\n cores: Type.Optional(Type.Number({ default: 1 })),\n sockets: Type.Optional(Type.Number({ default: 1 })),\n memory: Type.Optional(Type.Number({ default: 512 })),\n\n ipv4: Type.Optional(Type.String()),\n ipv4Gateway: Type.Optional(Type.String()),\n dns: Type.Optional(Type.Array(Type.String())),\n\n datastoreId: Type.Optional(Type.String()),\n diskSize: Type.Optional(Type.Number({ default: 8 })),\n bridge: Type.Optional(Type.String({ default: \"vmbr0\" })),\n\n sshPort: Type.Optional(Type.Number({ default: 22 })),\n sshUser: Type.Optional(Type.String({ default: \"root\" })),\n\n waitForAgent: Type.Optional(Type.Boolean({ default: true })),\n },\n\n inputs: {\n proxmoxCluster: clusterEntity,\n image: imageEntity,\n\n sshKeyPair: {\n entity: keyPairEntity,\n required: false,\n },\n },\n\n secrets: {\n sshPassword: Type.Optional(Type.String()),\n },\n\n outputs: {\n server: serverEntity,\n },\n\n meta: {\n displayName: \"Proxmox Virtual Machine\",\n description: \"The virtual machine on a Proxmox cluster.\",\n category: \"Proxmox\",\n primaryIcon: \"simple-icons:proxmox\",\n primaryIconColor: \"#e56901\",\n secondaryIcon: \"codicon:vm\",\n },\n\n source: {\n package: \"@highstate/proxmox\",\n path: \"virtual-machine\",\n },\n})\n","import { defineEntity, defineUnit, Type, type Static } from \"@highstate/contract\"\nimport { Literal } from \"@sinclair/typebox\"\nimport { providerEntity } from \"./dns\"\n\nexport const tunDevicePolicySchema = Type.Union([\n Type.Object({\n type: Literal(\"host\"),\n }),\n Type.Object({\n type: Literal(\"plugin\"),\n resourceName: Type.String(),\n resourceValue: Type.String(),\n }),\n])\n\nexport const clusterInfoSchema = Type.Object({\n id: Type.String(),\n name: Type.String(),\n cni: Type.Optional(Type.String()),\n externalIps: Type.Array(Type.String()),\n fqdn: Type.Optional(Type.String()),\n kubeApiServerIp: Type.Optional(Type.String()),\n kubeApiServerPort: Type.Optional(Type.Number()),\n\n /**\n * Specifies the policy for using the tun device inside containers.\n *\n * If not provided, the default policy is `host` which assumes just mounting /dev/net/tun from the host.\n *\n * For some runtimes, like Talos's one, the /dev/net/tun device is not available in the host, so the plugin policy should be used.\n */\n tunDevicePolicy: Type.Optional(tunDevicePolicySchema),\n})\n\nexport const serviceTypeSchema = Type.StringEnum([\"NodePort\", \"LoadBalancer\", \"ClusterIP\"])\n\nexport const metadataSchema = Type.Object({\n namespace: Type.Optional(Type.String()),\n name: Type.String(),\n labels: Type.Optional(Type.Record(Type.String(), Type.String())),\n annotations: Type.Optional(Type.Record(Type.String(), Type.String())),\n})\n\nexport const servicePortSchema = Type.Object({\n name: Type.Optional(Type.String()),\n port: Type.Optional(Type.Number()),\n targetPort: Type.Optional(Type.Union([Type.Number(), Type.String()])),\n protocol: Type.Optional(Type.String()),\n})\n\nexport const serviceSpecSchema = Type.Object({\n type: Type.Optional(Type.String()),\n selector: Type.Record(Type.String(), Type.String()),\n ports: Type.Array(servicePortSchema),\n clusterIP: Type.Optional(Type.String()),\n clusterIPs: Type.Optional(Type.Array(Type.String())),\n externalIPs: Type.Optional(Type.Array(Type.String())),\n})\n\nexport const serviceEntity = defineEntity({\n type: \"k8s.service\",\n\n schema: Type.Object({\n type: Type.Literal(\"k8s.service\"),\n clusterInfo: clusterInfoSchema,\n metadata: metadataSchema,\n spec: serviceSpecSchema,\n }),\n\n meta: {\n color: \"#2196F3\",\n },\n})\n\nexport const clusterEntity = defineEntity({\n type: \"k8s.cluster\",\n\n schema: Type.Object({\n info: clusterInfoSchema,\n kubeconfig: Type.String(),\n }),\n\n meta: {\n color: \"#2196F3\",\n },\n})\n\nexport const internalIpsPolicySchema = Type.StringEnum([\"always\", \"public\", \"never\"])\n\nexport const sharedClusterArgs = {\n /**\n * The list of external IPs of the cluster nodes allowed to be used for external access.\n *\n * If not provided, will be automatically detected by querying the cluster nodes.\n *\n * @schema\n */\n externalIps: {\n ...Type.Optional(Type.Array(Type.String())),\n description: `The list of external IPs of the cluster nodes allowed to be used for external access.\n\n If not provided, will be automatically detected by querying the cluster nodes.`,\n},\n\n /**\n * The policy for using internal IPs of the nodes as external IPs.\n *\n * - `always`: always use internal IPs as external IPs;\n * - `public`: use internal IPs as external IPs only if they are (theoretically) routable from the public internet **(default)**;\n * - `never`: never use internal IPs as external IPs.\n *\n * @schema\n */\n internalIpsPolicy: {\n ...{ ...internalIpsPolicySchema, default: \"public\" },\n description: `The policy for using internal IPs of the nodes as external IPs.\n\n - \\`always\\`: always use internal IPs as external IPs;\n - \\`public\\`: use internal IPs as external IPs only if they are (theoretically) routable from the public internet **(default)**;\n - \\`never\\`: never use internal IPs as external IPs.`,\n},\n\n /**\n * The FQDN to register the cluster nodes with.\n *\n * If provided and `registerFqdn` is set to `true`, the corresponding DNS provider must be provided to set up the DNS records.\n *\n * @schema\n */\n fqdn: {\n ...Type.Optional(Type.String()),\n description: `The FQDN to register the cluster nodes with.\n\n If provided and \\`registerFqdn\\` is set to \\`true\\`, the corresponding DNS provider must be provided to set up the DNS records.`,\n},\n\n /**\n * Whether to register the cluster nodes with the provided FQDN.\n *\n * By default, `true`.\n *\n * @schema\n */\n registerFqdn: {\n ...Type.Boolean({ default: true }),\n description: `Whether to register the cluster nodes with the provided FQDN.\n\n By default, \\`true\\`.`,\n},\n}\n\nexport const existingCluster = defineUnit({\n type: \"k8s.existing-cluster\",\n\n args: {\n ...sharedClusterArgs,\n\n /**\n * The policy for using the tun device inside containers.\n *\n * If not provided, the default policy is `host` which assumes just mounting /dev/net/tun from the host.\n *\n * For some runtimes, like Talos's one, the /dev/net/tun device is not available in the host, so the plugin policy should be used.\n *\n * @schema\n */\n tunDevicePolicy: {\n ...Type.Optional(tunDevicePolicySchema),\n description: `The policy for using the tun device inside containers.\n\n If not provided, the default policy is \\`host\\` which assumes just mounting /dev/net/tun from the host.\n\n For some runtimes, like Talos's one, the /dev/net/tun device is not available in the host, so the plugin policy should be used.`,\n},\n },\n\n secrets: {\n /**\n * The kubeconfig of the cluster to use for connecting to the cluster.\n *\n * Will be available for all components using `cluster` output of this unit.\n *\n * @schema\n */\n kubeconfig: {\n ...Type.Record(Type.String(), Type.Any()),\n description: `The kubeconfig of the cluster to use for connecting to the cluster.\n\n Will be available for all components using \\`cluster\\` output of this unit.`,\n},\n },\n\n outputs: {\n cluster: clusterEntity,\n },\n\n meta: {\n displayName: \"Existing Cluster\",\n description: \"An existing Kubernetes cluster.\",\n primaryIcon: \"mdi:kubernetes\",\n },\n\n source: {\n package: \"@highstate/k8s\",\n path: \"units/existing-cluster\",\n },\n})\n\nexport const gatewayEntity = defineEntity({\n type: \"k8s.gateway\",\n\n schema: Type.Object({\n clusterInfo: clusterInfoSchema,\n gatewayClassName: Type.String(),\n httpListenerPort: Type.Number(),\n httpsListenerPort: Type.Number(),\n ip: Type.String(),\n service: Type.Optional(serviceEntity.schema),\n }),\n\n meta: {\n color: \"#4CAF50\",\n },\n})\n\nexport const tlsIssuerEntity = defineEntity({\n type: \"k8s.tls-issuer\",\n\n schema: Type.Object({\n clusterInfo: clusterInfoSchema,\n clusterIssuerName: Type.String(),\n }),\n\n meta: {\n color: \"#f06292\",\n },\n})\n\nexport const accessPointEntity = defineEntity({\n type: \"k8s.access-point\",\n\n schema: Type.Object({\n gateway: gatewayEntity.schema,\n tlsIssuer: tlsIssuerEntity.schema,\n dnsProviders: Type.Array(providerEntity.schema),\n }),\n\n meta: {\n color: \"#F57F17\",\n },\n})\n\nexport const accessPoint = defineUnit({\n type: \"k8s.access-point\",\n\n inputs: {\n gateway: gatewayEntity,\n tlsIssuer: tlsIssuerEntity,\n dnsProviders: {\n entity: providerEntity,\n multiple: true,\n },\n },\n\n outputs: {\n accessPoint: accessPointEntity,\n },\n\n meta: {\n displayName: \"Access Point\",\n description: \"An access point which can be used to connect to services.\",\n primaryIcon: \"mdi:access-point\",\n },\n\n source: {\n package: \"@highstate/k8s\",\n path: \"units/access-point\",\n },\n})\n\nexport const certManager = defineUnit({\n type: \"k8s.cert-manager\",\n\n inputs: {\n k8sCluster: clusterEntity,\n },\n\n outputs: {\n k8sCluster: clusterEntity,\n },\n\n meta: {\n displayName: \"Cert Manager\",\n description: \"A certificate manager for managing TLS certificates.\",\n primaryIcon: \"simple-icons:letsencrypt\",\n },\n\n source: {\n package: \"@highstate/k8s\",\n path: \"units/cert-manager\",\n },\n})\n\nexport const dns01TlsIssuer = defineUnit({\n type: \"k8s.dns01-issuer\",\n\n args: {\n /**\n * The top-level domains to filter the DNS01 challenge for.\n *\n * If not provided, will use all domains passed to the DNS providers.\n *\n * @schema\n */\n domains: {\n ...Type.Optional(Type.Array(Type.String())),\n description: `The top-level domains to filter the DNS01 challenge for.\n\n If not provided, will use all domains passed to the DNS providers.`,\n},\n },\n\n inputs: {\n k8sCluster: clusterEntity,\n dnsProviders: {\n entity: providerEntity,\n multiple: true,\n },\n },\n\n outputs: {\n tlsIssuer: tlsIssuerEntity,\n },\n\n meta: {\n displayName: \"DNS01 Issuer\",\n description: \"A TLS issuer for issuing certificate using DNS01 challenge.\",\n primaryIcon: \"mdi:certificate\",\n },\n\n source: {\n package: \"@highstate/k8s\",\n path: \"units/dns01-issuer\",\n },\n})\n\nexport const containerSchema = Type.Object({\n name: Type.String(),\n image: Type.String(),\n})\n\nexport const labelSelectorSchema = Type.Object({\n matchLabels: Type.Record(Type.String(), Type.String()),\n})\n\nexport const deploymentSpecSchema = Type.Object({\n replicas: Type.Number(),\n selector: labelSelectorSchema,\n template: Type.Object({\n metadata: metadataSchema,\n spec: Type.Object({\n containers: Type.Array(containerSchema),\n }),\n }),\n})\n\nexport const deploymentEntity = defineEntity({\n type: \"k8s.deployment\",\n\n schema: Type.Object({\n type: Type.Literal(\"k8s.deployment\"),\n clusterInfo: clusterInfoSchema,\n metadata: metadataSchema,\n\n service: Type.Optional(serviceEntity.schema),\n }),\n\n meta: {\n color: \"#4CAF50\",\n },\n})\n\nexport const statefulSetEntity = defineEntity({\n type: \"k8s.stateful-set\",\n\n schema: Type.Object({\n type: Type.Literal(\"k8s.stateful-set\"),\n clusterInfo: clusterInfoSchema,\n metadata: metadataSchema,\n\n service: Type.Optional(serviceEntity.schema),\n }),\n\n meta: {\n color: \"#FFC107\",\n },\n})\n\nexport const persistentVolumeClaimEntity = defineEntity({\n type: \"k8s.persistent-volume-claim\",\n\n schema: Type.Object({\n type: Type.Literal(\"k8s.persistent-volume-claim\"),\n clusterInfo: clusterInfoSchema,\n metadata: metadataSchema,\n }),\n\n meta: {\n color: \"#FFC107\",\n },\n})\n\nexport const interfaceEntity = defineEntity({\n type: \"k8s.interface\",\n\n schema: Type.Object({\n name: Type.String(),\n deployment: deploymentEntity.schema,\n }),\n\n meta: {\n color: \"#2196F3\",\n description:\n \"The interface in a network space of pod kernel which can accept or transmit packets.\",\n },\n})\n\nexport const gatewayApi = defineUnit({\n type: \"k8s.gateway-api\",\n\n inputs: {\n k8sCluster: clusterEntity,\n },\n\n outputs: {\n k8sCluster: clusterEntity,\n },\n\n meta: {\n displayName: \"Gateway API\",\n description: \"Installs the Gateway API CRDs to the cluster.\",\n primaryIcon: \"mdi:kubernetes\",\n primaryIconColor: \"#4CAF50\",\n },\n\n source: {\n package: \"@highstate/k8s\",\n path: \"units/gateway-api\",\n },\n})\n\nexport type ClusterInfo = Static<typeof clusterInfoSchema>\nexport type Cluster = Static<typeof clusterEntity.schema>\n\nexport type Gateway = Static<typeof gatewayEntity.schema>\nexport type TlsIssuer = Static<typeof tlsIssuerEntity.schema>\nexport type AccessPoint = Static<typeof accessPointEntity.schema>\n\nexport type Metadata = Static<typeof metadataSchema>\n\nexport type ServiceType = Static<typeof serviceTypeSchema>\nexport type ServicePort = Static<typeof servicePortSchema>\nexport type ServiceSpec = Static<typeof serviceSpecSchema>\nexport type Service = Static<typeof serviceEntity.schema>\n\nexport type Container = Static<typeof containerSchema>\nexport type DeploymentSpec = Static<typeof deploymentSpecSchema>\nexport type Deployment = Static<typeof deploymentEntity.schema>\n\nexport type PersistentVolumeClaim = Static<typeof persistentVolumeClaimEntity.schema>\nexport type StatefulSet = Static<typeof statefulSetEntity.schema>\n\nexport type Interface = Static<typeof interfaceEntity.schema>\nexport type InternalIpsPolicy = Static<typeof internalIpsPolicySchema>\n","import { defineEntity, defineUnit, Type, type Static } from \"@highstate/contract\"\n\nexport const providerEntity = defineEntity({\n type: \"dns.provider\",\n\n schema: Type.Object({\n name: Type.String(),\n type: Type.String(),\n data: Type.Record(Type.String(), Type.Unknown()),\n domain: Type.String(),\n }),\n\n meta: {\n color: \"#FF5722\",\n },\n})\n\nexport const record = defineUnit({\n type: \"common.dns-record\",\n\n args: {\n name: Type.String(),\n type: Type.String(),\n value: Type.String(),\n ttl: Type.Optional(Type.Number()),\n },\n\n inputs: {\n dnsProvider: providerEntity,\n },\n\n meta: {\n displayName: \"DNS Record\",\n description: \"A DNS record to create.\",\n primaryIcon: \"mdi:server\",\n defaultNamePrefix: \"record\",\n },\n\n source: {\n package: \"@highstate/common\",\n path: \"dns/record\",\n },\n})\n\nexport type Provider = Static<typeof providerEntity.schema>\n","import { defineEntity, defineUnit, Type } from \"@highstate/contract\"\nimport { serverEntity } from \"./common\"\nimport { clusterEntity as k8sClusterEntity } from \"./k8s\"\n\nexport const clusterEntity = defineEntity({\n type: \"talos.cluster\",\n\n schema: Type.Object({\n clientConfiguration: Type.String(),\n machineSecrets: Type.String(),\n }),\n\n meta: {\n color: \"#2d2d2d\",\n },\n})\n\nexport const cniSchema = Type.StringEnum([\"none\", \"cilium\", \"flannel\"])\nexport const csiSchema = Type.StringEnum([\"none\", \"local-path-provisioner\"])\n\nexport const cluster = defineUnit({\n type: \"talos.cluster\",\n\n args: {\n /**\n * Allow scheduling workloads on the master nodes.\n *\n * If no workers are specified, this option is ignored and the master nodes are used as workers.\n *\n * By default, this option is set to false.\n *\n * @schema\n */\n scheduleOnMasters: {\n ...Type.Default(Type.Boolean(), false),\n description: `Allow scheduling workloads on the master nodes.\n\n If no workers are specified, this option is ignored and the master nodes are used as workers.\n\n By default, this option is set to false.`,\n},\n\n /**\n * The endpoint of the cluster.\n *\n * By default, the first master node's endpoint is used.\n *\n * @schema\n */\n endpoint: {\n ...Type.Optional(Type.String()),\n description: `The endpoint of the cluster.\n\n By default, the first master node's endpoint is used.`,\n},\n\n /**\n * The name of the cluster.\n *\n * By default, the name of the instance is used.\n *\n * @schema\n */\n clusterName: {\n ...Type.Optional(Type.String()),\n description: `The name of the cluster.\n\n By default, the name of the instance is used.`,\n},\n\n /**\n * The CNI plugin to use.\n *\n * The following options are available:\n * - \"cilium\" (default)\n * - \"flannel\" (built-in in Talos)\n * - \"none\" (disable CNI, must be installed manually)\n *\n * The \"cilium\" CNI plugin is recommended to cover advanced network policies like FQDNs.\n *\n * @schema\n */\n cni: {\n ...Type.Default(cniSchema, \"cilium\"),\n description: `The CNI plugin to use.\n\n The following options are available:\n - \"cilium\" (default)\n - \"flannel\" (built-in in Talos)\n - \"none\" (disable CNI, must be installed manually)\n\n The \"cilium\" CNI plugin is recommended to cover advanced network policies like FQDNs.`,\n},\n\n /**\n * The CSI plugin to use.\n *\n * The following options are available:\n * - \"local-path-provisioner\" (default)\n * - \"none\" (disable CSI, must be installed manually if needed)\n *\n * @schema\n */\n csi: {\n ...Type.Default(csiSchema, \"local-path-provisioner\"),\n description: `The CSI plugin to use.\n\n The following options are available:\n - \"local-path-provisioner\" (default)\n - \"none\" (disable CSI, must be installed manually if needed)`,\n},\n\n /**\n * The shared configuration patch.\n * It will be applied to all nodes.\n *\n * @schema\n */\n sharedConfigPatch: {\n ...Type.Optional(Type.Record(Type.String(), Type.Any())),\n description: `The shared configuration patch.\n It will be applied to all nodes.`,\n},\n\n /**\n * The master configuration patch.\n * It will be applied to all master nodes.\n *\n * @schema\n */\n masterConfigPatch: {\n ...Type.Optional(Type.Record(Type.String(), Type.Any())),\n description: `The master configuration patch.\n It will be applied to all master nodes.`,\n},\n\n /**\n * The worker configuration patch.\n * It will be applied to all worker nodes.\n *\n * @schema\n */\n workerConfigPatch: {\n ...Type.Optional(Type.Record(Type.String(), Type.Any())),\n description: `The worker configuration patch.\n It will be applied to all worker nodes.`,\n},\n },\n\n inputs: {\n masters: {\n entity: serverEntity,\n multiple: true,\n },\n workers: {\n entity: serverEntity,\n multiple: true,\n required: false,\n },\n },\n\n outputs: {\n k8sCluster: k8sClusterEntity,\n talosCluster: clusterEntity,\n },\n\n meta: {\n displayName: \"Talos Cluster\",\n description: \"A Kubernetes cluster managed by Talos.\",\n category: \"Talos\",\n color: \"#2d2d2d\",\n primaryIcon: \"simple-icons:talos\",\n secondaryIcon: \"devicon:kubernetes\",\n },\n\n source: {\n package: \"@highstate/talos\",\n path: \"cluster\",\n },\n})\n","import { defineEntity, defineUnit, Type, type Static } from \"@highstate/contract\"\nimport {\n clusterEntity,\n deploymentEntity,\n interfaceEntity,\n serviceEntity,\n serviceTypeSchema,\n statefulSetEntity,\n} from \"./k8s\"\nimport { providerEntity } from \"./dns\"\nimport { l4EndpointEntity } from \"./common\"\n\nexport const backendSchema = Type.StringEnum([\"wireguard\", \"amneziawg\"])\nexport const presharedKeyModeSchema = Type.StringEnum([\"none\", \"global\", \"secure\"])\n\nexport type Backend = Static<typeof backendSchema>\nexport type PresharedKeyMode = Static<typeof presharedKeyModeSchema>\n\nexport const networkEntity = defineEntity({\n type: \"wireguard.network\",\n\n schema: Type.Object({\n backend: Type.Optional(backendSchema),\n presharedKeyMode: presharedKeyModeSchema,\n globalPresharedKey: Type.Optional(Type.String()),\n ipv6: Type.Optional(Type.Boolean()),\n }),\n})\n\nexport const identityEntity = defineEntity({\n type: \"wireguard.identity\",\n\n schema: Type.Object({\n name: Type.String(),\n network: Type.Optional(networkEntity.schema),\n address: Type.Optional(Type.String()),\n privateKey: Type.String(),\n presharedKeyPart: Type.Optional(Type.String()),\n k8sServices: Type.Array(serviceEntity.schema),\n exitNode: Type.Boolean(),\n listenPort: Type.Optional(Type.Number()),\n externalIp: Type.Optional(Type.String()),\n endpoint: Type.Optional(Type.String()),\n fqdn: Type.Optional(Type.String()),\n }),\n\n meta: {\n color: \"#F44336\",\n },\n})\n\nexport const peerEntity = defineEntity({\n type: \"wireguard.peer\",\n\n schema: Type.Object({\n name: Type.String(),\n network: Type.Optional(networkEntity.schema),\n publicKey: Type.String(),\n address: Type.Optional(Type.String()),\n allowedIps: Type.Array(Type.String()),\n endpoint: Type.Optional(Type.String()),\n presharedKeyPart: Type.Optional(Type.String()),\n excludedIps: Type.Optional(Type.Array(Type.String())),\n dns: Type.Optional(Type.Array(Type.String())),\n }),\n\n meta: {\n color: \"#673AB7\",\n },\n})\n\nexport const k8sNodeEntity = defineEntity({\n type: \"wireguard.node\",\n\n schema: Type.Object({\n network: Type.String(),\n address: Type.String(),\n endpoint: Type.Optional(Type.String()),\n peers: Type.Array(Type.String()),\n }),\n})\n\nexport type Network = Static<typeof networkEntity.schema>\nexport type Identity = Static<typeof identityEntity.schema>\nexport type Peer = Static<typeof peerEntity.schema>\n\n/**\n * The network hols the shared configuration for the WireGuard identities, peers and nodes.\n */\nexport const network = defineUnit({\n type: \"wireguard.network\",\n\n args: {\n /**\n * The backend to use for the WireGuard network.\n *\n * Possible values are:\n * 1. `wireguard` - The default backend.\n * 2. `amneziawg` - The censorship-resistant fork of WireGuard.\n *\n * By default, the `wireguard` backend is used.\n *\n * @schema\n */\n backend: {\n ...Type.Default(backendSchema, \"wireguard\"),\n description: `The backend to use for the WireGuard network.\n\n Possible values are:\n 1. \\`wireguard\\` - The default backend.\n 2. \\`amneziawg\\` - The censorship-resistant fork of WireGuard.\n\n By default, the \\`wireguard\\` backend is used.`,\n},\n\n /**\n * The option which defines how to handle pre-shared keys between peers.\n *\n * 1. `none` - No pre-shared keys will be used.\n * 2. `global` - A single pre-shared key will be used for all peer pairs in the network.\n * 3. `secure` - Each peer pair will have its own pre-shared key.\n * In this case, each identity generates `presharedKeyPart` and the actual pre-shared key\n * for each peer pair will be computed as `xor(peer1.presharedKeyPart, peer2.presharedKeyPart)`.\n *\n * If the whole network is managed by the HighState, the `secure` mode is recommended.\n *\n * By default, the `none` mode is used.\n *\n * @schema\n */\n presharedKeyMode: {\n ...Type.Optional(presharedKeyModeSchema),\n description: `The option which defines how to handle pre-shared keys between peers.\n\n 1. \\`none\\` - No pre-shared keys will be used.\n 2. \\`global\\` - A single pre-shared key will be used for all peer pairs in the network.\n 3. \\`secure\\` - Each peer pair will have its own pre-shared key.\n In this case, each identity generates \\`presharedKeyPart\\` and the actual pre-shared key\n for each peer pair will be computed as \\`xor(peer1.presharedKeyPart, peer2.presharedKeyPart)\\`.\n\n If the whole network is managed by the HighState, the \\`secure\\` mode is recommended.\n\n By default, the \\`none\\` mode is used.`,\n},\n\n /**\n * The option to enable IPv6 support in the network.\n *\n * By default, IPv6 support is disabled.\n *\n * @schema\n */\n ipv6: {\n ...Type.Optional(Type.Boolean()),\n description: `The option to enable IPv6 support in the network.\n\n By default, IPv6 support is disabled.`,\n},\n },\n\n secrets: {\n /**\n * The global pre-shared key to use for all peer pairs in the network.\n *\n * Will be used only if `presharedKeyMode` is set to `global`.\n * Will be generated automatically if not provided.\n *\n * @schema\n */\n globalPresharedKey: {\n ...Type.Optional(Type.String()),\n description: `The global pre-shared key to use for all peer pairs in the network.\n\n Will be used only if \\`presharedKeyMode\\` is set to \\`global\\`.\n Will be generated automatically if not provided.`,\n},\n },\n\n outputs: {\n network: networkEntity,\n },\n\n meta: {\n description: \"The WireGuard network with some shared configuration.\",\n primaryIcon: \"simple-icons:wireguard\",\n primaryIconColor: \"#88171a\",\n secondaryIcon: \"mdi:local-area-network-connect\",\n },\n\n source: {\n package: \"@highstate/wireguard\",\n path: \"network\",\n },\n})\n\nconst sharedPeerArgs = {\n /**\n * The name of the WireGuard peer.\n *\n * If not provided, the peer will be named after the unit.\n *\n * @schema\n */\n peerName: {\n ...Type.Optional(Type.String()),\n description: `The name of the WireGuard peer.\n\n If not provided, the peer will be named after the unit.`,\n},\n\n /**\n * The address of the WireGuard interface.\n *\n * The address may be any IPv4 or IPv6 address. CIDR notation is also supported.\n *\n * @schema\n */\n address: {\n ...Type.Optional(Type.String()),\n description: `The address of the WireGuard interface.\n\n The address may be any IPv4 or IPv6 address. CIDR notation is also supported.`,\n},\n\n /**\n * The list of allowed IPs for the peer.\n *\n * @schema\n */\n allowedIps: {\n ...Type.Optional(Type.Array(Type.String())),\n description: `The list of allowed IPs for the peer.`,\n},\n\n /**\n * The convenience option to set `allowedIps` to `0.0.0.0/0, ::/0`.\n *\n * Will be merged with the `allowedIps` if provided.\n *\n * @schema\n */\n exitNode: {\n ...Type.Optional(Type.Boolean()),\n description: `The convenience option to set \\`allowedIps\\` to \\`0.0.0.0/0, ::/0\\`.\n\n Will be merged with the \\`allowedIps\\` if provided.`,\n},\n\n /**\n * The list of IP ranges to exclude from the tunnel.\n *\n * Implementation notes:\n *\n * - This list will not be used to generate the allowed IPs for the peer.\n * - Instead, the node will setup extra direct routes to these IPs via default gateway.\n * - This allows to use `0.0.0.0/0, ::/0` in the `allowedIps` (and corresponding fwmark magic) and still have some IPs excluded from the tunnel.\n *\n * @schema\n */\n excludedIps: {\n ...Type.Optional(Type.Array(Type.String())),\n description: `The list of IP ranges to exclude from the tunnel.\n\n Implementation notes:\n\n - This list will not be used to generate the allowed IPs for the peer.\n - Instead, the node will setup extra direct routes to these IPs via default gateway.\n - This allows to use \\`0.0.0.0/0, ::/0\\` in the \\`allowedIps\\` (and corresponding fwmark magic) and still have some IPs excluded from the tunnel.`,\n},\n\n /**\n * The convenience option to exclude private IPs from the tunnel.\n *\n * For IPv4, the private IPs are:\n *\n * - `10.0.0.0/8`\n * - `172.16.0.0/12`\n * - `192.168.0.0/16`\n *\n * For IPv6, the private IPs are:\n *\n * - `fc00::/7`\n * - `fe80::/10`\n *\n * Will be merged with `excludedIps` if provided.\n *\n * @schema\n */\n excludePrivateIps: {\n ...Type.Optional(Type.Boolean()),\n description: `The convenience option to exclude private IPs from the tunnel.\n\n For IPv4, the private IPs are:\n\n - \\`10.0.0.0/8\\`\n - \\`172.16.0.0/12\\`\n - \\`192.168.0.0/16\\`\n\n For IPv6, the private IPs are:\n\n - \\`fc00::/7\\`\n - \\`fe80::/10\\`\n\n Will be merged with \\`excludedIps\\` if provided.`,\n},\n\n /**\n * The endpoint of the WireGuard peer.\n *\n * @schema\n */\n endpoint: {\n ...Type.Optional(Type.String()),\n description: `The endpoint of the WireGuard peer.`,\n},\n\n /**\n * The DNS servers that should be used by the interface connected to the WireGuard peer.\n *\n * If multiple peers define DNS servers, the node will merge them into a single list (but this is discouraged).\n *\n * @schema\n */\n dns: {\n ...Type.Optional(Type.Array(Type.String())),\n description: `The DNS servers that should be used by the interface connected to the WireGuard peer.\n\n If multiple peers define DNS servers, the node will merge them into a single list (but this is discouraged).`,\n},\n\n /**\n * The convenience option to include the DNS servers to the allowed IPs.\n *\n * By default, is `true`.\n *\n * @schema\n */\n includeDns: {\n ...Type.Optional(Type.Boolean({ default: true })),\n description: `The convenience option to include the DNS servers to the allowed IPs.\n\n By default, is \\`true\\`.`,\n},\n}\n\nconst sharedInterfaceArgs = {\n /**\n * The port to listen on.\n *\n * Will override the `listenPort` of the identity if provided.\n *\n * @schema\n */\n listenPort: {\n ...Type.Optional(Type.Number()),\n description: `The port to listen on.\n\n Will override the \\`listenPort\\` of the identity if provided.`,\n},\n\n /**\n * The DNS servers that should be used by the interface connected to the WireGuard node.\n *\n * Will be merged with the DNS servers of the peers.\n *\n * @schema\n */\n dns: {\n ...Type.Optional(Type.Array(Type.String())),\n description: `The DNS servers that should be used by the interface connected to the WireGuard node.\n\n Will be merged with the DNS servers of the peers.`,\n},\n}\n\nexport const peer = defineUnit({\n type: \"wireguard.peer\",\n\n args: {\n ...sharedPeerArgs,\n\n /**\n * The public key of the WireGuard peer.\n *\n * @schema\n */\n publicKey: {\n ...Type.Optional(Type.String()),\n description: `The public key of the WireGuard peer.`,\n},\n },\n\n inputs: {\n /**\n * The network to use for the WireGuard peer.\n *\n * If not provided, the peer will use default network configuration.\n *\n * @schema\n */\n network: {\n ...{\n entity: networkEntity,\n required: false,\n },\n description: `The network to use for the WireGuard peer.\n\n If not provided, the peer will use default network configuration.`,\n},\n\n /**\n * The existing WireGuard peer to extend.\n *\n * @schema\n */\n peer: {\n ...{\n entity: peerEntity,\n required: false,\n },\n description: `The existing WireGuard peer to extend.`,\n},\n\n /**\n * The L4 endpoint of the peer.\n *\n * Will take priority over all calculated endpoints if provided.\n *\n * @schema\n */\n l4Endpoint: {\n ...{\n entity: l4EndpointEntity,\n required: false,\n },\n description: `The L4 endpoint of the peer.\n\n Will take priority over all calculated endpoints if provided.`,\n},\n },\n\n outputs: {\n peer: peerEntity,\n },\n\n meta: {\n description: \"The WireGuard peer with the public key.\",\n primaryIcon: \"simple-icons:wireguard\",\n primaryIconColor: \"#88171a\",\n secondaryIcon: \"mdi:badge-account-horizontal\",\n },\n\n source: {\n package: \"@highstate/wireguard\",\n path: \"peer\",\n },\n})\n\nexport const identity = defineUnit({\n type: \"wireguard.identity\",\n\n args: {\n ...sharedPeerArgs,\n\n /**\n * The port to listen on.\n *\n * Used by the implementation of the identity and to calculate the endpoint of the peer.\n *\n * @schema\n */\n listenPort: {\n ...Type.Optional(Type.Number()),\n description: `The port to listen on.\n\n Used by the implementation of the identity and to calculate the endpoint of the peer.`,\n},\n\n /**\n * The external IP address of the WireGuard identity.\n *\n * Used by the implementation of the identity and to calculate the endpoint of the peer.\n *\n * @schema\n */\n externalIp: {\n ...Type.Optional(Type.String()),\n description: `The external IP address of the WireGuard identity.\n\n Used by the implementation of the identity and to calculate the endpoint of the peer.`,\n},\n\n /**\n * The endpoint of the WireGuard peer.\n *\n * By default, the endpoint is calculated as `externalIp:listenPort`.\n *\n * If overridden, does not affect node which implements the identity, but is used in the peer configuration of other nodes.\n *\n * Will take priority over all calculated endpoints and `l4Endpoint` input.\n *\n * @schema\n */\n endpoint: {\n ...Type.Optional(Type.String()),\n description: `The endpoint of the WireGuard peer.\n\n By default, the endpoint is calculated as \\`externalIp:listenPort\\`.\n\n If overridden, does not affect node which implements the identity, but is used in the peer configuration of other nodes.\n\n Will take priority over all calculated endpoints and \\`l4Endpoint\\` input.`,\n},\n\n /**\n * The FQDN of the WireGuard identity.\n * Will be used as endpoint for the peer.\n *\n * If `dnsProvider` is provided, external IP is available and `registerFqdn` is set to `true`, and FQDN is provided explicitly (not obtained from the k8s cluster),\n * the FQDN will be registered with the DNS provider.\n *\n * @schema\n */\n fqdn: {\n ...Type.Optional(Type.String()),\n description: `The FQDN of the WireGuard identity.\n Will be used as endpoint for the peer.\n\n If \\`dnsProvider\\` is provided, external IP is available and \\`registerFqdn\\` is set to \\`true\\`, and FQDN is provided explicitly (not obtained from the k8s cluster),\n the FQDN will be registered with the DNS provider.`,\n},\n\n /**\n * Whether to register the FQDN of the identity with the matching DNS providers.\n *\n * By default, `true`.\n *\n * @schema\n */\n registerFqdn: {\n ...Type.Default(Type.Boolean(), true),\n description: `Whether to register the FQDN of the identity with the matching DNS providers.\n\n By default, \\`true\\`.`,\n},\n },\n\n secrets: {\n /**\n * The private key of the WireGuard identity.\n *\n * If not provided, the key will be generated automatically.\n *\n * @schema\n */\n privateKey: {\n ...Type.Optional(Type.String()),\n description: `The private key of the WireGuard identity.\n\n If not provided, the key will be generated automatically.`,\n},\n\n /**\n * The part of the pre-shared of the WireGuard identity.\n *\n * Will be generated automatically if not provided.\n *\n * @schema\n */\n presharedKeyPart: {\n ...Type.Optional(Type.String()),\n description: `The part of the pre-shared of the WireGuard identity.\n\n Will be generated automatically if not provided.`,\n},\n },\n\n inputs: {\n /**\n * The network to use for the WireGuard identity.\n *\n * If not provided, the identity will use default network configuration.\n *\n * @schema\n */\n network: {\n ...{\n entity: networkEntity,\n required: false,\n },\n description: `The network to use for the WireGuard identity.\n\n If not provided, the identity will use default network configuration.`,\n},\n\n /**\n * The list of Kubernetes services to expose the WireGuard identity.\n *\n * Their IP addresses will be added to the `allowedIps` of the identity and passed to the node to set up network policies.\n *\n * @schema\n */\n k8sServices: {\n ...{\n entity: serviceEntity,\n multiple: true,\n required: false,\n },\n description: `The list of Kubernetes services to expose the WireGuard identity.\n\n Their IP addresses will be added to the \\`allowedIps\\` of the identity and passed to the node to set up network policies.`,\n},\n\n /**\n * The Kubernetes cluster associated with the identity.\n *\n * If provided, will be used to obtain the external IP or FQDN of the identity.\n *\n * @schema\n */\n k8sCluster: {\n ...{\n entity: clusterEntity,\n required: false,\n },\n description: `The Kubernetes cluster associated with the identity.\n\n If provided, will be used to obtain the external IP or FQDN of the identity.`,\n},\n\n /**\n * The L4 endpoint of the identity.\n *\n * Will take priority over all calculated endpoints if provided.\n *\n * @schema\n */\n l4Endpoint: {\n ...{\n entity: l4EndpointEntity,\n required: false,\n },\n description: `The L4 endpoint of the identity.\n\n Will take priority over all calculated endpoints if provided.`,\n},\n\n /**\n * The DNS providers to register the FQDN of the identity with.\n *\n * @schema\n */\n dnsProviders: {\n ...{\n entity: providerEntity,\n required: false,\n multiple: true,\n },\n description: `The DNS providers to register the FQDN of the identity with.`,\n},\n },\n\n outputs: {\n identity: identityEntity,\n peer: peerEntity,\n\n l4Endpoint: {\n entity: l4EndpointEntity,\n required: false,\n },\n },\n\n meta: {\n description: \"The WireGuard identity with the public key.\",\n primaryIcon: \"simple-icons:wireguard\",\n primaryIconColor: \"#88171a\",\n secondaryIcon: \"mdi:account\",\n },\n\n source: {\n package: \"@highstate/wireguard\",\n path: \"identity\",\n },\n})\n\nexport const node = defineUnit({\n type: \"wireguard.node\",\n\n args: {\n appName: Type.Optional(Type.String()),\n serviceType: Type.Optional(serviceTypeSchema),\n\n ...sharedInterfaceArgs,\n\n /**\n * The external IP address of the WireGuard node.\n *\n * Will override the `externalIp` of the identity if provided.\n *\n * @schema\n */\n externalIp: {\n ...Type.Optional(Type.String()),\n description: `The external IP address of the WireGuard node.\n\n Will override the \\`externalIp\\` of the identity if provided.`,\n},\n\n /**\n * The extra specification of the container which runs the WireGuard node.\n *\n * Will override any overlapping fields.\n *\n * @schema\n */\n containerSpec: {\n ...Type.Optional(Type.Record(Type.String(), Type.Any())),\n description: `The extra specification of the container which runs the WireGuard node.\n\n Will override any overlapping fields.`,\n},\n },\n\n inputs: {\n identity: identityEntity,\n k8sCluster: clusterEntity,\n\n deployment: {\n entity: deploymentEntity,\n required: false,\n },\n\n statefulSet: {\n entity: statefulSetEntity,\n required: false,\n },\n\n interface: {\n entity: interfaceEntity,\n required: false,\n },\n\n peers: {\n entity: peerEntity,\n multiple: true,\n required: false,\n },\n },\n\n outputs: {\n deployment: {\n entity: deploymentEntity,\n required: false,\n },\n\n interface: {\n entity: interfaceEntity,\n required: false,\n },\n\n service: {\n entity: serviceEntity,\n required: false,\n },\n },\n\n meta: {\n description: \"The WireGuard node running on the Kubernetes.\",\n primaryIcon: \"simple-icons:wireguard\",\n primaryIconColor: \"#88171a\",\n secondaryIcon: \"mdi:server\",\n },\n\n source: {\n package: \"@highstate/wireguard\",\n path: \"node\",\n },\n})\n\nexport const config = defineUnit({\n type: \"wireguard.config\",\n\n args: {\n ...sharedInterfaceArgs,\n\n /**\n * The name of the \"default\" interface where non-tunneled traffic should go.\n *\n * If not provided, the config will not respect `excludedIps`.\n *\n * @schema\n */\n defaultInterface: {\n ...Type.Optional(Type.String()),\n description: `The name of the \"default\" interface where non-tunneled traffic should go.\n\n If not provided, the config will not respect \\`excludedIps\\`.`,\n},\n },\n\n inputs: {\n identity: identityEntity,\n peers: {\n entity: peerEntity,\n multiple: true,\n required: false,\n },\n },\n\n meta: {\n displayName: \"WireGuard Config\",\n description: \"Just the WireGuard configuration for the identity and peers.\",\n primaryIcon: \"simple-icons:wireguard\",\n primaryIconColor: \"#88171a\",\n secondaryIcon: \"mdi:settings\",\n },\n\n source: {\n package: \"@highstate/wireguard\",\n path: \"config\",\n },\n})\n\nexport const configBundle = defineUnit({\n type: \"wireguard.config-bundle\",\n\n inputs: {\n identity: identityEntity,\n peers: {\n entity: peerEntity,\n multiple: true,\n },\n sharedPeers: {\n entity: peerEntity,\n multiple: true,\n required: false,\n },\n },\n\n meta: {\n displayName: \"WireGuard Config Bundle\",\n description: \"The WireGuard configuration bundle for the identity and peers.\",\n primaryIcon: \"simple-icons:wireguard\",\n primaryIconColor: \"#88171a\",\n secondaryIcon: \"mdi:folder-settings-variant\",\n },\n\n source: {\n package: \"@highstate/wireguard\",\n path: \"config-bundle\",\n },\n})\n","export * from \"./mariadb\"\nexport * from \"./postgresql\"\nexport * from \"./vaultwarden\"\n// export * from \"./zitadel\"\n// export * from \"./gitea\"\nexport * from \"./traefik\"\nexport * from \"./kubernetes-dashboard\"\nexport * from \"./grocy\"\nexport * from \"./maybe\"\nexport * from \"./mongodb\"\nexport * from \"./deployment\"\nexport * from \"./syncthing\"\nexport * from \"./code-server\"\n","import { defineEntity, defineUnit, Type, type Static } from \"@highstate/contract\"\nimport { clusterEntity, serviceEntity } from \"../k8s\"\nimport { repoEntity } from \"../restic\"\nimport { providerEntity } from \"../dns\"\n\nexport const mariadbEntity = defineEntity({\n type: \"apps.mariadb\",\n\n schema: Type.Object({\n service: Type.Optional(serviceEntity.schema),\n\n host: Type.String(),\n port: Type.Number(),\n rootPassword: Type.String(),\n }),\n\n meta: {\n color: \"#f06292\",\n },\n})\n\nexport const mariadb = defineUnit({\n type: \"apps.mariadb\",\n\n args: {\n fqdn: Type.Optional(Type.String()),\n appName: Type.Optional(Type.String()),\n },\n\n secrets: {\n rootPassword: Type.Optional(Type.String()),\n },\n\n inputs: {\n k8sCluster: clusterEntity,\n resticRepo: {\n entity: repoEntity,\n required: false,\n },\n dnsProvider: {\n entity: providerEntity,\n required: false,\n },\n },\n\n outputs: {\n mariadb: mariadbEntity,\n service: serviceEntity,\n },\n\n meta: {\n displayName: \"MariaDB\",\n description: \"The MariaDB database deployed on Kubernetes.\",\n primaryIcon: \"simple-icons:mariadb\",\n secondaryIcon: \"mdi:database\",\n },\n\n source: {\n package: \"@highstate/apps\",\n path: \"mariadb/app\",\n },\n})\n\nexport const mariadbDatabase = defineUnit({\n type: \"apps.mariadb.database\",\n\n args: {\n database: Type.Optional(Type.String()),\n username: Type.Optional(Type.String()),\n },\n\n secrets: {\n password: Type.Optional(Type.String()),\n },\n\n inputs: {\n k8sCluster: clusterEntity,\n mariadb: mariadbEntity,\n },\n\n meta: {\n displayName: \"MariaDB Database\",\n description:\n \"The virtual MariaDB database created on the MariaDB instance. Works only for MariaDB instances deployed on Kubernetes.\",\n primaryIcon: \"simple-icons:mariadb\",\n secondaryIcon: \"mdi:database-plus\",\n },\n\n source: {\n package: \"@highstate/apps\",\n path: \"mariadb/database\",\n },\n})\n\nexport type MariaDB = Static<typeof mariadbEntity.schema>\n","import { defineEntity, defineUnit, Type, type Static } from \"@highstate/contract\"\n\nexport const repoEntity = defineEntity({\n type: \"restic.repo\",\n\n schema: Type.Object({\n password: Type.String(),\n remoteDomains: Type.Array(Type.String()),\n\n type: Type.Literal(\"rclone\"),\n rcloneConfig: Type.String(),\n remoteName: Type.String(),\n basePath: Type.String(),\n }),\n\n meta: {\n color: \"#e56901\",\n },\n})\n\nexport const repo = defineUnit({\n type: \"restic.repo\",\n\n args: {\n remoteDomains: Type.Optional(Type.Array(Type.String())),\n basePath: Type.Optional(Type.String()),\n },\n\n secrets: {\n password: Type.Optional(Type.String()),\n rcloneConfig: Type.String({ multiline: true }),\n },\n\n outputs: {\n repo: repoEntity,\n },\n\n meta: {\n displayName: \"Restic Repo\",\n description: \"Holds the configuration for a Restic repository and its remote storage.\",\n primaryIconColor: \"#e56901\",\n primaryIcon: \"material-symbols:backup\",\n },\n\n source: {\n package: \"@highstate/restic\",\n path: \"repo\",\n },\n})\n\nexport type Repo = Static<typeof repoEntity.schema>\n","import { defineEntity, defineUnit, Type, type Static } from \"@highstate/contract\"\nimport { clusterEntity, serviceEntity } from \"../k8s\"\nimport { repoEntity } from \"../restic\"\nimport { providerEntity } from \"../dns\"\n\nexport const postgresqlEntity = defineEntity({\n type: \"apps.postgresql\",\n\n schema: Type.Object({\n service: Type.Optional(serviceEntity.schema),\n\n host: Type.String(),\n port: Type.Number(),\n rootPassword: Type.String(),\n }),\n\n meta: {\n color: \"#336791\",\n },\n})\n\nexport const postgresql = defineUnit({\n type: \"apps.postgresql\",\n\n args: {\n fqdn: Type.Optional(Type.String()),\n appName: Type.Optional(Type.String()),\n },\n\n secrets: {\n rootPassword: Type.Optional(Type.String()),\n },\n\n inputs: {\n k8sCluster: clusterEntity,\n resticRepo: {\n entity: repoEntity,\n required: false,\n },\n dnsProvider: {\n entity: providerEntity,\n required: false,\n },\n },\n\n outputs: {\n postgresql: postgresqlEntity,\n service: serviceEntity,\n },\n\n meta: {\n displayName: \"PostgreSQL\",\n description: \"The PostgreSQL database deployed on Kubernetes.\",\n primaryIcon: \"simple-icons:postgresql\",\n secondaryIcon: \"mdi:database\",\n },\n\n source: {\n package: \"@highstate/apps\",\n path: \"postgresql/app\",\n },\n})\n\nexport const postgresqlDatabase = defineUnit({\n type: \"apps.postgresql.database\",\n\n args: {\n database: Type.Optional(Type.String()),\n username: Type.Optional(Type.String()),\n },\n\n secrets: {\n password: Type.Optional(Type.String()),\n },\n\n inputs: {\n k8sCluster: clusterEntity,\n postgresql: postgresqlEntity,\n },\n\n meta: {\n displayName: \"PostgreSQL Database\",\n description:\n \"The virtual PostgreSQL database created on the PostgreSQL instance. Works only for PostgreSQL instances deployed on Kubernetes.\",\n primaryIcon: \"simple-icons:postgresql\",\n secondaryIcon: \"mdi:database-plus\",\n },\n\n source: {\n package: \"@highstate/apps\",\n path: \"postgresql/database\",\n },\n})\n\nexport type PostgreSQL = Static<typeof postgresqlEntity.schema>\n","import { defineUnit, Type } from \"@highstate/contract\"\nimport { accessPointEntity, clusterEntity } from \"../k8s\"\nimport { mariadbEntity } from \"./mariadb\"\n\nexport const vaultwarden = defineUnit({\n type: \"apps.vaultwarden\",\n\n args: {\n fqdn: Type.String(),\n appName: Type.Optional(Type.String()),\n },\n\n inputs: {\n mariadb: mariadbEntity,\n accessPoint: accessPointEntity,\n k8sCluster: clusterEntity,\n },\n\n secrets: {\n mariadbPassword: Type.Optional(Type.String()),\n },\n\n meta: {\n displayName: \"Vaultwarden\",\n description: \"The Vaultwarden password manager deployed on Kubernetes.\",\n primaryIcon: \"simple-icons:vaultwarden\",\n },\n\n source: {\n package: \"@highstate/apps\",\n path: \"vaultwarden\",\n },\n})\n","import { defineUnit, Type } from \"@highstate/contract\"\nimport { clusterEntity, gatewayEntity, serviceEntity, serviceTypeSchema } from \"../k8s\"\n\nexport const traefikGateway = defineUnit({\n type: \"apps.traefik-gateway\",\n\n args: {\n appName: Type.Optional(Type.String()),\n className: Type.Optional(Type.String()),\n serviceType: Type.Optional(serviceTypeSchema),\n },\n\n inputs: {\n k8sCluster: clusterEntity,\n },\n\n outputs: {\n gateway: gatewayEntity,\n service: serviceEntity,\n },\n\n meta: {\n displayName: \"Traefik Gateway\",\n description: \"A Traefik gateway for routing traffic to services.\",\n primaryIcon: \"simple-icons:traefikproxy\",\n },\n\n source: {\n package: \"@highstate/apps\",\n path: \"traefik\",\n },\n})\n","import { defineUnit, Type } from \"@highstate/contract\"\nimport { accessPointEntity, clusterEntity } from \"../k8s\"\n\nexport const kubernetesDashboard = defineUnit({\n type: \"apps.kubernetes-dashboard\",\n\n args: {\n fqdn: Type.String(),\n appName: Type.Optional(Type.String()),\n },\n\n inputs: {\n k8sCluster: clusterEntity,\n accessPoint: accessPointEntity,\n },\n\n meta: {\n displayName: \"Kubernetes Dashboard\",\n description: \"The Kubernetes Dashboard deployed on Kubernetes.\",\n primaryIcon: \"simple-icons:kubernetes\",\n secondaryIcon: \"mdi:dashboard\",\n },\n\n source: {\n package: \"@highstate/apps\",\n path: \"kubernetes-dashboard\",\n },\n})\n","import { defineUnit, Type } from \"@highstate/contract\"\nimport { accessPointEntity, clusterEntity } from \"../k8s\"\nimport { repoEntity } from \"../restic\"\n\nexport const grocy = defineUnit({\n type: \"apps.grocy\",\n\n args: {\n fqdn: Type.String(),\n appName: Type.Optional(Type.String()),\n },\n\n inputs: {\n resticRepo: {\n entity: repoEntity,\n required: false,\n },\n accessPoint: accessPointEntity,\n k8sCluster: clusterEntity,\n },\n\n meta: {\n displayName: \"Grocy\",\n description:\n \"Grocy is a web-based self-hosted groceries & household management solution for your home.\",\n primaryIcon: \"simple-icons:grocy\",\n },\n\n source: {\n package: \"@highstate/apps\",\n path: \"grocy\",\n },\n})\n","import { defineUnit, Type } from \"@highstate/contract\"\nimport { accessPointEntity, clusterEntity } from \"../k8s\"\nimport { repoEntity } from \"../restic\"\nimport { postgresqlEntity } from \"./postgresql\"\n\nexport const maybe = defineUnit({\n type: \"apps.maybe\",\n\n args: {\n fqdn: Type.String(),\n appName: Type.Optional(Type.String()),\n },\n\n inputs: {\n postgresql: postgresqlEntity,\n accessPoint: accessPointEntity,\n k8sCluster: clusterEntity,\n resticRepo: {\n entity: repoEntity,\n required: false,\n },\n },\n\n secrets: {\n postgresqlPassword: Type.Optional(Type.String()),\n secretKey: Type.Optional(Type.String()),\n },\n\n meta: {\n displayName: \"Maybe\",\n description: \"The OS for your personal finances.\",\n primaryIcon: \"arcticons:finance-manager\",\n },\n\n source: {\n package: \"@highstate/apps\",\n path: \"maybe\",\n },\n})\n","import { defineEntity, defineUnit, Type, type Static } from \"@highstate/contract\"\nimport { clusterEntity, serviceEntity, serviceTypeSchema } from \"../k8s\"\nimport { repoEntity } from \"../restic\"\nimport { providerEntity } from \"../dns\"\n\nexport const mongodbEntity = defineEntity({\n type: \"apps.mongodb\",\n\n schema: Type.Object({\n service: Type.Optional(serviceEntity.schema),\n\n host: Type.String(),\n port: Type.Number(),\n rootPassword: Type.String(),\n }),\n\n meta: {\n color: \"#13aa52\",\n },\n})\n\nexport const mongodb = defineUnit({\n type: \"apps.mongodb\",\n\n args: {\n fqdn: Type.Optional(Type.String()),\n appName: Type.Optional(Type.String()),\n serviceType: Type.Optional(serviceTypeSchema),\n },\n\n secrets: {\n rootPassword: Type.Optional(Type.String()),\n },\n\n inputs: {\n k8sCluster: clusterEntity,\n resticRepo: {\n entity: repoEntity,\n required: false,\n },\n dnsProvider: {\n entity: providerEntity,\n required: false,\n },\n },\n\n outputs: {\n mongodb: mongodbEntity,\n service: serviceEntity,\n },\n\n meta: {\n displayName: \"MongoDB\",\n description: \"The MongoDB instance deployed on Kubernetes.\",\n primaryIcon: \"simple-icons:mongodb\",\n secondaryIcon: \"mdi:database\",\n },\n\n source: {\n package: \"@highstate/apps\",\n path: \"mongodb/app\",\n },\n})\n\nexport const mongodbDatabase = defineUnit({\n type: \"apps.mongodb.database\",\n\n args: {\n database: Type.Optional(Type.String()),\n username: Type.Optional(Type.String()),\n },\n\n secrets: {\n password: Type.Optional(Type.String()),\n },\n\n inputs: {\n k8sCluster: clusterEntity,\n mongodb: mongodbEntity,\n },\n\n meta: {\n displayName: \"MongoDB Database\",\n description:\n \"The virtual MongoDB database created on the MongoDB instance. Works only for MongoDB instances deployed on Kubernetes.\",\n primaryIcon: \"simple-icons:mongodb\",\n secondaryIcon: \"mdi:database-plus\",\n },\n\n source: {\n package: \"@highstate/apps\",\n path: \"mongodb/database\",\n },\n})\n\nexport type MongoDB = Static<typeof mongodbEntity.schema>\n","import { defineUnit, Type } from \"@highstate/contract\"\nimport { clusterEntity, deploymentEntity, serviceEntity, serviceTypeSchema } from \"../k8s\"\nimport { repoEntity } from \"../restic\"\nimport { providerEntity } from \"../dns\"\nimport { mariadbEntity } from \"./mariadb\"\nimport { postgresqlEntity } from \"./postgresql\"\nimport { mongodbEntity } from \"./mongodb\"\n\nexport const deployment = defineUnit({\n type: \"apps.deployment\",\n\n args: {\n appName: Type.Optional(Type.String()),\n\n fqdn: Type.Optional(Type.String()),\n serviceType: Type.Optional(serviceTypeSchema),\n\n image: Type.Optional(Type.String()),\n port: Type.Optional(Type.Number()),\n replicas: Type.Optional(Type.Number()),\n\n dataPath: Type.Optional(Type.String()),\n\n env: Type.Optional(Type.Record(Type.String(), Type.Any())),\n\n mariadbEnvMapping: Type.Optional(Type.Record(Type.String(), Type.Any())),\n postgresqlEnvMapping: Type.Optional(Type.Record(Type.String(), Type.Any())),\n mongodbEnvMapping: Type.Optional(Type.Record(Type.String(), Type.Any())),\n\n manifest: Type.Optional(Type.Record(Type.String(), Type.Any())),\n serviceManifest: Type.Optional(Type.Record(Type.String(), Type.Any())),\n httpRouteManifest: Type.Optional(Type.Record(Type.String(), Type.Any())),\n },\n\n inputs: {\n k8sCluster: clusterEntity,\n\n mariadb: {\n entity: mariadbEntity,\n required: false,\n },\n postgresql: {\n entity: postgresqlEntity,\n required: false,\n },\n mongodb: {\n entity: mongodbEntity,\n required: false,\n },\n resticRepo: {\n entity: repoEntity,\n required: false,\n },\n dnsProvider: {\n entity: providerEntity,\n required: false,\n },\n },\n\n outputs: {\n deployment: deploymentEntity,\n service: serviceEntity,\n },\n\n secrets: {\n mariadbPassword: Type.Optional(Type.String()),\n postgresqlPassword: Type.Optional(Type.String()),\n mongodbPassword: Type.Optional(Type.String()),\n },\n\n meta: {\n displayName: \"Kubernetes Deployment\",\n description: \"A generic Kubernetes deployment with optional service and gateway routes.\",\n primaryIcon: \"mdi:kubernetes\",\n secondaryIcon: \"mdi:cube-outline\",\n },\n\n source: {\n package: \"@highstate/apps\",\n path: \"deployment\",\n },\n})\n","import { defineUnit, Type } from \"@highstate/contract\"\nimport {\n accessPointEntity,\n clusterEntity,\n persistentVolumeClaimEntity,\n serviceEntity,\n} from \"../k8s\"\nimport { repoEntity } from \"../restic\"\n\nexport const backupModeSchema = Type.Union([Type.Literal(\"metadata\"), Type.Literal(\"full\")])\n\nexport const syncthing = defineUnit({\n type: \"apps.syncthing\",\n\n args: {\n fqdn: Type.String(),\n deviceFqdn: Type.Optional(Type.String()),\n appName: Type.Optional(Type.String()),\n backupMode: Type.Optional({ ...backupModeSchema, default: \"metadata\" }),\n },\n\n inputs: {\n accessPoint: accessPointEntity,\n k8sCluster: clusterEntity,\n resticRepo: {\n entity: repoEntity,\n required: false,\n },\n volume: {\n entity: persistentVolumeClaimEntity,\n required: false,\n },\n },\n\n outputs: {\n service: serviceEntity,\n volume: persistentVolumeClaimEntity,\n },\n\n meta: {\n displayName: \"Syncthing\",\n description: \"The Syncthing instance deployed on Kubernetes.\",\n primaryIcon: \"simple-icons:syncthing\",\n },\n\n source: {\n package: \"@highstate/apps\",\n path: \"syncthing\",\n },\n})\n","import { defineUnit, Type } from \"@highstate/contract\"\nimport {\n accessPointEntity,\n clusterEntity,\n persistentVolumeClaimEntity,\n statefulSetEntity,\n} from \"../k8s\"\nimport { repoEntity } from \"../restic\"\n\nexport const codeServer = defineUnit({\n type: \"apps.code-server\",\n\n args: {\n fqdn: Type.String(),\n appName: Type.Optional(Type.String()),\n },\n\n secrets: {\n password: Type.Optional(Type.String()),\n sudoPassword: Type.Optional(Type.String()),\n },\n\n inputs: {\n accessPoint: accessPointEntity,\n k8sCluster: clusterEntity,\n resticRepo: {\n entity: repoEntity,\n required: false,\n },\n volume: {\n entity: persistentVolumeClaimEntity,\n required: false,\n },\n },\n\n outputs: {\n statefulSet: statefulSetEntity,\n volume: persistentVolumeClaimEntity,\n },\n\n meta: {\n displayName: \"Code Server\",\n description: \"The Code Server instance deployed on Kubernetes.\",\n primaryIcon: \"material-icon-theme:vscode\",\n },\n\n source: {\n package: \"@highstate/apps\",\n path: \"code-server\",\n },\n})\n","import { defineUnit, Type } from \"@highstate/contract\"\nimport { providerEntity } from \"./dns\"\n\nexport const connection = defineUnit({\n type: \"cloudflare.connection\",\n\n secrets: {\n apiToken: Type.String(),\n },\n\n outputs: {\n dnsProvider: providerEntity,\n },\n\n meta: {\n displayName: \"Cloudflare Connection\",\n description: \"Creates a new Cloudflare connection for one zone.\",\n primaryIcon: \"simple-icons:cloudflare\",\n },\n\n source: {\n package: \"@highstate/cloudflare\",\n path: \"connection\",\n },\n})\n","import { defineUnit } from \"@highstate/contract\"\nimport { Type } from \"@sinclair/typebox\"\nimport { serverEntity } from \"./common\"\nimport { clusterEntity, sharedClusterArgs } from \"./k8s\"\nimport { providerEntity } from \"./dns\"\n\nexport const cluster = defineUnit({\n type: \"k3s.cluster\",\n\n args: {\n ...sharedClusterArgs,\n config: Type.Optional(Type.Record(Type.String(), Type.Any())),\n },\n\n inputs: {\n server: serverEntity,\n dnsProviders: {\n entity: providerEntity,\n required: false,\n multiple: true,\n },\n },\n\n outputs: {\n k8sCluster: clusterEntity,\n },\n\n meta: {\n displayName: \"K3s Cluster\",\n description: \"The K3s cluster created on top of the server.\",\n category: \"k3s\",\n primaryIcon: \"devicon:k3s\",\n secondaryIcon: \"devicon:kubernetes\",\n },\n\n source: {\n package: \"@highstate/k3s\",\n path: \"cluster\",\n },\n})\n","import { defineUnit, Type } from \"@highstate/contract\"\nimport { networkEntity, peerEntity } from \"./wireguard\"\nimport { l4EndpointEntity } from \"./common\"\n\nexport const endpointType = Type.Union([\n Type.Literal(\"fqdn\"),\n Type.Literal(\"ipv4\"),\n Type.Literal(\"ipv6\"),\n])\n\nexport const peer = defineUnit({\n type: \"mullvad.peer\",\n\n args: {\n hostname: Type.Optional(Type.String()),\n endpointType: Type.Optional({ ...endpointType, default: \"fqdn\" }),\n\n /**\n * Whether to include Mullvad DNS servers in the peer configuration.\n *\n * @schema\n */\n includeDns: {\n ...Type.Default(Type.Boolean(), true),\n description: `Whether to include Mullvad DNS servers in the peer configuration.`,\n},\n },\n\n inputs: {\n /**\n * The network to use for the WireGuard peer.\n *\n * If not provided, the peer will use default network configuration.\n */\n network: {\n entity: networkEntity,\n required: false,\n },\n },\n\n outputs: {\n peer: peerEntity,\n l4Endpoint: l4EndpointEntity,\n },\n\n meta: {\n displayName: \"Mullvad Peer\",\n description: \"The Mullvad WireGuard peer fetched from the Mullvad API.\",\n primaryIcon: \"simple-icons:mullvad\",\n secondaryIcon: \"cib:wireguard\",\n secondaryIconColor: \"#88171a\",\n },\n\n source: {\n package: \"@highstate/mullvad\",\n path: \"peer\",\n },\n})\n","import { defineEntity, defineUnit, Type } from \"@highstate/contract\"\nimport { serverEntity } from \"./common\"\nimport { keyPairEntity } from \"./ssh\"\n\nexport const connectionEntity = defineEntity({\n type: \"timeweb.connection\",\n\n schema: Type.Object({\n name: Type.String(),\n apiToken: Type.String(),\n }),\n})\n\nexport const connection = defineUnit({\n type: \"timeweb.connection\",\n\n secrets: {\n apiToken: Type.String(),\n },\n\n outputs: {\n connection: connectionEntity,\n },\n\n meta: {\n displayName: \"Timeweb Connection\",\n description: \"Creates a new Timeweb connection.\",\n primaryIcon: \"material-symbols:cloud\",\n },\n\n source: {\n package: \"@highstate/timeweb\",\n path: \"connection\",\n },\n})\n\nexport const virtualMachine = defineUnit({\n type: \"timeweb.virtual-machine\",\n\n args: {\n presetId: Type.Optional(Type.Number()),\n osId: Type.Optional(Type.Number()),\n availabilityZone: Type.String(),\n },\n\n inputs: {\n connection: connectionEntity,\n sshKeyPair: {\n entity: keyPairEntity,\n required: false,\n },\n },\n\n secrets: {\n sshPrivateKey: Type.Optional(Type.String()),\n },\n\n outputs: {\n server: serverEntity,\n },\n\n meta: {\n displayName: \"Timeweb Virtual Machine\",\n description: \"Creates a new Timeweb virtual machine.\",\n primaryIcon: \"material-symbols:cloud\",\n secondaryIcon: \"codicon:vm\",\n },\n\n source: {\n package: \"@highstate/timeweb\",\n path: \"virtual-machine\",\n },\n})\n","import { defineEntity, defineUnit, Type } from \"@highstate/contract\"\nimport { fileEntity, serverEntity } from \"./common\"\n\nexport const inlineModuleEntity = defineEntity({\n type: \"nixos.inline-module\",\n\n schema: Type.Object({\n code: Type.String(),\n }),\n\n meta: {\n displayName: \"NixOS Inline Module\",\n description: \"The NixOS module reference.\",\n color: \"#5277c3\",\n },\n})\n\nexport const inlineModule = defineUnit({\n type: \"nixos.inline-module\",\n\n args: {\n code: Type.String({ language: \"nix\" }),\n },\n\n inputs: {\n files: {\n entity: fileEntity,\n required: false,\n multiple: true,\n },\n },\n\n outputs: {\n module: inlineModuleEntity,\n },\n\n meta: {\n displayName: \"NixOS Inline Module\",\n description: \"Creates a NixOS module from inline code.\",\n primaryIcon: \"simple-icons:nixos\",\n primaryIconColor: \"#7ebae4\",\n secondaryIcon: \"mdi:file-code\",\n },\n\n source: {\n package: \"@highstate/nixos\",\n path: \"inline-module\",\n },\n})\n\nexport const flakeEntity = defineEntity({\n type: \"nixos.flake\",\n\n schema: Type.Object({\n url: Type.String(),\n }),\n\n meta: {\n displayName: \"NixOS Flake\",\n description: \"The NixOS flake reference.\",\n color: \"#5277c3\",\n },\n})\n\nexport const remoteFlake = defineUnit({\n type: \"nixos.remote-flake\",\n\n args: {\n url: Type.String(),\n },\n\n outputs: {\n flake: flakeEntity,\n },\n\n meta: {\n displayName: \"NixOS Remote Flake\",\n description: \"References a remote NixOS flake.\",\n primaryIcon: \"simple-icons:nixos\",\n primaryIconColor: \"#7ebae4\",\n secondaryIcon: \"simple-icons:git\",\n secondaryIconColor: \"#f1502f\",\n },\n\n source: {\n package: \"@highstate/nixos\",\n path: \"flake\",\n },\n})\n\nexport const inlineFlake = defineUnit({\n type: \"nixos.inline-flake\",\n\n args: {\n code: Type.String({ language: \"nix\" }),\n },\n\n inputs: {\n flakes: {\n entity: flakeEntity,\n required: false,\n multiple: true,\n },\n modules: {\n entity: inlineModuleEntity,\n required: false,\n multiple: true,\n },\n files: {\n entity: fileEntity,\n required: false,\n multiple: true,\n },\n },\n\n outputs: {\n flake: flakeEntity,\n },\n\n meta: {\n displayName: \"NixOS Inline Flake\",\n description: \"Creates a NixOS flake from inline code.\",\n primaryIcon: \"simple-icons:nixos\",\n primaryIconColor: \"#7ebae4\",\n secondaryIcon: \"mdi:file-code\",\n },\n\n source: {\n package: \"@highstate/nixos\",\n path: \"inline-flake\",\n },\n})\n\nexport const system = defineUnit({\n type: \"nixos.system\",\n\n args: {\n system: Type.Optional(Type.String()),\n },\n\n inputs: {\n flake: flakeEntity,\n server: serverEntity,\n modules: {\n entity: inlineModuleEntity,\n required: false,\n multiple: true,\n },\n },\n\n outputs: {\n server: serverEntity,\n },\n\n meta: {\n displayName: \"NixOS System\",\n description: \"Creates a NixOS system on top of any server.\",\n primaryIcon: \"simple-icons:nixos\",\n primaryIconColor: \"#7ebae4\",\n secondaryIcon: \"codicon:vm\",\n },\n\n source: {\n package: \"@highstate/nixos\",\n path: \"system\",\n },\n})\n","import { defineUnit, Type } from \"@highstate/contract\"\nimport { fileEntity, serverEntity } from \"./common\"\n\nexport const secrets = defineUnit({\n type: \"sops.secrets\",\n\n args: {\n secrets: Type.Record(Type.String(), Type.Any()),\n },\n\n inputs: {\n servers: {\n entity: serverEntity,\n required: false,\n multiple: true,\n },\n },\n\n outputs: {\n file: fileEntity,\n },\n\n meta: {\n displayName: \"SOPS Secrets\",\n description: \"Encrypts secrets using SOPS for the specified servers.\",\n primaryIcon: \"mdi:file-lock\",\n },\n\n source: {\n package: \"@highstate/sops\",\n path: \"secrets\",\n },\n})\n","export * as phantun from \"./phantun\"\n","import { defineUnit } from \"@highstate/contract\"\nimport { deobfuscatorSpec, obfuscatorSpec } from \"./shared\"\n\nexport const deobfuscator = defineUnit({\n type: \"obfuscators.phantun.deobfuscator\",\n ...deobfuscatorSpec,\n\n meta: {\n displayName: \"Phantun Deobfuscator\",\n description: \"The Phantun Deobfuscator deployed on Kubernetes.\",\n primaryIcon: \"mdi:network-outline\",\n secondaryIcon: \"mdi:hide\",\n },\n\n source: {\n package: \"@highstate/obfuscators\",\n path: \"phantun/deobfuscator\",\n },\n})\n\nexport const obfuscator = defineUnit({\n type: \"obfuscators.phantun.obfuscator\",\n ...obfuscatorSpec,\n\n meta: {\n displayName: \"Phantun Obfuscator\",\n description: \"The Phantun Obfuscator deployed on Kubernetes.\",\n primaryIcon: \"mdi:network-outline\",\n secondaryIcon: \"mdi:hide\",\n },\n\n source: {\n package: \"@highstate/obfuscators\",\n path: \"phantun/obfuscator\",\n },\n})\n","import { Type } from \"@sinclair/typebox\"\nimport { clusterEntity } from \"../k8s\"\nimport { l4EndpointEntity } from \"../common\"\n\nexport const deobfuscatorSpec = {\n args: {\n /**\n * The L4 endpoint to forward deobfuscated traffic to.\n *\n * Will take precedence over the `targetEndpoint` input.\n *\n * @schema\n */\n targetEndpoint: {\n ...Type.Optional(Type.String()),\n description: `The L4 endpoint to forward deobfuscated traffic to.\n\n Will take precedence over the \\`targetEndpoint\\` input.`,\n},\n },\n\n inputs: {\n /**\n * The Kubernetes cluster to deploy the deobfuscator on.\n *\n * @schema\n */\n k8sCluster: {\n ...clusterEntity,\n description: `The Kubernetes cluster to deploy the deobfuscator on.`,\n},\n\n /**\n * The L4 endpoint to forward deobfuscated traffic to.\n *\n * @schema\n */\n targetEndpoint: {\n ...l4EndpointEntity,\n description: `The L4 endpoint to forward deobfuscated traffic to.`,\n},\n },\n\n outputs: {\n /**\n * The L4 endpoint of the deobfuscator accepting obfuscated traffic.\n *\n * @schema\n */\n endpoint: {\n ...l4EndpointEntity,\n description: `The L4 endpoint of the deobfuscator accepting obfuscated traffic.`,\n},\n },\n}\n\nexport const obfuscatorSpec = {\n args: {\n /**\n * The endpoint of the deobfuscator to pass obfuscated traffic to.\n *\n * Will take precedence over the `l4Endpoint` input.\n *\n * @schema\n */\n endpoint: {\n ...Type.Optional(Type.String()),\n description: `The endpoint of the deobfuscator to pass obfuscated traffic to.\n\n Will take precedence over the \\`l4Endpoint\\` input.`,\n},\n },\n\n inputs: {\n /**\n * The Kubernetes cluster to deploy the obfuscator on.\n *\n * @schema\n */\n k8sCluster: {\n ...clusterEntity,\n description: `The Kubernetes cluster to deploy the obfuscator on.`,\n},\n\n /**\n * The L4 endpoint of the deobfuscator to pass obfuscated traffic to.\n *\n * @schema\n */\n endpoint: {\n ...{\n entity: l4EndpointEntity,\n required: false,\n },\n description: `The L4 endpoint of the deobfuscator to pass obfuscated traffic to.`,\n},\n },\n\n outputs: {\n /**\n * The L4 endpoint accepting unobfuscated traffic.\n *\n * @schema\n */\n entryEndpoint: {\n ...l4EndpointEntity,\n description: `The L4 endpoint accepting unobfuscated traffic.`,\n},\n },\n}\n"],"mappings":"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","names":["defineEntity","defineUnit","Type","defineEntity","Type","defineUnit","defineEntity","defineUnit","Type","defineEntity","Type","defineUnit","clusterEntity","defineEntity","defineUnit","Type","defineEntity","defineUnit","Type","Type","defineEntity","clusterEntity","defineUnit","clusterEntity","defineEntity","defineUnit","Type","clusterEntity","defineEntity","Type","defineUnit","defineEntity","defineUnit","Type","Type","defineEntity","defineUnit","clusterEntity","defineEntity","defineUnit","Type","defineEntity","defineUnit","Type","defineEntity","Type","defineUnit","clusterEntity","defineEntity","defineUnit","Type","defineEntity","Type","defineUnit","clusterEntity","defineUnit","Type","defineUnit","Type","clusterEntity","defineUnit","Type","defineUnit","Type","clusterEntity","defineUnit","Type","defineUnit","Type","clusterEntity","defineUnit","Type","defineUnit","Type","clusterEntity","defineUnit","Type","defineUnit","Type","clusterEntity","defineEntity","defineUnit","Type","defineEntity","Type","defineUnit","clusterEntity","defineUnit","Type","defineUnit","Type","clusterEntity","defineUnit","Type","Type","defineUnit","clusterEntity","defineUnit","Type","defineUnit","Type","clusterEntity","connection","defineUnit","Type","connection","defineUnit","Type","cluster","defineUnit","Type","cluster","defineUnit","Type","clusterEntity","peer","defineUnit","Type","Type","peer","defineUnit","connection","virtualMachine","defineEntity","defineUnit","Type","defineEntity","Type","connection","defineUnit","virtualMachine","defineEntity","defineUnit","Type","defineEntity","Type","defineUnit","defineUnit","Type","defineUnit","Type","defineUnit","Type","Type","clusterEntity","defineUnit"]}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@highstate/library",
|
3
|
-
"version": "0.9.
|
3
|
+
"version": "0.9.3",
|
4
4
|
"type": "module",
|
5
5
|
"files": [
|
6
6
|
"dist",
|
@@ -19,12 +19,12 @@
|
|
19
19
|
"build": "highstate build --library"
|
20
20
|
},
|
21
21
|
"dependencies": {
|
22
|
-
"@highstate/contract": "^0.9.
|
22
|
+
"@highstate/contract": "^0.9.3",
|
23
23
|
"@sinclair/typebox": "^0.34.11",
|
24
24
|
"remeda": "^2.21.0"
|
25
25
|
},
|
26
26
|
"devDependencies": {
|
27
|
-
"@highstate/cli": "^0.9.
|
27
|
+
"@highstate/cli": "^0.9.3"
|
28
28
|
},
|
29
|
-
"gitHead": "
|
29
|
+
"gitHead": "cdd2bb1d9001ba4a39f64087eb29af6f50d82bec"
|
30
30
|
}
|
package/src/talos.ts
CHANGED
@@ -25,11 +25,13 @@ export const cluster = defineUnit({
|
|
25
25
|
/**
|
26
26
|
* Allow scheduling workloads on the master nodes.
|
27
27
|
*
|
28
|
-
*
|
28
|
+
* If no workers are specified, this option is ignored and the master nodes are used as workers.
|
29
|
+
*
|
30
|
+
* By default, this option is set to false.
|
29
31
|
*
|
30
32
|
* @schema
|
31
33
|
*/
|
32
|
-
scheduleOnMasters: Type.Boolean(),
|
34
|
+
scheduleOnMasters: Type.Default(Type.Boolean(), false),
|
33
35
|
|
34
36
|
/**
|
35
37
|
* The endpoint of the cluster.
|