func CreateStagingReleaseClients()

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
}