cri

package
v0.0.0-...-1e97fd4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 16, 2021 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func RunCRIService

func RunCRIService(cfg *config.Config) (err error)

Types

type ContainerManager

type ContainerManager struct{}

ContainerManager is the implement of interface IContainerManager.

func NewContainerManager

func NewContainerManager() (*ContainerManager, error)

NewContainerManager create ContainerManager instance

func (*ContainerManager) ContainerStatus

func (cm *ContainerManager) ContainerStatus(containerID string) (*runtimeapi.ContainerStatus, error)

ContainerStatus returns the status of the container.

func (*ContainerManager) CreateContainer

func (cm *ContainerManager) CreateContainer(podSandboxID string, config *runtimeapi.ContainerConfig, sandboxConfig *runtimeapi.PodSandboxConfig) (string, error)

CreateContainer creates a new container in specified PodSandbox.

func (*ContainerManager) Exec

Exec prepares a streaming endpoint to execute a command in the container, and returns the address.

func (*ContainerManager) ListContainers

func (cm *ContainerManager) ListContainers(filter *runtimeapi.ContainerFilter) ([]*runtimeapi.Container, error)

ListContainers lists all containers by filters.

func (*ContainerManager) RemoveContainer

func (cm *ContainerManager) RemoveContainer(containerID string) error

RemoveContainer removes the container.

func (*ContainerManager) StartContainer

func (cm *ContainerManager) StartContainer(containerID string) error

StartContainer starts the container.

func (*ContainerManager) StopContainer

func (cm *ContainerManager) StopContainer(containerID string, timeout int64) error

StopContainer stops a running container with a grace period (i.e., timeout).

type ContainerStatsManager

type ContainerStatsManager interface {
	// ContainerStats returns stats of the container. If the container does not
	// exist, the call returns an error.
	ContainerStats(containerID string) (*runtimeapi.ContainerStats, error)
	// ListContainerStats returns stats of all running containers.
	ListContainerStats(filter *runtimeapi.ContainerStatsFilter) ([]*runtimeapi.ContainerStats, error)
	// PodSandboxStats returns stats of the pod. If the pod does not
	// exist, the call returns an error.
	PodSandboxStats(podSandboxID string) (*runtimeapi.PodSandboxStats, error)
	// ListPodSandboxStats returns stats of all running pods.
	ListPodSandboxStats(filter *runtimeapi.PodSandboxStatsFilter) ([]*runtimeapi.PodSandboxStats, error)
}

ContainerStatsManager contains methods for retrieving the container statistics.

type IContainerManager

type IContainerManager interface {
	// CreateContainer creates a new container in specified PodSandbox.
	CreateContainer(podSandboxID string, config *runtimeapi.ContainerConfig, sandboxConfig *runtimeapi.PodSandboxConfig) (string, error)
	// StartContainer starts the container.
	StartContainer(containerID string) error
	// StopContainer stops a running container with a grace period (i.e., timeout).
	StopContainer(containerID string, timeout int64) error
	// RemoveContainer removes the container.
	RemoveContainer(containerID string) error
	// ListContainers lists all containers by filters.
	ListContainers(filter *runtimeapi.ContainerFilter) ([]*runtimeapi.Container, error)
	// ContainerStatus returns the status of the container.
	ContainerStatus(containerID string) (*runtimeapi.ContainerStatus, error)
	// UpdateContainerResources updates the cgroup resources for the container.
	UpdateContainerResources(containerID string, resources *runtimeapi.LinuxContainerResources) error
	// ExecSync executes a command in the container, and returns the stdout output.
	// If command exits with a non-zero exit code, an error is returned.
	ExecSync(containerID string, cmd []string, timeout time.Duration) (stdout []byte, stderr []byte, err error)
	// Exec prepares a streaming endpoint to execute a command in the container, and returns the address.
	Exec(*runtimeapi.ExecRequest) (*runtimeapi.ExecResponse, error)
	// Attach prepares a streaming endpoint to attach to a running container, and returns the address.
	Attach(req *runtimeapi.AttachRequest) (*runtimeapi.AttachResponse, error)
	// ReopenContainerLog asks runtime to reopen the stdout/stderr log file
	// for the container. If it returns error, new container log file MUST NOT
	// be created.
	ReopenContainerLog(ContainerID string) error
}

IContainerManager contains methods to manipulate containers managed by a container runtime. The methods are thread-safe.

type IImageManager

type IImageManager interface {
	// ListImages lists the existing images.
	ListImages(filter *runtimeapi.ImageFilter) ([]*runtimeapi.Image, error)
	// ImageStatus returns the status of the image.
	ImageStatus(image *runtimeapi.ImageSpec) (*runtimeapi.Image, error)
	// PullImage pulls an image with the authentication config.
	PullImage(image *runtimeapi.ImageSpec, auth *runtimeapi.AuthConfig, podSandboxConfig *runtimeapi.PodSandboxConfig) (string, error)
	// RemoveImage removes the image.
	RemoveImage(image *runtimeapi.ImageSpec) error
	// ImageFsInfo returns information of the filesystem that is used to store images.
	ImageFsInfo() ([]*runtimeapi.FilesystemUsage, error)
}

IImageManager interface should be implemented by a container image manager. The methods should be thread-safe.

type IPodSandboxManager

type IPodSandboxManager interface {
	// RunPodSandbox creates and starts a pod-level sandbox. Runtimes should ensure the sandbox is in ready state.
	RunPodSandbox(config *runtimeapi.PodSandboxConfig, runtimeHandler string) (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)
	// PortForward prepares a streaming endpoint to forward ports from a PodSandbox, and returns the address.
	PortForward(*runtimeapi.PortForwardRequest) (*runtimeapi.PortForwardResponse, error)
}

PodSandboxManager contains methods for operating on PodSandboxes. The methods are thread-safe.

type ImageManager

type ImageManager struct{}

func NewImageManager

func NewImageManager() (*ImageManager, error)

NewImageManager create ImageManager instance

func (*ImageManager) ImageFsInfo

func (im *ImageManager) ImageFsInfo() ([]*runtimeapi.FilesystemUsage, error)

ImageFsInfo returns information of the filesystem that is used to store images.

func (*ImageManager) ImageStatus

func (im *ImageManager) ImageStatus(image *runtimeapi.ImageSpec) (*runtimeapi.Image, error)

ImageStatus returns the status of the image.

func (*ImageManager) ListImages

func (im *ImageManager) ListImages(filter *runtimeapi.ImageFilter) ([]*runtimeapi.Image, error)

ListImages lists the existing images.

func (*ImageManager) PullImage

func (im *ImageManager) PullImage(image *runtimeapi.ImageSpec, auth *runtimeapi.AuthConfig, podSandboxConfig *runtimeapi.PodSandboxConfig) (string, error)

PullImage pulls an image with the authentication config.

func (*ImageManager) RemoveImage

func (im *ImageManager) RemoveImage(image *runtimeapi.ImageSpec) error

RemoveImage removes the image.

type PodSandboxManager

type PodSandboxManager struct {
	ContainerManager ContainerManager
	// SandboxBaseDir is the directory used to store sandbox files like /etc/hosts, /etc/resolv.conf, etc.
	SandboxBaseDir string
	// SandboxImage is the image used by sandbox container.
	SandboxImage string
}

func NewPodSandboxManager

func NewPodSandboxManager() (psm *PodSandboxManager, err error)

NewPodSandboxManager create PodSandboxManager instance

func (*PodSandboxManager) ListPodSandbox

func (psm *PodSandboxManager) ListPodSandbox(filter *runtimeapi.PodSandboxFilter) ([]*runtimeapi.PodSandbox, error)

ListPodSandbox returns a list of Sandbox.

func (*PodSandboxManager) PodSandboxStatus

func (psm *PodSandboxManager) PodSandboxStatus(podSandboxID string) (*runtimeapi.PodSandboxStatus, error)

PodSandboxStatus returns the Status of the PodSandbox.

func (*PodSandboxManager) RemovePodSandbox

func (psm *PodSandboxManager) RemovePodSandbox(podSandboxID string) error

RemovePodSandbox removes the sandbox. If there are running containers in the sandbox, they should be forcibly removed.

func (*PodSandboxManager) RunPodSandbox

func (psm *PodSandboxManager) RunPodSandbox(config *runtimeapi.PodSandboxConfig, runtimeHandler string) (_ string, err error)

RunPodSandbox creates and starts a pod-level sandbox. Runtimes should ensure the sandbox is in ready state.

func (*PodSandboxManager) StopPodSandbox

func (psm *PodSandboxManager) StopPodSandbox(podSandboxID string) (err error)

StopPodSandbox stops the sandbox. If there are any running containers in the sandbox, they should be force terminated.

func (*PodSandboxManager) Version

func (psm *PodSandboxManager) Version(apiVersion string) (*runtimeapi.VersionResponse, error)

Version returns the runtime name, runtime version and runtime API version.

type RuntimeService

type RuntimeService interface {
	RuntimeVersioner
	IContainerManager
	IPodSandboxManager
	ContainerStatsManager

	// UpdateRuntimeConfig updates runtime configuration if specified
	UpdateRuntimeConfig(runtimeConfig *runtimeapi.RuntimeConfig) error
	// Status returns the status of the runtime.
	Status() (*runtimeapi.RuntimeStatus, error)
}

RuntimeService interface should be implemented by a container runtime. The methods should be thread-safe.

type RuntimeVersioner

type RuntimeVersioner interface {
	// Version returns the runtime name, runtime version and runtime API version
	Version(apiVersion string) (*runtimeapi.VersionResponse, error)
}

RuntimeVersioner contains methods for runtime name, version and API version.

type Service

type Service struct {
	// contains filtered or unexported fields
}

Service serves the kubelet runtime grpc api which will be consumed by kubelet.

func NewService

func NewService(cfg *config.Config) (*Service, error)

NewService creates a brand new cri service.

func (*Service) Serve

func (s *Service) Serve() error

Serve starts grpc server.

Directories

Path Synopsis
runtime

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL