diff --git a/.gitignore b/.gitignore index 57543c53..76fc613b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,44 @@ -.terraform -terraform.tfstate -terraform.tfstate.backup +# terraform +# Local .terraform directories +.terraform/ + +# .tfstate files +*.tfstate +*.tfstate.* + +# Crash log files +crash.log +crash.*.log + +# Exclude all .tfvars files, which are likely to contain sensitive data, such as +# password, private keys, and other secrets. These should not be part of version +# control as they are data points which are potentially sensitive and subject +# to change depending on the environment. +*.tfvars +*.tfvars.json + +# Ignore override files as they are usually used to override resources locally and so +# are not checked in +override.tf +override.tf.json +*_override.tf +*_override.tf.json + +# Ignore transient lock info files created by terraform apply +.terraform.tfstate.lock.info + +# Include override files you do wish to add to version control using negated pattern +# !example_override.tf + +# Include tfplan files to ignore the plan output of command: terraform plan -out=tfplan +# example: *tfplan* + +# Ignore CLI configuration files +.terraformrc +terraform.rc + +# Optional: ignore graph output files generated by `terraform graph` +# *.dot # ignore direnv .envrc diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 35e4333a..e0565fd4 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,7 +1,7 @@ exclude: "^minotaur/" repos: - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v5.0.0 + rev: v6.0.0 hooks: - id: check-executables-have-shebangs - id: check-json @@ -10,7 +10,7 @@ repos: - id: trailing-whitespace - repo: https://github.com/antonbabenko/pre-commit-terraform - rev: v1.96.2 + rev: v1.105.0 hooks: - id: terraform_fmt args: @@ -18,7 +18,7 @@ repos: - --args=-write=false - repo: https://github.com/gruntwork-io/pre-commit - rev: v0.1.23 + rev: v0.1.30 hooks: - id: shellcheck diff --git a/terraform/azure_0DIN/.terraform.lock.hcl b/terraform/azure_0DIN/.terraform.lock.hcl deleted file mode 100644 index 02ae7b28..00000000 --- a/terraform/azure_0DIN/.terraform.lock.hcl +++ /dev/null @@ -1,66 +0,0 @@ -# This file is maintained automatically by "terraform init". -# Manual edits may be lost in future updates. - -provider "registry.terraform.io/azure/azapi" { - version = "2.7.0" - hashes = [ - "h1:9zm0JfFV0ytSrVU2keJhcOjYQmxc/Qe6rFufuXQh8qk=", - "h1:EbRurv5AIeJI6p/yT+SItZvut6AJyvke91i7cdoLdXc=", - "zh:190ffc8a59622307804c7530b589493bf38d8df38f83d992285dc5a9478e90d4", - "zh:3261c5429b33725eb22f87daa650a74ebb0a5ba1bda163e14f0305614a99fb81", - "zh:5addaacbcb06a927c55ff19e39faa32ecd623b7d5d7f058f46db8c38d4ec5d08", - "zh:6b642abe36c49d2f07f7290f4c9bdc1902e4e6f0252dfb2c41124713932f7409", - "zh:77edefaafa6754ddc61a8647e0474d529a355a93834f0b8966285ad42f11b312", - "zh:81376f1aed8f8166af35eaae8600ca9410e9479ecbf7ddd5cfaa39bdbb379cc0", - "zh:822156f8dadfe6ae3fb5f269129497f305eb90148fb3bf292ce7e9fe2951c410", - "zh:890ed09af73602d8d7357fb1aa95a8ab94be54423c1f1296d2dd45b5ab95d521", - "zh:b6a5edfa40f123b78663aef03f1634922bccd94383ea098d17794c5c5a45e4ba", - "zh:caf46fcde65e0e48797525583e62936986af4aa112f7bdc13442e42d9a91db68", - "zh:d6b2c97608a08cc93c477c9716fe10f909b3e911440a061ed5d0e92ae25468fe", - "zh:d9c9c7a5746bc22a39d08144797397ca8d55167b5dca3adbe8e97463bad60a45", - ] -} - -provider "registry.terraform.io/hashicorp/aws" { - version = "6.15.0" - hashes = [ - "h1:fHH8H5xoptQywVxVEX0vsWYeBeKR1uuQJmaOfZirr54=", - "h1:nP988jNuJMcQIB3HLzVK7EfLk5mgWmoWgOsdZDZpIOs=", - "zh:05a3d3b268761cd90cabd6106bff2bf27f480ab31305cd8ef8c749060855f84d", - "zh:0edae750ebaee784624e41b1e18fe6179a513d63c5bb8fbffab4631391092b4f", - "zh:17f3d20951662ffd6a610d9c7f44afa281db6f220685796147e4ffb6374cc8b8", - "zh:373a5446fca3aeff76bc5637babd732d6c78d9a66c82a828a1b009e8b21f33bc", - "zh:3ce69866d23b7d0bb5bfa06f5407147ed90713924cd65246858c414313a96ffc", - "zh:40ab0ca19845890df706784bb62d9fc9961a15c23c894f0e9f89b66524c4be55", - "zh:66bd5554c582c1f01c1a509eedf4a81c861065b48a49d1be3e3ea98a89b1f801", - "zh:798b66f98cc8d8ff9c6844a8238d2639f951ef3956d412fb438708ba3e4ae9e3", - "zh:943e5f918d3b470fbfb9ea1c8bcc3b97a8218a0842e77a0fdbac0941dd461cdf", - "zh:9b12af85486a96aedd8d7984b0ff811a4b42e3d88dad1a3fb4c0b580d04fa425", - "zh:9e95f017fae84d07d6cd627949715dbe8749d4d819c13c8b0bef1a679a26671b", - "zh:aac7e07599a17fccbdd21b092a7741534af5bec60b492299f2bcd3d7279be4a9", - "zh:c6292faaf05a6dc45e170f67f251aaad9b7e1159b5946219908dd11025f4146b", - "zh:df892b9eca5ecfb3c0a0e829511aea7e6b30f08b862c7fba9de67d2ae9729983", - "zh:fb8c5ff7296d01bf60d983c64f45969ec664a40bdd768d90a35a6afe7df1aeb7", - ] -} - -provider "registry.terraform.io/hashicorp/azurerm" { - version = "4.47.0" - constraints = "~> 4.0" - hashes = [ - "h1:8bklxAxgDiWJU/84N7GCTL+ZywTBleBPar+vphjdU4k=", - "h1:vYuNFnIf83/oCbyNqnxCjkWZNjVvxkDaoXyHiEb4PGU=", - "zh:07ade226563e3f1ba32d494847ab9f533b3dae8374fba7ef74cf327687e06d49", - "zh:0c3a44c2e7ae7c1c747ce7f72a4a1a1791a289d0e58a050b3aef340b5a691a37", - "zh:1fb4a2484af5a712a3385ea0adddb43b34099b4b7b4c4c9a9657e21fb2d30096", - "zh:6a10f37c806b8c54830246b129e7f22e152556a645c2933d25cf65ad288a6bb6", - "zh:78d5eefdd9e494defcb3c68d282b8f96630502cac21d1ea161f53cfe9bb483b3", - "zh:7db1967af8a60a41d956ea4e8eb3bb8c766a5efa10f7312c3b67159ecc546077", - "zh:aa2fd886b176bb940357c38b4a3612ae1d7e169da534ba132ea8cf96bf7eb298", - "zh:be710e8d8c73f8a4ee8d03465a23d9775540d99a2a20726399218d7ec17ce9d1", - "zh:d01f1df60f209801f490dd7882f10eaed9f1b9c07f288b9c98bf145898cae106", - "zh:d5fced275588ad7ff9c2a3760424ee92073cd96ea76a184251124b79a54f2e8c", - "zh:e7d2fead9efd643e9322e0a40c6088595aed0f42b561437f2d3e1495248b0d90", - "zh:edfb9610552691d6a36691dd6e27b0a0829d72d08eb41bc031a19d4dcf57a6e9", - ] -} diff --git a/terraform/azure_0DIN/finops.tf b/terraform/azure_0DIN/finops.tf index c8fad9a3..63fd51d1 100644 --- a/terraform/azure_0DIN/finops.tf +++ b/terraform/azure_0DIN/finops.tf @@ -9,14 +9,16 @@ resource "azapi_resource" "azure_zero_din_cost_export_actual" { status = "Active" recurrence = "Daily" recurrencePeriod = { - from = "2025-09-02T00:00:00.000Z" - to = "2050-02-01T00:00:00.000Z" + from = "2025-09-02T00:00:00Z" + to = "2050-02-01T00:00:00Z" } } - format = "Csv" - compressionMode = "None" + format = "Csv" + compressionMode = "None" + dataOverwriteBehavior = "CreateNewReport" deliveryInfo = { destination = { + type = "AzureBlob" resourceId = "/subscriptions/108d46d5-fe9b-4850-9a7d-8c914aa6c1f0/resourceGroups/rg-azure-cost-mgmt/providers/Microsoft.Storage/storageAccounts/safinopsdata" container = "cost-management" rootFolderPath = "azure_0din_daily_actual" @@ -28,6 +30,11 @@ resource "azapi_resource" "azure_zero_din_cost_export_actual" { timeframe = "MonthToDate" dataSet = { granularity = "Daily" + configuration = { + columns = [] + dataVersion = "2021-10-01" + filters = [] + } } } } @@ -45,14 +52,16 @@ resource "azapi_resource" "azure_zero_din_cost_export_amortized" { status = "Active" recurrence = "Daily" recurrencePeriod = { - from = "2025-09-02T00:00:00.000Z" - to = "2050-02-01T00:00:00.000Z" + from = "2025-09-02T00:00:00Z" + to = "2050-02-01T00:00:00Z" } } - format = "Csv" - compressionMode = "None" + format = "Csv" + compressionMode = "None" + dataOverwriteBehavior = "CreateNewReport" deliveryInfo = { destination = { + type = "AzureBlob" resourceId = "/subscriptions/108d46d5-fe9b-4850-9a7d-8c914aa6c1f0/resourceGroups/rg-azure-cost-mgmt/providers/Microsoft.Storage/storageAccounts/safinopsdata" container = "cost-management" rootFolderPath = "azure_0din_daily_amortized" @@ -64,6 +73,11 @@ resource "azapi_resource" "azure_zero_din_cost_export_amortized" { timeframe = "MonthToDate" dataSet = { granularity = "Daily" + configuration = { + columns = [] + dataVersion = "2021-10-01" + filters = [] + } } } } diff --git a/terraform/azure_fx_nonci/.terraform.lock.hcl b/terraform/azure_fx_nonci/.terraform.lock.hcl index 60fe1cd4..29e98182 100644 --- a/terraform/azure_fx_nonci/.terraform.lock.hcl +++ b/terraform/azure_fx_nonci/.terraform.lock.hcl @@ -2,64 +2,62 @@ # Manual edits may be lost in future updates. provider "registry.terraform.io/azure/azapi" { - version = "2.7.0" + version = "2.8.0" hashes = [ - "h1:9zm0JfFV0ytSrVU2keJhcOjYQmxc/Qe6rFufuXQh8qk=", - "h1:EbRurv5AIeJI6p/yT+SItZvut6AJyvke91i7cdoLdXc=", - "zh:190ffc8a59622307804c7530b589493bf38d8df38f83d992285dc5a9478e90d4", - "zh:3261c5429b33725eb22f87daa650a74ebb0a5ba1bda163e14f0305614a99fb81", - "zh:5addaacbcb06a927c55ff19e39faa32ecd623b7d5d7f058f46db8c38d4ec5d08", - "zh:6b642abe36c49d2f07f7290f4c9bdc1902e4e6f0252dfb2c41124713932f7409", - "zh:77edefaafa6754ddc61a8647e0474d529a355a93834f0b8966285ad42f11b312", - "zh:81376f1aed8f8166af35eaae8600ca9410e9479ecbf7ddd5cfaa39bdbb379cc0", - "zh:822156f8dadfe6ae3fb5f269129497f305eb90148fb3bf292ce7e9fe2951c410", - "zh:890ed09af73602d8d7357fb1aa95a8ab94be54423c1f1296d2dd45b5ab95d521", - "zh:b6a5edfa40f123b78663aef03f1634922bccd94383ea098d17794c5c5a45e4ba", - "zh:caf46fcde65e0e48797525583e62936986af4aa112f7bdc13442e42d9a91db68", - "zh:d6b2c97608a08cc93c477c9716fe10f909b3e911440a061ed5d0e92ae25468fe", - "zh:d9c9c7a5746bc22a39d08144797397ca8d55167b5dca3adbe8e97463bad60a45", + "h1:gJpLLWwcTgHPyyqDNaXZkCfFCAywGMAgVlqg7QHRRBk=", + "zh:048fa67ba123c6da65a7af12453328e36e1783cac1dbecc905d44ee7a1daa41c", + "zh:08dfb8c493a99aa54ea0c00f5d2e2389aac55d70b31bfc50a38e4ab61800aca8", + "zh:0d5bf53f356864567bf0855eb90b0b9aa4619b60fd1469210461ad88c0508a6f", + "zh:221cc52181d81bd741e8624ba9619ae20438f7a13828b72aa138a51b57bc1483", + "zh:51e7485e4f502cbbefe9b4ea991961eb9b19f41862593150905197bbb37cc6fb", + "zh:6e2d0986176bbeabdfa7dc3d1bf37d0a24549ebff29a3c9e8c5082e03cc38247", + "zh:87e46ceddcd3a4b7ed16f6b853c286840753d8af8ae8df0618ab5f29e950976b", + "zh:894998419943fadb3b85d1469665e9b7cdf492e6dc30907a77e32043e1d52b6a", + "zh:9f1efae3ad37510d947e7a27118a84bae55e35681b047d939781da96dd6ab6c7", + "zh:a201371f6c4c65b6976a8a360223c188ea91b7a33078fdd3a5f5f0ac7b438d35", + "zh:af3cc16bdfc545e61ce66449b9daaebfaa0c5e495777241c9414671a31e37ffa", + "zh:dbbb263a5f4c40624823fd3e68dc046b1f00325548393557384f0914a4694278", ] } provider "registry.terraform.io/hashicorp/aws" { - version = "6.21.0" + version = "6.30.0" hashes = [ - "h1:YfPC5vxQr014wnHI6tBqLxaHZcZQvkaVr19ipqXijdw=", - "h1:lhPGtXHoctW6UiIg2Av8d6Dk7mLl2J2ORR91ZUYzRVk=", - "zh:03b65e7d275a48bbe5de9aed2bcacf841ea0a85352744587729d179ceb227994", - "zh:1a50fc50365602769b6844c6eba920b5c6941161508c2ebd5c1a60f7577edd18", - "zh:1bcbf2575e462849baa01554be469ac68dbd43fe7929819ab43eb8a849605ce9", - "zh:28466d206962bfe00a32ecf0a4fa8553a5099521629fce010f486bae2a5f194f", - "zh:3627c098788e4fc3eb88271101717212f260aa117dad15e648bde6f2889d3536", - "zh:3f8ae239d1b60a5de3f089810728947c19854eff3c16f22c31e1c8b039dd93a0", - "zh:62201751f1fc46b6e2720e5d7ea6bab75b98a7eb1f4c3460c258106be5bc5495", - "zh:86c89c7dd5866fcb57c4d35e7ba6ec849caf70c2fdd2d23c9d05da919ec06c8b", - "zh:94186ec3908ce6e89eaf98767b6b1e40acfb258de9fe8c09f2a100eb5cfca597", + "h1:FNkicntiPhllPhKf8uBJTCQVY/cqN/sXa/LwE4Q0ML8=", + "zh:08fdcbb84b63739b758fd2f657303f495859ae15f2d6c3dbd642520cadb5f063", + "zh:1e69ff49906541cd511bdabcd4b2996a731b1642ba26b834cdac5432e8d5c557", + "zh:3aa23e3af1fb1dd0c025cb8fb73abdabd3f44b6a687a2a239947e7b0201b2f1f", + "zh:4b3b81e63eee913c874e8115d6a83d12bd9d7903446f91be15ba50c583c79549", + "zh:6e93a72d8770d73a4122dc82af33a020d58feeaca4e194a2685dce30dbcdce24", + "zh:74be722c9a64b95e06554cde0bef624084cc5a5ea7f3373f1975b7a4737d7074", + "zh:7d2acf6bc93be26504fd0e2965c77699a49549f74a767d0a81430d9e12d51358", "zh:9b12af85486a96aedd8d7984b0ff811a4b42e3d88dad1a3fb4c0b580d04fa425", - "zh:9d5863a6970735c9e428be91c301789c1e228a3105f711d77efe9c6056bb8295", - "zh:a94f9abe91656d68a0657d877665766931ae381825fa0b5121da26b3aa3ed15d", - "zh:df2b293078bb3d31b45bcc6e83c17e790dca40198b8d7069dc3e3b387146937f", - "zh:e7666954631899756e3bb428c64abcff1c94b7355f7d92eba29541c3d401e472", - "zh:f142320e9d4a5c663f6e9924abe05274bbbc4031700bac3387e0a67ec6c951ef", + "zh:aef629bc537b4cc0f64ece87bc2bfdb3e032a4d03a3f7f301f4c84ffdc2ac1ac", + "zh:b41dcc4a2c8e356d82d3f92629aab0e25849db106a43e7adf06d8c6bda7af4c9", + "zh:b4d7a9cf9ad5ac5dd07f4ea1e834b63f14e752f9aca9452cd99570fed16e0c12", + "zh:bcb20f64b9b4599fa746305bcff7eeee3da85029dc467f812f950cf45b519436", + "zh:e45a520b82a1d2d42360db1b93d8e96406a7548948ed528bac5018e1d731c5c6", + "zh:f743e4a0e10dc64669469e6a22e47012f07fb94587f5a1e8cf5431da4e878ae1", + "zh:fe1895af7dcc5815896f892b2593fe71b7f4f364b71d9487d6e8b10ef244c11c", ] } provider "registry.terraform.io/hashicorp/azurerm" { - version = "4.53.0" + version = "4.58.0" + constraints = "~> 4.0" hashes = [ - "h1:2vxxWvc0NGNATmVzeLnLYo3H211WX2J2j58K7Zmh2Mc=", - "h1:V8XZDYVb4OFrjHyzSrK1QFqhK6H7kdx6C6KXZ2X9Ljc=", - "zh:0233f792da995c6da36c078035c20d3b77802d6e97791bd805da0c968f56fc55", - "zh:039c287142819a495f04fd08e8a59d9b269e726492441a14a1a84a50be6350dc", - "zh:1ecab25ec946c185c2a84250683b593cf3e3e259d13e484e3d8c1c401dbf549b", - "zh:48e340354fab523d8537b55f0cd4689996e835aece9e5fedf71220aea35be1d3", - "zh:555874ee8395f300e631795ff90755fcc82b99df17a0a8ca7fcf8e9b738c03b7", - "zh:6318f8ec5645c6a6d5bd686d46fc95b821603a7a3c5020c0dcb82745f09d3dcb", + "h1:k0a/JkkhIEGrJ/oR7MZWbTZsUXHQ18JIPcVWBdW+V58=", + "zh:041c2a778ab4dd5a9af174b1d6f75409e5aabfc359cb386dfea3fb09e3f32709", + "zh:0a302531a61e7383acf99a6202d7984b2ea559306f45021381665c827a830d46", + "zh:0c69f132c7609683d907e87b89210a298d84c5b0121b62278949931bc54ca952", + "zh:0cadf48e9d2d9daed43212a3c9d886d7faaf68787b6e955456cbe4f43e4a17ec", + "zh:35ef4293d7731f6ff1f8bcba2c4529f987b7fac243c1ac1c154bbc02c9703c25", + "zh:3cb2679e1d56865e0ee0cf4c5d1404dbad0db42d11425e7bf0580a026cc64287", + "zh:4e56411f5119042d4962acff5c6d64224a49a69154ba80e6df63fa57b1e6d284", "zh:78d5eefdd9e494defcb3c68d282b8f96630502cac21d1ea161f53cfe9bb483b3", - "zh:864d5019de2c6085ff70494473661bfbc82804f658e0239c1e26bbf68ff902c4", - "zh:b8023f05509a43041b2170590eb89d6ac6b02e1c6d279f1779b3c37c43595c11", - "zh:c66d9b9d2833b771414e0f8666200e44e3674252e6f81e0a06f4d87abe566189", - "zh:d66d57f368f3b222a72d557d429a2b15c0e40efad204f821943f201abc4170c0", - "zh:dbf205033c99baeb11dac4919c7309d3eee31b19746f864bf169934fd307cb06", + "zh:ca4626411a111720c220f9849c7d2e1fcd5d380f56459e096d835a9dbf9e6e13", + "zh:d31c4e65dcb096974479b2d548fffb86fc9a5262aff1b01fe62ef442ce536c6b", + "zh:d9631602999c1853e53ee2c5aef7476e23c7787beddc3599c10dbaa4891ba166", + "zh:f31ba7c9341037ceb7d49467946c01b2b0930404ed1d5643c1451f734a613a03", ] } diff --git a/terraform/azure_fx_nonci/finops.tf b/terraform/azure_fx_nonci/finops.tf new file mode 100644 index 00000000..96169de5 --- /dev/null +++ b/terraform/azure_fx_nonci/finops.tf @@ -0,0 +1,47 @@ +resource "azapi_resource" "fx_nonci_cost_export_amortized" { + type = "Microsoft.CostManagement/exports@2025-03-01" + name = "fx_non_ci-amortized-cost" + parent_id = "/subscriptions/0a420ff9-bc77-4475-befc-a05071fc92ec" + + identity { + type = "SystemAssigned" + } + + body = { + properties = { + schedule = { + status = "Active" + recurrence = "Daily" + recurrencePeriod = { + from = "2024-10-01T00:00:00Z" + to = "2050-02-01T00:00:00Z" + } + } + format = "Csv" + compressionMode = "None" + dataOverwriteBehavior = "CreateNewReport" + exportDescription = "" + deliveryInfo = { + destination = { + type = "AzureBlob" + resourceId = "/subscriptions/108d46d5-fe9b-4850-9a7d-8c914aa6c1f0/resourceGroups/rg-azure-cost-mgmt/providers/Microsoft.Storage/storageAccounts/safinopsdata" + container = "cost-management" + rootFolderPath = "fx_non_ci_daily_amortized" + } + } + partitionData = true + definition = { + type = "AmortizedCost" + timeframe = "MonthToDate" + dataSet = { + granularity = "Daily" + configuration = { + columns = [] + dataVersion = "2021-10-01" + filters = [] + } + } + } + } + } +} diff --git a/terraform/azure_fxci/.terraform.lock.hcl b/terraform/azure_fxci/.terraform.lock.hcl index c5f1d9e1..6c715047 100644 --- a/terraform/azure_fxci/.terraform.lock.hcl +++ b/terraform/azure_fxci/.terraform.lock.hcl @@ -21,24 +21,24 @@ provider "registry.terraform.io/azure/azapi" { } provider "registry.terraform.io/hashicorp/aws" { - version = "6.28.0" + version = "6.30.0" hashes = [ - "h1:RwoFuX1yGMVaKJaUmXDKklEaQ/yUCEdt5k2kz+/g08c=", - "zh:0ba0d5eb6e0c6a933eb2befe3cdbf22b58fbc0337bf138f95bf0e8bb6e6df93e", - "zh:23eacdd4e6db32cf0ff2ce189461bdbb62e46513978d33c5de4decc4670870ec", - "zh:307b06a15fc00a8e6fd243abde2cbe5112e9d40371542665b91bec1018dd6e3c", - "zh:37a02d5b45a9d050b9642c9e2e268297254192280df72f6e46641daca52e40ec", - "zh:3da866639f07d92e734557d673092719c33ede80f4276c835bf7f231a669aa33", - "zh:480060b0ba310d0f6b6a14d60b276698cb103c48fd2f7e2802ae47c963995ec6", - "zh:57796453455c20db80d9168edbf125bf6180e1aae869de1546a2be58e4e405ec", - "zh:69139cba772d4df8de87598d8d8a2b1b4b254866db046c061dccc79edb14e6b9", - "zh:7312763259b859ff911c5452ca8bdf7d0be6231c5ea0de2df8f09d51770900ac", - "zh:8d2d6f4015d3c155d7eb53e36f019a729aefb46ebfe13f3a637327d3a1402ecc", - "zh:94ce589275c77308e6253f607de96919b840c2dd36c44aa798f693c9dd81af42", + "h1:FNkicntiPhllPhKf8uBJTCQVY/cqN/sXa/LwE4Q0ML8=", + "zh:08fdcbb84b63739b758fd2f657303f495859ae15f2d6c3dbd642520cadb5f063", + "zh:1e69ff49906541cd511bdabcd4b2996a731b1642ba26b834cdac5432e8d5c557", + "zh:3aa23e3af1fb1dd0c025cb8fb73abdabd3f44b6a687a2a239947e7b0201b2f1f", + "zh:4b3b81e63eee913c874e8115d6a83d12bd9d7903446f91be15ba50c583c79549", + "zh:6e93a72d8770d73a4122dc82af33a020d58feeaca4e194a2685dce30dbcdce24", + "zh:74be722c9a64b95e06554cde0bef624084cc5a5ea7f3373f1975b7a4737d7074", + "zh:7d2acf6bc93be26504fd0e2965c77699a49549f74a767d0a81430d9e12d51358", "zh:9b12af85486a96aedd8d7984b0ff811a4b42e3d88dad1a3fb4c0b580d04fa425", - "zh:adaceec6a1bf4f5df1e12bd72cf52b72087c72efed078aef636f8988325b1a8b", - "zh:d37be1ce187d94fd9df7b13a717c219964cd835c946243f096c6b230cdfd7e92", - "zh:fe6205b5ca2ff36e68395cb8d3ae10a3728f405cdbcd46b206a515e1ebcf17a1", + "zh:aef629bc537b4cc0f64ece87bc2bfdb3e032a4d03a3f7f301f4c84ffdc2ac1ac", + "zh:b41dcc4a2c8e356d82d3f92629aab0e25849db106a43e7adf06d8c6bda7af4c9", + "zh:b4d7a9cf9ad5ac5dd07f4ea1e834b63f14e752f9aca9452cd99570fed16e0c12", + "zh:bcb20f64b9b4599fa746305bcff7eeee3da85029dc467f812f950cf45b519436", + "zh:e45a520b82a1d2d42360db1b93d8e96406a7548948ed528bac5018e1d731c5c6", + "zh:f743e4a0e10dc64669469e6a22e47012f07fb94587f5a1e8cf5431da4e878ae1", + "zh:fe1895af7dcc5815896f892b2593fe71b7f4f364b71d9487d6e8b10ef244c11c", ] } @@ -63,20 +63,20 @@ provider "registry.terraform.io/hashicorp/azurerm" { } provider "registry.terraform.io/hashicorp/local" { - version = "2.6.1" + version = "2.6.2" hashes = [ - "h1:DbiR/D2CPigzCGweYIyJH0N0x04oyI5xiZ9wSW/s3kQ=", - "zh:10050d08f416de42a857e4b6f76809aae63ea4ec6f5c852a126a915dede814b4", - "zh:2df2a3ebe9830d4759c59b51702e209fe053f47453cb4688f43c063bac8746b7", - "zh:2e759568bcc38c86ca0e43701d34cf29945736fdc8e429c5b287ddc2703c7b18", - "zh:6a62a34e48500ab4aea778e355e162ebde03260b7a9eb9edc7e534c84fbca4c6", - "zh:74373728ba32a1d5450a3a88ac45624579e32755b086cd4e51e88d9aca240ef6", + "h1:XaUyyJIDfkkQQ16UopuefD25sfQA6gc653nFGNP6wG0=", + "zh:018382c416d271bf89be6fba6550b4fae42e31a4d26a421b3c92f1d589b1b086", + "zh:107fd03879eb10d26dcaf5a68d98e4ca7d2488e43c01868e27698d248c1f42a2", + "zh:4854946830189100e6a36b8facf028244a7a54baf6e9f5a1a68d11669d8ee597", + "zh:4a23aee49842043cb3305f62fa04c3231eb5e6250a439b9a895d8c928a4408a3", + "zh:5becec4296cd32ac2b75198ed2de9f716a4c2094ee59d85244d589ae025dfdb6", + "zh:619822fb681d7d44c13c1d5ca3d5c85978a8dc8bca18f21bcb80e71816c3f6cd", + "zh:6f781cdfde321d530d9b0e4b03ee92a3ec16c82951ab22346ef647d84db321a1", "zh:78d5eefdd9e494defcb3c68d282b8f96630502cac21d1ea161f53cfe9bb483b3", - "zh:8dddae588971a996f622e7589cd8b9da7834c744ac12bfb59c97fa77ded95255", - "zh:946f82f66353bb97aefa8d95c4ca86db227f9b7c50b82415289ac47e4e74d08d", - "zh:e9a5c09e6f35e510acf15b666fd0b34a30164cecdcd81ce7cda0f4b2dade8d91", - "zh:eafe5b873ef42b32feb2f969c38ff8652507e695620cbaf03b9db714bee52249", - "zh:ec146289fa27650c9d433bb5c7847379180c0b7a323b1b94e6e7ad5d2a7dbe71", - "zh:fc882c35ce05631d76c0973b35adde26980778fc81d9da81a2fade2b9d73423b", + "zh:8418a84aeed1b31796ffb8c61749406b25e764a4f5a53de29b7ba7c2619692e3", + "zh:ab28bd1283712a9720a40c50cc85baffce0f2c23266144602ebbbf1a6a2bccda", + "zh:b848cae1d5d1103ba47bd650f27802f316f7bc0dc54df82c514d74269bfcdca5", + "zh:bd467d695311c19eec13712792934c19e1b33f351e0cc1fffa08ce404b7d503d", ] } diff --git a/terraform/azure_fxci/finops.tf b/terraform/azure_fxci/finops.tf index 2c010ce7..cbf22e33 100644 --- a/terraform/azure_fxci/finops.tf +++ b/terraform/azure_fxci/finops.tf @@ -1,7 +1,3 @@ -## Creating one storage account for all cost data exports -## TODO: both FXCI trusted and untrusted sub exports need to be defined in Terraform -## Both are set up and are working as needed - resource "azurerm_resource_group" "this" { name = "rg-azure-cost-mgmt" location = "East US" @@ -25,3 +21,91 @@ resource "azurerm_storage_account" "this" { }) ) } + +resource "azapi_resource" "fxci_cost_export_actual" { + type = "Microsoft.CostManagement/exports@2025-03-01" + name = "fxci_daily_actual" + parent_id = "/subscriptions/108d46d5-fe9b-4850-9a7d-8c914aa6c1f0" + + identity { + type = "SystemAssigned" + } + + body = { + properties = { + schedule = { + status = "Active" + recurrence = "Daily" + recurrencePeriod = { + from = "2024-03-21T00:00:00Z" + to = "2050-02-01T00:00:00Z" + } + } + format = "Csv" + compressionMode = "None" + dataOverwriteBehavior = "CreateNewReport" + deliveryInfo = { + destination = { + resourceId = azurerm_storage_account.this.id + container = "cost-management" + rootFolderPath = "fxci_daily" + } + } + partitionData = true + definition = { + type = "ActualCost" + timeframe = "MonthToDate" + dataSet = { + granularity = "Daily" + configuration = { + columns = [] + } + } + } + } + } +} + +resource "azapi_resource" "fxci_cost_export_amortized" { + type = "Microsoft.CostManagement/exports@2025-03-01" + name = "fxci_daily_amortized" + parent_id = "/subscriptions/108d46d5-fe9b-4850-9a7d-8c914aa6c1f0" + + identity { + type = "SystemAssigned" + } + + body = { + properties = { + schedule = { + status = "Active" + recurrence = "Daily" + recurrencePeriod = { + from = "2024-03-21T00:00:00Z" + to = "2050-02-01T00:00:00Z" + } + } + format = "Csv" + compressionMode = "None" + dataOverwriteBehavior = "CreateNewReport" + deliveryInfo = { + destination = { + resourceId = azurerm_storage_account.this.id + container = "cost-management" + rootFolderPath = "fxci_daily" + } + } + partitionData = true + definition = { + type = "AmortizedCost" + timeframe = "MonthToDate" + dataSet = { + granularity = "Daily" + configuration = { + columns = [] + } + } + } + } + } +} diff --git a/terraform/azure_infrasec/.terraform.lock.hcl b/terraform/azure_infrasec/.terraform.lock.hcl index c6dad9d1..9de39659 100644 --- a/terraform/azure_infrasec/.terraform.lock.hcl +++ b/terraform/azure_infrasec/.terraform.lock.hcl @@ -2,93 +2,88 @@ # Manual edits may be lost in future updates. provider "registry.terraform.io/azure/azapi" { - version = "2.7.0" + version = "2.8.0" hashes = [ - "h1:9zm0JfFV0ytSrVU2keJhcOjYQmxc/Qe6rFufuXQh8qk=", - "h1:EbRurv5AIeJI6p/yT+SItZvut6AJyvke91i7cdoLdXc=", - "zh:190ffc8a59622307804c7530b589493bf38d8df38f83d992285dc5a9478e90d4", - "zh:3261c5429b33725eb22f87daa650a74ebb0a5ba1bda163e14f0305614a99fb81", - "zh:5addaacbcb06a927c55ff19e39faa32ecd623b7d5d7f058f46db8c38d4ec5d08", - "zh:6b642abe36c49d2f07f7290f4c9bdc1902e4e6f0252dfb2c41124713932f7409", - "zh:77edefaafa6754ddc61a8647e0474d529a355a93834f0b8966285ad42f11b312", - "zh:81376f1aed8f8166af35eaae8600ca9410e9479ecbf7ddd5cfaa39bdbb379cc0", - "zh:822156f8dadfe6ae3fb5f269129497f305eb90148fb3bf292ce7e9fe2951c410", - "zh:890ed09af73602d8d7357fb1aa95a8ab94be54423c1f1296d2dd45b5ab95d521", - "zh:b6a5edfa40f123b78663aef03f1634922bccd94383ea098d17794c5c5a45e4ba", - "zh:caf46fcde65e0e48797525583e62936986af4aa112f7bdc13442e42d9a91db68", - "zh:d6b2c97608a08cc93c477c9716fe10f909b3e911440a061ed5d0e92ae25468fe", - "zh:d9c9c7a5746bc22a39d08144797397ca8d55167b5dca3adbe8e97463bad60a45", + "h1:gJpLLWwcTgHPyyqDNaXZkCfFCAywGMAgVlqg7QHRRBk=", + "zh:048fa67ba123c6da65a7af12453328e36e1783cac1dbecc905d44ee7a1daa41c", + "zh:08dfb8c493a99aa54ea0c00f5d2e2389aac55d70b31bfc50a38e4ab61800aca8", + "zh:0d5bf53f356864567bf0855eb90b0b9aa4619b60fd1469210461ad88c0508a6f", + "zh:221cc52181d81bd741e8624ba9619ae20438f7a13828b72aa138a51b57bc1483", + "zh:51e7485e4f502cbbefe9b4ea991961eb9b19f41862593150905197bbb37cc6fb", + "zh:6e2d0986176bbeabdfa7dc3d1bf37d0a24549ebff29a3c9e8c5082e03cc38247", + "zh:87e46ceddcd3a4b7ed16f6b853c286840753d8af8ae8df0618ab5f29e950976b", + "zh:894998419943fadb3b85d1469665e9b7cdf492e6dc30907a77e32043e1d52b6a", + "zh:9f1efae3ad37510d947e7a27118a84bae55e35681b047d939781da96dd6ab6c7", + "zh:a201371f6c4c65b6976a8a360223c188ea91b7a33078fdd3a5f5f0ac7b438d35", + "zh:af3cc16bdfc545e61ce66449b9daaebfaa0c5e495777241c9414671a31e37ffa", + "zh:dbbb263a5f4c40624823fd3e68dc046b1f00325548393557384f0914a4694278", ] } provider "registry.terraform.io/hashicorp/aws" { - version = "6.21.0" + version = "6.30.0" hashes = [ - "h1:YfPC5vxQr014wnHI6tBqLxaHZcZQvkaVr19ipqXijdw=", - "h1:lhPGtXHoctW6UiIg2Av8d6Dk7mLl2J2ORR91ZUYzRVk=", - "zh:03b65e7d275a48bbe5de9aed2bcacf841ea0a85352744587729d179ceb227994", - "zh:1a50fc50365602769b6844c6eba920b5c6941161508c2ebd5c1a60f7577edd18", - "zh:1bcbf2575e462849baa01554be469ac68dbd43fe7929819ab43eb8a849605ce9", - "zh:28466d206962bfe00a32ecf0a4fa8553a5099521629fce010f486bae2a5f194f", - "zh:3627c098788e4fc3eb88271101717212f260aa117dad15e648bde6f2889d3536", - "zh:3f8ae239d1b60a5de3f089810728947c19854eff3c16f22c31e1c8b039dd93a0", - "zh:62201751f1fc46b6e2720e5d7ea6bab75b98a7eb1f4c3460c258106be5bc5495", - "zh:86c89c7dd5866fcb57c4d35e7ba6ec849caf70c2fdd2d23c9d05da919ec06c8b", - "zh:94186ec3908ce6e89eaf98767b6b1e40acfb258de9fe8c09f2a100eb5cfca597", + "h1:FNkicntiPhllPhKf8uBJTCQVY/cqN/sXa/LwE4Q0ML8=", + "zh:08fdcbb84b63739b758fd2f657303f495859ae15f2d6c3dbd642520cadb5f063", + "zh:1e69ff49906541cd511bdabcd4b2996a731b1642ba26b834cdac5432e8d5c557", + "zh:3aa23e3af1fb1dd0c025cb8fb73abdabd3f44b6a687a2a239947e7b0201b2f1f", + "zh:4b3b81e63eee913c874e8115d6a83d12bd9d7903446f91be15ba50c583c79549", + "zh:6e93a72d8770d73a4122dc82af33a020d58feeaca4e194a2685dce30dbcdce24", + "zh:74be722c9a64b95e06554cde0bef624084cc5a5ea7f3373f1975b7a4737d7074", + "zh:7d2acf6bc93be26504fd0e2965c77699a49549f74a767d0a81430d9e12d51358", "zh:9b12af85486a96aedd8d7984b0ff811a4b42e3d88dad1a3fb4c0b580d04fa425", - "zh:9d5863a6970735c9e428be91c301789c1e228a3105f711d77efe9c6056bb8295", - "zh:a94f9abe91656d68a0657d877665766931ae381825fa0b5121da26b3aa3ed15d", - "zh:df2b293078bb3d31b45bcc6e83c17e790dca40198b8d7069dc3e3b387146937f", - "zh:e7666954631899756e3bb428c64abcff1c94b7355f7d92eba29541c3d401e472", - "zh:f142320e9d4a5c663f6e9924abe05274bbbc4031700bac3387e0a67ec6c951ef", + "zh:aef629bc537b4cc0f64ece87bc2bfdb3e032a4d03a3f7f301f4c84ffdc2ac1ac", + "zh:b41dcc4a2c8e356d82d3f92629aab0e25849db106a43e7adf06d8c6bda7af4c9", + "zh:b4d7a9cf9ad5ac5dd07f4ea1e834b63f14e752f9aca9452cd99570fed16e0c12", + "zh:bcb20f64b9b4599fa746305bcff7eeee3da85029dc467f812f950cf45b519436", + "zh:e45a520b82a1d2d42360db1b93d8e96406a7548948ed528bac5018e1d731c5c6", + "zh:f743e4a0e10dc64669469e6a22e47012f07fb94587f5a1e8cf5431da4e878ae1", + "zh:fe1895af7dcc5815896f892b2593fe71b7f4f364b71d9487d6e8b10ef244c11c", ] } provider "registry.terraform.io/hashicorp/azuread" { - version = "3.5.0" + version = "3.7.0" hashes = [ - "h1:MqvSXUPNy/kAbRa6PIirpK2A+4yrNtlzIwk934XODUU=", - "h1:q44THdVP073qIa9gMkrsWFCGyGXfJCLEwRNhHqmKRos=", - "zh:0cda57e87a296f24f1c085b0343a8d6759cb539a7804f874d7a04bf46ab13c48", - "zh:11723a9bc589c763e2ffc76e6829c968cc01cf9c71b2cfaf56f8054289f8e29d", + "h1:+DHwtiYCOYEhLMot5KQ0hm+zopmUJwPJ/gJiXVfdNOs=", + "zh:01114beb07eb8415a563ca80a513e7fd11fd6f0670bdd960e9092e58464ab2b7", + "zh:1460c790ca28cc11c3efd4abec076fc5cdd4ae1cc654a45c69e10ca064e0a611", + "zh:161b6dd82cf279e7ac7a31c404f2ace491a5a9e7ec382ace91de2fd18f8c190b", "zh:1c3e89cf19118fc07d7b04257251fc9897e722c16e0a0df7b07fcd261f8c12e7", - "zh:1e5b766bab10c45f09dab18d51ff984016b4ad39cd45a214ec7d62943bbe812a", - "zh:30fb02a2e75210b835673bbf7f8a7f5f0ffefb51bb7acc93724f81e8e5990743", - "zh:3c2436989467839a3183a62338af0f191ed701f4feaacff5a4b9f216b7f73bd5", - "zh:4550b15ec03bd6be78a99743a9ffb527c3651a66083bc6eee8ca39f3e991416b", - "zh:529b46d0d7fcb40d876e2d501c456a11afb9d6172b2def3e61a08471250b42e5", - "zh:5dd2732534bedbe594c0e1ed8bf43efb7fe1821ad96daa5ed6a84079337ae2d9", - "zh:ac2c837ef2572ec82e0d81e9e2a157a4bd2baa4198f03c58610d6394af8808bb", - "zh:b1c807ec370df6a2079af8891d3b83c38af73191ceb1387ba6d88b05641ce3e7", - "zh:edfff8820f1d618ebfb0279d78edd4c97163363a3e96caee97c3582bbb4c606d", + "zh:2eff0bea92c48be0221863ebf7752f491232088f4ec3cbe4da2ebf9f478fed1f", + "zh:69a689198fcac054da30fea6a8abce2f12b667f6f327c9bb388f2c307ee782fd", + "zh:6f5acf42d71a2f5157c54e67b2db9b080c4ebb27b812112c0c84241e66d94803", + "zh:8e0a58ff2c21aff372c66c679db48578be48e99f5cf6727f082cf4b629dbda6c", + "zh:9c88cc06ba7ee1f6e6b43af7e223c4d107fb77e5a984f1441fffb00c3693537f", + "zh:e8656e8143baac71029857c72899f8503cede41f2559c89ce29d21c0436c96fc", + "zh:e8e21913956a3f043c0e65cc95278bdc82f62ff33fd75a56b1919bd63fd14f8a", + "zh:f7f213dd61d1c75b8397d97660cf329870a241e88ec6e0dc07c60725d975252e", ] } provider "registry.terraform.io/hashicorp/azurerm" { - version = "4.42.0" + version = "4.58.0" constraints = "~> 4.0" hashes = [ - "h1:DovzaaLoj6cHnQjSkNx6QLXo4QjYAstTsopxGmVN3pc=", - "h1:LnrrPRqfNMQ1ZyN3D7O/UPmnSi8cNCJJOJWvx/Fsxz0=", - "zh:12d3ff44227df98a03afab7ef01d60de310de470489c0e4dce58577183c79a98", - "zh:22146c904bbf9cb12d5165e12234d3a8d317591bff873b3bd899a27dd8887423", - "zh:587b250af98aa49f6cd5d591b0131a579afe09500b69681f4f50c9872a12ba32", - "zh:6747ffeb90c35d40469b69eda0353a0e441984829cbee998b23f768421322429", + "h1:k0a/JkkhIEGrJ/oR7MZWbTZsUXHQ18JIPcVWBdW+V58=", + "zh:041c2a778ab4dd5a9af174b1d6f75409e5aabfc359cb386dfea3fb09e3f32709", + "zh:0a302531a61e7383acf99a6202d7984b2ea559306f45021381665c827a830d46", + "zh:0c69f132c7609683d907e87b89210a298d84c5b0121b62278949931bc54ca952", + "zh:0cadf48e9d2d9daed43212a3c9d886d7faaf68787b6e955456cbe4f43e4a17ec", + "zh:35ef4293d7731f6ff1f8bcba2c4529f987b7fac243c1ac1c154bbc02c9703c25", + "zh:3cb2679e1d56865e0ee0cf4c5d1404dbad0db42d11425e7bf0580a026cc64287", + "zh:4e56411f5119042d4962acff5c6d64224a49a69154ba80e6df63fa57b1e6d284", "zh:78d5eefdd9e494defcb3c68d282b8f96630502cac21d1ea161f53cfe9bb483b3", - "zh:8013da170da563c6b3dbd8c48cba2e7b1b74b9e21452f875b89f89c0d6c650c1", - "zh:8c7c7db9010f7cf08f3b8d4ac74662255c5f36cc6ad8c83100d6dac4181420f0", - "zh:8d933a38367c12fd81aab42d6237dbb3409f9adbc849b498a68ee6878dd0ece7", - "zh:b348a3178c23ce1a61e8a1936dad355ce6b8a3ea2d8cc4a3c01961fbd07cd429", - "zh:cd1fb187ff34e1ec3c134ee001344f2fff8bf5ced1690dfe1a7662767ad3c31e", - "zh:d03889f387a62ebbd40035b9e319fcdbcac13ab8335eb9827a74da3183678974", - "zh:f0f08e5adc42e27b1b24cc8530cdb6c9b9905847e90c80626cd8af6853675aef", + "zh:ca4626411a111720c220f9849c7d2e1fcd5d380f56459e096d835a9dbf9e6e13", + "zh:d31c4e65dcb096974479b2d548fffb86fc9a5262aff1b01fe62ef442ce536c6b", + "zh:d9631602999c1853e53ee2c5aef7476e23c7787beddc3599c10dbaa4891ba166", + "zh:f31ba7c9341037ceb7d49467946c01b2b0930404ed1d5643c1451f734a613a03", ] } provider "registry.terraform.io/hashicorp/time" { version = "0.13.1" hashes = [ - "h1:+W+DMrVoVnoXo3f3M4W+OpZbkCrUn6PnqDF33D2Cuf0=", "h1:ZT5ppCNIModqk3iOkVt5my8b8yBHmDpl663JtXAIRqM=", "zh:02cb9aab1002f0f2a94a4f85acec8893297dc75915f7404c165983f720a54b74", "zh:04429b2b31a492d19e5ecf999b116d396dac0b24bba0d0fb19ecaefe193fdb8f", diff --git a/terraform/azure_infrasec/finops.tf b/terraform/azure_infrasec/finops.tf index ecaf17e5..de25762b 100644 --- a/terraform/azure_infrasec/finops.tf +++ b/terraform/azure_infrasec/finops.tf @@ -1,4 +1,3 @@ -## Azure Cost Exports for Azure Infrastructure Security Subscription resource "azapi_resource" "azure_infrasec_cost_export_actual" { type = "Microsoft.CostManagement/exports@2025-03-01" name = "azure-infrasec_actual" @@ -10,14 +9,16 @@ resource "azapi_resource" "azure_infrasec_cost_export_actual" { status = "Active" recurrence = "Daily" recurrencePeriod = { - from = "2025-09-02T00:00:00.000Z" - to = "2050-02-01T00:00:00.000Z" + from = "2025-09-02T00:00:00Z" + to = "2050-02-01T00:00:00Z" } } - format = "Csv" - compressionMode = "None" + format = "Csv" + compressionMode = "None" + dataOverwriteBehavior = "CreateNewReport" deliveryInfo = { destination = { + type = "AzureBlob" resourceId = "/subscriptions/108d46d5-fe9b-4850-9a7d-8c914aa6c1f0/resourceGroups/rg-azure-cost-mgmt/providers/Microsoft.Storage/storageAccounts/safinopsdata" container = "cost-management" rootFolderPath = "azure_infrasec_daily_actual" @@ -29,6 +30,11 @@ resource "azapi_resource" "azure_infrasec_cost_export_actual" { timeframe = "MonthToDate" dataSet = { granularity = "Daily" + configuration = { + columns = [] + dataVersion = "2021-10-01" + filters = [] + } } } } @@ -46,14 +52,16 @@ resource "azapi_resource" "azure_infrasec_cost_export_amortized" { status = "Active" recurrence = "Daily" recurrencePeriod = { - from = "2025-09-02T00:00:00.000Z" - to = "2050-02-01T00:00:00.000Z" + from = "2025-09-02T00:00:00Z" + to = "2050-02-01T00:00:00Z" } } - format = "Csv" - compressionMode = "None" + format = "Csv" + compressionMode = "None" + dataOverwriteBehavior = "CreateNewReport" deliveryInfo = { destination = { + type = "AzureBlob" resourceId = "/subscriptions/108d46d5-fe9b-4850-9a7d-8c914aa6c1f0/resourceGroups/rg-azure-cost-mgmt/providers/Microsoft.Storage/storageAccounts/safinopsdata" container = "cost-management" rootFolderPath = "azure_infrasec_daily_amortized" @@ -65,6 +73,11 @@ resource "azapi_resource" "azure_infrasec_cost_export_amortized" { timeframe = "MonthToDate" dataSet = { granularity = "Daily" + configuration = { + columns = [] + dataVersion = "2021-10-01" + filters = [] + } } } } diff --git a/terraform/azure_tceng/.terraform.lock.hcl b/terraform/azure_tceng/.terraform.lock.hcl index ef9cda78..29e98182 100644 --- a/terraform/azure_tceng/.terraform.lock.hcl +++ b/terraform/azure_tceng/.terraform.lock.hcl @@ -2,61 +2,62 @@ # Manual edits may be lost in future updates. provider "registry.terraform.io/azure/azapi" { - version = "2.7.0" + version = "2.8.0" hashes = [ - "h1:9zm0JfFV0ytSrVU2keJhcOjYQmxc/Qe6rFufuXQh8qk=", - "zh:190ffc8a59622307804c7530b589493bf38d8df38f83d992285dc5a9478e90d4", - "zh:3261c5429b33725eb22f87daa650a74ebb0a5ba1bda163e14f0305614a99fb81", - "zh:5addaacbcb06a927c55ff19e39faa32ecd623b7d5d7f058f46db8c38d4ec5d08", - "zh:6b642abe36c49d2f07f7290f4c9bdc1902e4e6f0252dfb2c41124713932f7409", - "zh:77edefaafa6754ddc61a8647e0474d529a355a93834f0b8966285ad42f11b312", - "zh:81376f1aed8f8166af35eaae8600ca9410e9479ecbf7ddd5cfaa39bdbb379cc0", - "zh:822156f8dadfe6ae3fb5f269129497f305eb90148fb3bf292ce7e9fe2951c410", - "zh:890ed09af73602d8d7357fb1aa95a8ab94be54423c1f1296d2dd45b5ab95d521", - "zh:b6a5edfa40f123b78663aef03f1634922bccd94383ea098d17794c5c5a45e4ba", - "zh:caf46fcde65e0e48797525583e62936986af4aa112f7bdc13442e42d9a91db68", - "zh:d6b2c97608a08cc93c477c9716fe10f909b3e911440a061ed5d0e92ae25468fe", - "zh:d9c9c7a5746bc22a39d08144797397ca8d55167b5dca3adbe8e97463bad60a45", + "h1:gJpLLWwcTgHPyyqDNaXZkCfFCAywGMAgVlqg7QHRRBk=", + "zh:048fa67ba123c6da65a7af12453328e36e1783cac1dbecc905d44ee7a1daa41c", + "zh:08dfb8c493a99aa54ea0c00f5d2e2389aac55d70b31bfc50a38e4ab61800aca8", + "zh:0d5bf53f356864567bf0855eb90b0b9aa4619b60fd1469210461ad88c0508a6f", + "zh:221cc52181d81bd741e8624ba9619ae20438f7a13828b72aa138a51b57bc1483", + "zh:51e7485e4f502cbbefe9b4ea991961eb9b19f41862593150905197bbb37cc6fb", + "zh:6e2d0986176bbeabdfa7dc3d1bf37d0a24549ebff29a3c9e8c5082e03cc38247", + "zh:87e46ceddcd3a4b7ed16f6b853c286840753d8af8ae8df0618ab5f29e950976b", + "zh:894998419943fadb3b85d1469665e9b7cdf492e6dc30907a77e32043e1d52b6a", + "zh:9f1efae3ad37510d947e7a27118a84bae55e35681b047d939781da96dd6ab6c7", + "zh:a201371f6c4c65b6976a8a360223c188ea91b7a33078fdd3a5f5f0ac7b438d35", + "zh:af3cc16bdfc545e61ce66449b9daaebfaa0c5e495777241c9414671a31e37ffa", + "zh:dbbb263a5f4c40624823fd3e68dc046b1f00325548393557384f0914a4694278", ] } provider "registry.terraform.io/hashicorp/aws" { - version = "6.21.0" + version = "6.30.0" hashes = [ - "h1:YfPC5vxQr014wnHI6tBqLxaHZcZQvkaVr19ipqXijdw=", - "zh:03b65e7d275a48bbe5de9aed2bcacf841ea0a85352744587729d179ceb227994", - "zh:1a50fc50365602769b6844c6eba920b5c6941161508c2ebd5c1a60f7577edd18", - "zh:1bcbf2575e462849baa01554be469ac68dbd43fe7929819ab43eb8a849605ce9", - "zh:28466d206962bfe00a32ecf0a4fa8553a5099521629fce010f486bae2a5f194f", - "zh:3627c098788e4fc3eb88271101717212f260aa117dad15e648bde6f2889d3536", - "zh:3f8ae239d1b60a5de3f089810728947c19854eff3c16f22c31e1c8b039dd93a0", - "zh:62201751f1fc46b6e2720e5d7ea6bab75b98a7eb1f4c3460c258106be5bc5495", - "zh:86c89c7dd5866fcb57c4d35e7ba6ec849caf70c2fdd2d23c9d05da919ec06c8b", - "zh:94186ec3908ce6e89eaf98767b6b1e40acfb258de9fe8c09f2a100eb5cfca597", + "h1:FNkicntiPhllPhKf8uBJTCQVY/cqN/sXa/LwE4Q0ML8=", + "zh:08fdcbb84b63739b758fd2f657303f495859ae15f2d6c3dbd642520cadb5f063", + "zh:1e69ff49906541cd511bdabcd4b2996a731b1642ba26b834cdac5432e8d5c557", + "zh:3aa23e3af1fb1dd0c025cb8fb73abdabd3f44b6a687a2a239947e7b0201b2f1f", + "zh:4b3b81e63eee913c874e8115d6a83d12bd9d7903446f91be15ba50c583c79549", + "zh:6e93a72d8770d73a4122dc82af33a020d58feeaca4e194a2685dce30dbcdce24", + "zh:74be722c9a64b95e06554cde0bef624084cc5a5ea7f3373f1975b7a4737d7074", + "zh:7d2acf6bc93be26504fd0e2965c77699a49549f74a767d0a81430d9e12d51358", "zh:9b12af85486a96aedd8d7984b0ff811a4b42e3d88dad1a3fb4c0b580d04fa425", - "zh:9d5863a6970735c9e428be91c301789c1e228a3105f711d77efe9c6056bb8295", - "zh:a94f9abe91656d68a0657d877665766931ae381825fa0b5121da26b3aa3ed15d", - "zh:df2b293078bb3d31b45bcc6e83c17e790dca40198b8d7069dc3e3b387146937f", - "zh:e7666954631899756e3bb428c64abcff1c94b7355f7d92eba29541c3d401e472", - "zh:f142320e9d4a5c663f6e9924abe05274bbbc4031700bac3387e0a67ec6c951ef", + "zh:aef629bc537b4cc0f64ece87bc2bfdb3e032a4d03a3f7f301f4c84ffdc2ac1ac", + "zh:b41dcc4a2c8e356d82d3f92629aab0e25849db106a43e7adf06d8c6bda7af4c9", + "zh:b4d7a9cf9ad5ac5dd07f4ea1e834b63f14e752f9aca9452cd99570fed16e0c12", + "zh:bcb20f64b9b4599fa746305bcff7eeee3da85029dc467f812f950cf45b519436", + "zh:e45a520b82a1d2d42360db1b93d8e96406a7548948ed528bac5018e1d731c5c6", + "zh:f743e4a0e10dc64669469e6a22e47012f07fb94587f5a1e8cf5431da4e878ae1", + "zh:fe1895af7dcc5815896f892b2593fe71b7f4f364b71d9487d6e8b10ef244c11c", ] } provider "registry.terraform.io/hashicorp/azurerm" { - version = "4.54.0" + version = "4.58.0" + constraints = "~> 4.0" hashes = [ - "h1:uYLSLApU3bG/q6nxNb2N5FV0YddZxsg6Jlq27hDmPOA=", - "zh:0adda2cfb2ae9ec394943164cbd5ab1f1fac89a0125ad3966a97363b06b1bd11", - "zh:23dcc71a1586c2b8644476ccd3b4d4d22aa651d6ceb03d32f801bb7ecb09c84f", - "zh:4573833c692a87df167e3adf71c4291879e1a5d2e430ba5255509d3510c7a2f5", - "zh:49132e138bb28b02aa36a00fdcfcf818c4a6d150e3b5148e4d910efac5aaf1bf", - "zh:5dda12ad7f69f91847b99365f66b8dfb1d6ea913d2d06fadbabcea236cc1b346", - "zh:6e45c59dbc54c56c1255f4bb45db15a2ec75dcb2a9125adfa812a667132b332a", - "zh:76802f69f1fa8e894e9c96d6f7098698d1f9c036f30b46a40207fce5ed373ef0", + "h1:k0a/JkkhIEGrJ/oR7MZWbTZsUXHQ18JIPcVWBdW+V58=", + "zh:041c2a778ab4dd5a9af174b1d6f75409e5aabfc359cb386dfea3fb09e3f32709", + "zh:0a302531a61e7383acf99a6202d7984b2ea559306f45021381665c827a830d46", + "zh:0c69f132c7609683d907e87b89210a298d84c5b0121b62278949931bc54ca952", + "zh:0cadf48e9d2d9daed43212a3c9d886d7faaf68787b6e955456cbe4f43e4a17ec", + "zh:35ef4293d7731f6ff1f8bcba2c4529f987b7fac243c1ac1c154bbc02c9703c25", + "zh:3cb2679e1d56865e0ee0cf4c5d1404dbad0db42d11425e7bf0580a026cc64287", + "zh:4e56411f5119042d4962acff5c6d64224a49a69154ba80e6df63fa57b1e6d284", "zh:78d5eefdd9e494defcb3c68d282b8f96630502cac21d1ea161f53cfe9bb483b3", - "zh:846e7222bdeee0150830d82cd2f09619e2239347eba1d05f0409c78a684502d8", - "zh:8822918829f89354ab65b1d588d3185191bbd81e3479510dcbec801d3e3617b0", - "zh:901074c726047a141e256e3229f3e55a5dd4033fec57f889c0118b71e818331b", - "zh:a240979f94f50d2f6ceda2651e5146652468f312f03691f0949876524d160a9d", + "zh:ca4626411a111720c220f9849c7d2e1fcd5d380f56459e096d835a9dbf9e6e13", + "zh:d31c4e65dcb096974479b2d548fffb86fc9a5262aff1b01fe62ef442ce536c6b", + "zh:d9631602999c1853e53ee2c5aef7476e23c7787beddc3599c10dbaa4891ba166", + "zh:f31ba7c9341037ceb7d49467946c01b2b0930404ed1d5643c1451f734a613a03", ] } diff --git a/terraform/azure_tceng/finops.tf b/terraform/azure_tceng/finops.tf new file mode 100644 index 00000000..edf1467f --- /dev/null +++ b/terraform/azure_tceng/finops.tf @@ -0,0 +1,95 @@ +resource "azapi_resource" "taskcluster_cost_export_actual" { + type = "Microsoft.CostManagement/exports@2025-03-01" + name = "taskcluster-daily_actual" + parent_id = "/subscriptions/8a205152-b25a-417f-a676-80465535a6c9" + + identity { + type = "SystemAssigned" + } + + body = { + properties = { + schedule = { + status = "Active" + recurrence = "Daily" + recurrencePeriod = { + from = "2024-09-03T00:00:00Z" + to = "2050-02-01T00:00:00Z" + } + } + format = "Csv" + compressionMode = "gzip" + dataOverwriteBehavior = "OverwritePreviousReport" + exportDescription = "" + deliveryInfo = { + destination = { + type = "AzureBlob" + resourceId = "/subscriptions/108d46d5-fe9b-4850-9a7d-8c914aa6c1f0/resourceGroups/rg-azure-cost-mgmt/providers/Microsoft.Storage/storageAccounts/safinopsdata" + container = "cost-management" + rootFolderPath = "taskcluster" + } + } + partitionData = true + definition = { + type = "ActualCost" + timeframe = "MonthToDate" + dataSet = { + granularity = "Daily" + configuration = { + columns = [] + dataVersion = "2021-10-01" + filters = [] + } + } + } + } + } +} + +resource "azapi_resource" "taskcluster_cost_export_amortized" { + type = "Microsoft.CostManagement/exports@2025-03-01" + name = "taskcluster-daily_amortized" + parent_id = "/subscriptions/8a205152-b25a-417f-a676-80465535a6c9" + + identity { + type = "SystemAssigned" + } + + body = { + properties = { + schedule = { + status = "Active" + recurrence = "Daily" + recurrencePeriod = { + from = "2024-09-03T00:00:00Z" + to = "2050-02-01T00:00:00Z" + } + } + format = "Csv" + compressionMode = "gzip" + dataOverwriteBehavior = "OverwritePreviousReport" + exportDescription = "" + deliveryInfo = { + destination = { + type = "AzureBlob" + resourceId = "/subscriptions/108d46d5-fe9b-4850-9a7d-8c914aa6c1f0/resourceGroups/rg-azure-cost-mgmt/providers/Microsoft.Storage/storageAccounts/safinopsdata" + container = "cost-management" + rootFolderPath = "taskcluster" + } + } + partitionData = true + definition = { + type = "AmortizedCost" + timeframe = "MonthToDate" + dataSet = { + granularity = "Daily" + configuration = { + columns = [] + dataVersion = "2021-10-01" + filters = [] + } + } + } + } + } +} diff --git a/terraform/azure_trusted_fxci/.terraform.lock.hcl b/terraform/azure_trusted_fxci/.terraform.lock.hcl index ec34faf2..cea7318e 100644 --- a/terraform/azure_trusted_fxci/.terraform.lock.hcl +++ b/terraform/azure_trusted_fxci/.terraform.lock.hcl @@ -1,6 +1,26 @@ # This file is maintained automatically by "terraform init". # Manual edits may be lost in future updates. +provider "registry.terraform.io/azure/azapi" { + version = "2.8.0" + constraints = "~> 2.0" + hashes = [ + "h1:gJpLLWwcTgHPyyqDNaXZkCfFCAywGMAgVlqg7QHRRBk=", + "zh:048fa67ba123c6da65a7af12453328e36e1783cac1dbecc905d44ee7a1daa41c", + "zh:08dfb8c493a99aa54ea0c00f5d2e2389aac55d70b31bfc50a38e4ab61800aca8", + "zh:0d5bf53f356864567bf0855eb90b0b9aa4619b60fd1469210461ad88c0508a6f", + "zh:221cc52181d81bd741e8624ba9619ae20438f7a13828b72aa138a51b57bc1483", + "zh:51e7485e4f502cbbefe9b4ea991961eb9b19f41862593150905197bbb37cc6fb", + "zh:6e2d0986176bbeabdfa7dc3d1bf37d0a24549ebff29a3c9e8c5082e03cc38247", + "zh:87e46ceddcd3a4b7ed16f6b853c286840753d8af8ae8df0618ab5f29e950976b", + "zh:894998419943fadb3b85d1469665e9b7cdf492e6dc30907a77e32043e1d52b6a", + "zh:9f1efae3ad37510d947e7a27118a84bae55e35681b047d939781da96dd6ab6c7", + "zh:a201371f6c4c65b6976a8a360223c188ea91b7a33078fdd3a5f5f0ac7b438d35", + "zh:af3cc16bdfc545e61ce66449b9daaebfaa0c5e495777241c9414671a31e37ffa", + "zh:dbbb263a5f4c40624823fd3e68dc046b1f00325548393557384f0914a4694278", + ] +} + provider "registry.terraform.io/hashicorp/aws" { version = "6.14.1" hashes = [ diff --git a/terraform/azure_trusted_fxci/azure-provider.tf b/terraform/azure_trusted_fxci/azure-provider.tf index 67cb7028..22554ed2 100644 --- a/terraform/azure_trusted_fxci/azure-provider.tf +++ b/terraform/azure_trusted_fxci/azure-provider.tf @@ -6,3 +6,8 @@ provider "azurerm" { subscription_id = "a30e97ab-734a-4f3b-a0e4-c51c0bff0701" tenant_id = "c0dc8bb0-b616-427e-8217-9513964a145b" } + +provider "azapi" { + subscription_id = "a30e97ab-734a-4f3b-a0e4-c51c0bff0701" + tenant_id = "c0dc8bb0-b616-427e-8217-9513964a145b" +} diff --git a/terraform/azure_trusted_fxci/finops.tf b/terraform/azure_trusted_fxci/finops.tf new file mode 100644 index 00000000..6ee2df17 --- /dev/null +++ b/terraform/azure_trusted_fxci/finops.tf @@ -0,0 +1,95 @@ +resource "azapi_resource" "trusted_fxci_cost_export_actual" { + type = "Microsoft.CostManagement/exports@2025-03-01" + name = "trusted_fxci_daily_actual" + parent_id = "/subscriptions/a30e97ab-734a-4f3b-a0e4-c51c0bff0701" + + identity { + type = "SystemAssigned" + } + + body = { + properties = { + schedule = { + status = "Active" + recurrence = "Daily" + recurrencePeriod = { + from = "2024-04-09T00:00:00Z" + to = "2050-02-01T00:00:00Z" + } + } + format = "Csv" + compressionMode = "None" + dataOverwriteBehavior = "OverwritePreviousReport" + exportDescription = "" + deliveryInfo = { + destination = { + type = "AzureBlob" + resourceId = "/subscriptions/108d46d5-fe9b-4850-9a7d-8c914aa6c1f0/resourceGroups/rg-azure-cost-mgmt/providers/Microsoft.Storage/storageAccounts/safinopsdata" + container = "cost-management" + rootFolderPath = "trusted_fxci_daily" + } + } + partitionData = true + definition = { + type = "ActualCost" + timeframe = "MonthToDate" + dataSet = { + granularity = "Daily" + configuration = { + columns = [] + dataVersion = "2021-10-01" + filters = [] + } + } + } + } + } +} + +resource "azapi_resource" "trusted_fxci_cost_export_amortized" { + type = "Microsoft.CostManagement/exports@2025-03-01" + name = "trusted_fxci_daily_amortized" + parent_id = "/subscriptions/a30e97ab-734a-4f3b-a0e4-c51c0bff0701" + + identity { + type = "SystemAssigned" + } + + body = { + properties = { + schedule = { + status = "Active" + recurrence = "Daily" + recurrencePeriod = { + from = "2024-04-09T00:00:00Z" + to = "2050-02-01T00:00:00Z" + } + } + format = "Csv" + compressionMode = "None" + dataOverwriteBehavior = "OverwritePreviousReport" + exportDescription = "" + deliveryInfo = { + destination = { + type = "AzureBlob" + resourceId = "/subscriptions/108d46d5-fe9b-4850-9a7d-8c914aa6c1f0/resourceGroups/rg-azure-cost-mgmt/providers/Microsoft.Storage/storageAccounts/safinopsdata" + container = "cost-management" + rootFolderPath = "trusted_fxci_daily" + } + } + partitionData = true + definition = { + type = "AmortizedCost" + timeframe = "MonthToDate" + dataSet = { + granularity = "Daily" + configuration = { + columns = [] + dataVersion = "2021-10-01" + filters = [] + } + } + } + } + } +} diff --git a/terraform/azure_trusted_fxci/versions.tf b/terraform/azure_trusted_fxci/versions.tf index 1e9f89be..6ca7dd73 100644 --- a/terraform/azure_trusted_fxci/versions.tf +++ b/terraform/azure_trusted_fxci/versions.tf @@ -7,5 +7,9 @@ terraform { azurerm = { source = "hashicorp/azurerm" } + azapi = { + source = "azure/azapi" + version = "~> 2.0" + } } }