From c73e9187bb5ffcf251cbbdcdb4e11c104eeffc69 Mon Sep 17 00:00:00 2001 From: Erik Wilson Date: Thu, 28 Feb 2019 17:02:12 -0700 Subject: [PATCH] Enable systemd ready notification for k3s server Disables k8s generic api server systemd ready notification and send our own ready notification after server available and kubeconfig available. --- README.md | 1 + install.sh | 1 + k3s.service | 1 + pkg/cli/server/server.go | 4 ++++ 4 files changed, 7 insertions(+) diff --git a/README.md b/README.md index 0c007687943..979c1a57b29 100644 --- a/README.md +++ b/README.md @@ -199,6 +199,7 @@ Documentation=https://k3s.io After=network.target [Service] +Type=notify ExecStartPre=-/sbin/modprobe br_netfilter ExecStartPre=-/sbin/modprobe overlay ExecStart=/usr/local/bin/k3s server diff --git a/install.sh b/install.sh index d85ccde106f..ef2c09ee6ef 100755 --- a/install.sh +++ b/install.sh @@ -134,6 +134,7 @@ Documentation=https://k3s.io After=network.target [Service] +Type=notify ExecStartPre=-/sbin/modprobe br_netfilter ExecStartPre=-/sbin/modprobe overlay ExecStart=/usr/local/bin/k3s server diff --git a/k3s.service b/k3s.service index 822ae13bbc8..cc74fc98aa2 100644 --- a/k3s.service +++ b/k3s.service @@ -4,6 +4,7 @@ Documentation=https://k3s.io After=network.target [Service] +Type=notify ExecStartPre=-/sbin/modprobe br_netfilter ExecStartPre=-/sbin/modprobe overlay ExecStart=/usr/local/bin/k3s server diff --git a/pkg/cli/server/server.go b/pkg/cli/server/server.go index 237cf49d807..d4c5a9c37d9 100644 --- a/pkg/cli/server/server.go +++ b/pkg/cli/server/server.go @@ -8,6 +8,7 @@ import ( "path/filepath" "strings" + systemd "github.com/coreos/go-systemd/daemon" "github.com/docker/docker/pkg/reexec" "github.com/natefinch/lumberjack" "github.com/rancher/k3s/pkg/agent" @@ -17,6 +18,7 @@ import ( "github.com/sirupsen/logrus" "github.com/urfave/cli" "k8s.io/apimachinery/pkg/util/net" + genericapiserver "k8s.io/apiserver/pkg/server" _ "github.com/mattn/go-sqlite3" // ensure we have sqlite ) @@ -49,6 +51,7 @@ func runWithLogging(app *cli.Context, cfg *cmds.Server) error { } func Run(app *cli.Context) error { + genericapiserver.NotifySystemD = false return run(app, &cmds.ServerConfig) } @@ -95,6 +98,7 @@ func run(app *cli.Context, cfg *cmds.Server) error { } logrus.Info("k3s is up and running") + go systemd.SdNotify(false, "READY=1") if cfg.DisableAgent { <-ctx.Done()