func()

in controllers/stage/chain/delete_environment_label_from_codebase_image_streams.go [89:118]


func (h DeleteEnvironmentLabelFromCodebaseImageStreams) setEnvLabelForVerifiedImageStream(ctx context.Context, stage *cdPipeApi.Stage, stream *codebaseApi.CodebaseImageStream, pipeName, dockerStreamName string) error {
	log := ctrl.LoggerFrom(ctx)

	previousStageName, err := util.FindPreviousStageName(ctx, h.client, stage)
	if err != nil {
		return fmt.Errorf("failed to previous stage name: %w", err)
	}

	cisName := createCisName(pipeName, previousStageName, stream.Spec.Codebase)

	stream, err = cluster.GetCodebaseImageStream(h.client, cisName, stage.Namespace)
	if err != nil {
		if k8sErrors.IsNotFound(err) {
			return edpErr.CISNotFoundError(fmt.Sprintf("codebase image stream %s is not found", cisName))
		}

		return fmt.Errorf("failed to get codebase image stream %s: %w", stream.Name, err)
	}

	env := createLabelName(pipeName, stage.Spec.Name)
	deleteLabel(&stream.ObjectMeta, env)

	if err = h.client.Update(ctx, stream); err != nil {
		return fmt.Errorf("failed to update %v codebase image stream: %w", stream, err)
	}

	log.Info("Label has been deleted from CodebaseImageStream", "label", env, "dockerStream", dockerStreamName, "codebaseImageStream", stream.Name)

	return nil
}