in release/cli/pkg/clients/clients.go [71:184]
func CreateDevReleaseClients(dryRun bool) (*SourceClients, *ReleaseClients, error) {
fmt.Println("\n==========================================================")
fmt.Println(" Dev Release Clients Creation")
fmt.Println("==========================================================")
if dryRun {
fmt.Println("Skipping clients creation in dry-run mode")
return nil, nil, nil
}
// PDX session for eks-a-build-prod-pdx
pdxSession, err := session.NewSession(&aws.Config{
Region: aws.String("us-west-2"),
})
if err != nil {
return nil, nil, errors.Cause(err)
}
// IAD session for eks-a-build-prod-pdx
iadSession, err := session.NewSession(&aws.Config{
Region: aws.String("us-east-1"),
})
if err != nil {
return nil, nil, errors.Cause(err)
}
// PDX Session for beta-pdx-packages
packagesPDXSession, err := session.NewSessionWithOptions(session.Options{
Config: aws.Config{
Region: aws.String("us-west-2"),
},
Profile: "packages-beta-pdx",
})
if err != nil {
return nil, nil, errors.Cause(err)
}
// IAD Session for beta-pdx-packages
packagesIADSession, err := session.NewSessionWithOptions(session.Options{
Config: aws.Config{
Region: aws.String("us-east-1"),
},
Profile: "packages-beta-iad",
})
if err != nil {
return nil, nil, errors.Cause(err)
}
// S3 client and uploader
s3Client := s3.New(pdxSession)
downloader := s3manager.NewDownloader(pdxSession)
uploader := s3manager.NewUploader(pdxSession)
// Get source ECR auth config
ecrClient := ecrsdk.New(pdxSession)
sourceAuthConfig, err := ecr.GetAuthConfig(ecrClient)
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)
}
// Get release ECR Public auth config
ecrPublicClient := ecrpublicsdk.New(iadSession)
releaseAuthConfig, err := ecrpublic.GetAuthConfig(ecrPublicClient)
if err != nil {
return nil, nil, errors.Cause(err)
}
// Get packages release ECR Public auth config
packagesECRPublicClient := ecrpublicsdk.New(packagesIADSession)
packagesReleaseAuthConfig, err := ecrpublic.GetAuthConfig(packagesECRPublicClient)
if err != nil {
return nil, nil, errors.Cause(err)
}
// Constructing source clients
sourceClients := &SourceClients{
S3: &SourceS3Clients{
Client: s3Client,
Downloader: downloader,
},
ECR: &SourceECRClient{
EcrClient: ecrClient,
AuthConfig: sourceAuthConfig,
},
Packages: &SourceECRClient{
EcrClient: packagesECRClient,
AuthConfig: packagesSourceAuthConfig,
},
}
// Constructing release clients
releaseClients := &ReleaseClients{
S3: &ReleaseS3Clients{
Client: s3Client,
Uploader: uploader,
},
ECRPublic: &ReleaseECRPublicClient{
Client: ecrPublicClient,
AuthConfig: releaseAuthConfig,
},
Packages: &ReleaseECRPublicClient{
Client: packagesECRPublicClient,
AuthConfig: packagesReleaseAuthConfig,
},
}
return sourceClients, releaseClients, nil
}