commit 9b1aa393b3b44b08f4bdcac1d375d6e06c7cb2c4 Author: Guy Godfroy Date: Sat Mar 14 20:56:04 2026 +0100 initial commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..96fd359 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +terraform.tfstate +*.backup +.terraform/ +.claude/ +creds.auto.tfvars diff --git a/cloudflare/.terraform.lock.hcl b/cloudflare/.terraform.lock.hcl new file mode 100644 index 0000000..119a54c --- /dev/null +++ b/cloudflare/.terraform.lock.hcl @@ -0,0 +1,21 @@ +# This file is maintained automatically by "tofu init". +# Manual edits may be lost in future updates. + +provider "registry.opentofu.org/cloudflare/cloudflare" { + version = "5.1.0" + hashes = [ + "h1:rAEBCOYxvUIGopSwRgGebOk2uDfqlp+A9B4pJWfiCs8=", + "zh:4abdac721beb7b552fbc273644ee66e000b76d389084d5cbd2bc09bd297301c8", + "zh:59c413fa82c30e18a4afb97ad82473b7842f8476b422a0f8c294cc39b646b083", + "zh:702f4aee9f2fdc25381a9c8ed7617106973ed80033db727ac446e4c64d16f00f", + "zh:87467a36c1ef8f34a7ebe216201757af4ad0a098995269369ffa5c601c0a7568", + "zh:8f746f59e46c210d6c33580542d5b2a94d8071a3a9435f0771f524d0e2fdc731", + "zh:a9ce5ac0d5df8d94c32149434da27ac19d9aa0ba6d5dee86ea0f357a2e54b40f", + "zh:afc8377f6fdb7cb9dd436ff42479257ddcb14c1d7ecee5b57390ba1c6a8fa878", + "zh:d13d757fca7978f18a118b47c219bcdee5e055fd21a5bfec4ce8b4e28941e60b", + "zh:d5810ad8e4ab3d5a4cfa6696a254426a22f0928e23f87c46a186d71193a304f0", + "zh:d7e2459db89150b79870117dfb6f324b586b547ca91a935003c2be33305317fc", + "zh:f46c380238b40b34ef32db185c5582ce6e173637c75e88d305e58d41e24df72b", + "zh:f809ab383cca0a5f83072981c64208cbd7fa67e986a86ee02dd2c82333221e32", + ] +} diff --git a/cloudflare/account.tf b/cloudflare/account.tf new file mode 100644 index 0000000..4f3abb4 --- /dev/null +++ b/cloudflare/account.tf @@ -0,0 +1,7 @@ +resource "cloudflare_account" "account_raspbeguy" { + name = "espace de raspbeguy" + type = "standard" + settings = { + default_nameservers = "cloudflare.standard" + } +} diff --git a/cloudflare/cruxmea_fr.tf b/cloudflare/cruxmea_fr.tf new file mode 100644 index 0000000..e3acbba --- /dev/null +++ b/cloudflare/cruxmea_fr.tf @@ -0,0 +1,18 @@ +resource "cloudflare_zone" "zone_cruxmea_fr" { + name = "cruxmea.fr" + type = "full" + account = { + id = cloudflare_account.account_raspbeguy.id + } +} + +resource "cloudflare_dns_record" "terraform_managed_resource_61567e661e58d0c7f82c4c3233d35a4d" { + content = "home.gugod.fr" + name = "cruxmea.fr" + proxied = true + ttl = 1 + type = "CNAME" + zone_id = cloudflare_zone.zone_cruxmea_fr.id + settings = {} +} + diff --git a/cloudflare/hashtagueule_fr.tf b/cloudflare/hashtagueule_fr.tf new file mode 100644 index 0000000..4b5641c --- /dev/null +++ b/cloudflare/hashtagueule_fr.tf @@ -0,0 +1,78 @@ +resource "cloudflare_zone" "zone_hashtagueule_fr" { + name = "hashtagueule.fr" + type = "full" + account = { + id = cloudflare_account.account_raspbeguy.id + } +} + +resource "cloudflare_dns_record" "terraform_managed_resource_3245f5a6a7f520f0887f7b2f1f1ddfa8" { + content = "cloud.gugod.fr" + name = "cloud.hashtagueule.fr" + proxied = false + ttl = 1 + type = "CNAME" + zone_id = cloudflare_zone.zone_hashtagueule_fr.id + settings = {} +} + +resource "cloudflare_dns_record" "terraform_managed_resource_27734c4f8a27de9bdd08400d3bef7594" { + content = "home.gugod.fr" + name = "hashtagueule.fr" + proxied = true + ttl = 1 + type = "CNAME" + zone_id = cloudflare_zone.zone_hashtagueule_fr.id + settings = {} +} + +resource "cloudflare_dns_record" "terraform_managed_resource_cc8da3d037c3bad59075130ab1d3bdbe" { + content = "home.gugod.fr" + name = "hook.hashtagueule.fr" + proxied = false + ttl = 1 + type = "CNAME" + zone_id = cloudflare_zone.zone_hashtagueule_fr.id + settings = {} +} + +resource "cloudflare_dns_record" "terraform_managed_resource_b36f5f48d43425b6e167fec620282516" { + content = "mta-gw.infomaniak.ch" + name = "hashtagueule.fr" + priority = 5 + proxied = false + ttl = 1 + type = "MX" + zone_id = cloudflare_zone.zone_hashtagueule_fr.id + settings = {} +} + +resource "cloudflare_dns_record" "terraform_managed_resource_1260d4a0920440ff74d3f7da3f781750" { + content = "\"v=DKIM1; t=s; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2ZafyrkNlgPzYXYLDm7rhG2lfu5OeuYVvHmuAx6GUFQSti4NfsWMqiemTIR6EIZsCYTjejFJ+Rq6hkj0L1INY045Na9vtmmmwpG90H9MUyfR1tU2jor+H4eo7VBT0UhNMCidCBaYUi2QxRIXSO85RG8CyN6ipruyeaCMP/yifaj/Ot+5fpJpBj0ZKQG4VqchQv7\" \"tcgv/J0g3pA9lmt/c4nrpvHO77ngftpI/d8CKEdX6c/O4FrM5B5JmqvHEo7oscPSjioRuv7gsAkMMcWU3Ti0xLYnpq271iI8jzzNfmwrVEblT8nHxahtSxHIw8I4OQg0I7mVKu0KHr2DYoXbvTwIDAQAB\"" + name = "20250112._domainkey.hashtagueule.fr" + proxied = false + ttl = 1 + type = "TXT" + zone_id = cloudflare_zone.zone_hashtagueule_fr.id + settings = {} +} + +resource "cloudflare_dns_record" "terraform_managed_resource_c1622bf79efd7a1bb11cb614ca422cc5" { + content = "v=DMARC1; p=none; rua=mailto:dmarc@gugod.fr; ruf=mailto:dmarc@gugod.fr" + name = "_dmarc.hashtagueule.fr" + proxied = false + ttl = 1 + type = "TXT" + zone_id = cloudflare_zone.zone_hashtagueule_fr.id + settings = {} +} + +resource "cloudflare_dns_record" "hashtagueule_spf" { + content = "v=spf1 include:spf.infomaniak.ch -all" + name = "hashtagueule.fr" + proxied = false + ttl = 1 + type = "TXT" + zone_id = cloudflare_zone.zone_hashtagueule_fr.id + settings = {} +} diff --git a/cloudflare/lullylit_fr.tf b/cloudflare/lullylit_fr.tf new file mode 100644 index 0000000..58a0b43 --- /dev/null +++ b/cloudflare/lullylit_fr.tf @@ -0,0 +1,28 @@ +resource "cloudflare_zone" "zone_lullylit_fr" { + name = "lullylit.fr" + type = "full" + account = { + id = cloudflare_account.account_raspbeguy.id + } +} + +resource "cloudflare_dns_record" "terraform_managed_resource_9aa3eacf93816a0fc2fe961a7e5c20cd" { + content = "home.gugod.fr" + name = "content.lullylit.fr" + proxied = false + ttl = 1 + type = "CNAME" + zone_id = cloudflare_zone.zone_lullylit_fr.id + settings = {} +} + +resource "cloudflare_dns_record" "terraform_managed_resource_42a6fc51568604b969a04365d4dda39a" { + content = "home.gugod.fr" + name = "lullylit.fr" + proxied = true + ttl = 1 + type = "CNAME" + zone_id = cloudflare_zone.zone_lullylit_fr.id + settings = {} +} + diff --git a/cloudflare/provider.tf b/cloudflare/provider.tf new file mode 100644 index 0000000..01e9210 --- /dev/null +++ b/cloudflare/provider.tf @@ -0,0 +1,12 @@ +terraform { + required_providers { + cloudflare = { + source = "cloudflare/cloudflare" + } + } +} + +provider "cloudflare" { + api_key = var.cf_api_key + email = var.cf_email +} diff --git a/cloudflare/variables.tf b/cloudflare/variables.tf new file mode 100644 index 0000000..abe70c6 --- /dev/null +++ b/cloudflare/variables.tf @@ -0,0 +1,7 @@ +variable cf_api_key { + type = string +} + +variable cf_email { + type = string +} diff --git a/discord/.terraform.lock.hcl b/discord/.terraform.lock.hcl new file mode 100644 index 0000000..0d88472 --- /dev/null +++ b/discord/.terraform.lock.hcl @@ -0,0 +1,17 @@ +# This file is maintained automatically by "tofu init". +# Manual edits may be lost in future updates. + +provider "registry.opentofu.org/lucky3028/discord" { + version = "2.2.1" + hashes = [ + "h1:3sFFJ1JISV02djpBKOy4PMVOUIewQlIyNy+iiWHRj7Q=", + "zh:032f762350f41a971fa63270e3ec35cb33a504906cf568f4f191f9df56757263", + "zh:0aad54fbc548643e55c821ff1776a398ee2286fbfcf1da76c41cba4f02bd2ae9", + "zh:0c28ffa47c8c3f0b758a7e73db5a7d96db8d8d19e9b02fcb73bb9563330a013d", + "zh:1265a65935ca971aa4f0db030a85264108c964824de9001382b38922095c2ce1", + "zh:1396368f624e6d431da4f29b92ad4d7e9ec475f0b96e7a19541d4cbd2e343127", + "zh:3f40089f3c8ca5ff53ca8df0f05fd09f4c97e29b4337901faed3c7a9861e22ee", + "zh:77d30ee7203bd644d7f450b565821ee73c68c6f44fe31c3b2e8ca2fb8a8e4345", + "zh:db12227cacbbd1c7f974bc15cd5a36e35d9eb16d9f3fba2c647c37fc98958234", + ] +} diff --git a/discord/provider.tf b/discord/provider.tf new file mode 100644 index 0000000..9877c7a --- /dev/null +++ b/discord/provider.tf @@ -0,0 +1,11 @@ +terraform { + required_providers { + discord = { + source = "Lucky3028/discord" + } + } +} + +provider "discord" { + token = var.discord_token +} diff --git a/discord/server.tf b/discord/server.tf new file mode 100644 index 0000000..2720317 --- /dev/null +++ b/discord/server.tf @@ -0,0 +1,47 @@ +data "discord_local_image" "logo" { + file = "terraform-icon.png" +} + +resource "discord_server" "terraform_playground" { + name = "Terraform Playground" + region = "rotterdam" + default_message_notifications = 0 + icon_data_uri = data.discord_local_image.logo.data_uri +} + +resource "discord_category_channel" "chatting" { + name = "Chatting" + server_id = discord_server.terraform_playground.id + position = 0 +} + +resource "discord_text_channel" "general" { + name = "general" + category = discord_category_channel.chatting.id + server_id = discord_server.terraform_playground.id + position = 0 +} + +resource "discord_message" "hello_world" { + channel_id = discord_text_channel.general.id + + embed { + title = "Hello World" + + footer { + text = "Bye World" + } + + fields { + name = "foo" + value = "bar" + inline = true + } + + fields { + name = "bar" + value = "baz" + inline = false + } + } +} diff --git a/discord/terraform-icon.png b/discord/terraform-icon.png new file mode 100644 index 0000000..9a79832 Binary files /dev/null and b/discord/terraform-icon.png differ diff --git a/discord/variables.tf b/discord/variables.tf new file mode 100644 index 0000000..d2d2eae --- /dev/null +++ b/discord/variables.tf @@ -0,0 +1,4 @@ +variable discord_token { + type = string + sensitive = true +} diff --git a/github/.terraform.lock.hcl b/github/.terraform.lock.hcl new file mode 100644 index 0000000..106a9cc --- /dev/null +++ b/github/.terraform.lock.hcl @@ -0,0 +1,24 @@ +# This file is maintained automatically by "tofu init". +# Manual edits may be lost in future updates. + +provider "registry.opentofu.org/integrations/github" { + version = "6.8.3" + hashes = [ + "h1:LnpUTEWVHV5GToNxS239VLFPXWw2Hhe21/GuUTKhR9o=", + "zh:0795635834c762371aae1748f68d17db778918f48a630c69e673e0339edc0869", + "zh:191649a4ca68b8c5235712247b9ae05b16123e912c8e0f875267df68fda64452", + "zh:3a5260d0af06c37a346e9397f7563e03247c99906b4d2df9d615ab72a6a2dde1", + "zh:57b5f57e45a84124780ebc5b2ffb40926a513dfdd45193eab137634c765db5b0", + "zh:639568914b977203fa3f94dc55c256022f800daaaeb66084e01302cffda9d933", + "zh:8976e4963db88a5ad8209f0422754f2aa75220f12123228804cc97169f701ee0", + "zh:971e1021c45ab06caa966030494957c0e87bd9e30cd8358e41aaf8c120352186", + "zh:9e379ed9235f5dadb4c5b625016a474961d39fba5753a3155f3dda56446f0ec2", + "zh:a50e5e02cd99479d8bc9b06c428b610562986931ba258b45c09f2dec76711086", + "zh:b421552318952b2fa30ef30b4279b56620bddef65d11cbda1cfa123be5a3bf9c", + "zh:bc8bf3a88b9daaca1ce1e5b3e59be8ae0be504f111106094de791e19e0e49c9d", + "zh:d3f9b1d8ed5a58a8e22aa20e3d76dc7afe83f648a41ff996e445de0c6a1f13cc", + "zh:dc55d47cb73f633e9f5d4ebcfba1a2212b6e83fcb7a6c7487606324053a2943f", + "zh:dfc8e85505e3ce90673b460833e94d935142145b79265912c3c805d8de12c4f2", + "zh:fbd1fee2c9df3aa19cf8851ce134dea6e45ea01cb85695c1726670c285797e25", + ] +} diff --git a/github/provider.tf b/github/provider.tf new file mode 100644 index 0000000..56bda96 --- /dev/null +++ b/github/provider.tf @@ -0,0 +1,12 @@ +terraform { + required_providers { + github = { + source = "integrations/github" + } + } +} + +# Configure the GitHub Provider +provider "github" { + token = var.gh_token +} diff --git a/github/repositories.tf b/github/repositories.tf new file mode 100644 index 0000000..00a8f18 --- /dev/null +++ b/github/repositories.tf @@ -0,0 +1,43 @@ +resource "github_repository" "osm-blame" { + allow_auto_merge = false + allow_merge_commit = true + allow_rebase_merge = true + allow_squash_merge = true + allow_update_branch = false + archive_on_destroy = null + archived = false + auto_init = false + delete_branch_on_merge = false + description = "CLI tool inspired by git blame to determine the last modification tag by tag for an OSM element" + etag = "W/\"4fd676b7eb39a4b737792e7d6f70b95ba4515c3b81eafdd968fb229c7db5f316\"" + fork = false + gitignore_template = null + has_discussions = false + has_downloads = true + has_issues = true + has_projects = true + has_wiki = true + homepage_url = "" + ignore_vulnerability_alerts_during_read = null + is_template = false + license_template = null + merge_commit_message = "PR_TITLE" + merge_commit_title = "MERGE_MESSAGE" + name = "osm-blame" + source_owner = "" + source_repo = "" + squash_merge_commit_message = "COMMIT_MESSAGES" + squash_merge_commit_title = "COMMIT_OR_PR_TITLE" + topics = ["openstreetmap", "openstreetmap-api", "osm"] + visibility = "public" + vulnerability_alerts = false + web_commit_signoff_required = false + security_and_analysis { + secret_scanning { + status = "disabled" + } + secret_scanning_push_protection { + status = "disabled" + } + } +} diff --git a/github/variables.tf b/github/variables.tf new file mode 100644 index 0000000..5801f4d --- /dev/null +++ b/github/variables.tf @@ -0,0 +1,4 @@ +variable gh_token { + type = string + sensitive = true +} diff --git a/haproxy/.terraform.lock.hcl b/haproxy/.terraform.lock.hcl new file mode 100644 index 0000000..ed06795 --- /dev/null +++ b/haproxy/.terraform.lock.hcl @@ -0,0 +1,24 @@ +# This file is maintained automatically by "tofu init". +# Manual edits may be lost in future updates. + +provider "registry.opentofu.org/sepehrimanian/haproxy" { + version = "0.0.7" + hashes = [ + "h1:o/0hi5No8Bs2ph5fEDoZXVTb3iPOy+o5FJMag85hrF0=", + "zh:27de01566ffe8bcab684fec9d9c5cca8eb3a8d6f3067e486f4a3dc989ac34e91", + "zh:31037353d5c83068ccad37bc87fe9fe033d82f3b580d7657a7145c5174bddf4d", + "zh:44bcd7edd8a88ddfc3db123818580fbc0804fa2d27e296624c0c3ef7a3f64320", + "zh:514ccac64b019167c324f4fd067b14ffeb657975c011c942cfd788af3ce47718", + "zh:6fb93731af08bf1f51b49995650088a1be42c0a27d3d50c893fe3f26b1abace8", + "zh:75bd809ab395e89961e2c7fa296ada101b6d00137ca348bb49f1e68b93b66662", + "zh:890df766e9b839623b1f0437355032a3c006226a6c200cd911e15ee1a9014e9f", + "zh:89c1869e447f5cb6bba643614a883a0f77a044e4fa517c9736d027b3f6c18e4a", + "zh:89d435b3749051cbcb1b582e83aae38c245fc2df0fa7449c1054c9611dd1318f", + "zh:94535d4d2e74610924b6acd5a03882b48093469ea5ef45193f9dbcbfdec7e255", + "zh:9dbe38c5b503e2c520427fd3608e10b91c342f96ef4bf76241cabd6a5f9006e1", + "zh:cd407fe7d6cf9e96e3962742757c9cb0f813e551856360c3ad5397984689865c", + "zh:e328fd431719f65f8d2bdb0ba720abb6fb50d08abf1d694fcde23ab7bcc17fd8", + "zh:f22f75dbe2667c85d3a49d54b0d4160a71151326e09327140e1eb9da953cf31d", + "zh:fd9d13134da972dfa8d8728294fada24c40704bfadec99d257e3d882ce5c00bb", + ] +} diff --git a/haproxy/backend.sh b/haproxy/backend.sh new file mode 100644 index 0000000..dedac45 --- /dev/null +++ b/haproxy/backend.sh @@ -0,0 +1,18 @@ +curl -X POST \ + --user admin:adminpwd \ + -H "Content-Type: application/json" \ + -d '{ + "name": "lololo", + "mode": "http", + "balance": { + "algorithm": "roundrobin" + }, + "default_server": { + "alpn": "h2", + "check": "enabled", + "check_alpn": "h2", + "maxconn": 30, + "weight": 100 + } + }' \ + "http://192.168.0.200:8080/v3/services/haproxy/configuration/backends?version=$CFGVER" diff --git a/haproxy/frontend.tf b/haproxy/frontend.tf new file mode 100644 index 0000000..5ca8ca2 --- /dev/null +++ b/haproxy/frontend.tf @@ -0,0 +1,44 @@ +resource "haproxy_backend" "backend_tf_test" { + name = "backend_tf_test" + mode = "http" + + balance { + algorithm = "roundrobin" + } + + httpchk_params { + uri = "/health" + version = "HTTP/1.1" + method = "GET" + } + + forwardfor { + enabled = true + } +} + +resource "haproxy_frontend" "front_tf_test" { + name = "front_tf_test" + backend = haproxy_backend.backend_tf_test.name + mode = "http" + + compression { + algorithms = ["gzip", "identity"] + offload = true + types = ["text/html", "text/plain", "text/css", "application/javascript"] + } + + forwardfor { + enabled = true + header = "X-Forwarded-For" + ifnone = true + } +} + +resource "haproxy_bind" "bind_tf_test" { + name = "bind_test" + port = 8888 + address = "0.0.0.0" + parent_name = haproxy_frontend.front_tf_test.name + parent_type = "frontend" +} diff --git a/haproxy/provider.tf b/haproxy/provider.tf new file mode 100644 index 0000000..dbaadf6 --- /dev/null +++ b/haproxy/provider.tf @@ -0,0 +1,13 @@ +terraform { + required_providers { + haproxy = { + source = "SepehrImanian/haproxy" + } + } +} + +provider "haproxy" { + url = "http://192.168.0.130:8080" + username = "admin" + password = "adminpwd" +} diff --git a/incus/.terraform.lock.hcl b/incus/.terraform.lock.hcl new file mode 100644 index 0000000..19146a3 --- /dev/null +++ b/incus/.terraform.lock.hcl @@ -0,0 +1,22 @@ +# This file is maintained automatically by "tofu init". +# Manual edits may be lost in future updates. + +provider "registry.opentofu.org/lxc/incus" { + version = "1.0.2" + hashes = [ + "h1:skSyqJPnvwhbfSrmVVY05I/js7qvX8T8Cd182tnTetc=", + "zh:0f312afd0bc27c111c5b4e41b6274dfe4401c3b5c60e4bd519425c547c5c2316", + "zh:396587c30adce1b57400ecf1a43df8d4fcbdf5172e3e359f58f7147520891546", + "zh:40310405f58493af0e68b1040d62286cd5e6d25b96b5e2d1534d155a98375eba", + "zh:4991adf7f290ffc840a1123b300163b8db25a6c4b096648c7b576a6661980ed5", + "zh:5d71a5c949a5ad01d075f856475e7de95df16b50d52e546a2257e5c56bfa9150", + "zh:60e5fde27aa605abab8487d6ed8a8bb66de88f5e1ba31bb05364b4379fde5f83", + "zh:63f9b65382bcb88efd0d9aa8422987405fcf00d4f5b63fbe1ae030438fb55eb7", + "zh:79acebe8ed9627dffc369058e54bbb933b5568fee02de3cc353274d728c07597", + "zh:97170106b7520d7c025ccfe392a0b7c2d172e63f00f656989b08d0b6ece56573", + "zh:9c8fc5d4b26dc21e6d75d6ac127502a797d7e9253bd10b236914db51fa1fc4d7", + "zh:b2b8cabdfa681efffa3599468257b185f7a7e24ec6e624e57f75920aa1e7c134", + "zh:d32129503b83790752482e0d794ffb9b04f7a893cc113d834654a8ddb028402f", + "zh:ebd2fb8d94d72bc28c5655c29c6e6048cc31ef3650d0e166aaf3d82a31673cd5", + ] +} diff --git a/incus/groups.tf b/incus/groups.tf new file mode 100644 index 0000000..ee6dc90 --- /dev/null +++ b/incus/groups.tf @@ -0,0 +1,21 @@ +resource "incus_cluster_group" "default" { + name = "default" + description = "Default cluster group" +} + +resource "incus_cluster_group_member" "hypervisor" { + for_each = var.incus_hypervisors + cluster_group = incus_cluster_group.default.name + member = each.key +} + +resource "incus_cluster_group" "witness" { + name = "witness" + description = "Inactive hosts only for keeping database quorum" +} + +resource "incus_cluster_group_member" "witness" { + for_each = var.incus_witnesses + cluster_group = incus_cluster_group.witness.name + member = each.key +} diff --git a/incus/members.auto.tfvars b/incus/members.auto.tfvars new file mode 100644 index 0000000..659e995 --- /dev/null +++ b/incus/members.auto.tfvars @@ -0,0 +1,10 @@ +incus_hypervisors = { + "hv-01" = "https://192.168.0.11:8443" + "hv-02" = "https://192.168.0.12:8443" +} + +incus_witnesses = { + "nuc" = "https://192.168.0.11:8443" +} + +incus_token = "eyJjbGllbnRfbmFtZSI6InRmIiwiZmluZ2VycHJpbnQiOiIxYjNmZGJmNTNlZTdlODc4NDllY2RiNTkyYzNkYTRkYmE0M2I3Mjg1OTFlYTAxYmE1NTNkZGRmYzJjNTBjNWMzIiwiYWRkcmVzc2VzIjpbIjE5Mi4xNjguMC4xMTo4NDQzIl0sInNlY3JldCI6IjAzNzFmMTdjMDc1OGU2ZmU5ZGJjNTkwZmNhYTAzOTllYWJkMDY3N2E4ODIzMGY1ZjkyYzdlNjNlYmMyYmU0NDQiLCJleHBpcmVzX2F0IjoiMDAwMS0wMS0wMVQwMDowMDowMFoifQ==" diff --git a/incus/network.auto.tfvars b/incus/network.auto.tfvars new file mode 100644 index 0000000..8c529b3 --- /dev/null +++ b/incus/network.auto.tfvars @@ -0,0 +1,3 @@ +incus_networks = { + "main" = 0 +} diff --git a/incus/network.tf b/incus/network.tf new file mode 100644 index 0000000..abf8588 --- /dev/null +++ b/incus/network.tf @@ -0,0 +1,28 @@ +resource "incus_network" "main_bridge" { + for_each = var.incus_hypervisors + name = "main" + target = each.key + type = "physical" + config = { + "parent" = "br0" + } +} + +resource "incus_network" "main_dummy" { + for_each = var.incus_witnesses + name = "main" + target = each.key + type = "physical" + config = { + "parent" = "dummy0" + } +} + +resource "incus_network" "main" { + depends_on = [ + incus_network.main_bridge, + incus_network.main_dummy + ] + name = "main" + type = "physical" +} diff --git a/incus/provider.tf b/incus/provider.tf new file mode 100644 index 0000000..4f9eea7 --- /dev/null +++ b/incus/provider.tf @@ -0,0 +1,22 @@ +terraform { + required_providers { + incus = { + source = "lxc/incus" + } + } +} + +provider "incus" { + generate_client_certificates = true + accept_remote_certificate = true + default_remote = keys(var.incus_hypervisors)[0] + + dynamic "remote" { + for_each = var.incus_hypervisors + content { + name = remote.key + address = remote.value + token = var.incus_token + } + } +} diff --git a/incus/variables.tf b/incus/variables.tf new file mode 100644 index 0000000..cd26c19 --- /dev/null +++ b/incus/variables.tf @@ -0,0 +1,17 @@ +variable "incus_hypervisors" { + type = map(string) +} + +variable "incus_witnesses" { + type = map(string) +} + +variable "incus_token" { + type = string + sensitive = true + description = "The common authentication token for all Incus remotes" +} + +variable "incus_networks" { + type = map(number) +} diff --git a/ovh/.terraform.lock.hcl b/ovh/.terraform.lock.hcl new file mode 100644 index 0000000..33040cd --- /dev/null +++ b/ovh/.terraform.lock.hcl @@ -0,0 +1,44 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.opentofu.org/ovh/ovh" { + version = "2.10.0" + hashes = [ + "h1:6CHM/tHZ7vAvQKtdqurs6ExO+46gpFooZ0zdaW74DKE=", + "zh:1582485c59b5e25fa407417de3040dfc31bfec3f9b884d51953f6625b930d2f6", + "zh:15b425716d5e05992cb1d68a49d58f0e9e0cbd7dbaa35ea9793404fa1ec45bed", + "zh:1c1547ff469c2f772d478f67d148d08b38468d43c9517b723b622a085625d949", + "zh:2491be291a8876da2dc1e71490428706cdca39002a1e89d10dd060474f59ce19", + "zh:2d9c7589764f838f04d38a87a0e6c9db6b560b6c5b510b69eabf2d67caa38d2b", + "zh:56c5b16a55dc4ac5f3eed69072e5ae74aafac2a4a8a84ba27fa06528320037cc", + "zh:629d2c7f709fc01adabba1c8b98ec7485dfebcc4b9f72f4bd4d36509166eb42c", + "zh:82f4b8b35a31a468d7a2a5aa4630f432ef64d9abfed8066afdaab0502886a72a", + "zh:84c5e65122efaee5e34c266cd750576969bd788c2bdbb804a7ffc08728ac3987", + "zh:85db08f3e1b27fda723b080bc5132069b6b7ba9699567cd44fb0a2207456a76c", + "zh:a84c043c96a01230e570163706f58c33ee59699fcc857d3db0f6e0b2a6b08bc6", + "zh:ad984516009930efc6ec465046287c6b293b6b219e3167aa4c0b900b903c6a50", + "zh:bd0114d45ec72134cf930a7619b70b0068e439759febba5717abb76219b85800", + "zh:f243a50dcf87687881972fcaba9226b4247588b6dc7368b0ef98168f643ee159", + ] +} + +provider "registry.terraform.io/ovh/ovh" { + version = "2.10.0" + hashes = [ + "h1:6CHM/tHZ7vAvQKtdqurs6ExO+46gpFooZ0zdaW74DKE=", + "zh:1582485c59b5e25fa407417de3040dfc31bfec3f9b884d51953f6625b930d2f6", + "zh:15b425716d5e05992cb1d68a49d58f0e9e0cbd7dbaa35ea9793404fa1ec45bed", + "zh:1c1547ff469c2f772d478f67d148d08b38468d43c9517b723b622a085625d949", + "zh:2491be291a8876da2dc1e71490428706cdca39002a1e89d10dd060474f59ce19", + "zh:2d9c7589764f838f04d38a87a0e6c9db6b560b6c5b510b69eabf2d67caa38d2b", + "zh:56c5b16a55dc4ac5f3eed69072e5ae74aafac2a4a8a84ba27fa06528320037cc", + "zh:629d2c7f709fc01adabba1c8b98ec7485dfebcc4b9f72f4bd4d36509166eb42c", + "zh:82f4b8b35a31a468d7a2a5aa4630f432ef64d9abfed8066afdaab0502886a72a", + "zh:84c5e65122efaee5e34c266cd750576969bd788c2bdbb804a7ffc08728ac3987", + "zh:85db08f3e1b27fda723b080bc5132069b6b7ba9699567cd44fb0a2207456a76c", + "zh:a84c043c96a01230e570163706f58c33ee59699fcc857d3db0f6e0b2a6b08bc6", + "zh:ad984516009930efc6ec465046287c6b293b6b219e3167aa4c0b900b903c6a50", + "zh:bd0114d45ec72134cf930a7619b70b0068e439759febba5717abb76219b85800", + "zh:f243a50dcf87687881972fcaba9226b4247588b6dc7368b0ef98168f643ee159", + ] +} diff --git a/ovh/cruxmea_fr.tf b/ovh/cruxmea_fr.tf new file mode 100644 index 0000000..e6e916a --- /dev/null +++ b/ovh/cruxmea_fr.tf @@ -0,0 +1,3 @@ +resource "ovh_domain_zone" "cruxmea_fr" { + ovh_subsidiary = null +} diff --git a/ovh/gugod_fr.tf b/ovh/gugod_fr.tf new file mode 100644 index 0000000..9f0e025 --- /dev/null +++ b/ovh/gugod_fr.tf @@ -0,0 +1,699 @@ +resource "ovh_domain_zone" "gugod_fr" { + ovh_subsidiary = null +} + +resource "ovh_domain_zone_record" "record_5369243950" { + fieldtype = "CNAME" + subdomain = "jacksparrow" + target = "home.gugod.fr." + ttl = 10800 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243967" { + fieldtype = "CNAME" + subdomain = "obsdstack" + target = "home.gugod.fr." + ttl = 10800 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243920" { + fieldtype = "A" + subdomain = "blackbeard" + target = "66.70.129.156" + ttl = 1800 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243973" { + fieldtype = "CNAME" + subdomain = "redmine-gw" + target = "home.gugod.fr." + ttl = 1800 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243988" { + fieldtype = "CNAME" + subdomain = "webmail" + target = "home.gugod.fr." + ttl = 10800 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243930" { + fieldtype = "CNAME" + subdomain = "coloc" + target = "home.gugod.fr." + ttl = 300 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243910" { + fieldtype = "SPF" + subdomain = "" + target = "v=spf1 include:_spf.mailersend.net include:spf.infomaniak.ch a:home.gugod.fr ip6:2a01:e0a:2d8:911::/64 -all" + ttl = 300 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243979" { + fieldtype = "CNAME" + subdomain = "shashin" + target = "home.gugod.fr." + ttl = 1800 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243943" { + fieldtype = "CNAME" + subdomain = "genealogie" + target = "home.gugod.fr." + ttl = 1800 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243990" { + fieldtype = "CNAME" + subdomain = "xmppupload" + target = "home.gugod.fr." + ttl = 300 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243959" { + fieldtype = "CNAME" + subdomain = "mlsend2._domainkey" + target = "mlsend2._domainkey.mailersend.net." + ttl = 300 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243966" { + fieldtype = "CNAME" + subdomain = "notify" + target = "home.gugod.fr." + ttl = 10800 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243955" { + fieldtype = "A" + subdomain = "mail" + target = "51.68.81.82" + ttl = 300 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243937" { + fieldtype = "CNAME" + subdomain = "dovecot" + target = "mail.gugod.fr." + ttl = 10800 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243977" { + fieldtype = "CNAME" + subdomain = "rss-bridge" + target = "home.gugod.fr." + ttl = 10800 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243921" { + fieldtype = "AAAA" + subdomain = "blackbeard" + target = "2607:5300:120:69b::156" + ttl = 1800 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243983" { + fieldtype = "CNAME" + subdomain = "syncv3" + target = "home.gugod.fr." + ttl = 300 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243912" { + fieldtype = "SRV" + subdomain = "_matrix-fed._tcp" + target = "10 0 443 matrix" + ttl = 300 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243991" { + fieldtype = "NS" + subdomain = "" + target = "ns12.ovh.net." + ttl = 0 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243970" { + fieldtype = "CNAME" + subdomain = "podcast" + target = "home.gugod.fr." + ttl = 1800 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243911" { + fieldtype = "DMARC" + subdomain = "_dmarc" + target = "v=DMARC1; p=reject; rua=mailto:dmarc@gugod.fr; ruf=mailto:dmarc@gugod.fr; fo=1; pct=100; adkim=s; aspf=s" + ttl = 300 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243963" { + fieldtype = "CNAME" + subdomain = "nas" + target = "home.gugod.fr." + ttl = 10800 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243956" { + fieldtype = "AAAA" + subdomain = "mail" + target = "2001:41d0:404:100::697" + ttl = 300 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243948" { + fieldtype = "CNAME" + subdomain = "hooks" + target = "home.gugod.fr." + ttl = 300 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243951" { + fieldtype = "CNAME" + subdomain = "kuma.am" + target = "automario.eu." + ttl = 300 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243957" { + fieldtype = "CNAME" + subdomain = "mailsersend" + target = "mailersend.net." + ttl = 10800 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243919" { + fieldtype = "CNAME" + subdomain = "barbossa" + target = "home.gugod.fr." + ttl = 300 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243934" { + fieldtype = "AAAA" + subdomain = "dav" + target = "2a01:e34:ec12:8880:dad3:85ff:fe78:d2c2" + ttl = 10800 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243928" { + fieldtype = "CNAME" + subdomain = "cigalpine" + target = "home.gugod.fr." + ttl = 1800 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243978" { + fieldtype = "CNAME" + subdomain = "s862686._domainkey" + target = "dkim.smtp2go.net." + ttl = 10800 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243931" { + fieldtype = "CNAME" + subdomain = "conference" + target = "home.gugod.fr." + ttl = 1800 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243929" { + fieldtype = "CNAME" + subdomain = "cloud" + target = "home.gugod.fr." + ttl = 300 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243954" { + fieldtype = "CNAME" + subdomain = "livres" + target = "home.gugod.fr." + ttl = 1800 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243947" { + fieldtype = "DKIM" + subdomain = "home20250113._domainkey" + target = "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx8UiFWGqDkiOFxOIsLAo/CYa5abKUrxW1zyd4SmNa1yAuGyEpjU2cLCT0gkKCvpXh0/rFtHEzCibsGBbek2lk5RkNCI+WBJyRAfXQS1xfKocljYlwFbGsftWQaIZOSjnLBcK9dExkDXII98MN5OA2PMqc9X2rT99kd7BwQOR1YbmumK8LBQZsn+J2GHf5XKd30OBkNzuHiwJ7rvAODYiUF7ci7zoglH5gN4VOnxIJM+uPunC4U/7PBafWFzjeTQj1ydfDI76xL6dnqJCftXsq/H+G7xgN5oj5VEIPAOzb9pqApq1hF2f5cvpJ7GsbrkPJj3OqnIiINfCsZdZVIMy7wIDAQAB" + ttl = 300 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243961" { + fieldtype = "A" + subdomain = "music" + target = "142.4.213.24" + ttl = 10800 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243987" { + fieldtype = "CNAME" + subdomain = "users" + target = "home.gugod.fr." + ttl = 300 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243989" { + fieldtype = "CNAME" + subdomain = "webmail2" + target = "home.gugod.fr." + ttl = 10800 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243962" { + fieldtype = "AAAA" + subdomain = "music" + target = "2607:5300:60:1218::1" + ttl = 10800 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243953" { + fieldtype = "CNAME" + subdomain = "link" + target = "track.smtp2go.net." + ttl = 10800 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243925" { + fieldtype = "AAAA" + subdomain = "build" + target = "2607:5300:120:69b::159" + ttl = 1800 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243941" { + fieldtype = "AAAA" + subdomain = "eri" + target = "2607:5300:120:69b::155" + ttl = 1800 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243935" { + fieldtype = "DKIM" + subdomain = "default._domainkey" + target = "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5jCy5qzDyQ35kbBXwXes1Hpjplsj75/Bm5I2u8JpGCous4O8TZpE6Z0g72iw1QBSxR+WQ4kyv0JRF27GgXMqlTwkioA38bfdxLPuLQQthhEK2y7itcH+cdzIC11R45AP8yF2dQ5m29XsaVos8CwUnMjmYALc/mPU3iYjPXQ+J+9KXNevaz47IpJ0ZEtgiScQw3WVrxi5G9XYkNNcydhScPHaVr0jrHJzQZ3zlC4BQA2rKM/N6hfEWankDX2vuSs3ff1TaZSYEI02JyNNOAPvp1jysFtuktxDyPsP183LeJoIKMuP3IwUjNWLlkN/FOy8bafQmZ7NtzuqMx2sqyfFhQIDAQAB" + ttl = 300 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243946" { + fieldtype = "A" + subdomain = "home" + target = "82.66.151.23" + ttl = 300 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243985" { + fieldtype = "CNAME" + subdomain = "ttrss" + target = "home.gugod.fr." + ttl = 1800 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243974" { + fieldtype = "CNAME" + subdomain = "rspamd" + target = "mail.gugod.fr." + ttl = 10800 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243908" { + fieldtype = "A" + subdomain = "" + target = "82.66.151.23" + ttl = 300 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243939" { + fieldtype = "CNAME" + subdomain = "em862686" + target = "return.smtp2go.net." + ttl = 10800 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243913" { + fieldtype = "SRV" + subdomain = "_matrix._tcp" + target = "10 0 443 matrix" + ttl = 300 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243936" { + fieldtype = "CNAME" + subdomain = "domo" + target = "home.gugod.fr." + ttl = 10800 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243927" { + fieldtype = "CNAME" + subdomain = "cicd" + target = "home.gugod.fr." + ttl = 10800 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243958" { + fieldtype = "A" + subdomain = "matrix" + target = "82.66.151.23" + ttl = 300 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243968" { + fieldtype = "DKIM" + subdomain = "pci._domainkey" + target = "v=DKIM1; k=rsa;p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1f2oI/je8A2mS/E0oUBttjof32q1AP6g9mB7egf/5OGlrRDWERKXUPygXv32K3c0p121dpA37Th6f8bSgKcYTKzKd8FPT7/N8jtHFPdPttpsfqQ/F/aYxzQx5YC5Os7ghnNT/5VzpQT6n/G+rrlNFiSs7WrfsbqRufaZoYgTS6wIDAQAB" + ttl = 300 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243949" { + fieldtype = "CNAME" + subdomain = "intendance" + target = "home.gugod.fr." + ttl = 1800 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243915" { + fieldtype = "SRV" + subdomain = "_xmpp-server._tcp" + target = "5 0 5269 home" + ttl = 300 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243917" { + fieldtype = "CNAME" + subdomain = "autoconfig" + target = "infomaniak.com." + ttl = 300 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243924" { + fieldtype = "A" + subdomain = "build" + target = "66.70.129.159" + ttl = 1800 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243933" { + fieldtype = "A" + subdomain = "dav" + target = "78.193.40.136" + ttl = 10800 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243916" { + fieldtype = "A" + subdomain = "amd64.oci" + target = "141.145.196.50" + ttl = 10800 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243909" { + fieldtype = "MX" + subdomain = "" + target = "5 mta-gw.infomaniak.ch." + ttl = 500 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243975" { + fieldtype = "A" + subdomain = "rss" + target = "142.4.213.24" + ttl = 10800 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243952" { + fieldtype = "CNAME" + subdomain = "lemmy" + target = "home.gugod.fr." + ttl = 300 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243981" { + fieldtype = "AAAA" + subdomain = "sondage" + target = "2607:5300:120:69b::156" + ttl = 1800 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243945" { + fieldtype = "CNAME" + subdomain = "git" + target = "home.gugod.fr." + ttl = 10800 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243964" { + fieldtype = "CNAME" + subdomain = "noel" + target = "home.gugod.fr." + ttl = 10800 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243942" { + fieldtype = "CNAME" + subdomain = "forge" + target = "home.gugod.fr." + ttl = 1800 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243969" { + fieldtype = "CNAME" + subdomain = "pluriel" + target = "home.gugod.fr." + ttl = 1800 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243932" { + fieldtype = "CNAME" + subdomain = "cuisine" + target = "home.gugod.fr." + ttl = 1800 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243980" { + fieldtype = "CNAME" + subdomain = "social" + target = "home.gugod.fr." + ttl = 10800 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243972" { + fieldtype = "CNAME" + subdomain = "rackham" + target = "home.gugod.fr." + ttl = 1800 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243960" { + fieldtype = "CNAME" + subdomain = "mumble" + target = "home.gugod.fr." + ttl = 1800 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243992" { + fieldtype = "NS" + subdomain = "" + target = "dns12.ovh.net." + ttl = 0 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243971" { + fieldtype = "CNAME" + subdomain = "pubsub" + target = "home.gugod.fr." + ttl = 1800 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243982" { + fieldtype = "CNAME" + subdomain = "static" + target = "home.gugod.fr." + ttl = 300 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243938" { + fieldtype = "CNAME" + subdomain = "element" + target = "home.gugod.fr." + ttl = 300 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243923" { + fieldtype = "CNAME" + subdomain = "budget" + target = "home.gugod.fr." + ttl = 1800 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243926" { + fieldtype = "DKIM" + subdomain = "chsqdtest._domainkey" + target = "v=DKIM1; k=rsa; p=MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAt4QnvHjOeI+diiGDyF8Osz2fRxffGtomhKXPniVhYJ5izvcDkeRntKgn6mv5Abva120YO7oR1BcC0gtkAE0e93NUNZqmubIR7dgjfIR+m2JdceX5hiiyyhRsADfpsujUMfqsfYgjL42ou2gm1qsLBGloztIDd55WPVCR0fmHfgJvXtB19wR6ftIkel1baTG8h7lLhybZQ1+J+uCDrxzUZl5okxTEudwURWZTdwU0SGo7km1/v6ki/Nu1S08uOxrinedKocwdszTNP9tW3yPXJSuq71aHPPta4nFIthEFs1/7pPph+kne9hgGD0Q0b4mumMV1XHAlhKGyGcrJRKm8ABw2gjbYlUcVrn9GZwosrJs/jiFtLj7VEVZzU6Bwdtft2kGbyNmyWr9R71G+L3dYs6gi4hnnJXIK8cVfRHbNl0ItdQL6t8Yvcrh0qpNuiCcj4IRepr9yQ0CfzLfWbtudQi+z7VIWxdHMR6bYR9vpVdHbGeQ7MLeHNhvbYLnvyftjAgMBAAE=" + ttl = 300 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243986" { + fieldtype = "CNAME" + subdomain = "turn" + target = "home.gugod.fr." + ttl = 1800 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243976" { + fieldtype = "AAAA" + subdomain = "rss" + target = "2607:5300:60:1218::1" + ttl = 10800 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243940" { + fieldtype = "A" + subdomain = "eri" + target = "66.70.129.155" + ttl = 1800 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243914" { + fieldtype = "SRV" + subdomain = "_xmpp-client._tcp" + target = "5 0 5222 home" + ttl = 300 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243944" { + fieldtype = "CNAME" + subdomain = "genrss" + target = "home.gugod.fr." + ttl = 1800 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243984" { + fieldtype = "CNAME" + subdomain = "trac" + target = "home.gugod.fr." + ttl = 1800 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5373948812" { + fieldtype = "TXT" + subdomain = "20250112._domainkey" + target = "\"v=DKIM1; t=s; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwXagsnezkcBvrst35dd9B8GD5BuzqA8txiyTv3lvMOiykMd0J2XrDd7N3iWiygubFkMTZt6WhPv73hbL4T1iv7C6uE8NUVPJBtI0r3+XbJVnLKQiBmYWUGU6DIBacbYLhgNPwTQrJ8sF72qhzkCzn1kmhfYasxHT5JVtwAe9MpNx7Fx8zKMxkcPRc2oVX0Kcn9CeYxA3BxJSr4jkjzyLd+JUAO9gky+TcnYHPTn8ZodApIopztCS1Ffc4I7rSe4+gvXCaRl+ZhMbKYpXCUqONzFXURRoJiVeWMTN9l0N4kHQQfSp9NZZceKhNcbi9QCWT6qvh/RKRyLxvUmFcssHFwIDAQAB\"" + ttl = 0 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243965" { + fieldtype = "CNAME" + subdomain = "noel-forum" + target = "home.gugod.fr." + ttl = 10800 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243922" { + fieldtype = "CNAME" + subdomain = "bt" + target = "home.gugod.fr." + ttl = 1800 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5373949161" { + fieldtype = "CNAME" + subdomain = "autodiscover" + target = "infomaniak.com." + ttl = 0 + zone = ovh_domain_zone.gugod_fr.name +} + +resource "ovh_domain_zone_record" "record_5369243918" { + fieldtype = "CNAME" + subdomain = "automation" + target = "home.gugod.fr." + ttl = 300 + zone = ovh_domain_zone.gugod_fr.name +} diff --git a/ovh/hashtagueule_fr.tf b/ovh/hashtagueule_fr.tf new file mode 100644 index 0000000..367ded0 --- /dev/null +++ b/ovh/hashtagueule_fr.tf @@ -0,0 +1,15 @@ +resource "ovh_domain_zone" "hashtagueule_fr" { + ovh_subsidiary = null +} + +resource "ovh_domain_name_servers" "name_servers" { + domain = ovh_domain_zone.hashtagueule_fr.name + + servers { + host = "james.ns.cloudflare.com" + } + + servers { + host = "kristin.ns.cloudflare.com" + } +} diff --git a/ovh/htgl_fr.tf b/ovh/htgl_fr.tf new file mode 100644 index 0000000..16c42c1 --- /dev/null +++ b/ovh/htgl_fr.tf @@ -0,0 +1,67 @@ +resource "ovh_domain_zone" "htgl_fr" { + ovh_subsidiary = null +} + +resource "ovh_domain_zone_record" "record_5352707027" { + fieldtype = "CNAME" + subdomain = "ovhmo-selector-2._domainkey" + target = "ovhmo-selector-2._domainkey.3879299.of.dkim.mail.ovh.net." + ttl = 0 + zone = ovh_domain_zone.htgl_fr.name +} + +resource "ovh_domain_zone_record" "record_5351106488" { + fieldtype = "SPF" + subdomain = "" + target = "v=spf1 include:mx.ovh.com ~all" + ttl = 0 + zone = ovh_domain_zone.htgl_fr.name +} + +resource "ovh_domain_zone_record" "record_5341803165" { + fieldtype = "NS" + subdomain = "" + target = "dns19.ovh.net." + ttl = 0 + zone = ovh_domain_zone.htgl_fr.name +} + +resource "ovh_domain_zone_record" "record_5352706980" { + fieldtype = "CNAME" + subdomain = "ovhmo-selector-1._domainkey" + target = "ovhmo-selector-1._domainkey.3879298.of.dkim.mail.ovh.net." + ttl = 0 + zone = ovh_domain_zone.htgl_fr.name +} + +resource "ovh_domain_zone_record" "record_5341803909" { + fieldtype = "MX" + subdomain = "" + target = "5 mx2.mail.ovh.net." + ttl = 0 + zone = ovh_domain_zone.htgl_fr.name +} + +resource "ovh_domain_zone_record" "record_5341803908" { + fieldtype = "MX" + subdomain = "" + target = "1 mx1.mail.ovh.net." + ttl = 0 + zone = ovh_domain_zone.htgl_fr.name +} + +resource "ovh_domain_zone_record" "record_5341803910" { + fieldtype = "MX" + subdomain = "" + target = "100 mx3.mail.ovh.net." + ttl = 0 + zone = ovh_domain_zone.htgl_fr.name +} + +resource "ovh_domain_zone_record" "record_5341803166" { + fieldtype = "NS" + subdomain = "" + target = "ns19.ovh.net." + ttl = 0 + zone = ovh_domain_zone.htgl_fr.name +} diff --git a/ovh/lullylit_fr.tf b/ovh/lullylit_fr.tf new file mode 100644 index 0000000..4490679 --- /dev/null +++ b/ovh/lullylit_fr.tf @@ -0,0 +1,3 @@ +resource "ovh_domain_zone" "lullylit_fr" { + ovh_subsidiary = null +} diff --git a/ovh/provider.tf b/ovh/provider.tf new file mode 100644 index 0000000..3c5f5ba --- /dev/null +++ b/ovh/provider.tf @@ -0,0 +1,14 @@ +terraform { + required_providers { + ovh = { + source = "ovh/ovh" + } + } +} + +provider "ovh" { + endpoint = "ovh-eu" + application_key = var.ovh_app_key + application_secret = var.ovh_app_secret + consumer_key = var.ovh_consumer_key +} diff --git a/ovh/records.txt b/ovh/records.txt new file mode 100644 index 0000000..636d8b4 --- /dev/null +++ b/ovh/records.txt @@ -0,0 +1,87 @@ +5369243908 +5369243909 +5369243910 +5369243911 +5369243912 +5369243913 +5369243914 +5369243915 +5369243916 +5369243917 +5369243918 +5369243919 +5369243920 +5369243921 +5369243922 +5369243923 +5369243924 +5369243925 +5369243926 +5369243927 +5369243928 +5369243929 +5369243930 +5369243931 +5369243932 +5369243933 +5369243934 +5369243935 +5369243936 +5369243937 +5369243938 +5369243939 +5369243940 +5369243941 +5369243942 +5369243943 +5369243944 +5369243945 +5369243946 +5369243947 +5369243948 +5369243949 +5369243950 +5369243951 +5369243952 +5369243953 +5369243954 +5369243955 +5369243956 +5369243957 +5369243958 +5369243959 +5369243960 +5369243961 +5369243962 +5369243963 +5369243964 +5369243965 +5369243966 +5369243967 +5369243968 +5369243969 +5369243970 +5369243971 +5369243972 +5369243973 +5369243974 +5369243975 +5369243976 +5369243977 +5369243978 +5369243979 +5369243980 +5369243981 +5369243982 +5369243983 +5369243984 +5369243985 +5369243986 +5369243987 +5369243988 +5369243989 +5369243990 +5369243991 +5369243992 +5373948812 +5373949161 diff --git a/ovh/scierie_org.tf b/ovh/scierie_org.tf new file mode 100644 index 0000000..1da9f9b --- /dev/null +++ b/ovh/scierie_org.tf @@ -0,0 +1,11 @@ +resource "ovh_domain_zone" "scierie_org" { + ovh_subsidiary = null +} + +resource "ovh_domain_zone_record" "website" { + fieldtype = "A" + subdomain = "@" + target = "82.66.151.23" + ttl = 300 + zone = ovh_domain_zone.scierie_org.name +} diff --git a/ovh/variables.tf b/ovh/variables.tf new file mode 100644 index 0000000..2322e20 --- /dev/null +++ b/ovh/variables.tf @@ -0,0 +1,14 @@ +variable ovh_app_key { + type = string + sensitive = true +} + +variable ovh_app_secret { + type = string + sensitive = true +} + +variable ovh_consumer_key { + type = string + sensitive = true +}