Skip to content

Commit 2b2fddc

Browse files
authored
Merge pull request #52 from elezar/update-cdi
Update CDI specification to v0.8.0
2 parents b0e73ce + d6b23a9 commit 2b2fddc

File tree

4 files changed

+22
-34
lines changed

4 files changed

+22
-34
lines changed

cmd/dra-example-kubeletplugin/cdi.go

+12-18
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,9 @@ import (
2020
"fmt"
2121
"os"
2222

23-
cdiapi "github.com/container-orchestrated-devices/container-device-interface/pkg/cdi"
24-
cdispec "github.com/container-orchestrated-devices/container-device-interface/specs-go"
23+
cdiapi "tags.cncf.io/container-device-interface/pkg/cdi"
24+
cdiparser "tags.cncf.io/container-device-interface/pkg/parser"
25+
cdispec "tags.cncf.io/container-device-interface/specs-go"
2526
)
2627

2728
const (
@@ -33,30 +34,23 @@ const (
3334
)
3435

3536
type CDIHandler struct {
36-
registry cdiapi.Registry
37+
cache *cdiapi.Cache
3738
}
3839

3940
func NewCDIHandler(config *Config) (*CDIHandler, error) {
40-
registry := cdiapi.GetRegistry(
41+
cache, err := cdiapi.NewCache(
4142
cdiapi.WithSpecDirs(config.flags.cdiRoot),
4243
)
43-
44-
err := registry.Refresh()
4544
if err != nil {
46-
return nil, fmt.Errorf("unable to refresh the CDI registry: %v", err)
45+
return nil, fmt.Errorf("unable to create a new CDI cache: %w", err)
4746
}
48-
4947
handler := &CDIHandler{
50-
registry: registry,
48+
cache: cache,
5149
}
5250

5351
return handler, nil
5452
}
5553

56-
func (cdi *CDIHandler) GetDevice(device string) *cdiapi.Device {
57-
return cdi.registry.DeviceDB().GetDevice(device)
58-
}
59-
6054
func (cdi *CDIHandler) CreateCommonSpecFile() error {
6155
spec := &cdispec.Spec{
6256
Kind: cdiKind,
@@ -84,7 +78,7 @@ func (cdi *CDIHandler) CreateCommonSpecFile() error {
8478
return fmt.Errorf("failed to generate Spec name: %w", err)
8579
}
8680

87-
return cdi.registry.SpecDB().WriteSpec(spec, specName)
81+
return cdi.cache.WriteSpec(spec, specName)
8882
}
8983

9084
func (cdi *CDIHandler) CreateClaimSpecFile(claimUID string, devices PreparedDevices) error {
@@ -115,21 +109,21 @@ func (cdi *CDIHandler) CreateClaimSpecFile(claimUID string, devices PreparedDevi
115109
}
116110
spec.Version = minVersion
117111

118-
return cdi.registry.SpecDB().WriteSpec(spec, specName)
112+
return cdi.cache.WriteSpec(spec, specName)
119113
}
120114

121115
func (cdi *CDIHandler) DeleteClaimSpecFile(claimUID string) error {
122116
specName := cdiapi.GenerateTransientSpecName(cdiVendor, cdiClass, claimUID)
123-
return cdi.registry.SpecDB().RemoveSpec(specName)
117+
return cdi.cache.RemoveSpec(specName)
124118
}
125119

126120
func (cdi *CDIHandler) GetClaimDevices(devices []string) []string {
127121
cdiDevices := []string{
128-
cdiapi.QualifiedName(cdiVendor, cdiClass, cdiCommonDeviceName),
122+
cdiparser.QualifiedName(cdiVendor, cdiClass, cdiCommonDeviceName),
129123
}
130124

131125
for _, device := range devices {
132-
cdiDevice := cdiapi.QualifiedName(cdiVendor, cdiClass, device)
126+
cdiDevice := cdiparser.QualifiedName(cdiVendor, cdiClass, device)
133127
cdiDevices = append(cdiDevices, cdiDevice)
134128
}
135129

demo/scripts/kind-cluster-config.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ featureGates:
44
DynamicResourceAllocation: true
55
containerdConfigPatches:
66
# Enable CDI as described in
7-
# https://github.com/container-orchestrated-devices/container-device-interface#containerd-configuration
7+
# https://tags.cncf.io/container-device-interface#containerd-configuration
88
- |-
99
[plugins."io.containerd.grpc.v1.cri"]
1010
enable_cdi = true

go.mod

+3-5
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ replace (
1313
)
1414

1515
require (
16-
github.com/container-orchestrated-devices/container-device-interface v0.5.4
1716
github.com/google/uuid v1.6.0
1817
github.com/spf13/pflag v1.0.5
1918
github.com/urfave/cli/v2 v2.25.3
@@ -26,6 +25,8 @@ require (
2625
k8s.io/kubelet v0.0.0
2726
k8s.io/kubernetes v0.0.0-00010101000000-000000000000
2827
k8s.io/utils v0.0.0-20240711033017-18e509b52bc8
28+
tags.cncf.io/container-device-interface v0.8.0
29+
tags.cncf.io/container-device-interface/specs-go v0.8.0
2930
)
3031

3132
require (
@@ -55,10 +56,8 @@ require (
5556
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
5657
github.com/modern-go/reflect2 v1.0.2 // indirect
5758
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
58-
github.com/opencontainers/runc v1.1.13 // indirect
59-
github.com/opencontainers/runtime-spec v1.0.3-0.20220909204839-494a5a6aca78 // indirect
59+
github.com/opencontainers/runtime-spec v1.1.0 // indirect
6060
github.com/opencontainers/runtime-tools v0.9.1-0.20221107090550-2e043c6bd626 // indirect
61-
github.com/pkg/errors v0.9.1 // indirect
6261
github.com/prometheus/client_golang v1.19.1 // indirect
6362
github.com/prometheus/client_model v0.6.1 // indirect
6463
github.com/prometheus/common v0.55.0 // indirect
@@ -80,7 +79,6 @@ require (
8079
google.golang.org/genproto/googleapis/rpc v0.0.0-20240701130421-f6361c86f094 // indirect
8180
google.golang.org/grpc v1.65.0 // indirect
8281
google.golang.org/protobuf v1.34.2 // indirect
83-
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
8482
gopkg.in/inf.v0 v0.9.1 // indirect
8583
gopkg.in/yaml.v2 v2.4.0 // indirect
8684
gopkg.in/yaml.v3 v3.0.1 // indirect

go.sum

+6-10
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM
66
github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ=
77
github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
88
github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
9-
github.com/container-orchestrated-devices/container-device-interface v0.5.4 h1:PqQGqJqQttMP5oJ/qNGEg8JttlHqGY3xDbbcKb5T9E8=
10-
github.com/container-orchestrated-devices/container-device-interface v0.5.4/go.mod h1:DjE95rfPiiSmG7uVXtg0z6MnPm/Lx4wxKCIts0ZE0vg=
119
github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4=
1210
github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
1311
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
@@ -101,18 +99,14 @@ github.com/onsi/ginkgo/v2 v2.19.0 h1:9Cnnf7UHo57Hy3k6/m5k3dRfGTMXGvxhHFvkDTCTpvA
10199
github.com/onsi/ginkgo/v2 v2.19.0/go.mod h1:rlwLi9PilAFJ8jCg9UE1QP6VBpd6/xj3SRC0d6TU0To=
102100
github.com/onsi/gomega v1.33.1 h1:dsYjIxxSR755MDmKVsaFQTE22ChNBcuuTWgkUDSubOk=
103101
github.com/onsi/gomega v1.33.1/go.mod h1:U4R44UsT+9eLIaYRB2a5qajjtQYn0hauxvRm16AVYg0=
104-
github.com/opencontainers/runc v1.1.13 h1:98S2srgG9vw0zWcDpFMn5TRrh8kLxa/5OFUstuUhmRs=
105-
github.com/opencontainers/runc v1.1.13/go.mod h1:R016aXacfp/gwQBYw2FDGa9m+n6atbLWrYY8hNMT/sA=
106102
github.com/opencontainers/runtime-spec v1.0.3-0.20220825212826-86290f6a00fb/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
107-
github.com/opencontainers/runtime-spec v1.0.3-0.20220909204839-494a5a6aca78 h1:R5M2qXZiK/mWPMT4VldCOiSL9HIAMuxQZWdG0CSM5+4=
108-
github.com/opencontainers/runtime-spec v1.0.3-0.20220909204839-494a5a6aca78/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
103+
github.com/opencontainers/runtime-spec v1.1.0 h1:HHUyrt9mwHUjtasSbXSMvs4cyFxh+Bll4AjJ9odEGpg=
104+
github.com/opencontainers/runtime-spec v1.1.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
109105
github.com/opencontainers/runtime-tools v0.9.1-0.20221107090550-2e043c6bd626 h1:DmNGcqH3WDbV5k8OJ+esPWbqUOX5rMLR2PMvziDMJi0=
110106
github.com/opencontainers/runtime-tools v0.9.1-0.20221107090550-2e043c6bd626/go.mod h1:BRHJJd0E+cx42OybVYSgUvZmU0B8P9gZuRXlZUP7TKI=
111107
github.com/opencontainers/selinux v1.9.1/go.mod h1:2i0OySw99QjzBBQByd1Gr9gSjvuho1lHsJxIJ3gGbJI=
112108
github.com/opencontainers/selinux v1.11.0 h1:+5Zbo97w3Lbmb3PeqQtpmTkMwsW5nRI3YaLpt7tQ7oU=
113109
github.com/opencontainers/selinux v1.11.0/go.mod h1:E5dMC3VPuVvVHDYmi78qvhJp8+M586T4DlDRYpFkyec=
114-
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
115-
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
116110
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
117111
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
118112
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
@@ -222,8 +216,6 @@ google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWn
222216
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
223217
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
224218
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
225-
gopkg.in/evanphx/json-patch.v4 v4.12.0 h1:n6jtcsulIzXPJaxegRbvFNNrZDjbij7ny3gmSPG+6V4=
226-
gopkg.in/evanphx/json-patch.v4 v4.12.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M=
227219
gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
228220
gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
229221
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
@@ -244,3 +236,7 @@ sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+s
244236
sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08=
245237
sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E=
246238
sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY=
239+
tags.cncf.io/container-device-interface v0.8.0 h1:8bCFo/g9WODjWx3m6EYl3GfUG31eKJbaggyBDxEldRc=
240+
tags.cncf.io/container-device-interface v0.8.0/go.mod h1:Apb7N4VdILW0EVdEMRYXIDVRZfNJZ+kmEUss2kRRQ6Y=
241+
tags.cncf.io/container-device-interface/specs-go v0.8.0 h1:QYGFzGxvYK/ZLMrjhvY0RjpUavIn4KcmRmVP/JjdBTA=
242+
tags.cncf.io/container-device-interface/specs-go v0.8.0/go.mod h1:BhJIkjjPh4qpys+qm4DAYtUyryaTDg9zris+AczXyws=

0 commit comments

Comments
 (0)