add gateway automatic template and fefan vm
This commit is contained in:
89
main.tf
89
main.tf
@@ -2,7 +2,7 @@ terraform {
|
||||
required_providers {
|
||||
proxmox = {
|
||||
source = "bpg/proxmox"
|
||||
version = "0.42.0"
|
||||
version = "0.93.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -18,10 +18,69 @@ provider "proxmox" {
|
||||
}
|
||||
}
|
||||
|
||||
locals {
|
||||
traefik_services = {
|
||||
bookshelf = module.bookshelf.traefik_service
|
||||
gitea = module.gitea.traefik_service
|
||||
fefan = module.fefan.traefik_service
|
||||
}
|
||||
}
|
||||
|
||||
resource "local_file" "traefik_config" {
|
||||
filename = "${path.module}/${var.gateway_repository}/services.yml"
|
||||
|
||||
content = templatefile("${path.module}/templates/traefik.services.tpl", {
|
||||
services = local.traefik_services
|
||||
})
|
||||
}
|
||||
|
||||
resource "null_resource" "commit_traefik" {
|
||||
depends_on = [local_file.traefik_config]
|
||||
triggers = {
|
||||
config_sha = sha256(local_file.traefik_config.content)
|
||||
}
|
||||
|
||||
provisioner "local-exec" {
|
||||
working_dir = "${path.module}/${var.gateway_repository}"
|
||||
command = "git add services.yml && git commit -m 'Update Traefik services' && git push"
|
||||
}
|
||||
}
|
||||
|
||||
resource "null_resource" "notify_gateway" {
|
||||
depends_on = [null_resource.commit_traefik]
|
||||
triggers = {
|
||||
config_sha = sha256(local_file.traefik_config.content)
|
||||
}
|
||||
provisioner "local-exec" {
|
||||
command = "curl -X POST -H 'X-Webhook-Token: ${var.gateway_token}' http://192.168.1.89:5555/reload"
|
||||
}
|
||||
}
|
||||
|
||||
module "gateway" {
|
||||
source = "./modules/apps/gateway"
|
||||
providers = {}
|
||||
vm_ip_address = "192.168.1.89"
|
||||
name = "gateway"
|
||||
hostname = "gateway"
|
||||
domain = "aldon.fr"
|
||||
vm_id = 200
|
||||
node_name = "mop"
|
||||
|
||||
template_id = 103
|
||||
|
||||
cores = 2
|
||||
memory = 2048
|
||||
balloon = 1024
|
||||
disk_size = 16
|
||||
|
||||
ssh_public_key = var.ssh_public_key
|
||||
proxmox_host_ip = var.proxmox_host_ip
|
||||
}
|
||||
|
||||
module "gitea" {
|
||||
source = "./modules/apps/gitea"
|
||||
providers = {}
|
||||
|
||||
vm_ip_address = "192.168.1.90"
|
||||
name = "gitea"
|
||||
hostname = "gitea"
|
||||
domain = "aldon.fr"
|
||||
@@ -32,16 +91,17 @@ module "gitea" {
|
||||
|
||||
cores = 2
|
||||
memory = 2048
|
||||
balloon = 1024
|
||||
disk_size = 16
|
||||
|
||||
ssh_public_key = var.ssh_public_key
|
||||
proxmox_host_ip = var.proxmox_host_ip
|
||||
}
|
||||
|
||||
|
||||
module "bookshelf" {
|
||||
source = "./modules/apps/bookshelf"
|
||||
providers = {}
|
||||
vm_ip_address = "192.168.1.91"
|
||||
|
||||
name = "bookshelf"
|
||||
hostname = "bookshelf"
|
||||
@@ -53,6 +113,29 @@ module "bookshelf" {
|
||||
|
||||
cores = 1
|
||||
memory = 1024
|
||||
balloon = 1024
|
||||
disk_size = 16
|
||||
|
||||
ssh_public_key = var.ssh_public_key
|
||||
proxmox_host_ip = var.proxmox_host_ip
|
||||
}
|
||||
|
||||
module "fefan" {
|
||||
source = "./modules/apps/fefan"
|
||||
providers = {}
|
||||
vm_ip_address = "192.168.1.92"
|
||||
|
||||
name = "fefan"
|
||||
hostname = "fefan"
|
||||
domain = "fefan.fr"
|
||||
vm_id = 213
|
||||
node_name = "mop"
|
||||
|
||||
template_id = 103
|
||||
|
||||
cores = 1
|
||||
memory = 1024
|
||||
balloon = 1024
|
||||
disk_size = 16
|
||||
|
||||
ssh_public_key = var.ssh_public_key
|
||||
|
||||
Reference in New Issue
Block a user