Skip to content

Commit b454213

Browse files
authored
test(integ): add deletion-ordering-complex ELBv2 destroy-ordering integ (#863)
1 parent 69bdd65 commit b454213

16 files changed

Lines changed: 770 additions & 15 deletions

docs/_generated/integ-coverage.json

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -718,11 +718,15 @@
718718
{
719719
"resourceType": "AWS::EC2::Instance",
720720
"integs": [
721+
"deletion-ordering-complex",
721722
"ec2-instance",
722723
"propagation-races-2",
723724
"remove-protection"
724725
],
725726
"signals": {
727+
"deletion-ordering-complex": [
728+
"l2"
729+
],
726730
"ec2-instance": [
727731
"l1"
728732
],
@@ -743,6 +747,7 @@
743747
"batch",
744748
"bench-cdk-sample",
745749
"cache-streaming",
750+
"deletion-ordering-complex",
746751
"destroy-interrupt",
747752
"docdb-neptune",
748753
"drift-revert-arrays",
@@ -782,6 +787,9 @@
782787
"cache-streaming": [
783788
"l2"
784789
],
790+
"deletion-ordering-complex": [
791+
"l2"
792+
],
785793
"destroy-interrupt": [
786794
"l2"
787795
],
@@ -859,6 +867,7 @@
859867
"batch",
860868
"bench-cdk-sample",
861869
"cache-streaming",
870+
"deletion-ordering-complex",
862871
"destroy-interrupt",
863872
"docdb-neptune",
864873
"drift-revert-arrays",
@@ -898,6 +907,9 @@
898907
"cache-streaming": [
899908
"l2"
900909
],
910+
"deletion-ordering-complex": [
911+
"l2"
912+
],
901913
"destroy-interrupt": [
902914
"l2"
903915
],
@@ -997,6 +1009,7 @@
9971009
"batch",
9981010
"bench-cdk-sample",
9991011
"cache-streaming",
1012+
"deletion-ordering-complex",
10001013
"destroy-interrupt",
10011014
"docdb-neptune",
10021015
"drift-revert-arrays",
@@ -1036,6 +1049,9 @@
10361049
"cache-streaming": [
10371050
"l2"
10381051
],
1052+
"deletion-ordering-complex": [
1053+
"l2"
1054+
],
10391055
"destroy-interrupt": [
10401056
"l2"
10411057
],
@@ -1113,6 +1129,7 @@
11131129
"batch",
11141130
"bench-cdk-sample",
11151131
"cache-streaming",
1132+
"deletion-ordering-complex",
11161133
"destroy-interrupt",
11171134
"docdb-neptune",
11181135
"drift-revert-arrays",
@@ -1152,6 +1169,9 @@
11521169
"cache-streaming": [
11531170
"l2"
11541171
],
1172+
"deletion-ordering-complex": [
1173+
"l2"
1174+
],
11551175
"destroy-interrupt": [
11561176
"l2"
11571177
],
@@ -1229,6 +1249,7 @@
12291249
"batch",
12301250
"bench-cdk-sample",
12311251
"cache-streaming",
1252+
"deletion-ordering-complex",
12321253
"destroy-interrupt",
12331254
"docdb-neptune",
12341255
"drift-revert-arrays",
@@ -1265,6 +1286,9 @@
12651286
"cache-streaming": [
12661287
"l2"
12671288
],
1289+
"deletion-ordering-complex": [
1290+
"l2"
1291+
],
12681292
"destroy-interrupt": [
12691293
"l2"
12701294
],
@@ -1350,6 +1374,7 @@
13501374
"batch",
13511375
"bench-cdk-sample",
13521376
"cache-streaming",
1377+
"deletion-ordering-complex",
13531378
"destroy-interrupt",
13541379
"docdb-neptune",
13551380
"drift-revert-arrays",
@@ -1389,6 +1414,9 @@
13891414
"cache-streaming": [
13901415
"l2"
13911416
],
1417+
"deletion-ordering-complex": [
1418+
"l2"
1419+
],
13921420
"destroy-interrupt": [
13931421
"l2"
13941422
],
@@ -1477,6 +1505,7 @@
14771505
"batch",
14781506
"bench-cdk-sample",
14791507
"cache-streaming",
1508+
"deletion-ordering-complex",
14801509
"destroy-interrupt",
14811510
"docdb-neptune",
14821511
"drift-revert-arrays",
@@ -1516,6 +1545,9 @@
15161545
"cache-streaming": [
15171546
"l2"
15181547
],
1548+
"deletion-ordering-complex": [
1549+
"l2"
1550+
],
15191551
"destroy-interrupt": [
15201552
"l2"
15211553
],
@@ -1593,6 +1625,7 @@
15931625
"batch",
15941626
"bench-cdk-sample",
15951627
"cache-streaming",
1628+
"deletion-ordering-complex",
15961629
"destroy-interrupt",
15971630
"docdb-neptune",
15981631
"drift-revert-arrays",
@@ -1632,6 +1665,9 @@
16321665
"cache-streaming": [
16331666
"l2"
16341667
],
1668+
"deletion-ordering-complex": [
1669+
"l2"
1670+
],
16351671
"destroy-interrupt": [
16361672
"l2"
16371673
],
@@ -1710,6 +1746,7 @@
17101746
"batch",
17111747
"bench-cdk-sample",
17121748
"cache-streaming",
1749+
"deletion-ordering-complex",
17131750
"destroy-interrupt",
17141751
"docdb-neptune",
17151752
"drift-revert-arrays",
@@ -1749,6 +1786,9 @@
17491786
"cache-streaming": [
17501787
"l2"
17511788
],
1789+
"deletion-ordering-complex": [
1790+
"l2"
1791+
],
17521792
"destroy-interrupt": [
17531793
"l2"
17541794
],
@@ -2065,13 +2105,17 @@
20652105
"resourceType": "AWS::ElasticLoadBalancingV2::Listener",
20662106
"integs": [
20672107
"alb",
2108+
"deletion-ordering-complex",
20682109
"local-start-alb",
20692110
"local-start-alb-from-state"
20702111
],
20712112
"signals": {
20722113
"alb": [
20732114
"literal"
20742115
],
2116+
"deletion-ordering-complex": [
2117+
"literal"
2118+
],
20752119
"local-start-alb": [
20762120
"l1",
20772121
"literal"
@@ -2086,6 +2130,7 @@
20862130
"integs": [
20872131
"alb",
20882132
"alb-advanced",
2133+
"deletion-ordering-complex",
20892134
"drift-revert-vpc",
20902135
"local-start-alb",
20912136
"local-start-alb-from-state",
@@ -2098,6 +2143,10 @@
20982143
"alb-advanced": [
20992144
"l2"
21002145
],
2146+
"deletion-ordering-complex": [
2147+
"l2",
2148+
"literal"
2149+
],
21012150
"drift-revert-vpc": [
21022151
"l2",
21032152
"literal"
@@ -2120,13 +2169,17 @@
21202169
"resourceType": "AWS::ElasticLoadBalancingV2::TargetGroup",
21212170
"integs": [
21222171
"alb",
2172+
"deletion-ordering-complex",
21232173
"local-start-alb",
21242174
"local-start-alb-from-state"
21252175
],
21262176
"signals": {
21272177
"alb": [
21282178
"literal"
21292179
],
2180+
"deletion-ordering-complex": [
2181+
"literal"
2182+
],
21302183
"local-start-alb": [
21312184
"l1",
21322185
"literal"

docs/_generated/integ-last-run.tsv

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,3 +132,4 @@ update-replace 2026-06-13T11:42:29Z PASS 71 verify.sh #831 +Lambda/IAM/SG not-fo
132132
destroy-interrupt 2026-06-13T11:42:29Z PASS 581 verify.sh #831 +SG/IAM not-found post-destroy; #816+#804 verified; 0 orphan
133133
throttle-wide-dag 2026-06-14T04:35:46Z PASS verify.sh bug15 throttle-retry validated deploy+destroy clean
134134
importvalue-chain 2026-06-14T04:47:40Z PASS verify.sh fixture-fix: deploy C with --exclusively (avoid producer-chain global-param collision); clean 0 orphans
135+
deletion-ordering-complex 2026-06-14T05:02:58Z PASS verify.sh ELBv2 destroy-order PASSES (DependencyViolation retry handles LB ENI race); predicted-fail did not materialize; 0 orphans

docs/_generated/scenario-coverage.json

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,10 @@
6868
"tag": "dynamic-reference-resolution",
6969
"description": "CloudFormation dynamic references (`{{resolve:secretsmanager:...}}` / `{{resolve:ssm:...}}`) resolved by cdkd itself (`resolveDynamicReferences`) BEFORE the property reaches the provider — JSON-key (`:SecretString:<key>`), whole-secret, and version-stage forms + plaintext SSM param; the deployed resource carries the RESOLVED value, never the literal token. (`ssm-secure:` is NOT resolved by cdkd and is intentionally out of scope.)"
7070
},
71+
{
72+
"tag": "elbv2-listener-tg-lb-deletion-order",
73+
"description": "ELBv2 destroy ordering web: Listener/ListenerRule before TargetGroup (ResourceInUse), TG + Listener before the LoadBalancer, and the LB hyperplane ENI + registered-target ENI release before Subnet/SecurityGroup delete (DependencyViolation)."
74+
},
7175
{
7276
"tag": "eventsourcemapping-fresh-source-race",
7377
"description": "`AWS::Lambda::EventSourceMapping` created against a FRESH source (SQS/Kinesis/DynamoDB-stream) + a FRESH execution role in the SAME deploy: the ESM create races source-readiness + role/policy propagation (cdkd dispatches with no level barrier), AND the orphan-ESM-on-redeploy collision class (a killed mid-deploy leaves an out-of-state ESM that collides on the next CREATE). The fixture pre-flight-scans for orphan ESMs by stack name, asserts the ESM reaches Enabled + actually delivers a probe message to the Lambda, and asserts no orphan ESM survives destroy."
@@ -452,6 +456,13 @@
452456
"deep-getatt-chain-resolution"
453457
]
454458
},
459+
{
460+
"name": "deletion-ordering-complex",
461+
"annotated": true,
462+
"scenarios": [
463+
"elbv2-listener-tg-lb-deletion-order"
464+
]
465+
},
455466
{
456467
"name": "deletion-policy-retain",
457468
"annotated": true,
@@ -1358,6 +1369,13 @@
13581369
"secrets-dynamic-ref"
13591370
]
13601371
},
1372+
{
1373+
"scenario": "elbv2-listener-tg-lb-deletion-order",
1374+
"description": "ELBv2 destroy ordering web: Listener/ListenerRule before TargetGroup (ResourceInUse), TG + Listener before the LoadBalancer, and the LB hyperplane ENI + registered-target ENI release before Subnet/SecurityGroup delete (DependencyViolation).",
1375+
"fixtures": [
1376+
"deletion-ordering-complex"
1377+
]
1378+
},
13611379
{
13621380
"scenario": "eventsourcemapping-fresh-source-race",
13631381
"description": "`AWS::Lambda::EventSourceMapping` created against a FRESH source (SQS/Kinesis/DynamoDB-stream) + a FRESH execution role in the SAME deploy: the ESM create races source-readiness + role/policy propagation (cdkd dispatches with no level barrier), AND the orphan-ESM-on-redeploy collision class (a killed mid-deploy leaves an out-of-state ESM that collides on the next CREATE). The fixture pre-flight-scans for orphan ESMs by stack name, asserts the ESM reaches Enabled + actually delivers a probe message to the Lambda, and asserts no orphan ESM survives destroy.",

0 commit comments

Comments
 (0)