Skip to content

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

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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions