Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
90c20981
Commit
90c20981
authored
Feb 08, 2018
by
Jiaying Zhang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Create pkg/kubelet/apis/deviceplugin/v1beta1 directory.
The proto stays the same as v1alpha. Only changes Version in constants.go to "v1beta1" and the BUILD file to pick up the new dir.
parent
c3a92d0b
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
2539 additions
and
8 deletions
+2539
-8
.golint_failures
hack/.golint_failures
+1
-0
update-generated-device-plugin-dockerized.sh
hack/update-generated-device-plugin-dockerized.sh
+4
-2
verify-generated-device-plugin.sh
hack/verify-generated-device-plugin.sh
+12
-6
BUILD
pkg/kubelet/apis/BUILD
+1
-0
BUILD
pkg/kubelet/apis/deviceplugin/v1beta1/BUILD
+41
-0
api.pb.go
pkg/kubelet/apis/deviceplugin/v1beta1/api.pb.go
+2322
-0
api.proto
pkg/kubelet/apis/deviceplugin/v1beta1/api.proto
+125
-0
constants.go
pkg/kubelet/apis/deviceplugin/v1beta1/constants.go
+33
-0
No files found.
hack/.golint_failures
View file @
90c20981
...
@@ -163,6 +163,7 @@ pkg/kubelet/apis
...
@@ -163,6 +163,7 @@ pkg/kubelet/apis
pkg/kubelet/apis/cri/runtime/v1alpha2
pkg/kubelet/apis/cri/runtime/v1alpha2
pkg/kubelet/apis/cri/testing
pkg/kubelet/apis/cri/testing
pkg/kubelet/apis/deviceplugin/v1alpha
pkg/kubelet/apis/deviceplugin/v1alpha
pkg/kubelet/apis/deviceplugin/v1beta1
pkg/kubelet/apis/kubeletconfig
pkg/kubelet/apis/kubeletconfig
pkg/kubelet/apis/kubeletconfig/v1alpha1
pkg/kubelet/apis/kubeletconfig/v1alpha1
pkg/kubelet/cadvisor
pkg/kubelet/cadvisor
...
...
hack/update-generated-device-plugin-dockerized.sh
View file @
90c20981
...
@@ -19,7 +19,9 @@ set -o nounset
...
@@ -19,7 +19,9 @@ set -o nounset
set
-o
pipefail
set
-o
pipefail
KUBE_ROOT
=
"
$(
cd
"
$(
dirname
"
${
BASH_SOURCE
}
"
)
/../"
&&
pwd
-P
)
"
KUBE_ROOT
=
"
$(
cd
"
$(
dirname
"
${
BASH_SOURCE
}
"
)
/../"
&&
pwd
-P
)
"
DEVICE_PLUGIN_ROOT
=
"
${
KUBE_ROOT
}
/pkg/kubelet/apis/deviceplugin/v1alpha/"
DEVICE_PLUGIN_ALPHA
=
"
${
KUBE_ROOT
}
/pkg/kubelet/apis/deviceplugin/v1alpha/"
DEVICE_PLUGIN_V1BETA1
=
"
${
KUBE_ROOT
}
/pkg/kubelet/apis/deviceplugin/v1beta1/"
source
"
${
KUBE_ROOT
}
/hack/lib/protoc.sh"
source
"
${
KUBE_ROOT
}
/hack/lib/protoc.sh"
kube::protoc::generate_proto
${
DEVICE_PLUGIN_ROOT
}
kube::protoc::generate_proto
${
DEVICE_PLUGIN_ALPHA
}
kube::protoc::generate_proto
${
DEVICE_PLUGIN_V1BETA1
}
hack/verify-generated-device-plugin.sh
View file @
90c20981
...
@@ -20,20 +20,26 @@ set -o pipefail
...
@@ -20,20 +20,26 @@ set -o pipefail
KUBE_ROOT
=
$(
dirname
"
${
BASH_SOURCE
}
"
)
/..
KUBE_ROOT
=
$(
dirname
"
${
BASH_SOURCE
}
"
)
/..
ERROR
=
"Device plugin api is out of date. Please run hack/update-generated-device-plugin.sh"
ERROR
=
"Device plugin api is out of date. Please run hack/update-generated-device-plugin.sh"
DEVICE_PLUGIN_ROOT
=
"
${
KUBE_ROOT
}
/pkg/kubelet/apis/deviceplugin/v1alpha/"
DEVICE_PLUGIN_ALPHA
=
"
${
KUBE_ROOT
}
/pkg/kubelet/apis/deviceplugin/v1alpha/"
DEVICE_PLUGIN_V1BETA1
=
"
${
KUBE_ROOT
}
/pkg/kubelet/apis/deviceplugin/v1beta1/"
source
"
${
KUBE_ROOT
}
/hack/lib/protoc.sh"
source
"
${
KUBE_ROOT
}
/hack/lib/protoc.sh"
kube::golang::setup_env
kube::golang::setup_env
function
cleanup
{
function
cleanup
{
rm
-rf
${
DEVICE_PLUGIN_ROOT
}
/_tmp/
rm
-rf
${
DEVICE_PLUGIN_ALPHA
}
/_tmp/
rm
-rf
${
DEVICE_PLUGIN_V1BETA1
}
/_tmp/
}
}
trap
cleanup EXIT
trap
cleanup EXIT
mkdir
-p
${
DEVICE_PLUGIN_ROOT
}
/_tmp
mkdir
-p
${
DEVICE_PLUGIN_ALPHA
}
/_tmp
cp
${
DEVICE_PLUGIN_ROOT
}
/api.pb.go
${
DEVICE_PLUGIN_ROOT
}
/_tmp/
cp
${
DEVICE_PLUGIN_ALPHA
}
/api.pb.go
${
DEVICE_PLUGIN_ALPHA
}
/_tmp/
mkdir
-p
${
DEVICE_PLUGIN_V1BETA1
}
/_tmp
cp
${
DEVICE_PLUGIN_V1BETA1
}
/api.pb.go
${
DEVICE_PLUGIN_V1BETA1
}
/_tmp/
KUBE_VERBOSE
=
3
"
${
KUBE_ROOT
}
/hack/update-generated-device-plugin.sh"
KUBE_VERBOSE
=
3
"
${
KUBE_ROOT
}
/hack/update-generated-device-plugin.sh"
kube::protoc::diff
"
${
DEVICE_PLUGIN_ROOT
}
/api.pb.go"
"
${
DEVICE_PLUGIN_ROOT
}
/_tmp/api.pb.go"
${
ERROR
}
kube::protoc::diff
"
${
DEVICE_PLUGIN_ALPHA
}
/api.pb.go"
"
${
DEVICE_PLUGIN_ALPHA
}
/_tmp/api.pb.go"
${
ERROR
}
echo
"Generated device plugin api is up to date."
echo
"Generated device plugin alpha api is up to date."
kube::protoc::diff
"
${
DEVICE_PLUGIN_V1BETA1
}
/api.pb.go"
"
${
DEVICE_PLUGIN_V1BETA1
}
/_tmp/api.pb.go"
${
ERROR
}
echo
"Generated device plugin beta api is up to date."
pkg/kubelet/apis/BUILD
View file @
90c20981
...
@@ -27,6 +27,7 @@ filegroup(
...
@@ -27,6 +27,7 @@ filegroup(
":package-srcs",
":package-srcs",
"//pkg/kubelet/apis/cri:all-srcs",
"//pkg/kubelet/apis/cri:all-srcs",
"//pkg/kubelet/apis/deviceplugin/v1alpha:all-srcs",
"//pkg/kubelet/apis/deviceplugin/v1alpha:all-srcs",
"//pkg/kubelet/apis/deviceplugin/v1beta1:all-srcs",
"//pkg/kubelet/apis/kubeletconfig:all-srcs",
"//pkg/kubelet/apis/kubeletconfig:all-srcs",
"//pkg/kubelet/apis/stats/v1alpha1:all-srcs",
"//pkg/kubelet/apis/stats/v1alpha1:all-srcs",
],
],
...
...
pkg/kubelet/apis/deviceplugin/v1beta1/BUILD
0 → 100644
View file @
90c20981
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = [
"api.pb.go",
"constants.go",
],
importpath = "k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1beta1",
deps = [
"//vendor/github.com/gogo/protobuf/gogoproto:go_default_library",
"//vendor/github.com/gogo/protobuf/proto:go_default_library",
"//vendor/github.com/gogo/protobuf/sortkeys:go_default_library",
"//vendor/golang.org/x/net/context:go_default_library",
"//vendor/google.golang.org/grpc:go_default_library",
],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
)
filegroup(
name = "go_default_library_protos",
srcs = ["api.proto"],
visibility = ["//visibility:public"],
)
pkg/kubelet/apis/deviceplugin/v1beta1/api.pb.go
0 → 100644
View file @
90c20981
/*
Copyright 2018 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.
*/
// Code generated by protoc-gen-gogo.
// source: api.proto
// DO NOT EDIT!
/*
Package v1beta1 is a generated protocol buffer package.
It is generated from these files:
api.proto
It has these top-level messages:
RegisterRequest
Empty
ListAndWatchResponse
Device
AllocateRequest
AllocateResponse
Mount
DeviceSpec
*/
package
v1beta1
import
proto
"github.com/gogo/protobuf/proto"
import
fmt
"fmt"
import
math
"math"
import
_
"github.com/gogo/protobuf/gogoproto"
import
(
context
"golang.org/x/net/context"
grpc
"google.golang.org/grpc"
)
import
strings
"strings"
import
reflect
"reflect"
import
github_com_gogo_protobuf_sortkeys
"github.com/gogo/protobuf/sortkeys"
import
io
"io"
// Reference imports to suppress errors if they are not otherwise used.
var
_
=
proto
.
Marshal
var
_
=
fmt
.
Errorf
var
_
=
math
.
Inf
// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const
_
=
proto
.
GoGoProtoPackageIsVersion2
// please upgrade the proto package
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"`
}
func
(
m
*
RegisterRequest
)
Reset
()
{
*
m
=
RegisterRequest
{}
}
func
(
*
RegisterRequest
)
ProtoMessage
()
{}
func
(
*
RegisterRequest
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptorApi
,
[]
int
{
0
}
}
func
(
m
*
RegisterRequest
)
GetVersion
()
string
{
if
m
!=
nil
{
return
m
.
Version
}
return
""
}
func
(
m
*
RegisterRequest
)
GetEndpoint
()
string
{
if
m
!=
nil
{
return
m
.
Endpoint
}
return
""
}
func
(
m
*
RegisterRequest
)
GetResourceName
()
string
{
if
m
!=
nil
{
return
m
.
ResourceName
}
return
""
}
type
Empty
struct
{
}
func
(
m
*
Empty
)
Reset
()
{
*
m
=
Empty
{}
}
func
(
*
Empty
)
ProtoMessage
()
{}
func
(
*
Empty
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptorApi
,
[]
int
{
1
}
}
// ListAndWatch returns a stream of List of Devices
// Whenever a Device state change or a Device disapears, ListAndWatch
// returns the new list
type
ListAndWatchResponse
struct
{
Devices
[]
*
Device
`protobuf:"bytes,1,rep,name=devices" json:"devices,omitempty"`
}
func
(
m
*
ListAndWatchResponse
)
Reset
()
{
*
m
=
ListAndWatchResponse
{}
}
func
(
*
ListAndWatchResponse
)
ProtoMessage
()
{}
func
(
*
ListAndWatchResponse
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptorApi
,
[]
int
{
2
}
}
func
(
m
*
ListAndWatchResponse
)
GetDevices
()
[]
*
Device
{
if
m
!=
nil
{
return
m
.
Devices
}
return
nil
}
// E.g:
// struct Device {
// ID: "GPU-fef8089b-4820-abfc-e83e-94318197576e",
// State: "Healthy",
// }
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"`
}
func
(
m
*
Device
)
Reset
()
{
*
m
=
Device
{}
}
func
(
*
Device
)
ProtoMessage
()
{}
func
(
*
Device
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptorApi
,
[]
int
{
3
}
}
func
(
m
*
Device
)
GetID
()
string
{
if
m
!=
nil
{
return
m
.
ID
}
return
""
}
func
(
m
*
Device
)
GetHealth
()
string
{
if
m
!=
nil
{
return
m
.
Health
}
return
""
}
// - 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
type
AllocateRequest
struct
{
DevicesIDs
[]
string
`protobuf:"bytes,1,rep,name=devicesIDs" json:"devicesIDs,omitempty"`
}
func
(
m
*
AllocateRequest
)
Reset
()
{
*
m
=
AllocateRequest
{}
}
func
(
*
AllocateRequest
)
ProtoMessage
()
{}
func
(
*
AllocateRequest
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptorApi
,
[]
int
{
4
}
}
func
(
m
*
AllocateRequest
)
GetDevicesIDs
()
[]
string
{
if
m
!=
nil
{
return
m
.
DevicesIDs
}
return
nil
}
// 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
type
AllocateResponse
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
(
m
*
AllocateResponse
)
Reset
()
{
*
m
=
AllocateResponse
{}
}
func
(
*
AllocateResponse
)
ProtoMessage
()
{}
func
(
*
AllocateResponse
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptorApi
,
[]
int
{
5
}
}
func
(
m
*
AllocateResponse
)
GetEnvs
()
map
[
string
]
string
{
if
m
!=
nil
{
return
m
.
Envs
}
return
nil
}
func
(
m
*
AllocateResponse
)
GetMounts
()
[]
*
Mount
{
if
m
!=
nil
{
return
m
.
Mounts
}
return
nil
}
func
(
m
*
AllocateResponse
)
GetDevices
()
[]
*
DeviceSpec
{
if
m
!=
nil
{
return
m
.
Devices
}
return
nil
}
func
(
m
*
AllocateResponse
)
GetAnnotations
()
map
[
string
]
string
{
if
m
!=
nil
{
return
m
.
Annotations
}
return
nil
}
// Mount specifies a host volume to mount into a container.
// where device library or tools are installed on host and container
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"`
}
func
(
m
*
Mount
)
Reset
()
{
*
m
=
Mount
{}
}
func
(
*
Mount
)
ProtoMessage
()
{}
func
(
*
Mount
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptorApi
,
[]
int
{
6
}
}
func
(
m
*
Mount
)
GetContainerPath
()
string
{
if
m
!=
nil
{
return
m
.
ContainerPath
}
return
""
}
func
(
m
*
Mount
)
GetHostPath
()
string
{
if
m
!=
nil
{
return
m
.
HostPath
}
return
""
}
func
(
m
*
Mount
)
GetReadOnly
()
bool
{
if
m
!=
nil
{
return
m
.
ReadOnly
}
return
false
}
// DeviceSpec specifies a host device to mount into a container.
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"`
}
func
(
m
*
DeviceSpec
)
Reset
()
{
*
m
=
DeviceSpec
{}
}
func
(
*
DeviceSpec
)
ProtoMessage
()
{}
func
(
*
DeviceSpec
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptorApi
,
[]
int
{
7
}
}
func
(
m
*
DeviceSpec
)
GetContainerPath
()
string
{
if
m
!=
nil
{
return
m
.
ContainerPath
}
return
""
}
func
(
m
*
DeviceSpec
)
GetHostPath
()
string
{
if
m
!=
nil
{
return
m
.
HostPath
}
return
""
}
func
(
m
*
DeviceSpec
)
GetPermissions
()
string
{
if
m
!=
nil
{
return
m
.
Permissions
}
return
""
}
func
init
()
{
proto
.
RegisterType
((
*
RegisterRequest
)(
nil
),
"v1beta1.RegisterRequest"
)
proto
.
RegisterType
((
*
Empty
)(
nil
),
"v1beta1.Empty"
)
proto
.
RegisterType
((
*
ListAndWatchResponse
)(
nil
),
"v1beta1.ListAndWatchResponse"
)
proto
.
RegisterType
((
*
Device
)(
nil
),
"v1beta1.Device"
)
proto
.
RegisterType
((
*
AllocateRequest
)(
nil
),
"v1beta1.AllocateRequest"
)
proto
.
RegisterType
((
*
AllocateResponse
)(
nil
),
"v1beta1.AllocateResponse"
)
proto
.
RegisterType
((
*
Mount
)(
nil
),
"v1beta1.Mount"
)
proto
.
RegisterType
((
*
DeviceSpec
)(
nil
),
"v1beta1.DeviceSpec"
)
}
// Reference imports to suppress errors if they are not otherwise used.
var
_
context
.
Context
var
_
grpc
.
ClientConn
// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
const
_
=
grpc
.
SupportPackageIsVersion4
// Client API for Registration service
type
RegistrationClient
interface
{
Register
(
ctx
context
.
Context
,
in
*
RegisterRequest
,
opts
...
grpc
.
CallOption
)
(
*
Empty
,
error
)
}
type
registrationClient
struct
{
cc
*
grpc
.
ClientConn
}
func
NewRegistrationClient
(
cc
*
grpc
.
ClientConn
)
RegistrationClient
{
return
&
registrationClient
{
cc
}
}
func
(
c
*
registrationClient
)
Register
(
ctx
context
.
Context
,
in
*
RegisterRequest
,
opts
...
grpc
.
CallOption
)
(
*
Empty
,
error
)
{
out
:=
new
(
Empty
)
err
:=
grpc
.
Invoke
(
ctx
,
"/v1beta1.Registration/Register"
,
in
,
out
,
c
.
cc
,
opts
...
)
if
err
!=
nil
{
return
nil
,
err
}
return
out
,
nil
}
// Server API for Registration service
type
RegistrationServer
interface
{
Register
(
context
.
Context
,
*
RegisterRequest
)
(
*
Empty
,
error
)
}
func
RegisterRegistrationServer
(
s
*
grpc
.
Server
,
srv
RegistrationServer
)
{
s
.
RegisterService
(
&
_Registration_serviceDesc
,
srv
)
}
func
_Registration_Register_Handler
(
srv
interface
{},
ctx
context
.
Context
,
dec
func
(
interface
{})
error
,
interceptor
grpc
.
UnaryServerInterceptor
)
(
interface
{},
error
)
{
in
:=
new
(
RegisterRequest
)
if
err
:=
dec
(
in
);
err
!=
nil
{
return
nil
,
err
}
if
interceptor
==
nil
{
return
srv
.
(
RegistrationServer
)
.
Register
(
ctx
,
in
)
}
info
:=
&
grpc
.
UnaryServerInfo
{
Server
:
srv
,
FullMethod
:
"/v1beta1.Registration/Register"
,
}
handler
:=
func
(
ctx
context
.
Context
,
req
interface
{})
(
interface
{},
error
)
{
return
srv
.
(
RegistrationServer
)
.
Register
(
ctx
,
req
.
(
*
RegisterRequest
))
}
return
interceptor
(
ctx
,
in
,
info
,
handler
)
}
var
_Registration_serviceDesc
=
grpc
.
ServiceDesc
{
ServiceName
:
"v1beta1.Registration"
,
HandlerType
:
(
*
RegistrationServer
)(
nil
),
Methods
:
[]
grpc
.
MethodDesc
{
{
MethodName
:
"Register"
,
Handler
:
_Registration_Register_Handler
,
},
},
Streams
:
[]
grpc
.
StreamDesc
{},
Metadata
:
"api.proto"
,
}
// Client API for DevicePlugin service
type
DevicePluginClient
interface
{
// ListAndWatch returns a stream of List of Devices
// Whenever a Device state change or a Device disapears, 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
)
}
type
devicePluginClient
struct
{
cc
*
grpc
.
ClientConn
}
func
NewDevicePluginClient
(
cc
*
grpc
.
ClientConn
)
DevicePluginClient
{
return
&
devicePluginClient
{
cc
}
}
func
(
c
*
devicePluginClient
)
ListAndWatch
(
ctx
context
.
Context
,
in
*
Empty
,
opts
...
grpc
.
CallOption
)
(
DevicePlugin_ListAndWatchClient
,
error
)
{
stream
,
err
:=
grpc
.
NewClientStream
(
ctx
,
&
_DevicePlugin_serviceDesc
.
Streams
[
0
],
c
.
cc
,
"/v1beta1.DevicePlugin/ListAndWatch"
,
opts
...
)
if
err
!=
nil
{
return
nil
,
err
}
x
:=
&
devicePluginListAndWatchClient
{
stream
}
if
err
:=
x
.
ClientStream
.
SendMsg
(
in
);
err
!=
nil
{
return
nil
,
err
}
if
err
:=
x
.
ClientStream
.
CloseSend
();
err
!=
nil
{
return
nil
,
err
}
return
x
,
nil
}
type
DevicePlugin_ListAndWatchClient
interface
{
Recv
()
(
*
ListAndWatchResponse
,
error
)
grpc
.
ClientStream
}
type
devicePluginListAndWatchClient
struct
{
grpc
.
ClientStream
}
func
(
x
*
devicePluginListAndWatchClient
)
Recv
()
(
*
ListAndWatchResponse
,
error
)
{
m
:=
new
(
ListAndWatchResponse
)
if
err
:=
x
.
ClientStream
.
RecvMsg
(
m
);
err
!=
nil
{
return
nil
,
err
}
return
m
,
nil
}
func
(
c
*
devicePluginClient
)
Allocate
(
ctx
context
.
Context
,
in
*
AllocateRequest
,
opts
...
grpc
.
CallOption
)
(
*
AllocateResponse
,
error
)
{
out
:=
new
(
AllocateResponse
)
err
:=
grpc
.
Invoke
(
ctx
,
"/v1beta1.DevicePlugin/Allocate"
,
in
,
out
,
c
.
cc
,
opts
...
)
if
err
!=
nil
{
return
nil
,
err
}
return
out
,
nil
}
// Server API for DevicePlugin service
type
DevicePluginServer
interface
{
// ListAndWatch returns a stream of List of Devices
// Whenever a Device state change or a Device disapears, 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
)
}
func
RegisterDevicePluginServer
(
s
*
grpc
.
Server
,
srv
DevicePluginServer
)
{
s
.
RegisterService
(
&
_DevicePlugin_serviceDesc
,
srv
)
}
func
_DevicePlugin_ListAndWatch_Handler
(
srv
interface
{},
stream
grpc
.
ServerStream
)
error
{
m
:=
new
(
Empty
)
if
err
:=
stream
.
RecvMsg
(
m
);
err
!=
nil
{
return
err
}
return
srv
.
(
DevicePluginServer
)
.
ListAndWatch
(
m
,
&
devicePluginListAndWatchServer
{
stream
})
}
type
DevicePlugin_ListAndWatchServer
interface
{
Send
(
*
ListAndWatchResponse
)
error
grpc
.
ServerStream
}
type
devicePluginListAndWatchServer
struct
{
grpc
.
ServerStream
}
func
(
x
*
devicePluginListAndWatchServer
)
Send
(
m
*
ListAndWatchResponse
)
error
{
return
x
.
ServerStream
.
SendMsg
(
m
)
}
func
_DevicePlugin_Allocate_Handler
(
srv
interface
{},
ctx
context
.
Context
,
dec
func
(
interface
{})
error
,
interceptor
grpc
.
UnaryServerInterceptor
)
(
interface
{},
error
)
{
in
:=
new
(
AllocateRequest
)
if
err
:=
dec
(
in
);
err
!=
nil
{
return
nil
,
err
}
if
interceptor
==
nil
{
return
srv
.
(
DevicePluginServer
)
.
Allocate
(
ctx
,
in
)
}
info
:=
&
grpc
.
UnaryServerInfo
{
Server
:
srv
,
FullMethod
:
"/v1beta1.DevicePlugin/Allocate"
,
}
handler
:=
func
(
ctx
context
.
Context
,
req
interface
{})
(
interface
{},
error
)
{
return
srv
.
(
DevicePluginServer
)
.
Allocate
(
ctx
,
req
.
(
*
AllocateRequest
))
}
return
interceptor
(
ctx
,
in
,
info
,
handler
)
}
var
_DevicePlugin_serviceDesc
=
grpc
.
ServiceDesc
{
ServiceName
:
"v1beta1.DevicePlugin"
,
HandlerType
:
(
*
DevicePluginServer
)(
nil
),
Methods
:
[]
grpc
.
MethodDesc
{
{
MethodName
:
"Allocate"
,
Handler
:
_DevicePlugin_Allocate_Handler
,
},
},
Streams
:
[]
grpc
.
StreamDesc
{
{
StreamName
:
"ListAndWatch"
,
Handler
:
_DevicePlugin_ListAndWatch_Handler
,
ServerStreams
:
true
,
},
},
Metadata
:
"api.proto"
,
}
func
(
m
*
RegisterRequest
)
Marshal
()
(
dAtA
[]
byte
,
err
error
)
{
size
:=
m
.
Size
()
dAtA
=
make
([]
byte
,
size
)
n
,
err
:=
m
.
MarshalTo
(
dAtA
)
if
err
!=
nil
{
return
nil
,
err
}
return
dAtA
[
:
n
],
nil
}
func
(
m
*
RegisterRequest
)
MarshalTo
(
dAtA
[]
byte
)
(
int
,
error
)
{
var
i
int
_
=
i
var
l
int
_
=
l
if
len
(
m
.
Version
)
>
0
{
dAtA
[
i
]
=
0xa
i
++
i
=
encodeVarintApi
(
dAtA
,
i
,
uint64
(
len
(
m
.
Version
)))
i
+=
copy
(
dAtA
[
i
:
],
m
.
Version
)
}
if
len
(
m
.
Endpoint
)
>
0
{
dAtA
[
i
]
=
0x12
i
++
i
=
encodeVarintApi
(
dAtA
,
i
,
uint64
(
len
(
m
.
Endpoint
)))
i
+=
copy
(
dAtA
[
i
:
],
m
.
Endpoint
)
}
if
len
(
m
.
ResourceName
)
>
0
{
dAtA
[
i
]
=
0x1a
i
++
i
=
encodeVarintApi
(
dAtA
,
i
,
uint64
(
len
(
m
.
ResourceName
)))
i
+=
copy
(
dAtA
[
i
:
],
m
.
ResourceName
)
}
return
i
,
nil
}
func
(
m
*
Empty
)
Marshal
()
(
dAtA
[]
byte
,
err
error
)
{
size
:=
m
.
Size
()
dAtA
=
make
([]
byte
,
size
)
n
,
err
:=
m
.
MarshalTo
(
dAtA
)
if
err
!=
nil
{
return
nil
,
err
}
return
dAtA
[
:
n
],
nil
}
func
(
m
*
Empty
)
MarshalTo
(
dAtA
[]
byte
)
(
int
,
error
)
{
var
i
int
_
=
i
var
l
int
_
=
l
return
i
,
nil
}
func
(
m
*
ListAndWatchResponse
)
Marshal
()
(
dAtA
[]
byte
,
err
error
)
{
size
:=
m
.
Size
()
dAtA
=
make
([]
byte
,
size
)
n
,
err
:=
m
.
MarshalTo
(
dAtA
)
if
err
!=
nil
{
return
nil
,
err
}
return
dAtA
[
:
n
],
nil
}
func
(
m
*
ListAndWatchResponse
)
MarshalTo
(
dAtA
[]
byte
)
(
int
,
error
)
{
var
i
int
_
=
i
var
l
int
_
=
l
if
len
(
m
.
Devices
)
>
0
{
for
_
,
msg
:=
range
m
.
Devices
{
dAtA
[
i
]
=
0xa
i
++
i
=
encodeVarintApi
(
dAtA
,
i
,
uint64
(
msg
.
Size
()))
n
,
err
:=
msg
.
MarshalTo
(
dAtA
[
i
:
])
if
err
!=
nil
{
return
0
,
err
}
i
+=
n
}
}
return
i
,
nil
}
func
(
m
*
Device
)
Marshal
()
(
dAtA
[]
byte
,
err
error
)
{
size
:=
m
.
Size
()
dAtA
=
make
([]
byte
,
size
)
n
,
err
:=
m
.
MarshalTo
(
dAtA
)
if
err
!=
nil
{
return
nil
,
err
}
return
dAtA
[
:
n
],
nil
}
func
(
m
*
Device
)
MarshalTo
(
dAtA
[]
byte
)
(
int
,
error
)
{
var
i
int
_
=
i
var
l
int
_
=
l
if
len
(
m
.
ID
)
>
0
{
dAtA
[
i
]
=
0xa
i
++
i
=
encodeVarintApi
(
dAtA
,
i
,
uint64
(
len
(
m
.
ID
)))
i
+=
copy
(
dAtA
[
i
:
],
m
.
ID
)
}
if
len
(
m
.
Health
)
>
0
{
dAtA
[
i
]
=
0x12
i
++
i
=
encodeVarintApi
(
dAtA
,
i
,
uint64
(
len
(
m
.
Health
)))
i
+=
copy
(
dAtA
[
i
:
],
m
.
Health
)
}
return
i
,
nil
}
func
(
m
*
AllocateRequest
)
Marshal
()
(
dAtA
[]
byte
,
err
error
)
{
size
:=
m
.
Size
()
dAtA
=
make
([]
byte
,
size
)
n
,
err
:=
m
.
MarshalTo
(
dAtA
)
if
err
!=
nil
{
return
nil
,
err
}
return
dAtA
[
:
n
],
nil
}
func
(
m
*
AllocateRequest
)
MarshalTo
(
dAtA
[]
byte
)
(
int
,
error
)
{
var
i
int
_
=
i
var
l
int
_
=
l
if
len
(
m
.
DevicesIDs
)
>
0
{
for
_
,
s
:=
range
m
.
DevicesIDs
{
dAtA
[
i
]
=
0xa
i
++
l
=
len
(
s
)
for
l
>=
1
<<
7
{
dAtA
[
i
]
=
uint8
(
uint64
(
l
)
&
0x7f
|
0x80
)
l
>>=
7
i
++
}
dAtA
[
i
]
=
uint8
(
l
)
i
++
i
+=
copy
(
dAtA
[
i
:
],
s
)
}
}
return
i
,
nil
}
func
(
m
*
AllocateResponse
)
Marshal
()
(
dAtA
[]
byte
,
err
error
)
{
size
:=
m
.
Size
()
dAtA
=
make
([]
byte
,
size
)
n
,
err
:=
m
.
MarshalTo
(
dAtA
)
if
err
!=
nil
{
return
nil
,
err
}
return
dAtA
[
:
n
],
nil
}
func
(
m
*
AllocateResponse
)
MarshalTo
(
dAtA
[]
byte
)
(
int
,
error
)
{
var
i
int
_
=
i
var
l
int
_
=
l
if
len
(
m
.
Envs
)
>
0
{
for
k
:=
range
m
.
Envs
{
dAtA
[
i
]
=
0xa
i
++
v
:=
m
.
Envs
[
k
]
mapSize
:=
1
+
len
(
k
)
+
sovApi
(
uint64
(
len
(
k
)))
+
1
+
len
(
v
)
+
sovApi
(
uint64
(
len
(
v
)))
i
=
encodeVarintApi
(
dAtA
,
i
,
uint64
(
mapSize
))
dAtA
[
i
]
=
0xa
i
++
i
=
encodeVarintApi
(
dAtA
,
i
,
uint64
(
len
(
k
)))
i
+=
copy
(
dAtA
[
i
:
],
k
)
dAtA
[
i
]
=
0x12
i
++
i
=
encodeVarintApi
(
dAtA
,
i
,
uint64
(
len
(
v
)))
i
+=
copy
(
dAtA
[
i
:
],
v
)
}
}
if
len
(
m
.
Mounts
)
>
0
{
for
_
,
msg
:=
range
m
.
Mounts
{
dAtA
[
i
]
=
0x12
i
++
i
=
encodeVarintApi
(
dAtA
,
i
,
uint64
(
msg
.
Size
()))
n
,
err
:=
msg
.
MarshalTo
(
dAtA
[
i
:
])
if
err
!=
nil
{
return
0
,
err
}
i
+=
n
}
}
if
len
(
m
.
Devices
)
>
0
{
for
_
,
msg
:=
range
m
.
Devices
{
dAtA
[
i
]
=
0x1a
i
++
i
=
encodeVarintApi
(
dAtA
,
i
,
uint64
(
msg
.
Size
()))
n
,
err
:=
msg
.
MarshalTo
(
dAtA
[
i
:
])
if
err
!=
nil
{
return
0
,
err
}
i
+=
n
}
}
if
len
(
m
.
Annotations
)
>
0
{
for
k
:=
range
m
.
Annotations
{
dAtA
[
i
]
=
0x22
i
++
v
:=
m
.
Annotations
[
k
]
mapSize
:=
1
+
len
(
k
)
+
sovApi
(
uint64
(
len
(
k
)))
+
1
+
len
(
v
)
+
sovApi
(
uint64
(
len
(
v
)))
i
=
encodeVarintApi
(
dAtA
,
i
,
uint64
(
mapSize
))
dAtA
[
i
]
=
0xa
i
++
i
=
encodeVarintApi
(
dAtA
,
i
,
uint64
(
len
(
k
)))
i
+=
copy
(
dAtA
[
i
:
],
k
)
dAtA
[
i
]
=
0x12
i
++
i
=
encodeVarintApi
(
dAtA
,
i
,
uint64
(
len
(
v
)))
i
+=
copy
(
dAtA
[
i
:
],
v
)
}
}
return
i
,
nil
}
func
(
m
*
Mount
)
Marshal
()
(
dAtA
[]
byte
,
err
error
)
{
size
:=
m
.
Size
()
dAtA
=
make
([]
byte
,
size
)
n
,
err
:=
m
.
MarshalTo
(
dAtA
)
if
err
!=
nil
{
return
nil
,
err
}
return
dAtA
[
:
n
],
nil
}
func
(
m
*
Mount
)
MarshalTo
(
dAtA
[]
byte
)
(
int
,
error
)
{
var
i
int
_
=
i
var
l
int
_
=
l
if
len
(
m
.
ContainerPath
)
>
0
{
dAtA
[
i
]
=
0xa
i
++
i
=
encodeVarintApi
(
dAtA
,
i
,
uint64
(
len
(
m
.
ContainerPath
)))
i
+=
copy
(
dAtA
[
i
:
],
m
.
ContainerPath
)
}
if
len
(
m
.
HostPath
)
>
0
{
dAtA
[
i
]
=
0x12
i
++
i
=
encodeVarintApi
(
dAtA
,
i
,
uint64
(
len
(
m
.
HostPath
)))
i
+=
copy
(
dAtA
[
i
:
],
m
.
HostPath
)
}
if
m
.
ReadOnly
{
dAtA
[
i
]
=
0x18
i
++
if
m
.
ReadOnly
{
dAtA
[
i
]
=
1
}
else
{
dAtA
[
i
]
=
0
}
i
++
}
return
i
,
nil
}
func
(
m
*
DeviceSpec
)
Marshal
()
(
dAtA
[]
byte
,
err
error
)
{
size
:=
m
.
Size
()
dAtA
=
make
([]
byte
,
size
)
n
,
err
:=
m
.
MarshalTo
(
dAtA
)
if
err
!=
nil
{
return
nil
,
err
}
return
dAtA
[
:
n
],
nil
}
func
(
m
*
DeviceSpec
)
MarshalTo
(
dAtA
[]
byte
)
(
int
,
error
)
{
var
i
int
_
=
i
var
l
int
_
=
l
if
len
(
m
.
ContainerPath
)
>
0
{
dAtA
[
i
]
=
0xa
i
++
i
=
encodeVarintApi
(
dAtA
,
i
,
uint64
(
len
(
m
.
ContainerPath
)))
i
+=
copy
(
dAtA
[
i
:
],
m
.
ContainerPath
)
}
if
len
(
m
.
HostPath
)
>
0
{
dAtA
[
i
]
=
0x12
i
++
i
=
encodeVarintApi
(
dAtA
,
i
,
uint64
(
len
(
m
.
HostPath
)))
i
+=
copy
(
dAtA
[
i
:
],
m
.
HostPath
)
}
if
len
(
m
.
Permissions
)
>
0
{
dAtA
[
i
]
=
0x1a
i
++
i
=
encodeVarintApi
(
dAtA
,
i
,
uint64
(
len
(
m
.
Permissions
)))
i
+=
copy
(
dAtA
[
i
:
],
m
.
Permissions
)
}
return
i
,
nil
}
func
encodeFixed64Api
(
dAtA
[]
byte
,
offset
int
,
v
uint64
)
int
{
dAtA
[
offset
]
=
uint8
(
v
)
dAtA
[
offset
+
1
]
=
uint8
(
v
>>
8
)
dAtA
[
offset
+
2
]
=
uint8
(
v
>>
16
)
dAtA
[
offset
+
3
]
=
uint8
(
v
>>
24
)
dAtA
[
offset
+
4
]
=
uint8
(
v
>>
32
)
dAtA
[
offset
+
5
]
=
uint8
(
v
>>
40
)
dAtA
[
offset
+
6
]
=
uint8
(
v
>>
48
)
dAtA
[
offset
+
7
]
=
uint8
(
v
>>
56
)
return
offset
+
8
}
func
encodeFixed32Api
(
dAtA
[]
byte
,
offset
int
,
v
uint32
)
int
{
dAtA
[
offset
]
=
uint8
(
v
)
dAtA
[
offset
+
1
]
=
uint8
(
v
>>
8
)
dAtA
[
offset
+
2
]
=
uint8
(
v
>>
16
)
dAtA
[
offset
+
3
]
=
uint8
(
v
>>
24
)
return
offset
+
4
}
func
encodeVarintApi
(
dAtA
[]
byte
,
offset
int
,
v
uint64
)
int
{
for
v
>=
1
<<
7
{
dAtA
[
offset
]
=
uint8
(
v
&
0x7f
|
0x80
)
v
>>=
7
offset
++
}
dAtA
[
offset
]
=
uint8
(
v
)
return
offset
+
1
}
func
(
m
*
RegisterRequest
)
Size
()
(
n
int
)
{
var
l
int
_
=
l
l
=
len
(
m
.
Version
)
if
l
>
0
{
n
+=
1
+
l
+
sovApi
(
uint64
(
l
))
}
l
=
len
(
m
.
Endpoint
)
if
l
>
0
{
n
+=
1
+
l
+
sovApi
(
uint64
(
l
))
}
l
=
len
(
m
.
ResourceName
)
if
l
>
0
{
n
+=
1
+
l
+
sovApi
(
uint64
(
l
))
}
return
n
}
func
(
m
*
Empty
)
Size
()
(
n
int
)
{
var
l
int
_
=
l
return
n
}
func
(
m
*
ListAndWatchResponse
)
Size
()
(
n
int
)
{
var
l
int
_
=
l
if
len
(
m
.
Devices
)
>
0
{
for
_
,
e
:=
range
m
.
Devices
{
l
=
e
.
Size
()
n
+=
1
+
l
+
sovApi
(
uint64
(
l
))
}
}
return
n
}
func
(
m
*
Device
)
Size
()
(
n
int
)
{
var
l
int
_
=
l
l
=
len
(
m
.
ID
)
if
l
>
0
{
n
+=
1
+
l
+
sovApi
(
uint64
(
l
))
}
l
=
len
(
m
.
Health
)
if
l
>
0
{
n
+=
1
+
l
+
sovApi
(
uint64
(
l
))
}
return
n
}
func
(
m
*
AllocateRequest
)
Size
()
(
n
int
)
{
var
l
int
_
=
l
if
len
(
m
.
DevicesIDs
)
>
0
{
for
_
,
s
:=
range
m
.
DevicesIDs
{
l
=
len
(
s
)
n
+=
1
+
l
+
sovApi
(
uint64
(
l
))
}
}
return
n
}
func
(
m
*
AllocateResponse
)
Size
()
(
n
int
)
{
var
l
int
_
=
l
if
len
(
m
.
Envs
)
>
0
{
for
k
,
v
:=
range
m
.
Envs
{
_
=
k
_
=
v
mapEntrySize
:=
1
+
len
(
k
)
+
sovApi
(
uint64
(
len
(
k
)))
+
1
+
len
(
v
)
+
sovApi
(
uint64
(
len
(
v
)))
n
+=
mapEntrySize
+
1
+
sovApi
(
uint64
(
mapEntrySize
))
}
}
if
len
(
m
.
Mounts
)
>
0
{
for
_
,
e
:=
range
m
.
Mounts
{
l
=
e
.
Size
()
n
+=
1
+
l
+
sovApi
(
uint64
(
l
))
}
}
if
len
(
m
.
Devices
)
>
0
{
for
_
,
e
:=
range
m
.
Devices
{
l
=
e
.
Size
()
n
+=
1
+
l
+
sovApi
(
uint64
(
l
))
}
}
if
len
(
m
.
Annotations
)
>
0
{
for
k
,
v
:=
range
m
.
Annotations
{
_
=
k
_
=
v
mapEntrySize
:=
1
+
len
(
k
)
+
sovApi
(
uint64
(
len
(
k
)))
+
1
+
len
(
v
)
+
sovApi
(
uint64
(
len
(
v
)))
n
+=
mapEntrySize
+
1
+
sovApi
(
uint64
(
mapEntrySize
))
}
}
return
n
}
func
(
m
*
Mount
)
Size
()
(
n
int
)
{
var
l
int
_
=
l
l
=
len
(
m
.
ContainerPath
)
if
l
>
0
{
n
+=
1
+
l
+
sovApi
(
uint64
(
l
))
}
l
=
len
(
m
.
HostPath
)
if
l
>
0
{
n
+=
1
+
l
+
sovApi
(
uint64
(
l
))
}
if
m
.
ReadOnly
{
n
+=
2
}
return
n
}
func
(
m
*
DeviceSpec
)
Size
()
(
n
int
)
{
var
l
int
_
=
l
l
=
len
(
m
.
ContainerPath
)
if
l
>
0
{
n
+=
1
+
l
+
sovApi
(
uint64
(
l
))
}
l
=
len
(
m
.
HostPath
)
if
l
>
0
{
n
+=
1
+
l
+
sovApi
(
uint64
(
l
))
}
l
=
len
(
m
.
Permissions
)
if
l
>
0
{
n
+=
1
+
l
+
sovApi
(
uint64
(
l
))
}
return
n
}
func
sovApi
(
x
uint64
)
(
n
int
)
{
for
{
n
++
x
>>=
7
if
x
==
0
{
break
}
}
return
n
}
func
sozApi
(
x
uint64
)
(
n
int
)
{
return
sovApi
(
uint64
((
x
<<
1
)
^
uint64
((
int64
(
x
)
>>
63
))))
}
func
(
this
*
RegisterRequest
)
String
()
string
{
if
this
==
nil
{
return
"nil"
}
s
:=
strings
.
Join
([]
string
{
`&RegisterRequest{`
,
`Version:`
+
fmt
.
Sprintf
(
"%v"
,
this
.
Version
)
+
`,`
,
`Endpoint:`
+
fmt
.
Sprintf
(
"%v"
,
this
.
Endpoint
)
+
`,`
,
`ResourceName:`
+
fmt
.
Sprintf
(
"%v"
,
this
.
ResourceName
)
+
`,`
,
`}`
,
},
""
)
return
s
}
func
(
this
*
Empty
)
String
()
string
{
if
this
==
nil
{
return
"nil"
}
s
:=
strings
.
Join
([]
string
{
`&Empty{`
,
`}`
,
},
""
)
return
s
}
func
(
this
*
ListAndWatchResponse
)
String
()
string
{
if
this
==
nil
{
return
"nil"
}
s
:=
strings
.
Join
([]
string
{
`&ListAndWatchResponse{`
,
`Devices:`
+
strings
.
Replace
(
fmt
.
Sprintf
(
"%v"
,
this
.
Devices
),
"Device"
,
"Device"
,
1
)
+
`,`
,
`}`
,
},
""
)
return
s
}
func
(
this
*
Device
)
String
()
string
{
if
this
==
nil
{
return
"nil"
}
s
:=
strings
.
Join
([]
string
{
`&Device{`
,
`ID:`
+
fmt
.
Sprintf
(
"%v"
,
this
.
ID
)
+
`,`
,
`Health:`
+
fmt
.
Sprintf
(
"%v"
,
this
.
Health
)
+
`,`
,
`}`
,
},
""
)
return
s
}
func
(
this
*
AllocateRequest
)
String
()
string
{
if
this
==
nil
{
return
"nil"
}
s
:=
strings
.
Join
([]
string
{
`&AllocateRequest{`
,
`DevicesIDs:`
+
fmt
.
Sprintf
(
"%v"
,
this
.
DevicesIDs
)
+
`,`
,
`}`
,
},
""
)
return
s
}
func
(
this
*
AllocateResponse
)
String
()
string
{
if
this
==
nil
{
return
"nil"
}
keysForEnvs
:=
make
([]
string
,
0
,
len
(
this
.
Envs
))
for
k
:=
range
this
.
Envs
{
keysForEnvs
=
append
(
keysForEnvs
,
k
)
}
github_com_gogo_protobuf_sortkeys
.
Strings
(
keysForEnvs
)
mapStringForEnvs
:=
"map[string]string{"
for
_
,
k
:=
range
keysForEnvs
{
mapStringForEnvs
+=
fmt
.
Sprintf
(
"%v: %v,"
,
k
,
this
.
Envs
[
k
])
}
mapStringForEnvs
+=
"}"
keysForAnnotations
:=
make
([]
string
,
0
,
len
(
this
.
Annotations
))
for
k
:=
range
this
.
Annotations
{
keysForAnnotations
=
append
(
keysForAnnotations
,
k
)
}
github_com_gogo_protobuf_sortkeys
.
Strings
(
keysForAnnotations
)
mapStringForAnnotations
:=
"map[string]string{"
for
_
,
k
:=
range
keysForAnnotations
{
mapStringForAnnotations
+=
fmt
.
Sprintf
(
"%v: %v,"
,
k
,
this
.
Annotations
[
k
])
}
mapStringForAnnotations
+=
"}"
s
:=
strings
.
Join
([]
string
{
`&AllocateResponse{`
,
`Envs:`
+
mapStringForEnvs
+
`,`
,
`Mounts:`
+
strings
.
Replace
(
fmt
.
Sprintf
(
"%v"
,
this
.
Mounts
),
"Mount"
,
"Mount"
,
1
)
+
`,`
,
`Devices:`
+
strings
.
Replace
(
fmt
.
Sprintf
(
"%v"
,
this
.
Devices
),
"DeviceSpec"
,
"DeviceSpec"
,
1
)
+
`,`
,
`Annotations:`
+
mapStringForAnnotations
+
`,`
,
`}`
,
},
""
)
return
s
}
func
(
this
*
Mount
)
String
()
string
{
if
this
==
nil
{
return
"nil"
}
s
:=
strings
.
Join
([]
string
{
`&Mount{`
,
`ContainerPath:`
+
fmt
.
Sprintf
(
"%v"
,
this
.
ContainerPath
)
+
`,`
,
`HostPath:`
+
fmt
.
Sprintf
(
"%v"
,
this
.
HostPath
)
+
`,`
,
`ReadOnly:`
+
fmt
.
Sprintf
(
"%v"
,
this
.
ReadOnly
)
+
`,`
,
`}`
,
},
""
)
return
s
}
func
(
this
*
DeviceSpec
)
String
()
string
{
if
this
==
nil
{
return
"nil"
}
s
:=
strings
.
Join
([]
string
{
`&DeviceSpec{`
,
`ContainerPath:`
+
fmt
.
Sprintf
(
"%v"
,
this
.
ContainerPath
)
+
`,`
,
`HostPath:`
+
fmt
.
Sprintf
(
"%v"
,
this
.
HostPath
)
+
`,`
,
`Permissions:`
+
fmt
.
Sprintf
(
"%v"
,
this
.
Permissions
)
+
`,`
,
`}`
,
},
""
)
return
s
}
func
valueToStringApi
(
v
interface
{})
string
{
rv
:=
reflect
.
ValueOf
(
v
)
if
rv
.
IsNil
()
{
return
"nil"
}
pv
:=
reflect
.
Indirect
(
rv
)
.
Interface
()
return
fmt
.
Sprintf
(
"*%v"
,
pv
)
}
func
(
m
*
RegisterRequest
)
Unmarshal
(
dAtA
[]
byte
)
error
{
l
:=
len
(
dAtA
)
iNdEx
:=
0
for
iNdEx
<
l
{
preIndex
:=
iNdEx
var
wire
uint64
for
shift
:=
uint
(
0
);
;
shift
+=
7
{
if
shift
>=
64
{
return
ErrIntOverflowApi
}
if
iNdEx
>=
l
{
return
io
.
ErrUnexpectedEOF
}
b
:=
dAtA
[
iNdEx
]
iNdEx
++
wire
|=
(
uint64
(
b
)
&
0x7F
)
<<
shift
if
b
<
0x80
{
break
}
}
fieldNum
:=
int32
(
wire
>>
3
)
wireType
:=
int
(
wire
&
0x7
)
if
wireType
==
4
{
return
fmt
.
Errorf
(
"proto: RegisterRequest: wiretype end group for non-group"
)
}
if
fieldNum
<=
0
{
return
fmt
.
Errorf
(
"proto: RegisterRequest: illegal tag %d (wire type %d)"
,
fieldNum
,
wire
)
}
switch
fieldNum
{
case
1
:
if
wireType
!=
2
{
return
fmt
.
Errorf
(
"proto: wrong wireType = %d for field Version"
,
wireType
)
}
var
stringLen
uint64
for
shift
:=
uint
(
0
);
;
shift
+=
7
{
if
shift
>=
64
{
return
ErrIntOverflowApi
}
if
iNdEx
>=
l
{
return
io
.
ErrUnexpectedEOF
}
b
:=
dAtA
[
iNdEx
]
iNdEx
++
stringLen
|=
(
uint64
(
b
)
&
0x7F
)
<<
shift
if
b
<
0x80
{
break
}
}
intStringLen
:=
int
(
stringLen
)
if
intStringLen
<
0
{
return
ErrInvalidLengthApi
}
postIndex
:=
iNdEx
+
intStringLen
if
postIndex
>
l
{
return
io
.
ErrUnexpectedEOF
}
m
.
Version
=
string
(
dAtA
[
iNdEx
:
postIndex
])
iNdEx
=
postIndex
case
2
:
if
wireType
!=
2
{
return
fmt
.
Errorf
(
"proto: wrong wireType = %d for field Endpoint"
,
wireType
)
}
var
stringLen
uint64
for
shift
:=
uint
(
0
);
;
shift
+=
7
{
if
shift
>=
64
{
return
ErrIntOverflowApi
}
if
iNdEx
>=
l
{
return
io
.
ErrUnexpectedEOF
}
b
:=
dAtA
[
iNdEx
]
iNdEx
++
stringLen
|=
(
uint64
(
b
)
&
0x7F
)
<<
shift
if
b
<
0x80
{
break
}
}
intStringLen
:=
int
(
stringLen
)
if
intStringLen
<
0
{
return
ErrInvalidLengthApi
}
postIndex
:=
iNdEx
+
intStringLen
if
postIndex
>
l
{
return
io
.
ErrUnexpectedEOF
}
m
.
Endpoint
=
string
(
dAtA
[
iNdEx
:
postIndex
])
iNdEx
=
postIndex
case
3
:
if
wireType
!=
2
{
return
fmt
.
Errorf
(
"proto: wrong wireType = %d for field ResourceName"
,
wireType
)
}
var
stringLen
uint64
for
shift
:=
uint
(
0
);
;
shift
+=
7
{
if
shift
>=
64
{
return
ErrIntOverflowApi
}
if
iNdEx
>=
l
{
return
io
.
ErrUnexpectedEOF
}
b
:=
dAtA
[
iNdEx
]
iNdEx
++
stringLen
|=
(
uint64
(
b
)
&
0x7F
)
<<
shift
if
b
<
0x80
{
break
}
}
intStringLen
:=
int
(
stringLen
)
if
intStringLen
<
0
{
return
ErrInvalidLengthApi
}
postIndex
:=
iNdEx
+
intStringLen
if
postIndex
>
l
{
return
io
.
ErrUnexpectedEOF
}
m
.
ResourceName
=
string
(
dAtA
[
iNdEx
:
postIndex
])
iNdEx
=
postIndex
default
:
iNdEx
=
preIndex
skippy
,
err
:=
skipApi
(
dAtA
[
iNdEx
:
])
if
err
!=
nil
{
return
err
}
if
skippy
<
0
{
return
ErrInvalidLengthApi
}
if
(
iNdEx
+
skippy
)
>
l
{
return
io
.
ErrUnexpectedEOF
}
iNdEx
+=
skippy
}
}
if
iNdEx
>
l
{
return
io
.
ErrUnexpectedEOF
}
return
nil
}
func
(
m
*
Empty
)
Unmarshal
(
dAtA
[]
byte
)
error
{
l
:=
len
(
dAtA
)
iNdEx
:=
0
for
iNdEx
<
l
{
preIndex
:=
iNdEx
var
wire
uint64
for
shift
:=
uint
(
0
);
;
shift
+=
7
{
if
shift
>=
64
{
return
ErrIntOverflowApi
}
if
iNdEx
>=
l
{
return
io
.
ErrUnexpectedEOF
}
b
:=
dAtA
[
iNdEx
]
iNdEx
++
wire
|=
(
uint64
(
b
)
&
0x7F
)
<<
shift
if
b
<
0x80
{
break
}
}
fieldNum
:=
int32
(
wire
>>
3
)
wireType
:=
int
(
wire
&
0x7
)
if
wireType
==
4
{
return
fmt
.
Errorf
(
"proto: Empty: wiretype end group for non-group"
)
}
if
fieldNum
<=
0
{
return
fmt
.
Errorf
(
"proto: Empty: illegal tag %d (wire type %d)"
,
fieldNum
,
wire
)
}
switch
fieldNum
{
default
:
iNdEx
=
preIndex
skippy
,
err
:=
skipApi
(
dAtA
[
iNdEx
:
])
if
err
!=
nil
{
return
err
}
if
skippy
<
0
{
return
ErrInvalidLengthApi
}
if
(
iNdEx
+
skippy
)
>
l
{
return
io
.
ErrUnexpectedEOF
}
iNdEx
+=
skippy
}
}
if
iNdEx
>
l
{
return
io
.
ErrUnexpectedEOF
}
return
nil
}
func
(
m
*
ListAndWatchResponse
)
Unmarshal
(
dAtA
[]
byte
)
error
{
l
:=
len
(
dAtA
)
iNdEx
:=
0
for
iNdEx
<
l
{
preIndex
:=
iNdEx
var
wire
uint64
for
shift
:=
uint
(
0
);
;
shift
+=
7
{
if
shift
>=
64
{
return
ErrIntOverflowApi
}
if
iNdEx
>=
l
{
return
io
.
ErrUnexpectedEOF
}
b
:=
dAtA
[
iNdEx
]
iNdEx
++
wire
|=
(
uint64
(
b
)
&
0x7F
)
<<
shift
if
b
<
0x80
{
break
}
}
fieldNum
:=
int32
(
wire
>>
3
)
wireType
:=
int
(
wire
&
0x7
)
if
wireType
==
4
{
return
fmt
.
Errorf
(
"proto: ListAndWatchResponse: wiretype end group for non-group"
)
}
if
fieldNum
<=
0
{
return
fmt
.
Errorf
(
"proto: ListAndWatchResponse: illegal tag %d (wire type %d)"
,
fieldNum
,
wire
)
}
switch
fieldNum
{
case
1
:
if
wireType
!=
2
{
return
fmt
.
Errorf
(
"proto: wrong wireType = %d for field Devices"
,
wireType
)
}
var
msglen
int
for
shift
:=
uint
(
0
);
;
shift
+=
7
{
if
shift
>=
64
{
return
ErrIntOverflowApi
}
if
iNdEx
>=
l
{
return
io
.
ErrUnexpectedEOF
}
b
:=
dAtA
[
iNdEx
]
iNdEx
++
msglen
|=
(
int
(
b
)
&
0x7F
)
<<
shift
if
b
<
0x80
{
break
}
}
if
msglen
<
0
{
return
ErrInvalidLengthApi
}
postIndex
:=
iNdEx
+
msglen
if
postIndex
>
l
{
return
io
.
ErrUnexpectedEOF
}
m
.
Devices
=
append
(
m
.
Devices
,
&
Device
{})
if
err
:=
m
.
Devices
[
len
(
m
.
Devices
)
-
1
]
.
Unmarshal
(
dAtA
[
iNdEx
:
postIndex
]);
err
!=
nil
{
return
err
}
iNdEx
=
postIndex
default
:
iNdEx
=
preIndex
skippy
,
err
:=
skipApi
(
dAtA
[
iNdEx
:
])
if
err
!=
nil
{
return
err
}
if
skippy
<
0
{
return
ErrInvalidLengthApi
}
if
(
iNdEx
+
skippy
)
>
l
{
return
io
.
ErrUnexpectedEOF
}
iNdEx
+=
skippy
}
}
if
iNdEx
>
l
{
return
io
.
ErrUnexpectedEOF
}
return
nil
}
func
(
m
*
Device
)
Unmarshal
(
dAtA
[]
byte
)
error
{
l
:=
len
(
dAtA
)
iNdEx
:=
0
for
iNdEx
<
l
{
preIndex
:=
iNdEx
var
wire
uint64
for
shift
:=
uint
(
0
);
;
shift
+=
7
{
if
shift
>=
64
{
return
ErrIntOverflowApi
}
if
iNdEx
>=
l
{
return
io
.
ErrUnexpectedEOF
}
b
:=
dAtA
[
iNdEx
]
iNdEx
++
wire
|=
(
uint64
(
b
)
&
0x7F
)
<<
shift
if
b
<
0x80
{
break
}
}
fieldNum
:=
int32
(
wire
>>
3
)
wireType
:=
int
(
wire
&
0x7
)
if
wireType
==
4
{
return
fmt
.
Errorf
(
"proto: Device: wiretype end group for non-group"
)
}
if
fieldNum
<=
0
{
return
fmt
.
Errorf
(
"proto: Device: illegal tag %d (wire type %d)"
,
fieldNum
,
wire
)
}
switch
fieldNum
{
case
1
:
if
wireType
!=
2
{
return
fmt
.
Errorf
(
"proto: wrong wireType = %d for field ID"
,
wireType
)
}
var
stringLen
uint64
for
shift
:=
uint
(
0
);
;
shift
+=
7
{
if
shift
>=
64
{
return
ErrIntOverflowApi
}
if
iNdEx
>=
l
{
return
io
.
ErrUnexpectedEOF
}
b
:=
dAtA
[
iNdEx
]
iNdEx
++
stringLen
|=
(
uint64
(
b
)
&
0x7F
)
<<
shift
if
b
<
0x80
{
break
}
}
intStringLen
:=
int
(
stringLen
)
if
intStringLen
<
0
{
return
ErrInvalidLengthApi
}
postIndex
:=
iNdEx
+
intStringLen
if
postIndex
>
l
{
return
io
.
ErrUnexpectedEOF
}
m
.
ID
=
string
(
dAtA
[
iNdEx
:
postIndex
])
iNdEx
=
postIndex
case
2
:
if
wireType
!=
2
{
return
fmt
.
Errorf
(
"proto: wrong wireType = %d for field Health"
,
wireType
)
}
var
stringLen
uint64
for
shift
:=
uint
(
0
);
;
shift
+=
7
{
if
shift
>=
64
{
return
ErrIntOverflowApi
}
if
iNdEx
>=
l
{
return
io
.
ErrUnexpectedEOF
}
b
:=
dAtA
[
iNdEx
]
iNdEx
++
stringLen
|=
(
uint64
(
b
)
&
0x7F
)
<<
shift
if
b
<
0x80
{
break
}
}
intStringLen
:=
int
(
stringLen
)
if
intStringLen
<
0
{
return
ErrInvalidLengthApi
}
postIndex
:=
iNdEx
+
intStringLen
if
postIndex
>
l
{
return
io
.
ErrUnexpectedEOF
}
m
.
Health
=
string
(
dAtA
[
iNdEx
:
postIndex
])
iNdEx
=
postIndex
default
:
iNdEx
=
preIndex
skippy
,
err
:=
skipApi
(
dAtA
[
iNdEx
:
])
if
err
!=
nil
{
return
err
}
if
skippy
<
0
{
return
ErrInvalidLengthApi
}
if
(
iNdEx
+
skippy
)
>
l
{
return
io
.
ErrUnexpectedEOF
}
iNdEx
+=
skippy
}
}
if
iNdEx
>
l
{
return
io
.
ErrUnexpectedEOF
}
return
nil
}
func
(
m
*
AllocateRequest
)
Unmarshal
(
dAtA
[]
byte
)
error
{
l
:=
len
(
dAtA
)
iNdEx
:=
0
for
iNdEx
<
l
{
preIndex
:=
iNdEx
var
wire
uint64
for
shift
:=
uint
(
0
);
;
shift
+=
7
{
if
shift
>=
64
{
return
ErrIntOverflowApi
}
if
iNdEx
>=
l
{
return
io
.
ErrUnexpectedEOF
}
b
:=
dAtA
[
iNdEx
]
iNdEx
++
wire
|=
(
uint64
(
b
)
&
0x7F
)
<<
shift
if
b
<
0x80
{
break
}
}
fieldNum
:=
int32
(
wire
>>
3
)
wireType
:=
int
(
wire
&
0x7
)
if
wireType
==
4
{
return
fmt
.
Errorf
(
"proto: AllocateRequest: wiretype end group for non-group"
)
}
if
fieldNum
<=
0
{
return
fmt
.
Errorf
(
"proto: AllocateRequest: illegal tag %d (wire type %d)"
,
fieldNum
,
wire
)
}
switch
fieldNum
{
case
1
:
if
wireType
!=
2
{
return
fmt
.
Errorf
(
"proto: wrong wireType = %d for field DevicesIDs"
,
wireType
)
}
var
stringLen
uint64
for
shift
:=
uint
(
0
);
;
shift
+=
7
{
if
shift
>=
64
{
return
ErrIntOverflowApi
}
if
iNdEx
>=
l
{
return
io
.
ErrUnexpectedEOF
}
b
:=
dAtA
[
iNdEx
]
iNdEx
++
stringLen
|=
(
uint64
(
b
)
&
0x7F
)
<<
shift
if
b
<
0x80
{
break
}
}
intStringLen
:=
int
(
stringLen
)
if
intStringLen
<
0
{
return
ErrInvalidLengthApi
}
postIndex
:=
iNdEx
+
intStringLen
if
postIndex
>
l
{
return
io
.
ErrUnexpectedEOF
}
m
.
DevicesIDs
=
append
(
m
.
DevicesIDs
,
string
(
dAtA
[
iNdEx
:
postIndex
]))
iNdEx
=
postIndex
default
:
iNdEx
=
preIndex
skippy
,
err
:=
skipApi
(
dAtA
[
iNdEx
:
])
if
err
!=
nil
{
return
err
}
if
skippy
<
0
{
return
ErrInvalidLengthApi
}
if
(
iNdEx
+
skippy
)
>
l
{
return
io
.
ErrUnexpectedEOF
}
iNdEx
+=
skippy
}
}
if
iNdEx
>
l
{
return
io
.
ErrUnexpectedEOF
}
return
nil
}
func
(
m
*
AllocateResponse
)
Unmarshal
(
dAtA
[]
byte
)
error
{
l
:=
len
(
dAtA
)
iNdEx
:=
0
for
iNdEx
<
l
{
preIndex
:=
iNdEx
var
wire
uint64
for
shift
:=
uint
(
0
);
;
shift
+=
7
{
if
shift
>=
64
{
return
ErrIntOverflowApi
}
if
iNdEx
>=
l
{
return
io
.
ErrUnexpectedEOF
}
b
:=
dAtA
[
iNdEx
]
iNdEx
++
wire
|=
(
uint64
(
b
)
&
0x7F
)
<<
shift
if
b
<
0x80
{
break
}
}
fieldNum
:=
int32
(
wire
>>
3
)
wireType
:=
int
(
wire
&
0x7
)
if
wireType
==
4
{
return
fmt
.
Errorf
(
"proto: AllocateResponse: wiretype end group for non-group"
)
}
if
fieldNum
<=
0
{
return
fmt
.
Errorf
(
"proto: AllocateResponse: illegal tag %d (wire type %d)"
,
fieldNum
,
wire
)
}
switch
fieldNum
{
case
1
:
if
wireType
!=
2
{
return
fmt
.
Errorf
(
"proto: wrong wireType = %d for field Envs"
,
wireType
)
}
var
msglen
int
for
shift
:=
uint
(
0
);
;
shift
+=
7
{
if
shift
>=
64
{
return
ErrIntOverflowApi
}
if
iNdEx
>=
l
{
return
io
.
ErrUnexpectedEOF
}
b
:=
dAtA
[
iNdEx
]
iNdEx
++
msglen
|=
(
int
(
b
)
&
0x7F
)
<<
shift
if
b
<
0x80
{
break
}
}
if
msglen
<
0
{
return
ErrInvalidLengthApi
}
postIndex
:=
iNdEx
+
msglen
if
postIndex
>
l
{
return
io
.
ErrUnexpectedEOF
}
var
keykey
uint64
for
shift
:=
uint
(
0
);
;
shift
+=
7
{
if
shift
>=
64
{
return
ErrIntOverflowApi
}
if
iNdEx
>=
l
{
return
io
.
ErrUnexpectedEOF
}
b
:=
dAtA
[
iNdEx
]
iNdEx
++
keykey
|=
(
uint64
(
b
)
&
0x7F
)
<<
shift
if
b
<
0x80
{
break
}
}
var
stringLenmapkey
uint64
for
shift
:=
uint
(
0
);
;
shift
+=
7
{
if
shift
>=
64
{
return
ErrIntOverflowApi
}
if
iNdEx
>=
l
{
return
io
.
ErrUnexpectedEOF
}
b
:=
dAtA
[
iNdEx
]
iNdEx
++
stringLenmapkey
|=
(
uint64
(
b
)
&
0x7F
)
<<
shift
if
b
<
0x80
{
break
}
}
intStringLenmapkey
:=
int
(
stringLenmapkey
)
if
intStringLenmapkey
<
0
{
return
ErrInvalidLengthApi
}
postStringIndexmapkey
:=
iNdEx
+
intStringLenmapkey
if
postStringIndexmapkey
>
l
{
return
io
.
ErrUnexpectedEOF
}
mapkey
:=
string
(
dAtA
[
iNdEx
:
postStringIndexmapkey
])
iNdEx
=
postStringIndexmapkey
if
m
.
Envs
==
nil
{
m
.
Envs
=
make
(
map
[
string
]
string
)
}
if
iNdEx
<
postIndex
{
var
valuekey
uint64
for
shift
:=
uint
(
0
);
;
shift
+=
7
{
if
shift
>=
64
{
return
ErrIntOverflowApi
}
if
iNdEx
>=
l
{
return
io
.
ErrUnexpectedEOF
}
b
:=
dAtA
[
iNdEx
]
iNdEx
++
valuekey
|=
(
uint64
(
b
)
&
0x7F
)
<<
shift
if
b
<
0x80
{
break
}
}
var
stringLenmapvalue
uint64
for
shift
:=
uint
(
0
);
;
shift
+=
7
{
if
shift
>=
64
{
return
ErrIntOverflowApi
}
if
iNdEx
>=
l
{
return
io
.
ErrUnexpectedEOF
}
b
:=
dAtA
[
iNdEx
]
iNdEx
++
stringLenmapvalue
|=
(
uint64
(
b
)
&
0x7F
)
<<
shift
if
b
<
0x80
{
break
}
}
intStringLenmapvalue
:=
int
(
stringLenmapvalue
)
if
intStringLenmapvalue
<
0
{
return
ErrInvalidLengthApi
}
postStringIndexmapvalue
:=
iNdEx
+
intStringLenmapvalue
if
postStringIndexmapvalue
>
l
{
return
io
.
ErrUnexpectedEOF
}
mapvalue
:=
string
(
dAtA
[
iNdEx
:
postStringIndexmapvalue
])
iNdEx
=
postStringIndexmapvalue
m
.
Envs
[
mapkey
]
=
mapvalue
}
else
{
var
mapvalue
string
m
.
Envs
[
mapkey
]
=
mapvalue
}
iNdEx
=
postIndex
case
2
:
if
wireType
!=
2
{
return
fmt
.
Errorf
(
"proto: wrong wireType = %d for field Mounts"
,
wireType
)
}
var
msglen
int
for
shift
:=
uint
(
0
);
;
shift
+=
7
{
if
shift
>=
64
{
return
ErrIntOverflowApi
}
if
iNdEx
>=
l
{
return
io
.
ErrUnexpectedEOF
}
b
:=
dAtA
[
iNdEx
]
iNdEx
++
msglen
|=
(
int
(
b
)
&
0x7F
)
<<
shift
if
b
<
0x80
{
break
}
}
if
msglen
<
0
{
return
ErrInvalidLengthApi
}
postIndex
:=
iNdEx
+
msglen
if
postIndex
>
l
{
return
io
.
ErrUnexpectedEOF
}
m
.
Mounts
=
append
(
m
.
Mounts
,
&
Mount
{})
if
err
:=
m
.
Mounts
[
len
(
m
.
Mounts
)
-
1
]
.
Unmarshal
(
dAtA
[
iNdEx
:
postIndex
]);
err
!=
nil
{
return
err
}
iNdEx
=
postIndex
case
3
:
if
wireType
!=
2
{
return
fmt
.
Errorf
(
"proto: wrong wireType = %d for field Devices"
,
wireType
)
}
var
msglen
int
for
shift
:=
uint
(
0
);
;
shift
+=
7
{
if
shift
>=
64
{
return
ErrIntOverflowApi
}
if
iNdEx
>=
l
{
return
io
.
ErrUnexpectedEOF
}
b
:=
dAtA
[
iNdEx
]
iNdEx
++
msglen
|=
(
int
(
b
)
&
0x7F
)
<<
shift
if
b
<
0x80
{
break
}
}
if
msglen
<
0
{
return
ErrInvalidLengthApi
}
postIndex
:=
iNdEx
+
msglen
if
postIndex
>
l
{
return
io
.
ErrUnexpectedEOF
}
m
.
Devices
=
append
(
m
.
Devices
,
&
DeviceSpec
{})
if
err
:=
m
.
Devices
[
len
(
m
.
Devices
)
-
1
]
.
Unmarshal
(
dAtA
[
iNdEx
:
postIndex
]);
err
!=
nil
{
return
err
}
iNdEx
=
postIndex
case
4
:
if
wireType
!=
2
{
return
fmt
.
Errorf
(
"proto: wrong wireType = %d for field Annotations"
,
wireType
)
}
var
msglen
int
for
shift
:=
uint
(
0
);
;
shift
+=
7
{
if
shift
>=
64
{
return
ErrIntOverflowApi
}
if
iNdEx
>=
l
{
return
io
.
ErrUnexpectedEOF
}
b
:=
dAtA
[
iNdEx
]
iNdEx
++
msglen
|=
(
int
(
b
)
&
0x7F
)
<<
shift
if
b
<
0x80
{
break
}
}
if
msglen
<
0
{
return
ErrInvalidLengthApi
}
postIndex
:=
iNdEx
+
msglen
if
postIndex
>
l
{
return
io
.
ErrUnexpectedEOF
}
var
keykey
uint64
for
shift
:=
uint
(
0
);
;
shift
+=
7
{
if
shift
>=
64
{
return
ErrIntOverflowApi
}
if
iNdEx
>=
l
{
return
io
.
ErrUnexpectedEOF
}
b
:=
dAtA
[
iNdEx
]
iNdEx
++
keykey
|=
(
uint64
(
b
)
&
0x7F
)
<<
shift
if
b
<
0x80
{
break
}
}
var
stringLenmapkey
uint64
for
shift
:=
uint
(
0
);
;
shift
+=
7
{
if
shift
>=
64
{
return
ErrIntOverflowApi
}
if
iNdEx
>=
l
{
return
io
.
ErrUnexpectedEOF
}
b
:=
dAtA
[
iNdEx
]
iNdEx
++
stringLenmapkey
|=
(
uint64
(
b
)
&
0x7F
)
<<
shift
if
b
<
0x80
{
break
}
}
intStringLenmapkey
:=
int
(
stringLenmapkey
)
if
intStringLenmapkey
<
0
{
return
ErrInvalidLengthApi
}
postStringIndexmapkey
:=
iNdEx
+
intStringLenmapkey
if
postStringIndexmapkey
>
l
{
return
io
.
ErrUnexpectedEOF
}
mapkey
:=
string
(
dAtA
[
iNdEx
:
postStringIndexmapkey
])
iNdEx
=
postStringIndexmapkey
if
m
.
Annotations
==
nil
{
m
.
Annotations
=
make
(
map
[
string
]
string
)
}
if
iNdEx
<
postIndex
{
var
valuekey
uint64
for
shift
:=
uint
(
0
);
;
shift
+=
7
{
if
shift
>=
64
{
return
ErrIntOverflowApi
}
if
iNdEx
>=
l
{
return
io
.
ErrUnexpectedEOF
}
b
:=
dAtA
[
iNdEx
]
iNdEx
++
valuekey
|=
(
uint64
(
b
)
&
0x7F
)
<<
shift
if
b
<
0x80
{
break
}
}
var
stringLenmapvalue
uint64
for
shift
:=
uint
(
0
);
;
shift
+=
7
{
if
shift
>=
64
{
return
ErrIntOverflowApi
}
if
iNdEx
>=
l
{
return
io
.
ErrUnexpectedEOF
}
b
:=
dAtA
[
iNdEx
]
iNdEx
++
stringLenmapvalue
|=
(
uint64
(
b
)
&
0x7F
)
<<
shift
if
b
<
0x80
{
break
}
}
intStringLenmapvalue
:=
int
(
stringLenmapvalue
)
if
intStringLenmapvalue
<
0
{
return
ErrInvalidLengthApi
}
postStringIndexmapvalue
:=
iNdEx
+
intStringLenmapvalue
if
postStringIndexmapvalue
>
l
{
return
io
.
ErrUnexpectedEOF
}
mapvalue
:=
string
(
dAtA
[
iNdEx
:
postStringIndexmapvalue
])
iNdEx
=
postStringIndexmapvalue
m
.
Annotations
[
mapkey
]
=
mapvalue
}
else
{
var
mapvalue
string
m
.
Annotations
[
mapkey
]
=
mapvalue
}
iNdEx
=
postIndex
default
:
iNdEx
=
preIndex
skippy
,
err
:=
skipApi
(
dAtA
[
iNdEx
:
])
if
err
!=
nil
{
return
err
}
if
skippy
<
0
{
return
ErrInvalidLengthApi
}
if
(
iNdEx
+
skippy
)
>
l
{
return
io
.
ErrUnexpectedEOF
}
iNdEx
+=
skippy
}
}
if
iNdEx
>
l
{
return
io
.
ErrUnexpectedEOF
}
return
nil
}
func
(
m
*
Mount
)
Unmarshal
(
dAtA
[]
byte
)
error
{
l
:=
len
(
dAtA
)
iNdEx
:=
0
for
iNdEx
<
l
{
preIndex
:=
iNdEx
var
wire
uint64
for
shift
:=
uint
(
0
);
;
shift
+=
7
{
if
shift
>=
64
{
return
ErrIntOverflowApi
}
if
iNdEx
>=
l
{
return
io
.
ErrUnexpectedEOF
}
b
:=
dAtA
[
iNdEx
]
iNdEx
++
wire
|=
(
uint64
(
b
)
&
0x7F
)
<<
shift
if
b
<
0x80
{
break
}
}
fieldNum
:=
int32
(
wire
>>
3
)
wireType
:=
int
(
wire
&
0x7
)
if
wireType
==
4
{
return
fmt
.
Errorf
(
"proto: Mount: wiretype end group for non-group"
)
}
if
fieldNum
<=
0
{
return
fmt
.
Errorf
(
"proto: Mount: illegal tag %d (wire type %d)"
,
fieldNum
,
wire
)
}
switch
fieldNum
{
case
1
:
if
wireType
!=
2
{
return
fmt
.
Errorf
(
"proto: wrong wireType = %d for field ContainerPath"
,
wireType
)
}
var
stringLen
uint64
for
shift
:=
uint
(
0
);
;
shift
+=
7
{
if
shift
>=
64
{
return
ErrIntOverflowApi
}
if
iNdEx
>=
l
{
return
io
.
ErrUnexpectedEOF
}
b
:=
dAtA
[
iNdEx
]
iNdEx
++
stringLen
|=
(
uint64
(
b
)
&
0x7F
)
<<
shift
if
b
<
0x80
{
break
}
}
intStringLen
:=
int
(
stringLen
)
if
intStringLen
<
0
{
return
ErrInvalidLengthApi
}
postIndex
:=
iNdEx
+
intStringLen
if
postIndex
>
l
{
return
io
.
ErrUnexpectedEOF
}
m
.
ContainerPath
=
string
(
dAtA
[
iNdEx
:
postIndex
])
iNdEx
=
postIndex
case
2
:
if
wireType
!=
2
{
return
fmt
.
Errorf
(
"proto: wrong wireType = %d for field HostPath"
,
wireType
)
}
var
stringLen
uint64
for
shift
:=
uint
(
0
);
;
shift
+=
7
{
if
shift
>=
64
{
return
ErrIntOverflowApi
}
if
iNdEx
>=
l
{
return
io
.
ErrUnexpectedEOF
}
b
:=
dAtA
[
iNdEx
]
iNdEx
++
stringLen
|=
(
uint64
(
b
)
&
0x7F
)
<<
shift
if
b
<
0x80
{
break
}
}
intStringLen
:=
int
(
stringLen
)
if
intStringLen
<
0
{
return
ErrInvalidLengthApi
}
postIndex
:=
iNdEx
+
intStringLen
if
postIndex
>
l
{
return
io
.
ErrUnexpectedEOF
}
m
.
HostPath
=
string
(
dAtA
[
iNdEx
:
postIndex
])
iNdEx
=
postIndex
case
3
:
if
wireType
!=
0
{
return
fmt
.
Errorf
(
"proto: wrong wireType = %d for field ReadOnly"
,
wireType
)
}
var
v
int
for
shift
:=
uint
(
0
);
;
shift
+=
7
{
if
shift
>=
64
{
return
ErrIntOverflowApi
}
if
iNdEx
>=
l
{
return
io
.
ErrUnexpectedEOF
}
b
:=
dAtA
[
iNdEx
]
iNdEx
++
v
|=
(
int
(
b
)
&
0x7F
)
<<
shift
if
b
<
0x80
{
break
}
}
m
.
ReadOnly
=
bool
(
v
!=
0
)
default
:
iNdEx
=
preIndex
skippy
,
err
:=
skipApi
(
dAtA
[
iNdEx
:
])
if
err
!=
nil
{
return
err
}
if
skippy
<
0
{
return
ErrInvalidLengthApi
}
if
(
iNdEx
+
skippy
)
>
l
{
return
io
.
ErrUnexpectedEOF
}
iNdEx
+=
skippy
}
}
if
iNdEx
>
l
{
return
io
.
ErrUnexpectedEOF
}
return
nil
}
func
(
m
*
DeviceSpec
)
Unmarshal
(
dAtA
[]
byte
)
error
{
l
:=
len
(
dAtA
)
iNdEx
:=
0
for
iNdEx
<
l
{
preIndex
:=
iNdEx
var
wire
uint64
for
shift
:=
uint
(
0
);
;
shift
+=
7
{
if
shift
>=
64
{
return
ErrIntOverflowApi
}
if
iNdEx
>=
l
{
return
io
.
ErrUnexpectedEOF
}
b
:=
dAtA
[
iNdEx
]
iNdEx
++
wire
|=
(
uint64
(
b
)
&
0x7F
)
<<
shift
if
b
<
0x80
{
break
}
}
fieldNum
:=
int32
(
wire
>>
3
)
wireType
:=
int
(
wire
&
0x7
)
if
wireType
==
4
{
return
fmt
.
Errorf
(
"proto: DeviceSpec: wiretype end group for non-group"
)
}
if
fieldNum
<=
0
{
return
fmt
.
Errorf
(
"proto: DeviceSpec: illegal tag %d (wire type %d)"
,
fieldNum
,
wire
)
}
switch
fieldNum
{
case
1
:
if
wireType
!=
2
{
return
fmt
.
Errorf
(
"proto: wrong wireType = %d for field ContainerPath"
,
wireType
)
}
var
stringLen
uint64
for
shift
:=
uint
(
0
);
;
shift
+=
7
{
if
shift
>=
64
{
return
ErrIntOverflowApi
}
if
iNdEx
>=
l
{
return
io
.
ErrUnexpectedEOF
}
b
:=
dAtA
[
iNdEx
]
iNdEx
++
stringLen
|=
(
uint64
(
b
)
&
0x7F
)
<<
shift
if
b
<
0x80
{
break
}
}
intStringLen
:=
int
(
stringLen
)
if
intStringLen
<
0
{
return
ErrInvalidLengthApi
}
postIndex
:=
iNdEx
+
intStringLen
if
postIndex
>
l
{
return
io
.
ErrUnexpectedEOF
}
m
.
ContainerPath
=
string
(
dAtA
[
iNdEx
:
postIndex
])
iNdEx
=
postIndex
case
2
:
if
wireType
!=
2
{
return
fmt
.
Errorf
(
"proto: wrong wireType = %d for field HostPath"
,
wireType
)
}
var
stringLen
uint64
for
shift
:=
uint
(
0
);
;
shift
+=
7
{
if
shift
>=
64
{
return
ErrIntOverflowApi
}
if
iNdEx
>=
l
{
return
io
.
ErrUnexpectedEOF
}
b
:=
dAtA
[
iNdEx
]
iNdEx
++
stringLen
|=
(
uint64
(
b
)
&
0x7F
)
<<
shift
if
b
<
0x80
{
break
}
}
intStringLen
:=
int
(
stringLen
)
if
intStringLen
<
0
{
return
ErrInvalidLengthApi
}
postIndex
:=
iNdEx
+
intStringLen
if
postIndex
>
l
{
return
io
.
ErrUnexpectedEOF
}
m
.
HostPath
=
string
(
dAtA
[
iNdEx
:
postIndex
])
iNdEx
=
postIndex
case
3
:
if
wireType
!=
2
{
return
fmt
.
Errorf
(
"proto: wrong wireType = %d for field Permissions"
,
wireType
)
}
var
stringLen
uint64
for
shift
:=
uint
(
0
);
;
shift
+=
7
{
if
shift
>=
64
{
return
ErrIntOverflowApi
}
if
iNdEx
>=
l
{
return
io
.
ErrUnexpectedEOF
}
b
:=
dAtA
[
iNdEx
]
iNdEx
++
stringLen
|=
(
uint64
(
b
)
&
0x7F
)
<<
shift
if
b
<
0x80
{
break
}
}
intStringLen
:=
int
(
stringLen
)
if
intStringLen
<
0
{
return
ErrInvalidLengthApi
}
postIndex
:=
iNdEx
+
intStringLen
if
postIndex
>
l
{
return
io
.
ErrUnexpectedEOF
}
m
.
Permissions
=
string
(
dAtA
[
iNdEx
:
postIndex
])
iNdEx
=
postIndex
default
:
iNdEx
=
preIndex
skippy
,
err
:=
skipApi
(
dAtA
[
iNdEx
:
])
if
err
!=
nil
{
return
err
}
if
skippy
<
0
{
return
ErrInvalidLengthApi
}
if
(
iNdEx
+
skippy
)
>
l
{
return
io
.
ErrUnexpectedEOF
}
iNdEx
+=
skippy
}
}
if
iNdEx
>
l
{
return
io
.
ErrUnexpectedEOF
}
return
nil
}
func
skipApi
(
dAtA
[]
byte
)
(
n
int
,
err
error
)
{
l
:=
len
(
dAtA
)
iNdEx
:=
0
for
iNdEx
<
l
{
var
wire
uint64
for
shift
:=
uint
(
0
);
;
shift
+=
7
{
if
shift
>=
64
{
return
0
,
ErrIntOverflowApi
}
if
iNdEx
>=
l
{
return
0
,
io
.
ErrUnexpectedEOF
}
b
:=
dAtA
[
iNdEx
]
iNdEx
++
wire
|=
(
uint64
(
b
)
&
0x7F
)
<<
shift
if
b
<
0x80
{
break
}
}
wireType
:=
int
(
wire
&
0x7
)
switch
wireType
{
case
0
:
for
shift
:=
uint
(
0
);
;
shift
+=
7
{
if
shift
>=
64
{
return
0
,
ErrIntOverflowApi
}
if
iNdEx
>=
l
{
return
0
,
io
.
ErrUnexpectedEOF
}
iNdEx
++
if
dAtA
[
iNdEx
-
1
]
<
0x80
{
break
}
}
return
iNdEx
,
nil
case
1
:
iNdEx
+=
8
return
iNdEx
,
nil
case
2
:
var
length
int
for
shift
:=
uint
(
0
);
;
shift
+=
7
{
if
shift
>=
64
{
return
0
,
ErrIntOverflowApi
}
if
iNdEx
>=
l
{
return
0
,
io
.
ErrUnexpectedEOF
}
b
:=
dAtA
[
iNdEx
]
iNdEx
++
length
|=
(
int
(
b
)
&
0x7F
)
<<
shift
if
b
<
0x80
{
break
}
}
iNdEx
+=
length
if
length
<
0
{
return
0
,
ErrInvalidLengthApi
}
return
iNdEx
,
nil
case
3
:
for
{
var
innerWire
uint64
var
start
int
=
iNdEx
for
shift
:=
uint
(
0
);
;
shift
+=
7
{
if
shift
>=
64
{
return
0
,
ErrIntOverflowApi
}
if
iNdEx
>=
l
{
return
0
,
io
.
ErrUnexpectedEOF
}
b
:=
dAtA
[
iNdEx
]
iNdEx
++
innerWire
|=
(
uint64
(
b
)
&
0x7F
)
<<
shift
if
b
<
0x80
{
break
}
}
innerWireType
:=
int
(
innerWire
&
0x7
)
if
innerWireType
==
4
{
break
}
next
,
err
:=
skipApi
(
dAtA
[
start
:
])
if
err
!=
nil
{
return
0
,
err
}
iNdEx
=
start
+
next
}
return
iNdEx
,
nil
case
4
:
return
iNdEx
,
nil
case
5
:
iNdEx
+=
4
return
iNdEx
,
nil
default
:
return
0
,
fmt
.
Errorf
(
"proto: illegal wireType %d"
,
wireType
)
}
}
panic
(
"unreachable"
)
}
var
(
ErrInvalidLengthApi
=
fmt
.
Errorf
(
"proto: negative length found during unmarshaling"
)
ErrIntOverflowApi
=
fmt
.
Errorf
(
"proto: integer overflow"
)
)
func
init
()
{
proto
.
RegisterFile
(
"api.proto"
,
fileDescriptorApi
)
}
var
fileDescriptorApi
=
[]
byte
{
// 594 bytes of a gzipped FileDescriptorProto
0x1f
,
0x8b
,
0x08
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x02
,
0xff
,
0xac
,
0x54
,
0x4b
,
0x6f
,
0xd3
,
0x4c
,
0x14
,
0x8d
,
0x93
,
0x36
,
0x8f
,
0xdb
,
0xf4
,
0xa1
,
0xf9
,
0xaa
,
0x4f
,
0xc6
,
0x80
,
0x55
,
0xb9
,
0x02
,
0x15
,
0xa4
,
0xa6
,
0x0f
,
0x24
,
0x8a
,
0x58
,
0x20
,
0x19
,
0xa5
,
0x48
,
0x95
,
0x0a
,
0x54
,
0x66
,
0xc1
,
0x32
,
0x9a
,
0x38
,
0x97
,
0x78
,
0x84
,
0x3d
,
0x63
,
0x3c
,
0x63
,
0x4b
,
0xd9
,
0xf1
,
0x13
,
0x58
,
0xf0
,
0xa3
,
0xba
,
0x64
,
0xc9
,
0x92
,
0x86
,
0x15
,
0xff
,
0x02
,
0x65
,
0xfc
,
0x48
,
0x64
,
0xd1
,
0x05
,
0x12
,
0x3b
,
0xdf
,
0x73
,
0xef
,
0xb1
,
0xcf
,
0x9c
,
0xb9
,
0xc7
,
0xd0
,
0xa3
,
0x31
,
0x1b
,
0xc4
,
0x89
,
0x50
,
0x82
,
0x74
,
0xb2
,
0x93
,
0x31
,
0x2a
,
0x7a
,
0x62
,
0x1d
,
0x4e
,
0x99
,
0x0a
,
0xd2
,
0xf1
,
0xc0
,
0x17
,
0xd1
,
0xd1
,
0x54
,
0x4c
,
0xc5
,
0x91
,
0xee
,
0x8f
,
0xd3
,
0x0f
,
0xba
,
0xd2
,
0x85
,
0x7e
,
0xca
,
0x79
,
0x4e
,
0x08
,
0xdb
,
0x1e
,
0x4e
,
0x99
,
0x54
,
0x98
,
0x78
,
0xf8
,
0x29
,
0x45
,
0xa9
,
0x88
,
0x09
,
0x9d
,
0x0c
,
0x13
,
0xc9
,
0x04
,
0x37
,
0x8d
,
0x3d
,
0xe3
,
0xa0
,
0xe7
,
0x95
,
0x25
,
0xb1
,
0xa0
,
0x8b
,
0x7c
,
0x12
,
0x0b
,
0xc6
,
0x95
,
0xd9
,
0xd4
,
0xad
,
0xaa
,
0x26
,
0xfb
,
0xb0
,
0x99
,
0xa0
,
0x14
,
0x69
,
0xe2
,
0xe3
,
0x88
,
0xd3
,
0x08
,
0xcd
,
0x96
,
0x1e
,
0xe8
,
0x97
,
0xe0
,
0x1b
,
0x1a
,
0xa1
,
0xd3
,
0x81
,
0xf5
,
0xf3
,
0x28
,
0x56
,
0x33
,
0xc7
,
0x85
,
0xdd
,
0x4b
,
0x26
,
0x95
,
0xcb
,
0x27
,
0xef
,
0xa9
,
0xf2
,
0x03
,
0x0f
,
0x65
,
0x2c
,
0xb8
,
0x44
,
0xf2
,
0x08
,
0x3a
,
0x13
,
0xcc
,
0x98
,
0x8f
,
0xd2
,
0x34
,
0xf6
,
0x5a
,
0x07
,
0x1b
,
0xa7
,
0xdb
,
0x83
,
0xe2
,
0x60
,
0x83
,
0xa1
,
0xc6
,
0xbd
,
0xb2
,
0xef
,
0x1c
,
0x43
,
0x3b
,
0x87
,
0xc8
,
0x16
,
0x34
,
0x2f
,
0x86
,
0x85
,
0xd6
,
0x26
,
0x1b
,
0x92
,
0xff
,
0xa1
,
0x1d
,
0x20
,
0x0d
,
0x55
,
0x50
,
0x88
,
0x2c
,
0x2a
,
0xe7
,
0x04
,
0xb6
,
0xdd
,
0x30
,
0x14
,
0x3e
,
0x55
,
0x58
,
0x9e
,
0xd5
,
0x06
,
0x28
,
0xde
,
0x77
,
0x31
,
0xcc
,
0x3f
,
0xd9
,
0xf3
,
0x56
,
0x10
,
0xe7
,
0x57
,
0x13
,
0x76
,
0x96
,
0x9c
,
0x42
,
0xe4
,
0x19
,
0xac
,
0x21
,
0xcf
,
0x4a
,
0x85
,
0xfb
,
0x95
,
0xc2
,
0xfa
,
0xe0
,
0xe0
,
0x9c
,
0x67
,
0xf2
,
0x9c
,
0xab
,
0x64
,
0xe6
,
0x69
,
0x02
,
0x79
,
0x08
,
0xed
,
0x48
,
0xa4
,
0x5c
,
0x49
,
0xb3
,
0xa9
,
0xa9
,
0x5b
,
0x15
,
0xf5
,
0xf5
,
0x02
,
0xf6
,
0x8a
,
0x2e
,
0x39
,
0x5c
,
0xba
,
0xd0
,
0xd2
,
0x83
,
0xff
,
0xd5
,
0x5c
,
0x78
,
0x17
,
0xa3
,
0x5f
,
0x39
,
0x41
,
0x2e
,
0x61
,
0x83
,
0x72
,
0x2e
,
0x14
,
0x55
,
0x4c
,
0x70
,
0x69
,
0xae
,
0x69
,
0xca
,
0xe3
,
0xdb
,
0x65
,
0xb9
,
0xcb
,
0xe1
,
0x5c
,
0xdd
,
0x2a
,
0xdd
,
0x3a
,
0x83
,
0x5e
,
0xa5
,
0x9b
,
0xec
,
0x40
,
0xeb
,
0x23
,
0xce
,
0x0a
,
0x6f
,
0x17
,
0x8f
,
0x64
,
0x17
,
0xd6
,
0x33
,
0x1a
,
0xa6
,
0x58
,
0x78
,
0x9b
,
0x17
,
0xcf
,
0x9b
,
0xcf
,
0x0c
,
0xeb
,
0x05
,
0xec
,
0xd4
,
0xdf
,
0xfc
,
0x37
,
0x7c
,
0x27
,
0x80
,
0x75
,
0x6d
,
0x03
,
0x79
,
0x00
,
0x5b
,
0xbe
,
0xe0
,
0x8a
,
0x32
,
0x8e
,
0xc9
,
0x28
,
0xa6
,
0x2a
,
0x28
,
0xf8
,
0x9b
,
0x15
,
0x7a
,
0x45
,
0x55
,
0x40
,
0xee
,
0x42
,
0x2f
,
0x10
,
0x52
,
0xe5
,
0x13
,
0xc5
,
0x3a
,
0x2e
,
0x80
,
0xb2
,
0x99
,
0x20
,
0x9d
,
0x8c
,
0x04
,
0x0f
,
0x67
,
0x7a
,
0x15
,
0xbb
,
0x5e
,
0x77
,
0x01
,
0xbc
,
0xe5
,
0xe1
,
0xcc
,
0x49
,
0x00
,
0x96
,
0x3e
,
0xfe
,
0x93
,
0xcf
,
0xed
,
0xc1
,
0x46
,
0x8c
,
0x49
,
0xc4
,
0xa4
,
0xd4
,
0x57
,
0x90
,
0xef
,
0xfe
,
0x2a
,
0x74
,
0xfa
,
0x0a
,
0xfa
,
0x79
,
0xd0
,
0x12
,
0xed
,
0x0f
,
0x79
,
0x0a
,
0xdd
,
0x32
,
0x78
,
0xc4
,
0xac
,
0xee
,
0xaa
,
0x96
,
0x45
,
0x6b
,
0xb9
,
0x21
,
0x79
,
0x6e
,
0x1a
,
0xa7
,
0x5f
,
0x0d
,
0xe8
,
0xe7
,
0xe2
,
0xaf
,
0xc2
,
0x74
,
0xca
,
0x38
,
0x71
,
0xa1
,
0xbf
,
0x1a
,
0x25
,
0x52
,
0xa3
,
0x58
,
0xf7
,
0xab
,
0xfa
,
0x4f
,
0x89
,
0x73
,
0x1a
,
0xc7
,
0x06
,
0x71
,
0xa1
,
0x5b
,
0x2e
,
0xc9
,
0x8a
,
0x96
,
0x5a
,
0x56
,
0xac
,
0x3b
,
0xb7
,
0x6e
,
0x94
,
0xd3
,
0x78
,
0x79
,
0xef
,
0xfa
,
0xc6
,
0x36
,
0xbe
,
0xdf
,
0xd8
,
0x8d
,
0xcf
,
0x73
,
0xdb
,
0xb8
,
0x9e
,
0xdb
,
0xc6
,
0xb7
,
0xb9
,
0x6d
,
0xfc
,
0x98
,
0xdb
,
0xc6
,
0x97
,
0x9f
,
0x76
,
0x63
,
0xdc
,
0xd6
,
0x3f
,
0x9b
,
0x27
,
0xbf
,
0x03
,
0x00
,
0x00
,
0xff
,
0xff
,
0x65
,
0x2a
,
0x0d
,
0x36
,
0xb1
,
0x04
,
0x00
,
0x00
,
}
pkg/kubelet/apis/deviceplugin/v1beta1/api.proto
0 → 100644
View file @
90c20981
// To regenerate api.pb.go run hack/update-device-plugin.sh
syntax
=
'proto3'
;
package
v1beta1
;
import
"github.com/gogo/protobuf/gogoproto/gogo.proto"
;
option
(
gogoproto.goproto_stringer_all
)
=
false
;
option
(
gogoproto.stringer_all
)
=
true
;
option
(
gogoproto.goproto_getters_all
)
=
true
;
option
(
gogoproto.marshaler_all
)
=
true
;
option
(
gogoproto.sizer_all
)
=
true
;
option
(
gogoproto.unmarshaler_all
)
=
true
;
option
(
gogoproto.goproto_unrecognized_all
)
=
false
;
// Registration is the service advertised by the Kubelet
// Only when Kubelet answers with a success code to a Register Request
// may Device Plugins start their service
// Registration may fail when device plugin version is not supported by
// Kubelet or the registered resourceName is already taken by another
// active device plugin. Device plugin is expected to terminate upon registration failure
service
Registration
{
rpc
Register
(
RegisterRequest
)
returns
(
Empty
)
{}
}
message
RegisterRequest
{
// Version of the API the Device Plugin was built against
string
version
=
1
;
// Name of the unix socket the device plugin is listening on
// PATH = path.Join(DevicePluginPath, endpoint)
string
endpoint
=
2
;
// Schedulable resource name. As of now it's expected to be a DNS Label
string
resource_name
=
3
;
}
message
Empty
{
}
// DevicePlugin is the service advertised by Device Plugins
service
DevicePlugin
{
// ListAndWatch returns a stream of List of Devices
// Whenever a Device state change or a Device disapears, ListAndWatch
// returns the new list
rpc
ListAndWatch
(
Empty
)
returns
(
stream
ListAndWatchResponse
)
{}
// 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
rpc
Allocate
(
AllocateRequest
)
returns
(
AllocateResponse
)
{}
}
// ListAndWatch returns a stream of List of Devices
// Whenever a Device state change or a Device disapears, ListAndWatch
// returns the new list
message
ListAndWatchResponse
{
repeated
Device
devices
=
1
;
}
/* E.g:
* struct Device {
* ID: "GPU-fef8089b-4820-abfc-e83e-94318197576e",
* State: "Healthy",
*} */
message
Device
{
// A unique ID assigned by the device plugin used
// to identify devices during the communication
// Max length of this field is 63 characters
string
ID
=
1
;
// Health of the device, can be healthy or unhealthy, see constants.go
string
health
=
2
;
}
// - 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
message
AllocateRequest
{
repeated
string
devicesIDs
=
1
;
}
// 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
message
AllocateResponse
{
// List of environment variable to be set in the container to access one of more devices.
map
<
string
,
string
>
envs
=
1
;
// Mounts for the container.
repeated
Mount
mounts
=
2
;
// Devices for the container.
repeated
DeviceSpec
devices
=
3
;
// Container annotations to pass to the container runtime
map
<
string
,
string
>
annotations
=
4
;
}
// Mount specifies a host volume to mount into a container.
// where device library or tools are installed on host and container
message
Mount
{
// Path of the mount within the container.
string
container_path
=
1
;
// Path of the mount on the host.
string
host_path
=
2
;
// If set, the mount is read-only.
bool
read_only
=
3
;
}
// DeviceSpec specifies a host device to mount into a container.
message
DeviceSpec
{
// Path of the device within the container.
string
container_path
=
1
;
// Path of the device on the host.
string
host_path
=
2
;
// 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.
string
permissions
=
3
;
}
pkg/kubelet/apis/deviceplugin/v1beta1/constants.go
0 → 100644
View file @
90c20981
/*
Copyright 2018 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
v1beta1
const
(
// Healthy means that the device is healty
Healthy
=
"Healthy"
// UnHealthy means that the device is unhealty
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"
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment