Summary
Remove the `keikoproj/aws-sdk-go-cache` dependency from lifecycle-manager. The library is built on AWS SDK for Go v1 (EOL July 2025) and provides response caching that is no longer needed.
Background
See keikoproj/instance-manager#525 for the full deprecation rationale.
TL;DR: AWS API rate limiting hasn't been an issue in practice, and AWS SDK v2's built-in standard retry mode (token-bucket rate limiting + exponential backoff) handles throttling well out of the box.
Current Usage
lifecycle-manager caches 6 ELB/ELBv2 operations:
| Service |
Operation |
TTL |
| ELBv2 |
DescribeTargetHealth |
120s |
| ELBv2 |
DescribeTargetGroups |
300s |
| ELBv2 |
DeregisterTargets |
(non-mutating flag only) |
| ELB |
DescribeLoadBalancers |
300s |
| ELB |
DescribeInstanceHealth |
120s |
| ELB |
DeregisterInstancesFromLoadBalancer |
(non-mutating flag only) |
Files to Modify
- `cmd/common.go` — remove cache config and `NewCacheConfig`
- `cmd/serve.go` — remove cache import
- `go.mod` / `go.sum` — remove `keikoproj/aws-sdk-go-cache` dependency
Migration Path
This can be done standalone or as part of a future AWS SDK v2 migration:
- Replace `cache.NewSession()` with standard session/config construction
- The `DeregisterTargets` / `DeregisterInstancesFromLoadBalancer` non-mutating flags become irrelevant (they only prevented cache invalidation)
- AWS SDK v2 standard retry mode is the default — no extra code needed
- Run `go mod tidy` to clean up
Summary
Remove the `keikoproj/aws-sdk-go-cache` dependency from lifecycle-manager. The library is built on AWS SDK for Go v1 (EOL July 2025) and provides response caching that is no longer needed.
Background
See keikoproj/instance-manager#525 for the full deprecation rationale.
TL;DR: AWS API rate limiting hasn't been an issue in practice, and AWS SDK v2's built-in standard retry mode (token-bucket rate limiting + exponential backoff) handles throttling well out of the box.
Current Usage
lifecycle-manager caches 6 ELB/ELBv2 operations:
Files to Modify
Migration Path
This can be done standalone or as part of a future AWS SDK v2 migration: