in release/cli/pkg/clients/clients.go [187:286]
func CreateStagingReleaseClients(bundleRelease bool) (*SourceClients, *ReleaseClients, error) {
fmt.Println("\n==========================================================")
fmt.Println(" Staging Release Clients Creation")
fmt.Println("==========================================================")
// Session for eks-a-build-prod-pdx
sourceSession, err := session.NewSessionWithOptions(session.Options{
Config: aws.Config{
Region: aws.String("us-west-2"),
},
})
if err != nil {
return nil, nil, errors.Cause(err)
}
// Session for eks-a-artifact-beta-iad
releaseSession, err := session.NewSessionWithOptions(session.Options{
Config: aws.Config{
Region: aws.String("us-east-1"),
},
Profile: "artifacts-staging",
})
if err != nil {
return nil, nil, errors.Cause(err)
}
// Source S3 client
sourceS3Client := s3.New(sourceSession)
// Release S3 client and uploader
releaseS3Client := s3.New(releaseSession)
downloader := s3manager.NewDownloader(sourceSession)
uploader := s3manager.NewUploader(releaseSession)
// Get source ECR auth config
ecrClient := ecrsdk.New(sourceSession)
sourceAuthConfig, err := ecr.GetAuthConfig(ecrClient)
if err != nil {
return nil, nil, errors.Cause(err)
}
// Get release ECR Public auth config
ecrPublicClient := ecrpublicsdk.New(releaseSession)
releaseAuthConfig, err := ecrpublic.GetAuthConfig(ecrPublicClient)
if err != nil {
return nil, nil, errors.Cause(err)
}
var packagesECRClient *ecrsdk.ECR
var packagesSourceAuthConfig *docker.AuthConfiguration
if bundleRelease {
// Session for beta-pdx-packages
packagesPDXSession, err := session.NewSessionWithOptions(session.Options{
Config: aws.Config{
Region: aws.String("us-west-2"),
},
Profile: "packages-beta",
})
if err != nil {
return nil, nil, errors.Cause(err)
}
// Get packages source ECR auth config
packagesECRClient = ecrsdk.New(packagesPDXSession)
packagesSourceAuthConfig, err = ecr.GetAuthConfig(packagesECRClient)
if err != nil {
return nil, nil, errors.Cause(err)
}
}
// Constructing source clients
sourceClients := &SourceClients{
S3: &SourceS3Clients{
Client: sourceS3Client,
Downloader: downloader,
},
ECR: &SourceECRClient{
EcrClient: ecrClient,
AuthConfig: sourceAuthConfig,
},
Packages: &SourceECRClient{
EcrClient: packagesECRClient,
AuthConfig: packagesSourceAuthConfig,
},
}
// Constructing release clients
releaseClients := &ReleaseClients{
S3: &ReleaseS3Clients{
Client: releaseS3Client,
Uploader: uploader,
},
ECRPublic: &ReleaseECRPublicClient{
Client: ecrPublicClient,
AuthConfig: releaseAuthConfig,
},
}
return sourceClients, releaseClients, nil
}