Files
spinifex/scripts/iac/proxmox/cloud-config.tf
T

49 lines
1.4 KiB
Terraform

data "local_file" "ssh_public_key" {
filename = pathexpand(var.ssh_public_key_path)
}
# When cloning from a template, packages are pre-installed — skip apt update/upgrade.
locals {
cloud_config_template = <<-EOF
#cloud-config
runcmd:
- timedatectl set-timezone America/Los_Angeles
- systemctl enable qemu-guest-agent
- systemctl start qemu-guest-agent
- echo "done" > /tmp/vendor-cloud-init-done
EOF
cloud_config_image = <<-EOF
#cloud-config
package_update: true
package_upgrade: true
packages:
- qemu-guest-agent
- net-tools
- git
- make
runcmd:
- timedatectl set-timezone America/Los_Angeles
- systemctl enable qemu-guest-agent
- systemctl start qemu-guest-agent
- ufw disable
- sysctl -w net.core.rmem_max=4194304
- sysctl -w net.core.wmem_max=4194304
- usermod -aG kvm tf-user
- echo "done" > /tmp/vendor-cloud-init-done
EOF
}
resource "proxmox_virtual_environment_file" "cloud_config" {
count = var.node_count
content_type = "snippets"
datastore_id = "local"
node_name = var.nodes[count.index % length(var.nodes)].name
source_raw {
data = var.nodes[count.index % length(var.nodes)].template_vmid != null ? local.cloud_config_template : local.cloud_config_image
file_name = "${var.cluster_name}-${count.index + 1}-cloud-config.yaml"
}
}