@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
|
-
|
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:
|
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:
|
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": "
|
4
|
-
"./dist/virtual-machine/index.js": "
|
5
|
-
"./dist/existing-image/index.js": "
|
6
|
-
"./dist/image/index.js": "
|
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 {
|
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
|
84
|
-
var
|
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
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
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
|
-
|
96
|
-
|
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 {
|
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.
|
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.
|
22
|
-
"@highstate/contract": "^0.9.
|
23
|
-
"@highstate/library": "^0.9.
|
24
|
-
"@highstate/pulumi": "^0.9.
|
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.
|
28
|
+
"@highstate/cli": "^0.9.5"
|
29
29
|
},
|
30
|
-
"gitHead": "
|
30
|
+
"gitHead": "93fa1e8b1189a5232055c852fd79a684d8b80444"
|
31
31
|
}
|