## 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 ] ])) }