18027: Change default boot probe to `systemctl is-system-running`.
authorTom Clegg <tom@curii.com>
Thu, 9 Sep 2021 18:01:59 +0000 (14:01 -0400)
committerTom Clegg <tom@curii.com>
Thu, 9 Sep 2021 18:01:59 +0000 (14:01 -0400)
Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tom@curii.com>

doc/architecture/dispatchcloud.html.textile.liquid
lib/config/config.default.yml
lib/config/generated_config.go
tools/compute-images/scripts/base.sh
tools/salt-install/config_examples/multi_host/aws/pillars/arvados.sls

index e16d987b0015f30ab334bdbcdbba4f6e00cfc47a..ae854fc2e620acb2e8d48ceb1698a5fcde62f0a7 100644 (file)
@@ -68,7 +68,7 @@ The dispatcher and crunch-run programs are both packaged in a single executable
 
 h2. Boot probe command
 
-The purpose of the boot probe command is to ensure the dispatcher does not try to schedule containers on an instance before the instance is ready, even if its SSH daemon comes up early in the boot process. The default boot probe command, @docker ps -q@, verifies that the docker daemon is running. It is also common to use a custom startup script in the VM image that writes a file when it finishes, and a boot probe command that checks for that file, such as @cat /var/run/boot.complete@.
+The purpose of the boot probe command is to ensure the dispatcher does not try to schedule containers on an instance before the instance is ready, even if its SSH daemon comes up early in the boot process. The default boot probe command, @systemctl is-system-running@, is appropriate for images that use @systemd@ to manage the boot process. Another approach is to use a custom startup script in the VM image that writes a file when it finishes, and a boot probe command that checks for that file, such as @cat /var/run/boot.complete@.
 
 h2. Automatic instance shutdown
 
index ff48d48f411e025a9dcefd30dea47219699441fa..2b474ffdb0c0bdd4eed70a9499985a06c1a22c4d 100644 (file)
@@ -1072,7 +1072,7 @@ Clusters:
         # Shell command to execute on each worker to determine whether
         # the worker is booted and ready to run containers. It should
         # exit zero if the worker is ready.
-        BootProbeCommand: "docker ps -q"
+        BootProbeCommand: "systemctl is-system-running"
 
         # Minimum interval between consecutive probes to a single
         # worker.
index 097396a0ae6095c48622210e2d89262ec20f0e39..2d47addff735e40c80a88ec9a56aa1323d827e09 100644 (file)
@@ -1078,7 +1078,7 @@ Clusters:
         # Shell command to execute on each worker to determine whether
         # the worker is booted and ready to run containers. It should
         # exit zero if the worker is ready.
-        BootProbeCommand: "docker ps -q"
+        BootProbeCommand: "systemctl is-system-running"
 
         # Minimum interval between consecutive probes to a single
         # worker.
index b7d0d0f363b3003c06f08569e30887b8cb722ca6..e4a429da6e654616919c7b8ea646e3b4b28d4965 100644 (file)
@@ -115,7 +115,7 @@ $SUDO sed "s/ExecStart=\(.*\)/ExecStart=\1 --default-ulimit nofile=10000:10000 $
 $SUDO systemctl daemon-reload
 
 # docker should not start on boot: we restart it inside /usr/local/bin/ensure-encrypted-partitions.sh,
-# and the BootProbeCommand defaults to "docker ps -q"
+# and the BootProbeCommand might be "docker ps -q"
 $SUDO systemctl disable docker
 
 # Make sure user_allow_other is set in fuse.conf
index a7784fd7beced037199a5216f58ed9782235223c..f9cf537fb8e0ed9f902e02dfdcbd2e11001ea10c 100644 (file)
@@ -106,7 +106,7 @@ arvados:
       CloudVMs:
         ResourceTags:
           Name: __CLUSTER__-compute-node
-        BootProbeCommand: 'sudo docker ps -q'
+        BootProbeCommand: 'systemctl is-system-running'
         ImageID: ami-FIXMEFIXMEFIXMEFI
         Driver: ec2
         DriverParameters: