diff --git a/pkg/dockerRegistry/DockerRegistryIpsConfigService.go b/pkg/dockerRegistry/DockerRegistryIpsConfigService.go index 78aae3fb67b..21aab227c10 100644 --- a/pkg/dockerRegistry/DockerRegistryIpsConfigService.go +++ b/pkg/dockerRegistry/DockerRegistryIpsConfigService.go @@ -44,11 +44,12 @@ type DockerRegistryIpsConfigServiceImpl struct { clusterService cluster.ClusterService ciPipelineRepository pipelineConfig.CiPipelineRepository dockerArtifactStoreRepository repository.DockerArtifactStoreRepository + ciTemplateOverrideRepository pipelineConfig.CiTemplateOverrideRepository } func NewDockerRegistryIpsConfigServiceImpl(logger *zap.SugaredLogger, dockerRegistryIpsConfigRepository repository.DockerRegistryIpsConfigRepository, k8sUtil *k8s.K8sUtil, clusterService cluster.ClusterService, ciPipelineRepository pipelineConfig.CiPipelineRepository, - dockerArtifactStoreRepository repository.DockerArtifactStoreRepository) *DockerRegistryIpsConfigServiceImpl { + dockerArtifactStoreRepository repository.DockerArtifactStoreRepository, ciTemplateOverrideRepository pipelineConfig.CiTemplateOverrideRepository) *DockerRegistryIpsConfigServiceImpl { return &DockerRegistryIpsConfigServiceImpl{ logger: logger, dockerRegistryIpsConfigRepository: dockerRegistryIpsConfigRepository, @@ -56,6 +57,7 @@ func NewDockerRegistryIpsConfigServiceImpl(logger *zap.SugaredLogger, dockerRegi clusterService: clusterService, ciPipelineRepository: ciPipelineRepository, dockerArtifactStoreRepository: dockerArtifactStoreRepository, + ciTemplateOverrideRepository: ciTemplateOverrideRepository, } } @@ -83,29 +85,11 @@ func (impl DockerRegistryIpsConfigServiceImpl) HandleImagePullSecretOnApplicatio return valuesFileContent, nil } - ciPipeline, err := impl.ciPipelineRepository.FindById(ciPipelineId) + dockerRegistryId, err := impl.getDockerRegistryIdForCiPipeline(ciPipelineId) if err != nil { - impl.logger.Errorw("error in fetching ciPipeline", "ciPipelineId", ciPipelineId, "error", err) - if err == pg.ErrNoRows { - return valuesFileContent, nil - } else { - return nil, err - } - } - - if ciPipeline.IsExternal && ciPipeline.ParentCiPipeline == 0 { - impl.logger.Warn("Ignoring for external ci") - return valuesFileContent, nil - } - - if ciPipeline.CiTemplate == nil { - impl.logger.Warn("returning as ciPipeline.CiTemplate is found nil") - return valuesFileContent, nil - } - - dockerRegistryId := ciPipeline.CiTemplate.DockerRegistryId - if len(*dockerRegistryId) == 0 { - impl.logger.Warn("returning as dockerRegistryId is found empty") + impl.logger.Errorw("error in getting docker registry", "dockerRegistryId", dockerRegistryId, "error", err) + return valuesFileContent, err + } else if dockerRegistryId == nil { return valuesFileContent, nil } @@ -154,6 +138,40 @@ func (impl DockerRegistryIpsConfigServiceImpl) HandleImagePullSecretOnApplicatio return updatedValuesFileContent, nil } +func (impl DockerRegistryIpsConfigServiceImpl) getDockerRegistryIdForCiPipeline(ciPipelineId int) (*string, error) { + ciPipeline, err := impl.ciPipelineRepository.FindById(ciPipelineId) + if err != nil { + impl.logger.Errorw("error in fetching ciPipeline", "ciPipelineId", ciPipelineId, "error", err) + return nil, err + } + + if ciPipeline.IsExternal && ciPipeline.ParentCiPipeline == 0 { + impl.logger.Warn("Ignoring for external ci") + return nil, nil + } + + if ciPipeline.CiTemplate == nil { + impl.logger.Warn("returning as ciPipeline.CiTemplate is found nil") + return nil, nil + } + + dockerRegistryId := ciPipeline.CiTemplate.DockerRegistryId + if dockerRegistryId != nil && len(*dockerRegistryId) == 0 { + impl.logger.Warn("returning as dockerRegistryId is found empty") + return nil, nil + } + + if ciPipeline.IsDockerConfigOverridden { + //set dockerRegistryId value with the DockerRegistryId of the overridden dockerRegistry + ciTemplateOverride, err := impl.ciTemplateOverrideRepository.FindByCiPipelineId(ciPipelineId) + if err != nil { + impl.logger.Errorw("error in getting ciTemplateOverride by ciPipelineId", "ciPipelineId", ciPipelineId, "error", err) + return nil, err + } + dockerRegistryId = &ciTemplateOverride.DockerRegistryId + } + return dockerRegistryId, nil +} func (impl DockerRegistryIpsConfigServiceImpl) createOrUpdateDockerRegistryImagePullSecret(clusterId int, namespace string, ipsName string, dockerRegistryBean *repository.DockerArtifactStore) error { impl.logger.Infow("creating/updating ips", "ipsName", ipsName, "clusterId", clusterId) diff --git a/wire_gen.go b/wire_gen.go index 454a739d54f..2352e29001f 100644 --- a/wire_gen.go +++ b/wire_gen.go @@ -381,7 +381,8 @@ func InitializeApp() (*App, error) { genericNoteServiceImpl := genericNotes.NewGenericNoteServiceImpl(genericNoteRepositoryImpl, genericNoteHistoryServiceImpl, userRepositoryImpl, sugaredLogger) appCrudOperationServiceImpl := app2.NewAppCrudOperationServiceImpl(appLabelRepositoryImpl, sugaredLogger, appRepositoryImpl, userRepositoryImpl, installedAppRepositoryImpl, genericNoteServiceImpl) dockerRegistryIpsConfigRepositoryImpl := repository5.NewDockerRegistryIpsConfigRepositoryImpl(db) - dockerRegistryIpsConfigServiceImpl := dockerRegistry.NewDockerRegistryIpsConfigServiceImpl(sugaredLogger, dockerRegistryIpsConfigRepositoryImpl, k8sUtil, clusterServiceImplExtended, ciPipelineRepositoryImpl, dockerArtifactStoreRepositoryImpl) + ciTemplateOverrideRepositoryImpl := pipelineConfig.NewCiTemplateOverrideRepositoryImpl(db, sugaredLogger) + dockerRegistryIpsConfigServiceImpl := dockerRegistry.NewDockerRegistryIpsConfigServiceImpl(sugaredLogger, dockerRegistryIpsConfigRepositoryImpl, k8sUtil, clusterServiceImplExtended, ciPipelineRepositoryImpl, dockerArtifactStoreRepositoryImpl, ciTemplateOverrideRepositoryImpl) pipelineStatusTimelineResourcesRepositoryImpl := pipelineConfig.NewPipelineStatusTimelineResourcesRepositoryImpl(db, sugaredLogger) pipelineStatusTimelineResourcesServiceImpl := status.NewPipelineStatusTimelineResourcesServiceImpl(db, sugaredLogger, pipelineStatusTimelineResourcesRepositoryImpl) pipelineStatusSyncDetailRepositoryImpl := pipelineConfig.NewPipelineStatusSyncDetailRepositoryImpl(db, sugaredLogger) @@ -455,7 +456,6 @@ func InitializeApp() (*App, error) { pipelineTriggerRouterImpl := router.NewPipelineTriggerRouter(pipelineTriggerRestHandlerImpl, sseSSE) prePostCiScriptHistoryRepositoryImpl := repository6.NewPrePostCiScriptHistoryRepositoryImpl(sugaredLogger, db) prePostCiScriptHistoryServiceImpl := history.NewPrePostCiScriptHistoryServiceImpl(sugaredLogger, prePostCiScriptHistoryRepositoryImpl) - ciTemplateOverrideRepositoryImpl := pipelineConfig.NewCiTemplateOverrideRepositoryImpl(db, sugaredLogger) gitMaterialHistoryRepositoryImpl := repository6.NewGitMaterialHistoryRepositoyImpl(db) gitMaterialHistoryServiceImpl := history.NewGitMaterialHistoryServiceImpl(gitMaterialHistoryRepositoryImpl, sugaredLogger) ciPipelineHistoryRepositoryImpl := repository6.NewCiPipelineHistoryRepositoryImpl(db, sugaredLogger)