diff --git a/terraform/dev/.terraform.lock.hcl b/terraform/dev/.terraform.lock.hcl deleted file mode 100644 index fcf121a..0000000 --- a/terraform/dev/.terraform.lock.hcl +++ /dev/null @@ -1,24 +0,0 @@ -# This file is maintained automatically by "terraform init". -# Manual edits may be lost in future updates. - -provider "registry.terraform.io/bpg/proxmox" { - version = "0.36.0" - constraints = ">= 0.25.0, >= 0.36.0" - hashes = [ - "h1:z/67CMYHJULjF9qpaHdVh22IJnykwAH1r6ZauPhHr9c=", - "zh:04781bb2d728725cd453b7c76b712b3e0b88e7dd94241a9afe9ef397d9d663c7", - "zh:270a3d2a5b515b8b5b10406edd704c26ae82faee7b9f3e9c0f6e4e2a52a11efd", - "zh:28b9a0c507388d1004e793c5d6b0dff88c737ee8c9c725f7e405410004178c68", - "zh:38185b751f8314abbb836ac2e51b1c43b1c669c3d0145dc81e35c09d3d1e10eb", - "zh:4bd20448c58d89bca52bc8c39950651981d0176103900dc752a07e4ff050f492", - "zh:4c65c39a33120a068b187ad7c411a95aa44cee4c39a2278325450060b09f6a7f", - "zh:659d675485bfcd99c5a9023b4815e8bd2e3cb9d5387d89161d5f57c06bd71c8d", - "zh:7adb39250bffb095c3770b0ed0ec38fb9b9ec529792580671e65af787ed94ccd", - "zh:ae9d1b7302edd582d0ec4d2328e187706c185c0031b2c4df0724be60ede76019", - "zh:b47cdaed4cc6080a444d5b831eb6ec13a6b8f74364c9b8e371420b97d29eb9bc", - "zh:ba5e29b31d6a4f61984eae1bc1f7d1a4c2df84596dcf04ac91d1c562b17500a0", - "zh:cb8703bcf8b0bcda56e65a3e84b6edc7a1cd943f639c93b893d532906fdabf11", - "zh:da5718d73a8a05df234b26bf86429a9953008686dd513b028d58d23d46af3826", - "zh:fa399ff24db7287f2cde373e3bbb8df9bb97bf4d6abc8d882f66a2bf3a954250", - ] -} diff --git a/terraform/dev/main.tf b/terraform/dev/main.tf deleted file mode 100644 index bb001db..0000000 --- a/terraform/dev/main.tf +++ /dev/null @@ -1,113 +0,0 @@ -terraform { - required_providers { - proxmox = { - source = "bpg/proxmox" - version = ">=0.36.0" - } - } -} - -provider "proxmox" { - endpoint = var.proxmox_ip - api_token = var.proxmox_api_token - insecure = true - ssh { - agent = true - } -} - -locals { - servers = { - for idx, val in var.server_vmid : val => { - index = idx + 1, - ip_address = var.server_ip_address[idx], - } - } - clients = { - for idx, val in var.client_vmid : val => { - index = idx + 1, - ip_address = var.client_ip_address[idx], - } - } -} - -module "dev" { - source = "../modules/vm" - for_each = local.servers - - hostname = "${var.server_hostname_prefix}-${each.value.index}" - vmid = parseint(each.key, 10) - tags = var.tags - target_node = var.target_node - - clone_template_id = var.template_id - onboot = var.onboot - started = var.started - - cores = var.server_cores - sockets = var.server_sockets - memory = var.server_memory - - disk_size = var.server_disk_size - disk_datastore = var.disk_datastore - - ip_address = each.value.ip_address - ip_gateway = var.ip_gateway - - ssh_user = var.ssh_user - ssh_public_keys = [file(var.ssh_public_key_file)] -} - -module "dev-client" { - source = "../modules/vm" - for_each = local.clients - - hostname = "${var.client_hostname_prefix}-${each.value.index}" - vmid = parseint(each.key, 10) - tags = var.tags - target_node = var.target_node - - clone_template_id = var.template_id - onboot = var.onboot - started = var.started - - cores = var.client_cores - sockets = var.client_sockets - memory = var.client_memory - - disk_size = var.server_disk_size - disk_datastore = var.disk_datastore - - ip_address = each.value.ip_address - ip_gateway = var.ip_gateway - - ssh_user = var.ssh_user - ssh_public_keys = [file(var.ssh_public_key_file)] -} - -module "dev-control" { - source = "../modules/vm" - count = 1 - - hostname = "${var.server_hostname_prefix}-control" - vmid = 135 - tags = var.tags - target_node = var.target_node - - clone_template_id = var.template_id - onboot = var.onboot - started = var.started - - cores = 1 - sockets = 1 - memory = 1024 - - disk_size = 10 - disk_datastore = var.disk_datastore - - ip_address = var.control_ip_address - ip_gateway = var.ip_gateway - - ssh_user = var.ssh_user - ssh_public_keys = [file(var.ssh_public_key_file)] -} diff --git a/terraform/dev/variables.tf b/terraform/dev/variables.tf deleted file mode 100644 index 60ddc58..0000000 --- a/terraform/dev/variables.tf +++ /dev/null @@ -1,164 +0,0 @@ -variable "proxmox_ip" { - type = string - description = "IP of Proxmox server (mandatory)" -} - -variable "proxmox_api_token" { - type = string - sensitive = true -} - -variable "target_node" { - type = string - description = "" - default = "pve" -} - -variable "tags" { - type = list(string) - description = "VM tags" - default = ["dev"] -} - -variable "template_id" { - type = number - description = "Template ID to clone" -} - -variable "onboot" { - type = bool - description = "Start VM on boot" - default = false -} - -variable "started" { - type = bool - description = "Start VM on creation" - default = true -} - -variable "server_hostname_prefix" { - type = string - description = "Hostname prefix of server node" - default = "dev" -} - -variable "client_hostname_prefix" { - type = string - description = "Hostname prefix of client node" - default = "dev-client" -} - -variable "server_vmid" { - type = list(number) - description = "List of server VM IDs" -} - -variable "client_vmid" { - type = list(number) - description = "List of client VM IDs" -} - -variable "server_cores" { - type = number - description = "Number of cores in server nodes" - default = 1 -} - -variable "server_sockets" { - type = number - description = "Number of sockets in server nodes" - default = 1 -} - -variable "server_memory" { - type = number - description = "Memory (MB) in server nodes" - default = 1024 -} - -variable "server_disk_size" { - type = number - description = "Disk size (GB) in server nodes" - default = 5 -} - -variable "client_cores" { - type = number - description = "Number of cores in client nodes" - default = 1 -} - -variable "client_sockets" { - type = number - description = "Number of sockets in client nodes" - default = 1 -} - -variable "client_memory" { - type = number - description = "Memory (MB) in client nodes" - default = 1024 -} - -variable "client_disk_size" { - type = number - description = "Disk size (GB) in server nodes" - default = 5 -} - -variable "disk_datastore" { - type = string - description = "Datastore on which to store disk" - default = "volumes" -} - -variable "server_ip_address" { - type = list(string) - description = "List of server IPv4 address in CIDR notation (eg. 10.10.10.2/24)" - validation { - condition = alltrue([ - for i in var.server_ip_address : can(cidrnetmask(i)) - ]) - error_message = "Must be a valid IPv4 address with subnet mask" - } -} - -variable "client_ip_address" { - type = list(string) - description = "List of client IPv4 address in CIDR notation (eg. 10.10.10.2/24)" - validation { - condition = alltrue([ - for i in var.client_ip_address : can(cidrnetmask(i)) - ]) - error_message = "Must be a valid IPv4 address with subnet mask" - } -} - -variable "control_ip_address" { - type = string - description = "Control IPv4 address in CIDR notation (eg. 10.10.10.2/24)" - validation { - condition = can(cidrnetmask(var.control_ip_address)) - error_message = "Must be a valid IPv4 address with subnet mask" - } -} - -variable "ip_gateway" { - type = string - description = "IP gateway address (eg. 10.10.10.1)" - validation { - condition = can(cidrnetmask("${var.ip_gateway}/24")) - error_message = "Must be a valid IPv4 address" - } -} - -variable "ssh_user" { - type = string - description = "SSH user" -} - -variable "ssh_public_key_file" { - type = string - description = "Public SSH key file" -}