func()

in controllers/stage/chain/put_codebase_image_stream.go [33:72]


func (h PutCodebaseImageStream) ServeRequest(ctx context.Context, stage *cdPipeApi.Stage) error {
	log := ctrl.LoggerFrom(ctx)

	log.Info("start creating codebase image streams.")

	pipe, err := util.GetCdPipeline(h.client, stage)
	if err != nil {
		return fmt.Errorf("failed to get %v cd pipeline: %w", stage.Spec.CdPipeline, err)
	}

	registryUrl, err := h.getDockerRegistryUrl(ctx, stage.Namespace)
	if err != nil {
		return fmt.Errorf("failed to get container registry url: %w", err)
	}

	for _, ids := range pipe.Spec.InputDockerStreams {
		stream, err := cluster.GetCodebaseImageStream(h.client, ids, stage.Namespace)
		if err != nil {
			return fmt.Errorf("failed to get %v codebase image stream: %w", ids, err)
		}

		cisName := fmt.Sprintf("%v-%v-%v-verified", pipe.Name, stage.Spec.Name, stream.Spec.Codebase)
		image := fmt.Sprintf("%v/%v", registryUrl, stream.Spec.Codebase)

		if err := h.createCodebaseImageStreamIfNotExists(
			ctx,
			cisName,
			image,
			stream.Spec.Codebase,
			stage.Namespace,
			stage,
		); err != nil {
			return fmt.Errorf("failed to create %v codebase image stream: %w", cisName, err)
		}
	}

	log.Info("codebase image stream have been created.")

	return nil
}