kubernetes: k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1beta1 Index | Files

package v1beta1

import "k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1beta1"

Package v1beta1 is a generated protocol buffer package.

It is generated from these files:

api.proto

It has these top-level messages:

DevicePluginOptions
RegisterRequest
Empty
ListAndWatchResponse
Device
PreStartContainerRequest
PreStartContainerResponse
AllocateRequest
ContainerAllocateRequest
AllocateResponse
ContainerAllocateResponse
Mount
DeviceSpec

Index

Package Files

api.pb.go constants.go

Constants

const (
    // Healthy means that the device is healthy
    Healthy = "Healthy"
    // UnHealthy means that the device is unhealthy
    Unhealthy = "Unhealthy"

    // Current version of the API supported by kubelet
    Version = "v1beta1"
    // DevicePluginPath is the folder the Device Plugin is expecting sockets to be on
    // Only privileged pods have access to this path
    // Note: Placeholder until we find a "standard path"
    DevicePluginPath = "/var/lib/kubelet/device-plugins/"
    // KubeletSocket is the path of the Kubelet registry socket
    KubeletSocket = DevicePluginPath + "kubelet.sock"
    // Timeout duration in secs for PreStartContainer RPC
    KubeletPreStartContainerRPCTimeoutInSecs = 30
)

Variables

var (
    ErrInvalidLengthApi = fmt.Errorf("proto: negative length found during unmarshaling")
    ErrIntOverflowApi   = fmt.Errorf("proto: integer overflow")
)
var SupportedVersions = [...]string{"v1beta1"}

func RegisterDevicePluginServer Uses

func RegisterDevicePluginServer(s *grpc.Server, srv DevicePluginServer)

func RegisterRegistrationServer Uses

func RegisterRegistrationServer(s *grpc.Server, srv RegistrationServer)

type AllocateRequest Uses

type AllocateRequest struct {
    ContainerRequests []*ContainerAllocateRequest `protobuf:"bytes,1,rep,name=container_requests,json=containerRequests" json:"container_requests,omitempty"`
}

- Allocate is expected to be called during pod creation since allocation

failures for any container would result in pod startup failure.

- Allocate allows kubelet to exposes additional artifacts in a pod's

environment as directed by the plugin.

- Allocate allows Device Plugin to run device specific operations on

the Devices requested

func (*AllocateRequest) Descriptor Uses

func (*AllocateRequest) Descriptor() ([]byte, []int)

func (*AllocateRequest) GetContainerRequests Uses

func (m *AllocateRequest) GetContainerRequests() []*ContainerAllocateRequest

func (*AllocateRequest) Marshal Uses

func (m *AllocateRequest) Marshal() (dAtA []byte, err error)

func (*AllocateRequest) MarshalTo Uses

func (m *AllocateRequest) MarshalTo(dAtA []byte) (int, error)

func (*AllocateRequest) ProtoMessage Uses

func (*AllocateRequest) ProtoMessage()

func (*AllocateRequest) Reset Uses

func (m *AllocateRequest) Reset()

func (*AllocateRequest) Size Uses

func (m *AllocateRequest) Size() (n int)

func (*AllocateRequest) String Uses

func (this *AllocateRequest) String() string

func (*AllocateRequest) Unmarshal Uses

func (m *AllocateRequest) Unmarshal(dAtA []byte) error

type AllocateResponse Uses

type AllocateResponse struct {
    ContainerResponses []*ContainerAllocateResponse `protobuf:"bytes,1,rep,name=container_responses,json=containerResponses" json:"container_responses,omitempty"`
}

AllocateResponse includes the artifacts that needs to be injected into a container for accessing 'deviceIDs' that were mentioned as part of 'AllocateRequest'. Failure Handling: if Kubelet sends an allocation request for dev1 and dev2. Allocation on dev1 succeeds but allocation on dev2 fails. The Device plugin should send a ListAndWatch update and fail the Allocation request

func (*AllocateResponse) Descriptor Uses

func (*AllocateResponse) Descriptor() ([]byte, []int)

func (*AllocateResponse) GetContainerResponses Uses

func (m *AllocateResponse) GetContainerResponses() []*ContainerAllocateResponse

func (*AllocateResponse) Marshal Uses

func (m *AllocateResponse) Marshal() (dAtA []byte, err error)

func (*AllocateResponse) MarshalTo Uses

func (m *AllocateResponse) MarshalTo(dAtA []byte) (int, error)

func (*AllocateResponse) ProtoMessage Uses

func (*AllocateResponse) ProtoMessage()

func (*AllocateResponse) Reset Uses

func (m *AllocateResponse) Reset()

func (*AllocateResponse) Size Uses

func (m *AllocateResponse) Size() (n int)

func (*AllocateResponse) String Uses

func (this *AllocateResponse) String() string

func (*AllocateResponse) Unmarshal Uses

func (m *AllocateResponse) Unmarshal(dAtA []byte) error

type ContainerAllocateRequest Uses

type ContainerAllocateRequest struct {
    DevicesIDs []string `protobuf:"bytes,1,rep,name=devicesIDs" json:"devicesIDs,omitempty"`
}

func (*ContainerAllocateRequest) Descriptor Uses

func (*ContainerAllocateRequest) Descriptor() ([]byte, []int)

func (*ContainerAllocateRequest) GetDevicesIDs Uses

func (m *ContainerAllocateRequest) GetDevicesIDs() []string

func (*ContainerAllocateRequest) Marshal Uses

func (m *ContainerAllocateRequest) Marshal() (dAtA []byte, err error)

func (*ContainerAllocateRequest) MarshalTo Uses

func (m *ContainerAllocateRequest) MarshalTo(dAtA []byte) (int, error)

func (*ContainerAllocateRequest) ProtoMessage Uses

func (*ContainerAllocateRequest) ProtoMessage()

func (*ContainerAllocateRequest) Reset Uses

func (m *ContainerAllocateRequest) Reset()

func (*ContainerAllocateRequest) Size Uses

func (m *ContainerAllocateRequest) Size() (n int)

func (*ContainerAllocateRequest) String Uses

func (this *ContainerAllocateRequest) String() string

func (*ContainerAllocateRequest) Unmarshal Uses

func (m *ContainerAllocateRequest) Unmarshal(dAtA []byte) error

type ContainerAllocateResponse Uses

type ContainerAllocateResponse struct {
    // List of environment variable to be set in the container to access one of more devices.
    Envs map[string]string `protobuf:"bytes,1,rep,name=envs" json:"envs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
    // Mounts for the container.
    Mounts []*Mount `protobuf:"bytes,2,rep,name=mounts" json:"mounts,omitempty"`
    // Devices for the container.
    Devices []*DeviceSpec `protobuf:"bytes,3,rep,name=devices" json:"devices,omitempty"`
    // Container annotations to pass to the container runtime
    Annotations map[string]string `protobuf:"bytes,4,rep,name=annotations" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

func (*ContainerAllocateResponse) Descriptor Uses

func (*ContainerAllocateResponse) Descriptor() ([]byte, []int)

func (*ContainerAllocateResponse) GetAnnotations Uses

func (m *ContainerAllocateResponse) GetAnnotations() map[string]string

func (*ContainerAllocateResponse) GetDevices Uses

func (m *ContainerAllocateResponse) GetDevices() []*DeviceSpec

func (*ContainerAllocateResponse) GetEnvs Uses

func (m *ContainerAllocateResponse) GetEnvs() map[string]string

func (*ContainerAllocateResponse) GetMounts Uses

func (m *ContainerAllocateResponse) GetMounts() []*Mount

func (*ContainerAllocateResponse) Marshal Uses

func (m *ContainerAllocateResponse) Marshal() (dAtA []byte, err error)

func (*ContainerAllocateResponse) MarshalTo Uses

func (m *ContainerAllocateResponse) MarshalTo(dAtA []byte) (int, error)

func (*ContainerAllocateResponse) ProtoMessage Uses

func (*ContainerAllocateResponse) ProtoMessage()

func (*ContainerAllocateResponse) Reset Uses

func (m *ContainerAllocateResponse) Reset()

func (*ContainerAllocateResponse) Size Uses

func (m *ContainerAllocateResponse) Size() (n int)

func (*ContainerAllocateResponse) String Uses

func (this *ContainerAllocateResponse) String() string

func (*ContainerAllocateResponse) Unmarshal Uses

func (m *ContainerAllocateResponse) Unmarshal(dAtA []byte) error

type Device Uses

type Device struct {
    // A unique ID assigned by the device plugin used
    // to identify devices during the communication
    // Max length of this field is 63 characters
    ID  string `protobuf:"bytes,1,opt,name=ID,json=iD,proto3" json:"ID,omitempty"`
    // Health of the device, can be healthy or unhealthy, see constants.go
    Health string `protobuf:"bytes,2,opt,name=health,proto3" json:"health,omitempty"`
}

E.g: struct Device {

ID: "GPU-fef8089b-4820-abfc-e83e-94318197576e",
State: "Healthy",

}

func (*Device) Descriptor Uses

func (*Device) Descriptor() ([]byte, []int)

func (*Device) GetHealth Uses

func (m *Device) GetHealth() string

func (*Device) GetID Uses

func (m *Device) GetID() string

func (*Device) Marshal Uses

func (m *Device) Marshal() (dAtA []byte, err error)

func (*Device) MarshalTo Uses

func (m *Device) MarshalTo(dAtA []byte) (int, error)

func (*Device) ProtoMessage Uses

func (*Device) ProtoMessage()

func (*Device) Reset Uses

func (m *Device) Reset()

func (*Device) Size Uses

func (m *Device) Size() (n int)

func (*Device) String Uses

func (this *Device) String() string

func (*Device) Unmarshal Uses

func (m *Device) Unmarshal(dAtA []byte) error

type DevicePluginClient Uses

type DevicePluginClient interface {
    // GetDevicePluginOptions returns options to be communicated with Device
    // Manager
    GetDevicePluginOptions(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*DevicePluginOptions, error)
    // ListAndWatch returns a stream of List of Devices
    // Whenever a Device state change or a Device disappears, ListAndWatch
    // returns the new list
    ListAndWatch(ctx context.Context, in *Empty, opts ...grpc.CallOption) (DevicePlugin_ListAndWatchClient, error)
    // Allocate is called during container creation so that the Device
    // Plugin can run device specific operations and instruct Kubelet
    // of the steps to make the Device available in the container
    Allocate(ctx context.Context, in *AllocateRequest, opts ...grpc.CallOption) (*AllocateResponse, error)
    // PreStartContainer is called, if indicated by Device Plugin during registeration phase,
    // before each container start. Device plugin can run device specific operations
    // such as reseting the device before making devices available to the container
    PreStartContainer(ctx context.Context, in *PreStartContainerRequest, opts ...grpc.CallOption) (*PreStartContainerResponse, error)
}

func NewDevicePluginClient Uses

func NewDevicePluginClient(cc *grpc.ClientConn) DevicePluginClient

type DevicePluginOptions Uses

type DevicePluginOptions struct {
    // Indicates if PreStartContainer call is required before each container start
    PreStartRequired bool `protobuf:"varint,1,opt,name=pre_start_required,json=preStartRequired,proto3" json:"pre_start_required,omitempty"`
}

func (*DevicePluginOptions) Descriptor Uses

func (*DevicePluginOptions) Descriptor() ([]byte, []int)

func (*DevicePluginOptions) GetPreStartRequired Uses

func (m *DevicePluginOptions) GetPreStartRequired() bool

func (*DevicePluginOptions) Marshal Uses

func (m *DevicePluginOptions) Marshal() (dAtA []byte, err error)

func (*DevicePluginOptions) MarshalTo Uses

func (m *DevicePluginOptions) MarshalTo(dAtA []byte) (int, error)

func (*DevicePluginOptions) ProtoMessage Uses

func (*DevicePluginOptions) ProtoMessage()

func (*DevicePluginOptions) Reset Uses

func (m *DevicePluginOptions) Reset()

func (*DevicePluginOptions) Size Uses

func (m *DevicePluginOptions) Size() (n int)

func (*DevicePluginOptions) String Uses

func (this *DevicePluginOptions) String() string

func (*DevicePluginOptions) Unmarshal Uses

func (m *DevicePluginOptions) Unmarshal(dAtA []byte) error

type DevicePluginServer Uses

type DevicePluginServer interface {
    // GetDevicePluginOptions returns options to be communicated with Device
    // Manager
    GetDevicePluginOptions(context.Context, *Empty) (*DevicePluginOptions, error)
    // ListAndWatch returns a stream of List of Devices
    // Whenever a Device state change or a Device disappears, ListAndWatch
    // returns the new list
    ListAndWatch(*Empty, DevicePlugin_ListAndWatchServer) error
    // Allocate is called during container creation so that the Device
    // Plugin can run device specific operations and instruct Kubelet
    // of the steps to make the Device available in the container
    Allocate(context.Context, *AllocateRequest) (*AllocateResponse, error)
    // PreStartContainer is called, if indicated by Device Plugin during registeration phase,
    // before each container start. Device plugin can run device specific operations
    // such as reseting the device before making devices available to the container
    PreStartContainer(context.Context, *PreStartContainerRequest) (*PreStartContainerResponse, error)
}

type DevicePlugin_ListAndWatchClient Uses

type DevicePlugin_ListAndWatchClient interface {
    Recv() (*ListAndWatchResponse, error)
    grpc.ClientStream
}

type DevicePlugin_ListAndWatchServer Uses

type DevicePlugin_ListAndWatchServer interface {
    Send(*ListAndWatchResponse) error
    grpc.ServerStream
}

type DeviceSpec Uses

type DeviceSpec struct {
    // Path of the device within the container.
    ContainerPath string `protobuf:"bytes,1,opt,name=container_path,json=containerPath,proto3" json:"container_path,omitempty"`
    // Path of the device on the host.
    HostPath string `protobuf:"bytes,2,opt,name=host_path,json=hostPath,proto3" json:"host_path,omitempty"`
    // Cgroups permissions of the device, candidates are one or more of
    // * r - allows container to read from the specified device.
    // * w - allows container to write to the specified device.
    // * m - allows container to create device files that do not yet exist.
    Permissions string `protobuf:"bytes,3,opt,name=permissions,proto3" json:"permissions,omitempty"`
}

DeviceSpec specifies a host device to mount into a container.

func (*DeviceSpec) Descriptor Uses

func (*DeviceSpec) Descriptor() ([]byte, []int)

func (*DeviceSpec) GetContainerPath Uses

func (m *DeviceSpec) GetContainerPath() string

func (*DeviceSpec) GetHostPath Uses

func (m *DeviceSpec) GetHostPath() string

func (*DeviceSpec) GetPermissions Uses

func (m *DeviceSpec) GetPermissions() string

func (*DeviceSpec) Marshal Uses

func (m *DeviceSpec) Marshal() (dAtA []byte, err error)

func (*DeviceSpec) MarshalTo Uses

func (m *DeviceSpec) MarshalTo(dAtA []byte) (int, error)

func (*DeviceSpec) ProtoMessage Uses

func (*DeviceSpec) ProtoMessage()

func (*DeviceSpec) Reset Uses

func (m *DeviceSpec) Reset()

func (*DeviceSpec) Size Uses

func (m *DeviceSpec) Size() (n int)

func (*DeviceSpec) String Uses

func (this *DeviceSpec) String() string

func (*DeviceSpec) Unmarshal Uses

func (m *DeviceSpec) Unmarshal(dAtA []byte) error

type Empty Uses

type Empty struct {
}

func (*Empty) Descriptor Uses

func (*Empty) Descriptor() ([]byte, []int)

func (*Empty) Marshal Uses

func (m *Empty) Marshal() (dAtA []byte, err error)

func (*Empty) MarshalTo Uses

func (m *Empty) MarshalTo(dAtA []byte) (int, error)

func (*Empty) ProtoMessage Uses

func (*Empty) ProtoMessage()

func (*Empty) Reset Uses

func (m *Empty) Reset()

func (*Empty) Size Uses

func (m *Empty) Size() (n int)

func (*Empty) String Uses

func (this *Empty) String() string

func (*Empty) Unmarshal Uses

func (m *Empty) Unmarshal(dAtA []byte) error

type ListAndWatchResponse Uses

type ListAndWatchResponse struct {
    Devices []*Device `protobuf:"bytes,1,rep,name=devices" json:"devices,omitempty"`
}

ListAndWatch returns a stream of List of Devices Whenever a Device state change or a Device disappears, ListAndWatch returns the new list

func (*ListAndWatchResponse) Descriptor Uses

func (*ListAndWatchResponse) Descriptor() ([]byte, []int)

func (*ListAndWatchResponse) GetDevices Uses

func (m *ListAndWatchResponse) GetDevices() []*Device

func (*ListAndWatchResponse) Marshal Uses

func (m *ListAndWatchResponse) Marshal() (dAtA []byte, err error)

func (*ListAndWatchResponse) MarshalTo Uses

func (m *ListAndWatchResponse) MarshalTo(dAtA []byte) (int, error)

func (*ListAndWatchResponse) ProtoMessage Uses

func (*ListAndWatchResponse) ProtoMessage()

func (*ListAndWatchResponse) Reset Uses

func (m *ListAndWatchResponse) Reset()

func (*ListAndWatchResponse) Size Uses

func (m *ListAndWatchResponse) Size() (n int)

func (*ListAndWatchResponse) String Uses

func (this *ListAndWatchResponse) String() string

func (*ListAndWatchResponse) Unmarshal Uses

func (m *ListAndWatchResponse) Unmarshal(dAtA []byte) error

type Mount Uses

type Mount struct {
    // Path of the mount within the container.
    ContainerPath string `protobuf:"bytes,1,opt,name=container_path,json=containerPath,proto3" json:"container_path,omitempty"`
    // Path of the mount on the host.
    HostPath string `protobuf:"bytes,2,opt,name=host_path,json=hostPath,proto3" json:"host_path,omitempty"`
    // If set, the mount is read-only.
    ReadOnly bool `protobuf:"varint,3,opt,name=read_only,json=readOnly,proto3" json:"read_only,omitempty"`
}

Mount specifies a host volume to mount into a container. where device library or tools are installed on host and container

func (*Mount) Descriptor Uses

func (*Mount) Descriptor() ([]byte, []int)

func (*Mount) GetContainerPath Uses

func (m *Mount) GetContainerPath() string

func (*Mount) GetHostPath Uses

func (m *Mount) GetHostPath() string

func (*Mount) GetReadOnly Uses

func (m *Mount) GetReadOnly() bool

func (*Mount) Marshal Uses

func (m *Mount) Marshal() (dAtA []byte, err error)

func (*Mount) MarshalTo Uses

func (m *Mount) MarshalTo(dAtA []byte) (int, error)

func (*Mount) ProtoMessage Uses

func (*Mount) ProtoMessage()

func (*Mount) Reset Uses

func (m *Mount) Reset()

func (*Mount) Size Uses

func (m *Mount) Size() (n int)

func (*Mount) String Uses

func (this *Mount) String() string

func (*Mount) Unmarshal Uses

func (m *Mount) Unmarshal(dAtA []byte) error

type PreStartContainerRequest Uses

type PreStartContainerRequest struct {
    DevicesIDs []string `protobuf:"bytes,1,rep,name=devicesIDs" json:"devicesIDs,omitempty"`
}

- PreStartContainer is expected to be called before each container start if indicated by plugin during registration phase. - PreStartContainer allows kubelet to pass reinitialized devices to containers. - PreStartContainer allows Device Plugin to run device specific operations on

the Devices requested

func (*PreStartContainerRequest) Descriptor Uses

func (*PreStartContainerRequest) Descriptor() ([]byte, []int)

func (*PreStartContainerRequest) GetDevicesIDs Uses

func (m *PreStartContainerRequest) GetDevicesIDs() []string

func (*PreStartContainerRequest) Marshal Uses

func (m *PreStartContainerRequest) Marshal() (dAtA []byte, err error)

func (*PreStartContainerRequest) MarshalTo Uses

func (m *PreStartContainerRequest) MarshalTo(dAtA []byte) (int, error)

func (*PreStartContainerRequest) ProtoMessage Uses

func (*PreStartContainerRequest) ProtoMessage()

func (*PreStartContainerRequest) Reset Uses

func (m *PreStartContainerRequest) Reset()

func (*PreStartContainerRequest) Size Uses

func (m *PreStartContainerRequest) Size() (n int)

func (*PreStartContainerRequest) String Uses

func (this *PreStartContainerRequest) String() string

func (*PreStartContainerRequest) Unmarshal Uses

func (m *PreStartContainerRequest) Unmarshal(dAtA []byte) error

type PreStartContainerResponse Uses

type PreStartContainerResponse struct {
}

PreStartContainerResponse will be send by plugin in response to PreStartContainerRequest

func (*PreStartContainerResponse) Descriptor Uses

func (*PreStartContainerResponse) Descriptor() ([]byte, []int)

func (*PreStartContainerResponse) Marshal Uses

func (m *PreStartContainerResponse) Marshal() (dAtA []byte, err error)

func (*PreStartContainerResponse) MarshalTo Uses

func (m *PreStartContainerResponse) MarshalTo(dAtA []byte) (int, error)

func (*PreStartContainerResponse) ProtoMessage Uses

func (*PreStartContainerResponse) ProtoMessage()

func (*PreStartContainerResponse) Reset Uses

func (m *PreStartContainerResponse) Reset()

func (*PreStartContainerResponse) Size Uses

func (m *PreStartContainerResponse) Size() (n int)

func (*PreStartContainerResponse) String Uses

func (this *PreStartContainerResponse) String() string

func (*PreStartContainerResponse) Unmarshal Uses

func (m *PreStartContainerResponse) Unmarshal(dAtA []byte) error

type RegisterRequest Uses

type RegisterRequest struct {
    // Version of the API the Device Plugin was built against
    Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
    // Name of the unix socket the device plugin is listening on
    // PATH = path.Join(DevicePluginPath, endpoint)
    Endpoint string `protobuf:"bytes,2,opt,name=endpoint,proto3" json:"endpoint,omitempty"`
    // Schedulable resource name. As of now it's expected to be a DNS Label
    ResourceName string `protobuf:"bytes,3,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"`
    // Options to be communicated with Device Manager
    Options *DevicePluginOptions `protobuf:"bytes,4,opt,name=options" json:"options,omitempty"`
}

func (*RegisterRequest) Descriptor Uses

func (*RegisterRequest) Descriptor() ([]byte, []int)

func (*RegisterRequest) GetEndpoint Uses

func (m *RegisterRequest) GetEndpoint() string

func (*RegisterRequest) GetOptions Uses

func (m *RegisterRequest) GetOptions() *DevicePluginOptions

func (*RegisterRequest) GetResourceName Uses

func (m *RegisterRequest) GetResourceName() string

func (*RegisterRequest) GetVersion Uses

func (m *RegisterRequest) GetVersion() string

func (*RegisterRequest) Marshal Uses

func (m *RegisterRequest) Marshal() (dAtA []byte, err error)

func (*RegisterRequest) MarshalTo Uses

func (m *RegisterRequest) MarshalTo(dAtA []byte) (int, error)

func (*RegisterRequest) ProtoMessage Uses

func (*RegisterRequest) ProtoMessage()

func (*RegisterRequest) Reset Uses

func (m *RegisterRequest) Reset()

func (*RegisterRequest) Size Uses

func (m *RegisterRequest) Size() (n int)

func (*RegisterRequest) String Uses

func (this *RegisterRequest) String() string

func (*RegisterRequest) Unmarshal Uses

func (m *RegisterRequest) Unmarshal(dAtA []byte) error

type RegistrationClient Uses

type RegistrationClient interface {
    Register(ctx context.Context, in *RegisterRequest, opts ...grpc.CallOption) (*Empty, error)
}

func NewRegistrationClient Uses

func NewRegistrationClient(cc *grpc.ClientConn) RegistrationClient

type RegistrationServer Uses

type RegistrationServer interface {
    Register(context.Context, *RegisterRequest) (*Empty, error)
}

Package v1beta1 imports 10 packages (graph) and is imported by 30 packages. Updated 2019-07-05. Refresh now. Tools for package owners.