@highstate/library 0.7.8 → 0.7.9
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 +4 -4
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
- package/src/k8s.ts +4 -4
package/dist/index.js
CHANGED
@@ -486,7 +486,7 @@ var existingCluster = defineUnit5({
|
|
486
486
|
},
|
487
487
|
source: {
|
488
488
|
package: "@highstate/k8s",
|
489
|
-
path: "existing-cluster"
|
489
|
+
path: "units/existing-cluster"
|
490
490
|
}
|
491
491
|
});
|
492
492
|
var gatewayEntity = defineEntity5({
|
@@ -541,7 +541,7 @@ var accessPoint = defineUnit5({
|
|
541
541
|
},
|
542
542
|
source: {
|
543
543
|
package: "@highstate/k8s",
|
544
|
-
path: "access-point"
|
544
|
+
path: "units/access-point"
|
545
545
|
}
|
546
546
|
});
|
547
547
|
var certManager = defineUnit5({
|
@@ -559,7 +559,7 @@ var certManager = defineUnit5({
|
|
559
559
|
},
|
560
560
|
source: {
|
561
561
|
package: "@highstate/k8s",
|
562
|
-
path: "cert-manager"
|
562
|
+
path: "units/cert-manager"
|
563
563
|
}
|
564
564
|
});
|
565
565
|
var dns01TlsIssuer = defineUnit5({
|
@@ -578,7 +578,7 @@ var dns01TlsIssuer = defineUnit5({
|
|
578
578
|
},
|
579
579
|
source: {
|
580
580
|
package: "@highstate/k8s",
|
581
|
-
path: "dns01-issuer"
|
581
|
+
path: "units/dns01-issuer"
|
582
582
|
}
|
583
583
|
});
|
584
584
|
var containerSchema = Type5.Object({
|
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"],"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 endpointEntity = defineEntity({\n type: \"common.endpoint\",\n\n schema: Type.Object({\n endpoint: Type.String(),\n }),\n\n meta: {\n color: \"#FFC107\",\n description: \"The L3-L4 endpoint for some network service.\",\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 type Server = Static<typeof serverEntity.schema>\nexport type Endpoint = Static<typeof endpointEntity.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 { providerEntity } from \"./dns\"\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})\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 existingCluster = defineUnit({\n type: \"k8s.existing-cluster\",\n\n args: {\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\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: \"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: \"common.access-point\",\n schema: Type.Object({\n gateway: gatewayEntity.schema,\n tlsIssuer: tlsIssuerEntity.schema,\n dnsProvider: providerEntity.schema,\n }),\n\n meta: {\n color: \"#FFC107\",\n },\n})\n\nexport const accessPoint = defineUnit({\n type: \"k8s.access-point\",\n\n inputs: {\n gateway: gatewayEntity,\n tlsIssuer: tlsIssuerEntity,\n dnsProvider: providerEntity,\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: \"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: \"cert-manager\",\n },\n})\n\nexport const dns01TlsIssuer = defineUnit({\n type: \"k8s.dns01-issuer\",\n\n inputs: {\n k8sCluster: clusterEntity,\n dnsProvider: providerEntity,\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: \"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 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>\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 scheduleOnMasters: Type.Boolean(),\n\n /**\n * The endpoint of the cluster.\n *\n * By default, the first master node's endpoint is used.\n */\n endpoint: Type.Optional(Type.String()),\n\n /**\n * The name of the cluster.\n *\n * By default, the name of the instance is used.\n */\n clusterName: Type.Optional(Type.String()),\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 cni: { ...cniSchema, default: \"cilium\" },\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 csi: { ...csiSchema, default: \"local-path-provisioner\" },\n\n /**\n * The shared configuration patch.\n * It will be applied to all nodes.\n */\n sharedConfigPatch: Type.Optional(Type.Record(Type.String(), Type.Any())),\n\n /**\n * The master configuration patch.\n * It will be applied to all master nodes.\n */\n masterConfigPatch: Type.Optional(Type.Record(Type.String(), Type.Any())),\n\n /**\n * The worker configuration patch.\n * It will be applied to all worker nodes.\n */\n workerConfigPatch: Type.Optional(Type.Record(Type.String(), Type.Any())),\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\"\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 ...backendSchema,\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.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 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 * @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\n /**\n * The FQDN of the WireGuard identity.\n * Will be used as endpoint for the peer.\n *\n * If `dnsProvider` is provided and `externalIp` is available, the FQDN will be registered automatically.\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 and \\`externalIp\\` is available, the FQDN will be registered automatically.`,\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 dnsProvider: {\n entity: providerEntity,\n required: false,\n },\n },\n\n outputs: {\n identity: identityEntity,\n peer: peerEntity,\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 { serverEntity } from \"./common\"\nimport { clusterEntity } from \"./k8s\"\n\nexport const cluster = defineUnit({\n type: \"k3s.cluster\",\n\n inputs: {\n server: serverEntity,\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\"\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 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 },\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"],"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","cluster","defineUnit","clusterEntity","peer","defineUnit","Type","Type","peer","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"],"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 endpointEntity = defineEntity({\n type: \"common.endpoint\",\n\n schema: Type.Object({\n endpoint: Type.String(),\n }),\n\n meta: {\n color: \"#FFC107\",\n description: \"The L3-L4 endpoint for some network service.\",\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 type Server = Static<typeof serverEntity.schema>\nexport type Endpoint = Static<typeof endpointEntity.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 { providerEntity } from \"./dns\"\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})\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 existingCluster = defineUnit({\n type: \"k8s.existing-cluster\",\n\n args: {\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\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: \"common.access-point\",\n schema: Type.Object({\n gateway: gatewayEntity.schema,\n tlsIssuer: tlsIssuerEntity.schema,\n dnsProvider: providerEntity.schema,\n }),\n\n meta: {\n color: \"#FFC107\",\n },\n})\n\nexport const accessPoint = defineUnit({\n type: \"k8s.access-point\",\n\n inputs: {\n gateway: gatewayEntity,\n tlsIssuer: tlsIssuerEntity,\n dnsProvider: providerEntity,\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 inputs: {\n k8sCluster: clusterEntity,\n dnsProvider: providerEntity,\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 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>\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 scheduleOnMasters: Type.Boolean(),\n\n /**\n * The endpoint of the cluster.\n *\n * By default, the first master node's endpoint is used.\n */\n endpoint: Type.Optional(Type.String()),\n\n /**\n * The name of the cluster.\n *\n * By default, the name of the instance is used.\n */\n clusterName: Type.Optional(Type.String()),\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 cni: { ...cniSchema, default: \"cilium\" },\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 csi: { ...csiSchema, default: \"local-path-provisioner\" },\n\n /**\n * The shared configuration patch.\n * It will be applied to all nodes.\n */\n sharedConfigPatch: Type.Optional(Type.Record(Type.String(), Type.Any())),\n\n /**\n * The master configuration patch.\n * It will be applied to all master nodes.\n */\n masterConfigPatch: Type.Optional(Type.Record(Type.String(), Type.Any())),\n\n /**\n * The worker configuration patch.\n * It will be applied to all worker nodes.\n */\n workerConfigPatch: Type.Optional(Type.Record(Type.String(), Type.Any())),\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\"\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 ...backendSchema,\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.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 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 * @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\n /**\n * The FQDN of the WireGuard identity.\n * Will be used as endpoint for the peer.\n *\n * If `dnsProvider` is provided and `externalIp` is available, the FQDN will be registered automatically.\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 and \\`externalIp\\` is available, the FQDN will be registered automatically.`,\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 dnsProvider: {\n entity: providerEntity,\n required: false,\n },\n },\n\n outputs: {\n identity: identityEntity,\n peer: peerEntity,\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 { serverEntity } from \"./common\"\nimport { clusterEntity } from \"./k8s\"\n\nexport const cluster = defineUnit({\n type: \"k3s.cluster\",\n\n inputs: {\n server: serverEntity,\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\"\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 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 },\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"],"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","cluster","defineUnit","clusterEntity","peer","defineUnit","Type","Type","peer","defineUnit"]}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@highstate/library",
|
3
|
-
"version": "0.7.
|
3
|
+
"version": "0.7.9",
|
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.7.
|
22
|
+
"@highstate/contract": "^0.7.9",
|
23
23
|
"@sinclair/typebox": "^0.34.11",
|
24
24
|
"remeda": "^2.21.0"
|
25
25
|
},
|
26
26
|
"devDependencies": {
|
27
|
-
"@highstate/cli": "^0.7.
|
27
|
+
"@highstate/cli": "^0.7.9"
|
28
28
|
},
|
29
|
-
"gitHead": "
|
29
|
+
"gitHead": "339633006df48d9ed3fcc181c8c4279d3dc1a12c"
|
30
30
|
}
|
package/src/k8s.ts
CHANGED
@@ -129,7 +129,7 @@ export const existingCluster = defineUnit({
|
|
129
129
|
|
130
130
|
source: {
|
131
131
|
package: "@highstate/k8s",
|
132
|
-
path: "existing-cluster",
|
132
|
+
path: "units/existing-cluster",
|
133
133
|
},
|
134
134
|
})
|
135
135
|
|
@@ -197,7 +197,7 @@ export const accessPoint = defineUnit({
|
|
197
197
|
|
198
198
|
source: {
|
199
199
|
package: "@highstate/k8s",
|
200
|
-
path: "access-point",
|
200
|
+
path: "units/access-point",
|
201
201
|
},
|
202
202
|
})
|
203
203
|
|
@@ -220,7 +220,7 @@ export const certManager = defineUnit({
|
|
220
220
|
|
221
221
|
source: {
|
222
222
|
package: "@highstate/k8s",
|
223
|
-
path: "cert-manager",
|
223
|
+
path: "units/cert-manager",
|
224
224
|
},
|
225
225
|
})
|
226
226
|
|
@@ -244,7 +244,7 @@ export const dns01TlsIssuer = defineUnit({
|
|
244
244
|
|
245
245
|
source: {
|
246
246
|
package: "@highstate/k8s",
|
247
|
-
path: "dns01-issuer",
|
247
|
+
path: "units/dns01-issuer",
|
248
248
|
},
|
249
249
|
})
|
250
250
|
|