Skip to content

Commit a5da56a

Browse files
authored
Support Tag updates for resources (#36)
Issue fix [#2351](aws-controllers-k8s/community#2351) Description of changes: This change introduces tag updates for ResolverEndpoint and ResolverRule resources. These changes are generated with the latest code-generator commit, which changes the way we convert ACK tags. By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
1 parent a1e2761 commit a5da56a

21 files changed

+650
-32
lines changed
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
ack_generate_info:
2-
build_date: "2025-02-20T18:34:17Z"
3-
build_hash: a326346bd3a6973254d247c9ab2dc76790c36241
2+
build_date: "2025-03-24T19:06:22Z"
3+
build_hash: 3722729cebe6d3c03c7e442655ef0846f91566a2
44
go_version: go1.24.0
5-
version: v0.43.2
5+
version: v0.43.2-7-g3722729
66
api_directory_checksum: d972f13074c25a970b7f88ef699968a0d127c566
77
api_version: v1alpha1
88
aws_sdk_go_version: v1.32.6
99
generator_config_info:
10-
file_checksum: f9396975bbbf30c7efd35299e29015dfb242b012
10+
file_checksum: 1663bc593beb7ec25b1a8bd4bb4a71c8e0b1b23d
1111
original_file_name: generator.yaml
1212
last_modification:
1313
reason: API generation

apis/v1alpha1/generator.yaml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,8 @@ resources:
7171
template_path: hooks/resolver_endpoint/sdk_read_one_post_set_output.go.tpl
7272
sdk_update_post_set_output:
7373
template_path: hooks/resolver_endpoint/sdk_update_post_set_output.go.tpl
74-
tags:
75-
ignore: true
74+
sdk_update_pre_build_request:
75+
template_path: hooks/resolver_endpoint/sdk_update_pre_build_request.go.tpl
7676
ResolverRule:
7777
exceptions:
7878
errors:
@@ -109,5 +109,4 @@ resources:
109109
template_path: hooks/resolver_rule/sdk_delete_pre_build_request.go.tpl
110110
update_operation:
111111
custom_method_name: customUpdateResolverRule
112-
tags:
113-
ignore: true
112+

generator.yaml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,8 @@ resources:
7171
template_path: hooks/resolver_endpoint/sdk_read_one_post_set_output.go.tpl
7272
sdk_update_post_set_output:
7373
template_path: hooks/resolver_endpoint/sdk_update_post_set_output.go.tpl
74-
tags:
75-
ignore: true
74+
sdk_update_pre_build_request:
75+
template_path: hooks/resolver_endpoint/sdk_update_pre_build_request.go.tpl
7676
ResolverRule:
7777
exceptions:
7878
errors:
@@ -109,5 +109,4 @@ resources:
109109
template_path: hooks/resolver_rule/sdk_delete_pre_build_request.go.tpl
110110
update_operation:
111111
custom_method_name: customUpdateResolverRule
112-
tags:
113-
ignore: true
112+

pkg/resource/resolver_endpoint/delta.go

Lines changed: 3 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/resource/resolver_endpoint/hook.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"time"
77

88
svcapitypes "github.com/aws-controllers-k8s/route53resolver-controller/apis/v1alpha1"
9+
"github.com/aws-controllers-k8s/route53resolver-controller/pkg/tags"
910
ackrtlog "github.com/aws-controllers-k8s/runtime/pkg/runtime/log"
1011
"github.com/aws/aws-sdk-go-v2/aws"
1112
svcsdk "github.com/aws/aws-sdk-go-v2/service/route53resolver"
@@ -173,3 +174,20 @@ func inIpAddress(
173174
}
174175
return false
175176
}
177+
178+
// getTags retrieves the resource's associated tags.
179+
func (rm *resourceManager) getTags(
180+
ctx context.Context,
181+
resourceARN string,
182+
) ([]*svcapitypes.Tag, error) {
183+
return tags.GetTags(ctx, rm.sdkapi, rm.metrics, resourceARN)
184+
}
185+
186+
// syncTags keeps the resource's tags in sync.
187+
func (rm *resourceManager) syncTags(
188+
ctx context.Context,
189+
desired *resource,
190+
latest *resource,
191+
) (err error) {
192+
return tags.SyncTags(ctx, desired.ko.Spec.Tags, latest.ko.Spec.Tags, latest.ko.Status.ACKResourceMetadata, convertToOrderedACKTags, rm.sdkapi, rm.metrics)
193+
}

pkg/resource/resolver_endpoint/manager.go

Lines changed: 31 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/resource/resolver_endpoint/sdk.go

Lines changed: 15 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/resource/resolver_endpoint/tags.go

Lines changed: 119 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/resource/resolver_rule/delta.go

Lines changed: 3 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/resource/resolver_rule/hook.go

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"time"
88

99
svcapitypes "github.com/aws-controllers-k8s/route53resolver-controller/apis/v1alpha1"
10+
"github.com/aws-controllers-k8s/route53resolver-controller/pkg/tags"
1011
ackcompare "github.com/aws-controllers-k8s/runtime/pkg/compare"
1112
ackrtlog "github.com/aws-controllers-k8s/runtime/pkg/runtime/log"
1213
svcsdk "github.com/aws/aws-sdk-go-v2/service/route53resolver"
@@ -67,6 +68,14 @@ func (rm *resourceManager) customUpdateResolverRule(
6768
exit := rlog.Trace("rm.customUpdateResolverRule")
6869
defer exit(err)
6970

71+
if delta.DifferentAt("Spec.Tags") {
72+
if err = rm.syncTags(ctx, desired, latest); err != nil {
73+
return nil, err
74+
}
75+
} else if !delta.DifferentExcept("Spec.Tags") {
76+
return desired, nil
77+
}
78+
7079
// Default `updated` to `desired` because it is likely
7180
// EC2 `modify` APIs do NOT return output, only errors.
7281
// If the `modify` calls (i.e. `sync`) do NOT return
@@ -238,3 +247,20 @@ func (rm *resourceManager) upsertNewAssociations(
238247
}
239248
return nil
240249
}
250+
251+
// getTags retrieves the resource's associated tags.
252+
func (rm *resourceManager) getTags(
253+
ctx context.Context,
254+
resourceARN string,
255+
) ([]*svcapitypes.Tag, error) {
256+
return tags.GetTags(ctx, rm.sdkapi, rm.metrics, resourceARN)
257+
}
258+
259+
// syncTags keeps the resource's tags in sync.
260+
func (rm *resourceManager) syncTags(
261+
ctx context.Context,
262+
desired *resource,
263+
latest *resource,
264+
) (err error) {
265+
return tags.SyncTags(ctx, desired.ko.Spec.Tags, latest.ko.Spec.Tags, latest.ko.Status.ACKResourceMetadata, convertToOrderedACKTags, rm.sdkapi, rm.metrics)
266+
}

0 commit comments

Comments
 (0)