70 lines
11 KiB
HCL
70 lines
11 KiB
HCL
terraform {
|
|
required_providers {
|
|
ovh = {
|
|
source = "ovh/ovh"
|
|
version = "2.3.0"
|
|
}
|
|
}
|
|
}
|
|
|
|
provider "ovh" {
|
|
endpoint = "ovh-eu"
|
|
}
|
|
|
|
variable project_id {
|
|
type = string
|
|
default = "625a3295ce6649b1aa5e63303de213c4"
|
|
}
|
|
|
|
variable region {
|
|
type = string
|
|
default = "SBG5"
|
|
}
|
|
|
|
// The flavor can be selected directly, name_filter in DS does strict equality
|
|
data "ovh_cloud_project_flavors" "flavors" {
|
|
service_name = var.project_id
|
|
name_filter = "r3-16-flex"
|
|
region = var.region
|
|
}
|
|
|
|
// The image must be selected from it's region based list using name filtering, DS does not support direct selection
|
|
data ovh_cloud_project_images image{
|
|
service_name = var.project_id
|
|
region = "SBG5"
|
|
}
|
|
|
|
locals {
|
|
selected_image = one([
|
|
for m in data.ovh_cloud_project_images.image.images : m if m.name == "Ubuntu 22.04"
|
|
])
|
|
selected_flavor = one(data.ovh_cloud_project_flavors.flavors.flavors)
|
|
}
|
|
|
|
resource "ovh_cloud_project_instance" "simpl_vm" {
|
|
service_name = var.project_id
|
|
region = var.region
|
|
billing_period = "hourly"
|
|
boot_from {
|
|
image_id = local.selected_image.id
|
|
}
|
|
flavor {
|
|
flavor_id = local.selected_flavor.id
|
|
}
|
|
name = "offering-enterprise-server-224-terraform"
|
|
ssh_key_create {
|
|
name = "default-user-key-dev-20260623-oliveira-test-v0"
|
|
public_key = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDjSFhpjNNDz3olIFuLdROifKJXekAu2CKQ7UyziJJOAPD2wP4eYEgTR6R12TnDHMDerNBLo8d/zIhkmmvF8zr4vBgB8nLHHV/hX6J8b1hg9o9ZtFY1czrdgEzjKtEEwqltQANWQqbg2i4cFDC96ZQRm8p/2XlKvdPkudHwnOqa6NtnE5vfBV0tk9uBbvr1mR8f9yMKpeTxyZUqOkhTZq8FIqS1h0n8Sh8CUYpTpsPilSspAs4xd/oR1FdINLGG4g9pJ/iRgsgMesQHb1qs8h/jws/XOE3Dg/+eDR5AsMz1DIuOjfVrT+xSFVtNxRQu5i6/mqad8NjeI+nR/TJjdnyS8k/JQEXWqOYIYOiozeueaP0fuulJuk0hf34dKrQqFp84Mqd7vE/Z4srdbyC1OfxCMhs3j7Ja9eujpAcp0aLl+mUGV9GKKANJlGmnt76YX5SPCKWEQb5plSXEbOkXPNCnJqF/x99AbPluSc3dYqBJmfhtu2w83jo6m+K50/F6eEU= cbeti@LXBU-2N877S4"
|
|
}
|
|
network {
|
|
public = true
|
|
}
|
|
user_data = "I2Nsb3VkLWNvbmZpZwojY2xvdWQtY29uZmlnDQoNCmhvc3RuYW1lOiBzZW1hcGhvcmV1aS1zZXJ2ZXINCm1hbmFnZV9ldGNfaG9zdHM6IHRydWUNCg0KcGFja2FnZV91cGRhdGU6IHRydWUNCnBhY2thZ2VfdXBncmFkZTogdHJ1ZQ0KDQpwYWNrYWdlczoNCiAgLSBjYS1jZXJ0aWZpY2F0ZXMNCiAgLSBjdXJsDQogIC0gZ251cGcNCiAgLSBsc2ItcmVsZWFzZQ0KICAtIGFwYWNoZTItdXRpbHMNCiAgLSBvcGVuc3NsDQoNCnNzaF9wd2F1dGg6IHRydWUNCg0KY2hwYXNzd2Q6DQogIGV4cGlyZTogZmFsc2UNCg0KdXNlcnM6DQogIC0gZGVmYXVsdA0KDQogIC0gbmFtZTogRkJLMXI1VFExMg0KICAgIHBhc3N3ZDogJDYkcm91bmRzPTQwOTYkdE5HRU9sVjNjdTQ1UVF2SCRQRlRMYmJBSjdzVllyUVZ0cnVHTDVTV0tzWDZWUVRqaTJjVHhwZGo3Wmp5dXpnWG5GM3YuZm40Zm1kYjREZjBZSGY2TWlXMmY1WGN0UkttU1ltbWphLg0KICAgIHNoZWxsOiAvYmluL2Jhc2gNCiAgICBsb2NrX3Bhc3N3ZDogZmFsc2UNCiAgICBzdWRvOiBBTEw9KEFMTCkgTk9QQVNTV0Q6QUxMDQogICAgZ3JvdXBzOiB1c2VycywgYWRtaW4sIHN1ZG8NCg0KICAtIG5hbWU6IGFkbWluDQogICAgc3NoX2F1dGhvcml6ZWRfa2V5czoNCiAgICAgIC0gc3NoLXJzYSBNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQTFzOUZXcU0yVXYrMDFTQ1FLQThkR3BiK0NRUGsxbGlxazZkeHNHUm5xdUkza1JiSWJaV29aQVFUWE9ONjdPTXV4U0VyUmtuOUtwVm9HY0htU09DVHdqNStpbWRha3FFWWV3Vk1sVDUra25QeVp0eklmNEN0dlh1OHpSSVgzM1diQTRCcEZwUUl1THhNUUhaSHVaaTFONHgrVDY5b3RIV0s4cDBxNUxXRGRLT3BFZFVVQWQ3eHY5bXpJdWFRYlJZNlI5MDlydkdXZGtiSTVMVjAvejh6THpadGN5dUp2YUU0RUNJZ1JXWGplaW1CVWVBRE9tMWZhSmd5UDBra1ZqcjNydUtuRFp6eUZveEdtdU15MVpOYTJjU2oyMFlaSE82NWRVM2E3ZGE3ZVVLVDdHc2Q4TFlkYjhZNXFNcEgyVHgraWl3N1hyMW5KRHNGaXI4RVRwbXVGd0lEQVFBQg0KICAgIHNoZWxsOiAvYmluL2Jhc2gNCiAgICBsb2NrX3Bhc3N3ZDogdHJ1ZQ0KICAgIHN1ZG86IEFMTD0oQUxMKSBOT1BBU1NXRDpBTEwNCiAgICBncm91cHM6IHVzZXJzLCBhZG1pbiwgc3Vkbw0KDQp3cml0ZV9maWxlczoNCiAgLSBwYXRoOiAvb3B0L3NlbWFwaG9yZS1zdGFjay9uZ2lueC9kZWZhdWx0LmNvbmYNCiAgICBwZXJtaXNzaW9uczogJzA2NDQnDQogICAgb3duZXI6IHJvb3Q6cm9vdA0KICAgIGNvbnRlbnQ6IHwNCiAgICAgIHNlcnZlciB7DQogICAgICAgICAgbGlzdGVuIDgwIGRlZmF1bHRfc2VydmVyOw0KICAgICAgICAgIHNlcnZlcl9uYW1lIF87DQoNCiAgICAgICAgICBsb2NhdGlvbiA9IC8gew0KICAgICAgICAgICAgICByZXR1cm4gMzAyIC9zZW1hcGhvcmVVSS87DQogICAgICAgICAgfQ0KDQogICAgICAgICAgbG9jYXRpb24gPSAvc2VtYXBob3JlVUkgew0KICAgICAgICAgICAgICByZXR1cm4gMzAyIC9zZW1hcGhvcmVVSS87DQogICAgICAgICAgfQ0KDQogICAgICAgICAgbG9jYXRpb24gL3NlbWFwaG9yZVVJLyB7DQogICAgICAgICAgICAgIHByb3h5X3Bhc3MgICAgICAgICBodHRwOi8vc2VtYXBob3JlOjMwMDA7DQogICAgICAgICAgICAgIHByb3h5X2h0dHBfdmVyc2lvbiAxLjE7DQoNCiAgICAgICAgICAgICAgcHJveHlfc2V0X2hlYWRlciBIb3N0ICAgICAgICAgICAgICAkaG9zdDsNCiAgICAgICAgICAgICAgcHJveHlfc2V0X2hlYWRlciBYLVJlYWwtSVAgICAgICAgICAkcmVtb3RlX2FkZHI7DQogICAgICAgICAgICAgIHByb3h5X3NldF9oZWFkZXIgWC1Gb3J3YXJkZWQtRm9yICAgJHByb3h5X2FkZF94X2ZvcndhcmRlZF9mb3I7DQogICAgICAgICAgICAgIHByb3h5X3NldF9oZWFkZXIgWC1Gb3J3YXJkZWQtUHJvdG8gJHNjaGVtZTsNCiAgICAgICAgICAgICAgcHJveHlfc2V0X2hlYWRlciBYLUZvcndhcmRlZC1Ib3N0ICAkaG9zdDsNCiAgICAgICAgICAgICAgcHJveHlfc2V0X2hlYWRlciBYLUZvcndhcmRlZC1QcmVmaXggL3NlbWFwaG9yZVVJOw0KDQogICAgICAgICAgICAgIHByb3h5X3NldF9oZWFkZXIgVXBncmFkZSAgICAkaHR0cF91cGdyYWRlOw0KICAgICAgICAgICAgICBwcm94eV9zZXRfaGVhZGVyIENvbm5lY3Rpb24gInVwZ3JhZGUiOw0KDQogICAgICAgICAgICAgIHByb3h5X3JlYWRfdGltZW91dCAzNjAwczsNCiAgICAgICAgICAgICAgcHJveHlfc2VuZF90aW1lb3V0IDM2MDBzOw0KICAgICAgICAgIH0NCiAgICAgIH0NCg0KICAtIHBhdGg6IC9vcHQvc2VtYXBob3JlLXN0YWNrL2RvY2tlci1jb21wb3NlLnltbA0KICAgIHBlcm1pc3Npb25zOiAnMDY0NCcNCiAgICBvd25lcjogcm9vdDpyb290DQogICAgY29udGVudDogfA0KICAgICAgc2VydmljZXM6DQogICAgICAgIHBvc3RncmVzOg0KICAgICAgICAgIGltYWdlOiBwb3N0Z3JlczoxNi1hbHBpbmUNCiAgICAgICAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZA0KICAgICAgICAgIGVudmlyb25tZW50Og0KICAgICAgICAgICAgUE9TVEdSRVNfVVNFUjogJHtQT1NUR1JFU19VU0VSfQ0KICAgICAgICAgICAgUE9TVEdSRVNfUEFTU1dPUkQ6ICR7UE9TVEdSRVNfUEFTU1dPUkR9DQogICAgICAgICAgICBQT1NUR1JFU19EQjogJHtQT1NUR1JFU19EQn0NCiAgICAgICAgICB2b2x1bWVzOg0KICAgICAgICAgICAgLSAuL3Bvc3RncmVzLWRhdGE6L3Zhci9saWIvcG9zdGdyZXNxbC9kYXRhDQogICAgICAgICAgaGVhbHRoY2hlY2s6DQogICAgICAgICAgICB0ZXN0OiBbIkNNRC1TSEVMTCIsICJwZ19pc3JlYWR5IC1VICR7UE9TVEdSRVNfVVNFUn0gLWQgJHtQT1NUR1JFU19EQn0iXQ0KICAgICAgICAgICAgaW50ZXJ2YWw6IDEwcw0KICAgICAgICAgICAgdGltZW91dDogNXMNCiAgICAgICAgICAgIHJldHJpZXM6IDEwDQogICAgICAgICAgbmV0d29ya3M6DQogICAgICAgICAgICAtIHNlbW5ldA0KDQogICAgICAgIHNlbWFwaG9yZToNCiAgICAgICAgICBpbWFnZTogc2VtYXBob3JldWkvc2VtYXBob3JlOnYyLjE3LjM2DQogICAgICAgICAgcmVzdGFydDogdW5sZXNzLXN0b3BwZWQNCiAgICAgICAgICBkZXBlbmRzX29uOg0KICAgICAgICAgICAgcG9zdGdyZXM6DQogICAgICAgICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9oZWFsdGh5DQogICAgICAgICAgZW52aXJvbm1lbnQ6DQogICAgICAgICAgICBTRU1BUEhPUkVfREJfRElBTEVDVDogcG9zdGdyZXMNCiAgICAgICAgICAgIFNFTUFQSE9SRV9EQl9IT1NUOiBwb3N0Z3Jlcw0KICAgICAgICAgICAgU0VNQVBIT1JFX0RCX1BPUlQ6ICI1NDMyIg0KICAgICAgICAgICAgU0VNQVBIT1JFX0RCX1VTRVI6ICR7UE9TVEdSRVNfVVNFUn0NCiAgICAgICAgICAgIFNFTUFQSE9SRV9EQl9QQVNTOiAke1BPU1RHUkVTX1BBU1NXT1JEfQ0KICAgICAgICAgICAgU0VNQVBIT1JFX0RCOiAke1BPU1RHUkVTX0RCfQ0KICAgICAgICAgICAgU0VNQVBIT1JFX0FETUlOOiAke1NFTUFQSE9SRV9BRE1JTn0NCiAgICAgICAgICAgIFNFTUFQSE9SRV9BRE1JTl9OQU1FOiAke1NFTUFQSE9SRV9BRE1JTl9OQU1FfQ0KICAgICAgICAgICAgU0VNQVBIT1JFX0FETUlOX0VNQUlMOiAke1NFTUFQSE9SRV9BRE1JTl9FTUFJTH0NCiAgICAgICAgICAgIFNFTUFQSE9SRV9BRE1JTl9QQVNTV09SRDogJHtTRU1BUEhPUkVfQURNSU5fUEFTU1dPUkR9DQogICAgICAgICAgICBTRU1BUEhPUkVfQUNDRVNTX0tFWV9FTkNSWVBUSU9OOiAke1NFTUFQSE9SRV9BQ0NFU1NfS0VZX0VOQ1JZUFRJT059DQogICAgICAgICAgICBTRU1BUEhPUkVfV0VCX1JPT1Q6IC9zZW1hcGhvcmVVSS8NCiAgICAgICAgICB2b2x1bWVzOg0KICAgICAgICAgICAgLSAuL3NlbWFwaG9yZS1kYXRhOi92YXIvbGliL3NlbWFwaG9yZQ0KICAgICAgICAgICAgLSAuL3NlbWFwaG9yZS1jb25maWc6L2V0Yy9zZW1hcGhvcmUNCiAgICAgICAgICAgIC0gLi9zZW1hcGhvcmUtdG1wOi90bXAvc2VtYXBob3JlDQogICAgICAgICAgbmV0d29ya3M6DQogICAgICAgICAgICAtIHNlbW5ldA0KDQogICAgICAgIG5naW54Og0KICAgICAgICAgIGltYWdlOiBuZ2lueDoxLjI3LWFscGluZQ0KICAgICAgICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkDQogICAgICAgICAgZGVwZW5kc19vbjoNCiAgICAgICAgICAgIC0gc2VtYXBob3JlDQogICAgICAgICAgcG9ydHM6DQogICAgICAgICAgICAtICI4MDo4MCINCiAgICAgICAgICB2b2x1bWVzOg0KICAgICAgICAgICAgLSAuL25naW54L2RlZmF1bHQuY29uZjovZXRjL25naW54L2NvbmYuZC9kZWZhdWx0LmNvbmY6cm8NCiAgICAgICAgICBuZXR3b3JrczoNCiAgICAgICAgICAgIC0gc2VtbmV0DQoNCiAgICAgIG5ldHdvcmtzOg0KICAgICAgICBzZW1uZXQ6DQogICAgICAgICAgZHJpdmVyOiBicmlkZ2UNCg0KICAtIHBhdGg6IC91c3IvbG9jYWwvc2Jpbi9zZW1hcGhvcmUtYm9vdHN0cmFwLnNoDQogICAgcGVybWlzc2lvbnM6ICcwNzUwJw0KICAgIG93bmVyOiByb290OnJvb3QNCiAgICBjb250ZW50OiB8DQogICAgICAjIS91c3IvYmluL2VudiBiYXNoDQogICAgICBzZXQgLWV1eG8gcGlwZWZhaWwNCg0KICAgICAgU1RBQ0tfRElSPS9vcHQvc2VtYXBob3JlLXN0YWNrDQogICAgICBNQVJLRVI9JFNUQUNLX0RJUi8uYm9vdHN0cmFwLWRvbmUNCg0KICAgICAgZXhwb3J0IERFQklBTl9GUk9OVEVORD1ub25pbnRlcmFjdGl2ZQ0KDQogICAgICBpZiBbIC1mICIkTUFSS0VSIiBdOyB0aGVuDQogICAgICAgIGNkICIkU1RBQ0tfRElSIg0KICAgICAgICBkb2NrZXIgY29tcG9zZSB1cCAtZA0KICAgICAgICBleGl0IDANCiAgICAgIGZpDQoNCiAgICAgIGlmICEgY29tbWFuZCAtdiBkb2NrZXIgPi9kZXYvbnVsbCAyPiYxOyB0aGVuDQogICAgICAgIGluc3RhbGwgLW0gMDc1NSAtZCAvZXRjL2FwdC9rZXlyaW5ncw0KDQogICAgICAgIGN1cmwgLWZzU0wgaHR0cHM6Ly9kb3dubG9hZC5kb2NrZXIuY29tL2xpbnV4L3VidW50dS9ncGcgXA0KICAgICAgICAgIHwgZ3BnIC0tZGVhcm1vciAtbyAvZXRjL2FwdC9rZXlyaW5ncy9kb2NrZXIuZ3BnDQoNCiAgICAgICAgY2htb2QgYStyIC9ldGMvYXB0L2tleXJpbmdzL2RvY2tlci5ncGcNCg0KICAgICAgICBVQlVOVFVfQ09ERU5BTUU9IiQoLiAvZXRjL29zLXJlbGVhc2UgJiYgZWNobyAiJFZFUlNJT05fQ09ERU5BTUUiKSINCg0KICAgICAgICBlY2hvICJkZWIgW2FyY2g9JChkcGtnIC0tcHJpbnQtYXJjaGl0ZWN0dXJlKSBzaWduZWQtYnk9L2V0Yy9hcHQva2V5cmluZ3MvZG9ja2VyLmdwZ10gaHR0cHM6Ly9kb3dubG9hZC5kb2NrZXIuY29tL2xpbnV4L3VidW50dSAke1VCVU5UVV9DT0RFTkFNRX0gc3RhYmxlIiBcDQogICAgICAgICAgPiAvZXRjL2FwdC9zb3VyY2VzLmxpc3QuZC9kb2NrZXIubGlzdA0KDQogICAgICAgIGFwdC1nZXQgdXBkYXRlIC15DQoNCiAgICAgICAgYXB0LWdldCBpbnN0YWxsIC15IFwNCiAgICAgICAgICBkb2NrZXItY2UgXA0KICAgICAgICAgIGRvY2tlci1jZS1jbGkgXA0KICAgICAgICAgIGNvbnRhaW5lcmQuaW8gXA0KICAgICAgICAgIGRvY2tlci1idWlsZHgtcGx1Z2luIFwNCiAgICAgICAgICBkb2NrZXItY29tcG9zZS1wbHVnaW4NCg0KICAgICAgICBzeXN0ZW1jdGwgZW5hYmxlIC0tbm93IGRvY2tlcg0KICAgICAgZmkNCg0KICAgICAgbWtkaXIgLXAgIiRTVEFDS19ESVIiL3tuZ2lueCxwb3N0Z3Jlcy1kYXRhLHNlbWFwaG9yZS1kYXRhLHNlbWFwaG9yZS1jb25maWcsc2VtYXBob3JlLXRtcH0NCg0KICAgICAgY2hvd24gLVIgMTAwMToxMDAxIFwNCiAgICAgICAgIiRTVEFDS19ESVIvc2VtYXBob3JlLWRhdGEiIFwNCiAgICAgICAgIiRTVEFDS19ESVIvc2VtYXBob3JlLWNvbmZpZyIgXA0KICAgICAgICAiJFNUQUNLX0RJUi9zZW1hcGhvcmUtdG1wIg0KDQogICAgICBjaG93biAtUiA3MDo3MCAiJFNUQUNLX0RJUi9wb3N0Z3Jlcy1kYXRhIg0KDQogICAgICBnZW5fc2VjcmV0KCkgew0KICAgICAgICB0ciAtZGMgJ0EtWmEtejAtOScgPC9kZXYvdXJhbmRvbSB8IGhlYWQgLWMgIiR7MTotMzJ9Ig0KICAgICAgfQ0KDQogICAgICBpZiBbICEgLWYgIiRTVEFDS19ESVIvLmVudiIgXTsgdGhlbg0KICAgICAgICB1bWFzayAwNzcNCg0KICAgICAgICBjYXQgPiAiJFNUQUNLX0RJUi8uZW52IiA8PEVPRg0KICAgICAgUE9TVEdSRVNfVVNFUj1zZW1hcGhvcmUNCiAgICAgIFBPU1RHUkVTX1BBU1NXT1JEPSQoZ2VuX3NlY3JldCAzMikNCiAgICAgIFBPU1RHUkVTX0RCPXNlbWFwaG9yZQ0KICAgICAgU0VNQVBIT1JFX0FETUlOPWFkbWluDQogICAgICBTRU1BUEhPUkVfQURNSU5fTkFNRT1BZG1pbg0KICAgICAgU0VNQVBIT1JFX0FETUlOX0VNQUlMPWFkbWluQGxvY2FsaG9zdA0KICAgICAgU0VNQVBIT1JFX0FETUlOX1BBU1NXT1JEPWFkbWluDQogICAgICBTRU1BUEhPUkVfQUNDRVNTX0tFWV9FTkNSWVBUSU9OPSQob3BlbnNzbCByYW5kIC1iYXNlNjQgMzIpDQogICAgICBFT0YNCg0KICAgICAgICBjaG1vZCA2MDAgIiRTVEFDS19ESVIvLmVudiINCiAgICAgIGZpDQoNCiAgICAgIGNkICIkU1RBQ0tfRElSIg0KDQogICAgICBkb2NrZXIgY29tcG9zZSBwdWxsDQogICAgICBkb2NrZXIgY29tcG9zZSB1cCAtZA0KDQogICAgICB0b3VjaCAiJE1BUktFUiINCg0KcnVuY21kOg0KICAtIGVjaG8gIlJlZ2VuZXJhdGluZyBTU0ggaG9zdCBrZXlzIg0KICAtIHJtIC1mIC9ldGMvc3NoL3NzaF9ob3N0XyoNCiAgLSBzc2gta2V5Z2VuIC1BDQogIC0gc3lzdGVtY3RsIHJlc3RhcnQgc3NoIHx8IHN5c3RlbWN0bCByZXN0YXJ0IHNzaGQNCiAgLSBwYXNzd2QgLWUgRkJLMXI1VFExMg0KICAtIC91c3IvbG9jYWwvc2Jpbi9zZW1hcGhvcmUtYm9vdHN0cmFwLnNoDQoNCmRlYnVnOiB0cnVlDQoNCm91dHB1dDoNCiAgYWxsOiAifCB0ZWUgLWEgL3Zhci9sb2cvY2xvdWQtaW5pdC1kZWJ1Zy5sb2ciDQoNCmZpbmFsX21lc3NhZ2U6IHwNCiAgVk0gcHJvdmlzaW9uZWQgc3VjY2Vzc2Z1bGx5Lg0KICBVc2VyIEZCSzFyNVRRMTIgY3JlYXRlZC4NCiAgU2VtYXBob3JlIFVJIGF2YWlsYWJsZSBhdDoNCiAgaHR0cDovLzxzZXJ2ZXItaXA+L3NlbWFwaG9yZVVJLw=="
|
|
}
|
|
|
|
// Values defined in outputs are placed in infrastructureDetails
|
|
output "vmIps" {
|
|
depends_on = [ovh_cloud_project_instance.simpl_vm]
|
|
value = tolist(ovh_cloud_project_instance.simpl_vm.addresses[*].ip)
|
|
}
|