From 3841690dbf100f89875a6cac0fed7eb79eea62fa Mon Sep 17 00:00:00 2001 From: Julien Balestra Date: Tue, 17 Jan 2017 10:29:50 +0100 Subject: [PATCH] Kubelet-rkt: Add useful informations for Ops on the Kubelet Host Create a Systemd SyslogIdentifier inside the [Service] Create a Systemd Description inside the [Unit] --- pkg/kubelet/rkt/rkt.go | 15 +++++++++++++++ pkg/kubelet/rkt/rkt_test.go | 28 ++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/pkg/kubelet/rkt/rkt.go b/pkg/kubelet/rkt/rkt.go index 8742055da0b..726d5364075 100644 --- a/pkg/kubelet/rkt/rkt.go +++ b/pkg/kubelet/rkt/rkt.go @@ -1108,6 +1108,18 @@ func (r *Runtime) getSelinuxContext(opt *v1.SELinuxOptions) (string, error) { return strings.Join(ctx, ":"), nil } +// From the generateName or the podName return a basename for improve the logging with the Journal +// journalctl -t podBaseName +func constructSyslogIdentifier(generateName string, podName string) string { + if (len(generateName) > 1 && generateName[len(generateName) - 1] == '-') { + return generateName[0:len(generateName) - 1] + } else if (len(generateName) > 0) { + return generateName + } else { + return podName + } +} + // preparePod will: // // 1. Invoke 'rkt prepare' to prepare the pod, and get the rkt pod uuid. @@ -1174,6 +1186,9 @@ func (r *Runtime) preparePod(pod *v1.Pod, podIP string, pullSecrets []v1.Secret, // This enables graceful stop. newUnitOption("Service", "KillMode", "mixed"), newUnitOption("Service", "TimeoutStopSec", fmt.Sprintf("%ds", getPodTerminationGracePeriodInSecond(pod))), + // Ops helpers + newUnitOption("Unit", "Description", pod.Name), + newUnitOption("Service", "SyslogIdentifier", constructSyslogIdentifier(pod.GenerateName, pod.Name)), // Track pod info for garbage collection newUnitOption(unitKubernetesSection, unitPodUID, string(pod.UID)), newUnitOption(unitKubernetesSection, unitPodName, pod.Name), diff --git a/pkg/kubelet/rkt/rkt_test.go b/pkg/kubelet/rkt/rkt_test.go index e3e8231286d..0d6dfa722c8 100644 --- a/pkg/kubelet/rkt/rkt_test.go +++ b/pkg/kubelet/rkt/rkt_test.go @@ -1952,3 +1952,31 @@ func TestPreparePodArgs(t *testing.T) { assert.Equal(t, testCase.cmd, cmd, fmt.Sprintf("Test case #%d", i)) } } + +func TestConstructSyslogIdentifier(t *testing.T) { + testCases := []struct { + podName string + podGenerateName string + identifier string + }{ + { + "prometheus-node-exporter-rv90m", + "prometheus-node-exporter-", + "prometheus-node-exporter", + }, + { + "simplepod", + "", + "simplepod", + }, + { + "p", + "", + "p", + }, + } + for i, testCase := range testCases { + identifier := constructSyslogIdentifier(testCase.podGenerateName, testCase.podName) + assert.Equal(t, testCase.identifier, identifier, fmt.Sprintf("Test case #%d", i)) + } +} \ No newline at end of file