<p>I want to use the <a href="https://argo-cd.readthedocs.io/en/stable/operator-manual/cluster-bootstrapping/" rel="nofollow noreferrer">App-of-apps</a> practice with ArgoCD. So I created a simple folder structure like the one below. Then I created a project called <code>dev</code> and I created an app that will look inside the folder <code>apps</code>, so when new <code>Application</code> manifests are included, it will automatically create new applications. This last part works. Every time I add a new <code>Application</code> manifest, a new app is created as a child of the <code>apps</code>. However, the actual app that will monitor the respective folder and create the service and deployment is not created and I can't figure out what I am doing wrong. I have followed different tutorials that use Helm and Kustomize and all have given the same end result.</p>
<p>Can someone spot what am I missing here?</p>
<ul>
<li>Folder structure</li>
</ul>
<pre class="lang-sh prettyprint-override"><code>deployments/dev
├── apps
│   ├── app1.yaml
│   └── app2.yaml
├── app1
│   ├── app1-deployment.yaml
│   └── app1-svc.yaml
└── app-2
    ├── app2-deployment.yaml
    └── app2-svc.yaml
</code></pre>
<ul>
<li>Parent app <code>Application</code> manifest that is watching <code>/dev/apps</code> folder</li>
</ul>
<pre class="lang-yaml prettyprint-override"><code>apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: root-app
  namespace: argocd
spec:
  destination:
    server: https://kubernetes.default.svc
    namespace: argocd
  project: dev
  source:
    path: deployments/dev/apps/
    repoURL: https://github.com/&lt;repo&gt;.git
    targetRevision: HEAD
  syncPolicy:
    automated:
      prune: true
      selfHeal: true
      allowEmpty: true
</code></pre>
<ul>
<li>And the App1 and App2 <code>Application</code> manifest is the same for both apps like so:</li>
</ul>
<pre class="lang-yaml prettyprint-override"><code>apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: &lt;app1&gt;/&lt;app2&gt;
  namespace: default
spec:
  destination:
    server: https://kubernetes.default.svc
    namespace: default
  project: dev
  source:
    path: deployments/dev/&lt;app1&gt; or deployments/dev/&lt;app2&gt;
    repoURL: https://github.com/&lt;repo&gt;.git
    targetRevision: HEAD
  syncPolicy:
    automated:
      prune: true
      selfHeal: true
      allowEmpty: true
</code></pre>

everspader
<h2>Posting comment as the community wiki answer for better visibility</h2>
<hr />
<p>It turns out that at the moment ArgoCD can only recognize application declarations made in ArgoCD namespace, but @everspader was doing it in the default namespace. For more info, please refer to <a href="https://github.com/argoproj/argo-cd/issues/3474" rel="nofollow noreferrer">GitHub Issue</a></p>
