Skip to content

Commit e8a9c28

Browse files
authored
Merge pull request #95 from nojnhuh/1.33
Bump k8s.io dependencies to 1.33
2 parents e82f291 + 0560b84 commit e8a9c28

File tree

10 files changed

+155
-141
lines changed

10 files changed

+155
-141
lines changed

.github/workflows/e2e.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212
- name: Install Go
1313
uses: actions/setup-go@v4
1414
with:
15-
go-version: 1.23.1
15+
go-version: 1.24.2
1616
- name: Checkout code
1717
uses: actions/checkout@v3
1818
- name: Build
@@ -23,10 +23,10 @@ jobs:
2323
sudo snap install kubectl --classic
2424
- name: install kind
2525
run: |
26-
go install sigs.k8s.io/kind@v0.24.0
26+
go install sigs.k8s.io/kind@v0.27.0
2727
- name: Setup e2e
2828
run: make setup-e2e
2929
- name: run e2e test
3030
run: make test-e2e
3131
- name: teardown e2e test
32-
run: make teardown-e2e
32+
run: make teardown-e2e

.github/workflows/tests.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ jobs:
99
test:
1010
strategy:
1111
matrix:
12-
version: ['1.23.1' ]
12+
version: ['1.24.2' ]
1313
platform: [ ubuntu-latest, macos-latest ]
1414
runs-on: ${{ matrix.platform }}
1515
steps:

cmd/dra-example-kubeletplugin/driver.go

Lines changed: 54 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -19,22 +19,21 @@ package main
1919
import (
2020
"context"
2121
"fmt"
22+
"maps"
2223

23-
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
24+
resourceapi "k8s.io/api/resource/v1beta1"
25+
"k8s.io/apimachinery/pkg/types"
2426
coreclientset "k8s.io/client-go/kubernetes"
2527
"k8s.io/dynamic-resource-allocation/kubeletplugin"
28+
"k8s.io/dynamic-resource-allocation/resourceslice"
2629
"k8s.io/klog/v2"
2730

28-
drapbv1 "k8s.io/kubelet/pkg/apis/dra/v1beta1"
29-
3031
"sigs.k8s.io/dra-example-driver/pkg/consts"
3132
)
3233

33-
var _ drapbv1.DRAPluginServer = &driver{}
34-
3534
type driver struct {
3635
client coreclientset.Interface
37-
plugin kubeletplugin.DRAPlugin
36+
helper *kubeletplugin.Helper
3837
state *DeviceState
3938
}
4039

@@ -49,87 +48,93 @@ func NewDriver(ctx context.Context, config *Config) (*driver, error) {
4948
}
5049
driver.state = state
5150

52-
plugin, err := kubeletplugin.Start(
51+
helper, err := kubeletplugin.Start(
5352
ctx,
54-
[]any{driver},
53+
driver,
5554
kubeletplugin.KubeClient(config.coreclient),
5655
kubeletplugin.NodeName(config.flags.nodeName),
5756
kubeletplugin.DriverName(consts.DriverName),
58-
kubeletplugin.RegistrarSocketPath(PluginRegistrationPath),
59-
kubeletplugin.PluginSocketPath(DriverPluginSocketPath),
60-
kubeletplugin.KubeletPluginSocketPath(DriverPluginSocketPath))
57+
)
6158
if err != nil {
6259
return nil, err
6360
}
64-
driver.plugin = plugin
61+
driver.helper = helper
6562

66-
var resources kubeletplugin.Resources
67-
for _, device := range state.allocatable {
68-
resources.Devices = append(resources.Devices, device)
63+
devices := make([]resourceapi.Device, 0, len(state.allocatable))
64+
for device := range maps.Values(state.allocatable) {
65+
devices = append(devices, device)
66+
}
67+
resources := resourceslice.DriverResources{
68+
Pools: map[string]resourceslice.Pool{
69+
config.flags.nodeName: {
70+
Slices: []resourceslice.Slice{
71+
{
72+
Devices: devices,
73+
},
74+
},
75+
},
76+
},
6977
}
7078

71-
if err := plugin.PublishResources(ctx, resources); err != nil {
79+
if err := helper.PublishResources(ctx, resources); err != nil {
7280
return nil, err
7381
}
7482

7583
return driver, nil
7684
}
7785

7886
func (d *driver) Shutdown(ctx context.Context) error {
79-
d.plugin.Stop()
87+
d.helper.Stop()
8088
return nil
8189
}
8290

83-
func (d *driver) NodePrepareResources(ctx context.Context, req *drapbv1.NodePrepareResourcesRequest) (*drapbv1.NodePrepareResourcesResponse, error) {
84-
klog.Infof("NodePrepareResource is called: number of claims: %d", len(req.Claims))
85-
preparedResources := &drapbv1.NodePrepareResourcesResponse{Claims: map[string]*drapbv1.NodePrepareResourceResponse{}}
91+
func (d *driver) PrepareResourceClaims(ctx context.Context, claims []*resourceapi.ResourceClaim) (map[types.UID]kubeletplugin.PrepareResult, error) {
92+
klog.Infof("PrepareResourceClaims is called: number of claims: %d", len(claims))
93+
result := make(map[types.UID]kubeletplugin.PrepareResult)
8694

87-
for _, claim := range req.Claims {
88-
preparedResources.Claims[claim.UID] = d.nodePrepareResource(ctx, claim)
95+
for _, claim := range claims {
96+
result[claim.UID] = d.prepareResourceClaim(ctx, claim)
8997
}
9098

91-
return preparedResources, nil
99+
return result, nil
92100
}
93101

94-
func (d *driver) nodePrepareResource(ctx context.Context, claim *drapbv1.Claim) *drapbv1.NodePrepareResourceResponse {
95-
resourceClaim, err := d.client.ResourceV1beta1().ResourceClaims(claim.Namespace).Get(
96-
ctx,
97-
claim.Name,
98-
metav1.GetOptions{})
102+
func (d *driver) prepareResourceClaim(_ context.Context, claim *resourceapi.ResourceClaim) kubeletplugin.PrepareResult {
103+
preparedPBs, err := d.state.Prepare(claim)
99104
if err != nil {
100-
return &drapbv1.NodePrepareResourceResponse{
101-
Error: fmt.Sprintf("failed to fetch ResourceClaim %s in namespace %s", claim.Name, claim.Namespace),
105+
return kubeletplugin.PrepareResult{
106+
Err: fmt.Errorf("error preparing devices for claim %v: %w", claim.UID, err),
102107
}
103108
}
104-
105-
prepared, err := d.state.Prepare(resourceClaim)
106-
if err != nil {
107-
return &drapbv1.NodePrepareResourceResponse{
108-
Error: fmt.Sprintf("error preparing devices for claim %v: %v", claim.UID, err),
109-
}
109+
var prepared []kubeletplugin.Device
110+
for _, preparedPB := range preparedPBs {
111+
prepared = append(prepared, kubeletplugin.Device{
112+
Requests: preparedPB.GetRequestNames(),
113+
PoolName: preparedPB.GetPoolName(),
114+
DeviceName: preparedPB.GetDeviceName(),
115+
CDIDeviceIDs: preparedPB.GetCDIDeviceIDs(),
116+
})
110117
}
111118

112119
klog.Infof("Returning newly prepared devices for claim '%v': %v", claim.UID, prepared)
113-
return &drapbv1.NodePrepareResourceResponse{Devices: prepared}
120+
return kubeletplugin.PrepareResult{Devices: prepared}
114121
}
115122

116-
func (d *driver) NodeUnprepareResources(ctx context.Context, req *drapbv1.NodeUnprepareResourcesRequest) (*drapbv1.NodeUnprepareResourcesResponse, error) {
117-
klog.Infof("NodeUnPrepareResource is called: number of claims: %d", len(req.Claims))
118-
unpreparedResources := &drapbv1.NodeUnprepareResourcesResponse{Claims: map[string]*drapbv1.NodeUnprepareResourceResponse{}}
123+
func (d *driver) UnprepareResourceClaims(ctx context.Context, claims []kubeletplugin.NamespacedObject) (map[types.UID]error, error) {
124+
klog.Infof("UnprepareResourceClaims is called: number of claims: %d", len(claims))
125+
result := make(map[types.UID]error)
119126

120-
for _, claim := range req.Claims {
121-
unpreparedResources.Claims[claim.UID] = d.nodeUnprepareResource(ctx, claim)
127+
for _, claim := range claims {
128+
result[claim.UID] = d.unprepareResourceClaim(ctx, claim)
122129
}
123130

124-
return unpreparedResources, nil
131+
return result, nil
125132
}
126133

127-
func (d *driver) nodeUnprepareResource(ctx context.Context, claim *drapbv1.Claim) *drapbv1.NodeUnprepareResourceResponse {
128-
if err := d.state.Unprepare(claim.UID); err != nil {
129-
return &drapbv1.NodeUnprepareResourceResponse{
130-
Error: fmt.Sprintf("error unpreparing devices for claim %v: %v", claim.UID, err),
131-
}
134+
func (d *driver) unprepareResourceClaim(_ context.Context, claim kubeletplugin.NamespacedObject) error {
135+
if err := d.state.Unprepare(string(claim.UID)); err != nil {
136+
return fmt.Errorf("error unpreparing devices for claim %v: %w", claim.UID, err)
132137
}
133138

134-
return &drapbv1.NodeUnprepareResourceResponse{}
139+
return nil
135140
}

cmd/dra-example-kubeletplugin/main.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,7 @@ import (
3333
)
3434

3535
const (
36-
PluginRegistrationPath = "/var/lib/kubelet/plugins_registry/" + consts.DriverName + ".sock"
3736
DriverPluginPath = "/var/lib/kubelet/plugins/" + consts.DriverName
38-
DriverPluginSocketPath = DriverPluginPath + "/plugin.sock"
3937
DriverPluginCheckpointFile = "checkpoint.json"
4038
)
4139

common.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
GOLANG_VERSION ?= 1.23.1
15+
GOLANG_VERSION ?= 1.24.2
1616

1717
DRIVER_NAME := dra-example-driver
1818
MODULE := sigs.k8s.io/$(DRIVER_NAME)

demo/scripts/common.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ SCRIPTS_DIR="$(cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd)"
3636

3737
# The kubernetes tag to build the kind cluster from
3838
# From ${KIND_K8S_REPO}/tags
39-
: ${KIND_K8S_TAG:="v1.32.0"}
39+
: ${KIND_K8S_TAG:="v1.33.0"}
4040

4141
# At present, kind has a new enough node image that we don't need to build our
4242
# own. This won't always be true and we may need to set the variable below to

deployments/helm/dra-example-driver/Chart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,4 @@ version: 0.0.0-dev
2525
# It is recommended to use it with quotes.
2626
appVersion: "v0.1.0"
2727

28-
kubeVersion: "1.32.x"
28+
kubeVersion: ">=1.32.0-0"

go.mod

Lines changed: 30 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,22 @@
11
module sigs.k8s.io/dra-example-driver
22

3-
go 1.23.1
3+
go 1.24.0
4+
5+
toolchain go1.24.2
46

57
require (
68
github.com/google/uuid v1.6.0
79
github.com/spf13/pflag v1.0.5
8-
github.com/stretchr/testify v1.9.0
10+
github.com/stretchr/testify v1.10.0
911
github.com/urfave/cli/v2 v2.25.3
10-
k8s.io/api v0.32.0
11-
k8s.io/apimachinery v0.32.0
12-
k8s.io/client-go v0.32.0
13-
k8s.io/component-base v0.32.0
14-
k8s.io/dynamic-resource-allocation v0.32.0
12+
k8s.io/api v0.33.0
13+
k8s.io/apimachinery v0.33.0
14+
k8s.io/client-go v0.33.0
15+
k8s.io/component-base v0.33.0
16+
k8s.io/dynamic-resource-allocation v0.33.0
1517
k8s.io/klog/v2 v2.130.1
16-
k8s.io/kubelet v0.32.0
17-
k8s.io/kubernetes v1.32.0
18+
k8s.io/kubelet v0.33.0
19+
k8s.io/kubernetes v1.33.0
1820
k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738
1921
tags.cncf.io/container-device-interface v0.8.0
2022
tags.cncf.io/container-device-interface/specs-go v0.8.0
@@ -35,10 +37,8 @@ require (
3537
github.com/go-openapi/jsonreference v0.20.2 // indirect
3638
github.com/go-openapi/swag v0.23.0 // indirect
3739
github.com/gogo/protobuf v1.3.2 // indirect
38-
github.com/golang/protobuf v1.5.4 // indirect
39-
github.com/google/gnostic-models v0.6.8 // indirect
40-
github.com/google/go-cmp v0.6.0 // indirect
41-
github.com/google/gofuzz v1.2.0 // indirect
40+
github.com/google/gnostic-models v0.6.9 // indirect
41+
github.com/google/go-cmp v0.7.0 // indirect
4242
github.com/inconshreveable/mousetrap v1.1.0 // indirect
4343
github.com/josharian/intern v1.0.0 // indirect
4444
github.com/json-iterator/go v1.1.12 // indirect
@@ -50,34 +50,36 @@ require (
5050
github.com/opencontainers/runtime-tools v0.9.1-0.20221107090550-2e043c6bd626 // indirect
5151
github.com/pkg/errors v0.9.1 // indirect
5252
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
53-
github.com/prometheus/client_golang v1.19.1 // indirect
53+
github.com/prometheus/client_golang v1.22.0 // indirect
5454
github.com/prometheus/client_model v0.6.1 // indirect
55-
github.com/prometheus/common v0.55.0 // indirect
55+
github.com/prometheus/common v0.62.0 // indirect
5656
github.com/prometheus/procfs v0.15.1 // indirect
5757
github.com/russross/blackfriday/v2 v2.1.0 // indirect
5858
github.com/spf13/cobra v1.8.1 // indirect
5959
github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635 // indirect
6060
github.com/x448/float16 v0.8.4 // indirect
6161
github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect
62-
go.opentelemetry.io/otel v1.28.0 // indirect
63-
go.opentelemetry.io/otel/trace v1.28.0 // indirect
62+
go.etcd.io/etcd/client/pkg/v3 v3.5.21 // indirect
63+
go.opentelemetry.io/otel v1.33.0 // indirect
64+
go.opentelemetry.io/otel/trace v1.33.0 // indirect
6465
go.uber.org/multierr v1.11.0 // indirect
6566
go.uber.org/zap v1.27.0 // indirect
6667
golang.org/x/mod v0.21.0 // indirect
67-
golang.org/x/net v0.30.0 // indirect
68-
golang.org/x/oauth2 v0.23.0 // indirect
69-
golang.org/x/sys v0.26.0 // indirect
70-
golang.org/x/term v0.25.0 // indirect
71-
golang.org/x/text v0.19.0 // indirect
72-
golang.org/x/time v0.7.0 // indirect
73-
google.golang.org/genproto/googleapis/rpc v0.0.0-20240826202546-f6391c0de4c7 // indirect
74-
google.golang.org/grpc v1.65.0 // indirect
75-
google.golang.org/protobuf v1.35.1 // indirect
68+
golang.org/x/net v0.38.0 // indirect
69+
golang.org/x/oauth2 v0.27.0 // indirect
70+
golang.org/x/sys v0.31.0 // indirect
71+
golang.org/x/term v0.30.0 // indirect
72+
golang.org/x/text v0.23.0 // indirect
73+
golang.org/x/time v0.9.0 // indirect
74+
google.golang.org/genproto/googleapis/rpc v0.0.0-20241209162323-e6fa225c2576 // indirect
75+
google.golang.org/grpc v1.68.1 // indirect
76+
google.golang.org/protobuf v1.36.5 // indirect
7677
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
7778
gopkg.in/inf.v0 v0.9.1 // indirect
7879
gopkg.in/yaml.v3 v3.0.1 // indirect
79-
k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f // indirect
80+
k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff // indirect
8081
sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 // indirect
81-
sigs.k8s.io/structured-merge-diff/v4 v4.4.2 // indirect
82+
sigs.k8s.io/randfill v1.0.0 // indirect
83+
sigs.k8s.io/structured-merge-diff/v4 v4.6.0 // indirect
8284
sigs.k8s.io/yaml v1.4.0 // indirect
8385
)

0 commit comments

Comments
 (0)