Skip to content

Commit 96d9e64

Browse files
authored
Merge pull request #365 from rojkov/release-0.18
move to Kubernetes v1.18.2 API
2 parents 0a7b6a7 + 8fc187f commit 96d9e64

40 files changed

+376
-261
lines changed

DEVEL.md

Lines changed: 58 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ in an infinite loop. A `Scan()` implementation scans the host for devices and
3232
sends all found devices to a `deviceplugin.Notifier` instance. The
3333
`deviceplugin.Notifier` is implemented and provided by the `deviceplugin`
3434
package itself. The found devices are organized in an instance of
35-
`deviceplugin.DeviceTree` object. The object is filled in with its
35+
`deviceplugin.DeviceTree` object. The object is filled in with its
3636
`AddDevice()` method:
3737

3838
```go
@@ -56,8 +56,8 @@ func (dp *devicePlugin) Scan(notifier deviceplugin.Notifier) error {
5656
}
5757
```
5858

59-
Optionally, your device plugin may also implement the
60-
`deviceplugin.PostAllocator` interface. If implemented, its method
59+
Optionally, your device plugin may also implement the
60+
`deviceplugin.PostAllocator` interface. If implemented, its method
6161
`PostAllocate()` modifies `pluginapi.AllocateResponse` responses just
6262
before they are sent to `kubelet`. To see an example, refer to the FPGA
6363
plugin which implements this interface to annotate its responses.
@@ -120,3 +120,58 @@ Otherwise, they can be logged as simple values:
120120
```golang
121121
klog.Warningf("Example of a warning due to an external error: %v", err)
122122
```
123+
124+
How to build against a newer version of Kubernetes
125+
==================================================
126+
127+
First you need to update module dependencies. The easiest way is to use the
128+
script copied from https://github.com/kubernetes/kubernetes/issues/79384#issuecomment-521493597:
129+
130+
```bash
131+
#!/bin/sh
132+
set -euo pipefail
133+
134+
VERSION=${1#"v"}
135+
if [ -z "$VERSION" ]; then
136+
echo "Must specify version!"
137+
exit 1
138+
fi
139+
MODS=($(
140+
curl -sS https://github.com/raw/kubernetes/kubernetes/v${VERSION}/go.mod |
141+
sed -n 's|.*k8s.io/\(.*\) => ./staging/src/k8s.io/.*|k8s.io/\1|p'
142+
))
143+
for MOD in "${MODS[@]}"; do
144+
V=$(
145+
go mod download -json "${MOD}@kubernetes-${VERSION}" |
146+
sed -n 's|.*"Version": "\(.*\)".*|\1|p'
147+
)
148+
go mod edit "-replace=${MOD}=${MOD}@${V}"
149+
done
150+
go get "k8s.io/kubernetes@v${VERSION}"
151+
```
152+
153+
Just run it inside the repo's root, e.g.
154+
155+
```
156+
$ ./k8s_gomod_update.sh 1.18.1
157+
```
158+
159+
Then run the code generator script which can be found at
160+
https://github.com/kubernetes/code-generator/blob/master/generate-groups.sh
161+
162+
```
163+
$ generate-groups.sh all github.com/intel/intel-device-plugins-for-kubernetes/pkg/client \
164+
github.com/intel/intel-device-plugins-for-kubernetes/pkg/apis \
165+
fpga.intel.com:v1
166+
```
167+
168+
Please note that the script (at least of v0.18.2-beta.0) expects the device plugins
169+
repo to be located under $GOPATH/src.
170+
171+
Finally run
172+
173+
```
174+
$ make test
175+
```
176+
177+
and fix all new compilation issues.

build/boilerplate/boilerplate.go.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright 2018 Intel Corporation. All Rights Reserved.
1+
// Copyright 2020 Intel Corporation. All Rights Reserved.
22
//
33
// Licensed under the Apache License, Version 2.0 (the "License");
44
// you may not use this file except in compliance with the License.

cmd/fpga_plugin/mode.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package main
22

33
import (
4+
"context"
45
"fmt"
56

67
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -31,7 +32,7 @@ func getModeOverrideFromCluster(nodeName, kubeConfig, master, mode string) (stri
3132
return mode, err
3233
}
3334

34-
node, err := clientset.CoreV1().Nodes().Get(nodeName, metav1.GetOptions{})
35+
node, err := clientset.CoreV1().Nodes().Get(context.TODO(), nodeName, metav1.GetOptions{})
3536
if err != nil {
3637
return mode, err
3738
}

cmd/qat_plugin/kerneldrv/kerneldrv_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -99,9 +99,9 @@ func TestGetOnlineDevices(t *testing.T) {
9999
for _, tt := range tcases {
100100
t.Run(tt.name, func(t *testing.T) {
101101
fcmd := fakeexec.FakeCmd{
102-
CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{
103-
func() ([]byte, error) {
104-
return []byte(tt.adfCtlOutput), tt.adfCtlError
102+
CombinedOutputScript: []fakeexec.FakeAction{
103+
func() ([]byte, []byte, error) {
104+
return []byte(tt.adfCtlOutput), []byte{}, tt.adfCtlError
105105
},
106106
},
107107
}

go.mod

Lines changed: 32 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -6,46 +6,45 @@ require (
66
github.com/fsnotify/fsnotify v1.4.7
77
github.com/go-ini/ini v1.46.0
88
github.com/google/gousb v0.0.0-20190812193832-18f4c1d8a750
9-
github.com/onsi/ginkgo v1.10.1
9+
github.com/onsi/ginkgo v1.11.0
1010
github.com/onsi/gomega v1.7.0
1111
github.com/pkg/errors v0.8.1
12-
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550 // indirect
13-
golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456
14-
google.golang.org/grpc v1.23.1
12+
golang.org/x/sys v0.0.0-20191022100944-742c48ecaeb7
13+
google.golang.org/grpc v1.26.0
1514
gopkg.in/ini.v1 v1.46.0 // indirect
16-
k8s.io/api v0.17.3
17-
k8s.io/apimachinery v0.17.3
18-
k8s.io/client-go v0.17.3
19-
k8s.io/component-base v0.17.3
15+
k8s.io/api v0.18.2
16+
k8s.io/apimachinery v0.18.2
17+
k8s.io/client-go v0.18.2
18+
k8s.io/component-base v0.18.2
2019
k8s.io/klog v1.0.0
2120
k8s.io/kubelet v0.17.3
22-
k8s.io/kubernetes v1.17.3
23-
k8s.io/utils v0.0.0-20191114184206-e782cd3c129f
21+
k8s.io/kubernetes v1.18.2
22+
k8s.io/utils v0.0.0-20200324210504-a9aa75ae1b89
2423
)
2524

2625
replace (
27-
k8s.io/api => k8s.io/api v0.17.3
28-
k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.17.3
29-
k8s.io/apimachinery => k8s.io/apimachinery v0.17.3
30-
k8s.io/apiserver => k8s.io/apiserver v0.17.3
31-
k8s.io/cli-runtime => k8s.io/cli-runtime v0.17.3
32-
k8s.io/client-go => k8s.io/client-go v0.17.3
33-
k8s.io/cloud-provider => k8s.io/cloud-provider v0.17.3
34-
k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.17.3
35-
k8s.io/code-generator => k8s.io/code-generator v0.17.3
36-
k8s.io/component-base => k8s.io/component-base v0.17.3
37-
k8s.io/cri-api => k8s.io/cri-api v0.17.3
38-
k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.17.3
39-
k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.17.3
40-
k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.17.3
41-
k8s.io/kube-proxy => k8s.io/kube-proxy v0.17.3
42-
k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.17.3
43-
k8s.io/kubectl => k8s.io/kubectl v0.17.3
44-
k8s.io/kubelet => k8s.io/kubelet v0.17.3
45-
k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.17.3
46-
k8s.io/metrics => k8s.io/metrics v0.17.3
26+
k8s.io/api => k8s.io/api v0.18.2
27+
k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.18.2
28+
k8s.io/apimachinery => k8s.io/apimachinery v0.18.3-beta.0
29+
k8s.io/apiserver => k8s.io/apiserver v0.18.2
30+
k8s.io/cli-runtime => k8s.io/cli-runtime v0.18.2
31+
k8s.io/client-go => k8s.io/client-go v0.18.2
32+
k8s.io/cloud-provider => k8s.io/cloud-provider v0.18.2
33+
k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.18.2
34+
k8s.io/code-generator => k8s.io/code-generator v0.18.3-beta.0
35+
k8s.io/component-base => k8s.io/component-base v0.18.2
36+
k8s.io/cri-api => k8s.io/cri-api v0.18.3-beta.0
37+
k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.18.2
38+
k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.18.2
39+
k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.18.2
40+
k8s.io/kube-proxy => k8s.io/kube-proxy v0.18.2
41+
k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.18.2
42+
k8s.io/kubectl => k8s.io/kubectl v0.18.2
43+
k8s.io/kubelet => k8s.io/kubelet v0.18.2
44+
k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.18.2
45+
k8s.io/metrics => k8s.io/metrics v0.18.2
4746
k8s.io/node-api => k8s.io/node-api v0.17.3
48-
k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.17.3
49-
k8s.io/sample-cli-plugin => k8s.io/sample-cli-plugin v0.17.3
50-
k8s.io/sample-controller => k8s.io/sample-controller v0.17.3
47+
k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.18.2
48+
k8s.io/sample-cli-plugin => k8s.io/sample-cli-plugin v0.18.2
49+
k8s.io/sample-controller => k8s.io/sample-controller v0.18.2
5150
)

0 commit comments

Comments
 (0)