|
1 | 1 | package aga |
2 | 2 |
|
3 | 3 | import ( |
4 | | - "github.com/pkg/errors" |
5 | 4 | "k8s.io/apimachinery/pkg/util/sets" |
6 | 5 | agaapi "sigs.k8s.io/aws-load-balancer-controller/apis/aga/v1beta1" |
7 | | - "sigs.k8s.io/aws-load-balancer-controller/pkg/algorithm" |
| 6 | + "sigs.k8s.io/aws-load-balancer-controller/pkg/shared_utils" |
8 | 7 | ) |
9 | 8 |
|
10 | 9 | type tagHelper interface { |
11 | | - getAcceleratorTags(ga *agaapi.GlobalAccelerator) (map[string]string, error) |
| 10 | + getAcceleratorTags(ga agaapi.GlobalAccelerator) (map[string]string, error) |
12 | 11 | } |
13 | 12 |
|
14 | 13 | type tagHelperImpl struct { |
15 | | - externalManagedTags sets.Set[string] |
16 | | - defaultTags map[string]string |
| 14 | + sharedHelper shared_utils.TagHelper |
17 | 15 | } |
18 | 16 |
|
19 | | -func newTagHelper(externalManagedTags sets.Set[string], defaultTags map[string]string) tagHelper { |
20 | | - return &tagHelperImpl{ |
21 | | - externalManagedTags: externalManagedTags, |
22 | | - defaultTags: defaultTags, |
23 | | - } |
24 | | -} |
25 | | - |
26 | | -func (t *tagHelperImpl) getAcceleratorTags(ga *agaapi.GlobalAccelerator) (map[string]string, error) { |
27 | | - gaTags := make(map[string]string) |
28 | | - |
29 | | - if ga.Spec.Tags != nil { |
30 | | - for k, v := range *ga.Spec.Tags { |
31 | | - gaTags[k] = v |
32 | | - } |
| 17 | +func newTagHelper(externalManagedTags sets.Set[string], defaultTags map[string]string, additionalTagsOverrideDefaultTags bool) tagHelper { |
| 18 | + config := shared_utils.TagHelperConfig{ |
| 19 | + ExternalManagedTags: externalManagedTags, |
| 20 | + DefaultTags: defaultTags, |
| 21 | + AdditionalTagsOverrideDefaultTags: additionalTagsOverrideDefaultTags, |
33 | 22 | } |
34 | | - |
35 | | - if err := t.validateTagCollisionWithExternalManagedTags(gaTags); err != nil { |
36 | | - return nil, err |
| 23 | + return &tagHelperImpl{ |
| 24 | + sharedHelper: shared_utils.NewTagHelper(config), |
37 | 25 | } |
38 | | - |
39 | | - return algorithm.MergeStringMap(gaTags, t.defaultTags), nil |
40 | 26 | } |
41 | 27 |
|
42 | | -func (t *tagHelperImpl) validateTagCollisionWithExternalManagedTags(tags map[string]string) error { |
43 | | - for tagKey := range tags { |
44 | | - if t.externalManagedTags.Has(tagKey) { |
45 | | - return errors.Errorf("external managed tag key %v cannot be specified", tagKey) |
46 | | - } |
47 | | - } |
48 | | - return nil |
| 28 | +func (t *tagHelperImpl) getAcceleratorTags(ga agaapi.GlobalAccelerator) (map[string]string, error) { |
| 29 | + provider := NewGlobalAcceleratorTagProvider(ga) |
| 30 | + return t.sharedHelper.ProcessTags(provider) |
49 | 31 | } |
0 commit comments