func()

in pkg/argocd/argoapplicationset_manager.go [208:258]


func (c *ArgoApplicationSetManager) makeStageGenerators(
	ctx context.Context,
	stage *cdPipeApi.Stage,
	codebases map[string]codebaseApi.Codebase,
	gitServers map[string]codebaseApi.GitServer,
) (map[string]apiextensionsv1.JSON, error) {
	stageGenerators := make(map[string]apiextensionsv1.JSON, len(codebases))

	for k := range codebases {
		spec := codebases[k].Spec

		image, err := c.getImageRepo(ctx, codebases[k].Namespace, codebases[k].Name, spec.DefaultBranch)
		if err != nil {
			return nil, err
		}

		gitServer, ok := gitServers[spec.GitServer]
		if !ok {
			return nil, fmt.Errorf("git server %s not found", spec.GitServer)
		}

		gen := generatorElement{
			Stage:           stage.Spec.Name,
			Codebase:        codebases[k].Name,
			ImageTag:        "NaN",
			ImageRepository: image,
			Cluster:         stage.Spec.ClusterName,
			Namespace:       stage.Spec.Namespace,
			RepoURL: fmt.Sprintf(
				"ssh://%s@%s:%d%s",
				gitServer.Spec.GitUser,
				gitServer.Spec.GitHost,
				gitServer.Spec.SshPort,
				spec.GitUrlPath,
			),
			GitUrlPath:   spec.GetProjectID(),
			VersionType:  string(spec.Versioning.Type),
			CustomValues: false,
		}

		var raw []byte

		if raw, err = json.Marshal(gen); err != nil {
			return nil, fmt.Errorf("failed to marshal generator element: %w", err)
		}

		stageGenerators[fmt.Sprintf("%s-%s", codebases[k].Name, stage.Spec.Name)] = apiextensionsv1.JSON{Raw: raw}
	}

	return stageGenerators, nil
}