crossplane-contrib / provider-upjet-aws

Official AWS Provider for Crossplane by Upbound.
https://marketplace.upbound.io/providers/upbound/provider-aws
Apache License 2.0
137 stars 112 forks source link

Support AWS RDS Cluster Status #1378

Open humoflife opened 6 days ago

humoflife commented 6 days ago

What problem are you facing?

RDS DB Clusters are reported as Ready: true or false, yet there are many facets of cluster status', that Crossplane and its users are not aware of, some of which may cause async errors, e.g. during upgrades.

One use case is being able to upgrade an RDS cluster and enabling Crossplane users to know that the cluster is upgrading, while there may be async errors.

How could Official AWS Provider help solve your problem?

Support the available RDS DB Cluster status conditions similar to how some of them are supported in the community AWS provider. See https://github.com/crossplane-contrib/provider-aws/blob/master/pkg/controller/rds/dbinstance/setup.go#L360 and https://github.com/crossplane-contrib/provider-aws/blob/master/pkg/controller/rds/dbcluster/setup.go#L113

See status information here

DB cluster status   Billed  Description
Available   Billed  

The DB cluster is healthy and available. When an Aurora Serverless cluster is available and paused, you're billed for storage only.
Backing-up  Billed  

The DB cluster is currently being backed up.
Backtracking    Billed  

The DB cluster is currently being backtracked. This status only applies to Aurora MySQL.
Cloning-failed  Not billed  

Cloning a DB cluster failed.
Creating    Not billed  

The DB cluster is being created. The DB cluster is inaccessible while it is being created.
Deleting    Not billed  

The DB cluster is being deleted.
Failing-over    Billed  

A failover from the primary instance to an Aurora Replica is being performed.
Inaccessible-encryption-credentials     Not billed  

The AWS KMS key used to encrypt or decrypt the DB cluster can't be accessed or recovered.

Inaccessible-encryption-credentials-recoverable
    Billed for storage  

The KMS key used to encrypt or decrypt the DB cluster can't be accessed. However, if the KMS key is active, restarting the DB cluster can recover it.

For more information, see [Encrypting an Amazon Aurora DB cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Overview.Encryption.html#Overview.Encryption.Enabling).
Maintenance     Billed  

Amazon RDS is applying a maintenance update to the DB cluster. This status is used for DB cluster-level maintenance that RDS schedules well in advance.
Migrating   Billed  

A DB cluster snapshot is being restored to a DB cluster.
Migration-failed    Not billed  

A migration failed.
Modifying   Billed  

The DB cluster is being modified because of a customer request to modify the DB cluster.
Promoting   Billed  

A read replica is being promoted to a standalone DB cluster.
Preparing-data-migration    Billed  

Amazon RDS is preparing to migrate data to Aurora.
Renaming    Billed  

The DB cluster is being renamed because of a customer request to rename it.
Resetting-master-credentials    Billed  

The master credentials for the DB cluster are being reset because of a customer request to reset them.
Starting    Billed for storage  

The DB cluster is starting.
Stopped     Billed for storage  

The DB cluster is stopped.
Stopping    Billed for storage  

The DB cluster is being stopped.
Storage-optimization    Billed  

Your DB instance is being modified to change the storage size or type. The DB instance is fully operational. However, while the status of your DB instance is storage-optimization, you can't request any changes to the storage of your DB instance. The storage optimization process is usually short, but can sometimes take up to and even beyond 24 hours.
Update-iam-db-auth  Billed  

IAM authorization for the DB cluster is being updated.
Upgrading   Billed  

The DB cluster engine version is being upgraded.