Skip to content

Commit

Permalink
Add support for RAC rolling OS patching
Browse files Browse the repository at this point in the history
  • Loading branch information
dbbh committed Dec 12, 2023
1 parent 2a740f7 commit 5964d31
Show file tree
Hide file tree
Showing 4 changed files with 67 additions and 2 deletions.
19 changes: 18 additions & 1 deletion aws-rds-customdbengineversion/aws-rds-customdbengineversion.json
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,18 @@
"type": "string",
"description": "The ARN of the custom engine version."
},
"SourceCustomDBEngineVersionIdentifier": {
"type": "string",
"description": "The identifier of the source custom engine version."
},
"UseAwsProvidedLatestImage": {
"type": "boolean",
"description": "A value that indicates whether AWS provided latest image is applied automatically to the Custom Engine Version. By default, AWS provided latest image is applied automatically."
},
"ImageId": {
"type": "string",
"description": "The identifier of Amazon Machine Image (AMI) used for CEV."
},
"Status": {
"type": "string",
"description": "The availability status to be assigned to the CEV.",
Expand Down Expand Up @@ -103,7 +115,6 @@
"/properties/KMSKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KMSKeyId])"
},
"required": [
"DatabaseInstallationFilesS3BucketName",
"Engine",
"EngineVersion"
],
Expand All @@ -128,8 +139,14 @@
"handlers": {
"create": {
"permissions": [
"ec2:CopySnapshot",
"ec2:DeleteSnapshot",
"ec2:DescribeSnapshots",
"kms:CreateGrant",
"kms:Decrypt,",
"kms:DescribeKey",
"kms:GenerateDataKey",
"kms:ReEncrypt",
"mediaimport:CreateDatabaseBinarySnapshot",
"rds:AddTagsToResource",
"rds:CreateCustomDBEngineVersion",
Expand Down
38 changes: 37 additions & 1 deletion aws-rds-customdbengineversion/docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@ To declare this entity in your AWS CloudFormation template, use the following sy
"<a href="#engineversion" title="EngineVersion">EngineVersion</a>" : <i>String</i>,
"<a href="#kmskeyid" title="KMSKeyId">KMSKeyId</a>" : <i>String</i>,
"<a href="#manifest" title="Manifest">Manifest</a>" : <i>String</i>,
"<a href="#sourcecustomdbengineversionidentifier" title="SourceCustomDBEngineVersionIdentifier">SourceCustomDBEngineVersionIdentifier</a>" : <i>String</i>,
"<a href="#useawsprovidedlatestimage" title="UseAwsProvidedLatestImage">UseAwsProvidedLatestImage</a>" : <i>Boolean</i>,
"<a href="#imageid" title="ImageId">ImageId</a>" : <i>String</i>,
"<a href="#status" title="Status">Status</a>" : <i>String</i>,
"<a href="#tags" title="Tags">Tags</a>" : <i>[ <a href="tag.md">Tag</a>, ... ]</i>
}
Expand All @@ -37,6 +40,9 @@ Properties:
<a href="#engineversion" title="EngineVersion">EngineVersion</a>: <i>String</i>
<a href="#kmskeyid" title="KMSKeyId">KMSKeyId</a>: <i>String</i>
<a href="#manifest" title="Manifest">Manifest</a>: <i>String</i>
<a href="#sourcecustomdbengineversionidentifier" title="SourceCustomDBEngineVersionIdentifier">SourceCustomDBEngineVersionIdentifier</a>: <i>String</i>
<a href="#useawsprovidedlatestimage" title="UseAwsProvidedLatestImage">UseAwsProvidedLatestImage</a>: <i>Boolean</i>
<a href="#imageid" title="ImageId">ImageId</a>: <i>String</i>
<a href="#status" title="Status">Status</a>: <i>String</i>
<a href="#tags" title="Tags">Tags</a>: <i>
- <a href="tag.md">Tag</a></i>
Expand All @@ -48,7 +54,7 @@ Properties:

The name of an Amazon S3 bucket that contains database installation files for your CEV. For example, a valid bucket name is `my-custom-installation-files`.

_Required_: Yes
_Required_: No

_Type_: String

Expand Down Expand Up @@ -142,6 +148,36 @@ _Maximum Length_: <code>51000</code>

_Update requires_: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

#### SourceCustomDBEngineVersionIdentifier

The identifier of the source custom engine version.

_Required_: No

_Type_: String

_Update requires_: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

#### UseAwsProvidedLatestImage

A value that indicates whether AWS provided latest image is applied automatically to the Custom Engine Version. By default, AWS provided latest image is applied automatically.

_Required_: No

_Type_: Boolean

_Update requires_: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

#### ImageId

The identifier of Amazon Machine Image (AMI) used for CEV.

_Required_: No

_Type_: String

_Update requires_: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

#### Status

The availability status to be assigned to the CEV.
Expand Down
6 changes: 6 additions & 0 deletions aws-rds-customdbengineversion/resource-role.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,14 @@ Resources:
Statement:
- Effect: Allow
Action:
- "ec2:CopySnapshot"
- "ec2:DeleteSnapshot"
- "ec2:DescribeSnapshots"
- "kms:CreateGrant"
- "kms:Decrypt,"
- "kms:DescribeKey"
- "kms:GenerateDataKey"
- "kms:ReEncrypt"
- "mediaimport:CreateDatabaseBinarySnapshot"
- "rds:AddTagsToResource"
- "rds:CreateCustomDBEngineVersion"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,12 @@ public static CreateCustomDbEngineVersionRequest createCustomDbEngineVersionRequ
.description(model.getDescription())
.engine(model.getEngine())
.engineVersion(model.getEngineVersion())
.imageId(model.getImageId())
.kmsKeyId(model.getKMSKeyId())
.manifest(model.getManifest())
.sourceCustomDbEngineVersionIdentifier(model.getSourceCustomDBEngineVersionIdentifier())
.tags(Tagging.translateTagsToSdk(tags))
.useAwsProvidedLatestImage(model.getUseAwsProvidedLatestImage())
.build();
}

Expand Down Expand Up @@ -108,9 +111,12 @@ static ResourceModel translateFromSdk(
.description(engineVersion.dbEngineVersionDescription())
.engine(engineVersion.engine())
.engineVersion(engineVersion.engineVersion())
.imageId(engineVersion.getImageId())
.kMSKeyId(engineVersion.kmsKeyId())
.sourceCustomDbEngineVersionIdentifier(engineVersion.getSourceCustomDBEngineVersionIdentifier())
.status(engineVersion.status())
.tags(translateTagsFromSdk(engineVersion.tagList()))
.useAwsProvidedLatestImage(engineVersion.getUseAwsProvidedLatestImage())
.build();
}

Expand Down

0 comments on commit 5964d31

Please sign in to comment.