39 lines
1.1 KiB
HCL
39 lines
1.1 KiB
HCL
# =============================================================================
|
|
# Jump Host (Bastion) Droplet
|
|
# =============================================================================
|
|
|
|
data "cloudinit_config" "jump_host" {
|
|
gzip = false
|
|
base64_encode = false
|
|
|
|
part {
|
|
content_type = "text/cloud-config"
|
|
content = templatefile("${path.module}/cloud-init.yaml.tpl", {
|
|
ssh_port = var.ssh_port
|
|
vpc_ip_range = var.vpc_ip_range
|
|
internal_private_key = var.internal_private_key
|
|
})
|
|
}
|
|
}
|
|
|
|
resource "digitalocean_droplet" "jump_host" {
|
|
name = "${var.project_name}-jump-${var.environment}"
|
|
size = var.droplet_size
|
|
image = var.droplet_image
|
|
region = var.region
|
|
vpc_uuid = var.vpc_uuid
|
|
|
|
ssh_keys = var.ssh_keys
|
|
backups = var.enable_backups
|
|
monitoring = true
|
|
ipv6 = true
|
|
|
|
user_data = data.cloudinit_config.jump_host.rendered
|
|
|
|
tags = var.tags
|
|
|
|
lifecycle {
|
|
create_before_destroy = false
|
|
ignore_changes = [user_data] # Don't recreate on cloud-init changes
|
|
}
|
|
}
|