in controllers/stage/chain/delete_environment_label_from_codebase_image_streams.go [37:73]
func (h DeleteEnvironmentLabelFromCodebaseImageStreams) deleteEnvironmentLabel(ctx context.Context, stage *cdPipeApi.Stage) error {
pipe, err := util.GetCdPipeline(h.client, stage)
if err != nil {
return fmt.Errorf("failed to 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.Spec.Name)
}
for _, name := range pipe.Spec.InputDockerStreams {
stream, err := cluster.GetCodebaseImageStream(h.client, name, stage.Namespace)
if err != nil {
return fmt.Errorf("failed to get %s codebase image stream: %w", name, err)
}
if stage.IsFirst() {
if envErr := h.setEnvLabel(ctx, stage.Spec.Name, pipe.Spec.Name, stream); envErr != nil {
return envErr
}
continue
}
if envErr := h.setEnvLabelForVerifiedImageStream(ctx, stage, stream, pipe.Spec.Name, name); envErr != nil {
return envErr
}
if !slices.Contains(pipe.Spec.ApplicationsToPromote, stream.Spec.Codebase) {
if envErr := h.setEnvLabel(ctx, stage.Spec.Name, pipe.Spec.Name, stream); envErr != nil {
return envErr
}
}
}
return nil
}