Files
coolify/terraform/main.tf
T

54 lines
1.3 KiB
Terraform

## DATA SOURCES
data "ovh_cloud_instance_flavors" "catalog" {
service_name = var.ovh_service_name
region = var.ovh_region
}
data "ovh_cloud_instance_images" "catalog" {
service_name = var.ovh_service_name
region = var.ovh_region
}
## RESOURCES
resource "ovh_cloud_ssh_key" "deploy" {
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" "from_catalog" {
service_name = var.ovh_service_name
region = var.ovh_region
name = var.project_name
ssh_key_name = ovh_cloud_ssh_key.deploy.name
flavor_id = one([
for flavor in data.ovh_cloud_instance_flavors.catalog.flavors :
flavor.id if flavor.name == "d2-2"
])
image_id = one([
for image in data.ovh_cloud_instance_images.catalog.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.from_catalog.current_state.networks : [
for addr in net.addresses : addr.ip
if addr.type == "FIXED" && addr.version == 4
]
]))
}