Skip to content

Commit cd2370f

Browse files
debug debug
1 parent a9358f4 commit cd2370f

File tree

2 files changed

+56
-2
lines changed

2 files changed

+56
-2
lines changed

test/e2e/shared/aws.go

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ import (
4545
iamtypes "github.com/aws/aws-sdk-go-v2/service/iam/types"
4646
"github.com/aws/aws-sdk-go-v2/service/sts"
4747
"github.com/aws/aws-sdk-go/aws"
48+
"github.com/aws/aws-sdk-go/aws/awserr"
4849
"github.com/aws/aws-sdk-go/aws/client"
4950
awscreds "github.com/aws/aws-sdk-go/aws/credentials"
5051
"github.com/aws/aws-sdk-go/aws/session"
@@ -774,9 +775,35 @@ func deleteCloudFormationStack(prov client.ConfigProvider, t *cfn_bootstrap.Temp
774775
}
775776

776777
func ensureTestImageUploaded(e2eCtx *E2EContext) error {
778+
By("ensureTestImageUploaded: Creating AWS session for ECR Public")
777779
sessionForRepo := NewAWSSessionRepoWithKey(e2eCtx.Environment.BootstrapAccessKey)
778780

781+
if sess, ok := sessionForRepo.(*session.Session); ok {
782+
creds, err := sess.Config.Credentials.Get()
783+
if err != nil {
784+
By(fmt.Sprintf("ensureTestImageUploaded: Failed to get credentials from session: %v", err))
785+
return fmt.Errorf("failed to get credentials: %w", err)
786+
}
787+
By(fmt.Sprintf("ensureTestImageUploaded: Session credentials - AccessKeyId: %s, ProviderName: %s",
788+
creds.AccessKeyID, creds.ProviderName))
789+
} else {
790+
By("ensureTestImageUploaded: WARNING: Session is not *session.Session type")
791+
}
792+
779793
ecrSvc := ecrpublic.New(sessionForRepo)
794+
795+
By("ensureTestImageUploaded: Testing ECR Public connection")
796+
_, err := ecrSvc.DescribeRegistries(&ecrpublic.DescribeRegistriesInput{})
797+
if err != nil {
798+
By(fmt.Sprintf("ensureTestImageUploaded: Failed to connect to ECR Public: %v", err))
799+
if awsErr, ok := err.(awserr.Error); ok {
800+
By(fmt.Sprintf("ensureTestImageUploaded: AWS Error - Code: %s, Message: %s",
801+
awsErr.Code(), awsErr.Message()))
802+
}
803+
return fmt.Errorf("failed to connect to ECR Public: %w", err)
804+
}
805+
By("ensureTestImageUploaded: Successfully connected to ECR Public")
806+
780807
repoName := ""
781808
if err := wait.WaitForWithRetryable(wait.NewBackoff(), func() (bool, error) {
782809
output, err := ecrSvc.CreateRepository(&ecrpublic.CreateRepositoryInput{
@@ -807,7 +834,7 @@ func ensureTestImageUploaded(e2eCtx *E2EContext) error {
807834
cmd := exec.Command("docker", "inspect", "--format='{{index .Id}}'", "gcr.io/k8s-staging-cluster-api/capa-manager:e2e")
808835
var stdOut bytes.Buffer
809836
cmd.Stdout = &stdOut
810-
err := cmd.Run()
837+
err = cmd.Run()
811838
if err != nil {
812839
return err
813840
}

test/e2e/shared/suite.go

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ import (
3232
"time"
3333

3434
iamtypes "github.com/aws/aws-sdk-go-v2/service/iam/types"
35+
"github.com/aws/aws-sdk-go/aws/awserr"
36+
"github.com/aws/aws-sdk-go/aws/session"
3537
"github.com/gofrs/flock"
3638
. "github.com/onsi/ginkgo/v2"
3739
. "github.com/onsi/gomega"
@@ -158,7 +160,32 @@ func Node1BeforeSuite(e2eCtx *E2EContext) []byte {
158160
e2eCtx.Environment.BootstrapAccessKey = newUserAccessKey(context.TODO(), e2eCtx.AWSSessionV2, bootstrapTemplate.Spec.BootstrapUser.UserName)
159161
e2eCtx.BootstrapUserAWSSession = NewAWSSessionWithKey(e2eCtx.Environment.BootstrapAccessKey)
160162
e2eCtx.BootstrapUserAWSSessionV2 = NewAWSSessionWithKeyV2(e2eCtx.Environment.BootstrapAccessKey)
161-
Expect(ensureTestImageUploaded(e2eCtx)).NotTo(HaveOccurred())
163+
164+
By("Waiting for access key to propagate...")
165+
time.Sleep(10 * time.Second)
166+
167+
By("Starting ensureTestImageUploaded with detailed logging")
168+
err = ensureTestImageUploaded(e2eCtx)
169+
if err != nil {
170+
By(fmt.Sprintf("ensureTestImageUploaded failed with error: %v", err))
171+
if awsErr, ok := err.(awserr.Error); ok {
172+
By(fmt.Sprintf("AWS Error details - Code: %s, Message: %s",
173+
awsErr.Code(), awsErr.Message()))
174+
}
175+
if e2eCtx.BootstrapUserAWSSession != nil {
176+
if sess, ok := e2eCtx.BootstrapUserAWSSession.(*session.Session); ok {
177+
creds, err := sess.Config.Credentials.Get()
178+
if err != nil {
179+
By(fmt.Sprintf("Credentials retrieval failed after error: %v", err))
180+
} else {
181+
By(fmt.Sprintf("Current credentials - AccessKeyId: %s, ProviderName: %s",
182+
creds.AccessKeyID, creds.ProviderName))
183+
}
184+
}
185+
}
186+
return []byte{}
187+
}
188+
By("ensureTestImageUploaded completed successfully")
162189

163190
// Image ID is needed when using a CI Kubernetes version. This is used in conformance test and upgrade to main test.
164191
if !e2eCtx.IsManaged {

0 commit comments

Comments
 (0)