func UpdateImageDigests()

in release/pkg/generate_spec.go [79:111]


func UpdateImageDigests(ecrPublicClient *ecrpublic.ECRPublic, r *ReleaseConfig, componentsTable map[string]*distrov1alpha1.Component) error {
	for _, component := range componentsTable {
		componentDer := *component
		assets := componentDer.Assets
		for _, asset := range assets {
			if asset.Image != nil {
				var imageTag string
				releaseUriSplit := strings.Split(asset.Image.URI, ":")
				repoName := strings.Replace(releaseUriSplit[0], r.ContainerImageRepository+"/", "", -1)
				imageTag = releaseUriSplit[1]
				describeImagesOutput, err := ecrPublicClient.DescribeImages(
					&ecrpublic.DescribeImagesInput{
						ImageIds: []*ecrpublic.ImageIdentifier{
							{
								ImageTag: aws.String(imageTag),
							},
						},
						RepositoryName: aws.String(repoName),
					},
				)
				if err != nil {
					return errors.Cause(err)
				}

				imageDigest := describeImagesOutput.ImageDetails[0].ImageDigest

				asset.Image.ImageDigest = *imageDigest
			}
		}
	}

	return nil
}