diff --git a/01-proxmox-infra/index.ts b/01-proxmox-infra/index.ts index 473e04d..9a63deb 100644 --- a/01-proxmox-infra/index.ts +++ b/01-proxmox-infra/index.ts @@ -47,6 +47,12 @@ const pveEsprimoProvider = new proxmox.Provider("pve-esprimo", { insecure: true, }); +const pveNodes = { + "pve-b550": { nodeName: "pve", isoStore: "pve-local-ext1", dataStore: "local-lvm" }, + "pve-optiplex": { nodeName: "pve-bckp", isoStore: "local", dataStore: "local" }, + "pve-esprimo": { nodeName: "pve", isoStore: "local", dataStore: "local-lvm" }, +} as const; + // --------------------------------------------------------------------------- // Providers — PfSense // --------------------------------------------------------------------------- @@ -77,8 +83,8 @@ const ubuntuNobleUrl = const ubuntuImagePve = new proxmox.download.File( "ubuntu-noble-pve", { - nodeName: "pve", - datastoreId: "pve-local-ext1", + nodeName: pveNodes["pve-b550"].nodeName, + datastoreId: pveNodes["pve-b550"].isoStore, contentType: "import", fileName: "noble-server-cloudimg-amd64.qcow2", url: ubuntuNobleUrl, @@ -91,8 +97,8 @@ const ubuntuImagePve = new proxmox.download.File( const ubuntuImagePveBckp = new proxmox.download.File( "ubuntu-noble-pve-bckp", { - nodeName: "pve-bckp", - datastoreId: "local", + nodeName: pveNodes["pve-optiplex"].nodeName, + datastoreId: pveNodes["pve-optiplex"].isoStore, contentType: "import", fileName: "noble-server-cloudimg-amd64.qcow2", url: ubuntuNobleUrl, @@ -105,8 +111,8 @@ const ubuntuImagePveBckp = new proxmox.download.File( const ubuntuImagePveEsprimo = new proxmox.download.File( "ubuntu-noble-pve-esprimo", { - nodeName: "pve", - datastoreId: "local", + nodeName: pveNodes["pve-esprimo"].nodeName, + datastoreId: pveNodes["pve-esprimo"].isoStore, contentType: "import", fileName: "noble-server-cloudimg-amd64.qcow2", url: ubuntuNobleUrl, @@ -152,7 +158,7 @@ const pveTemplate = new proxmox.VmLegacy( disks: [ { interface: "scsi0", - datastoreId: "local-lvm", + datastoreId: pveNodes["pve-b550"].dataStore, importFrom: pulumi.interpolate`${ubuntuImagePve.datastoreId}:import/${ubuntuImagePve.fileName}`, size: 10, ssd: true, @@ -172,7 +178,7 @@ const pveBckpTemplate = new proxmox.VmLegacy( disks: [ { interface: "scsi0", - datastoreId: "local", + datastoreId: pveNodes["pve-optiplex"].dataStore, importFrom: pulumi.interpolate`${ubuntuImagePveBckp.datastoreId}:import/${ubuntuImagePveBckp.fileName}`, size: 10, ssd: true, @@ -192,7 +198,7 @@ const pveEsprimoTemplate = new proxmox.VmLegacy( disks: [ { interface: "scsi0", - datastoreId: "local", + datastoreId: pveNodes["pve-esprimo"].dataStore, importFrom: pulumi.interpolate`${ubuntuImagePveEsprimo.datastoreId}:import/${ubuntuImagePveEsprimo.fileName}`, size: 10, ssd: true, @@ -225,57 +231,57 @@ const nodeConfigs: NodeConfig[] = [ { name: "k3s-master-1", role: "master", - nodeName: "pve", + nodeName: pveNodes["pve-b550"].nodeName, provider: pveProvider, template: pveTemplate, - diskDatastore: "local-lvm", + diskDatastore: pveNodes["pve-b550"].dataStore, ip: master1Ip, }, { name: "k3s-master-2", role: "master", - nodeName: "pve", + nodeName: pveNodes["pve-esprimo"].nodeName, provider: pveEsprimoProvider, template: pveTemplate, - diskDatastore: "local-lvm", + diskDatastore: pveNodes["pve-esprimo"].dataStore, ip: master2Ip, }, { name: "k3s-worker-1", role: "worker", - nodeName: "pve", + nodeName: pveNodes["pve-b550"].nodeName, provider: pveProvider, template: pveTemplate, - diskDatastore: "local-lvm", + diskDatastore: pveNodes["pve-b550"].dataStore, ip: worker1Ip, longhornDiskSize: 50, }, { name: "k3s-master-3", role: "master", - nodeName: "pve-bckp", + nodeName: pveNodes["pve-optiplex"].nodeName, provider: pveBckpProvider, template: pveBckpTemplate, - diskDatastore: "local", + diskDatastore: pveNodes["pve-optiplex"].dataStore, ip: master3Ip, }, { name: "k3s-worker-2", role: "worker", - nodeName: "pve-bckp", + nodeName: pveNodes["pve-optiplex"].nodeName, provider: pveBckpProvider, template: pveBckpTemplate, - diskDatastore: "local", + diskDatastore: pveNodes["pve-optiplex"].dataStore, ip: worker2Ip, longhornDiskSize: 50, }, { name: "k3s-worker-3", role: "worker", - nodeName: "pve", + nodeName: pveNodes["pve-esprimo"].nodeName, provider: pveEsprimoProvider, template: pveEsprimoTemplate, - diskDatastore: "local", + diskDatastore: pveNodes["pve-esprimo"].dataStore, ip: worker3Ip, longhornDiskSize: 50, },