54 lines
1.3 KiB
Terraform
54 lines
1.3 KiB
Terraform
## DATA SOURCES
|
|
|
|
data "ovh_cloud_instance_flavors" "flavors" {
|
|
service_name = var.ovh_service_name
|
|
region = var.ovh_region
|
|
}
|
|
|
|
data "ovh_cloud_instance_images" "images" {
|
|
service_name = var.ovh_service_name
|
|
region = var.ovh_region
|
|
}
|
|
|
|
## RESOURCES
|
|
|
|
resource "ovh_cloud_ssh_key" "ansible" {
|
|
service_name = var.ovh_service_name
|
|
name = "ansible-key"
|
|
public_key = var.ssh_public_key
|
|
}
|
|
|
|
# Provision the d2-2 Public Cloud Instance
|
|
resource "ovh_cloud_instance" "coolify" {
|
|
service_name = var.ovh_service_name
|
|
region = var.ovh_region
|
|
name = var.project_name
|
|
ssh_key_name = ovh_cloud_ssh_key.ansible.name
|
|
|
|
flavor_id = one([
|
|
for flavor in data.ovh_cloud_instance_flavors.flavors.flavors :
|
|
flavor.id if flavor.name == "d2-2"
|
|
])
|
|
|
|
image_id = one([
|
|
for image in data.ovh_cloud_instance_images.images.images :
|
|
image.id if image.name == "Debian 13"
|
|
])
|
|
|
|
networks = [
|
|
{ auto_assign_public_ip = true },
|
|
]
|
|
}
|
|
|
|
## OUTPUTS
|
|
|
|
output "public_ip" {
|
|
description = "The public IPv4 address of the provisioned OVHcloud VM"
|
|
value = one(flatten([
|
|
for net in ovh_cloud_instance.coolify.current_state.networks : [
|
|
for addr in net.addresses : addr.ip
|
|
if addr.type == "FIXED" && addr.version == 4
|
|
]
|
|
]))
|
|
}
|