zivildienst/infrastructure/modules/compute/servers.tf

55 lines
2.8 KiB
HCL

resource "hcloud_server" "guidelines1" {
name = "guidelines1-${data.terraform_remote_state.environment.outputs.environment_name}"
server_type = "cx21"
image = var.image_default_id
keep_disk = true
location = data.terraform_remote_state.environment.outputs.dc_default_id
user_data = data.template_cloudinit_config.guidelines.rendered
labels = {
lb = "guidelines-${data.terraform_remote_state.environment.outputs.environment_name}"
environment = data.terraform_remote_state.environment.outputs.environment_name
}
}
resource "hcloud_volume_attachment" "guidelines1_data1" {
server_id = hcloud_server.guidelines1.id
volume_id = data.terraform_remote_state.storage.outputs.volume_data1_id
automount = true
}
resource "hcloud_server_network" "guidelines1_primary" {
server_id = hcloud_server.guidelines1.id
network_id = data.terraform_remote_state.environment.outputs.network_primary_id
ip = "10.0.1.51"
}
data "template_cloudinit_config" "guidelines" {
gzip = false
base64_encode = false
part {
filename = "init.cfg"
content_type = "text/cloud-config"
content = templatefile("${path.module}/cloudinit.tpl", {
certbot_script = filebase64("${path.module}/certbot.sh")
environment = data.terraform_remote_state.environment.outputs.environment_name
gitlab_password = lookup(jsondecode(file("../../secrets.json")), "gitlab_deploy_token_password", "not found")
gitlab_username = lookup(jsondecode(file("../../secrets.json")), "gitlab_deploy_token_username", "not found")
hcloud_token = lookup(jsondecode(file("../../secrets.json")), "hcloud_token_${data.terraform_remote_state.environment.outputs.environment_name}", "not found")
aws_access_key_id = lookup(jsondecode(file("../../secrets.json")), "aws_access_key_id", "not found")
aws_secret_access_key = lookup(jsondecode(file("../../secrets.json")), "aws_secret_access_key", "not found")
domain_name = lookup(jsondecode(file("../../config.json")), "domain_name_${data.terraform_remote_state.environment.outputs.environment_name}", "not found")
domain_alternative_names = base64encode(lookup(jsondecode(file("../../config.json")), "domain_alternative_names_${data.terraform_remote_state.environment.outputs.environment_name}", "not found"))
vault_db_password = lookup(jsondecode(file("../../secrets.json")), "vault_db_password_${data.terraform_remote_state.environment.outputs.environment_name}", "not found")
nix_certbot = filebase64("${path.module}/nix/certbot.nix")
nix_configuration = filebase64("${path.module}/nix/configuration.nix")
nix_elasticsearch = filebase64("${path.module}/nix/elasticsearch.nix")
nix_guidelines = filebase64("${path.module}/nix/guidelines.nix")
nix_postgresql = filebase64("${path.module}/nix/postgresql.nix")
nix_vault = filebase64("${path.module}/nix/vault.nix")
})
}
}