github.com/argoproj/argo-cd/v3@v3.2.1/applicationset/generators/utils.go (about)

     1  package generators
     2  
     3  import (
     4  	"context"
     5  
     6  	"k8s.io/client-go/dynamic"
     7  	"k8s.io/client-go/kubernetes"
     8  	"sigs.k8s.io/controller-runtime/pkg/client"
     9  
    10  	"github.com/argoproj/argo-cd/v3/applicationset/services"
    11  )
    12  
    13  func GetGenerators(ctx context.Context, c client.Client, k8sClient kubernetes.Interface, controllerNamespace string, argoCDService services.Repos, dynamicClient dynamic.Interface, scmConfig SCMConfig) map[string]Generator {
    14  	terminalGenerators := map[string]Generator{
    15  		"List":                    NewListGenerator(),
    16  		"Clusters":                NewClusterGenerator(ctx, c, k8sClient, controllerNamespace),
    17  		"Git":                     NewGitGenerator(argoCDService, controllerNamespace),
    18  		"SCMProvider":             NewSCMProviderGenerator(c, scmConfig),
    19  		"ClusterDecisionResource": NewDuckTypeGenerator(ctx, dynamicClient, k8sClient, controllerNamespace),
    20  		"PullRequest":             NewPullRequestGenerator(c, scmConfig),
    21  		"Plugin":                  NewPluginGenerator(c, controllerNamespace),
    22  	}
    23  
    24  	nestedGenerators := map[string]Generator{
    25  		"List":                    terminalGenerators["List"],
    26  		"Clusters":                terminalGenerators["Clusters"],
    27  		"Git":                     terminalGenerators["Git"],
    28  		"SCMProvider":             terminalGenerators["SCMProvider"],
    29  		"ClusterDecisionResource": terminalGenerators["ClusterDecisionResource"],
    30  		"PullRequest":             terminalGenerators["PullRequest"],
    31  		"Plugin":                  terminalGenerators["Plugin"],
    32  		"Matrix":                  NewMatrixGenerator(terminalGenerators),
    33  		"Merge":                   NewMergeGenerator(terminalGenerators),
    34  	}
    35  
    36  	topLevelGenerators := map[string]Generator{
    37  		"List":                    terminalGenerators["List"],
    38  		"Clusters":                terminalGenerators["Clusters"],
    39  		"Git":                     terminalGenerators["Git"],
    40  		"SCMProvider":             terminalGenerators["SCMProvider"],
    41  		"ClusterDecisionResource": terminalGenerators["ClusterDecisionResource"],
    42  		"PullRequest":             terminalGenerators["PullRequest"],
    43  		"Plugin":                  terminalGenerators["Plugin"],
    44  		"Matrix":                  NewMatrixGenerator(nestedGenerators),
    45  		"Merge":                   NewMergeGenerator(nestedGenerators),
    46  	}
    47  
    48  	return topLevelGenerators
    49  }