Clean up DockerLegacyService interface
Signed-off-by: Ciprian Hacman <ciprian@hakman.dev>
This commit is contained in:
parent
6cdb1c225d
commit
5bae9b9288
@ -78,7 +78,6 @@ import (
|
|||||||
"k8s.io/kubernetes/pkg/kubelet/images"
|
"k8s.io/kubernetes/pkg/kubelet/images"
|
||||||
"k8s.io/kubernetes/pkg/kubelet/kubeletconfig"
|
"k8s.io/kubernetes/pkg/kubelet/kubeletconfig"
|
||||||
"k8s.io/kubernetes/pkg/kubelet/kuberuntime"
|
"k8s.io/kubernetes/pkg/kubelet/kuberuntime"
|
||||||
"k8s.io/kubernetes/pkg/kubelet/legacy"
|
|
||||||
"k8s.io/kubernetes/pkg/kubelet/lifecycle"
|
"k8s.io/kubernetes/pkg/kubelet/lifecycle"
|
||||||
"k8s.io/kubernetes/pkg/kubelet/logs"
|
"k8s.io/kubernetes/pkg/kubelet/logs"
|
||||||
"k8s.io/kubernetes/pkg/kubelet/metrics"
|
"k8s.io/kubernetes/pkg/kubelet/metrics"
|
||||||
@ -243,7 +242,6 @@ type Dependencies struct {
|
|||||||
KubeletConfigController *kubeletconfig.Controller
|
KubeletConfigController *kubeletconfig.Controller
|
||||||
RemoteRuntimeService internalapi.RuntimeService
|
RemoteRuntimeService internalapi.RuntimeService
|
||||||
RemoteImageService internalapi.ImageManagerService
|
RemoteImageService internalapi.ImageManagerService
|
||||||
dockerLegacyService legacy.DockerLegacyService
|
|
||||||
// remove it after cadvisor.UsingLegacyCadvisorStats dropped.
|
// remove it after cadvisor.UsingLegacyCadvisorStats dropped.
|
||||||
useLegacyCadvisorStats bool
|
useLegacyCadvisorStats bool
|
||||||
}
|
}
|
||||||
@ -608,7 +606,6 @@ func NewMainKubelet(kubeCfg *kubeletconfiginternal.KubeletConfiguration,
|
|||||||
|
|
||||||
klet.resourceAnalyzer = serverstats.NewResourceAnalyzer(klet, kubeCfg.VolumeStatsAggPeriod.Duration, kubeDeps.Recorder)
|
klet.resourceAnalyzer = serverstats.NewResourceAnalyzer(klet, kubeCfg.VolumeStatsAggPeriod.Duration, kubeDeps.Recorder)
|
||||||
|
|
||||||
klet.dockerLegacyService = kubeDeps.dockerLegacyService
|
|
||||||
klet.runtimeService = kubeDeps.RemoteRuntimeService
|
klet.runtimeService = kubeDeps.RemoteRuntimeService
|
||||||
|
|
||||||
if kubeDeps.KubeClient != nil {
|
if kubeDeps.KubeClient != nil {
|
||||||
@ -667,7 +664,6 @@ func NewMainKubelet(kubeCfg *kubeletconfiginternal.KubeletConfiguration,
|
|||||||
kubeDeps.RemoteRuntimeService,
|
kubeDeps.RemoteRuntimeService,
|
||||||
kubeDeps.RemoteImageService,
|
kubeDeps.RemoteImageService,
|
||||||
kubeDeps.ContainerManager.InternalContainerLifecycle(),
|
kubeDeps.ContainerManager.InternalContainerLifecycle(),
|
||||||
kubeDeps.dockerLegacyService,
|
|
||||||
klet.containerLogManager,
|
klet.containerLogManager,
|
||||||
klet.runtimeClassManager,
|
klet.runtimeClassManager,
|
||||||
seccompDefault,
|
seccompDefault,
|
||||||
@ -1188,10 +1184,6 @@ type Kubelet struct {
|
|||||||
// experimental behavior is desired.
|
// experimental behavior is desired.
|
||||||
experimentalHostUserNamespaceDefaulting bool
|
experimentalHostUserNamespaceDefaulting bool
|
||||||
|
|
||||||
// dockerLegacyService contains some legacy methods for backward compatibility.
|
|
||||||
// It should be set only when docker is using non json-file logging driver.
|
|
||||||
dockerLegacyService legacy.DockerLegacyService
|
|
||||||
|
|
||||||
// StatsProvider provides the node and the container stats.
|
// StatsProvider provides the node and the container stats.
|
||||||
StatsProvider *stats.Provider
|
StatsProvider *stats.Provider
|
||||||
|
|
||||||
|
@ -1321,12 +1321,6 @@ func (kl *Kubelet) GetKubeletContainerLogs(ctx context.Context, podFullName, con
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if kl.dockerLegacyService != nil {
|
|
||||||
// dockerLegacyService should only be non-nil when we actually need it, so
|
|
||||||
// inject it into the runtimeService.
|
|
||||||
// TODO(random-liu): Remove this hack after deprecating unsupported log driver.
|
|
||||||
return kl.dockerLegacyService.GetContainerLogs(ctx, pod, containerID, logOptions, stdout, stderr)
|
|
||||||
}
|
|
||||||
return kl.containerRuntime.GetContainerLogs(ctx, pod, containerID, logOptions, stdout, stderr)
|
return kl.containerRuntime.GetContainerLogs(ctx, pod, containerID, logOptions, stdout, stderr)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -520,15 +520,7 @@ func (m *kubeGenericRuntimeManager) getPodContainerStatuses(uid kubetypes.UID, n
|
|||||||
cStatus.ExitCode != 0 && cStatus.Reason != "ContainerCannotRun"
|
cStatus.ExitCode != 0 && cStatus.Reason != "ContainerCannotRun"
|
||||||
tMessage, checkLogs := getTerminationMessage(status, annotatedInfo.TerminationMessagePath, fallbackToLogs)
|
tMessage, checkLogs := getTerminationMessage(status, annotatedInfo.TerminationMessagePath, fallbackToLogs)
|
||||||
if checkLogs {
|
if checkLogs {
|
||||||
// if dockerLegacyService is populated, we're supposed to use it to fetch logs
|
tMessage = m.readLastStringFromContainerLogs(status.GetLogPath())
|
||||||
if m.legacyLogProvider != nil {
|
|
||||||
tMessage, err = m.legacyLogProvider.GetContainerLogTail(uid, name, namespace, kubecontainer.ContainerID{Type: m.runtimeName, ID: c.Id})
|
|
||||||
if err != nil {
|
|
||||||
tMessage = fmt.Sprintf("Error reading termination message from logs: %v", err)
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
tMessage = m.readLastStringFromContainerLogs(status.GetLogPath())
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
// Enrich the termination message written by the application is not empty
|
// Enrich the termination message written by the application is not empty
|
||||||
if len(tMessage) != 0 {
|
if len(tMessage) != 0 {
|
||||||
|
@ -133,9 +133,6 @@ type kubeGenericRuntimeManager struct {
|
|||||||
// Internal lifecycle event handlers for container resource management.
|
// Internal lifecycle event handlers for container resource management.
|
||||||
internalLifecycle cm.InternalContainerLifecycle
|
internalLifecycle cm.InternalContainerLifecycle
|
||||||
|
|
||||||
// A shim to legacy functions for backward compatibility.
|
|
||||||
legacyLogProvider LegacyLogProvider
|
|
||||||
|
|
||||||
// Manage container logs.
|
// Manage container logs.
|
||||||
logManager logs.ContainerLogManager
|
logManager logs.ContainerLogManager
|
||||||
|
|
||||||
@ -168,12 +165,6 @@ type KubeGenericRuntime interface {
|
|||||||
kubecontainer.CommandRunner
|
kubecontainer.CommandRunner
|
||||||
}
|
}
|
||||||
|
|
||||||
// LegacyLogProvider gives the ability to use unsupported docker log drivers (e.g. journald)
|
|
||||||
type LegacyLogProvider interface {
|
|
||||||
// GetContainerLogTail gets the last few lines of the logs for a specific container.
|
|
||||||
GetContainerLogTail(uid kubetypes.UID, name, namespace string, containerID kubecontainer.ContainerID) (string, error)
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewKubeGenericRuntimeManager creates a new kubeGenericRuntimeManager
|
// NewKubeGenericRuntimeManager creates a new kubeGenericRuntimeManager
|
||||||
func NewKubeGenericRuntimeManager(
|
func NewKubeGenericRuntimeManager(
|
||||||
recorder record.EventRecorder,
|
recorder record.EventRecorder,
|
||||||
@ -197,7 +188,6 @@ func NewKubeGenericRuntimeManager(
|
|||||||
runtimeService internalapi.RuntimeService,
|
runtimeService internalapi.RuntimeService,
|
||||||
imageService internalapi.ImageManagerService,
|
imageService internalapi.ImageManagerService,
|
||||||
internalLifecycle cm.InternalContainerLifecycle,
|
internalLifecycle cm.InternalContainerLifecycle,
|
||||||
legacyLogProvider LegacyLogProvider,
|
|
||||||
logManager logs.ContainerLogManager,
|
logManager logs.ContainerLogManager,
|
||||||
runtimeClassManager *runtimeclass.Manager,
|
runtimeClassManager *runtimeclass.Manager,
|
||||||
seccompDefault bool,
|
seccompDefault bool,
|
||||||
@ -219,7 +209,6 @@ func NewKubeGenericRuntimeManager(
|
|||||||
runtimeService: newInstrumentedRuntimeService(runtimeService),
|
runtimeService: newInstrumentedRuntimeService(runtimeService),
|
||||||
imageService: newInstrumentedImageManagerService(imageService),
|
imageService: newInstrumentedImageManagerService(imageService),
|
||||||
internalLifecycle: internalLifecycle,
|
internalLifecycle: internalLifecycle,
|
||||||
legacyLogProvider: legacyLogProvider,
|
|
||||||
logManager: logManager,
|
logManager: logManager,
|
||||||
runtimeClassManager: runtimeClassManager,
|
runtimeClassManager: runtimeClassManager,
|
||||||
logReduction: logreduction.NewLogReduction(identicalErrorDelay),
|
logReduction: logreduction.NewLogReduction(identicalErrorDelay),
|
||||||
|
@ -1,42 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2020 The Kubernetes Authors.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package legacy
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
"io"
|
|
||||||
|
|
||||||
"k8s.io/api/core/v1"
|
|
||||||
kubecontainer "k8s.io/kubernetes/pkg/kubelet/container"
|
|
||||||
"k8s.io/kubernetes/pkg/kubelet/kuberuntime"
|
|
||||||
)
|
|
||||||
|
|
||||||
// DockerLegacyService interface is used throughout `pkg/kubelet`.
|
|
||||||
// It used to live in the `pkg/kubelet/dockershim` package. While we
|
|
||||||
// would eventually like to remove it entirely, we need to give users some form
|
|
||||||
// of warning.
|
|
||||||
type DockerLegacyService interface {
|
|
||||||
// GetContainerLogs gets logs for a specific container.
|
|
||||||
GetContainerLogs(context.Context, *v1.Pod, kubecontainer.ContainerID, *v1.PodLogOptions, io.Writer, io.Writer) error
|
|
||||||
|
|
||||||
// IsCRISupportedLogDriver checks whether the logging driver used by docker is
|
|
||||||
// supported by native CRI integration.
|
|
||||||
// TODO(resouer): remove this when deprecating unsupported log driver
|
|
||||||
IsCRISupportedLogDriver() (bool, error)
|
|
||||||
|
|
||||||
kuberuntime.LegacyLogProvider
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user