Comments (9)
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.
from terracost.
Update: I recently switched positions to an AWS only organization so sadly I will not be able to make progress on this feature. :-(
from terracost.
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.
from terracost.
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.
from terracost.
That would great! Looking forward to hearing back with some more information.
I'll get familiarized with the code base in the meantime.
from terracost.
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?
from terracost.
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 :).
from terracost.
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! 😉
from terracost.
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
from terracost.
Related Issues (20)
- Mark the cost.Components as Usage if they come from that
- Improve installation documentation HOT 2
- Resources billed per hour should use `hours` as unit
- Add support for Terragrunt format
- Adding Open Telekom Cloud (OTC) as a new Provider
- Resource Diff planned cost not calculated correctly HOT 1
- count: attribute doesn't seem to be taken into account HOT 1
- estimation: unexpected error if 2 providers (supported/unsupported) are mixed together
- mysql: change aws testdata from eu-west-3 to us-east-1 HOT 1
- mysql: ease testdata generation
- Estimation: try to set default values to ease estimation
- Cannot install terracost with go 1.18 HOT 2
- Enable estimating cost from terraform references HOT 1
- interpolate variable with non-module HCL files
- aws: support ebs_block_device on instance, launch_template/config
- Plan variables are forced to be `string`
- Allow for modules to reference remote sources
- Unable to Install TerraCost on Mac on zsh
- Add usage cost
- Reduce the unsupported resources output
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from terracost.