diff --git a/terraform-configurations/23/configuration-23.tf b/terraform-configurations/23/configuration-23.tf new file mode 100644 index 0000000..60f1c71 --- /dev/null +++ b/terraform-configurations/23/configuration-23.tf @@ -0,0 +1,74 @@ +terraform { + required_providers { + ovh = { + source = "ovh/ovh" + version = "2.3.0" + } + } +} + +provider "ovh" { + endpoint = "ovh-eu" +} + +variable "local_project_id" { + type = string + default = "120c57d6e2b34042b4090c0172d9b58a" +} + +variable "local_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.local_project_id + name_filter = "b2-15" + region = var.local_region +} + +# The image must be selected from its region based list using name filtering +data "ovh_cloud_project_images" "image" { + service_name = var.local_project_id + region = var.local_region +} + +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.local_project_id + region = var.local_region + billing_period = "hourly" + + boot_from { + image_id = local.selected_image.id + } + + flavor { + flavor_id = local.selected_flavor.id + } + + name = "offering-enterprise-server-23-terraform" + + ssh_key_create { + name = "default-user-key-uatdemo" + public_key = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCWIeFVs0d67BkvqZgWIGSTgySzkaGggoQ2E7pyo887JJPBdrxAqDzDZhoT5DJXksziWLAz8BR1HWHMCUOSGVcmVtkHvAHHqg/kaDzwYMSM6+1NsdImAL35IGCijkfw70YsGcpdAwBXgQapk+RpUo2Dab7LjILRjAiPMhMCNsu4VKCJmfOOYsygvOF5u8xXFjaPKcEPOXzB3ijKCGaJ/0zXBR6U2K35WyyTskw68B0VyD/yFsfS+SiemKVPXcrL9j2XMDwLMdMhiZtprevttcyqX5314J0rEuJHOTU+FqC4rLSkZA2hMTXwzwcAXH8EhBmaixsxVGe6NYCbVVjMrEzafF/0H3chl3kosjwLiy0B8xlPOTV+R3hv3AhcGlXtMEgTFmr07eOz1hVyb1FtRMerFAHSIYLjz/FY5+cbsjUO4xdpNcr9T1yeq9D8CLJ9mWICkF11jvTBiBE5jgiDLBtUfiXypeCyz33W9jRRgltxgaaVCU1KS8cR5PoZgG+JsBk=" + } + + network { + public = true + } + + user_data = "I2Nsb3VkLWNvbmZpZwojY2xvdWQtY29uZmlnCmhvc3RuYW1lOiBhcHAtc2VydmVyCm1hbmFnZV9ldGNfaG9zdHM6IHRydWUKIApwYWNrYWdlX3VwZGF0ZTogdHJ1ZQpwYWNrYWdlX3VwZ3JhZGU6IHRydWUKCnBhY2thZ2VzOgogIC0gcHl0aG9uMwogIC0gcHl0aG9uMy1waXAKICAtIHB5dGhvbjMtdmVudgogIC0gYnVpbGQtZXNzZW50aWFsCiAgLSBsaWJzc2wtZGV2CiAgLSBsaWJmZmktZGV2CiAgLSBweXRob24zLWRldgogIC0gbGlic3FsaXRlMy1kZXYKICAtIGxpYnBxLWRldgogIC0gc3FsaXRlMwogIC0gczNmcwogCndyaXRlX2ZpbGVzOgogICMgU3lzdGVtZCBzZXJ2aWNlIGZvciBTdXBlcnNldAogIC0gcGF0aDogL2V0Yy9zeXN0ZW1kL3N5c3RlbS9zdXBlcnNldC5zZXJ2aWNlCiAgICBwZXJtaXNzaW9uczogJzA2NDQnCiAgICBjb250ZW50OiB8CiAgICAgIFtVbml0XQogICAgICBEZXNjcmlwdGlvbj1BcGFjaGUgU3VwZXJzZXQKICAgICAgQWZ0ZXI9bmV0d29yay50YXJnZXQKIAogICAgICBbU2VydmljZV0KICAgICAgVXNlcj1yb290CiAgICAgIEdyb3VwPXJvb3QKICAgICAgRW52aXJvbm1lbnQ9RkxBU0tfQVBQPXN1cGVyc2V0CiAgICAgIEVudmlyb25tZW50PVNVUEVSU0VUX0NPTkZJR19QQVRIPS9ob21lL3VidW50dS9zdXBlcnNldC9zdXBlcnNldF9jb25maWcucHkKICAgICAgV29ya2luZ0RpcmVjdG9yeT0vaG9tZS91YnVudHUvc3VwZXJzZXQKICAgICAgI0V4ZWNTdGFydD0vaG9tZS91YnVudHUvc3VwZXJzZXQvYmluL2d1bmljb3JuIC0td29ya2VycyAzIC0tdGltZW91dCAxMjAgLWIgMC4wLjAuMDo4MDg4ICJzdXBlcnNldC5hcHA6Y3JlYXRlX2FwcCgpIgogICAgICBFeGVjU3RhcnQ9L2hvbWUvdWJ1bnR1L3N1cGVyc2V0L2Jpbi9zdXBlcnNldCBydW4gLWggMC4wLjAuMCAtcCA4MDg4IC0td2l0aC10aHJlYWRzIC0tcmVsb2FkIC0tZGVidWdnZXIKICAgICAgUmVzdGFydD1hbHdheXMKIAogICAgICBbSW5zdGFsbF0KICAgICAgV2FudGVkQnk9bXVsdGktdXNlci50YXJnZXQKICAtIHBhdGg6IC9ob21lL3VidW50dS9zdXBlcnNldC9zdXBlcnNldF9jb25maWcucHkKICAgIHBlcm1pc3Npb25zOiAnMDY0NCcKICAgIGNvbnRlbnQ6IHwKICAgICAgaW1wb3J0IG9zCiAgICAgIGZyb20gY2FjaGVsaWIuZmlsZSBpbXBvcnQgRmlsZVN5c3RlbUNhY2hlCiAKICAgICAgIyBBIHJhbmRvbSwgY29tcGxleCBzZWNyZXQga2V5IGZvciBDU1JGIGFuZCBzZXNzaW9uIGNvb2tpZXMKICAgICAgU0VDUkVUX0tFWSA9ICJyK1VwRitPRzcySkxxbFI4cndUSk5Ha2VqN01uSVZudWdlY3l5UVhtdUl2L3d3a2pCRWpiVEEzeSIKICAgICAgU1FMQUxDSEVNWV9EQVRBQkFTRV9VUkkgPSAnc3FsaXRlOi8vLy92YXIvbGliL3N1cGVyc2V0L3N1cGVyc2V0LmRiJwogCiAgICAgICMgT3B0aW9uYWw6IENhY2hlIGNvbmZpZ3VyYXRpb24KICAgICAgQ0FDSEVfQ09ORklHID0gewogICAgICAgICAgJ0NBQ0hFX1RZUEUnOiAnRmlsZVN5c3RlbUNhY2hlJywKICAgICAgICAgICdDQUNIRV9ESVInOiAnL2hvbWUvdWJ1bnR1L3N1cGVyc2V0L2NhY2hlJywKICAgICAgfQogICAgICBQUkVWRU5UX1VOU0FGRV9EQl9DT05ORUNUSU9OUyA9IEZhbHNlCiAKcnVuY21kOgogICMgU3VwZXJzZXQgc2V0dXAKICAtIHN1ZG8gbWtkaXIgL2hvbWUvdWJ1bnR1Ly5zdXBlcnNldAogIC0gc3VkbyBjaG93biAtUiB1YnVudHU6dWJ1bnR1IC9ob21lL3VidW50dS8uc3VwZXJzZXQKICAtIGNobW9kIC1SIDc1NSAvaG9tZS91YnVudHUvLnN1cGVyc2V0CiAgLSBzdWRvIG1rZGlyIC9ob21lL3VidW50dS9zdXBlcnNldC9jYWNoZQogIC0gc3VkbyBjaG93biAtUiB1YnVudHU6dWJ1bnR1IC9ob21lL3VidW50dS9zdXBlcnNldC9jYWNoZQogIC0gY2htb2QgLVIgNzU1IC9ob21lL3VidW50dS9zdXBlcnNldC9jYWNoZQogCiAgLSBweXRob24zIC1tIHZlbnYgL2hvbWUvdWJ1bnR1L3N1cGVyc2V0CiAgLSAvaG9tZS91YnVudHUvc3VwZXJzZXQvYmluL3BpcCBpbnN0YWxsIC0tdXBncmFkZSBwaXAgc2V0dXB0b29scyB3aGVlbAogIC0gL2hvbWUvdWJ1bnR1L3N1cGVyc2V0L2Jpbi9waXAgaW5zdGFsbCBtYXJzaG1hbGxvdz09My4yNi4xCiAgLSAvaG9tZS91YnVudHUvc3VwZXJzZXQvYmluL3BpcCBpbnN0YWxsIGFwYWNoZS1zdXBlcnNldAogIC0gbWtkaXIgLXAgL3Zhci9saWIvc3VwZXJzZXQKIAogICMgU3RlcCAzOiBJbml0aWFsaXplIFN1cGVyc2V0CiAgLSBleHBvcnQgRkxBU0tfQVBQPXN1cGVyc2V0CiAgLSBleHBvcnQgU1VQRVJTRVRfQ09ORklHX1BBVEg9L2hvbWUvdWJ1bnR1L3N1cGVyc2V0L3N1cGVyc2V0X2NvbmZpZy5weQogIC0gL2hvbWUvdWJ1bnR1L3N1cGVyc2V0L2Jpbi9zdXBlcnNldCBkYiB1cGdyYWRlCiAgLSAvaG9tZS91YnVudHUvc3VwZXJzZXQvYmluL3N1cGVyc2V0IGZhYiBjcmVhdGUtYWRtaW4gLS11c2VybmFtZSBhZG1pbiAtLWZpcnN0bmFtZSBTdXBlcnNldCAtLWxhc3RuYW1lIEFkbWluIC0tZW1haWwgYWRtaW5AZXhhbXBsZS5jb20gLS1wYXNzd29yZCBhZG1pbgogIC0gL2hvbWUvdWJ1bnR1L3N1cGVyc2V0L2Jpbi9zdXBlcnNldCBpbml0CiAgLSBjaG93biAtUiB1YnVudHU6dWJ1bnR1IC92YXIvbGliL3N1cGVyc2V0CiAKICAjIFN0ZXAgNTogRW5hYmxlIGFuZCBzdGFydCB0aGUgU3VwZXJzZXQgc2VydmljZQogIC0gc3lzdGVtY3RsIGRhZW1vbi1yZWxvYWQKICAtIHN5c3RlbWN0bCBlbmFibGUgc3VwZXJzZXQKICAtIHN5c3RlbWN0bCBzdGFydCBzdXBlcnNldAoKICAtIHVmdyBhbGxvdyAyMgogIC0gdWZ3IGFsbG93IDQ0MwogIC0gdWZ3IGFsbG93IDgwODgKZmluYWxfbWVzc2FnZTogIlVGVyBVcGRhdGVkIg==" +} + +output "vmIps" { + depends_on = [ovh_cloud_project_instance.simpl_vm] + value = tolist(ovh_cloud_project_instance.simpl_vm.addresses[*].ip) +}