Merge pull request #8034 from klihub/deps/update-nri
go.mod: update github.com/containerd/nri.
This commit is contained in:
		
							
								
								
									
										2
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								go.mod
									
									
									
									
									
								
							| @@ -17,7 +17,7 @@ require ( | ||||
| 	github.com/containerd/go-cni v1.1.6 | ||||
| 	github.com/containerd/go-runc v1.0.0 | ||||
| 	github.com/containerd/imgcrypt v1.1.5-0.20220421044638-8ba028dca028 | ||||
| 	github.com/containerd/nri v0.2.0 | ||||
| 	github.com/containerd/nri v0.2.1-0.20230131001841-b3cabdec0657 | ||||
| 	github.com/containerd/ttrpc v1.1.1-0.20220420014843-944ef4a40df3 | ||||
| 	github.com/containerd/typeurl v1.0.3-0.20220422153119-7f6e6d160d67 | ||||
| 	github.com/containerd/zfs v1.0.0 | ||||
|   | ||||
							
								
								
									
										4
									
								
								go.sum
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								go.sum
									
									
									
									
									
								
							| @@ -261,8 +261,8 @@ github.com/containerd/imgcrypt v1.1.5-0.20220421044638-8ba028dca028/go.mod h1:Lo | ||||
| github.com/containerd/nri v0.0.0-20201007170849-eb1350a75164/go.mod h1:+2wGSDGFYfE5+So4M5syatU0N0f0LbWpuqyMi4/BE8c= | ||||
| github.com/containerd/nri v0.0.0-20210316161719-dbaa18c31c14/go.mod h1:lmxnXF6oMkbqs39FiCt1s0R2HSMhcLel9vNL3m4AaeY= | ||||
| github.com/containerd/nri v0.1.0/go.mod h1:lmxnXF6oMkbqs39FiCt1s0R2HSMhcLel9vNL3m4AaeY= | ||||
| github.com/containerd/nri v0.2.0 h1:gSHG+SyKvWp5xJxyXbx2miR0ajssuOImr52Z2lt/GKI= | ||||
| github.com/containerd/nri v0.2.0/go.mod h1:Q2u9Sudol4IkJ6YK0gShznKMxM6Un0Y3O4Wslf5Nerg= | ||||
| github.com/containerd/nri v0.2.1-0.20230131001841-b3cabdec0657 h1:mUUkDOlFTZXCQupsMlHbQflPVxbj1sT6YOSz/hvT4wE= | ||||
| github.com/containerd/nri v0.2.1-0.20230131001841-b3cabdec0657/go.mod h1:Q2u9Sudol4IkJ6YK0gShznKMxM6Un0Y3O4Wslf5Nerg= | ||||
| github.com/containerd/stargz-snapshotter/estargz v0.4.1/go.mod h1:x7Q9dg9QYb4+ELgxmo4gBUeJB0tl5dqH1Sdz0nJU1QM= | ||||
| github.com/containerd/ttrpc v0.0.0-20190828154514-0e0f228740de/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= | ||||
| github.com/containerd/ttrpc v0.0.0-20190828172938-92c8520ef9f8/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= | ||||
|   | ||||
| @@ -518,7 +518,7 @@ github.com/containerd/go-runc v0.0.0-20201020171139-16b287bc67d0/go.mod h1:cNU0Z | ||||
| github.com/containerd/go-runc v1.0.0 h1:oU+lLv1ULm5taqgV/CJivypVODI4SUz1znWjv3nNYS0= | ||||
| github.com/containerd/go-runc v1.0.0/go.mod h1:cNU0ZbCgCQVZK4lgG3P+9tn9/PaJNmoDXPpoJhDR+Ok= | ||||
| github.com/containerd/imgcrypt v1.1.5-0.20220421044638-8ba028dca028/go.mod h1:LorQnPtzL/T0IyCeftcsMEO7AqxUDbdO8j/tSUpgxvo= | ||||
| github.com/containerd/nri v0.2.0/go.mod h1:Q2u9Sudol4IkJ6YK0gShznKMxM6Un0Y3O4Wslf5Nerg= | ||||
| github.com/containerd/nri v0.2.1-0.20230131001841-b3cabdec0657/go.mod h1:Q2u9Sudol4IkJ6YK0gShznKMxM6Un0Y3O4Wslf5Nerg= | ||||
| github.com/containerd/stargz-snapshotter/estargz v0.4.1/go.mod h1:x7Q9dg9QYb4+ELgxmo4gBUeJB0tl5dqH1Sdz0nJU1QM= | ||||
| github.com/containerd/stargz-snapshotter/estargz v0.12.1/go.mod h1:12VUuCq3qPq4y8yUW+l5w3+oXV3cx2Po3KSe/SmPGqw= | ||||
| github.com/containerd/ttrpc v1.0.2/go.mod h1:UAxOpgT9ziI0gJrmKvgcZivgxOp8iFPSk8httJEt98Y= | ||||
|   | ||||
							
								
								
									
										39
									
								
								vendor/github.com/containerd/nri/README.md
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										39
									
								
								vendor/github.com/containerd/nri/README.md
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,4 +1,4 @@ | ||||
| ## Node Resource Interface, Revisited | ||||
| # Node Resource Interface, Revisited | ||||
|  | ||||
| [](https://pkg.go.dev/github.com/containerd/nri) | ||||
| [](https://github.com/containerd/nri/actions?query=workflow%3ACI) | ||||
| @@ -7,7 +7,7 @@ | ||||
|  | ||||
| *This project is currently in DRAFT status* | ||||
|  | ||||
| ### Goal | ||||
| ## Goal | ||||
|  | ||||
| NRI allows plugging domain- or vendor-specific custom logic into OCI- | ||||
| compatible runtimes. This logic can make controlled changes to containers | ||||
| @@ -23,7 +23,7 @@ The goal is to enable NRI support in the most commonly used OCI runtimes, | ||||
| [containerd](https://github.com/containerd/containerd) and | ||||
| [CRI-O](https://github.com/cri-o/cri-o). | ||||
|  | ||||
| ### Background | ||||
| ## Background | ||||
|  | ||||
| The revisited API is a major rewrite of NRI. It changes the scope of NRI | ||||
| and how it gets integrated into runtimes. It reworks how plugins are | ||||
| @@ -43,7 +43,7 @@ JSON requests and responses NRI is defined as a formal, protobuf-based | ||||
| result in improved communication efficiency with lower per-message overhead, | ||||
| and enable straightforward implementation of stateful NRI plugins. | ||||
|  | ||||
| ### Components | ||||
| ## Components | ||||
|  | ||||
| The NRI implementation consists of a number of components. The core of | ||||
| these are essential for implementing working end-to-end NRI support in | ||||
| @@ -62,7 +62,7 @@ implement useful functionality in real world scenarios. [A few](plugins/differ) | ||||
| serve as practical examples of how the stub library can be used to implement | ||||
| NRI plugins. | ||||
|  | ||||
| ### Protocol, Plugin API | ||||
| ## Protocol, Plugin API | ||||
|  | ||||
| The core of NRI is defined by a protobuf [protocol definition](pkg/api/api.proto) | ||||
| of the low-level plugin API. The API defines two services, Runtime and Plugin. | ||||
| @@ -83,7 +83,7 @@ provides functions for | ||||
|   - hooking the plugin into pod/container lifecycle events | ||||
|   - shutting down the plugin | ||||
|  | ||||
| #### Plugin Registration | ||||
| ### Plugin Registration | ||||
|  | ||||
| Before a plugin can start receiving and processing container events, it needs | ||||
| to register itself with NRI. During registration the plugin and NRI perform a | ||||
| @@ -114,7 +114,7 @@ Once the handshake sequence is over and the plugin has registered with NRI, | ||||
| it will start receiving pod and container lifecycle events according to its | ||||
| subscription. | ||||
|  | ||||
| #### Pod Data and Available Lifecycle Events | ||||
| ### Pod Data and Available Lifecycle Events | ||||
|  | ||||
| <details> | ||||
| <summary>NRI Pod Lifecycle Events</summary> | ||||
| @@ -140,7 +140,7 @@ The following pieces of pod metadata are available to plugins in NRI: | ||||
|   - cgroup parent directory | ||||
|   - runtime handler name | ||||
|  | ||||
| #### Container Data and Available Lifecycle Events | ||||
| ### Container Data and Available Lifecycle Events | ||||
|  | ||||
| <details> | ||||
| <summary>NRI Container Lifecycle Events</summary> | ||||
| @@ -203,7 +203,7 @@ The following pieces of container metadata are available to plugins in NRI: | ||||
| Apart from data identifying the container, these pieces of information | ||||
| represent the corresponding data in the container's OCI Spec. | ||||
|  | ||||
| #### Container Adjustment | ||||
| ### Container Adjustment | ||||
|  | ||||
| During container creation plugins can request changes to the following | ||||
| container parameters: | ||||
| @@ -236,7 +236,7 @@ container parameters: | ||||
|       - Block I/O class | ||||
|       - RDT class | ||||
|  | ||||
| #### Container Updates | ||||
| ### Container Updates | ||||
|  | ||||
| Once a container has been created plugins can request updates to them. | ||||
| These updates can be requested in response to another containers creation | ||||
| @@ -268,7 +268,7 @@ can be updated this way: | ||||
|     - RDT class | ||||
|  | ||||
|  | ||||
| ### Runtime Adaptation | ||||
| ## Runtime Adaptation | ||||
|  | ||||
| The NRI [runtime adaptation](pkg/adaptation) package is the interface | ||||
| runtimes use to integrate to NRI and interact with NRI plugins. It | ||||
| @@ -283,7 +283,7 @@ into a single one. While combining responses, the package detects any | ||||
| unintentional conflicting changes made by multiple plugins to a single | ||||
| container and flags such an event as an error to the runtime. | ||||
|  | ||||
| ### Wrapped OCI Spec Generator | ||||
| ## Wrapped OCI Spec Generator | ||||
|  | ||||
| The [OCI Spec generator](pkg/runtime-tools/generate) package wraps the | ||||
| [corresponding package](https://github.com/opencontainers/runtime-tools/tree/master/generate) | ||||
| @@ -291,7 +291,7 @@ and adds functions for applying NRI container adjustments and updates to | ||||
| OCI Specs. This package can be used by runtime NRI integration code to | ||||
| apply NRI responses to containers. | ||||
|  | ||||
| ### Plugin Stub Library | ||||
| ## Plugin Stub Library | ||||
|  | ||||
| The plugin stub hides many of the low-level details of implementing an NRI | ||||
| plugin. It takes care of connection establishment, plugin registration, | ||||
| @@ -299,7 +299,7 @@ configuration, and event subscription. All [sample plugins](pkg/plugins) | ||||
| are implemented using the stub. Any of these can be used as a tutorial on | ||||
| how the stub library should be used. | ||||
|  | ||||
| ### Sample Plugins | ||||
| ## Sample Plugins | ||||
|  | ||||
| The following sample plugins exist for NRI: | ||||
|  | ||||
| @@ -311,3 +311,14 @@ The following sample plugins exist for NRI: | ||||
|  | ||||
| Please see the documentation of these plugins for further details | ||||
| about what and how each of these plugins can be used for. | ||||
|  | ||||
| ## Project details | ||||
|  | ||||
| nri is a containerd sub-project, licensed under the [Apache 2.0 license](./LICENSE). | ||||
| As a containerd sub-project, you will find the: | ||||
|  | ||||
|  * [Project governance](https://github.com/containerd/project/blob/main/GOVERNANCE.md), | ||||
|  * [Maintainers](https://github.com/containerd/project/blob/main/MAINTAINERS), | ||||
|  * and [Contributing guidelines](https://github.com/containerd/project/blob/main/CONTRIBUTING.md) | ||||
|  | ||||
| information in our [`containerd/project`](https://github.com/containerd/project) repository. | ||||
|   | ||||
							
								
								
									
										11
									
								
								vendor/github.com/containerd/nri/pkg/adaptation/adaptation.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										11
									
								
								vendor/github.com/containerd/nri/pkg/adaptation/adaptation.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -109,6 +109,13 @@ func WithSocketPath(path string) Option { | ||||
| func New(name, version string, syncFn SyncFn, updateFn UpdateFn, opts ...Option) (*Adaptation, error) { | ||||
| 	var err error | ||||
|  | ||||
| 	if syncFn == nil { | ||||
| 		return nil, fmt.Errorf("failed to create NRI adaptation, nil SyncFn") | ||||
| 	} | ||||
| 	if updateFn == nil { | ||||
| 		return nil, fmt.Errorf("failed to create NRI adaptation, nil UpdateFn") | ||||
| 	} | ||||
|  | ||||
| 	r := &Adaptation{ | ||||
| 		name:       name, | ||||
| 		version:    version, | ||||
| @@ -328,7 +335,7 @@ func (r *Adaptation) startPlugins() (retErr error) { | ||||
|  | ||||
| 		id := ids[i] | ||||
|  | ||||
| 		p, err := newLaunchedPlugin(r.pluginPath, id, name, configs[i]) | ||||
| 		p, err := r.newLaunchedPlugin(r.pluginPath, id, name, configs[i]) | ||||
| 		if err != nil { | ||||
| 			return fmt.Errorf("failed to start NRI plugin %q: %w", name, err) | ||||
| 		} | ||||
| @@ -408,7 +415,7 @@ func (r *Adaptation) acceptPluginConnections(l net.Listener) error { | ||||
| 				return | ||||
| 			} | ||||
|  | ||||
| 			p, err := newExternalPlugin(conn) | ||||
| 			p, err := r.newExternalPlugin(conn) | ||||
| 			if err != nil { | ||||
| 				log.Errorf(ctx, "failed to create external plugin: %v", err) | ||||
| 				continue | ||||
|   | ||||
							
								
								
									
										14
									
								
								vendor/github.com/containerd/nri/pkg/adaptation/plugin.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								vendor/github.com/containerd/nri/pkg/adaptation/plugin.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -60,7 +60,7 @@ type plugin struct { | ||||
| } | ||||
|  | ||||
| // Launch a pre-installed plugin with a pre-connected socketpair. | ||||
| func newLaunchedPlugin(dir, idx, base, cfg string) (p *plugin, retErr error) { | ||||
| func (r *Adaptation) newLaunchedPlugin(dir, idx, base, cfg string) (p *plugin, retErr error) { | ||||
| 	name := idx + "-" + base | ||||
|  | ||||
| 	sockets, err := net.NewSocketPair() | ||||
| @@ -97,6 +97,7 @@ func newLaunchedPlugin(dir, idx, base, cfg string) (p *plugin, retErr error) { | ||||
| 		base:   base, | ||||
| 		regC:   make(chan error, 1), | ||||
| 		closeC: make(chan struct{}), | ||||
| 		r:      r, | ||||
| 	} | ||||
|  | ||||
| 	if err = p.cmd.Start(); err != nil { | ||||
| @@ -111,10 +112,11 @@ func newLaunchedPlugin(dir, idx, base, cfg string) (p *plugin, retErr error) { | ||||
| } | ||||
|  | ||||
| // Create a plugin (stub) for an accepted external plugin connection. | ||||
| func newExternalPlugin(conn stdnet.Conn) (p *plugin, retErr error) { | ||||
| func (r *Adaptation) newExternalPlugin(conn stdnet.Conn) (p *plugin, retErr error) { | ||||
| 	p = &plugin{ | ||||
| 		regC:   make(chan error, 1), | ||||
| 		closeC: make(chan struct{}), | ||||
| 		r:      r, | ||||
| 	} | ||||
| 	if err := p.connect(conn); err != nil { | ||||
| 		return nil, err | ||||
| @@ -372,7 +374,7 @@ func (p *plugin) createContainer(ctx context.Context, req *CreateContainerReques | ||||
| 	rpl, err := p.stub.CreateContainer(ctx, req) | ||||
| 	if err != nil { | ||||
| 		if isFatalError(err) { | ||||
| 			log.Errorf(ctx, "closing plugin %s, failed to handle CreateContainer request: %w", | ||||
| 			log.Errorf(ctx, "closing plugin %s, failed to handle CreateContainer request: %v", | ||||
| 				p.name(), err) | ||||
| 			p.close() | ||||
| 			return nil, nil | ||||
| @@ -395,7 +397,7 @@ func (p *plugin) updateContainer(ctx context.Context, req *UpdateContainerReques | ||||
| 	rpl, err := p.stub.UpdateContainer(ctx, req) | ||||
| 	if err != nil { | ||||
| 		if isFatalError(err) { | ||||
| 			log.Errorf(ctx, "closing plugin %s, failed to handle UpdateContainer request: %w", | ||||
| 			log.Errorf(ctx, "closing plugin %s, failed to handle UpdateContainer request: %v", | ||||
| 				p.name(), err) | ||||
| 			p.close() | ||||
| 			return nil, nil | ||||
| @@ -418,7 +420,7 @@ func (p *plugin) stopContainer(ctx context.Context, req *StopContainerRequest) ( | ||||
| 	rpl, err := p.stub.StopContainer(ctx, req) | ||||
| 	if err != nil { | ||||
| 		if isFatalError(err) { | ||||
| 			log.Errorf(ctx, "closing plugin %s, failed to handle StopContainer request: %w", | ||||
| 			log.Errorf(ctx, "closing plugin %s, failed to handle StopContainer request: %v", | ||||
| 				p.name(), err) | ||||
| 			p.close() | ||||
| 			return nil, nil | ||||
| @@ -441,7 +443,7 @@ func (p *plugin) StateChange(ctx context.Context, evt *StateChangeEvent) error { | ||||
| 	_, err := p.stub.StateChange(ctx, evt) | ||||
| 	if err != nil { | ||||
| 		if isFatalError(err) { | ||||
| 			log.Errorf(ctx, "closing plugin %s, failed to handle event %d: %w", | ||||
| 			log.Errorf(ctx, "closing plugin %s, failed to handle event %d: %v", | ||||
| 				p.name(), evt.Event, err) | ||||
| 			p.close() | ||||
| 			return nil | ||||
|   | ||||
							
								
								
									
										1
									
								
								vendor/github.com/containerd/nri/pkg/adaptation/plugin_linux.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								vendor/github.com/containerd/nri/pkg/adaptation/plugin_linux.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,5 +1,4 @@ | ||||
| //go:build linux | ||||
| // +build linux | ||||
|  | ||||
| /* | ||||
|    Copyright The containerd Authors. | ||||
|   | ||||
							
								
								
									
										1
									
								
								vendor/github.com/containerd/nri/pkg/adaptation/plugin_other.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								vendor/github.com/containerd/nri/pkg/adaptation/plugin_other.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,5 +1,4 @@ | ||||
| //go:build !linux | ||||
| // +build !linux | ||||
|  | ||||
| /* | ||||
|    Copyright The containerd Authors. | ||||
|   | ||||
							
								
								
									
										1
									
								
								vendor/github.com/containerd/nri/pkg/net/socketpair_unix.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								vendor/github.com/containerd/nri/pkg/net/socketpair_unix.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,5 +1,4 @@ | ||||
| //go:build !windows | ||||
| // +build !windows | ||||
|  | ||||
| /* | ||||
|    Copyright The containerd Authors. | ||||
|   | ||||
							
								
								
									
										1
									
								
								vendor/github.com/containerd/nri/pkg/net/socketpair_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								vendor/github.com/containerd/nri/pkg/net/socketpair_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,5 +1,4 @@ | ||||
| //go:build windows | ||||
| // +build windows | ||||
|  | ||||
| /* | ||||
|    Copyright The containerd Authors. | ||||
|   | ||||
							
								
								
									
										1
									
								
								vendor/github.com/containerd/nri/pkg/runtime-tools/generate/helpers_linux.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								vendor/github.com/containerd/nri/pkg/runtime-tools/generate/helpers_linux.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,5 +1,4 @@ | ||||
| //go:build linux | ||||
| // +build linux | ||||
|  | ||||
| /* | ||||
|    Copyright The containerd Authors. | ||||
|   | ||||
							
								
								
									
										1
									
								
								vendor/github.com/containerd/nri/pkg/runtime-tools/generate/helpers_other.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								vendor/github.com/containerd/nri/pkg/runtime-tools/generate/helpers_other.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,5 +1,4 @@ | ||||
| //go:build !linux | ||||
| // +build !linux | ||||
|  | ||||
| /* | ||||
|    Copyright The containerd Authors. | ||||
|   | ||||
							
								
								
									
										2
									
								
								vendor/modules.txt
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/modules.txt
									
									
									
									
										vendored
									
									
								
							| @@ -125,7 +125,7 @@ github.com/containerd/go-runc | ||||
| ## explicit; go 1.16 | ||||
| github.com/containerd/imgcrypt | ||||
| github.com/containerd/imgcrypt/images/encryption | ||||
| # github.com/containerd/nri v0.2.0 | ||||
| # github.com/containerd/nri v0.2.1-0.20230131001841-b3cabdec0657 | ||||
| ## explicit; go 1.18 | ||||
| github.com/containerd/nri | ||||
| github.com/containerd/nri/pkg/adaptation | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Phil Estes
					Phil Estes