Matrix generator - Combine SCM and Git Generators, consume parameters from parent
AlissonRS opened this issue · 1 comments
I was looking to have SCM generator discover repos in my organization that have a specific folder "k8s", then combine with Git generator to discover folders and generate one Application for each folder.
Consider two repos as follow:
Repo A
k8s
--- api
--- job-a
Repo B
k8s
--- web
--- api
So it would find both repos as both have the k8s folder, then create 4 applications (one for each subfolder).
So I could create an ApplicationSet as below:
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: stakelands-appset
namespace: argocd
spec:
goTemplate: true
goTemplateOptions: ["missingkey=error"]
generators:
- merge:
generators:
- scmProvider:
github:
organization: my-org
cloneProtocol: ssh
branchMatch: "\b(main|develop)\b"
filters:
- pathsExist: [k8s]
- git:
repoURL: '{{ url }}'
revision: '{{ branch }}'
directories:
- path: k8s/*
template:
metadata:
name: '{{.path.basename}}'
spec:
project: "default"
source:
repoURL: '{{ url }}'
targetRevision: '{{ branch }}'
path: '{{.path.path}}'
destination:
server: https://kubernetes.default.svc
Notice how in the Git generator I'm trying to use {{ url }} and {{ branch }} found by the SCM generator.
I thought this was implemented in #530 but I'm not sure that's the case, at least this is not working for me, and in the Matrix docs there is an example of combining Git + Cluster generators, but I don't really see the cluster generator referencing parameters from the Git generator, perhaps I misunderstood how it works.
Thanks!