func CreateDevReleaseClients()

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
}