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
}