added node constants
Deploy Proxmox Infra / Pulumi Deploy (pull_request) Canceled after 0s
Deploy Proxmox Infra / Pulumi Preview (pull_request) Canceled after 7s

This commit is contained in:
2026-07-27 21:30:41 +02:00
parent 05208ca802
commit ddf3ff9717
+27 -21
View File
@@ -47,6 +47,12 @@ const pveEsprimoProvider = new proxmox.Provider("pve-esprimo", {
insecure: true, 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 // Providers — PfSense
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
@@ -77,8 +83,8 @@ const ubuntuNobleUrl =
const ubuntuImagePve = new proxmox.download.File( const ubuntuImagePve = new proxmox.download.File(
"ubuntu-noble-pve", "ubuntu-noble-pve",
{ {
nodeName: "pve", nodeName: pveNodes["pve-b550"].nodeName,
datastoreId: "pve-local-ext1", datastoreId: pveNodes["pve-b550"].isoStore,
contentType: "import", contentType: "import",
fileName: "noble-server-cloudimg-amd64.qcow2", fileName: "noble-server-cloudimg-amd64.qcow2",
url: ubuntuNobleUrl, url: ubuntuNobleUrl,
@@ -91,8 +97,8 @@ const ubuntuImagePve = new proxmox.download.File(
const ubuntuImagePveBckp = new proxmox.download.File( const ubuntuImagePveBckp = new proxmox.download.File(
"ubuntu-noble-pve-bckp", "ubuntu-noble-pve-bckp",
{ {
nodeName: "pve-bckp", nodeName: pveNodes["pve-optiplex"].nodeName,
datastoreId: "local", datastoreId: pveNodes["pve-optiplex"].isoStore,
contentType: "import", contentType: "import",
fileName: "noble-server-cloudimg-amd64.qcow2", fileName: "noble-server-cloudimg-amd64.qcow2",
url: ubuntuNobleUrl, url: ubuntuNobleUrl,
@@ -105,8 +111,8 @@ const ubuntuImagePveBckp = new proxmox.download.File(
const ubuntuImagePveEsprimo = new proxmox.download.File( const ubuntuImagePveEsprimo = new proxmox.download.File(
"ubuntu-noble-pve-esprimo", "ubuntu-noble-pve-esprimo",
{ {
nodeName: "pve", nodeName: pveNodes["pve-esprimo"].nodeName,
datastoreId: "local", datastoreId: pveNodes["pve-esprimo"].isoStore,
contentType: "import", contentType: "import",
fileName: "noble-server-cloudimg-amd64.qcow2", fileName: "noble-server-cloudimg-amd64.qcow2",
url: ubuntuNobleUrl, url: ubuntuNobleUrl,
@@ -152,7 +158,7 @@ const pveTemplate = new proxmox.VmLegacy(
disks: [ disks: [
{ {
interface: "scsi0", interface: "scsi0",
datastoreId: "local-lvm", datastoreId: pveNodes["pve-b550"].dataStore,
importFrom: pulumi.interpolate`${ubuntuImagePve.datastoreId}:import/${ubuntuImagePve.fileName}`, importFrom: pulumi.interpolate`${ubuntuImagePve.datastoreId}:import/${ubuntuImagePve.fileName}`,
size: 10, size: 10,
ssd: true, ssd: true,
@@ -172,7 +178,7 @@ const pveBckpTemplate = new proxmox.VmLegacy(
disks: [ disks: [
{ {
interface: "scsi0", interface: "scsi0",
datastoreId: "local", datastoreId: pveNodes["pve-optiplex"].dataStore,
importFrom: pulumi.interpolate`${ubuntuImagePveBckp.datastoreId}:import/${ubuntuImagePveBckp.fileName}`, importFrom: pulumi.interpolate`${ubuntuImagePveBckp.datastoreId}:import/${ubuntuImagePveBckp.fileName}`,
size: 10, size: 10,
ssd: true, ssd: true,
@@ -192,7 +198,7 @@ const pveEsprimoTemplate = new proxmox.VmLegacy(
disks: [ disks: [
{ {
interface: "scsi0", interface: "scsi0",
datastoreId: "local", datastoreId: pveNodes["pve-esprimo"].dataStore,
importFrom: pulumi.interpolate`${ubuntuImagePveEsprimo.datastoreId}:import/${ubuntuImagePveEsprimo.fileName}`, importFrom: pulumi.interpolate`${ubuntuImagePveEsprimo.datastoreId}:import/${ubuntuImagePveEsprimo.fileName}`,
size: 10, size: 10,
ssd: true, ssd: true,
@@ -225,57 +231,57 @@ const nodeConfigs: NodeConfig[] = [
{ {
name: "k3s-master-1", name: "k3s-master-1",
role: "master", role: "master",
nodeName: "pve", nodeName: pveNodes["pve-b550"].nodeName,
provider: pveProvider, provider: pveProvider,
template: pveTemplate, template: pveTemplate,
diskDatastore: "local-lvm", diskDatastore: pveNodes["pve-b550"].dataStore,
ip: master1Ip, ip: master1Ip,
}, },
{ {
name: "k3s-master-2", name: "k3s-master-2",
role: "master", role: "master",
nodeName: "pve", nodeName: pveNodes["pve-esprimo"].nodeName,
provider: pveEsprimoProvider, provider: pveEsprimoProvider,
template: pveTemplate, template: pveTemplate,
diskDatastore: "local-lvm", diskDatastore: pveNodes["pve-esprimo"].dataStore,
ip: master2Ip, ip: master2Ip,
}, },
{ {
name: "k3s-worker-1", name: "k3s-worker-1",
role: "worker", role: "worker",
nodeName: "pve", nodeName: pveNodes["pve-b550"].nodeName,
provider: pveProvider, provider: pveProvider,
template: pveTemplate, template: pveTemplate,
diskDatastore: "local-lvm", diskDatastore: pveNodes["pve-b550"].dataStore,
ip: worker1Ip, ip: worker1Ip,
longhornDiskSize: 50, longhornDiskSize: 50,
}, },
{ {
name: "k3s-master-3", name: "k3s-master-3",
role: "master", role: "master",
nodeName: "pve-bckp", nodeName: pveNodes["pve-optiplex"].nodeName,
provider: pveBckpProvider, provider: pveBckpProvider,
template: pveBckpTemplate, template: pveBckpTemplate,
diskDatastore: "local", diskDatastore: pveNodes["pve-optiplex"].dataStore,
ip: master3Ip, ip: master3Ip,
}, },
{ {
name: "k3s-worker-2", name: "k3s-worker-2",
role: "worker", role: "worker",
nodeName: "pve-bckp", nodeName: pveNodes["pve-optiplex"].nodeName,
provider: pveBckpProvider, provider: pveBckpProvider,
template: pveBckpTemplate, template: pveBckpTemplate,
diskDatastore: "local", diskDatastore: pveNodes["pve-optiplex"].dataStore,
ip: worker2Ip, ip: worker2Ip,
longhornDiskSize: 50, longhornDiskSize: 50,
}, },
{ {
name: "k3s-worker-3", name: "k3s-worker-3",
role: "worker", role: "worker",
nodeName: "pve", nodeName: pveNodes["pve-esprimo"].nodeName,
provider: pveEsprimoProvider, provider: pveEsprimoProvider,
template: pveEsprimoTemplate, template: pveEsprimoTemplate,
diskDatastore: "local", diskDatastore: pveNodes["pve-esprimo"].dataStore,
ip: worker3Ip, ip: worker3Ip,
longhornDiskSize: 50, longhornDiskSize: 50,
}, },