Closed MehdiZonjy closed 2 years ago
I encountered the same problem. Including network_configuration
as ignore_changes
doesn't work - network_configuration change doesn't appear in the diff view, but it is included in the API call request when apply.
Looking into the debug log, I found the order of the subnets
in the update request is different from the value of the current state.
{"awsvpcConfiguration":{"assignPublicIp":"ENABLED","securityGroups":["sg-09b7377097c0c97fd"],"subnets":["subnet-012c6b3edd7abd4d9","subnet-0f5c632fc7e9db0ab","subnet-041643c250580e1dc"]}}
{"awsvpcConfiguration":{"assignPublicIp":"ENABLED","securityGroups":["sg-09b7377097c0c97fd"],"subnets":["subnet-041643c250580e1dc","subnet-012c6b3edd7abd4d9","subnet-0f5c632fc7e9db0ab"]}}
The attribute type of subnets
is TypeSet, so the two values should be the same.
However, it seems d.hasChange("network_configuration") returns true somehow since the request includes the networkConfiguration
attribute.
I'm not familiar with the codebase so I might look at unrelated place though.
I'm having the same issue, trying to add tags to a service.
In the plan only appears the tags being changed.
During the apply I get this error: "InvalidParameterException: Unable to update network parameters on services with a CODE_DEPLOY deployment controller. Use AWS CodeDeploy to trigger a new deployment."
Including network_configuration as ignore_changes is not helping.
Having the same issues while trying to update the desired count of tasks, any updates on this?
Having the same issue when trying to update the platform version.
Same here, when trying to modify something as harmless as the tags.
Hi, same Problem here when i changed desired_count over Terraform:
Error: Error updating ECS Service InvalidParameterException: Unable to update network parameters on services with a CODE_DEPLOY deployment controller. Use AWS CodeDeploy to trigger a new deployment.
Hi all,
what about updates on this issue ?
This is very important for us. We are running terraform-pipelines in production with ecs_service and CODE_DEPLOY deployment controller. Updates on the service with terraform are not possible over this way !
Hello Team,
Do you have any update/ETA on this issue?
We have TF Cloud customer (Team & Governance) affected by the same issue . Thank you in advance!
Regards, Georgi Berchev
I tried to use CODE_DEPLOY with terraform but got either unable to update task definition or unable to update network configuration. I can't deploy anything. This is nightmare.
FWIW, the way I was able to control desired_count is by adding an autoscaling group. I'm not using it to autoscale, since I have the min/max set to the same number and the cpu target_value 99. It just acts as a way to modify desired_count which seems to play well with terraform and the CODE_DEPLOY deployment_controller type:
resource "aws_iam_service_linked_role" "ecs_application_autoscaling" {
aws_service_name = "ecs.application-autoscaling.amazonaws.com"
description = "Allows Application Auto Scaling to call ECS and CloudWatch on your behalf."
}
resource "aws_appautoscaling_target" "target" {
# THIS CONTROLS THE DESIRED_COUNT
max_capacity = var.running_max
min_capacity = var.running_min
resource_id = "service/${aws_ecs_cluster.cluster.name}/${aws_ecs_service.app.name}"
role_arn = aws_iam_service_linked_role.ecs_application_autoscaling.arn
scalable_dimension = "ecs:service:DesiredCount"
service_namespace = "ecs"
}
resource "aws_appautoscaling_policy" "cpu_tracking" {
name = "${aws_ecs_cluster.cluster.name}_${aws_ecs_service.app.name}_cpu_tracking"
policy_type = "TargetTrackingScaling"
resource_id = "service/${aws_ecs_cluster.cluster.name}/${aws_ecs_service.app.name}"
scalable_dimension = aws_appautoscaling_target.target.scalable_dimension
service_namespace = aws_appautoscaling_target.target.service_namespace
target_tracking_scaling_policy_configuration {
predefined_metric_specification {
predefined_metric_type = "ECSServiceAverageCPUUtilization"
}
target_value = 99
scale_in_cooldown = 300
scale_out_cooldown = 60
}
}
I'm trying to replicate the issue with acceptance tests here. I hope to open a PR about this
Could the PR made earlier this year, which references this issue, be reviewed? It's a fairly small change. We believe this to be a good way to address this, having resorted to using our own fork with that PR to address this for now and can confirm this resolves it for us.
For visibility @bflad @gdavison
Hi all 👋 Just letting you know that this is issue is featured on this quarters roadmap. If a PR exists to close the issue a maintainer will review and either make changes directly, or work with the original author to get the contribution merged. If you have written a PR to resolve the issue please ensure the "Allow edits from maintainers" box is checked. Thanks for your patience and we are looking forward to getting this merged soon!
Hi @breathingdust, I'm trying to replicate the issue with a test, but it currently seems to work as expected. I'll try different changes to raise the error.
Hi @breathingdust, I've written the test case that replicates the issue. When I try to update the desired_count
, the function resourceServiceUpdate
says I'm also changing the NetworkConfiguration
. Like @calimonk says, the solution to this issue is the release of the version v2.9.0
of the terraform-sdk-plugin. So I can open the PR with the test case that replicates the bug and update the go.mod
when the terraform-plugin-sdk
is released.
Cheers
@dirk39 v2.9.0 of terraform-plugin-sdk
has now been released and integrated into the AWS Provider.
Are the commits you mention on https://github.com/dirk39/terraform-provider-aws/commits/r/ecs_service_update_with_bg_deployment valid for testing - i.e. can I (or you) open a PR with those changes?
Thanks.
@ewbankkit let me update the branch and add further tests to cover all the fields allowed by the APIs
terraform-plugin-sdk@v2.9.0
which was released in v3.68.0 of the Terraform AWS Provider.I'm going to lock this issue because it has been closed for 30 days ⏳. This helps our maintainers find and focus on the active issues. If you have found a problem that seems similar to this, please open a new issue and complete the issue template so we can capture all the details necessary to investigate further.
Community Note
Terraform Version
Terraform v0.12.26
Affected Resource(s)
Terraform Configuration Files
Debug Output
plan logs
apply logs
Expected Behavior
Should be able to update ECS Service
desired_replicas
even whendeployment_controller.type
is set toCODE_DEPLOY
Actual Behavior
Steps to Reproduce
deployment_controller.type = CODE_DEPLOY
desired_count
and attempt to apply changes againImportant Factoids
network_configuration
property, TF included it in the payload toupdate-service
requestnetwork_configuration
desired_count
and can by reproduced by making changes totask_placement_constaints
tooReferences