Skip to content

Commit

Permalink
Merge pull request crossplane-contrib#1932 from trystanleftwich/feat/…
Browse files Browse the repository at this point in the history
…add-ca-certi-to-rds-create-db-instance
  • Loading branch information
MisterMX authored Oct 25, 2023
2 parents c9ab2d7 + 40a969f commit 89347ab
Show file tree
Hide file tree
Showing 4 changed files with 141 additions and 17 deletions.
12 changes: 6 additions & 6 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ go 1.21
require (
github.com/aws-controllers-k8s/code-generator v0.26.1
github.com/aws/aws-sdk-go v1.44.334
github.com/aws/aws-sdk-go-v2 v1.16.16
github.com/aws/aws-sdk-go-v2 v1.17.3
github.com/aws/aws-sdk-go-v2/config v1.11.1
github.com/aws/aws-sdk-go-v2/credentials v1.6.5
github.com/aws/aws-sdk-go-v2/service/acm v1.10.0
Expand All @@ -19,15 +19,15 @@ require (
github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.10.0
github.com/aws/aws-sdk-go-v2/service/iam v1.14.0
github.com/aws/aws-sdk-go-v2/service/lambda v1.21.1
github.com/aws/aws-sdk-go-v2/service/rds v1.14.0
github.com/aws/aws-sdk-go-v2/service/rds v1.39.0
github.com/aws/aws-sdk-go-v2/service/redshift v1.17.0
github.com/aws/aws-sdk-go-v2/service/route53 v1.15.0
github.com/aws/aws-sdk-go-v2/service/route53resolver v1.10.2
github.com/aws/aws-sdk-go-v2/service/s3 v1.22.0
github.com/aws/aws-sdk-go-v2/service/sns v1.13.0
github.com/aws/aws-sdk-go-v2/service/sqs v1.14.0
github.com/aws/aws-sdk-go-v2/service/sts v1.12.0
github.com/aws/smithy-go v1.13.3
github.com/aws/smithy-go v1.13.5
github.com/crossplane/crossplane-runtime v1.13.0
github.com/crossplane/crossplane-tools v0.0.0-20230714144037-2684f4bc7638
github.com/evanphx/json-patch v4.12.0+incompatible
Expand Down Expand Up @@ -57,11 +57,11 @@ require (
github.com/aws-controllers-k8s/pkg v0.0.4 // indirect
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.0.0 // indirect
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.8.2 // indirect
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.23 // indirect
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.17 // indirect
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.27 // indirect
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.21 // indirect
github.com/aws/aws-sdk-go-v2/internal/ini v1.3.2 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.5.0 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.5.2 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.21 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.9.2 // indirect
github.com/aws/aws-sdk-go-v2/service/sso v1.7.0 // indirect
github.com/beorn7/perks v1.0.1 // indirect
Expand Down
19 changes: 12 additions & 7 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -99,8 +99,9 @@ github.com/aws/aws-sdk-go-v2 v1.10.0/go.mod h1:U/EyyVvKtzmFeQQcca7eBotKdlpcP2zzU
github.com/aws/aws-sdk-go-v2 v1.11.2/go.mod h1:SQfA+m2ltnu1cA0soUkj4dRSsmITiVQUJvBIZjzfPyQ=
github.com/aws/aws-sdk-go-v2 v1.16.2/go.mod h1:ytwTPBG6fXTZLxxeeCCWj2/EMYp/xDUgX+OET6TLNNU=
github.com/aws/aws-sdk-go-v2 v1.16.7/go.mod h1:6CpKuLXg2w7If3ABZCl/qZ6rEgwtjZTn4eAf4RcEyuw=
github.com/aws/aws-sdk-go-v2 v1.16.16 h1:M1fj4FE2lB4NzRb9Y0xdWsn2P0+2UHVxwKyOa4YJNjk=
github.com/aws/aws-sdk-go-v2 v1.16.16/go.mod h1:SwiyXi/1zTUZ6KIAmLK5V5ll8SiURNUYOqTerZPaF9k=
github.com/aws/aws-sdk-go-v2 v1.17.3 h1:shN7NlnVzvDUgPQ+1rLMSxY8OWRNDRYtiqe0p/PgrhY=
github.com/aws/aws-sdk-go-v2 v1.17.3/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw=
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.0.0 h1:yVUAwvJC/0WNPbyl0nA3j1L6CW1CN8wBubCRqtG7JLI=
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.0.0/go.mod h1:Xn6sxgRuIDflLRJFj5Ev7UxABIkNbccFPV/p8itDReM=
github.com/aws/aws-sdk-go-v2/config v1.11.1 h1:KXSjb7ZMLRtjxClFptukTYibiOqJS9NwBO+9WD3UMto=
Expand All @@ -112,13 +113,15 @@ github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.8.2/go.mod h1:dF2F6tXEOgmW5X1ZF
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.2/go.mod h1:SgKKNBIoDC/E1ZCDhhMW3yalWjwuLjMcpLzsM/QQnWo=
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.9/go.mod h1:AnVH5pvai0pAF4lXRq0bmhbes1u9R8wTE+g+183bZNM=
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.14/go.mod h1:kdjrMwHwrC3+FsKhNcCMJ7tUVj/8uSD5CZXeQ4wV6fM=
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.23 h1:s4g/wnzMf+qepSNgTvaQQHNxyMLKSawNhKCPNy++2xY=
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.23/go.mod h1:2DFxAQ9pfIRy0imBCJv+vZ2X6RKxves6fbnEuSry6b4=
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.27 h1:I3cakv2Uy1vNmmhRQmFptYDxOvBnwCdNwyw63N0RaRU=
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.27/go.mod h1:a1/UpzeyBBerajpnP5nGZa9mGzsBn5cOKxm6NWQsvoI=
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.0.2/go.mod h1:xT4XX6w5Sa3dhg50JrYyy3e4WPYo/+WjY/BXtqXVunU=
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.3/go.mod h1:ssOhaLpRlh88H3UmEcsBoVKq309quMvm3Ds8e9d4eJM=
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.8/go.mod h1:ZIV8GYoC6WLBW5KGs+o4rsc65/ozd+eQ0L31XF5VDwk=
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.17 h1:/K482T5A3623WJgWT8w1yRAFK4RzGzEl7y39yhtn9eA=
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.17/go.mod h1:pRwaTYCJemADaqCbUAxltMoHKata7hmB5PjEXeu0kfg=
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.21 h1:5NbbMrIzmUn/TXFqAle6mgrH5m9cOvMLRGL7pnG8tRE=
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.21/go.mod h1:+Gxn8jYn5k9ebfHEqlhrMirFjSW0v0C9fI+KN5vk2kE=
github.com/aws/aws-sdk-go-v2/internal/ini v1.3.2 h1:IQup8Q6lorXeiA/rK72PeToWoWK8h7VAPgHNWdSrtgE=
github.com/aws/aws-sdk-go-v2/internal/ini v1.3.2/go.mod h1:VITe/MdW6EMXPb0o0txu/fsonXbMHUU2OC2Qp7ivU4o=
github.com/aws/aws-sdk-go-v2/service/acm v1.10.0 h1:h00NJuGEVi36k1BkVMpJQRRyye2SaPaCv2tQD0rm/uE=
Expand All @@ -143,14 +146,15 @@ github.com/aws/aws-sdk-go-v2/service/iam v1.14.0 h1:j4rKVLd4ASdTCWqCxt/p99S6BpA6
github.com/aws/aws-sdk-go-v2/service/iam v1.14.0/go.mod h1:O13Qz5IqQmrLCQYw8l4luBDLNxOIlCAYUS0i+0ySOTk=
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.5.0 h1:lPLbw4Gn59uoKqvOfSnkJr54XWk5Ak1NK20ZEiSWb3U=
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.5.0/go.mod h1:80NaCIH9YU3rzTTs/J/ECATjXuRqzo/wB6ukO6MZ0XY=
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.5.2 h1:CKdUNKmuilw/KNmO2Q53Av8u+ZyXMC2M9aX8Z+c/gzg=
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.5.2/go.mod h1:FgR1tCsn8C6+Hf+N5qkfrE4IXvUL1RgW87sunJ+5J4I=
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.21 h1:5C6XgTViSb0bunmU57b3CT+MhxULqHH2721FVA+/kDM=
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.21/go.mod h1:lRToEJsn+DRA9lW4O9L9+/3hjTkUzlzyzHqn8MTds5k=
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.9.2 h1:GnPGH1FGc4fkn0Jbm/8r2+nPOwSJjYPyHSqFSvY1ii8=
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.9.2/go.mod h1:eDUYjOYt4Uio7xfHi5jOsO393ZG8TSfZB92a3ZNadWM=
github.com/aws/aws-sdk-go-v2/service/lambda v1.21.1 h1:xS9qXT9z7w59VoK4XI3rxe+GkpDRHgVd4lxapEJW7bE=
github.com/aws/aws-sdk-go-v2/service/lambda v1.21.1/go.mod h1:1/klj5RfSVnRVLC6qnZYnJqL8RcKhi4KHDm5BwnilOY=
github.com/aws/aws-sdk-go-v2/service/rds v1.14.0 h1:5b2q6oYmh2pZA6Ys2kPnzlKfKT+Z7s5hn4RGHBDOTmg=
github.com/aws/aws-sdk-go-v2/service/rds v1.14.0/go.mod h1:Dw97zw/NALZ7oB0NLSGbRNXO9aPkip5cDnjSgudHbCE=
github.com/aws/aws-sdk-go-v2/service/rds v1.39.0 h1:SnusHwHQWMZxlS5gvRfzsg1Odq7gWl3STP4aUIqzRGE=
github.com/aws/aws-sdk-go-v2/service/rds v1.39.0/go.mod h1:Ume9NHqT871hUdxIRojWtWsPFyCswQmSjHHhyGot7v0=
github.com/aws/aws-sdk-go-v2/service/redshift v1.17.0 h1:MhHapcuStJuX86Pk9+H6d3pk46xUpdV48NkEItRMyOc=
github.com/aws/aws-sdk-go-v2/service/redshift v1.17.0/go.mod h1:MFxHzFKSXjT0CUjOpTaeeuqxcP6+uuQMvzkhTEdIEUM=
github.com/aws/aws-sdk-go-v2/service/route53 v1.15.0 h1:TtL2aQTyJ/6HOpySI81wUcz5CaLNLCblBEprVYemK/g=
Expand All @@ -171,8 +175,9 @@ github.com/aws/smithy-go v1.8.1/go.mod h1:SObp3lf9smib00L/v3U2eAKG8FyQ7iLrJnQiAm
github.com/aws/smithy-go v1.9.0/go.mod h1:SObp3lf9smib00L/v3U2eAKG8FyQ7iLrJnQiAmR5n+E=
github.com/aws/smithy-go v1.11.2/go.mod h1:3xHYmszWVx2c0kIwQeEVf9uSm4fYZt67FBJnwub1bgM=
github.com/aws/smithy-go v1.12.0/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA=
github.com/aws/smithy-go v1.13.3 h1:l7LYxGuzK6/K+NzJ2mC+VvLUbae0sL3bXU//04MkmnA=
github.com/aws/smithy-go v1.13.3/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA=
github.com/aws/smithy-go v1.13.5 h1:hgz0X/DX0dGqTYpGALqXJoRKRj5oQ7150i5FdTePzO8=
github.com/aws/smithy-go v1.13.5/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA=
github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8=
github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
Expand Down
1 change: 1 addition & 0 deletions pkg/clients/database/rds.go
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ func GenerateCreateRDSInstanceInput(name, password string, p *v1beta1.RDSInstanc
AutoMinorVersionUpgrade: p.AutoMinorVersionUpgrade,
AvailabilityZone: p.AvailabilityZone,
BackupRetentionPeriod: pointer.Int32Address(p.BackupRetentionPeriod),
CACertificateIdentifier: p.CACertificateIdentifier,
CharacterSetName: p.CharacterSetName,
CopyTagsToSnapshot: p.CopyTagsToSnapshot,
DBClusterIdentifier: p.DBClusterIdentifier,
Expand Down
126 changes: 122 additions & 4 deletions pkg/clients/database/rds_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,20 +43,23 @@ import (
)

var (
allFieldsName = "allfieldsName"
allocatedStorage int32 = 20
address = "address"
arn = "my:arn"
az = "az"
characterSetName = "utf8"
clusterName = "testCluster"
dbName = "example-name"
dbSecurityGroups = []string{"test"}
description = "testDescription"
domain = "domain"
enableCloudwatchExports = []string{"test"}
enabledCloudwatchExports = []string{"test"}
enabledCloudwatchExportsNone = []string{}
engine = "5.6.41"
falseFlag = false
iamRole = "iamRole"
instanceClass = "class"
kmsID = "kms"
monitoring = 3
Expand All @@ -79,6 +82,7 @@ var (
username = "username"
value = "testValue"
vpc = "vpc"
vpcIds = []string{"test"}
window = "window"
zone = "zone"

Expand Down Expand Up @@ -1255,11 +1259,7 @@ func TestLateInitialize(t *testing.T) {
}

func TestGenerateModifyDBInstanceInput(t *testing.T) {
dbSecurityGroups := []string{name}
allFieldsName := "allfieldsName"
emptyName := "emptyProcessor"
iamRole := "iamRole"
vpcIds := []string{name}

cases := map[string]struct {
name string
Expand Down Expand Up @@ -1388,3 +1388,121 @@ func TestGenerateModifyDBInstanceInput(t *testing.T) {
})
}
}

func TestGenerateCreateRDSInstanceInput(t *testing.T) {
cases := map[string]struct {
name string
password string
params v1beta1.RDSInstanceParameters
want rds.CreateDBInstanceInput
}{
"AllFields": {
name: allFieldsName,
params: v1beta1.RDSInstanceParameters{
AllocatedStorage: &storage,
DBInstanceClass: instanceClass,
ApplyModificationsImmediately: &trueFlag,
Engine: engine,
EngineVersion: &engine,
AutoMinorVersionUpgrade: &trueFlag,
AllowMajorVersionUpgrade: &trueFlag,
AvailabilityZone: &az,
BackupRetentionPeriod: &retention,
CACertificateIdentifier: &name,
CharacterSetName: &name,
CopyTagsToSnapshot: &trueFlag,
DBClusterIdentifier: &clusterName,
DBName: &name,
DBParameterGroupName: &name,
DeletionProtection: &trueFlag,
Domain: &domain,
DomainIAMRoleName: &iamRole,
EnableIAMDatabaseAuthentication: &trueFlag,
EnablePerformanceInsights: &trueFlag,
IOPS: &storage,
KMSKeyID: &kmsID,
LicenseModel: &name,
MasterUsername: &username,
MonitoringInterval: &monitoring,
MonitoringRoleARN: &arn,
MultiAZ: &multiAZ,
OptionGroupName: &name,
PerformanceInsightsKMSKeyID: &kmsID,
PerformanceInsightsRetentionPeriod: &retention,
Port: &port,
PreferredBackupWindow: &window,
PreferredMaintenanceWindow: &window,
PromotionTier: &tier,
PubliclyAccessible: &trueFlag,
StorageEncrypted: &trueFlag,
StorageType: &storageType,
Timezone: &zone,
DBSecurityGroups: dbSecurityGroups,
DBSubnetGroupName: &name,
EnableCloudwatchLogsExports: enableCloudwatchExports,
ProcessorFeatures: []v1beta1.ProcessorFeature{{
Name: name,
Value: value,
}},
VPCSecurityGroupIDs: vpcIds,
UseDefaultProcessorFeatures: &trueFlag,
},
want: rds.CreateDBInstanceInput{
DBInstanceIdentifier: &allFieldsName,
AvailabilityZone: &az,
AllocatedStorage: &storage32,
AutoMinorVersionUpgrade: &trueFlag,
BackupRetentionPeriod: &retention32,
CACertificateIdentifier: &name,
CharacterSetName: &name,
CopyTagsToSnapshot: &trueFlag,
DBClusterIdentifier: &clusterName,
DBInstanceClass: &instanceClass,
DBName: &name,
DBParameterGroupName: &name,
DBSecurityGroups: dbSecurityGroups,
DBSubnetGroupName: &name,
DeletionProtection: &trueFlag,
Domain: &domain,
DomainIAMRoleName: &iamRole,
EnableIAMDatabaseAuthentication: &trueFlag,
EnableCloudwatchLogsExports: enableCloudwatchExports,
EnablePerformanceInsights: &trueFlag,
Engine: &engine,
EngineVersion: &engine,
Iops: &storage32,
KmsKeyId: &kmsID,
LicenseModel: &name,
MasterUsername: &username,
MonitoringInterval: &monitoring32,
MonitoringRoleArn: &arn,
MultiAZ: &multiAZ,
OptionGroupName: &name,
PerformanceInsightsRetentionPeriod: &retention32,
PerformanceInsightsKMSKeyId: &kmsID,
Port: &port32,
PreferredBackupWindow: &window,
PreferredMaintenanceWindow: &window,
PromotionTier: &tier32,
PubliclyAccessible: &trueFlag,
StorageEncrypted: &trueFlag,
StorageType: &storageType,
Timezone: &zone,
VpcSecurityGroupIds: vpcIds,
ProcessorFeatures: []rdstypes.ProcessorFeature{{
Name: &name,
Value: &value,
}},
},
},
}

for name, tc := range cases {
t.Run(name, func(t *testing.T) {
got := GenerateCreateRDSInstanceInput(tc.name, tc.password, &tc.params)
if diff := cmp.Diff(&tc.want, got, cmpopts.IgnoreTypes(document.NoSerde{})); diff != "" {
t.Errorf("r: -want, +got:\n%s", diff)
}
})
}
}

0 comments on commit 89347ab

Please sign in to comment.