From cc8ca419151c01d2d008c17ef0e5900e2492edea Mon Sep 17 00:00:00 2001 From: Priya Wadhwa Date: Thu, 12 Nov 2020 14:20:41 -0800 Subject: [PATCH] Start adding scheduled stop for container --- deploy/kicbase/Dockerfile | 6 ++++++ deploy/kicbase/scheduled-stop/minikube-scheduled-stop | 11 +++++++++++ .../scheduled-stop/minikube-scheduled-stop.service | 11 +++++++++++ pkg/minikube/constants/constants.go | 4 ++++ 4 files changed, 32 insertions(+) create mode 100644 deploy/kicbase/scheduled-stop/minikube-scheduled-stop create mode 100644 deploy/kicbase/scheduled-stop/minikube-scheduled-stop.service diff --git a/deploy/kicbase/Dockerfile b/deploy/kicbase/Dockerfile index 66e6fd7bbe..ed5d6f1c32 100644 --- a/deploy/kicbase/Dockerfile +++ b/deploy/kicbase/Dockerfile @@ -130,6 +130,12 @@ COPY automount/minikube-automount.service /usr/lib/systemd/system/minikube-autom RUN ln -fs /usr/lib/systemd/system/minikube-automount.service \ /etc/systemd/system/multi-user.target.wants/minikube-automount.service +# scheduled stop service +COPY scheduled-stop/stop.sh /var/lib/minikube/scheduled-stop/minikube-scheduled-stop +COPY scheduled-stop/minikube-scheduled-stop.service /usr/lib/systemd/system/minikube-scheduled-stop.service +RUN ln -fs /usr/lib/systemd/system/minikube-scheduled-stop.service \ + /etc/systemd/system/multi-user.target.wants/minikube-scheduled-stop.service + # disable non-docker runtimes by default RUN systemctl disable containerd && systemctl disable crio && rm /etc/crictl.yaml # enable docker which is default diff --git a/deploy/kicbase/scheduled-stop/minikube-scheduled-stop b/deploy/kicbase/scheduled-stop/minikube-scheduled-stop new file mode 100644 index 0000000000..a026709003 --- /dev/null +++ b/deploy/kicbase/scheduled-stop/minikube-scheduled-stop @@ -0,0 +1,11 @@ +#!/bin/bash + +set -x + +echo "running scheduled stop ..."; + +echo "sleeping %$SLEEP seconds..." +sleep $SLEEP + +echo "running poweroff..." +sudo systemctl poweroff diff --git a/deploy/kicbase/scheduled-stop/minikube-scheduled-stop.service b/deploy/kicbase/scheduled-stop/minikube-scheduled-stop.service new file mode 100644 index 0000000000..cfc738b9b4 --- /dev/null +++ b/deploy/kicbase/scheduled-stop/minikube-scheduled-stop.service @@ -0,0 +1,11 @@ +[Unit] +Description=minikube scheduled stop + +[Install] +WantedBy=multi-user.target + +[Service] +Type=simple +User=root +ExecStart=/var/lib/minikube/scheduled-stop/minikube-scheduled-stop +EnvironmentFile=/var/lib/minikube/scheduled-stop/environment diff --git a/pkg/minikube/constants/constants.go b/pkg/minikube/constants/constants.go index 4145ebb280..d6224dd4b9 100644 --- a/pkg/minikube/constants/constants.go +++ b/pkg/minikube/constants/constants.go @@ -79,6 +79,10 @@ const ( MinikubeForceSystemdEnv = "MINIKUBE_FORCE_SYSTEMD" // TestDiskUsedEnv is used in integration tests for insufficient storage with 'minikube status' TestDiskUsedEnv = "MINIKUBE_TEST_STORAGE_CAPACITY" + + // scheduled stop constants + ScheduledStopEnvFile = "/var/lib/minikube/scheduled-stop/environment" + ScheduledStopSystemdService = "minikube-scheduled-stop" ) var (