Skip to content

Missing impersonate verb for serviceaccounts in default server clusterRoleRules (v3.5.x / Chart v10.4.0) #4028

Open

Description

@citask-kszymanski

Describe the bug

After upgrading Argo CD to version v3.5.1 (using helm chart v10.4.0), users encounter a forbidden error when attempting to delete resources via the Argo CD UI or API.

This happens because Argo CD v3.5 extended the application impersonation capabilities to server operations. The argocd-server now attempts to impersonate the application controller's ServiceAccount during deletion/management tasks. However, the default ClusterRole generated by the Helm Chart does not grant the argocd-server the permission to impersonate serviceaccounts.

Related helm chart

argo-cd

Helm chart version

v10.4.0

To Reproduce

  1. Deploy Argo CD using helm chart v10.4.0 (Argo CD app version v3.5.1) with default RBAC settings (server.clusterRoleRules.enabled set to false).
  2. Log into the Argo CD UI.
  3. Attempt to delete a live resource managed by Argo CD, for example pod.
  4. The deletion fails with the RBAC impersonation error.

Expected behavior

The default ClusterRole (or namespace-scoped Role) created for argocd-server should automatically include the impersonate verb for serviceaccounts to support the architectural changes introduced in Argo CD v3.5.x.

Screenshots

Image

Additional context

I think that adding following rule to the default server role templates (both ClusterRole and Role) should fix the problem:

  - apiGroups:
      - ""
    resources:
      - serviceaccounts
    verbs:
      - impersonate

Activity

  1. lemon0333 commented on Aug 22, 2026

    @lemon0333
    Contributor

    I'd like to take this one. I'll add an impersonate rule for serviceaccounts (apiGroups: [""], verbs: ["impersonate"]) to the default server RBAC templates (both the ClusterRole and namespace-scoped Role), guarded under the chart-managed default-rules path so it doesn't affect users supplying their own server.clusterRoleRules.rules. This restores UI/API resource deletion under Argo CD v3.5.x, which now impersonates the application controller's ServiceAccount on delete/manage. PR incoming.

  2. jmeridth commented on Sep 1, 2026

    @jmeridth
    Member

    Triage question to help route the fix: can you confirm whether application.sync.impersonation.enabled: true is set in your argocd-cm? Upstream v3.5.1 ships no impersonate RBAC grants in its own manifests, and default installs never send impersonation headers, so the forbidden error on delete should only occur with that feature enabled. See the discussion on #4031 for why the fix will likely be an opt-in scoped grant or documentation rather than a default RBAC change.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    argo-cdbugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions