@@ -45,6 +45,7 @@ import (
45
45
iamtypes "github.com/aws/aws-sdk-go-v2/service/iam/types"
46
46
"github.com/aws/aws-sdk-go-v2/service/sts"
47
47
"github.com/aws/aws-sdk-go/aws"
48
+ "github.com/aws/aws-sdk-go/aws/awserr"
48
49
"github.com/aws/aws-sdk-go/aws/client"
49
50
awscreds "github.com/aws/aws-sdk-go/aws/credentials"
50
51
"github.com/aws/aws-sdk-go/aws/session"
@@ -774,9 +775,35 @@ func deleteCloudFormationStack(prov client.ConfigProvider, t *cfn_bootstrap.Temp
774
775
}
775
776
776
777
func ensureTestImageUploaded (e2eCtx * E2EContext ) error {
778
+ By ("ensureTestImageUploaded: Creating AWS session for ECR Public" )
777
779
sessionForRepo := NewAWSSessionRepoWithKey (e2eCtx .Environment .BootstrapAccessKey )
778
780
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
+
779
793
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
+
780
807
repoName := ""
781
808
if err := wait .WaitForWithRetryable (wait .NewBackoff (), func () (bool , error ) {
782
809
output , err := ecrSvc .CreateRepository (& ecrpublic.CreateRepositoryInput {
@@ -807,7 +834,7 @@ func ensureTestImageUploaded(e2eCtx *E2EContext) error {
807
834
cmd := exec .Command ("docker" , "inspect" , "--format='{{index .Id}}'" , "gcr.io/k8s-staging-cluster-api/capa-manager:e2e" )
808
835
var stdOut bytes.Buffer
809
836
cmd .Stdout = & stdOut
810
- err : = cmd .Run ()
837
+ err = cmd .Run ()
811
838
if err != nil {
812
839
return err
813
840
}
0 commit comments