Skip to content

chore: remove aws-sdk-go-cache dependency #271

@tekenstam

Description

@tekenstam

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions