clear gen1 Classic-LB ECS monitoring on deploy#3805
Open
ntner wants to merge 1 commit into
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What is the feature/update/fix?
Fix: clear the unsupported ECS service monitoring configuration on gen1 Classic Load Balancer deploys
AWS's high-resolution ECS metrics introduced a service-level
monitoringconfiguration onAWS::ECS::Service. ECS does not support that configuration on a service attached to a Classic Load Balancer (one defined byloadBalancerName, without target groups). When such a service carries a monitoring configuration, the ECSUpdateServicecall CloudFormation issues during a deploy is rejected, and the app stack update rolls back.On a generation 1 (
docker-compose.yml) deploy, Convox now looks up the app's ECS services, and for any that are attached to a Classic Load Balancer, clears the monitoring configuration (an empty metric set, which ECS accepts) immediately before the CloudFormation stack update. This lets Classic-LB-backed services deploy cleanly.The change is deliberately narrow. It runs only on the generation 1 deploy path, and only against services that are actually attached to a Classic Load Balancer. Services behind an Application or Network Load Balancer (target groups) are never touched, so any valid monitoring configuration on them is preserved. The step is best-effort: if the lookup or the clear fails, it is logged and the deploy proceeds exactly as before.