func()

in pkg/autodeploy/autodeploy.go [63:105]


func (h *StrategyManager) GetAppPayloadForCurrentWithStableStrategy(
	ctx context.Context,
	current codebaseApi.CodebaseTag,
	pipeline *pipelineAPi.CDPipeline,
	stage *pipelineAPi.Stage,
) (json.RawMessage, error) {
	appPayload := make(map[string]ApplicationPayload, len(pipeline.Spec.InputDockerStreams))

	for _, app := range pipeline.Spec.Applications {
		t, ok := stage.GetAnnotations()[fmt.Sprintf("app.edp.epam.com/%s", app)]
		if ok {
			appPayload[app] = ApplicationPayload{
				ImageTag: t,
			}
		}
	}

	appPayload[current.Codebase] = ApplicationPayload{
		ImageTag: current.Tag,
	}

	for _, stream := range pipeline.Spec.InputDockerStreams {
		imageStreamName := put_codebase_image_stream.ProcessNameToK8sConvention(stream)

		codebase, tag, err := h.getLatestTag(ctx, imageStreamName, pipeline.Namespace)
		if err != nil {
			return nil, err
		}

		if _, ok := appPayload[codebase]; !ok {
			appPayload[codebase] = ApplicationPayload{
				ImageTag: tag,
			}
		}
	}

	rawAppPayload, err := json.Marshal(appPayload)
	if err != nil {
		return nil, fmt.Errorf("failed to marshal application payload: %w", err)
	}

	return rawAppPayload, nil
}