Skip to content

Commit 6cb24ff

Browse files
author
kumudhan
committed
update argocd-crospslane doc on fix to Cross-namespace resource hierarchy
1 parent 15fb38a commit 6cb24ff

File tree

1 file changed

+63
-0
lines changed

1 file changed

+63
-0
lines changed

content/v2.1/guides/crossplane-with-argo-cd.md

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,3 +222,66 @@ Set the environment variable `ARGOCD_K8S_CLIENT_QPS` to `300` for improved compa
222222
The default value of `ARGOCD_K8S_CLIENT_QPS` is 50, modifying the value also updates `ARGOCD_K8S_CLIENT_BURST` as it
223223
is default to `ARGOCD_K8S_CLIENT_QPS` x 2.
224224

225+
#### Cross-namespace resource hierarchy
226+
227+
Argo CD versions before v3.3.0 have a limitation displaying namespaced resources owned by cluster-scoped resources in the application tree. This affects Crossplane deployments where cluster-scoped resources like `ProviderRevision` create namespaced children like `Deployment` and `Service` resources.
228+
229+
##### The issue
230+
231+
When viewing a Crossplane application in Argo CD versions before v3.3.0, cluster-scoped resources and their cluster-scoped children appear correctly, but namespaced children don't appear in the resource tree.
232+
233+
For example:
234+
- ✅ `ProviderRevision` (cluster-scoped parent) appears
235+
- ✅ `ClusterRole` (cluster-scoped child) appears
236+
- ❌ `Deployment` (namespaced child) is missing from the tree
237+
238+
This occurs because the gitops-engine's hierarchy traversal only processes resources within the same namespace, preventing cross-namespace parent-child relationships from being discovered.
239+
240+
{{<hint "important">}}
241+
The missing resources are still deployed and managed by Argo CD. They just don't appear in the UI tree visualization.
242+
{{</hint>}}
243+
244+
##### Example
245+
246+
```yaml
247+
# This cluster-scoped parent appears in Argo CD
248+
apiVersion: pkg.crossplane.io/v1
249+
kind: ProviderRevision
250+
metadata:
251+
name: provider-aws-s3-96df8f51090d
252+
253+
---
254+
# This namespaced child is missing from the Argo CD tree
255+
apiVersion: apps/v1
256+
kind: Deployment
257+
metadata:
258+
name: provider-aws-s3-96df8f51090d
259+
namespace: crossplane-system
260+
ownerReferences:
261+
- apiVersion: pkg.crossplane.io/v1
262+
kind: ProviderRevision
263+
name: provider-aws-s3-96df8f51090d
264+
controller: true
265+
```
266+
267+
##### Resolution
268+
269+
This issue is fixed in Argo CD v3.3.0 and later. Upgrade to Argo CD v3.3.0 or later for full Crossplane resource visibility in the application tree.
270+
271+
After upgrading, verify the fix by expanding a `Provider` or `ProviderRevision` resource in the Argo CD UI and confirming that namespaced children like `Deployment` and `Service` resources now appear.
272+
273+
##### Workaround for older versions
274+
275+
If you can't upgrade to v3.3.0 immediately, use `kubectl` to verify namespaced resources:
276+
277+
```bash
278+
# List all resources owned by a ProviderRevision
279+
kubectl get all -n crossplane-system -l pkg.crossplane.io/revision=provider-aws-s3-96df8f51090d
280+
281+
# Check Deployments created by Providers
282+
kubectl get deployments -n crossplane-system
283+
```
284+
285+
GitOps synchronization, health status reporting, and automatic reconciliation continue to work correctly. Only the visual representation in the Argo CD UI is affected.
286+
287+
For more details, see [Argo CD issue #24379](https://github.com/argoproj/argo-cd/issues/24379) and [PR #24847](https://github.com/argoproj/argo-cd/pull/24847).

0 commit comments

Comments
 (0)