@highstate/proxmox 0.9.4 → 0.9.5

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.
@@ -1,10 +1,25 @@
1
+ import {
2
+ createProvider
3
+ } from "../chunk-2VWLHCZS.js";
4
+
1
5
  // src/existing-image/index.ts
2
6
  import { proxmox } from "@highstate/library";
3
7
  import { forUnit } from "@highstate/pulumi";
4
- var { args, outputs } = forUnit(proxmox.existingImage);
8
+ import { storage } from "@muhlba91/pulumi-proxmoxve";
9
+ var { name, args, inputs, outputs } = forUnit(proxmox.existingImage);
10
+ var provider = await createProvider(inputs.proxmoxCluster);
11
+ var image = storage.File.get(
12
+ name,
13
+ args.id,
14
+ {
15
+ datastoreId: inputs.proxmoxCluster.defaultDatastoreId,
16
+ nodeName: inputs.proxmoxCluster.defaultNodeName
17
+ },
18
+ { provider }
19
+ );
5
20
  var existing_image_default = outputs({
6
21
  image: {
7
- id: args.id
22
+ id: image.id
8
23
  }
9
24
  });
10
25
  export {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/existing-image/index.ts"],"sourcesContent":["import { proxmox } from \"@highstate/library\"\nimport { forUnit } from \"@highstate/pulumi\"\n\nconst { args, outputs } = forUnit(proxmox.existingImage)\n\nexport default outputs({\n image: {\n id: args.id,\n },\n})\n"],"mappings":";AAAA,SAAS,eAAe;AACxB,SAAS,eAAe;AAExB,IAAM,EAAE,MAAM,QAAQ,IAAI,QAAQ,QAAQ,aAAa;AAEvD,IAAO,yBAAQ,QAAQ;AAAA,EACrB,OAAO;AAAA,IACL,IAAI,KAAK;AAAA,EACX;AACF,CAAC;","names":[]}
1
+ {"version":3,"sources":["../../src/existing-image/index.ts"],"sourcesContent":["import { proxmox } from \"@highstate/library\"\nimport { forUnit } from \"@highstate/pulumi\"\nimport { storage } from \"@muhlba91/pulumi-proxmoxve\"\nimport { createProvider } from \"../provider\"\n\nconst { name, args, inputs, outputs } = forUnit(proxmox.existingImage)\n\nconst provider = await createProvider(inputs.proxmoxCluster)\n\nconst image = storage.File.get(\n name,\n args.id,\n {\n datastoreId: inputs.proxmoxCluster.defaultDatastoreId,\n nodeName: inputs.proxmoxCluster.defaultNodeName,\n },\n { provider },\n)\n\nexport default outputs({\n image: {\n id: image.id,\n },\n})\n"],"mappings":";;;;;AAAA,SAAS,eAAe;AACxB,SAAS,eAAe;AACxB,SAAS,eAAe;AAGxB,IAAM,EAAE,MAAM,MAAM,QAAQ,QAAQ,IAAI,QAAQ,QAAQ,aAAa;AAErE,IAAM,WAAW,MAAM,eAAe,OAAO,cAAc;AAE3D,IAAM,QAAQ,QAAQ,KAAK;AAAA,EACzB;AAAA,EACA,KAAK;AAAA,EACL;AAAA,IACE,aAAa,OAAO,eAAe;AAAA,IACnC,UAAU,OAAO,eAAe;AAAA,EAClC;AAAA,EACA,EAAE,SAAS;AACb;AAEA,IAAO,yBAAQ,QAAQ;AAAA,EACrB,OAAO;AAAA,IACL,IAAI,MAAM;AAAA,EACZ;AACF,CAAC;","names":[]}
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "sourceHashes": {
3
- "./dist/connection/index.js": "8e9631d5713208b8eb4d7e90b079f6caa060a57c54b5236ab5fb3fbfcb89d042",
4
- "./dist/virtual-machine/index.js": "ae52788cb3a387c5ada96716eb1d1c3dad3ed6db8482504174c4699b006b550f",
5
- "./dist/existing-image/index.js": "5aa7f4a2af7034a38ce82eab54b257936ee68adf8c36cc6bff770290481b9371",
6
- "./dist/image/index.js": "737316f67df59be95914d8fa9e43940fe4459a617fb5c7d3e31f99d1e476886a"
3
+ "./dist/connection/index.js": "d3728cea37d297b18a1d0d1c9ed6ca052eed0f5eee5229d935e3735811482cf5",
4
+ "./dist/virtual-machine/index.js": "b041ec0bdb388aea81cdfe8edb84152b568333be8049f6138740ced0ce3e3717",
5
+ "./dist/existing-image/index.js": "424d49dabe532d1d4e85053080d8679bf517f2ef467613b0ba950f61b5dace0e",
6
+ "./dist/image/index.js": "0de487289e7177eed52514959e0f23b6a15936f6ecd84a49c910f2f7b9945a91"
7
7
  }
8
8
  }
@@ -4,9 +4,14 @@ import {
4
4
 
5
5
  // src/virtual-machine/index.ts
6
6
  import { proxmox } from "@highstate/library";
7
- import { forUnit, output } from "@highstate/pulumi";
7
+ import { forUnit, output, toPromise } from "@highstate/pulumi";
8
8
  import { vm } from "@muhlba91/pulumi-proxmoxve";
9
- import { createSshTerminal } from "@highstate/common";
9
+ import {
10
+ createServerEntity,
11
+ createSshTerminal,
12
+ l3EndpointToString,
13
+ parseL3Endpoint
14
+ } from "@highstate/common";
10
15
  var { name, args, inputs, secrets, outputs } = forUnit(proxmox.virtualMachine);
11
16
  var provider = await createProvider(inputs.proxmoxCluster);
12
17
  var nodeName = args.nodeName ?? inputs.proxmoxCluster.defaultNodeName;
@@ -80,28 +85,25 @@ function createCloudInit(resolvedInputs) {
80
85
  }) : void 0
81
86
  };
82
87
  }
83
- var endpoint = machine.ipv4Addresses.apply(findNotLocalHostIpV4);
84
- var server = output({
88
+ var ipv4Addresses = await toPromise(machine.ipv4Addresses);
89
+ var nonLocalHostIpV4 = findNotLocalHostIpV4(ipv4Addresses);
90
+ var endpoint = parseL3Endpoint(nonLocalHostIpV4);
91
+ var server = createServerEntity(
92
+ name,
85
93
  endpoint,
86
- hostname: name,
87
- sshCredentials: {
88
- privateKey: inputs.sshKeyPair?.privateKey,
89
- user: args.sshUser ?? "root"
90
- }
91
- });
94
+ args.sshPort,
95
+ args.sshUser,
96
+ secrets.sshPassword,
97
+ inputs.sshKeyPair?.privateKey
98
+ );
92
99
  var virtual_machine_default = outputs({
93
100
  server,
101
+ endpoints: [endpoint],
94
102
  $status: {
95
- endpoint: {
96
- value: endpoint
97
- },
98
- hostname: {
99
- value: name
100
- }
103
+ endpoints: [l3EndpointToString(endpoint)],
104
+ hostname: name
101
105
  },
102
- $terminals: {
103
- ssh: server.apply(createSshTerminal)
104
- }
106
+ $terminals: [createSshTerminal(server.ssh)]
105
107
  });
106
108
  export {
107
109
  virtual_machine_default as default
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/virtual-machine/index.ts"],"sourcesContent":["import type { VM } from \"@muhlba91/pulumi-proxmoxve/types/input\"\nimport { common, proxmox } from \"@highstate/library\"\nimport { forUnit, Output, output, type Unwrap } from \"@highstate/pulumi\"\nimport { vm } from \"@muhlba91/pulumi-proxmoxve\"\nimport { createSshTerminal } from \"@highstate/common\"\nimport { createProvider } from \"../provider\"\n\nconst { name, args, inputs, secrets, outputs } = forUnit(proxmox.virtualMachine)\n\nconst provider = await createProvider(inputs.proxmoxCluster)\n\nconst nodeName = args.nodeName ?? inputs.proxmoxCluster.defaultNodeName\nconst datastoreId = args.datastoreId ?? inputs.proxmoxCluster.defaultDatastoreId\n\nconst machine = new vm.VirtualMachine(\n name,\n {\n name,\n nodeName,\n agent: {\n enabled: true,\n },\n cpu: {\n cores: args.cores,\n sockets: args.sockets,\n type: args.cpuType ?? \"host\",\n },\n memory: {\n dedicated: args.memory,\n },\n cdrom: {\n enabled: true,\n interface: \"ide1\",\n fileId: inputs.image.id,\n },\n disks: [\n {\n interface: \"scsi0\",\n size: args.diskSize,\n datastoreId,\n },\n ],\n networkDevices: [\n {\n bridge: args.bridge,\n },\n ],\n initialization: output(inputs).apply(createCloudInit),\n bootOrders: [\"scsi0\", \"ide1\"],\n },\n { provider },\n)\n\nfunction findNotLocalHostIpV4(ips: string[][]): string {\n for (const ip of ips) {\n if (ip[0] && ip[0] !== \"127.0.0.1\") {\n return ip[0]\n }\n }\n\n throw new Error(\"No non-local host IP found\")\n}\n\nfunction deriveIpV4Gateway(ip: string): string {\n return ip.split(\".\").slice(0, 3).join(\".\") + \".1\"\n}\n\nfunction createCloudInit(resolvedInputs: Unwrap<typeof inputs>): VM.VirtualMachineInitialization {\n return {\n datastoreId,\n interface: \"ide2\",\n ipConfigs: args.ipv4\n ? [\n {\n ipv4: {\n address: args.ipv4,\n gateway: args.ipv4Gateway ?? deriveIpV4Gateway(args.ipv4),\n },\n },\n ]\n : undefined,\n dns: args.dns ? { servers: args.dns } : undefined,\n\n userAccount: resolvedInputs.sshKeyPair\n ? output({\n keys: [resolvedInputs.sshKeyPair.publicKey],\n username: args.sshUser ?? \"root\",\n password: secrets.sshPassword,\n })\n : undefined,\n }\n}\n\nconst endpoint = machine.ipv4Addresses.apply(findNotLocalHostIpV4)\n\nconst server: Output<common.Server> = output({\n endpoint,\n hostname: name,\n sshCredentials: {\n privateKey: inputs.sshKeyPair?.privateKey,\n user: args.sshUser ?? \"root\",\n },\n})\n\nexport default outputs({\n server,\n $status: {\n endpoint: {\n value: endpoint,\n },\n hostname: {\n value: name,\n },\n },\n $terminals: {\n ssh: server.apply(createSshTerminal),\n },\n})\n"],"mappings":";;;;;AACA,SAAiB,eAAe;AAChC,SAAS,SAAiB,cAA2B;AACrD,SAAS,UAAU;AACnB,SAAS,yBAAyB;AAGlC,IAAM,EAAE,MAAM,MAAM,QAAQ,SAAS,QAAQ,IAAI,QAAQ,QAAQ,cAAc;AAE/E,IAAM,WAAW,MAAM,eAAe,OAAO,cAAc;AAE3D,IAAM,WAAW,KAAK,YAAY,OAAO,eAAe;AACxD,IAAM,cAAc,KAAK,eAAe,OAAO,eAAe;AAE9D,IAAM,UAAU,IAAI,GAAG;AAAA,EACrB;AAAA,EACA;AAAA,IACE;AAAA,IACA;AAAA,IACA,OAAO;AAAA,MACL,SAAS;AAAA,IACX;AAAA,IACA,KAAK;AAAA,MACH,OAAO,KAAK;AAAA,MACZ,SAAS,KAAK;AAAA,MACd,MAAM,KAAK,WAAW;AAAA,IACxB;AAAA,IACA,QAAQ;AAAA,MACN,WAAW,KAAK;AAAA,IAClB;AAAA,IACA,OAAO;AAAA,MACL,SAAS;AAAA,MACT,WAAW;AAAA,MACX,QAAQ,OAAO,MAAM;AAAA,IACvB;AAAA,IACA,OAAO;AAAA,MACL;AAAA,QACE,WAAW;AAAA,QACX,MAAM,KAAK;AAAA,QACX;AAAA,MACF;AAAA,IACF;AAAA,IACA,gBAAgB;AAAA,MACd;AAAA,QACE,QAAQ,KAAK;AAAA,MACf;AAAA,IACF;AAAA,IACA,gBAAgB,OAAO,MAAM,EAAE,MAAM,eAAe;AAAA,IACpD,YAAY,CAAC,SAAS,MAAM;AAAA,EAC9B;AAAA,EACA,EAAE,SAAS;AACb;AAEA,SAAS,qBAAqB,KAAyB;AACrD,aAAW,MAAM,KAAK;AACpB,QAAI,GAAG,CAAC,KAAK,GAAG,CAAC,MAAM,aAAa;AAClC,aAAO,GAAG,CAAC;AAAA,IACb;AAAA,EACF;AAEA,QAAM,IAAI,MAAM,4BAA4B;AAC9C;AAEA,SAAS,kBAAkB,IAAoB;AAC7C,SAAO,GAAG,MAAM,GAAG,EAAE,MAAM,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI;AAC/C;AAEA,SAAS,gBAAgB,gBAAwE;AAC/F,SAAO;AAAA,IACL;AAAA,IACA,WAAW;AAAA,IACX,WAAW,KAAK,OACZ;AAAA,MACE;AAAA,QACE,MAAM;AAAA,UACJ,SAAS,KAAK;AAAA,UACd,SAAS,KAAK,eAAe,kBAAkB,KAAK,IAAI;AAAA,QAC1D;AAAA,MACF;AAAA,IACF,IACA;AAAA,IACJ,KAAK,KAAK,MAAM,EAAE,SAAS,KAAK,IAAI,IAAI;AAAA,IAExC,aAAa,eAAe,aACxB,OAAO;AAAA,MACL,MAAM,CAAC,eAAe,WAAW,SAAS;AAAA,MAC1C,UAAU,KAAK,WAAW;AAAA,MAC1B,UAAU,QAAQ;AAAA,IACpB,CAAC,IACD;AAAA,EACN;AACF;AAEA,IAAM,WAAW,QAAQ,cAAc,MAAM,oBAAoB;AAEjE,IAAM,SAAgC,OAAO;AAAA,EAC3C;AAAA,EACA,UAAU;AAAA,EACV,gBAAgB;AAAA,IACd,YAAY,OAAO,YAAY;AAAA,IAC/B,MAAM,KAAK,WAAW;AAAA,EACxB;AACF,CAAC;AAED,IAAO,0BAAQ,QAAQ;AAAA,EACrB;AAAA,EACA,SAAS;AAAA,IACP,UAAU;AAAA,MACR,OAAO;AAAA,IACT;AAAA,IACA,UAAU;AAAA,MACR,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA,YAAY;AAAA,IACV,KAAK,OAAO,MAAM,iBAAiB;AAAA,EACrC;AACF,CAAC;","names":[]}
1
+ {"version":3,"sources":["../../src/virtual-machine/index.ts"],"sourcesContent":["import type { VM } from \"@muhlba91/pulumi-proxmoxve/types/input\"\nimport { proxmox } from \"@highstate/library\"\nimport { forUnit, output, toPromise, type Unwrap } from \"@highstate/pulumi\"\nimport { vm } from \"@muhlba91/pulumi-proxmoxve\"\nimport {\n createServerEntity,\n createSshTerminal,\n l3EndpointToString,\n parseL3Endpoint,\n} from \"@highstate/common\"\nimport { createProvider } from \"../provider\"\n\nconst { name, args, inputs, secrets, outputs } = forUnit(proxmox.virtualMachine)\n\nconst provider = await createProvider(inputs.proxmoxCluster)\n\nconst nodeName = args.nodeName ?? inputs.proxmoxCluster.defaultNodeName\nconst datastoreId = args.datastoreId ?? inputs.proxmoxCluster.defaultDatastoreId\n\nconst machine = new vm.VirtualMachine(\n name,\n {\n name,\n nodeName,\n agent: {\n enabled: true,\n },\n cpu: {\n cores: args.cores,\n sockets: args.sockets,\n type: args.cpuType ?? \"host\",\n },\n memory: {\n dedicated: args.memory,\n },\n cdrom: {\n enabled: true,\n interface: \"ide1\",\n fileId: inputs.image.id,\n },\n disks: [\n {\n interface: \"scsi0\",\n size: args.diskSize,\n datastoreId,\n },\n ],\n networkDevices: [\n {\n bridge: args.bridge,\n },\n ],\n initialization: output(inputs).apply(createCloudInit),\n bootOrders: [\"scsi0\", \"ide1\"],\n },\n { provider },\n)\n\nfunction findNotLocalHostIpV4(ips: string[][]): string {\n for (const ip of ips) {\n if (ip[0] && ip[0] !== \"127.0.0.1\") {\n return ip[0]\n }\n }\n\n throw new Error(\"No non-local host IP found\")\n}\n\nfunction deriveIpV4Gateway(ip: string): string {\n return ip.split(\".\").slice(0, 3).join(\".\") + \".1\"\n}\n\nfunction createCloudInit(resolvedInputs: Unwrap<typeof inputs>): VM.VirtualMachineInitialization {\n return {\n datastoreId,\n interface: \"ide2\",\n ipConfigs: args.ipv4\n ? [\n {\n ipv4: {\n address: args.ipv4,\n gateway: args.ipv4Gateway ?? deriveIpV4Gateway(args.ipv4),\n },\n },\n ]\n : undefined,\n dns: args.dns ? { servers: args.dns } : undefined,\n\n userAccount: resolvedInputs.sshKeyPair\n ? output({\n keys: [resolvedInputs.sshKeyPair.publicKey],\n username: args.sshUser ?? \"root\",\n password: secrets.sshPassword,\n })\n : undefined,\n }\n}\n\nconst ipv4Addresses = await toPromise(machine.ipv4Addresses)\nconst nonLocalHostIpV4 = findNotLocalHostIpV4(ipv4Addresses)\n\nconst endpoint = parseL3Endpoint(nonLocalHostIpV4)\n\nconst server = createServerEntity(\n name,\n endpoint,\n args.sshPort,\n args.sshUser,\n secrets.sshPassword,\n inputs.sshKeyPair?.privateKey,\n)\n\nexport default outputs({\n server,\n endpoints: [endpoint],\n\n $status: {\n endpoints: [l3EndpointToString(endpoint)],\n hostname: name,\n },\n\n $terminals: [createSshTerminal(server.ssh)],\n})\n"],"mappings":";;;;;AACA,SAAS,eAAe;AACxB,SAAS,SAAS,QAAQ,iBAA8B;AACxD,SAAS,UAAU;AACnB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGP,IAAM,EAAE,MAAM,MAAM,QAAQ,SAAS,QAAQ,IAAI,QAAQ,QAAQ,cAAc;AAE/E,IAAM,WAAW,MAAM,eAAe,OAAO,cAAc;AAE3D,IAAM,WAAW,KAAK,YAAY,OAAO,eAAe;AACxD,IAAM,cAAc,KAAK,eAAe,OAAO,eAAe;AAE9D,IAAM,UAAU,IAAI,GAAG;AAAA,EACrB;AAAA,EACA;AAAA,IACE;AAAA,IACA;AAAA,IACA,OAAO;AAAA,MACL,SAAS;AAAA,IACX;AAAA,IACA,KAAK;AAAA,MACH,OAAO,KAAK;AAAA,MACZ,SAAS,KAAK;AAAA,MACd,MAAM,KAAK,WAAW;AAAA,IACxB;AAAA,IACA,QAAQ;AAAA,MACN,WAAW,KAAK;AAAA,IAClB;AAAA,IACA,OAAO;AAAA,MACL,SAAS;AAAA,MACT,WAAW;AAAA,MACX,QAAQ,OAAO,MAAM;AAAA,IACvB;AAAA,IACA,OAAO;AAAA,MACL;AAAA,QACE,WAAW;AAAA,QACX,MAAM,KAAK;AAAA,QACX;AAAA,MACF;AAAA,IACF;AAAA,IACA,gBAAgB;AAAA,MACd;AAAA,QACE,QAAQ,KAAK;AAAA,MACf;AAAA,IACF;AAAA,IACA,gBAAgB,OAAO,MAAM,EAAE,MAAM,eAAe;AAAA,IACpD,YAAY,CAAC,SAAS,MAAM;AAAA,EAC9B;AAAA,EACA,EAAE,SAAS;AACb;AAEA,SAAS,qBAAqB,KAAyB;AACrD,aAAW,MAAM,KAAK;AACpB,QAAI,GAAG,CAAC,KAAK,GAAG,CAAC,MAAM,aAAa;AAClC,aAAO,GAAG,CAAC;AAAA,IACb;AAAA,EACF;AAEA,QAAM,IAAI,MAAM,4BAA4B;AAC9C;AAEA,SAAS,kBAAkB,IAAoB;AAC7C,SAAO,GAAG,MAAM,GAAG,EAAE,MAAM,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI;AAC/C;AAEA,SAAS,gBAAgB,gBAAwE;AAC/F,SAAO;AAAA,IACL;AAAA,IACA,WAAW;AAAA,IACX,WAAW,KAAK,OACZ;AAAA,MACE;AAAA,QACE,MAAM;AAAA,UACJ,SAAS,KAAK;AAAA,UACd,SAAS,KAAK,eAAe,kBAAkB,KAAK,IAAI;AAAA,QAC1D;AAAA,MACF;AAAA,IACF,IACA;AAAA,IACJ,KAAK,KAAK,MAAM,EAAE,SAAS,KAAK,IAAI,IAAI;AAAA,IAExC,aAAa,eAAe,aACxB,OAAO;AAAA,MACL,MAAM,CAAC,eAAe,WAAW,SAAS;AAAA,MAC1C,UAAU,KAAK,WAAW;AAAA,MAC1B,UAAU,QAAQ;AAAA,IACpB,CAAC,IACD;AAAA,EACN;AACF;AAEA,IAAM,gBAAgB,MAAM,UAAU,QAAQ,aAAa;AAC3D,IAAM,mBAAmB,qBAAqB,aAAa;AAE3D,IAAM,WAAW,gBAAgB,gBAAgB;AAEjD,IAAM,SAAS;AAAA,EACb;AAAA,EACA;AAAA,EACA,KAAK;AAAA,EACL,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,OAAO,YAAY;AACrB;AAEA,IAAO,0BAAQ,QAAQ;AAAA,EACrB;AAAA,EACA,WAAW,CAAC,QAAQ;AAAA,EAEpB,SAAS;AAAA,IACP,WAAW,CAAC,mBAAmB,QAAQ,CAAC;AAAA,IACxC,UAAU;AAAA,EACZ;AAAA,EAEA,YAAY,CAAC,kBAAkB,OAAO,GAAG,CAAC;AAC5C,CAAC;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@highstate/proxmox",
3
- "version": "0.9.4",
3
+ "version": "0.9.5",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist"
@@ -18,14 +18,14 @@
18
18
  "build": "highstate build"
19
19
  },
20
20
  "dependencies": {
21
- "@highstate/common": "^0.9.4",
22
- "@highstate/contract": "^0.9.4",
23
- "@highstate/library": "^0.9.4",
24
- "@highstate/pulumi": "^0.9.4",
21
+ "@highstate/common": "^0.9.5",
22
+ "@highstate/contract": "^0.9.5",
23
+ "@highstate/library": "^0.9.5",
24
+ "@highstate/pulumi": "^0.9.5",
25
25
  "@muhlba91/pulumi-proxmoxve": "^6.17.1"
26
26
  },
27
27
  "devDependencies": {
28
- "@highstate/cli": "^0.9.4"
28
+ "@highstate/cli": "^0.9.5"
29
29
  },
30
- "gitHead": "021af8cde467823881e2dc82ccb606c9617772ea"
30
+ "gitHead": "93fa1e8b1189a5232055c852fd79a684d8b80444"
31
31
  }