-
Notifications
You must be signed in to change notification settings - Fork 6.8k
Description
Checklist:
- I've searched in the docs and FAQ for my answer: https://bit.ly/argocd-faq.
- I've included steps to reproduce the bug.
- I've pasted the output of
argocd version.
Describe the bug
When a globalProjects is defined in argocd-cm, editing projects from the UI adds duplicate fields for specs coming from the global project for each edit.
To Reproduce
-
Configure a
globalProjectsin theargocd-cmlike this:# ... globalProjects: |- - labelSelector: {} projectName: global-common # ...
-
Define a global project and sample project like this:
apiVersion: argoproj.io/v1alpha1 kind: AppProject metadata: name: global-common namespace: argocd spec: clusterResourceBlacklist: - group: '*' kind: '*' namespaceResourceBlacklist: - group: "" kind: LimitRange --- apiVersion: argoproj.io/v1alpha1 kind: AppProject metadata: name: debman namespace: argocd spec: destinations: - namespace: debman server: '*' - namespace: test server: '*' - namespace: test2 server: '*' roles: # ...
-
Now, in the UI, you should see the inherited spec from the
global-commonin the other project.
-
Then, edit the arbitrary spec like the destinations in the UI and save. After saving, it adds duplicate entries in the specs which defined in the global project. For example, in the following screenshots, I added
test3andtest4as destinations in two separate edits, the result in UI is like this:
Also, in the
yamldefinition of theappprojectobject, we can see one entry is added per edit, which is redundant and not required:# ... spec: clusterResourceBlacklist: - group: '*' kind: '*' - group: '*' kind: '*' destinations: - namespace: debman server: '*' - namespace: test server: '*' - namespace: test2 server: '*' - namespace: test3 server: '*' - namespace: test4 server: '*' namespaceResourceBlacklist: - group: "" kind: LimitRange - group: "" kind: LimitRange # ...
Expected behavior
The UI should distinguish entries from global projects and show the specs from them as not editable. Also, the controller should check and avoid adding duplicate entries that are already defined in a global project.
This can lead to more errors in some scenarios if we define sourcerepos. The UI then fails to edit with the "Already existing source repo" on edit.
Screenshots
Attached above
Version
Argo CD v3.2.0+66b2f30
Build Date 2025-11-04T14:51:35Z
Go Version go1.25.0
Go Compiler gc
Platform linux/amd64
jsonnet v0.21.0
kustomize v5.7.0 2025-06-28T07:00:07Z
Helm v3.18.4+gd80839c
kubectl v0.34.0
Logs
spcld-argocd-user-server-856899bc8b-gx5wb time="2025-12-31T10:08:04Z" level=info msg="received unary call /project.ProjectService/GetDetailedProject" grpc.request.claims="{\"exp\":1767259178,\"iat\":1767172778,\"iss\":\"argocd\",\"jti\":\"aa5fa370-5e15-4397-a13b-3fac9915a8a6\",\"nbf\":1767172778,\"sub\":\"admin\"}" grpc.request.content="name:\"debman\" "
spcld-argocd-user-server-856899bc8b-gx5wb time="2025-12-31T10:08:04Z" level=info msg="received unary call /project.ProjectService/ListLinks" grpc.request.claims="{\"exp\":1767259178,\"iat\":1767172778,\"iss\":\"argocd\",\"jti\":\"aa5fa370-5e15-4397-a13b-3fac9915a8a6\",\"nbf\":1767172778,\"sub\":\"admin\"}" grpc.request.content="name:\"debman\" "
spcld-argocd-user-server-856899bc8b-gx5wb time="2025-12-31T10:08:04Z" level=info msg="received unary call /application.ApplicationService/List" grpc.request.claims="{\"exp\":1767259178,\"iat\":1767172778,\"iss\":\"argocd\",\"jti\":\"aa5fa370-5e15-4397-a13b-3fac9915a8a6\",\"nbf\":1767172778,\"sub\":\"admin\"}" grpc.request.content="projects:\"debman\" "
spcld-argocd-user-server-856899bc8b-gx5wb time="2025-12-31T10:08:40Z" level=info msg="received unary call /project.ProjectService/GetDetailedProject" grpc.request.claims="{\"exp\":1767259178,\"iat\":1767172778,\"iss\":\"argocd\",\"jti\":\"aa5fa370-5e15-4397-a13b-3fac9915a8a6\",\"nbf\":1767172778,\"sub\":\"admin\"}" grpc.request.content="name:\"debman\" "
spcld-argocd-user-server-856899bc8b-gx5wb time="2025-12-31T10:08:40Z" level=info msg="received unary call /application.ApplicationService/List" grpc.request.claims="{\"exp\":1767259178,\"iat\":1767172778,\"iss\":\"argocd\",\"jti\":\"aa5fa370-5e15-4397-a13b-3fac9915a8a6\",\"nbf\":1767172778,\"sub\":\"admin\"}" grpc.request.content="projects:\"debman\" "
spcld-argocd-user-server-856899bc8b-gx5wb time="2025-12-31T10:08:40Z" level=info msg="received unary call /project.ProjectService/ListLinks" grpc.request.claims="{\"exp\":1767259178,\"iat\":1767172778,\"iss\":\"argocd\",\"jti\":\"aa5fa370-5e15-4397-a13b-3fac9915a8a6\",\"nbf\":1767172778,\"sub\":\"admin\"}" grpc.request.content="name:\"debman\" "
spcld-argocd-user-server-856899bc8b-gx5wb time="2025-12-31T10:09:08Z" level=info msg="received unary call /project.ProjectService/Get" grpc.request.claims="{\"exp\":1767259178,\"iat\":1767172778,\"iss\":\"argocd\",\"jti\":\"aa5fa370-5e15-4397-a13b-3fac9915a8a6\",\"nbf\":1767172778,\"sub\":\"admin\"}" grpc.request.content="name:\"debman\" "
spcld-argocd-user-server-856899bc8b-gx5wb time="2025-12-31T10:09:08Z" level=info msg="admin updated project" project=debman reason=ResourceUpdated type=Normal
spcld-argocd-user-server-856899bc8b-gx5wb time="2025-12-31T10:09:08Z" level=info msg="received unary call /project.ProjectService/GetDetailedProject" grpc.request.claims="{\"exp\":1767259178,\"iat\":1767172778,\"iss\":\"argocd\",\"jti\":\"aa5fa370-5e15-4397-a13b-3fac9915a8a6\",\"nbf\":1767172778,\"sub\":\"admin\"}" grpc.request.content="name:\"debman\" "
spcld-argocd-user-server-856899bc8b-gx5wb time="2025-12-31T10:17:46Z" level=info msg="received unary call /project.ProjectService/GetDetailedProject" grpc.request.claims="{\"exp\":1767259178,\"iat\":1767172778,\"iss\":\"argocd\",\"jti\":\"aa5fa370-5e15-4397-a13b-3fac9915a8a6\",\"nbf\":1767172778,\"sub\":\"admin\"}" grpc.request.content="name:\"debman\" "
spcld-argocd-user-server-856899bc8b-gx5wb time="2025-12-31T10:17:46Z" level=info msg="received unary call /application.ApplicationService/List" grpc.request.claims="{\"exp\":1767259178,\"iat\":1767172778,\"iss\":\"argocd\",\"jti\":\"aa5fa370-5e15-4397-a13b-3fac9915a8a6\",\"nbf\":1767172778,\"sub\":\"admin\"}" grpc.request.content="projects:\"debman\" "
spcld-argocd-user-server-856899bc8b-gx5wb time="2025-12-31T10:17:46Z" level=info msg="received unary call /project.ProjectService/ListLinks" grpc.request.claims="{\"exp\":1767259178,\"iat\":1767172778,\"iss\":\"argocd\",\"jti\":\"aa5fa370-5e15-4397-a13b-3fac9915a8a6\",\"nbf\":1767172778,\"sub\":\"admin\"}" grpc.request.content="name:\"debman\" "
spcld-argocd-user-server-856899bc8b-gx5wb time="2025-12-31T10:20:26Z" level=info msg="received unary call /project.ProjectService/Get" grpc.request.claims="{\"exp\":1767259178,\"iat\":1767172778,\"iss\":\"argocd\",\"jti\":\"aa5fa370-5e15-4397-a13b-3fac9915a8a6\",\"nbf\":1767172778,\"sub\":\"admin\"}" grpc.request.content="name:\"debman\" "
spcld-argocd-user-server-856899bc8b-gx5wb time="2025-12-31T10:20:26Z" level=info msg="admin updated project" project=debman reason=ResourceUpdated type=Normal
spcld-argocd-user-server-856899bc8b-gx5wb time="2025-12-31T10:20:26Z" level=info msg="received unary call /project.ProjectService/GetDetailedProject" grpc.request.claims="{\"exp\":1767259178,\"iat\":1767172778,\"iss\":\"argocd\",\"jti\":\"aa5fa370-5e15-4397-a13b-3fac9915a8a6\",\"nbf\":1767172778,\"sub\":\"admin\"}" grpc.request.content="name:\"debman\" "
spcld-argocd-user-server-856899bc8b-gx5wb time="2025-12-31T10:20:46Z" level=info msg="received unary call /project.ProjectService/Get" grpc.request.claims="{\"exp\":1767259178,\"iat\":1767172778,\"iss\":\"argocd\",\"jti\":\"aa5fa370-5e15-4397-a13b-3fac9915a8a6\",\"nbf\":1767172778,\"sub\":\"admin\"}" grpc.request.content="name:\"debman\" "
spcld-argocd-user-server-856899bc8b-gx5wb time="2025-12-31T10:20:54Z" level=info msg="received unary call /project.ProjectService/Get" grpc.request.claims="{\"exp\":1767259178,\"iat\":1767172778,\"iss\":\"argocd\",\"jti\":\"aa5fa370-5e15-4397-a13b-3fac9915a8a6\",\"nbf\":1767172778,\"sub\":\"admin\"}" grpc.request.content="name:\"debman\" "
spcld-argocd-user-server-856899bc8b-gx5wb time="2025-12-31T10:23:34Z" level=info msg="received unary call /project.ProjectService/GetDetailedProject" grpc.request.claims="{\"exp\":1767259178,\"iat\":1767172778,\"iss\":\"argocd\",\"jti\":\"aa5fa370-5e15-4397-a13b-3fac9915a8a6\",\"nbf\":1767172778,\"sub\":\"admin\"}" grpc.request.content="name:\"debman\" "
spcld-argocd-user-server-856899bc8b-gx5wb time="2025-12-31T10:23:34Z" level=info msg="received unary call /project.ProjectService/ListLinks" grpc.request.claims="{\"exp\":1767259178,\"iat\":1767172778,\"iss\":\"argocd\",\"jti\":\"aa5fa370-5e15-4397-a13b-3fac9915a8a6\",\"nbf\":1767172778,\"sub\":\"admin\"}" grpc.request.content="name:\"debman\" "
spcld-argocd-user-server-856899bc8b-gx5wb time="2025-12-31T10:23:34Z" level=info msg="received unary call /application.ApplicationService/List" grpc.request.claims="{\"exp\":1767259178,\"iat\":1767172778,\"iss\":\"argocd\",\"jti\":\"aa5fa370-5e15-4397-a13b-3fac9915a8a6\",\"nbf\":1767172778,\"sub\":\"admin\"}" grpc.request.content="projects:\"debman\" "
spcld-argocd-user-server-856899bc8b-gx5wb time="2025-12-31T10:23:42Z" level=info msg="received unary call /project.ProjectService/Get" grpc.request.claims="{\"exp\":1767259178,\"iat\":1767172778,\"iss\":\"argocd\",\"jti\":\"aa5fa370-5e15-4397-a13b-3fac9915a8a6\",\"nbf\":1767172778,\"sub\":\"admin\"}" grpc.request.content="name:\"debman\" "
spcld-argocd-user-server-856899bc8b-gx5wb time="2025-12-31T10:23:42Z" level=info msg="admin updated project" project=debman reason=ResourceUpdated type=Normal
spcld-argocd-user-server-856899bc8b-gx5wb time="2025-12-31T10:23:42Z" level=info msg="received unary call /project.ProjectService/GetDetailedProject" grpc.request.claims="{\"exp\":1767259178,\"iat\":1767172778,\"iss\":\"argocd\",\"jti\":\"aa5fa370-5e15-4397-a13b-3fac9915a8a6\",\"nbf\":1767172778,\"sub\":\"admin\"}" grpc.request.content="name:\"debman\" "
spcld-argocd-user-server-856899bc8b-gx5wb time="2025-12-31T10:27:05Z" level=info msg="received unary call /project.ProjectService/GetDetailedProject" grpc.request.claims="{\"exp\":1767259178,\"iat\":1767172778,\"iss\":\"argocd\",\"jti\":\"aa5fa370-5e15-4397-a13b-3fac9915a8a6\",\"nbf\":1767172778,\"sub\":\"admin\"}" grpc.request.content="name:\"debman\" "
spcld-argocd-user-server-856899bc8b-gx5wb time="2025-12-31T10:27:05Z" level=info msg="received unary call /project.ProjectService/ListLinks" grpc.request.claims="{\"exp\":1767259178,\"iat\":1767172778,\"iss\":\"argocd\",\"jti\":\"aa5fa370-5e15-4397-a13b-3fac9915a8a6\",\"nbf\":1767172778,\"sub\":\"admin\"}" grpc.request.content="name:\"debman\" "
spcld-argocd-user-server-856899bc8b-gx5wb time="2025-12-31T10:27:05Z" level=info msg="received unary call /application.ApplicationService/List" grpc.request.claims="{\"exp\":1767259178,\"iat\":1767172778,\"iss\":\"argocd\",\"jti\":\"aa5fa370-5e15-4397-a13b-3fac9915a8a6\",\"nbf\":1767172778,\"sub\":\"admin\"}" grpc.request.content="projects:\"debman\" "