Skip to content

rds DBInstance storage autoscaling causes allocatedStorage drift #2306

Description

@saatvik-chugh

What happened?

When RDS storage autoscaling is enabled by setting maxAllocatedStorage, AWS can increase the actual allocated storage for the DBInstance. After that happens, provider-aws appears to detect drift against the original allocatedStorage value and tries to reconcile the resource back to that lower value.

This creates reconciliation drift/noise and can cause failed updates because allocated storage cannot be decreased in RDS.

This was previously reported in #2255, but that issue was closed as stale/not planned. Opening a new issue because this is still affecting current usage.

How can we reproduce it?

  1. Create an RDS DBInstance with allocatedStorage and maxAllocatedStorage set.
  2. Allow RDS storage autoscaling to increase the allocated storage.
  3. Observe provider-aws reconciliation attempting to restore the original allocatedStorage value.

Conceptual example:

apiVersion: rds.aws.crossplane.io/v1alpha1
kind: DBInstance
spec:
  forProvider:
    region: us-east-1
    allocatedStorage: 100
    maxAllocatedStorage: 500

What environment did it happen in?

Provider version: v0.56.0 / v0.58.0
Crossplane version:
Kubernetes version:
AWS region:
Engine:
Instance class:

Expected behavior

When storage autoscaling is enabled, provider-aws should not try to decrease allocatedStorage back to the original spec value after AWS increases it. It should either treat AWS-increased allocated storage as late-initialized/observed state or otherwise avoid reconciling storage downward.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions