feat: Add certificate volume to each manager node

This commit is contained in:
2025-08-04 20:22:55 +02:00
parent b9cfec8de7
commit d41d2cc825
4 changed files with 30 additions and 7 deletions
@@ -42,6 +42,26 @@ resource "hcloud_server_network" "nginx_private" {
ip = var.private_node_ips[count.index] ip = var.private_node_ips[count.index]
} }
resource "hcloud_volume" "certificates" {
name = format("%s_%s_%s", "docker", var.stage_name, "certificates")
location = element(var.locations.*.name, 0)
size = 10
labels = {
"docker" : "yes",
"swarm" : "yes",
"certificates" : "yes"
}
format = "ext4"
}
resource "hcloud_volume_attachment" "certificates" {
count = var.number_nodes
server_id = hcloud_server.node[count.index].id
volume_id = hcloud_volume.certificates.id
automount = true
}
resource "hcloud_server" "node" { resource "hcloud_server" "node" {
count = var.number_nodes count = var.number_nodes
@@ -93,7 +113,9 @@ resource "hcloud_server" "node" {
main_node : count.index == 0 main_node : count.index == 0
main_node_private_ip : var.private_node_ips[0] main_node_private_ip : var.private_node_ips[0]
})) }))
certbot_setup : base64encode(file("${path.module}/templates/scripts/certbot-setup.sh")) certificate_setup : base64encode(templatefile("${path.module}/templates/scripts/certificate-setup.sh", {
volume_id : hcloud_volume.certificates.id
}))
}) })
network { network {
@@ -42,8 +42,8 @@ write_files:
encoding: base64 encoding: base64
defer: true defer: true
- owner: root:root - owner: root:root
content: "${certbot_setup}" content: "${certificate_setup}"
path: /run/tmpfiles.d/certbot-setup.sh path: /run/tmpfiles.d/certificate-setup.sh
encoding: base64 encoding: base64
defer: true defer: true
%{ if main_node ~} %{ if main_node ~}
@@ -55,11 +55,11 @@ write_files:
%{ endif ~} %{ endif ~}
runcmd: runcmd:
- install /run/tmpfiles.d/*.sh /usr/local/bin - install /run/tmpfiles.d/*.sh /usr/local/bin
- /usr/local/bin/certificate-setup.sh
- /usr/local/bin/install-packages.sh - /usr/local/bin/install-packages.sh
- /usr/local/bin/firewall-setup.sh - /usr/local/bin/firewall-setup.sh
- /usr/local/bin/ssh-setup.sh - /usr/local/bin/ssh-setup.sh
- /usr/local/bin/sysctl-setup.sh - /usr/local/bin/sysctl-setup.sh
- /usr/local/bin/certbot-setup.sh
%{ if main_node ~} %{ if main_node ~}
- /usr/local/bin/swarm-setup.sh - /usr/local/bin/swarm-setup.sh
%{ endif ~} %{ endif ~}
@@ -1,3 +0,0 @@
#!/bin/bash
mkdir -p /var/www/certbot
@@ -0,0 +1,4 @@
#!/bin/bash
mkdir -p /var/www/certbot
ln -s /mnt/HC_Volume_${volume_id} /etc/letsencrypt