When performing a terraform plan where a single setting value is changed on an elastic beanstalk environment the output shows every setting changed like so:-
- setting {
- name = "StreamLogs" -> null
- namespace = "aws:elasticbeanstalk:cloudwatch:logs" -> null
- value = "true" -> null
}
+ setting {
+ name = "StreamLogs"
+ namespace = "aws:elasticbeanstalk:cloudwatch:logs"
+ value = "true"
}
- setting {
- name = "UpdateLevel" -> null
- namespace = "aws:elasticbeanstalk:managedactions:platformupdate" -> null
- value = "minor" -> null
}
+ setting {
+ name = "UpdateLevel"
+ namespace = "aws:elasticbeanstalk:managedactions:platformupdate"
+ value = "minor"
}
This makes it impossible to see the actual changes being applied, which might be changing a critical setting, and makes Terraform apply options hard to trust.
Expected Behavior
Where a settings value hasn't changed don't show any change
Actual Behavior
Unchanged settings filling the console. e.g.
- setting {
- name = "PreferredStartTime" -> null
- namespace = "aws:elasticbeanstalk:managedactions" -> null
- value = "MON:08:00" -> null
}
+ setting {
+ name = "PreferredStartTime"
+ namespace = "aws:elasticbeanstalk:managedactions"
+ value = "MON:08:00"
}
Relevant Error/Panic Output Snippet
No response
Terraform Configuration Files
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 4.0"
}
}
}
provider "aws" {
region = "us-east-1"
}
resource "aws_elastic_beanstalk_environment" "test" {
name = "test"
application = "wit-external-api"
solution_stack_name = "64bit Amazon Linux 2 v3.5.4 running Docker"
setting {
namespace = "aws:autoscaling:launchconfiguration"
name = "IamInstanceProfile"
value = "elasticbeanstalk-ec2-role-development"
}
setting {
namespace = "aws:elasticbeanstalk:cloudwatch:logs"
name = "DeleteOnTerminate"
value = "true"
}
setting {
namespace = "aws:elasticbeanstalk:cloudwatch:logs"
name = "StreamLogs"
value = "false"
}
setting {
namespace = "aws:elasticbeanstalk:cloudwatch:logs:health"
name = "DeleteOnTerminate"
value = "true"
}
}
Steps to Reproduce
Create an AWS Elastic Beanstalk environment as defined above
Run terraform apply to create the environment
Change one of the settings values in the tf file, e.g. StreamLogs from true to false
Run terraform plan and notice the described in plan output:-
# aws_elastic_beanstalk_environment.test will be updated in-place
~ resource "aws_elastic_beanstalk_environment" "test" {
id = "e-cxsgcsvqpk"
name = "test"
tags = {}
# (16 unchanged attributes hidden)
- setting {
- name = "DeleteOnTerminate" -> null
- namespace = "aws:elasticbeanstalk:cloudwatch:logs" -> null
- value = "true" -> null
}
+ setting {
+ name = "DeleteOnTerminate"
+ namespace = "aws:elasticbeanstalk:cloudwatch:logs"
+ value = "true"
}
- setting {
- name = "DeleteOnTerminate" -> null
- namespace = "aws:elasticbeanstalk:cloudwatch:logs:health" -> null
- value = "true" -> null
}
+ setting {
+ name = "DeleteOnTerminate"
+ namespace = "aws:elasticbeanstalk:cloudwatch:logs:health"
+ value = "true"
}
- setting {
- name = "IamInstanceProfile" -> null
- namespace = "aws:autoscaling:launchconfiguration" -> null
- value = "elasticbeanstalk-ec2-role-development" -> null
}
+ setting {
+ name = "IamInstanceProfile"
+ namespace = "aws:autoscaling:launchconfiguration"
+ value = "elasticbeanstalk-ec2-role-development"
}
+ setting {
+ name = "StreamLogs"
+ namespace = "aws:elasticbeanstalk:cloudwatch:logs"
+ value = "false"
}
- setting {
- name = "StreamLogs" -> null
- namespace = "aws:elasticbeanstalk:cloudwatch:logs" -> null
- value = "true" -> null
}
}
Please do not leave "+1" or other comments that do not add relevant new information or questions, they generate extra noise for issue followers and do not help prioritize the request.
Volunteering to Work on This Issue
If you are interested in working on this issue, please leave a comment.
If this would be your first contribution, please review the contribution guide.
Terraform Core Version
1.3.9
AWS Provider Version
4.54.0
Affected Resource(s)
When performing a terraform plan where a single setting value is changed on an elastic beanstalk environment the output shows every setting changed like so:-
This makes it impossible to see the actual changes being applied, which might be changing a critical setting, and makes Terraform apply options hard to trust.
Expected Behavior
Where a settings value hasn't changed don't show any change
Actual Behavior
Unchanged settings filling the console. e.g.
Relevant Error/Panic Output Snippet
No response
Terraform Configuration Files
Steps to Reproduce
terraform apply
to create the environmentRun
terraform plan
and notice the described in plan output:-Debug Output
No response
Panic Output
No response
Important Factoids
No response
References
No response
Would you like to implement a fix?
None