Skip to content

ignoreDifferences with managedFieldsManagers does not work if field removed from the desired manifest #25110

@madaraszg-tulip

Description

@madaraszg-tulip

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

ignoreDifferences specifying managedFieldsManagers does not work

To Reproduce

I have an application manifest that includes the following:

ignoreDifferences:
  - group: apps
    kind: Deployment
    managedFieldsManagers:
      - kube-contoller-manager

I don't have server side diff or server side apply turned on.

I have a deployment manifest that includes /spec/replicas in the last-applied-configuration:

apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    argocd.argoproj.io/tracking-id: alloy:apps/Deployment:monitoring/alloy-profiles
    deployment.kubernetes.io/revision: '10'
    kubectl.kubernetes.io/last-applied-configuration: >
      {"apiVersion":"apps/v1","kind":"Deployment","metadata":{"annotations":{"argocd.argoproj.io/tracking-id":"alloy:apps/Deployment:monitoring/alloy-profiles"},"labels":{"app.kubernetes.io/instance":"alloy","app.kubernetes.io/managed-by":"Helm","app.kubernetes.io/name":"alloy-profiles","app.kubernetes.io/part-of":"alloy","app.kubernetes.io/version":"v1.10.1","helm.sh/chart":"alloy-profiles-1.2.1"},"name":"alloy-profiles","namespace":"monitoring"},"spec":{"minReadySeconds":10,"replicas":2,...
...
  managedFields:
    - apiVersion: apps/v1
      fieldsType: FieldsV1
      fieldsV1:
        f:spec:
          f:replicas: {}
      manager: kube-controller-manager
      operation: Update
      subresource: scale
...
spec:
  minReadySeconds: 10
  progressDeadlineSeconds: 600
  replicas: 2
...

So /spec/replicas is managed by kube-controller-manager.

The desired manifest does not contain /spec/replicas.

Argocd wants to remove /spec/replicas from the live manifest, practically wants to set it to 1

Expected behavior

I would expect argocd to ignore /spec/replicas in the live manifest.

Screenshots

Image

Version

$ argocd version
argocd: v3.0.12+ed1e239
  BuildDate: 2025-07-25T19:36:41Z
  GitCommit: ed1e2397ef9af6d23b284e39d504308cdda1957b
  GitTreeState: clean
  GoVersion: go1.24.4
  Compiler: gc
  Platform: linux/amd64

Logs

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingtriage/pendingThis issue needs further triage to be correctly classified

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions