mirror of
https://github.com/2martens/terraform.git
synced 2026-10-17 19:26:51 +02:00
feat: Add certificate volume to each manager node
This commit is contained in:
@@ -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
|
||||||
Reference in New Issue
Block a user