9528ea930c
This fix tries to address the issue raised in #23528 where docker labels caused journald log error because journald has special requirements on field names. This fix addresses this issue by sanitize the labels per requirements of journald. Additional unit tests have been added to cover the changes. This fix fixes #23528. Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
23 lines
647 B
Go
23 lines
647 B
Go
// +build linux
|
|
|
|
package journald
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
func TestSanitizeKeyMod(t *testing.T) {
|
|
entries := map[string]string{
|
|
"io.kubernetes.pod.name": "IO_KUBERNETES_POD_NAME",
|
|
"io?.kubernetes.pod.name": "IO__KUBERNETES_POD_NAME",
|
|
"?io.kubernetes.pod.name": "IO_KUBERNETES_POD_NAME",
|
|
"io123.kubernetes.pod.name": "IO123_KUBERNETES_POD_NAME",
|
|
"_io123.kubernetes.pod.name": "IO123_KUBERNETES_POD_NAME",
|
|
"__io123_kubernetes.pod.name": "IO123_KUBERNETES_POD_NAME",
|
|
}
|
|
for k, v := range entries {
|
|
if sanitizeKeyMod(k) != v {
|
|
t.Fatalf("Failed to sanitize %s, got %s, expected %s", k, sanitizeKeyMod(k), v)
|
|
}
|
|
}
|
|
}
|