* refactor(datasource): separate registry URLs in cache keys with a colon Co-Authored-By: Claude Opus 5.5 <michael.kriese+claude-code@mend.io> Co-Authored-By: Claude Sonnet 5.5 <michael.kriese+claude-code@mend.io> * fix(datasource/go): separate the remaining cache key parts with a colon Co-Authored-By: Claude Opus 5.5 <michael.kriese+claude-code@mend.io> * refactor(datasource): build cache keys with a shared colon-joining helper Co-Authored-By: Claude Opus 5.5 <michael.kriese+claude-code@mend.io> * refactor: build all cache keys with buildCacheKey Co-Authored-By: Claude Opus 5.5 <michael.kriese+claude-code@mend.io> * refactor(http): keep GET package cache keys as the bare URL Co-Authored-By: Claude Opus 5.5 <michael.kriese+claude-code@mend.io> * refactor(cache): extend cache key helper to memory cache keys Co-Authored-By: Claude Opus 5.5 <michael.kriese+claude-code@mend.io> * refactor(datasource/go): prefix the goproxy cache keys with their purpose Co-Authored-By: Claude Opus 5.5 <michael.kriese+claude-code@mend.io> --------- Co-authored-by: Claude Opus 5.5 <michael.kriese+claude-code@mend.io>
This datasource returns the database engine versions available for use on AWS RDS via the AWS API.
Generally speaking, all publicly released database versions are available for use on RDS. However, new versions may not be available on RDS for a few weeks or months after their release while AWS tests them. In addition, AWS may pull existing versions if serious problems arise during their use.
!!! warning
The default versioning of the aws-rds datasource is not compatible with AWS Aurora!
If you use AWS Aurora, you must set your own custom versioning.
Scroll down to see an example.
AWS API configuration
See Calling AWS Services from Renovate for how to configure your credentials.
{
"Sid": "AllowDBEngineVersionLookup",
"Effect": "Allow",
"Action": ["rds:DescribeDBEngineVersions"],
"Resource": "*"
}
Read the AWS RDS IAM reference for more information.
Usage
Because Renovate has no manager for the AWS RDS datasource, you need to help Renovate by configuring the custom manager to identify the RDS dependencies you want updated.
When configuring the custom manager, you have to pass a filter as minified JSON as the packageName.
For example:
# Getting the latest supported MySQL 5.7 version from RDS as a filter would look like:
[
{
"Name": "engine",
"Values": [ "mysql" ]
},
{
"Name": "engine-version",
"Values": [ "5.7" ]
}
]
# In order to use it with this datasource, you have to minify it:
[{"Name":"engine","Values":["mysql"]},{"Name":"engine-version","Values":["5.7"]}]
{
"customManagers": [
{
"customType": "regex",
"managerFilePatterns": ["**.yaml"],
"matchStrings": [
".*rdsFilter=(?<packageName>.+?)[ ]*\n[ ]*(?<depName>[a-zA-Z0-9-_:]*)[ ]*?:[ ]*?[\"|']?(?<currentValue>[.\\d]+)[\"|']?.*"
],
"datasourceTemplate": "aws-rds"
}
]
}
The configuration above matches every YAML file, and recognizes these lines:
spec:
# rdsFilter=[{"Name":"engine","Values":["mysql"]},{"Name":"engine-version","Values":["5.7"]}]
engineVersion: 5.7.34
Using Terraform, aws-rds datasource and Aurora MySQL
Here is the Renovate configuration to use Terraform, aws-rds and Aurora MySQL:
{
"customManagers": [
{
"description": "Update RDS",
"customType": "regex",
"managerFilePatterns": ["/.+\\.tf$/"],
"matchStrings": [
"\\s*#\\s*renovate:\\s*rdsFilter=(?<packageName>.+?) depName=(?<depName>.*) versioning=(?<versioning>.*)\\s*.*_version\\s*=\\s*\"(?<currentValue>.*)\""
],
"datasourceTemplate": "aws-rds"
}
]
}
The above configuration is an example of updating an AWS RDS version inside a Terraform file, using a custom manager.
# renovate:rdsFilter=[{"Name":"engine","Values":["aurora-mysql"]},{"Name":"engine-version","Values":["8.0"]}] depName=aurora-mysql versioning=loose
engine_version = "8.0.mysql_aurora.3.05.2"