Open patrislav opened 3 years ago
Hello, has anyone begun work on this topic? I would like to work on this if this repository is still being maintained and you're still looking to add Azure. I see from the guide that new providers are discouraged.
I would like to implement windows and linux vms and managed disks at least.
Hello @evhiness !
It would be a pleasure! This project is still maintained, and we are still looking to add Azure provider (and even more!). I will let my colleagues get back to you to give some guidance about implementation/discussions/help.
That would great! Looking forward to hearing back with some more information.
I'll get familiarized with the code base in the meantime.
So I went through the code base over the weekend and it seems that adding a new provider isn't all that difficult. If I understand correctly, I just need to write an ingester that returns a list of Product types from the Azure Price API. With that, it seems that a good portion of the more generic code inside the 'aws' folder could be reused across providers. Is the plan to fully rewrite the ingester/filter logic for each provider in order to stay flexible or would you be open to extracting out some of the more generic code?
Hi @ev-hines sorry to respond that late hehe.
If I understand correctly, I just need to write an ingester that returns a list of Product types from the Azure Price API
Yes that's a big part of it as the rest relies on the data from the DB which was ingested using that.
You'll also need the terraform.ProviderInitializer
and terraform.Provider
, because it's needed by the 2 estimate functions.
Is the plan to fully rewrite the ingester/filter logic for each provider in order to stay flexible or would you be open to extracting out some of the more generic code?
If we see repeated code yes, but IMO I prefer to see first the repetition and then make the abstraction, so for now I would suggest to copy any needed code from AWS if you need. I have plan to potentially make some architectural changes but it's just on my mind for now haha.
If you want you can open a Draft PR if you want us to comment things directly on the code, if you still plan to do it.
We'll eventually do it but it's not on the top of the Pipeline of priorities for now, so be free do implement it if you want to :).
That sounds good. We are heavily invested in Azure and I think this tool would be helpful, especially as we do have some AWS footprint as well. Hopefully, I can begin working on it more seriously in the next couple of weeks.
Update: I recently switched positions to an AWS only organization so sadly I will not be able to make progress on this feature. :-(
Update: I recently switched positions to an AWS only organization so sadly I will not be able to make progress on this feature. :-(
Thank you for letting us know! We are still lacking various resources for AWS, so feel free to take a look! :wink:
Azure has recently released a retail pricing API. You can determine the prices of various resources, with some limitations such as USD-only. It may be possible to use this as a reference
https://learn.microsoft.com/en-us/rest/api/cost-management/retail-prices/azure-retail-prices
Planned
azurerm_firewall
azurerm_linux_virtual_machine
azurerm_linux_virtual_machine_scale_set
azurerm_managed_disk
azurerm_mariadb_server
azurerm_mssql_elasticpool
azurerm_mysql_server
azurerm_postgresql_server
azurerm_sql_database
azurerm_virtual_machine
azurerm_virtual_machine_scale_set
azurerm_windows_virtual_machine
azurerm_windows_virtual_machine_scale_set