cloudposse / terraform-aws-budgets Goto Github PK
View Code? Open in Web Editor NEWTerraform module to manage AWS Budgets.
Home Page: https://cloudposse.com/accelerate
License: Apache License 2.0
Terraform module to manage AWS Budgets.
Home Page: https://cloudposse.com/accelerate
License: Apache License 2.0
Module appears to not be usable on darwin_arm64.
There is an incompatible provider version error when using this module with the latest versions of terraform and aws provider.
Module should work ion darwin_arm64
terraform {
required_version = ">= 1.3.6"
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 4.45"
}
}
}
provider "aws" {
region = us-east-01
profile = default
}
module "budgets" {
source = "cloudposse/budgets/aws"
version = "0.1.3"
budgets = {}
notifications_enabled = false
encryption_enabled = false
name = "example"
}
Initializing provider plugins...
- Finding hashicorp/aws versions matching ">= 2.0.0, >= 2.35.0, >= 3.0.0, >= 3.19.0, >= 3.64.0, ~> 4.45"...
- Finding hashicorp/local versions matching ">= 1.0.0, >= 1.3.0"...
- Finding hashicorp/archive versions matching ">= 1.3.0"...
- Finding hashicorp/template versions matching ">= 2.0.0"...
- Finding hashicorp/null versions matching ">= 2.0.0"...
- Finding hashicorp/random versions matching ">= 2.0.0"...
- Finding hashicorp/external versions matching ">= 1.0.0"...
- Installing hashicorp/null v3.2.1...
- Installed hashicorp/null v3.2.1 (signed by HashiCorp)
- Installing hashicorp/random v3.4.3...
- Installed hashicorp/random v3.4.3 (signed by HashiCorp)
- Installing hashicorp/external v2.2.3...
- Installed hashicorp/external v2.2.3 (signed by HashiCorp)
- Installing hashicorp/aws v4.45.0...
- Installed hashicorp/aws v4.45.0 (signed by HashiCorp)
- Installing hashicorp/local v2.2.3...
- Installed hashicorp/local v2.2.3 (signed by HashiCorp)
- Installing hashicorp/archive v2.2.0...
- Installed hashicorp/archive v2.2.0 (signed by HashiCorp)
╷
│ Error: Incompatible provider version
│
│ Provider registry.terraform.io/hashicorp/template v2.2.0 does not have a package available for your current platform, darwin_arm64.
│
│ Provider releases are separate from Terraform CLI releases, so not all providers are available for all platforms. Other versions of this provider may have different platforms supported.
└> terraform --version
Terraform v1.3.6
on darwin_arm64
Thanks.
This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.
These updates have all been created already. Click a checkbox below to force a retry/rebase of any.
These are blocked by an existing closed PR and will not be recreated unless you click a checkbox below.
examples/complete/main.tf
examples/complete/providers.tf
examples/complete/versions.tf
aws >= 3.0
hashicorp/terraform >= 1.0
main.tf
cloudposse/kms-key/aws 0.12.1
cloudposse/sns-lambda-notify-slack/aws 0.7.0
cloudposse/sns-topic/aws 0.21.0
versions.tf
aws >= 3.0
hashicorp/terraform >= 1.0
Don't enforce unchangeable naming conventions on the budget name. It limits the flexibility of the original resource's definition and it may not work with pre-existing budgets in many organizations if it's needed to import those into state using this module.
name = format("%s-%s", module.this.id, each.value.name)
The expectation would be that there would be a completely open input for name that wouldn't force a name"-"name naming scheme.
Let's say I have a bunch of pre-existing budgets in an org. They've all got some specific naming scheme but they weren't originally created with terraform. I want to import them into state, but I can't do that when this module doesn't allow budgets to have a name outside of the name"-"name format.
The ideal solution to this would just to have the name piece be an input string, but I can understand that since you can define multiple alerts under a single module definition, the reason it is written this way is so that each sub-alert with be separated with that naming convention "-".
name = format("%s-%s", module.this.id, each.value.name)
name = "test"
budgets = [
{
name = "example"
budget_type = "COST"
limit_amount = "5000"
limit_unit = "USD"
// time_period_end = "2087-06-15_00:00"
time_unit = "MONTHLY"
cost_filter = { }
As it stands right now, I'll get a budget called 'test-example`
But if I want a budget just called example
I can't have that by leaving out name = "test"
, what will instead happen is I'll get a budget called -example
like so
# aws_budgets_budget.default["0"] will be created
+ resource "aws_budgets_budget" "default" {
+ name = "-example"
If you want to maintain all of the logic being the same you could just remove the "-" so that if I choose not to specify the first name I am not left with a hanging dash on my actual budget name like so:
name = format("%s%s", module.this.id, each.value.name)
And this would product the desired effect.
# aws_budgets_budget.default["0"] will be created
+ resource "aws_budgets_budget" "default" {
+ name = "example"
No response
No response
The parameters that determine the budget amount for an auto-adjusting budget.
auto_adjust_type (Required) - The string that defines whether your budget auto-adjusts based on forecasted data
It will auto adjust the budget based on forecast
yes i need to use in my project and its much required as we need to set up the auto adjustment
We can add this attribute from terraform documentation. I have raised the PR and tested this . it wont break anything as its an optional attribute from terraform docs and i have added the docs link in the PR
here is the PR : #29
No response
No response
https://registry.terraform.io/modules/cloudposse/budgets/aws/0.4.0
This should be 0.4.1
as the latest in TF registry instead of 0.4.0
There should be 0.4.1 in TF registry which can be shown , you just need to login to TF registry and there is a button called resync module which will fetch the latest tag in registry again
Checkout
https://registry.terraform.io/modules/cloudposse/budgets/aws/0.4.0
No response
No response
No response
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.