Skip to content

Commit 0a91efb

Browse files
authored
CLOUDP-352100: Tag AWS resources (#2828)
Signed-off-by: jose.vazquez <jose.vazquez@mongodb.com>
1 parent b067880 commit 0a91efb

File tree

5 files changed

+79
-0
lines changed

5 files changed

+79
-0
lines changed

test/helper/cloud/aws/vpc.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ import (
1919

2020
"github.com/aws/aws-sdk-go/aws"
2121
"github.com/aws/aws-sdk-go/service/ec2"
22+
23+
awshelper "github.com/mongodb/mongodb-atlas-kubernetes/v2/test/helper/e2e/api/aws"
2224
)
2325

2426
func CreateVPC(name, cidr, region string) (string, error) {
@@ -34,6 +36,9 @@ func CreateVPC(name, cidr, region string) (string, error) {
3436
ResourceType: aws.String(ec2.ResourceTypeVpc),
3537
Tags: []*ec2.Tag{
3638
{Key: aws.String("Name"), Value: aws.String(name)},
39+
{Key: aws.String(awshelper.OwnerEmailTag), Value: aws.String(awshelper.AKOEmail)},
40+
{Key: aws.String(awshelper.CostCenterTag), Value: aws.String(awshelper.AKOCostCenter)},
41+
{Key: aws.String(awshelper.EnvironmentTag), Value: aws.String(awshelper.AKOEnvTest)},
3742
},
3843
}},
3944
})

test/helper/e2e/actions/cloud/aws.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import (
3131
"github.com/onsi/ginkgo/v2/dsl/core"
3232

3333
"github.com/mongodb/mongodb-atlas-kubernetes/v2/internal/pointer"
34+
awshelper "github.com/mongodb/mongodb-atlas-kubernetes/v2/test/helper/e2e/api/aws"
3435
)
3536

3637
type AwsAction struct {
@@ -84,6 +85,12 @@ func (a *AwsAction) CreateKMS(alias, region, atlasAccountArn, assumedRoleArn str
8485
MultiRegion: aws.Bool(false),
8586
Origin: aws.String("AWS_KMS"),
8687
Policy: aws.String(policyString),
88+
Tags: []*kms.Tag{
89+
{TagKey: aws.String(awshelper.OwnerTag), TagValue: aws.String(awshelper.AKOTeam)},
90+
{TagKey: aws.String(awshelper.OwnerEmailTag), TagValue: aws.String(awshelper.AKOEmail)},
91+
{TagKey: aws.String(awshelper.CostCenterTag), TagValue: aws.String(awshelper.AKOCostCenter)},
92+
{TagKey: aws.String(awshelper.EnvironmentTag), TagValue: aws.String(awshelper.AKOEnvTest)},
93+
},
8794
})
8895

8996
if err != nil {
@@ -407,6 +414,10 @@ func (a *AwsAction) createVPC(name, cidr, region string) (string, error) {
407414
ResourceType: aws.String(ec2.ResourceTypeVpc),
408415
Tags: []*ec2.Tag{
409416
{Key: aws.String("Name"), Value: aws.String(name)},
417+
{Key: aws.String(awshelper.OwnerTag), Value: aws.String(awshelper.AKOTeam)},
418+
{Key: aws.String(awshelper.OwnerEmailTag), Value: aws.String(awshelper.AKOEmail)},
419+
{Key: aws.String(awshelper.CostCenterTag), Value: aws.String(awshelper.AKOCostCenter)},
420+
{Key: aws.String(awshelper.EnvironmentTag), Value: aws.String(awshelper.AKOEnvTest)},
410421
},
411422
}},
412423
}
@@ -485,6 +496,10 @@ func (a *AwsAction) createSubnet(vpcID, name, cidr, region, az string) (*string,
485496
ResourceType: aws.String(ec2.ResourceTypeSubnet),
486497
Tags: []*ec2.Tag{
487498
{Key: aws.String("Name"), Value: aws.String(name)},
499+
{Key: aws.String(awshelper.OwnerTag), Value: aws.String(awshelper.AKOTeam)},
500+
{Key: aws.String(awshelper.OwnerEmailTag), Value: aws.String(awshelper.AKOEmail)},
501+
{Key: aws.String(awshelper.CostCenterTag), Value: aws.String(awshelper.AKOCostCenter)},
502+
{Key: aws.String(awshelper.EnvironmentTag), Value: aws.String(awshelper.AKOEnvTest)},
488503
},
489504
}},
490505
VpcId: aws.String(vpcID),

test/helper/e2e/actions/cloudaccess/aws_roles.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ import (
2121
"github.com/aws/aws-sdk-go/aws"
2222
"github.com/aws/aws-sdk-go/aws/session"
2323
"github.com/aws/aws-sdk-go/service/iam"
24+
25+
awshelper "github.com/mongodb/mongodb-atlas-kubernetes/v2/test/helper/e2e/api/aws"
2426
)
2527

2628
type AssumeRolePolicyDocument struct {
@@ -102,6 +104,12 @@ func CreateAWSIAMRole(roleName string) (string, error) {
102104
roleInput := iam.CreateRoleInput{}
103105
roleInput.SetRoleName(roleName)
104106
roleInput.SetAssumeRolePolicyDocument(policy)
107+
roleInput.Tags = []*iam.Tag{
108+
{Key: aws.String(awshelper.OwnerTag), Value: aws.String(awshelper.AKOTeam)},
109+
{Key: aws.String(awshelper.OwnerEmailTag), Value: aws.String(awshelper.AKOEmail)},
110+
{Key: aws.String(awshelper.CostCenterTag), Value: aws.String(awshelper.AKOCostCenter)},
111+
{Key: aws.String(awshelper.EnvironmentTag), Value: aws.String(awshelper.AKOEnvTest)},
112+
}
105113
//roleInput.SetTags([]*iam.Tag{
106114
// {
107115
// Key: aws.String(config.TagForTestKey),

test/helper/e2e/api/aws/aws_resources_generator.go

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,12 @@ func (g *AwsResourcesGenerator) CreatePolicy(name string, policy func() IAMPolic
103103
input := &iam.CreatePolicyInput{
104104
PolicyDocument: policy(),
105105
PolicyName: aws.String(name),
106+
Tags: []*iam.Tag{
107+
{Key: aws.String(OwnerTag), Value: aws.String(AKOTeam)},
108+
{Key: aws.String(OwnerEmailTag), Value: aws.String(AKOEmail)},
109+
{Key: aws.String(CostCenterTag), Value: aws.String(AKOCostCenter)},
110+
{Key: aws.String(EnvironmentTag), Value: aws.String(AKOEnvTest)},
111+
},
106112
}
107113

108114
r, err := g.iamClient.CreatePolicy(input)
@@ -177,6 +183,24 @@ func (g *AwsResourcesGenerator) CreateBucket(name string) error {
177183
return fmt.Errorf("failed to create aws bucket: %w", err)
178184
}
179185

186+
tagSet := &s3.Tagging{
187+
TagSet: []*s3.Tag{
188+
{Key: aws.String(OwnerTag), Value: aws.String(AKOTeam)},
189+
{Key: aws.String(OwnerEmailTag), Value: aws.String(AKOEmail)},
190+
{Key: aws.String(CostCenterTag), Value: aws.String(AKOCostCenter)},
191+
{Key: aws.String(EnvironmentTag), Value: aws.String(AKOEnvTest)},
192+
},
193+
}
194+
195+
taggingInput := &s3.PutBucketTaggingInput{
196+
Bucket: aws.String(name),
197+
Tagging: tagSet,
198+
}
199+
200+
if _, err := g.s3Client.PutBucketTagging(taggingInput); err != nil {
201+
return fmt.Errorf("failed to tag bucket %s: %w", name, err)
202+
}
203+
180204
return nil
181205
}
182206

test/helper/e2e/api/aws/tags.go

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
// Copyright 2025 MongoDB Inc
2+
//
3+
// Licensed under the Apache License, Version 2.0 (the "License");
4+
// you may not use this file except in compliance with the License.
5+
// You may obtain a copy of the License at
6+
//
7+
// http://www.apache.org/licenses/LICENSE-2.0
8+
//
9+
// Unless required by applicable law or agreed to in writing, software
10+
// distributed under the License is distributed on an "AS IS" BASIS,
11+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
// See the License for the specific language governing permissions and
13+
// limitations under the License.
14+
15+
package helper
16+
17+
const (
18+
OwnerTag = "Owner"
19+
OwnerEmailTag = "OwnerEmail"
20+
CostCenterTag = "CostCenter"
21+
EnvironmentTag = "Environment"
22+
23+
AKOTeam = "AKO Atlas Kubernetes Operator Team"
24+
AKOEmail = "kubernetes-atlas-team@mongodb.com"
25+
AKOCostCenter = "TBD - AKO or core team"
26+
AKOEnvTest = "nonprod"
27+
)

0 commit comments

Comments
 (0)