Skip to content

Commit bf14108

Browse files
debug debug
1 parent a9358f4 commit bf14108

File tree

7 files changed

+33
-149
lines changed

7 files changed

+33
-149
lines changed

pkg/cloud/scope/cluster.go

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -77,11 +77,6 @@ func NewClusterScope(params ClusterScopeParams) (*ClusterScope, error) {
7777
maxWaitActiveUpdateDelete: params.MaxWaitActiveUpdateDelete,
7878
}
7979

80-
serviceLimiters, err := sessionForClusterWithRegion(params.Client, clusterScope, params.AWSCluster.Spec.Region, params.Endpoints, params.Logger)
81-
if err != nil {
82-
return nil, errors.Errorf("failed to create aws session: %v", err)
83-
}
84-
8580
sessionv2, serviceLimitersv2, err := sessionForClusterWithRegionV2(params.Client, clusterScope, params.AWSCluster.Spec.Region, params.Endpoints, params.Logger)
8681
if err != nil {
8782
return nil, errors.Errorf("failed to create aws V2 session: %v", err)
@@ -94,8 +89,7 @@ func NewClusterScope(params ClusterScopeParams) (*ClusterScope, error) {
9489

9590
clusterScope.patchHelper = helper
9691
clusterScope.session = *sessionv2
97-
clusterScope.serviceLimiters = serviceLimiters
98-
clusterScope.serviceLimitersV2 = serviceLimitersv2
92+
clusterScope.serviceLimiters = serviceLimitersv2
9993

10094
return clusterScope, nil
10195
}
@@ -109,10 +103,9 @@ type ClusterScope struct {
109103
Cluster *clusterv1.Cluster
110104
AWSCluster *infrav1.AWSCluster
111105

112-
session awsv2.Config
113-
serviceLimiters throttle.ServiceLimiters
114-
serviceLimitersV2 throttle.ServiceLimiters
115-
controllerName string
106+
session awsv2.Config
107+
serviceLimiters throttle.ServiceLimiters
108+
controllerName string
116109

117110
tagUnmanagedNetworkResources bool
118111
maxWaitActiveUpdateDelete time.Duration

pkg/cloud/scope/fargate.go

Lines changed: 13 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -70,11 +70,6 @@ func NewFargateProfileScope(params FargateProfileScopeParams) (*FargateProfileSc
7070
controllerName: params.ControllerName,
7171
}
7272

73-
serviceLimiters, err := sessionForClusterWithRegion(params.Client, managedScope, params.ControlPlane.Spec.Region, params.Endpoints, params.Logger)
74-
if err != nil {
75-
return nil, errors.Errorf("failed to create aws session: %v", err)
76-
}
77-
7873
sessionv2, serviceLimitersv2, err := sessionForClusterWithRegionV2(params.Client, managedScope, params.ControlPlane.Spec.Region, params.Endpoints, params.Logger)
7974
if err != nil {
8075
return nil, errors.Errorf("failed to create aws v2 session: %v", err)
@@ -86,17 +81,16 @@ func NewFargateProfileScope(params FargateProfileScopeParams) (*FargateProfileSc
8681
}
8782

8883
return &FargateProfileScope{
89-
Logger: *params.Logger,
90-
Client: params.Client,
91-
Cluster: params.Cluster,
92-
ControlPlane: params.ControlPlane,
93-
FargateProfile: params.FargateProfile,
94-
patchHelper: helper,
95-
session: *sessionv2,
96-
serviceLimiters: serviceLimiters,
97-
serviceLimitersV2: serviceLimitersv2,
98-
controllerName: params.ControllerName,
99-
enableIAM: params.EnableIAM,
84+
Logger: *params.Logger,
85+
Client: params.Client,
86+
Cluster: params.Cluster,
87+
ControlPlane: params.ControlPlane,
88+
FargateProfile: params.FargateProfile,
89+
patchHelper: helper,
90+
session: *sessionv2,
91+
serviceLimiters: serviceLimitersv2,
92+
controllerName: params.ControllerName,
93+
enableIAM: params.EnableIAM,
10094
}, nil
10195
}
10296

@@ -110,10 +104,9 @@ type FargateProfileScope struct {
110104
ControlPlane *ekscontrolplanev1.AWSManagedControlPlane
111105
FargateProfile *expinfrav1.AWSFargateProfile
112106

113-
session awsv2.Config
114-
serviceLimiters throttle.ServiceLimiters
115-
serviceLimitersV2 throttle.ServiceLimiters
116-
controllerName string
107+
session awsv2.Config
108+
serviceLimiters throttle.ServiceLimiters
109+
controllerName string
117110

118111
enableIAM bool
119112
}

pkg/cloud/scope/managedcontrolplane.go

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -98,19 +98,13 @@ func NewManagedControlPlaneScope(params ManagedControlPlaneScopeParams) (*Manage
9898
enableIAM: params.EnableIAM,
9999
tagUnmanagedNetworkResources: params.TagUnmanagedNetworkResources,
100100
}
101-
serviceLimiters, err := sessionForClusterWithRegion(params.Client, managedScope, params.ControlPlane.Spec.Region, params.Endpoints, params.Logger)
102-
if err != nil {
103-
return nil, errors.Errorf("failed to create aws session: %v", err)
104-
}
105-
106101
sessionv2, serviceLimitersv2, err := sessionForClusterWithRegionV2(params.Client, managedScope, params.ControlPlane.Spec.Region, params.Endpoints, params.Logger)
107102
if err != nil {
108103
return nil, errors.Errorf("failed to create aws V2 session: %v", err)
109104
}
110105

111106
managedScope.session = *sessionv2
112-
managedScope.serviceLimiters = serviceLimiters
113-
managedScope.serviceLimitersV2 = serviceLimitersv2
107+
managedScope.serviceLimiters = serviceLimitersv2
114108

115109
helper, err := patch.NewHelper(params.ControlPlane, params.Client)
116110
if err != nil {
@@ -131,10 +125,9 @@ type ManagedControlPlaneScope struct {
131125
ControlPlane *ekscontrolplanev1.AWSManagedControlPlane
132126
MaxWaitActiveUpdateDelete time.Duration
133127

134-
session awsv2.Config
135-
serviceLimiters throttle.ServiceLimiters
136-
serviceLimitersV2 throttle.ServiceLimiters
137-
controllerName string
128+
session awsv2.Config
129+
serviceLimiters throttle.ServiceLimiters
130+
controllerName string
138131

139132
enableIAM bool
140133
allowAdditionalRoles bool

pkg/cloud/scope/rosacontrolplane.go

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -72,11 +72,6 @@ func NewROSAControlPlaneScope(params ROSAControlPlaneScopeParams) (*ROSAControlP
7272
controllerName: params.ControllerName,
7373
}
7474

75-
serviceLimiters, err := sessionForClusterWithRegion(params.Client, managedScope, params.ControlPlane.Spec.Region, params.Endpoints, params.Logger)
76-
if err != nil {
77-
return nil, errors.Errorf("failed to create aws session: %v", err)
78-
}
79-
8075
sessionv2, serviceLimitersv2, err := sessionForClusterWithRegionV2(params.Client, managedScope, params.ControlPlane.Spec.Region, params.Endpoints, params.Logger)
8176
if err != nil {
8277
return nil, errors.Errorf("failed to create aws V2 session: %v", err)
@@ -89,8 +84,7 @@ func NewROSAControlPlaneScope(params ROSAControlPlaneScopeParams) (*ROSAControlP
8984

9085
managedScope.patchHelper = helper
9186
managedScope.session = *sessionv2
92-
managedScope.serviceLimiters = serviceLimiters
93-
managedScope.serviceLimitersV2 = serviceLimitersv2
87+
managedScope.serviceLimiters = serviceLimitersv2
9488

9589
stsClient := params.NewStsClient(managedScope, managedScope, managedScope, managedScope.ControlPlane)
9690
identity, err := stsClient.GetCallerIdentity(context.TODO(), &stsv2.GetCallerIdentityInput{})
@@ -111,11 +105,10 @@ type ROSAControlPlaneScope struct {
111105
Cluster *clusterv1.Cluster
112106
ControlPlane *rosacontrolplanev1.ROSAControlPlane
113107

114-
session awsv2.Config
115-
serviceLimiters throttle.ServiceLimiters
116-
serviceLimitersV2 throttle.ServiceLimiters
117-
controllerName string
118-
Identity *stsv2.GetCallerIdentityOutput
108+
session awsv2.Config
109+
serviceLimiters throttle.ServiceLimiters
110+
controllerName string
111+
Identity *stsv2.GetCallerIdentityOutput
119112
}
120113

121114
// InfraCluster returns the AWSManagedControlPlane object.

pkg/cloud/scope/rosamachinepool.go

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -88,19 +88,13 @@ func NewRosaMachinePoolScope(params RosaMachinePoolScopeParams) (*RosaMachinePoo
8888
controllerName: params.ControllerName,
8989
}
9090

91-
serviceLimiters, err := sessionForClusterWithRegion(params.Client, scope, params.ControlPlane.Spec.Region, params.Endpoints, params.Logger)
92-
if err != nil {
93-
return nil, errors.Errorf("failed to create aws session: %v", err)
94-
}
95-
9691
sessionv2, serviceLimitersv2, err := sessionForClusterWithRegionV2(params.Client, scope, params.ControlPlane.Spec.Region, params.Endpoints, params.Logger)
9792
if err != nil {
9893
return nil, errors.Errorf("failed to create aws V2 session: %v", err)
9994
}
10095

10196
scope.session = *sessionv2
102-
scope.serviceLimiters = serviceLimiters
103-
scope.serviceLimitersV2 = serviceLimitersv2
97+
scope.serviceLimiters = serviceLimitersv2
10498

10599
return scope, nil
106100
}
@@ -119,9 +113,8 @@ type RosaMachinePoolScope struct {
119113
RosaMachinePool *expinfrav1.ROSAMachinePool
120114
MachinePool *expclusterv1.MachinePool
121115

122-
session awsv2.Config
123-
serviceLimiters throttle.ServiceLimiters
124-
serviceLimitersV2 throttle.ServiceLimiters
116+
session awsv2.Config
117+
serviceLimiters throttle.ServiceLimiters
125118

126119
controllerName string
127120
}

pkg/cloud/scope/session.go

Lines changed: 0 additions & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ import (
2929
"github.com/aws/aws-sdk-go-v2/service/resourcegroupstaggingapi"
3030
"github.com/aws/aws-sdk-go-v2/service/secretsmanager"
3131
"github.com/aws/aws-sdk-go/aws"
32-
"github.com/aws/aws-sdk-go/aws/credentials"
3332
"github.com/aws/aws-sdk-go/aws/endpoints"
3433
"github.com/aws/aws-sdk-go/aws/session"
3534
"github.com/google/go-cmp/cmp"
@@ -64,7 +63,6 @@ type ServiceEndpoint struct {
6463

6564
var sessionCache sync.Map
6665
var sessionCacheV2 sync.Map
67-
var providerCache sync.Map
6866
var providerCacheV2 sync.Map
6967

7068
type sessionCacheEntry struct {
@@ -137,89 +135,6 @@ func sessionForRegionV2(region string) (*awsv2.Config, throttle.ServiceLimiters,
137135
return &ns, sl, nil
138136
}
139137

140-
func sessionForClusterWithRegion(k8sClient client.Client, clusterScoper cloud.SessionMetadata, region string, endpoint []ServiceEndpoint, log logger.Wrapper) (throttle.ServiceLimiters, error) {
141-
log = log.WithName("identity")
142-
log.Trace("Creating an AWS Session")
143-
144-
resolver := func(service, region string, optFns ...func(*endpoints.Options)) (endpoints.ResolvedEndpoint, error) {
145-
for _, s := range endpoint {
146-
if service == s.ServiceID {
147-
return endpoints.ResolvedEndpoint{
148-
URL: s.URL,
149-
SigningRegion: s.SigningRegion,
150-
}, nil
151-
}
152-
}
153-
return endpoints.DefaultResolver().EndpointFor(service, region, optFns...)
154-
}
155-
156-
providers, err := getProvidersForCluster(context.Background(), k8sClient, clusterScoper, region, log)
157-
if err != nil {
158-
// could not get providers and retrieve the credentials
159-
conditions.MarkFalse(clusterScoper.InfraCluster(), infrav1.PrincipalCredentialRetrievedCondition, infrav1.PrincipalCredentialRetrievalFailedReason, clusterv1.ConditionSeverityError, "%s", err.Error())
160-
return nil, errors.Wrap(err, "Failed to get providers for cluster")
161-
}
162-
163-
isChanged := false
164-
awsProviders := make([]credentials.Provider, len(providers))
165-
for i, provider := range providers {
166-
// load an existing matching providers from the cache if such a providers exists
167-
providerHash, err := provider.Hash()
168-
if err != nil {
169-
return nil, errors.Wrap(err, "Failed to calculate provider hash")
170-
}
171-
cachedProvider, ok := providerCache.Load(providerHash)
172-
if ok {
173-
provider = cachedProvider.(identity.AWSPrincipalTypeProvider)
174-
} else {
175-
isChanged = true
176-
// add this provider to the cache
177-
providerCache.Store(providerHash, provider)
178-
}
179-
awsProviders[i] = provider.(credentials.Provider)
180-
}
181-
182-
if !isChanged {
183-
if s, ok := sessionCache.Load(getSessionName(region, clusterScoper)); ok {
184-
entry := s.(*sessionCacheEntry)
185-
return entry.serviceLimiters, nil
186-
}
187-
}
188-
awsConfig := &aws.Config{
189-
Region: aws.String(region),
190-
EndpointResolver: endpoints.ResolverFunc(resolver),
191-
}
192-
193-
if len(providers) > 0 {
194-
// Check if identity credentials can be retrieved. One reason this will fail is that source identity is not authorized for assume role.
195-
_, err := providers[0].Retrieve()
196-
if err != nil {
197-
conditions.MarkUnknown(clusterScoper.InfraCluster(), infrav1.PrincipalCredentialRetrievedCondition, infrav1.CredentialProviderBuildFailedReason, "%s", err.Error())
198-
199-
// delete the existing session from cache. Otherwise, we give back a defective session on next method invocation with same cluster scope
200-
sessionCache.Delete(getSessionName(region, clusterScoper))
201-
202-
return nil, errors.Wrap(err, "Failed to retrieve identity credentials")
203-
}
204-
awsConfig = awsConfig.WithCredentials(credentials.NewChainCredentials(awsProviders))
205-
}
206-
207-
conditions.MarkTrue(clusterScoper.InfraCluster(), infrav1.PrincipalCredentialRetrievedCondition)
208-
209-
ns, err := session.NewSession(awsConfig)
210-
if err != nil {
211-
return nil, errors.Wrap(err, "Failed to create a new AWS session")
212-
}
213-
sl := newServiceLimiters()
214-
sessionCache.Store(getSessionName(region, clusterScoper), &sessionCacheEntry{
215-
session: ns,
216-
serviceLimiters: sl,
217-
sessionV2: nil,
218-
})
219-
220-
return sl, nil
221-
}
222-
223138
func sessionForClusterWithRegionV2(k8sClient client.Client, clusterScoper cloud.SessionMetadata, region string, _ []ServiceEndpoint, log logger.Wrapper) (*awsv2.Config, throttle.ServiceLimiters, error) {
224139
log = log.WithName("identity")
225140
log.Trace("Creating an AWS Session")

test/e2e/shared/suite.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,10 @@ func Node1BeforeSuite(e2eCtx *E2EContext) []byte {
158158
e2eCtx.Environment.BootstrapAccessKey = newUserAccessKey(context.TODO(), e2eCtx.AWSSessionV2, bootstrapTemplate.Spec.BootstrapUser.UserName)
159159
e2eCtx.BootstrapUserAWSSession = NewAWSSessionWithKey(e2eCtx.Environment.BootstrapAccessKey)
160160
e2eCtx.BootstrapUserAWSSessionV2 = NewAWSSessionWithKeyV2(e2eCtx.Environment.BootstrapAccessKey)
161+
162+
By("Waiting for access key to propagate...")
163+
time.Sleep(10 * time.Second)
164+
161165
Expect(ensureTestImageUploaded(e2eCtx)).NotTo(HaveOccurred())
162166

163167
// Image ID is needed when using a CI Kubernetes version. This is used in conformance test and upgrade to main test.

0 commit comments

Comments
 (0)