Skip to content

Commit 70a0089

Browse files
author
Kubernetes Submit Queue
authored
Merge pull request kubernetes#68200 from RenaudWasTaken/pluginwatcher-beta
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions here: https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md. KubeletPluginsWatcher feature is beta in 1.12 release *What this PR does / why we need it:* Graduates DevicePlugins feature to beta. *Which issue(s) this PR fixes:* Related but does not fix: kubernetes/enhancements#595 as well as kubernetes#65773 *Special notes for your reviewer:* Includes upgrading the gRPC pluginwatcher API to beta. Based on the [device plugin model](kubernetes#59588). *Depends on kubernetes#64621 being merged* Release note: ```release-note KubeletPluginsWatcher feature graduates to beta. ``` /sig node /sig storage /cc @vladimirvivien @sbezverk @vikaschoudhary16 @saad-ali @vishh @jiayingz
2 parents 309ac5b + add6e0d commit 70a0089

File tree

12 files changed

+1197
-16
lines changed

12 files changed

+1197
-16
lines changed

hack/.golint_failures

+1
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,7 @@ pkg/kubelet/apis/cri/testing
186186
pkg/kubelet/apis/deviceplugin/v1alpha
187187
pkg/kubelet/apis/deviceplugin/v1beta1
188188
pkg/kubelet/apis/pluginregistration/v1alpha1
189+
pkg/kubelet/apis/pluginregistration/v1beta1
189190
pkg/kubelet/cadvisor
190191
pkg/kubelet/cadvisor/testing
191192
pkg/kubelet/checkpoint

hack/update-generated-kubelet-plugin-registration-dockerized.sh

+4-2
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,13 @@ set -o nounset
1919
set -o pipefail
2020

2121
KUBE_ROOT="$(cd "$(dirname "${BASH_SOURCE}")/../" && pwd -P)"
22-
KUBELET_PLUGIN_REGISTRATION_ROOT="${KUBE_ROOT}/pkg/kubelet/apis/pluginregistration/v1alpha1/"
22+
KUBELET_PLUGIN_REGISTRATION_V1ALPHA="${KUBE_ROOT}/pkg/kubelet/apis/pluginregistration/v1alpha1/"
23+
KUBELET_PLUGIN_REGISTRATION_V1BETA="${KUBE_ROOT}/pkg/kubelet/apis/pluginregistration/v1beta1/"
2324
KUBELET_EXAMPLE_PLUGIN_V1BETA1="${KUBE_ROOT}/pkg/kubelet/util/pluginwatcher/example_plugin_apis/v1beta1/"
2425
KUBELET_EXAMPLE_PLUGIN_V1BETA2="${KUBE_ROOT}/pkg/kubelet/util/pluginwatcher/example_plugin_apis/v1beta2/"
2526

2627
source "${KUBE_ROOT}/hack/lib/protoc.sh"
27-
kube::protoc::generate_proto ${KUBELET_PLUGIN_REGISTRATION_ROOT}
28+
kube::protoc::generate_proto ${KUBELET_PLUGIN_REGISTRATION_V1ALPHA}
29+
kube::protoc::generate_proto ${KUBELET_PLUGIN_REGISTRATION_V1BETA}
2830
kube::protoc::generate_proto ${KUBELET_EXAMPLE_PLUGIN_V1BETA1}
2931
kube::protoc::generate_proto ${KUBELET_EXAMPLE_PLUGIN_V1BETA2}

hack/verify-generated-kubelet-plugin-registration.sh

+16-5
Original file line numberDiff line numberDiff line change
@@ -20,20 +20,31 @@ set -o pipefail
2020

2121
KUBE_ROOT=$(dirname "${BASH_SOURCE}")/..
2222
ERROR="Kubelet Plugin Registration api is out of date. Please run hack/update-generated-kubelet-plugin-registration.sh"
23-
KUBELET_PLUGIN_REGISTRATION_ROOT="${KUBE_ROOT}/pkg/kubelet/apis/pluginregistration/v1alpha1/"
23+
KUBELET_PLUGIN_REGISTRATION_V1ALPHA="${KUBE_ROOT}/pkg/kubelet/apis/pluginregistration/v1alpha1/"
24+
KUBELET_PLUGIN_REGISTRATION_V1BETA="${KUBE_ROOT}/pkg/kubelet/apis/pluginregistration/v1beta1/"
2425

2526
source "${KUBE_ROOT}/hack/lib/protoc.sh"
2627
kube::golang::setup_env
2728

2829
function cleanup {
29-
rm -rf ${KUBELET_PLUGIN_REGISTRATION_ROOT}/_tmp/
30+
rm -rf ${KUBELET_PLUGIN_REGISTRATION_V1ALPHA}/_tmp/
31+
rm -rf ${KUBELET_PLUGIN_REGISTRATION_V1BETA}/_tmp/
3032
}
3133

3234
trap cleanup EXIT
3335

34-
mkdir -p ${KUBELET_PLUGIN_REGISTRATION_ROOT}/_tmp
35-
cp ${KUBELET_PLUGIN_REGISTRATION_ROOT}/api.pb.go ${KUBELET_PLUGIN_REGISTRATION_ROOT}/_tmp/
36+
mkdir -p ${KUBELET_PLUGIN_REGISTRATION_V1ALPHA}/_tmp
37+
mkdir -p ${KUBELET_PLUGIN_REGISTRATION_V1BETA}/_tmp
3638

39+
cp ${KUBELET_PLUGIN_REGISTRATION_V1ALPHA}/api.pb.go ${KUBELET_PLUGIN_REGISTRATION_V1ALPHA}/_tmp/
40+
cp ${KUBELET_PLUGIN_REGISTRATION_V1BETA}/api.pb.go ${KUBELET_PLUGIN_REGISTRATION_V1BETA}/_tmp/
41+
42+
# Check V1Alpha
43+
KUBE_VERBOSE=3 "${KUBE_ROOT}/hack/update-generated-kubelet-plugin-registration.sh"
44+
kube::protoc::diff "${KUBELET_PLUGIN_REGISTRATION_V1ALPHA}/api.pb.go" "${KUBELET_PLUGIN_REGISTRATION_V1ALPHA}/_tmp/api.pb.go" ${ERROR}
45+
echo "Generated Kubelet Plugin Registration api is up to date."
46+
47+
# Check V1Beta
3748
KUBE_VERBOSE=3 "${KUBE_ROOT}/hack/update-generated-kubelet-plugin-registration.sh"
38-
kube::protoc::diff "${KUBELET_PLUGIN_REGISTRATION_ROOT}/api.pb.go" "${KUBELET_PLUGIN_REGISTRATION_ROOT}/_tmp/api.pb.go" ${ERROR}
49+
kube::protoc::diff "${KUBELET_PLUGIN_REGISTRATION_V1BETA}/api.pb.go" "${KUBELET_PLUGIN_REGISTRATION_V1BETA}/_tmp/api.pb.go" ${ERROR}
3950
echo "Generated Kubelet Plugin Registration api is up to date."

pkg/features/kube_features.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -442,7 +442,7 @@ var defaultKubernetesFeatureGates = map[utilfeature.Feature]utilfeature.FeatureS
442442
BalanceAttachedNodeVolumes: {Default: false, PreRelease: utilfeature.Alpha},
443443
PodReadinessGates: {Default: true, PreRelease: utilfeature.Beta},
444444
VolumeSubpathEnvExpansion: {Default: false, PreRelease: utilfeature.Alpha},
445-
KubeletPluginsWatcher: {Default: false, PreRelease: utilfeature.Alpha},
445+
KubeletPluginsWatcher: {Default: true, PreRelease: utilfeature.Beta},
446446
ResourceQuotaScopeSelectors: {Default: true, PreRelease: utilfeature.Beta},
447447
CSIBlockVolume: {Default: false, PreRelease: utilfeature.Alpha},
448448
RuntimeClass: {Default: false, PreRelease: utilfeature.Alpha},

pkg/kubelet/apis/BUILD

+1
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ filegroup(
3838
"//pkg/kubelet/apis/deviceplugin/v1alpha:all-srcs",
3939
"//pkg/kubelet/apis/deviceplugin/v1beta1:all-srcs",
4040
"//pkg/kubelet/apis/pluginregistration/v1alpha1:all-srcs",
41+
"//pkg/kubelet/apis/pluginregistration/v1beta1:all-srcs",
4142
"//pkg/kubelet/apis/stats/v1alpha1:all-srcs",
4243
],
4344
tags = ["automanaged"],

pkg/kubelet/apis/pluginregistration/v1alpha1/api.proto

+6-6
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,12 @@ message PluginInfo {
2222
// should follow the extended resource name convention.
2323
// For CSI, this is the CSI driver registrar name.
2424
string name = 2;
25-
// Optional endpoint location. If found set by Kubelet component,
26-
// Kubelet component will use this endpoint for specific requests.
27-
// This allows the plugin to register using one endpoint and possibly use
28-
// a different socket for control operations. CSI uses this model to delegate
29-
// its registration external from the plugin.
30-
string endpoint = 3;
25+
// Optional endpoint location. If found set by Kubelet component,
26+
// Kubelet component will use this endpoint for specific requests.
27+
// This allows the plugin to register using one endpoint and possibly use
28+
// a different socket for control operations. CSI uses this model to delegate
29+
// its registration external from the plugin.
30+
string endpoint = 3;
3131
// Plugin service API versions the plugin supports.
3232
// For DevicePlugin, this maps to the deviceplugin API versions the
3333
// plugin supports at the given socket.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package(default_visibility = ["//visibility:public"])
2+
3+
load(
4+
"@io_bazel_rules_go//go:def.bzl",
5+
"go_library",
6+
)
7+
8+
go_library(
9+
name = "go_default_library",
10+
srcs = [
11+
"api.pb.go",
12+
"constants.go",
13+
],
14+
importpath = "k8s.io/kubernetes/pkg/kubelet/apis/pluginregistration/v1beta1",
15+
deps = [
16+
"//vendor/github.com/gogo/protobuf/gogoproto:go_default_library",
17+
"//vendor/github.com/gogo/protobuf/proto:go_default_library",
18+
"//vendor/golang.org/x/net/context:go_default_library",
19+
"//vendor/google.golang.org/grpc:go_default_library",
20+
],
21+
)
22+
23+
filegroup(
24+
name = "package-srcs",
25+
srcs = glob(["**"]),
26+
tags = ["automanaged"],
27+
visibility = ["//visibility:private"],
28+
)
29+
30+
filegroup(
31+
name = "all-srcs",
32+
srcs = [":package-srcs"],
33+
tags = ["automanaged"],
34+
)

0 commit comments

Comments
 (0)