-
Notifications
You must be signed in to change notification settings - Fork 9.9k
Add support for Linear and Canary deployment strategies in ECS Servic… #44842
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for Linear and Canary deployment strategies in ECS Servic… #44842
Conversation
…esresource Resolve merge conflicts Add support for progressive deployments in resourceServiceRead Add expand methods for progressive deployment configuration items Refactor configuration translation logic to use new expand helper methods for service creation and update Add range validation for percent values in Canary and Linear configurations Fix type mismatches in schema and handler Add basic acceptance test for Linear deployments Add basic test for Canary deployment strategy Add tests for out of band removal and helper functions Add acceptance tests for edge cases in linear and canary deployment strategies Add missing load balancer and circuit breaker config in linear and canary deployment strategies Adjust parameter values and set bake_time parameter for all deployment strategies Resolve merge conflicts
|
✅ Thank you for correcting the previously detected issues! The maintainers appreciate your efforts to make the review process as smooth as possible. |
Community GuidelinesThis comment is added to every new Pull Request to provide quick reference to how the Terraform AWS Provider is maintained. Please review the information below, and thank you for contributing to the community that keeps the provider thriving! 🚀 Voting for Prioritization
Pull Request Authors
|
|
I realize the changes to service_test.go are interleaved in a way that makes them unreadable. We will move the newly added acceptance tests to make the change easier to review. |
|
closes #44883 |
Return actual errors instead of nil in expandBakeTimeInMinutes and expandLinearConfiguration
Change parameter names from snake_case to camelCase in expandCanaryConfiguration and expandLinearConfiguration
Simplify pointer access in flattenCanaryConfiguration and flattenLinearConfiguration
Validate that canary_percent and step_percent are present when their respective configurations are used
Change bake_time_in_minutes values from strings to integers to match nullable.TypeNullableInt schema type
Upgrade from v1.63.5 to v1.67.2 to include new deployment strategies and configuration types
Include linear_configuration and canary_configuration blocks to support new deployment strategies
…fields to data source Add capacity_provider_strategy, deployment_controller, enable_ecs_managed_tags, enable_execute_command, health_check_grace_period_seconds, and iam_role to aws_ecs_service data source
Add network_configuration, ordered_placement_strategy, placement_constraints, platform_version, propagate_tags, and service_registries to aws_ecs_service data source
Add created_at, created_by, deployments, events, pending_count, platform_family, running_count, status, and task_sets for monitoring and observability
Add documentation for all new attributes including deployment_configuration with linear_configuration and canary_configuration blocks, and runtime state fields
|
It is a best practice to add fields to the data source at the same time they're added to the resource. However, in adding fields to the data source, I found that there were lots of missing fields so pulled that thread, and added them. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM 🎉
(Full suite to follow...)
make: Verifying source code with gofmt...
==> Checking that code complies with gofmt requirements...
make: Running acceptance tests on branch: 🌿 f-linear-canary-deployment 🌿...
TF_ACC=1 go1.24.10 test ./internal/service/ecs/... -v -count 1 -parallel 20 -run='TestAccECSServiceDataSource' -timeout 360m -vet=off
2025/11/11 10:17:14 Creating Terraform AWS Provider (SDKv2-style)...
2025/11/11 10:17:14 Initializing Terraform AWS Provider (SDKv2-style)...
=== RUN TestAccECSServiceDataSource_basic
=== PAUSE TestAccECSServiceDataSource_basic
=== RUN TestAccECSServiceDataSource_loadBalancer
=== PAUSE TestAccECSServiceDataSource_loadBalancer
=== RUN TestAccECSServiceDataSource_deploymentConfiguration
=== PAUSE TestAccECSServiceDataSource_deploymentConfiguration
=== RUN TestAccECSServiceDataSource_canaryDeployment
=== PAUSE TestAccECSServiceDataSource_canaryDeployment
=== RUN TestAccECSServiceDataSource_fullConfiguration
=== PAUSE TestAccECSServiceDataSource_fullConfiguration
=== CONT TestAccECSServiceDataSource_basic
=== CONT TestAccECSServiceDataSource_canaryDeployment
=== CONT TestAccECSServiceDataSource_deploymentConfiguration
=== CONT TestAccECSServiceDataSource_fullConfiguration
=== CONT TestAccECSServiceDataSource_loadBalancer
--- PASS: TestAccECSServiceDataSource_basic (70.82s)
--- PASS: TestAccECSServiceDataSource_fullConfiguration (75.09s)
--- PASS: TestAccECSServiceDataSource_canaryDeployment (286.80s)
--- PASS: TestAccECSServiceDataSource_deploymentConfiguration (296.59s)
--- PASS: TestAccECSServiceDataSource_loadBalancer (314.52s)
PASS
ok github.com/hashicorp/terraform-provider-aws/internal/service/ecs 321.088s
make: Verifying source code with gofmt...
==> Checking that code complies with gofmt requirements...
make: Running acceptance tests on branch: 🌿 f-linear-canary-deployment 🌿...
TF_ACC=1 go1.24.10 test ./internal/service/ecs/... -v -count 1 -parallel 20 -run='TestAccECSService_basic|TestAccECSService_deploymentConfiguration|TestAccECSService_linearDeployment|TestAccECSService_canaryDeployment' -timeout 360m -vet=off
2025/11/11 10:26:56 Creating Terraform AWS Provider (SDKv2-style)...
2025/11/11 10:26:56 Initializing Terraform AWS Provider (SDKv2-style)...
=== RUN TestAccECSService_basic
=== PAUSE TestAccECSService_basic
=== CONT TestAccECSService_basic
--- PASS: TestAccECSService_basic (83.94s)
PASS
ok github.com/hashicorp/terraform-provider-aws/internal/service/ecs 90.899s
ewbankkit
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM 🚀.
|
That took a minute... Full suite: % make t T='TestAccECSService_|TestAccECSServiceDataSource_' K=ecs P=15
make: Verifying source code with gofmt...
==> Checking that code complies with gofmt requirements...
make: Running acceptance tests on branch: 🌿 f-linear-canary-deployment 🌿...
TF_ACC=1 go1.24.10 test ./internal/service/ecs/... -v -count 1 -parallel 15 -run='TestAccECSService_|TestAccECSServiceDataSource_' -timeout 360m -vet=off
2025/11/11 10:54:53 Creating Terraform AWS Provider (SDKv2-style)...
2025/11/11 10:54:53 Initializing Terraform AWS Provider (SDKv2-style)...
=== RUN TestAccECSServiceDataSource_basic
=== PAUSE TestAccECSServiceDataSource_basic
=== RUN TestAccECSServiceDataSource_loadBalancer
=== PAUSE TestAccECSServiceDataSource_loadBalancer
=== RUN TestAccECSServiceDataSource_deploymentConfiguration
=== PAUSE TestAccECSServiceDataSource_deploymentConfiguration
=== RUN TestAccECSServiceDataSource_canaryDeployment
=== PAUSE TestAccECSServiceDataSource_canaryDeployment
=== RUN TestAccECSServiceDataSource_fullConfiguration
=== PAUSE TestAccECSServiceDataSource_fullConfiguration
=== RUN TestAccECSService_basic
=== PAUSE TestAccECSService_basic
=== RUN TestAccECSService_Identity_Basic
=== PAUSE TestAccECSService_Identity_Basic
=== RUN TestAccECSService_Identity_RegionOverride
=== PAUSE TestAccECSService_Identity_RegionOverride
=== RUN TestAccECSService_disappears
=== PAUSE TestAccECSService_disappears
=== RUN TestAccECSService_LatticeConfigurations
=== PAUSE TestAccECSService_LatticeConfigurations
=== RUN TestAccECSService_PlacementStrategy_unnormalized
=== PAUSE TestAccECSService_PlacementStrategy_unnormalized
=== RUN TestAccECSService_CapacityProviderStrategy_basic
=== PAUSE TestAccECSService_CapacityProviderStrategy_basic
=== RUN TestAccECSService_CapacityProviderStrategy_forceNewDeployment
=== PAUSE TestAccECSService_CapacityProviderStrategy_forceNewDeployment
=== RUN TestAccECSService_CapacityProviderStrategy_update
=== PAUSE TestAccECSService_CapacityProviderStrategy_update
=== RUN TestAccECSService_VolumeConfiguration_basic
=== PAUSE TestAccECSService_VolumeConfiguration_basic
=== RUN TestAccECSService_VolumeConfiguration_volumeInitializationRate
=== PAUSE TestAccECSService_VolumeConfiguration_volumeInitializationRate
=== RUN TestAccECSService_VolumeConfiguration_tagSpecifications
=== PAUSE TestAccECSService_VolumeConfiguration_tagSpecifications
=== RUN TestAccECSService_VolumeConfiguration_update
=== PAUSE TestAccECSService_VolumeConfiguration_update
=== RUN TestAccECSService_VolumeConfiguration_throughputTypeChange
=== PAUSE TestAccECSService_VolumeConfiguration_throughputTypeChange
=== RUN TestAccECSService_familyAndRevision
=== PAUSE TestAccECSService_familyAndRevision
=== RUN TestAccECSService_healthCheckGracePeriodSeconds
=== PAUSE TestAccECSService_healthCheckGracePeriodSeconds
=== RUN TestAccECSService_iamRole
=== PAUSE TestAccECSService_iamRole
=== RUN TestAccECSService_DeploymentControllerType_codeDeploy
=== PAUSE TestAccECSService_DeploymentControllerType_codeDeploy
=== RUN TestAccECSService_DeploymentControllerType_codeDeployUpdateDesiredCountAndHealthCheckGracePeriod
=== PAUSE TestAccECSService_DeploymentControllerType_codeDeployUpdateDesiredCountAndHealthCheckGracePeriod
=== RUN TestAccECSService_DeploymentControllerType_external
=== PAUSE TestAccECSService_DeploymentControllerType_external
=== RUN TestAccECSService_DeploymentControllerMutability_codeDeployToECS
=== PAUSE TestAccECSService_DeploymentControllerMutability_codeDeployToECS
=== RUN TestAccECSService_alarmsAdd
=== PAUSE TestAccECSService_alarmsAdd
=== RUN TestAccECSService_alarmsUpdate
=== PAUSE TestAccECSService_alarmsUpdate
=== RUN TestAccECSService_BlueGreenDeployment_basic
=== PAUSE TestAccECSService_BlueGreenDeployment_basic
=== RUN TestAccECSService_BlueGreenDeployment_outOfBandRemoval
=== PAUSE TestAccECSService_BlueGreenDeployment_outOfBandRemoval
=== RUN TestAccECSService_BlueGreenDeployment_sigintRollback
service_test.go:1129: SIGINT handling can't reliably be tested in CI
--- SKIP: TestAccECSService_BlueGreenDeployment_sigintRollback (0.00s)
=== RUN TestAccECSService_BlueGreenDeployment_circuitBreakerRollback
=== PAUSE TestAccECSService_BlueGreenDeployment_circuitBreakerRollback
=== RUN TestAccECSService_BlueGreenDeployment_createFailure
=== PAUSE TestAccECSService_BlueGreenDeployment_createFailure
=== RUN TestAccECSService_BlueGreenDeployment_changeStrategy
=== PAUSE TestAccECSService_BlueGreenDeployment_changeStrategy
=== RUN TestAccECSService_BlueGreenDeployment_updateFailure
=== PAUSE TestAccECSService_BlueGreenDeployment_updateFailure
=== RUN TestAccECSService_BlueGreenDeployment_updateInPlace
=== PAUSE TestAccECSService_BlueGreenDeployment_updateInPlace
=== RUN TestAccECSService_BlueGreenDeployment_waitServiceActive
=== PAUSE TestAccECSService_BlueGreenDeployment_waitServiceActive
=== RUN TestAccECSService_BlueGreenDeployment_withoutTestListenerRule
=== PAUSE TestAccECSService_BlueGreenDeployment_withoutTestListenerRule
=== RUN TestAccECSService_DeploymentConfiguration_strategy
=== PAUSE TestAccECSService_DeploymentConfiguration_strategy
=== RUN TestAccECSService_DeploymentValues_basic
=== PAUSE TestAccECSService_DeploymentValues_basic
=== RUN TestAccECSService_DeploymentValues_minZeroMaxOneHundred
=== PAUSE TestAccECSService_DeploymentValues_minZeroMaxOneHundred
=== RUN TestAccECSService_deploymentCircuitBreaker
=== PAUSE TestAccECSService_deploymentCircuitBreaker
=== RUN TestAccECSService_loadBalancerChanges
=== PAUSE TestAccECSService_loadBalancerChanges
=== RUN TestAccECSService_clusterName
=== PAUSE TestAccECSService_clusterName
=== RUN TestAccECSService_alb
=== PAUSE TestAccECSService_alb
=== RUN TestAccECSService_multipleTargetGroups
=== PAUSE TestAccECSService_multipleTargetGroups
=== RUN TestAccECSService_forceNewDeployment
=== PAUSE TestAccECSService_forceNewDeployment
=== RUN TestAccECSService_forceNewDeploymentTriggers
=== PAUSE TestAccECSService_forceNewDeploymentTriggers
=== RUN TestAccECSService_PlacementStrategy_basic
=== PAUSE TestAccECSService_PlacementStrategy_basic
=== RUN TestAccECSService_PlacementStrategy_missing
=== PAUSE TestAccECSService_PlacementStrategy_missing
=== RUN TestAccECSService_PlacementConstraints_basic
=== PAUSE TestAccECSService_PlacementConstraints_basic
=== RUN TestAccECSService_PlacementConstraints_emptyExpression
=== PAUSE TestAccECSService_PlacementConstraints_emptyExpression
=== RUN TestAccECSService_LaunchTypeFargate_basic
=== PAUSE TestAccECSService_LaunchTypeFargate_basic
=== RUN TestAccECSService_LaunchTypeFargate_platformVersion
=== PAUSE TestAccECSService_LaunchTypeFargate_platformVersion
=== RUN TestAccECSService_LaunchTypeFargate_waitForSteadyState
=== PAUSE TestAccECSService_LaunchTypeFargate_waitForSteadyState
=== RUN TestAccECSService_LaunchTypeFargate_updateWaitForSteadyState
=== PAUSE TestAccECSService_LaunchTypeFargate_updateWaitForSteadyState
=== RUN TestAccECSService_LaunchTypeEC2_network
=== PAUSE TestAccECSService_LaunchTypeEC2_network
=== RUN TestAccECSService_DaemonSchedulingStrategy_basic
=== PAUSE TestAccECSService_DaemonSchedulingStrategy_basic
=== RUN TestAccECSService_DaemonSchedulingStrategy_setDeploymentMinimum
=== PAUSE TestAccECSService_DaemonSchedulingStrategy_setDeploymentMinimum
=== RUN TestAccECSService_replicaSchedulingStrategy
=== PAUSE TestAccECSService_replicaSchedulingStrategy
=== RUN TestAccECSService_ServiceRegistries_basic
=== PAUSE TestAccECSService_ServiceRegistries_basic
=== RUN TestAccECSService_ServiceRegistries_container
=== PAUSE TestAccECSService_ServiceRegistries_container
=== RUN TestAccECSService_ServiceRegistries_changes
=== PAUSE TestAccECSService_ServiceRegistries_changes
=== RUN TestAccECSService_ServiceRegistries_removal
=== PAUSE TestAccECSService_ServiceRegistries_removal
=== RUN TestAccECSService_ServiceConnect_basic
=== PAUSE TestAccECSService_ServiceConnect_basic
=== RUN TestAccECSService_ServiceConnect_full
=== PAUSE TestAccECSService_ServiceConnect_full
=== RUN TestAccECSService_ServiceConnect_tls_with_empty_timeout
=== PAUSE TestAccECSService_ServiceConnect_tls_with_empty_timeout
=== RUN TestAccECSService_ServiceConnect_ingressPortOverride
=== PAUSE TestAccECSService_ServiceConnect_ingressPortOverride
=== RUN TestAccECSService_ServiceConnect_remove
=== PAUSE TestAccECSService_ServiceConnect_remove
=== RUN TestAccECSService_ServiceConnect_outOfBandRemoval
=== PAUSE TestAccECSService_ServiceConnect_outOfBandRemoval
=== RUN TestAccECSService_Tags_basic
=== PAUSE TestAccECSService_Tags_basic
=== RUN TestAccECSService_Tags_managed
=== PAUSE TestAccECSService_Tags_managed
=== RUN TestAccECSService_Tags_UpgradeFromV5_100_0
=== PAUSE TestAccECSService_Tags_UpgradeFromV5_100_0
=== RUN TestAccECSService_Tags_UpgradeFromV5_100_0ThroughV6_08_0
=== PAUSE TestAccECSService_Tags_UpgradeFromV5_100_0ThroughV6_08_0
=== RUN TestAccECSService_Tags_propagate
=== PAUSE TestAccECSService_Tags_propagate
=== RUN TestAccECSService_executeCommand
=== PAUSE TestAccECSService_executeCommand
=== RUN TestAccECSService_AvailabilityZoneRebalancing
=== PAUSE TestAccECSService_AvailabilityZoneRebalancing
=== RUN TestAccECSService_LinearDeployment_basic
=== PAUSE TestAccECSService_LinearDeployment_basic
=== RUN TestAccECSService_LinearDeployment_outOfBandRemoval
=== PAUSE TestAccECSService_LinearDeployment_outOfBandRemoval
=== RUN TestAccECSService_LinearDeployment_createFailure
=== PAUSE TestAccECSService_LinearDeployment_createFailure
=== RUN TestAccECSService_LinearDeployment_changeStrategy
=== PAUSE TestAccECSService_LinearDeployment_changeStrategy
=== RUN TestAccECSService_LinearDeployment_updateFailure
=== PAUSE TestAccECSService_LinearDeployment_updateFailure
=== RUN TestAccECSService_LinearDeployment_updateInPlace
=== PAUSE TestAccECSService_LinearDeployment_updateInPlace
=== RUN TestAccECSService_LinearDeployment_waitServiceActive
=== PAUSE TestAccECSService_LinearDeployment_waitServiceActive
=== RUN TestAccECSService_CanaryDeployment_basic
=== PAUSE TestAccECSService_CanaryDeployment_basic
=== RUN TestAccECSService_CanaryDeployment_outOfBandRemoval
=== PAUSE TestAccECSService_CanaryDeployment_outOfBandRemoval
=== RUN TestAccECSService_CanaryDeployment_createFailure
=== PAUSE TestAccECSService_CanaryDeployment_createFailure
=== RUN TestAccECSService_CanaryDeployment_changeStrategy
=== PAUSE TestAccECSService_CanaryDeployment_changeStrategy
=== RUN TestAccECSService_CanaryDeployment_updateFailure
=== PAUSE TestAccECSService_CanaryDeployment_updateFailure
=== RUN TestAccECSService_CanaryDeployment_updateInPlace
=== PAUSE TestAccECSService_CanaryDeployment_updateInPlace
=== RUN TestAccECSService_CanaryDeployment_waitServiceActive
=== PAUSE TestAccECSService_CanaryDeployment_waitServiceActive
=== CONT TestAccECSServiceDataSource_basic
=== CONT TestAccECSService_forceNewDeployment
=== CONT TestAccECSService_DeploymentValues_basic
=== CONT TestAccECSService_BlueGreenDeployment_createFailure
=== CONT TestAccECSService_ServiceConnect_outOfBandRemoval
=== CONT TestAccECSService_DaemonSchedulingStrategy_setDeploymentMinimum
=== CONT TestAccECSService_DeploymentControllerType_codeDeployUpdateDesiredCountAndHealthCheckGracePeriod
=== CONT TestAccECSService_multipleTargetGroups
=== CONT TestAccECSService_alb
=== CONT TestAccECSService_clusterName
=== CONT TestAccECSService_loadBalancerChanges
=== CONT TestAccECSService_deploymentCircuitBreaker
=== CONT TestAccECSService_DeploymentValues_minZeroMaxOneHundred
=== CONT TestAccECSService_LaunchTypeFargate_basic
=== CONT TestAccECSService_CapacityProviderStrategy_forceNewDeployment
--- PASS: TestAccECSService_DaemonSchedulingStrategy_setDeploymentMinimum (42.47s)
=== CONT TestAccECSService_BlueGreenDeployment_waitServiceActive
--- PASS: TestAccECSService_forceNewDeployment (62.69s)
=== CONT TestAccECSService_DeploymentConfiguration_strategy
--- PASS: TestAccECSService_DeploymentValues_minZeroMaxOneHundred (63.51s)
=== CONT TestAccECSService_BlueGreenDeployment_withoutTestListenerRule
--- PASS: TestAccECSService_deploymentCircuitBreaker (63.68s)
=== CONT TestAccECSService_alarmsUpdate
=== CONT TestAccECSService_BlueGreenDeployment_circuitBreakerRollback
--- PASS: TestAccECSService_DeploymentValues_basic (63.76s)
--- PASS: TestAccECSServiceDataSource_basic (73.76s)
=== CONT TestAccECSService_BlueGreenDeployment_outOfBandRemoval
--- PASS: TestAccECSService_clusterName (74.09s)
=== CONT TestAccECSService_BlueGreenDeployment_basic
--- PASS: TestAccECSService_LaunchTypeFargate_basic (87.03s)
=== CONT TestAccECSService_VolumeConfiguration_throughputTypeChange
--- PASS: TestAccECSService_CapacityProviderStrategy_forceNewDeployment (87.79s)
=== CONT TestAccECSService_DeploymentControllerType_codeDeploy
--- PASS: TestAccECSService_alarmsUpdate (80.17s)
=== CONT TestAccECSService_iamRole
--- PASS: TestAccECSService_DeploymentConfiguration_strategy (88.83s)
=== CONT TestAccECSService_healthCheckGracePeriodSeconds
=== CONT TestAccECSService_familyAndRevision
--- PASS: TestAccECSService_VolumeConfiguration_throughputTypeChange (85.50s)
--- PASS: TestAccECSService_iamRole (38.73s)
=== CONT TestAccECSService_BlueGreenDeployment_updateFailure
--- PASS: TestAccECSService_ServiceConnect_outOfBandRemoval (193.07s)
=== CONT TestAccECSService_BlueGreenDeployment_updateInPlace
--- PASS: TestAccECSService_familyAndRevision (79.58s)
=== CONT TestAccECSService_VolumeConfiguration_volumeInitializationRate
--- PASS: TestAccECSService_multipleTargetGroups (271.82s)
=== CONT TestAccECSService_VolumeConfiguration_update
--- PASS: TestAccECSService_loadBalancerChanges (273.12s)
=== CONT TestAccECSService_VolumeConfiguration_tagSpecifications
--- PASS: TestAccECSService_alb (285.78s)
=== CONT TestAccECSService_VolumeConfiguration_basic
--- PASS: TestAccECSService_BlueGreenDeployment_createFailure (341.34s)
=== CONT TestAccECSService_ServiceConnect_basic
--- PASS: TestAccECSService_VolumeConfiguration_update (82.54s)
=== CONT TestAccECSService_ServiceConnect_remove
--- PASS: TestAccECSService_BlueGreenDeployment_waitServiceActive (316.78s)
=== CONT TestAccECSService_ServiceConnect_ingressPortOverride
--- PASS: TestAccECSService_VolumeConfiguration_basic (74.27s)
=== CONT TestAccECSService_ServiceConnect_tls_with_empty_timeout
--- PASS: TestAccECSService_VolumeConfiguration_tagSpecifications (100.28s)
=== CONT TestAccECSService_ServiceConnect_full
--- PASS: TestAccECSService_VolumeConfiguration_volumeInitializationRate (123.38s)
=== CONT TestAccECSService_DeploymentControllerMutability_codeDeployToECS
--- PASS: TestAccECSService_DeploymentControllerType_codeDeploy (294.21s)
=== CONT TestAccECSService_alarmsAdd
--- PASS: TestAccECSService_healthCheckGracePeriodSeconds (288.14s)
=== CONT TestAccECSService_Identity_Basic
--- PASS: TestAccECSService_alarmsAdd (68.85s)
=== CONT TestAccECSService_CapacityProviderStrategy_basic
--- PASS: TestAccECSService_DeploymentControllerType_codeDeployUpdateDesiredCountAndHealthCheckGracePeriod (483.10s)
=== CONT TestAccECSService_PlacementStrategy_unnormalized
--- PASS: TestAccECSService_ServiceConnect_remove (147.03s)
=== CONT TestAccECSService_LatticeConfigurations
--- PASS: TestAccECSService_ServiceConnect_basic (161.73s)
=== CONT TestAccECSService_disappears
--- PASS: TestAccECSService_Identity_Basic (72.89s)
=== CONT TestAccECSService_Identity_RegionOverride
--- PASS: TestAccECSService_ServiceConnect_ingressPortOverride (166.42s)
=== CONT TestAccECSService_ServiceRegistries_container
--- PASS: TestAccECSService_ServiceConnect_tls_with_empty_timeout (167.63s)
=== CONT TestAccECSService_ServiceRegistries_removal
--- PASS: TestAccECSService_CapacityProviderStrategy_basic (86.45s)
=== CONT TestAccECSService_ServiceRegistries_changes
--- PASS: TestAccECSService_ServiceConnect_full (167.30s)
=== CONT TestAccECSService_CapacityProviderStrategy_update
--- PASS: TestAccECSService_PlacementStrategy_unnormalized (59.13s)
=== CONT TestAccECSService_executeCommand
--- PASS: TestAccECSService_Identity_RegionOverride (59.25s)
=== CONT TestAccECSService_LinearDeployment_createFailure
--- PASS: TestAccECSService_executeCommand (68.91s)
=== CONT TestAccECSService_LinearDeployment_outOfBandRemoval
--- PASS: TestAccECSService_DeploymentControllerMutability_codeDeployToECS (261.59s)
=== CONT TestAccECSService_LinearDeployment_basic
--- PASS: TestAccECSService_CapacityProviderStrategy_update (97.25s)
=== CONT TestAccECSService_AvailabilityZoneRebalancing
--- PASS: TestAccECSService_ServiceRegistries_removal (118.23s)
=== CONT TestAccECSService_LaunchTypeFargate_updateWaitForSteadyState
--- PASS: TestAccECSService_ServiceRegistries_container (143.69s)
=== CONT TestAccECSService_DaemonSchedulingStrategy_basic
--- PASS: TestAccECSService_disappears (190.56s)
=== CONT TestAccECSService_LaunchTypeEC2_network
--- PASS: TestAccECSService_DaemonSchedulingStrategy_basic (38.13s)
=== CONT TestAccECSService_CanaryDeployment_createFailure
--- PASS: TestAccECSService_AvailabilityZoneRebalancing (76.10s)
=== CONT TestAccECSService_LinearDeployment_changeStrategy
--- PASS: TestAccECSService_LaunchTypeEC2_network (66.47s)
=== CONT TestAccECSService_CanaryDeployment_waitServiceActive
--- PASS: TestAccECSService_ServiceRegistries_changes (233.93s)
=== CONT TestAccECSService_CanaryDeployment_updateInPlace
--- PASS: TestAccECSService_LaunchTypeFargate_updateWaitForSteadyState (239.08s)
=== CONT TestAccECSService_CanaryDeployment_outOfBandRemoval
--- PASS: TestAccECSService_LinearDeployment_basic (322.49s)
=== CONT TestAccECSService_CanaryDeployment_updateFailure
--- PASS: TestAccECSService_LinearDeployment_outOfBandRemoval (402.84s)
=== CONT TestAccECSService_CanaryDeployment_basic
--- PASS: TestAccECSService_CanaryDeployment_waitServiceActive (286.71s)
=== CONT TestAccECSService_CanaryDeployment_changeStrategy
--- PASS: TestAccECSService_LinearDeployment_changeStrategy (343.96s)
=== CONT TestAccECSService_LinearDeployment_waitServiceActive
--- PASS: TestAccECSService_BlueGreenDeployment_outOfBandRemoval (1001.98s)
=== CONT TestAccECSService_LinearDeployment_updateInPlace
--- PASS: TestAccECSService_CanaryDeployment_updateInPlace (406.71s)
=== CONT TestAccECSService_LinearDeployment_updateFailure
--- PASS: TestAccECSService_CanaryDeployment_outOfBandRemoval (322.71s)
=== CONT TestAccECSService_LaunchTypeFargate_waitForSteadyState
--- PASS: TestAccECSService_LatticeConfigurations (730.34s)
=== CONT TestAccECSService_DeploymentControllerType_external
--- PASS: TestAccECSService_DeploymentControllerType_external (32.37s)
=== CONT TestAccECSServiceDataSource_canaryDeployment
--- PASS: TestAccECSService_BlueGreenDeployment_updateInPlace (1075.84s)
=== CONT TestAccECSService_basic
--- PASS: TestAccECSService_BlueGreenDeployment_updateFailure (1114.54s)
=== CONT TestAccECSServiceDataSource_deploymentConfiguration
--- PASS: TestAccECSService_CanaryDeployment_basic (310.80s)
=== CONT TestAccECSServiceDataSource_fullConfiguration
--- PASS: TestAccECSService_basic (71.88s)
=== CONT TestAccECSService_Tags_UpgradeFromV5_100_0
--- PASS: TestAccECSService_LinearDeployment_waitServiceActive (306.75s)
=== CONT TestAccECSService_ServiceRegistries_basic
--- PASS: TestAccECSService_LaunchTypeFargate_waitForSteadyState (176.49s)
=== CONT TestAccECSService_Tags_propagate
--- PASS: TestAccECSService_CanaryDeployment_changeStrategy (339.95s)
=== CONT TestAccECSService_Tags_UpgradeFromV5_100_0ThroughV6_08_0
--- PASS: TestAccECSServiceDataSource_fullConfiguration (74.46s)
=== CONT TestAccECSService_LaunchTypeFargate_platformVersion
--- PASS: TestAccECSService_Tags_UpgradeFromV5_100_0 (87.99s)
=== CONT TestAccECSService_Tags_managed
--- PASS: TestAccECSService_Tags_propagate (56.14s)
=== CONT TestAccECSService_Tags_basic
--- PASS: TestAccECSService_LinearDeployment_updateInPlace (386.64s)
=== CONT TestAccECSServiceDataSource_loadBalancer
--- PASS: TestAccECSService_LaunchTypeFargate_platformVersion (87.52s)
=== CONT TestAccECSService_PlacementStrategy_missing
--- PASS: TestAccECSService_PlacementStrategy_missing (0.72s)
=== CONT TestAccECSService_PlacementStrategy_basic
--- PASS: TestAccECSService_Tags_UpgradeFromV5_100_0ThroughV6_08_0 (110.39s)
=== CONT TestAccECSService_PlacementConstraints_emptyExpression
--- PASS: TestAccECSService_Tags_managed (70.77s)
=== CONT TestAccECSService_BlueGreenDeployment_changeStrategy
--- PASS: TestAccECSService_ServiceRegistries_basic (142.88s)
=== CONT TestAccECSService_replicaSchedulingStrategy
--- PASS: TestAccECSService_Tags_basic (68.19s)
=== CONT TestAccECSService_forceNewDeploymentTriggers
--- PASS: TestAccECSService_CanaryDeployment_createFailure (809.51s)
=== CONT TestAccECSService_PlacementConstraints_basic
--- PASS: TestAccECSService_BlueGreenDeployment_basic (1470.96s)
--- PASS: TestAccECSService_LinearDeployment_createFailure (978.84s)
--- PASS: TestAccECSService_PlacementConstraints_emptyExpression (70.08s)
--- PASS: TestAccECSService_replicaSchedulingStrategy (59.62s)
--- PASS: TestAccECSService_forceNewDeploymentTriggers (58.83s)
--- PASS: TestAccECSService_PlacementStrategy_basic (88.08s)
--- PASS: TestAccECSServiceDataSource_canaryDeployment (316.27s)
--- PASS: TestAccECSServiceDataSource_deploymentConfiguration (286.30s)
--- PASS: TestAccECSService_PlacementConstraints_basic (70.28s)
--- PASS: TestAccECSServiceDataSource_loadBalancer (304.88s)
--- PASS: TestAccECSService_BlueGreenDeployment_withoutTestListenerRule (1833.45s)
--- PASS: TestAccECSService_CanaryDeployment_updateFailure (942.87s)
--- PASS: TestAccECSService_LinearDeployment_updateFailure (1044.04s)
--- PASS: TestAccECSService_BlueGreenDeployment_changeStrategy (1948.09s)
--- PASS: TestAccECSService_BlueGreenDeployment_circuitBreakerRollback (3391.47s)
PASS
ok github.com/hashicorp/terraform-provider-aws/internal/service/ecs 3461.473s |
|
Warning This Issue has been closed, meaning that any additional comments are much easier for the maintainers to miss. Please assume that the maintainers will not see them. Ongoing conversations amongst community members are welcome, however, the issue will be locked after 30 days. Moving conversations to another venue, such as the AWS Provider forum, is recommended. If you have additional concerns, please open a new issue, referencing this one where needed. |
|
Thanks @h-g-gervais for the contribution!! |
|
This functionality has been released in v6.21.0 of the Terraform AWS Provider. Please see the Terraform documentation on provider versioning or reach out if you need any assistance upgrading. For further feature requests or bug reports with this functionality, please create a new GitHub issue following the template. Thank you! |
|
I'm going to lock this pull request because it has been closed for 30 days ⏳. This helps our maintainers find and focus on the active issues. |
Description
We add support for new deployment strategies of AWS::ECS::Service. The new strategies are Linear and Canary deployments.
Relations
Closes #44883
Closes #9842
References
Output from Acceptance Testing
The failure below is from a known issue.