diff --git a/pkg/annotations/annotations.go b/pkg/annotations/annotations.go index be63ba27a..2178df138 100644 --- a/pkg/annotations/annotations.go +++ b/pkg/annotations/annotations.go @@ -32,6 +32,15 @@ const ( // SandboxID is the sandbox ID annotation SandboxID = "io.kubernetes.cri.sandbox-id" + // SandboxLogDir is the pod log directory annotation. + // If the sandbox needs to generate any log, it will put it into this directory. + // Kubelet will be responsible for: + // 1) Monitoring the disk usage of the log, and including it as part of the pod + // ephemeral storage usage. + // 2) Cleaning up the logs when the pod is deleted. + // NOTE: Kubelet is not responsible for rotating the logs. + SandboxLogDir = "io.kubernetes.cri.sandbox-log-directory" + // UntrustedWorkload is the sandbox annotation for untrusted workload. Untrusted // workload can only run on dedicated runtime for untrusted workload. UntrustedWorkload = "io.kubernetes.cri.untrusted-workload" diff --git a/pkg/server/sandbox_run.go b/pkg/server/sandbox_run.go index b5825c8e9..05801bb27 100644 --- a/pkg/server/sandbox_run.go +++ b/pkg/server/sandbox_run.go @@ -454,6 +454,7 @@ func (c *criService) generateSandboxContainerSpec(id string, config *runtime.Pod g.AddAnnotation(annotations.ContainerType, annotations.ContainerTypeSandbox) g.AddAnnotation(annotations.SandboxID, id) + g.AddAnnotation(annotations.SandboxLogDir, config.GetLogDirectory()) return g.Config, nil } diff --git a/pkg/server/sandbox_run_test.go b/pkg/server/sandbox_run_test.go index 2c6a273be..ac9579def 100644 --- a/pkg/server/sandbox_run_test.go +++ b/pkg/server/sandbox_run_test.go @@ -75,6 +75,9 @@ func getRunPodSandboxTestData() (*runtime.PodSandboxConfig, *imagespec.ImageConf assert.Contains(t, spec.Annotations, annotations.ContainerType) assert.EqualValues(t, spec.Annotations[annotations.ContainerType], annotations.ContainerTypeSandbox) + + assert.Contains(t, spec.Annotations, annotations.SandboxLogDir) + assert.EqualValues(t, spec.Annotations[annotations.SandboxLogDir], "test-log-directory") } return config, imageConfig, specCheck }