Install the AWS provider for Crossplane and configure a ProviderConfig with credentials; the RDS managed resource kind is typically RDSInstance or DBInstance depending on the provider family version—check the provider CRDs.
Create a CompositeResourceDefinition (XRD) that defines the custom API type (e.g., XDatabase) with the claim names and schema for inputs such as engine, instanceClass, and storageGB.
Write a Composition referencing the XRD that uses a function pipeline (or classic P&T patches) to map XR fields to the RDS managed resource spec fields such as spec.forProvider.dbInstanceClass.
Configure writeConnectionSecretToRef in the managed resource spec to store the generated endpoint, username, and password in a Kubernetes Secret; propagate the connection secret to the claim level via connectionDetails in the Composition.
Create a namespaced Claim resource (the kind defined in XRD's claimNames) in an application namespace; Crossplane creates the composite resource and the RDS instance automatically.
Wait for the managed resource status.conditions to include type: Ready with status: True before consuming the connection secret in application Deployments.
Known gotchas
In Crossplane v2, the XRD scope field defaults to Namespaced for composite resources; verify the scope and claimNames configuration match your intended usage—Cluster-scoped XRs cannot have claims.
RDS instance configuration fields such as region are immutable after creation; modifying them in the claim triggers a deletion and re-creation of the managed resource, causing downtime.
Connection secrets are only propagated to the claim namespace if the Composition explicitly lists the connection detail keys in spec.writeConnectionSecretsToNamespace or the connectionDetails block; missing this step leaves applications without database credentials.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp