From d9d6afae2defe0a947d93758f84aaaf99d1846a4 Mon Sep 17 00:00:00 2001 From: guppy Date: Mon, 24 Apr 2023 16:41:15 +0200 Subject: [PATCH] Ajout de terraform --- terraform/main.tf | 65 ++++++++++++++++++++++++++++++++++++++++++ terraform/provider.tf | 16 +++++++++++ terraform/variables.tf | 19 ++++++++++++ 3 files changed, 100 insertions(+) create mode 100644 terraform/main.tf create mode 100644 terraform/provider.tf create mode 100644 terraform/variables.tf diff --git a/terraform/main.tf b/terraform/main.tf new file mode 100644 index 0000000..fdf51e5 --- /dev/null +++ b/terraform/main.tf @@ -0,0 +1,65 @@ +resource "proxmox_vm_qemu" "control_plane" { + count = 1 + name = "control-plane-${count.index}.k8s.cluster" + target_node = "${var.pm_node}" + + clone = "debian-11-cloudinit-template" + + os_type = "cloud-init" + cores = 4 + sockets = "1" + cpu = "host" + memory = 2048 + scsihw = "virtio-scsi-pci" + bootdisk = "scsi0" + + disk { + size = "20G" + type = "scsi" + storage = "local-lvm" + iothread = 1 + } + + network { + model = "virtio" + bridge = "vmbr0" + } + + # cloud-init settings + # adjust the ip and gateway addresses as needed + ipconfig0 = "ip=192.168.0.11${count.index}/24,gw=192.168.0.1" + sshkeys = file("${var.ssh_key_file}") +} + +resource "proxmox_vm_qemu" "worker_nodes" { + count = 3 + name = "worker-${count.index}.k8s.cluster" + target_node = "${var.pm_node}" + + clone = "debian-11-cloudinit-template" + + os_type = "cloud-init" + cores = 4 + sockets = "1" + cpu = "host" + memory = 4098 + scsihw = "virtio-scsi-pci" + bootdisk = "scsi0" + + disk { + size = "20G" + type = "scsi" + storage = "local-lvm" + iothread = 1 + } + + network { + model = "virtio" + bridge = "vmbr0" + } + + # cloud-init settings + # adjust the ip and gateway addresses as needed + ipconfig0 = "ip=192.168.0.12${count.index}/24,gw=192.168.0.1" + sshkeys = file("${var.ssh_key_file}") +} diff --git a/terraform/provider.tf b/terraform/provider.tf new file mode 100644 index 0000000..10c652a --- /dev/null +++ b/terraform/provider.tf @@ -0,0 +1,16 @@ +terraform { + required_providers { + proxmox = { + source = "telmate/proxmox" + version = "2.9.0" + } + } +} + +provider "proxmox" { + pm_parallel = 1 + pm_tls_insecure = true + pm_api_url = var.pm_api_url + pm_password = var.pm_password + pm_user = var.pm_user +} diff --git a/terraform/variables.tf b/terraform/variables.tf new file mode 100644 index 0000000..3c57597 --- /dev/null +++ b/terraform/variables.tf @@ -0,0 +1,19 @@ +variable "pm_api_url" { + default = "https://proxmox.local:8006/api2/json" +} + +variable "pm_node" { + default = "vm" +} + +variable "pm_user" { + default = "" +} + +variable "pm_password" { + default = "" +} + +variable "ssh_key_file" { + default = "~/.ssh/id_rsa.pub" +}