From f25198b1219c00db4dc70ff52283b5ec04060f76 Mon Sep 17 00:00:00 2001 From: Jamie Anderson Date: Wed, 23 Oct 2019 16:09:19 +0000 Subject: [PATCH] Add a service to call signpost when we determine that the boot was successful --- packages/kubernetes/kubelet.service | 2 ++ packages/workspaces/mark-successful-boot.service | 13 +++++++++++++ packages/workspaces/workspaces.spec | 5 ++++- 3 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 packages/workspaces/mark-successful-boot.service diff --git a/packages/kubernetes/kubelet.service b/packages/kubernetes/kubelet.service index 19c1073dca6..879ae1fa03c 100644 --- a/packages/kubernetes/kubelet.service +++ b/packages/kubernetes/kubelet.service @@ -6,6 +6,7 @@ Wants=configured.target BindsTo=containerd.service [Service] +Type=notify EnvironmentFile=/etc/kubernetes/kubelet/env ExecStartPre=/sbin/iptables -P FORWARD ACCEPT # Pull the pause container image before starting `kubelet` so `containerd/cri` wouldn't have to @@ -38,3 +39,4 @@ MemoryAccounting=true [Install] WantedBy=multi-user.target +RequiredBy=mark-successful-boot.service diff --git a/packages/workspaces/mark-successful-boot.service b/packages/workspaces/mark-successful-boot.service new file mode 100644 index 00000000000..443d7b1da0d --- /dev/null +++ b/packages/workspaces/mark-successful-boot.service @@ -0,0 +1,13 @@ +[Unit] +Description=Call signpost to mark the boot as successful after all required targets are met. +After=multi-user.target +# Each service that must start correctly in order for a boot to be successful should be of type "notify" +# and include "RequiredBy=mark-successful-boot.service" in its [Install] section. + +[Service] +Type=oneshot +RemainAfterExit=true +ExecStart=/bin/signpost mark-successful-boot + +[Install] +WantedBy=multi-user.target diff --git a/packages/workspaces/workspaces.spec b/packages/workspaces/workspaces.spec index d0d9a57ab98..a0a532522e3 100644 --- a/packages/workspaces/workspaces.spec +++ b/packages/workspaces/workspaces.spec @@ -27,6 +27,7 @@ Source106: migrator.service Source107: host-containers@.service Source108: updog.timer Source109: updog.service +Source110: mark-successful-boot.service # 2xx sources: tmpfilesd configs Source200: migration-tmpfiles.conf @@ -197,7 +198,8 @@ install -p -m 0644 %{S:5} %{buildroot}%{_cross_templatedir} install -d %{buildroot}%{_cross_unitdir} install -p -m 0644 \ - %{S:100} %{S:101} %{S:102} %{S:103} %{S:104} %{S:105} %{S:106} %{S:107} %{S:108} %{S:109} \ + %{S:100} %{S:101} %{S:102} %{S:103} %{S:104} %{S:105} \ + %{S:106} %{S:107} %{S:108} %{S:109} %{S:110} \ %{buildroot}%{_cross_unitdir} install -d %{buildroot}%{_cross_tmpfilesdir} @@ -263,6 +265,7 @@ install -p -m 0644 %{S:201} %{buildroot}%{_cross_tmpfilesdir}/host-containers.co %files -n %{_cross_os}signpost %{_cross_bindir}/signpost +%{_cross_unitdir}/mark-successful-boot.service %files -n %{_cross_os}updog %{_cross_bindir}/updog