mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-05 18:24:07 +00:00
Merge pull request #30619 from tmrts/kubelet-api/extact-interfaces
Automatic merge from submit-queue kubelet/api: split RuntimeService interface Splits `RuntimeService` interface into smaller interfaces to make testing easier and delineate the responsibilities. Its a non-breaking change to the previous users of `api.RuntimeService`
This commit is contained in:
commit
b259073841
@ -22,24 +22,15 @@ import (
|
|||||||
runtimeApi "k8s.io/kubernetes/pkg/kubelet/api/v1alpha1/runtime"
|
runtimeApi "k8s.io/kubernetes/pkg/kubelet/api/v1alpha1/runtime"
|
||||||
)
|
)
|
||||||
|
|
||||||
// RuntimeService interface should be implemented by a container runtime.
|
// RuntimeVersioner contains methods for runtime name, version and API version.
|
||||||
// The methods should be thread-safe.
|
type RuntimeVersioner interface {
|
||||||
type RuntimeService interface {
|
|
||||||
// Version returns the runtime name, runtime version and runtime API version
|
// Version returns the runtime name, runtime version and runtime API version
|
||||||
Version(apiVersion string) (*runtimeApi.VersionResponse, error)
|
Version(apiVersion string) (*runtimeApi.VersionResponse, error)
|
||||||
// CreatePodSandbox creates a pod-level sandbox.
|
}
|
||||||
// The definition of PodSandbox is at https://github.com/kubernetes/kubernetes/pull/25899
|
|
||||||
CreatePodSandbox(config *runtimeApi.PodSandboxConfig) (string, error)
|
// ContainerManager contains methods to manipulate containers managed by a
|
||||||
// StopPodSandbox stops the sandbox. If there are any running containers in the
|
// container runtime. The methods are thread-safe.
|
||||||
// sandbox, they should be force terminated.
|
type ContainerManager interface {
|
||||||
StopPodSandbox(podSandboxID string) error
|
|
||||||
// RemovePodSandbox removes the sandbox. If there are running containers in the
|
|
||||||
// sandbox, they should be forcibly removed.
|
|
||||||
RemovePodSandbox(podSandboxID string) error
|
|
||||||
// PodSandboxStatus returns the Status of the PodSandbox.
|
|
||||||
PodSandboxStatus(podSandboxID string) (*runtimeApi.PodSandboxStatus, error)
|
|
||||||
// ListPodSandbox returns a list of Sandbox.
|
|
||||||
ListPodSandbox(filter *runtimeApi.PodSandboxFilter) ([]*runtimeApi.PodSandbox, error)
|
|
||||||
// CreateContainer creates a new container in specified PodSandbox.
|
// CreateContainer creates a new container in specified PodSandbox.
|
||||||
CreateContainer(podSandboxID string, config *runtimeApi.ContainerConfig, sandboxConfig *runtimeApi.PodSandboxConfig) (string, error)
|
CreateContainer(podSandboxID string, config *runtimeApi.ContainerConfig, sandboxConfig *runtimeApi.PodSandboxConfig) (string, error)
|
||||||
// StartContainer starts the container.
|
// StartContainer starts the container.
|
||||||
@ -56,6 +47,32 @@ type RuntimeService interface {
|
|||||||
Exec(containerID string, cmd []string, tty bool, stdin io.Reader, stdout, stderr io.WriteCloser) error
|
Exec(containerID string, cmd []string, tty bool, stdin io.Reader, stdout, stderr io.WriteCloser) error
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// PodSandboxManager contains methods for operating on PodSandboxes. The methods
|
||||||
|
// are thread-safe.
|
||||||
|
type PodSandboxManager interface {
|
||||||
|
// CreatePodSandbox creates a pod-level sandbox.
|
||||||
|
// The definition of PodSandbox is at https://github.com/kubernetes/kubernetes/pull/25899
|
||||||
|
CreatePodSandbox(config *runtimeApi.PodSandboxConfig) (string, error)
|
||||||
|
// StopPodSandbox stops the sandbox. If there are any running containers in the
|
||||||
|
// sandbox, they should be force terminated.
|
||||||
|
StopPodSandbox(podSandboxID string) error
|
||||||
|
// RemovePodSandbox removes the sandbox. If there are running containers in the
|
||||||
|
// sandbox, they should be forcibly removed.
|
||||||
|
RemovePodSandbox(podSandboxID string) error
|
||||||
|
// PodSandboxStatus returns the Status of the PodSandbox.
|
||||||
|
PodSandboxStatus(podSandboxID string) (*runtimeApi.PodSandboxStatus, error)
|
||||||
|
// ListPodSandbox returns a list of Sandbox.
|
||||||
|
ListPodSandbox(filter *runtimeApi.PodSandboxFilter) ([]*runtimeApi.PodSandbox, error)
|
||||||
|
}
|
||||||
|
|
||||||
|
// RuntimeService interface should be implemented by a container runtime.
|
||||||
|
// The methods should be thread-safe.
|
||||||
|
type RuntimeService interface {
|
||||||
|
RuntimeVersioner
|
||||||
|
ContainerManager
|
||||||
|
PodSandboxManager
|
||||||
|
}
|
||||||
|
|
||||||
// ImageManagerService interface should be implemented by a container image
|
// ImageManagerService interface should be implemented by a container image
|
||||||
// manager.
|
// manager.
|
||||||
// The methods should be thread-safe.
|
// The methods should be thread-safe.
|
||||||
|
Loading…
Reference in New Issue
Block a user