Open stephanpelikan opened 2 days ago
Hi @stephanpelikan , thanks for reaching out.
You have put the removal policy to retain
.
removal_policy (Optional[[RemovalPolicy](https://docs.aws.amazon.com/cdk/api/v2/python/aws_cdk/RemovalPolicy.html#aws_cdk.RemovalPolicy)]) – The removal policy to apply when the cluster and its instances are removed from the stack or replaced during an update. Default: - RemovalPolicy.SNAPSHOT (remove the cluster and instances, but retain a snapshot of the data)
The error "DELETE_SKIPPED" might be due to the deletion policy of the cluster. Could you please disable the deletion policy like removalPolicy: RemovalPolicy.DESTROY
and see if that solves the issue.
Let me know if it works for you!
@stephanpelikan Good afternoon. Using your code below:
import * as cdk from 'aws-cdk-lib';
import * as ec2 from 'aws-cdk-lib/aws-ec2';
import * as rds from 'aws-cdk-lib/aws-rds';
export class RdsStack extends cdk.Stack {
constructor(scope: cdk.App, id: string, props?: cdk.StackProps) {
super(scope, id, props);
// aws rds describe-db-engine-versions --engine aurora-postgresql --filter "Name=engine-mode,Values=serverless"
const AURORA_POSTGRES_ENGINE_VERSION = rds.AuroraPostgresEngineVersion.VER_15_6;
const RDS_MAJOR_VERSION = AURORA_POSTGRES_ENGINE_VERSION.auroraPostgresMajorVersion.split('.')[0];
const APP_NAME = 'TestRdsClusterStack'
const vpc = new ec2.Vpc(this, 'RdsVpc');
const parameterGroup = rds.ParameterGroup.fromParameterGroupName(
this,
"PostgreSqlParameterGroup",
`default.aurora-postgresql${RDS_MAJOR_VERSION}`
);
const cluster = new rds.DatabaseCluster(this, 'PostgresqlCluster', {
clusterIdentifier: APP_NAME,
engine: rds.DatabaseClusterEngine.AURORA_POSTGRESQL,
vpc: vpc,
vpcSubnets: {
subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS
} as ec2.SubnetSelection,
parameterGroup,
storageType: rds.DBClusterStorageType.AURORA_IOPT1,
serverlessV2MinCapacity: rds.AuroraCapacityUnit.ACU_1,
serverlessV2MaxCapacity: rds.AuroraCapacityUnit.ACU_2,
writer: rds.ClusterInstance.serverlessV2('writer', {
publiclyAccessible: false,
allowMajorVersionUpgrade: true,
autoMinorVersionUpgrade: true,
}),
readers: [
rds.ClusterInstance.serverlessV2('reader', {
publiclyAccessible: false,
allowMajorVersionUpgrade: true,
autoMinorVersionUpgrade: true,
// Cluster PostgresqlCluster only has serverless readers and no reader is in promotion tier 0-1.Serverless
// readers in promotion tiers >= 2 will NOT scale with the writer, which can lead to availability issues
// if a failover event occurs. It is recommended that at least one reader has `scaleWithWriter` set to true
scaleWithWriter: true,
}),
],
credentials: rds.Credentials.fromGeneratedSecret("root", { secretName: `${APP_NAME}-DB-root` }),
removalPolicy: cdk.RemovalPolicy.RETAIN,
instanceIdentifierBase: APP_NAME,
defaultDatabaseName: APP_NAME,
});
cluster.connections.allowDefaultPortFromAnyIpv4('For EKS cluster and other services of private VPC subnet');
// Enable the data api via "layer 1" shenanigans
// @ts-ignore
cluster.node.defaultChild.addOverride('Properties.EnableHttpEndpoint', true);
}
}
produces below CFN template:
As @khushail pointed out, in your CDK code, removalPolicy: cdk.RemovalPolicy.RETAIN
causes DeletionPolicy
for resource AWS::RDS::DBCluster
(and some other resources) to Retain
. This causes CloudFormation to skip resource deletion and when it tries to delete SecurityGroup, it fails since it has dependent resources.
Thanks, Ashish
Describe the bug
I created a RDS-cluster (see script below). After using it for a while I needed to destroy it. The
cdk destroy
command fails:This is a little bit strange because it wants to delete the security group first, before the cluster. Imho this fails because the cluster still uses the security group. I don't understand why the cluster, the reader and the writer is
DELETE_SKIPPED
. How to deal with this?Regression Issue
Last Known Working CDK Version
No response
Expected Behavior
On deleting an RDS-cluster everything is deleted in the correct order or is forced to be deleted.
Current Behavior
Deletion fails.
Reproduction Steps
This is the way I created the cluster:
Possible Solution
No response
Additional Information/Context
No response
CDK CLI Version
2.152.0 (build faa7d79)
Framework Version
No response
Node.js Version
v22.6.0
OS
macos
Language
TypeScript
Language Version
5.5.4
Other information
No response