Skip to content

Commit 559caa2

Browse files
committed
Revert "move packages related to v0.1.0 to the plugins/v010-adapter"
This reverts commit eb6476a. The old NRI client and types are still imported by containerd for the podsandbox sandbox controller and plugins are still invoked as part of setting up the pause container. Signed-off-by: Samuel Karp <samuelkarp@google.com>
1 parent eca0d2c commit 559caa2

File tree

10 files changed

+375
-30
lines changed

10 files changed

+375
-30
lines changed

README-v0.1.0.md

Lines changed: 110 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,110 @@
1-
original v0.1.0 CLI invoke style version of NRI has been moved
2-
[v0.1.0 docs](/plugins/v010-adapter/0.1.0/README.md)
1+
# nri - Node Resource Interface
2+
3+
*This version of NRI is supported through the included v010-adapter plugin.*
4+
5+
This project is a WIP for a new, CNI like, interface for managing resources on a node for Pods and Containers.
6+
7+
## Documentation
8+
9+
The basic interface, concepts and plugin design of the Container Network Interface (CNI) is an elegant way to handle multiple implementations of the network stack for containers.
10+
This concept can be used for additional interfaces to customize a container's runtime environment.
11+
This proposal covers a new interface for resource management on a node with a structured API and plugin design for containers.
12+
13+
## Lifecycle
14+
15+
The big selling point for CNI is that it has a structured interface for modifying the network namespace for a container.
16+
This is different from generic hooks as they lack a type safe API injected into the lifecycle of a container.
17+
The lifecycle point that CNI and NRI plugins will be injected into is the point between `Create` and `Start` of the container's init process.
18+
19+
`Create->NRI->Start`
20+
21+
## Configuration
22+
23+
Configuration is split into two parts. One is the payload that is specific to a plugin invocation while the second is the host level configuration and options that specify what plugins to run and provide additional configuration to a plugin.
24+
25+
### Filepath and Binaries
26+
27+
Plugin binary paths can be configured via the consumer but will default to `/opt/nri/bin`.
28+
Binaries are named with their type as the binary name, same as the CNI plugin naming scheme.
29+
30+
### Host Level Config
31+
32+
The config's default location will be `/etc/nri/resource.d/*.conf`.
33+
34+
```json
35+
{
36+
"version": "0.1",
37+
"plugins": [
38+
{
39+
"type": "konfine",
40+
"conf": {
41+
"systemReserved": [0, 1]
42+
}
43+
},
44+
{
45+
"type": "clearcfs"
46+
}
47+
]
48+
}
49+
```
50+
51+
### Input
52+
53+
Input to a plugin is provided via `STDIN` as a `json` payload.
54+
55+
```json
56+
{
57+
"version": "0.1",
58+
"state": "create",
59+
"id": "redis",
60+
"pid": 1234,
61+
"spec": {
62+
"resources": {},
63+
"cgroupsPath": "default/redis",
64+
"namespaces": {
65+
"pid": "/proc/44/ns/pid",
66+
"mount": "/proc/44/ns/mnt",
67+
"net": "/proc/44/ns/net"
68+
},
69+
"annotations": {
70+
"qos.class": "ls"
71+
}
72+
}
73+
}
74+
```
75+
76+
### Output
77+
78+
```json
79+
{
80+
"version": "0.1",
81+
"state": "create",
82+
"id": "redis",
83+
"pid": 1234,
84+
"cgroupsPath": "qos-ls/default/redis"
85+
}
86+
```
87+
88+
## Commands
89+
90+
* Invoke - provides invocations into different lifecycle changes of a container
91+
- states: `setup|pause|resume|update|delete`
92+
93+
## Packages
94+
95+
A Go based API and client package will be created for both producers of plugins and consumers, commonly being the container runtime (containerd).
96+
97+
### Sample Plugin
98+
99+
* [clearcfs](examples/clearcfs/main.go)
100+
101+
## Project details
102+
103+
nri is a containerd sub-project, licensed under the [Apache 2.0 license](./LICENSE).
104+
As a containerd sub-project, you will find the:
105+
106+
* [Project governance](https://github.com/containerd/project/blob/main/GOVERNANCE.md),
107+
* [Maintainers](https://github.com/containerd/project/blob/main/MAINTAINERS),
108+
* and [Contributing guidelines](https://github.com/containerd/project/blob/main/CONTRIBUTING.md)
109+
110+
information in our [`containerd/project`](https://github.com/containerd/project) repository.

README.md

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,25 @@ The goal is to enable NRI support in the most commonly used OCI runtimes,
2323
[containerd](https://github.com/containerd/containerd) and
2424
[CRI-O](https://github.com/cri-o/cri-o).
2525

26-
### Plugins
27-
Plugins in NRI are daemon-like entities. A single instance of a plugin is
28-
responsible for handling the full stream of NRI events and requests.
29-
A unix-domain socket is used as the transport for communication.
26+
## Background
27+
28+
The revisited API is a major rewrite of NRI. It changes the scope of NRI
29+
and how it gets integrated into runtimes. It reworks how plugins are
30+
implemented, how they communicate with the runtime, and what kind of
31+
changes they can make to containers.
3032

31-
NRI is defined as a formal, protobuf-based 'NRI plugin protocol' which is
32-
compiled into ttRPC bindings. This should result in improved communication
33-
efficiency with lower per-message overhead, and enable straightforward
34-
implementation of stateful NRI plugins.
33+
[NRI v0.1.0](README-v0.1.0.md) used an OCI hook-like one-shot plugin invocation
34+
mechanism where a separate instance of a plugin was spawned for every NRI
35+
event. This instance then used its standard input and output to receive a
36+
request and provide a response, both as JSON data.
37+
38+
Plugins in NRI are daemon-like entities. A single instance of a plugin is
39+
now responsible for handling the full stream of NRI events and requests. A
40+
unix-domain socket is used as the transport for communication. Instead of
41+
JSON requests and responses NRI is defined as a formal, protobuf-based
42+
'NRI plugin protocol' which is compiled into ttRPC bindings. This should
43+
result in improved communication efficiency with lower per-message overhead,
44+
and enable straightforward implementation of stateful NRI plugins.
3545

3646
## Components
3747

plugins/v010-adapter/0.1.0/client.go renamed to client.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import (
2525
"os/exec"
2626
"sync"
2727

28-
types "github.com/containerd/nri/plugins/v010-adapter/0.1.0/types/v1"
28+
types "github.com/containerd/nri/types/v1"
2929

3030
oci "github.com/opencontainers/runtime-spec/specs-go"
3131
)

examples/clearcfs/main.go

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
/*
2+
Copyright The containerd Authors.
3+
4+
Licensed under the Apache License, Version 2.0 (the "License");
5+
you may not use this file except in compliance with the License.
6+
You may obtain a copy of the License at
7+
8+
http://www.apache.org/licenses/LICENSE-2.0
9+
10+
Unless required by applicable law or agreed to in writing, software
11+
distributed under the License is distributed on an "AS IS" BASIS,
12+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
See the License for the specific language governing permissions and
14+
limitations under the License.
15+
*/
16+
17+
package main
18+
19+
import (
20+
"context"
21+
"fmt"
22+
"os"
23+
24+
"github.com/containerd/cgroups"
25+
"github.com/containerd/nri/skel"
26+
types "github.com/containerd/nri/types/v1"
27+
"github.com/opencontainers/runtime-spec/specs-go"
28+
"github.com/sirupsen/logrus"
29+
)
30+
31+
// clearCFS clears any cfs quotas for the containers
32+
type clearCFS struct {
33+
}
34+
35+
func (c *clearCFS) Type() string {
36+
return "clearcfs"
37+
}
38+
39+
func (c *clearCFS) Invoke(ctx context.Context, r *types.Request) (*types.Result, error) {
40+
result := r.NewResult(c.Type())
41+
42+
if r.State != types.Create {
43+
return result, nil
44+
}
45+
46+
switch r.Spec.Annotations["qos.class"] {
47+
case "ls":
48+
logrus.Debugf("clearing cfs for %s", r.ID)
49+
control, err := cgroups.Load(cgroups.V1, cgroups.StaticPath(r.Spec.CgroupsPath))
50+
if err != nil {
51+
return nil, err
52+
}
53+
54+
quota := int64(-1)
55+
return result, control.Update(&specs.LinuxResources{
56+
CPU: &specs.LinuxCPU{
57+
Quota: &quota,
58+
},
59+
})
60+
}
61+
return result, nil
62+
}
63+
64+
func main() {
65+
ctx := context.Background()
66+
if err := skel.Run(ctx, &clearCFS{}); err != nil {
67+
fmt.Fprintf(os.Stderr, "%s", err)
68+
os.Exit(1)
69+
}
70+
}

examples/go.mod

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
module github.com/containerd/nri/examples
2+
3+
go 1.22.0
4+
5+
require (
6+
github.com/containerd/cgroups v1.0.3
7+
github.com/containerd/nri v0.1.0
8+
github.com/opencontainers/runtime-spec v1.1.0
9+
github.com/sirupsen/logrus v1.9.3
10+
)
11+
12+
require (
13+
github.com/coreos/go-systemd/v22 v22.3.2 // indirect
14+
github.com/docker/go-units v0.4.0 // indirect
15+
github.com/godbus/dbus/v5 v5.0.4 // indirect
16+
github.com/gogo/protobuf v1.3.2 // indirect
17+
golang.org/x/sys v0.21.0 // indirect
18+
)
19+
20+
replace github.com/containerd/nri => ../

examples/go.sum

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
2+
github.com/cilium/ebpf v0.4.0/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs=
3+
github.com/containerd/cgroups v1.0.3 h1:ADZftAkglvCiD44c77s5YmMqaP2pzVCFZvBmAlBdAP4=
4+
github.com/containerd/cgroups v1.0.3/go.mod h1:/ofk34relqNjSGyqPrmEULrO4Sc8LJhvJmWbUCUKqj8=
5+
github.com/coreos/go-systemd/v22 v22.3.2 h1:D9/bQk5vlXQFZ6Kwuu6zaiXJ9oTPe68++AzAJc1DzSI=
6+
github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
7+
github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
8+
github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
9+
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
10+
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
11+
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
12+
github.com/docker/go-units v0.4.0 h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw=
13+
github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
14+
github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k=
15+
github.com/godbus/dbus/v5 v5.0.4 h1:9349emZab16e7zQvpmsbtjc18ykshndd8y2PG3sgJbA=
16+
github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
17+
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
18+
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
19+
github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
20+
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
21+
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
22+
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
23+
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
24+
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
25+
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
26+
github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
27+
github.com/opencontainers/runtime-spec v1.1.0 h1:HHUyrt9mwHUjtasSbXSMvs4cyFxh+Bll4AjJ9odEGpg=
28+
github.com/opencontainers/runtime-spec v1.1.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
29+
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
30+
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
31+
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
32+
github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
33+
github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
34+
github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
35+
github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
36+
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
37+
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
38+
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
39+
github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
40+
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
41+
github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
42+
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
43+
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
44+
github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
45+
go.uber.org/goleak v1.1.12/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ=
46+
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
47+
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
48+
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
49+
golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
50+
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
51+
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
52+
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
53+
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
54+
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
55+
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
56+
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
57+
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
58+
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
59+
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
60+
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
61+
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
62+
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
63+
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
64+
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
65+
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
66+
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
67+
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
68+
golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
69+
golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
70+
golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
71+
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
72+
golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws=
73+
golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
74+
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
75+
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
76+
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
77+
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
78+
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
79+
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
80+
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
81+
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
82+
golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
83+
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
84+
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
85+
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
86+
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
87+
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
88+
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
89+
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
90+
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
91+
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
92+
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

plugins/v010-adapter/0.1.0/README.md

Lines changed: 0 additions & 17 deletions
This file was deleted.

plugins/v010-adapter/v010-adapter.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,10 @@ import (
2323

2424
"github.com/sirupsen/logrus"
2525

26+
"github.com/containerd/nri"
2627
"github.com/containerd/nri/pkg/api"
2728
"github.com/containerd/nri/pkg/stub"
28-
nri "github.com/containerd/nri/plugins/v010-adapter/0.1.0"
29-
nriv1 "github.com/containerd/nri/plugins/v010-adapter/0.1.0/types/v1"
29+
nriv1 "github.com/containerd/nri/types/v1"
3030
oci "github.com/opencontainers/runtime-spec/specs-go"
3131
)
3232

0 commit comments

Comments
 (0)