mirror of https://github.com/k3s-io/k3s
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]pull/6/head
parent
7b471136ba
commit
3841690dbf
|
@ -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),
|
||||
|
|
|
@ -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))
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue