diff --git a/hetzner-pulumi/index.ts b/hetzner-pulumi/index.ts index 425caa9..105a55d 100644 --- a/hetzner-pulumi/index.ts +++ b/hetzner-pulumi/index.ts @@ -1,8 +1,10 @@ -import { +import { subNetwork, regionalNetwork, + allowHttp, + allowSSH, } from "./resources/network"; -import { genServer } from "./resources/compute"; +import { server } from "./resources/compute"; import { VmSize, @@ -12,9 +14,11 @@ import { ServerLocations, } from "./resources/types"; +// regional vnet const eu = regionalNetwork("ha", "10.24.0.0/18", NetworkRegion.eu); const usEast = regionalNetwork("ha", "10.25.0.0/18", NetworkRegion.usEast); +// subnets for reginal vnets const network = { eu: { lb: subNetwork(eu, NetworkRole.lb, NetworkRegion.eu, "10.24.1.0/24"), @@ -22,33 +26,67 @@ const network = { web: subNetwork(eu, NetworkRole.web, NetworkRegion.eu, "10.24.3.0/24"), // db: subNetwork(eu, NetworkRole.db, "10.24.4.0/24") }, - us: { - lb: subNetwork(usEast, NetworkRole.lb, NetworkRegion.usEast, "10.25.1.0/24"), - web: subNetwork(usEast, NetworkRole.web, NetworkRegion.usEast, "10.25.2.0/24"), + usEast: { + lb: subNetwork( + usEast, + NetworkRole.lb, + NetworkRegion.usEast, + "10.25.1.0/24", + ), + cache: subNetwork( + usEast, + NetworkRole.cache, + NetworkRegion.usEast, + "10.25.2.0/24", + ), + web: subNetwork( + usEast, + NetworkRole.web, + NetworkRegion.usEast, + "10.25.3.0/24", + ), }, }; +// variable un-maps const hel1 = ServerLocations.helsinki; const hil = ServerLocations.hillsboro; - -const haproxyEU1 = genServer("haproxy-1", VmSize.small, OS.debian, hel1, network.eu.lb); -const haproxyEU2 = genServer("haproxy-2", VmSize.small, OS.debian, hel1, network.eu.lb); -const haproxyUS1 = genServer("haproxy-1", VmSize.small, OS.debian, hil, network.us.lb); - -const haproxyCache1 = genServer("varnish-1", VmSize.small, OS.debian, hel1, network.eu.cache); -const haproxyCache2 = genServer("varnish-2", VmSize.small, OS.debian, hel1, network.eu.cache); -// const varnishUS = genServer(2, 'varnish', VmSize.small, OS.debian, hel1, network.us.cache) - -export const servers = [ - haproxyEU1, haproxyEU2, haproxyUS1, haproxyCache1, haproxyCache2 +const [EU_LB, US_LB, EU_CACHE, US_CACHE, EU_WEB, US_WEB] = [ + network.eu.lb, + network.usEast.lb, + network.eu.cache, + network.usEast.cache, + network.eu.web, + network.usEast.web, ]; +// compute - server resources +const haEU1 = server("haproxy-1", VmSize.small, OS.debian, hel1, EU_LB); +const haEU2 = server("haproxy-2", VmSize.small, OS.debian, hel1, EU_LB); +const haUS1 = server("haproxy-1", VmSize.small, OS.debian, hil, US_LB); +// const haUS2 = server("haproxy-2", VmSize.small, OS.debian, hil, US_LB); + +const cacheEU1 = server("varnish-1", VmSize.small, OS.debian, hel1, EU_CACHE); +const cacheEU2 = server("varnish-2", VmSize.small, OS.debian, hil, EU_CACHE); +// const cacheUS1 = server("varnish-1", VmSize.small, OS.debian, hil, US_CACHE); +// const cacheUS2 = server("varnish-2", VmSize.small, OS.debian, hil, US_CACHE); + +const webEU1 = server("web-1", VmSize.small, OS.debian, hel1, EU_WEB); +// const webEU2 = server("web-2", VmSize.small, OS.debian, hel1, EU_WEB); +// const webUS1 = server("web-1", VmSize.small, OS.debian, hil, US_WEB); + +// firewall & exports +export const firewalls = [allowHttp, allowSSH]; + +// exports contd. +export const servers = [haEU1, haEU2, haUS1, cacheEU1, cacheEU2, webEU1]; + export const networks = [ eu, usEast, network.eu.lb, network.eu.cache, network.eu.web, - network.us.lb, - network.us.web, + network.usEast.lb, + network.usEast.web, ];