in controllers/stage/chain/put_environment_label_to_codebase_image_streams.go [24:64]
func (h PutEnvironmentLabelToCodebaseImageStreams) ServeRequest(ctx context.Context, stage *cdPipeApi.Stage) error {
logger := ctrl.LoggerFrom(ctx)
if stage.IsManualTriggerType() {
logger.Info("Trigger type is not auto deploy, skipping")
return nil
}
logger.Info("start creating environment labels in codebase image stream resources.")
pipe, err := util.GetCdPipeline(h.client, stage)
if err != nil {
return fmt.Errorf("couldn't get %s cd pipeline: %w", stage.Spec.CdPipeline, err)
}
if len(pipe.Spec.InputDockerStreams) == 0 {
return fmt.Errorf("pipeline %s doesn't contain codebase image streams", pipe.Name)
}
for _, name := range pipe.Spec.InputDockerStreams {
stream, err := cluster.GetCodebaseImageStream(h.client, name, stage.Namespace)
if err != nil {
return fmt.Errorf("couldn't get %s codebase image stream: %w", name, err)
}
if stage.IsFirst() || !slices.Contains(pipe.Spec.ApplicationsToPromote, stream.Spec.Codebase) {
if updErr := h.updateLabel(ctx, stream, pipe.Name, stage.Spec.Name); updErr != nil {
return updErr
}
continue
}
if err = h.updateLabelForVerifiedStream(ctx, pipe.Name, stream.Spec.Codebase, stage); err != nil {
return err
}
}
logger.Info("environment labels have been added to codebase image stream resources.")
return nil
}