Skip to content

Manual Changes in Cronjob not detected by Sync Mechanism #23368

@raweber42

Description

@raweber42

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

Hi!
I am running into an issue where I don't see manual changes to a cronjob reflected in ArgoCD showing the cronjob being out of sync.

I have two examples:

  • I had some cronjobs suspended manually and forgot about it. Than I was wondering why they weren't running anymore, because I saw that the application and the cronjob where synced successfully. Only when inspecting the manifest I saw, that suspend = true was set.
  • I manually added a command and args field to one cronjob. I assumed that this would result in the cronjob being out of sync (and that I would be able to manually sync that back to the original state). This was not the case, the cronjob stayed in status synced.

PS: I am willing to contribute to resolve this!

To Reproduce

I didn't try on a fresh argo instance, but creating a cronjob like this:

apiVersion: batch/v1
kind: CronJob
  name: test
  namespace: test
spec:
  concurrencyPolicy: Forbid
  failedJobsHistoryLimit: 1
  jobTemplate:
    spec:
      template:
        spec:
          containers:
            - args:
                - >-
                  curl google.com
              command:
                - sh
                - '-c'
              image: alpine/curl:8.6.0
              imagePullPolicy: IfNotPresent
              name: http-request
              resources:
                limits:
                  cpu: 100m
                  memory: 25Mi
                requests:
                  cpu: 100m
                  memory: 25Mi
          restartPolicy: Never
  schedule: 10 * * * *
  successfulJobsHistoryLimit: 1

and then editing the manifest via CLI or ArgoCD UI (especially the suspend, command and args properties) should - according to this bug - lead to ArgoCD still showing synced.

Expected behavior
When manually editing the cronjob, it should change the state to OutOfSync.

Screenshots

Version

{
    "Version": "v3.0.0+e98f483",
    "BuildDate": "2025-05-06T11:25:45Z",
    "GitCommit": "e98f483bfd5781df2592fef1aeed1148f150d9c9",
    "GitTreeState": "clean",
    "GoVersion": "go1.24.1",
    "Compiler": "gc",
    "Platform": "linux/amd64",
    "KustomizeVersion": "v5.6.0 2025-01-14T15:12:17Z",
    "HelmVersion": "v3.17.1+g980d8ac",
    "KubectlVersion": "v0.32.2",
    "JsonnetVersion": "v0.20.0"
}

Logs

Paste any relevant application logs here.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions