add: semaphore-vms terraform project for semaphore UI
This commit is contained in:
33
terraform/projects/semaphore-vms/main.tf
Normal file
33
terraform/projects/semaphore-vms/main.tf
Normal file
@@ -0,0 +1,33 @@
|
||||
module "pve_vm" {
|
||||
source = "../../modules/pve_vm"
|
||||
for_each = local.vm_list
|
||||
|
||||
node_name = each.value.node_name
|
||||
vm_name = each.value.vm_name
|
||||
vm_cpu = each.value.vm_cpu
|
||||
vm_ram = each.value.vm_ram
|
||||
vm_vlan = each.value.vm_vlan
|
||||
}
|
||||
|
||||
locals {
|
||||
# Ordered list of VM hostnames
|
||||
sem_hosts = ["sem01", "sem02", "sem03"]
|
||||
|
||||
# Create a map: host -> node
|
||||
vm_list = {
|
||||
for idx, host in local.sem_hosts :
|
||||
host => {
|
||||
node_name = data.proxmox_virtual_environment_nodes.pve_nodes.names[idx]
|
||||
vm_name = host
|
||||
vm_cpu = 1
|
||||
vm_ram = 2048
|
||||
vm_vlan = 66
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
data "proxmox_virtual_environment_nodes" "pve_nodes" {}
|
||||
|
||||
output "vm_ip" {
|
||||
value = { for k, v in module.pve_vm : k => v.vm_ip }
|
||||
}
|
||||
18
terraform/projects/semaphore-vms/provider.tf
Normal file
18
terraform/projects/semaphore-vms/provider.tf
Normal file
@@ -0,0 +1,18 @@
|
||||
terraform {
|
||||
required_providers {
|
||||
proxmox = {
|
||||
source = "bpg/proxmox"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
provider "proxmox" {
|
||||
endpoint = var.proxmox_endpoint
|
||||
api_token = var.proxmox_api_token
|
||||
insecure = false
|
||||
ssh {
|
||||
agent = false
|
||||
private_key = file("~/.ssh/id_ed25519")
|
||||
username = "root"
|
||||
}
|
||||
}
|
||||
10
terraform/projects/semaphore-vms/variables.tf
Normal file
10
terraform/projects/semaphore-vms/variables.tf
Normal file
@@ -0,0 +1,10 @@
|
||||
variable "proxmox_endpoint" {
|
||||
description = "Proxmox URL endpoint"
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "proxmox_api_token" {
|
||||
description = "Proxmox API token"
|
||||
type = string
|
||||
sensitive = true
|
||||
}
|
||||
Reference in New Issue
Block a user