From 413c2a3901daa1d683e57184cccf8ac62a39ce82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fatih=20T=C3=BCrken?= Date: Fri, 12 Jan 2024 14:30:01 +0300 Subject: [PATCH] Fix Instance.rds external-name configuration MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fatih Türken --- apis/rds/v1beta1/zz_generated.deepcopy.go | 30 +++++++++++++++++++ apis/rds/v1beta1/zz_generated.resolvers.go | 16 +++++----- apis/rds/v1beta1/zz_instance_types.go | 22 ++++++++++++++ .../zz_instanceroleassociation_types.go | 2 ++ apis/rds/v1beta1/zz_proxytarget_types.go | 2 ++ apis/rds/v1beta1/zz_snapshot_types.go | 2 ++ config/externalname.go | 2 +- .../controller/rds/instance/zz_controller.go | 1 - .../crds/rds.aws.upbound.io_instances.yaml | 21 +++++++++++++ 9 files changed, 88 insertions(+), 10 deletions(-) diff --git a/apis/rds/v1beta1/zz_generated.deepcopy.go b/apis/rds/v1beta1/zz_generated.deepcopy.go index 7b9857079e..b3d198ca34 100644 --- a/apis/rds/v1beta1/zz_generated.deepcopy.go +++ b/apis/rds/v1beta1/zz_generated.deepcopy.go @@ -5550,6 +5550,16 @@ func (in *InstanceInitParameters) DeepCopyInto(out *InstanceInitParameters) { *out = new(bool) **out = **in } + if in.Identifier != nil { + in, out := &in.Identifier, &out.Identifier + *out = new(string) + **out = **in + } + if in.IdentifierPrefix != nil { + in, out := &in.IdentifierPrefix, &out.IdentifierPrefix + *out = new(string) + **out = **in + } if in.InstanceClass != nil { in, out := &in.InstanceClass, &out.InstanceClass *out = new(string) @@ -6008,6 +6018,16 @@ func (in *InstanceObservation) DeepCopyInto(out *InstanceObservation) { *out = new(string) **out = **in } + if in.Identifier != nil { + in, out := &in.Identifier, &out.Identifier + *out = new(string) + **out = **in + } + if in.IdentifierPrefix != nil { + in, out := &in.IdentifierPrefix, &out.IdentifierPrefix + *out = new(string) + **out = **in + } if in.InstanceClass != nil { in, out := &in.InstanceClass, &out.InstanceClass *out = new(string) @@ -6413,6 +6433,16 @@ func (in *InstanceParameters) DeepCopyInto(out *InstanceParameters) { *out = new(bool) **out = **in } + if in.Identifier != nil { + in, out := &in.Identifier, &out.Identifier + *out = new(string) + **out = **in + } + if in.IdentifierPrefix != nil { + in, out := &in.IdentifierPrefix, &out.IdentifierPrefix + *out = new(string) + **out = **in + } if in.InstanceClass != nil { in, out := &in.InstanceClass, &out.InstanceClass *out = new(string) diff --git a/apis/rds/v1beta1/zz_generated.resolvers.go b/apis/rds/v1beta1/zz_generated.resolvers.go index bd4af210a9..b169ae769c 100644 --- a/apis/rds/v1beta1/zz_generated.resolvers.go +++ b/apis/rds/v1beta1/zz_generated.resolvers.go @@ -923,7 +923,7 @@ func (mg *Instance) ResolveReferences(ctx context.Context, c client.Reader) erro rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.ReplicateSourceDB), - Extract: reference.ExternalName(), + Extract: resource.ExtractParamPath("identifier", false), Reference: mg.Spec.ForProvider.ReplicateSourceDBRef, Selector: mg.Spec.ForProvider.ReplicateSourceDBSelector, To: reference.To{ @@ -1035,7 +1035,7 @@ func (mg *Instance) ResolveReferences(ctx context.Context, c client.Reader) erro rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ CurrentValue: reference.FromPtrValue(mg.Spec.InitProvider.ReplicateSourceDB), - Extract: reference.ExternalName(), + Extract: resource.ExtractParamPath("identifier", false), Reference: mg.Spec.InitProvider.ReplicateSourceDBRef, Selector: mg.Spec.InitProvider.ReplicateSourceDBSelector, To: reference.To{ @@ -1077,7 +1077,7 @@ func (mg *InstanceRoleAssociation) ResolveReferences(ctx context.Context, c clie rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.DBInstanceIdentifier), - Extract: reference.ExternalName(), + Extract: resource.ExtractParamPath("identifier", false), Reference: mg.Spec.ForProvider.DBInstanceIdentifierRef, Selector: mg.Spec.ForProvider.DBInstanceIdentifierSelector, To: reference.To{ @@ -1109,7 +1109,7 @@ func (mg *InstanceRoleAssociation) ResolveReferences(ctx context.Context, c clie rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ CurrentValue: reference.FromPtrValue(mg.Spec.InitProvider.DBInstanceIdentifier), - Extract: reference.ExternalName(), + Extract: resource.ExtractParamPath("identifier", false), Reference: mg.Spec.InitProvider.DBInstanceIdentifierRef, Selector: mg.Spec.InitProvider.DBInstanceIdentifierSelector, To: reference.To{ @@ -1363,7 +1363,7 @@ func (mg *ProxyTarget) ResolveReferences(ctx context.Context, c client.Reader) e rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.DBInstanceIdentifier), - Extract: reference.ExternalName(), + Extract: resource.ExtractParamPath("identifier", false), Reference: mg.Spec.ForProvider.DBInstanceIdentifierRef, Selector: mg.Spec.ForProvider.DBInstanceIdentifierSelector, To: reference.To{ @@ -1395,7 +1395,7 @@ func (mg *ProxyTarget) ResolveReferences(ctx context.Context, c client.Reader) e rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ CurrentValue: reference.FromPtrValue(mg.Spec.InitProvider.DBInstanceIdentifier), - Extract: reference.ExternalName(), + Extract: resource.ExtractParamPath("identifier", false), Reference: mg.Spec.InitProvider.DBInstanceIdentifierRef, Selector: mg.Spec.InitProvider.DBInstanceIdentifierSelector, To: reference.To{ @@ -1437,7 +1437,7 @@ func (mg *Snapshot) ResolveReferences(ctx context.Context, c client.Reader) erro rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.DBInstanceIdentifier), - Extract: reference.ExternalName(), + Extract: resource.ExtractParamPath("identifier", false), Reference: mg.Spec.ForProvider.DBInstanceIdentifierRef, Selector: mg.Spec.ForProvider.DBInstanceIdentifierSelector, To: reference.To{ @@ -1453,7 +1453,7 @@ func (mg *Snapshot) ResolveReferences(ctx context.Context, c client.Reader) erro rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ CurrentValue: reference.FromPtrValue(mg.Spec.InitProvider.DBInstanceIdentifier), - Extract: reference.ExternalName(), + Extract: resource.ExtractParamPath("identifier", false), Reference: mg.Spec.InitProvider.DBInstanceIdentifierRef, Selector: mg.Spec.InitProvider.DBInstanceIdentifierSelector, To: reference.To{ diff --git a/apis/rds/v1beta1/zz_instance_types.go b/apis/rds/v1beta1/zz_instance_types.go index 134f7263b5..da8c4a9960 100755 --- a/apis/rds/v1beta1/zz_instance_types.go +++ b/apis/rds/v1beta1/zz_instance_types.go @@ -152,6 +152,12 @@ type InstanceInitParameters struct { // accounts is enabled. IAMDatabaseAuthenticationEnabled *bool `json:"iamDatabaseAuthenticationEnabled,omitempty" tf:"iam_database_authentication_enabled,omitempty"` + // Required if restore_to_point_in_time is specified. + Identifier *string `json:"identifier,omitempty" tf:"identifier,omitempty"` + + // Creates a unique identifier beginning with the specified prefix. Conflicts with identifier. + IdentifierPrefix *string `json:"identifierPrefix,omitempty" tf:"identifier_prefix,omitempty"` + // The instance type of the RDS instance. InstanceClass *string `json:"instanceClass,omitempty" tf:"instance_class,omitempty"` @@ -282,6 +288,7 @@ type InstanceInitParameters struct { // PostgreSQL and MySQL Read Replicas // for more information on using Replication. // +crossplane:generate:reference:type=github.com/upbound/provider-aws/apis/rds/v1beta1.Instance + // +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractParamPath("identifier",false) ReplicateSourceDB *string `json:"replicateSourceDb,omitempty" tf:"replicate_source_db,omitempty"` // Reference to a Instance in rds to populate replicateSourceDb. @@ -479,6 +486,12 @@ type InstanceObservation struct { // RDS DBI resource ID. ID *string `json:"id,omitempty" tf:"id,omitempty"` + // Required if restore_to_point_in_time is specified. + Identifier *string `json:"identifier,omitempty" tf:"identifier,omitempty"` + + // Creates a unique identifier beginning with the specified prefix. Conflicts with identifier. + IdentifierPrefix *string `json:"identifierPrefix,omitempty" tf:"identifier_prefix,omitempty"` + // The instance type of the RDS instance. InstanceClass *string `json:"instanceClass,omitempty" tf:"instance_class,omitempty"` @@ -790,6 +803,14 @@ type InstanceParameters struct { // +kubebuilder:validation:Optional IAMDatabaseAuthenticationEnabled *bool `json:"iamDatabaseAuthenticationEnabled,omitempty" tf:"iam_database_authentication_enabled,omitempty"` + // Required if restore_to_point_in_time is specified. + // +kubebuilder:validation:Optional + Identifier *string `json:"identifier,omitempty" tf:"identifier,omitempty"` + + // Creates a unique identifier beginning with the specified prefix. Conflicts with identifier. + // +kubebuilder:validation:Optional + IdentifierPrefix *string `json:"identifierPrefix,omitempty" tf:"identifier_prefix,omitempty"` + // The instance type of the RDS instance. // +kubebuilder:validation:Optional InstanceClass *string `json:"instanceClass,omitempty" tf:"instance_class,omitempty"` @@ -952,6 +973,7 @@ type InstanceParameters struct { // PostgreSQL and MySQL Read Replicas // for more information on using Replication. // +crossplane:generate:reference:type=github.com/upbound/provider-aws/apis/rds/v1beta1.Instance + // +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractParamPath("identifier",false) // +kubebuilder:validation:Optional ReplicateSourceDB *string `json:"replicateSourceDb,omitempty" tf:"replicate_source_db,omitempty"` diff --git a/apis/rds/v1beta1/zz_instanceroleassociation_types.go b/apis/rds/v1beta1/zz_instanceroleassociation_types.go index 84cd90c272..7f9c19e4e7 100755 --- a/apis/rds/v1beta1/zz_instanceroleassociation_types.go +++ b/apis/rds/v1beta1/zz_instanceroleassociation_types.go @@ -21,6 +21,7 @@ type InstanceRoleAssociationInitParameters struct { // DB Instance Identifier to associate with the IAM Role. // +crossplane:generate:reference:type=github.com/upbound/provider-aws/apis/rds/v1beta1.Instance + // +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractParamPath("identifier",false) DBInstanceIdentifier *string `json:"dbInstanceIdentifier,omitempty" tf:"db_instance_identifier,omitempty"` // Reference to a Instance in rds to populate dbInstanceIdentifier. @@ -67,6 +68,7 @@ type InstanceRoleAssociationParameters struct { // DB Instance Identifier to associate with the IAM Role. // +crossplane:generate:reference:type=github.com/upbound/provider-aws/apis/rds/v1beta1.Instance + // +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractParamPath("identifier",false) // +kubebuilder:validation:Optional DBInstanceIdentifier *string `json:"dbInstanceIdentifier,omitempty" tf:"db_instance_identifier,omitempty"` diff --git a/apis/rds/v1beta1/zz_proxytarget_types.go b/apis/rds/v1beta1/zz_proxytarget_types.go index 4b4d6e125e..0b313885eb 100755 --- a/apis/rds/v1beta1/zz_proxytarget_types.go +++ b/apis/rds/v1beta1/zz_proxytarget_types.go @@ -24,6 +24,7 @@ type ProxyTargetInitParameters struct { // DB instance identifier. // +crossplane:generate:reference:type=github.com/upbound/provider-aws/apis/rds/v1beta1.Instance + // +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractParamPath("identifier",false) DBInstanceIdentifier *string `json:"dbInstanceIdentifier,omitempty" tf:"db_instance_identifier,omitempty"` // Reference to a Instance in rds to populate dbInstanceIdentifier. @@ -94,6 +95,7 @@ type ProxyTargetParameters struct { // DB instance identifier. // +crossplane:generate:reference:type=github.com/upbound/provider-aws/apis/rds/v1beta1.Instance + // +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractParamPath("identifier",false) // +kubebuilder:validation:Optional DBInstanceIdentifier *string `json:"dbInstanceIdentifier,omitempty" tf:"db_instance_identifier,omitempty"` diff --git a/apis/rds/v1beta1/zz_snapshot_types.go b/apis/rds/v1beta1/zz_snapshot_types.go index a41d6180cc..7c9c536c0f 100755 --- a/apis/rds/v1beta1/zz_snapshot_types.go +++ b/apis/rds/v1beta1/zz_snapshot_types.go @@ -21,6 +21,7 @@ type SnapshotInitParameters struct { // The DB Instance Identifier from which to take the snapshot. // +crossplane:generate:reference:type=github.com/upbound/provider-aws/apis/rds/v1beta1.Instance + // +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractParamPath("identifier",false) DBInstanceIdentifier *string `json:"dbInstanceIdentifier,omitempty" tf:"db_instance_identifier,omitempty"` // Reference to a Instance in rds to populate dbInstanceIdentifier. @@ -113,6 +114,7 @@ type SnapshotParameters struct { // The DB Instance Identifier from which to take the snapshot. // +crossplane:generate:reference:type=github.com/upbound/provider-aws/apis/rds/v1beta1.Instance + // +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractParamPath("identifier",false) // +kubebuilder:validation:Optional DBInstanceIdentifier *string `json:"dbInstanceIdentifier,omitempty" tf:"db_instance_identifier,omitempty"` diff --git a/config/externalname.go b/config/externalname.go index ef8c562978..73da3e859c 100644 --- a/config/externalname.go +++ b/config/externalname.go @@ -567,7 +567,7 @@ var NoForkExternalNameConfigs = map[string]config.ExternalName{ // rds // "aws_rds_cluster": config.ParameterAsIdentifier("cluster_identifier"), - "aws_db_instance": config.ParameterAsIdentifier("identifier"), + "aws_db_instance": config.IdentifierFromProvider, "aws_db_parameter_group": config.NameAsIdentifier, "aws_db_subnet_group": config.NameAsIdentifier, // aws_db_instance_role_association can be imported using the DB Instance Identifier and IAM Role ARN separated by a comma diff --git a/internal/controller/rds/instance/zz_controller.go b/internal/controller/rds/instance/zz_controller.go index f56f998667..a437fa4945 100755 --- a/internal/controller/rds/instance/zz_controller.go +++ b/internal/controller/rds/instance/zz_controller.go @@ -34,7 +34,6 @@ func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { for _, i := range o.Provider.Resources["aws_db_instance"].InitializerFns { initializers = append(initializers, i(mgr.GetClient())) } - initializers = append(initializers, managed.NewNameAsExternalName(mgr.GetClient())) cps := []managed.ConnectionPublisher{managed.NewAPISecretPublisher(mgr.GetClient(), mgr.GetScheme())} if o.SecretStoreConfigGVK != nil { cps = append(cps, connection.NewDetailsManager(mgr.GetClient(), *o.SecretStoreConfigGVK, connection.WithTLSConfig(o.ESSOptions.TLSConfig))) diff --git a/package/crds/rds.aws.upbound.io_instances.yaml b/package/crds/rds.aws.upbound.io_instances.yaml index 7fc67b70c4..b97c39c114 100644 --- a/package/crds/rds.aws.upbound.io_instances.yaml +++ b/package/crds/rds.aws.upbound.io_instances.yaml @@ -298,6 +298,13 @@ spec: description: Specifies whether mappings of AWS Identity and Access Management (IAM) accounts to database accounts is enabled. type: boolean + identifier: + description: Required if restore_to_point_in_time is specified. + type: string + identifierPrefix: + description: Creates a unique identifier beginning with the specified + prefix. Conflicts with identifier. + type: string instanceClass: description: The instance type of the RDS instance. type: string @@ -1229,6 +1236,13 @@ spec: description: Specifies whether mappings of AWS Identity and Access Management (IAM) accounts to database accounts is enabled. type: boolean + identifier: + description: Required if restore_to_point_in_time is specified. + type: string + identifierPrefix: + description: Creates a unique identifier beginning with the specified + prefix. Conflicts with identifier. + type: string instanceClass: description: The instance type of the RDS instance. type: string @@ -2237,6 +2251,13 @@ spec: id: description: RDS DBI resource ID. type: string + identifier: + description: Required if restore_to_point_in_time is specified. + type: string + identifierPrefix: + description: Creates a unique identifier beginning with the specified + prefix. Conflicts with identifier. + type: string instanceClass: description: The instance type of the RDS instance. type: string