feat: add remote node configuration
Some checks failed
continuous-integration/drone/push Build is failing
Some checks failed
continuous-integration/drone/push Build is failing
This commit is contained in:
parent
0f414cee73
commit
6fc69da087
4
files/node.caddy
Normal file
4
files/node.caddy
Normal file
@ -0,0 +1,4 @@
|
||||
@${name}-node ${replace(name, "_", "-")}.nodes.i.kjuulh.io
|
||||
handle ${name}-node {
|
||||
reverse-proxy ${ip}:80
|
||||
}
|
31
node.tf
31
node.tf
@ -3,6 +3,11 @@ locals {
|
||||
hostname = var.name
|
||||
domain = var.domain
|
||||
})
|
||||
|
||||
node_config = templatefile("${path.module}/files/node.caddy", {
|
||||
name = var.name
|
||||
ip = var.ip_address
|
||||
})
|
||||
}
|
||||
|
||||
# Create a local copy of the file, to transfer to Proxmox
|
||||
@ -11,6 +16,11 @@ resource "local_file" "cloud_init_deb12_node" {
|
||||
filename = "${path.module}/files/user_data_cloud_init_deb12_${var.name}.cfg"
|
||||
}
|
||||
|
||||
resource "local_file" "node_caddy" {
|
||||
content = local.node_config
|
||||
filename = "${path.module}/files/${var.name}.caddy"
|
||||
}
|
||||
|
||||
# Transfer the file to the Proxmox Host
|
||||
resource "null_resource" "cloud_init_deb12_node" {
|
||||
connection {
|
||||
@ -30,13 +40,32 @@ resource "null_resource" "cloud_init_deb12_node" {
|
||||
]
|
||||
}
|
||||
|
||||
resource "null_resource" "node_caddy_template" {
|
||||
connection {
|
||||
type = "ssh"
|
||||
user = "root"
|
||||
private_key = var.ssh_private
|
||||
host = var.proxy_ip
|
||||
}
|
||||
|
||||
provisioner "file" {
|
||||
source = local_file.node_caddy.filename
|
||||
destination = "${var.proxy_location}/${var.name}.yml"
|
||||
}
|
||||
|
||||
depends_on = [
|
||||
local_file.node_caddy
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
# Create the VM
|
||||
resource "proxmox_vm_qemu" "node" {
|
||||
## Wait for the cloud-config file to exist
|
||||
|
||||
depends_on = [
|
||||
null_resource.cloud_init_deb12_node
|
||||
null_resource.cloud_init_deb12_node,
|
||||
null_resource.node_caddy_template
|
||||
]
|
||||
|
||||
name = var.name
|
||||
|
10
variables.tf
10
variables.tf
@ -8,6 +8,16 @@ variable "proxmox_ip" {
|
||||
default = "10.0.11.0"
|
||||
}
|
||||
|
||||
variable "proxy_ip" {
|
||||
description = "which ip to use for the caddy file"
|
||||
default = "10.0.9.0"
|
||||
}
|
||||
|
||||
variable "proxy_location" {
|
||||
description = "which where to place the files upstream"
|
||||
default = "/root/wireguard/nodes"
|
||||
}
|
||||
|
||||
variable "proxmox_node" {
|
||||
description = "which node is the vm associated"
|
||||
default = "clank-smolboks-0"
|
||||
|
Loading…
Reference in New Issue
Block a user