Skip to content

Commit b0466d2

Browse files
authored
Fixed ECR bug (#834)
* ecr rconfig update bug * removed redundant arg * review changes
1 parent dcbdf19 commit b0466d2

File tree

2 files changed

+34
-11
lines changed

2 files changed

+34
-11
lines changed

internal/util/EcrService.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ import (
2828
)
2929

3030
//FIXME: this code is temp
31-
func CreateEcrRepo(repoName string, RegistryURL string, reg string, accessKey string, secretKey string) error {
31+
func CreateEcrRepo(repoName string, reg string, accessKey string, secretKey string) error {
3232
region := reg
3333
credentials := credentials.NewStaticCredentials(accessKey, secretKey, "")
3434
svc := ecr.New(session.New(&aws.Config{

pkg/pipeline/PipelineBuilder.go

Lines changed: 33 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -510,6 +510,21 @@ func (impl PipelineBuilderImpl) UpdateCiTemplate(updateRequest *bean.CiConfigReq
510510
return nil, err
511511
}
512512

513+
var repo string
514+
if updateRequest.DockerRepository != "" {
515+
repo = updateRequest.DockerRepository
516+
} else {
517+
repo = originalCiConf.DockerRepository
518+
}
519+
520+
if dockerArtifaceStore.RegistryType == repository.REGISTRYTYPE_ECR {
521+
err := impl.createEcrRepo(repo, dockerArtifaceStore.AWSRegion, dockerArtifaceStore.AWSAccessKeyId, dockerArtifaceStore.AWSSecretAccessKey)
522+
if err != nil {
523+
impl.logger.Errorw("ecr repo creation failed while updating ci template", "repo", repo, "err", err)
524+
return nil, err
525+
}
526+
}
527+
513528
originalCiConf.AfterDockerBuild = updateRequest.AfterDockerBuild
514529
originalCiConf.BeforeDockerBuild = updateRequest.BeforeDockerBuild
515530
originalCiConf.DockerBuildConfig = updateRequest.DockerBuildConfig
@@ -581,17 +596,10 @@ func (impl PipelineBuilderImpl) CreateCiPipeline(createRequest *bean.CiConfigReq
581596
}
582597

583598
if store.RegistryType == repository.REGISTRYTYPE_ECR {
584-
impl.logger.Debugw("attempting repo creation ", "repo", repo)
585-
err := util.CreateEcrRepo(repo, createRequest.DockerRepository, store.AWSRegion, store.AWSAccessKeyId,
586-
store.AWSSecretAccessKey)
599+
err := impl.createEcrRepo(repo, store.AWSRegion, store.AWSAccessKeyId, store.AWSSecretAccessKey)
587600
if err != nil {
588-
if errors.IsAlreadyExists(err) {
589-
impl.logger.Warnw("this repo already exists!!, skipping repo creation", "repo", repo)
590-
} else {
591-
impl.logger.Errorw("ecr repo creation failed, it might be due to authorization or any other external "+
592-
"dependency. please create repo manually before triggering ci", "repo", repo, "err", err)
593-
return nil, err
594-
}
601+
impl.logger.Errorw("ecr repo creation failed while creating ci pipeline", "repo", repo, "err", err)
602+
return nil, err
595603
}
596604
}
597605
createRequest.DockerRepository = repo
@@ -648,6 +656,21 @@ func (impl PipelineBuilderImpl) CreateCiPipeline(createRequest *bean.CiConfigReq
648656
return createRes, nil
649657
}
650658

659+
func (impl PipelineBuilderImpl) createEcrRepo(dockerRepository, AWSRegion, AWSAccessKeyId, AWSSecretAccessKey string) error {
660+
impl.logger.Debugw("attempting ecr repo creation ", "repo", dockerRepository)
661+
err := util.CreateEcrRepo(dockerRepository, AWSRegion, AWSAccessKeyId, AWSSecretAccessKey)
662+
if err != nil {
663+
if errors.IsAlreadyExists(err) {
664+
impl.logger.Warnw("this repo already exists!!, skipping repo creation", "repo", dockerRepository)
665+
} else {
666+
impl.logger.Errorw("ecr repo creation failed, it might be due to authorization or any other external "+
667+
"dependency. please create repo manually before triggering ci", "repo", dockerRepository, "err", err)
668+
return err
669+
}
670+
}
671+
return nil
672+
}
673+
651674
func (impl PipelineBuilderImpl) getGitMaterialsForApp(appId int) ([]*bean.GitMaterial, error) {
652675
materials, err := impl.materialRepo.FindByAppId(appId)
653676
if err != nil {

0 commit comments

Comments
 (0)