Repository navigation
Missing Resources on App installation with Helm #29679
Replies: 6 comments 2 replies
|
Hi @thomas-2020, glad to meet you. That ExcludedResourceWarning means ArgoCD is intentionally skipping those resources (ServiceAccount, StatefulSet, etc.) because of an exclusion rule defined higher up in your setup. Even if you didn't configure any exclusions inside your Application manifest, ArgoCD inherits these restrictions from global or project-level settings. In my experience with ArgoCD, this almost always boils down to one of three places. Here is how I'd drill down into it step-by-step:
Check your global ConfigMap: kubectl get cm argocd-cm -n argocd -o yaml | grep -A 15 "resource.exclusions"If ServiceAccount or StatefulSet show up under the excluded kinds, that's your root cause.
Inspect the project attached to your app: kubectl get appproject <project-name> -n argocd -o yaml | grep -iE 'blacklist|whitelist' -A 10Look for entries under clusterResourceBlacklist, namespaceResourceBlacklist, or overly restrictive clusterResourceWhitelist rules blocking these resource types.
Check the operator's Custom Resource: kubectl get argocd -n argocd -o yaml | grep -i -A 10 "resourceExclusions"If exclusions are defined here, you'll need to patch the ArgoCD Custom Resource itself rather than modifying the ConfigMap. Once you run those commands, you should be able to pinpoint exactly which layer is filtering them out. Let me know if this helps resolve the issue! If not, feel free to share any other errors, log outputs, or details you encounter so we can dig deeper and get it sorted out. |
|
Hello @christianalberto , Regarding OpenShift, we create a ServiceAccount and we configure a Cluster in ArgoCD for using this service account to deploy remotely. Can we debug (or log) how ArgoCD is working with the remote cluster connection and which resources are generated from the Helm Chart? |
|
Hi @thomas-2020, Since options 1 and 2 are ruled out and this involves a remote OpenShift cluster, the issue is almost certainly caused by API Discovery/RBAC limitations on the remote ServiceAccount or Helm Here is how to isolate and fix it step-by-step: 1. Check generated Helm manifests argocd app manifests <application-name>If missing from the output: The issue lies within your Helm values.yaml (e.g., flags like createServiceAccount: false or disabled sub-components). If present in the output: The issue is strictly related to remote cluster API permissions (step 2). 2. Verify Remote OpenShift ServiceAccount RBAC OpenShift enforces strict default security constraints and RBAC. If the remote ServiceAccount lacks permissions to discover or list those specific API groups (e.g., apps/v1 for StatefulSet or core ServiceAccount), ArgoCD's application-controller cannot track their state and flags them with ExcludedResourceWarning. Test the permissions directly against the remote OpenShift cluster: kubectl auth can-i create serviceaccounts -n <target-namespace> --as=system:serviceaccount:<remote-namespace>:<remote-sa-name>
kubectl auth can-i create statefulsets -n <target-namespace> --as=system:serviceaccount:<remote-namespace>:<remote-sa-name>If any command returns no, you need to grant the remote ServiceAccount an appropriate ClusterRoleBinding (or cluster-admin for full remote management). 3. Enable Controller Debug Logs Let me know what argocd app manifests outputs! |
|
That warning means Argo CD's resource filters dropped those objects — it discovered them, but isn't allowed to manage them, so they aren't shown. Two places to check: 1. AppProject whitelist/blacklist. If the app isn't in the spec:
namespaceResourceWhitelist:
- group: '*'
kind: '*'
clusterResourceWhitelist:
- group: '*'
kind: '*'
destinations:
- namespace: 'elastic-system'
server: https://kubernetes.default.svc2. Global exclusions in kubectl get cm argocd-cm -n argocd -o jsonpath='{.data.resource\.exclusions}'
kubectl get cm argocd-cm -n argocd -o jsonpath='{.data.resource\.inclusions}'If anything there matches ServiceAccounts/StatefulSets in — |
|
That exact message points back to Argo CD's resource filter: the controller code drops a rendered target object when Using the same AppProject doesn't rule out global filters, because inclusion/exclusion rules can match cluster URLs. Check |
|
We solved it with this patch in our ArgoCD kustomization.yaml |
Uh oh!
There was an error while loading. Please reload this page.
Hello team,
I want to install (e.g.) ECK-Operator with ArgoCD and the Helm Chart. After ArgoCD has the application synchronized, the app is in green state. But I miss a lot of K8S resources (ServiceAccount, StatefuleSet, ...). ArgoCD doesn't display the missing resources. I find only warings in "Application conditions" ...
ExcludedResourceWarning Resource /ServiceAccount elastic-operator is excluded in the settingsI never configure ArgoCD to exclude these resources. I think it is a policy, role or permission issue.
Have you any idea how to drill down into the root cause?
All reactions