System job ignores stagger


according to docs, during system job update the jobs should only be affected by stagger and max_parallel parameters from withing the update stanza.

I think they are not even affected by the stagger parameter.

I took the hello world nomad job and converted it into system job, with stagger 5m.
Then I changed the args in the config, to trigger update.
All allocations were updated at once.

Am I missing something?

Code to reproduce

job "docs" {
  datacenters = ["dc1"]
  type = "system"

  update {
      max_parallel      = 1
      stagger           = "5m"
  group "example" {

    task "server" {
      driver = "docker"

      config {
        image = "hashicorp/http-echo"
        args = [
          "hello world",

Tested on 1.5.5 and 1.4.3.

Seems like editing some information (like CPU) respect the stagger, but some other (mor important from my POW) config args are not respecting the stagger.

I can also confirm that job updates aren’t affected by the “stagger” parameter on Nomad 1.1.18+ent. What is stated in the docs you linked seems to be false. We use the Nomad UI to submit job changes and the job plan diff output doesn’t even see changes to the “stagger” parameter.