These 33 commits are when the Protocol Buffers files have changed:
| Commit: | bbf892d | |
|---|---|---|
| Author: | Krisztian Litkey | |
| Committer: | Krisztian Litkey | |
api,stub: add dedicated RPC calls for all events. Define dedicated RPC calls on the wire for all pod and container lifecycle events. Update stub, builtin and WASM plugins accordingly. Signed-off-by: Krisztian Litkey <krisztian.litkey@intel.com>
| Commit: | ee82b96 | |
|---|---|---|
| Author: | Krisztian Litkey | |
| Committer: | Krisztian Litkey | |
api,adaptation,stub: exchange versions during registration. Exchange NRI versions in use during plugin registration. If we do not get an NRI version from the runtime (too old peer NRI) try to infer it using the runtime type and version. The NRI version in use is discovered using the golang runtime provided build info. For plugins hosted in the main NRI repo this does not produce any useful result (because NRI is subject to a replace directive in the plugins' go.mod). Therefore within the repo we fall back to using a git-describe generated version. Signed-off-by: Krisztian Litkey <krisztian.litkey@intel.com>
| Commit: | e35ace8 | |
|---|---|---|
| Author: | Antti Kervinen | |
| Committer: | Krisztian Litkey | |
Enable adjusting container Linux memory policy. Signed-off-by: Antti Kervinen <antti.kervinen@intel.com>
| Commit: | 8c0c9f6 | |
|---|---|---|
| Author: | Markus Lehtonen | |
| Committer: | Markus Lehtonen | |
Implement removal of RDT Makes it possible to remove/override the linux.intelRdt object from the container configuration. Extend the API by adding new 'Remove' field to the LinuxRdt message which is used as a marker to fully delete/override the IntelRdt configuration. This patch also updates the adaptation and runtime-tools correspondingly. Signed-off-by: Markus Lehtonen <markus.lehtonen@intel.com>
| Commit: | a7832a2 | |
|---|---|---|
| Author: | Markus Lehtonen | |
| Committer: | Markus Lehtonen | |
api: add rdt Add new message for directly managing the linux.intelRdt object of the runtime-spec. NOTE: the old RdtClass field resides under LinuxResources message but the IntelRdt message is sepate from LinuxResources. This is to maintain parity with the OCI runtime-spec. It is also much more logical because the LinuxResources message is used in many places (like pod overhead, update resources etc) where the RDT fields don't make sense or cannot be applied. Also note that the Rdt object cannot be modified on container update (missing from UpdateContainerRequest) as this functionality is missing from the runtime spec and runtimes (runc/crun). Signed-off-by: Markus Lehtonen <markus.lehtonen@intel.com>
| Commit: | 687c1a6 | |
|---|---|---|
| Author: | Markus Lehtonen | |
| Committer: | Krisztian Litkey | |
pkg/api: add OptionalRepeatedString type Signed-off-by: Markus Lehtonen <markus.lehtonen@intel.com>
| Commit: | e06369e | |
|---|---|---|
| Author: | Krisztian Litkey | |
| Committer: | Krisztian Litkey | |
api,adaptation,generate: allow setting scheduler attributes. Allow setting/resetting container linux scheduler attributes. Signed-off-by: Krisztian Litkey <krisztian.litkey@intel.com>
| Commit: | 8a03823 | |
|---|---|---|
| Author: | Krisztian Litkey | |
| Committer: | Krisztian Litkey | |
api,adaptation,generate: allow adjusting linux net devices. Allow adding and removing container linux net devices. Signed-off-by: Krisztian Litkey <krisztian.litkey@intel.com>
| Commit: | 8705f9b | |
|---|---|---|
| Author: | Samuel Karp | |
| Committer: | Samuel Karp | |
api: add sysctl container adjustment Signed-off-by: Samuel Karp <samuelkarp@google.com>
| Commit: | 71b0335 | |
|---|---|---|
| Author: | Krisztian Litkey | |
| Committer: | Krisztian Litkey | |
api,adaptation: add container uid/gid info. Obtain the container's user, group and supplemental group IDs from OCI Spec.Process.User and expose it to plugins. Signed-off-by: Krisztian Litkey <krisztian.litkey@intel.com>
The documentation is generated from this commit.
| Commit: | a584b9b | |
|---|---|---|
| Author: | Etienne Champetier | |
| Committer: | Krisztian Litkey | |
adaptation,api: adjust LinuxNamespaces Signed-off-by: Etienne Champetier <e.champetier@ateme.com> Update adjustment plugin ownership tracking and conflict detection using the revised pkg/api-based infra. Signed-off-by: Krisztian Litkey <krisztian.litkey@intel.com>
| Commit: | c6e1e28 | |
|---|---|---|
| Author: | Etienne Champetier | |
| Committer: | Krisztian Litkey | |
api: add LinuxNamespace to LinuxContainerAdjustment One line change in api.proto and regenerate the pb.go files. Signed-off-by: Etienne Champetier <e.champetier@ateme.com> Signed-off-by: Krisztian Litkey <krisztian.litkey@intel.com>
| Commit: | b315f77 | |
|---|---|---|
| Author: | Tycho Andersen | |
| Committer: | Krisztian Litkey | |
api: add seccomp adjustment This adds an adjustment for seccomp policies. The intent is that people can wholesale replace policies, or parse them, make some changes, and then send them back. Sending them *to* NRI via containerd requires some containerd patches as well, those are here: https://github.com/tych0/containerd/commits/nri-seccomp/ Specifically, we are interested in making the listenerPath of the policy dynamic based on a k8s pod spec, so we can't use the Localhost custom policy (well, we can use most of it, except for listenerPath, which we have an NRI plugin to change based on this code). This patch is a lot of boilerplate, which is unfortunate. There is a much smaller but similar patch: https://github.com/tych0/nri/commit/a70547a543f762542212fde804b9cd3f70cfc272 but it involves directly serializing a runtime-spec string Finally, note the comment in generate.go: the runtime-tools generate code does not have complete coverage for seccomp stuff, so I opted to not use any of it, vs. adding more stuff to runtime-tools. The fact that there are human and computer names is also confusing, it seems like we should stick to the computer names for this particular interface. Signed-off-by: Tycho Andersen <tycho@tycho.pizza>
| Commit: | 7448ebb | |
|---|---|---|
| Author: | Krisztian Litkey | |
| Committer: | Krisztian Litkey | |
api,adaptation: pass container seccomp profile to plugins. Pass information about CRI-requested container seccomp security profile information as input to plugins. Co-authored-by: Mike Brown <brownwm@us.ibm.com> Signed-off-by: Krisztian Litkey <krisztian.litkey@intel.com>
| Commit: | 274f276 | |
|---|---|---|
| Author: | Krisztian Litkey | |
| Committer: | Krisztian Litkey | |
api,adaptation,generate: allow setting container I/O priority. Allow setting/resetting container I/O priority. Signed-off-by: Krisztian Litkey <krisztian.litkey@intel.com>
| Commit: | 09305bf | |
|---|---|---|
| Author: | Krisztian Litkey | |
api: pass injected CDI devices as input. Pass (fully qualified device) names of requested/injected CDI devices to NRI plugins. Signed-off-by: Krisztian Litkey <krisztian.litkey@intel.com>
| Commit: | e9f95d0 | |
|---|---|---|
| Author: | Krisztian Litkey | |
| Committer: | Krisztian Litkey | |
api,adaptation,stub: implement adjustment validation. Implement pluggable container adjustment validation. When validator plugins are present, use them to validate the collected adjustments, failing container creation if any validation fails. For adjustment validation plugins receive the pod, the pristing un- adjusted container, the collected container adjustments, information about which plugins adjusted what container parameters, and the list of plugins consulted for the adjustments. The plugin can then choose to accept or reject the adjustments. Accepting or rejecting adjustments are transactional. Either all or none of the adjustments are accepted, together with the container creation request. IOW, rejecting an adjustment results in a failed container creation request. Signed-off-by: Krisztian Litkey <krisztian.litkey@intel.com>
| Commit: | d9d8be8 | |
|---|---|---|
| Author: | Krisztian Litkey | |
| Committer: | Krisztian Litkey | |
api,adaptation: protoize conflict detection data types. Redefine conflict detection data types using protobuf. This allows passing them to plugins over a ttrpc API. Signed-off-by: Krisztian Litkey <krisztian.litkey@intel.com>
| Commit: | db955a1 | |
|---|---|---|
| Author: | Krisztian Litkey | |
| Committer: | Krisztian Litkey | |
api: add more data for container status. Add exit code, status reason and message, and timestamps for creation, start and exit to container data. Co-authored-by: Mike Brown <brownwm@us.ibm.com> Signed-off-by: Krisztian Litkey <krisztian.litkey@intel.com>
| Commit: | eba3d98 | |
|---|---|---|
| Author: | Krisztian Litkey | |
| Committer: | Krisztian Litkey | |
api,adaptation,generate: allow setting container command line. Allow setting (or updating already set) container command line arguments. Signed-off-by: Krisztian Litkey <krisztian.litkey@intel.com>
| Commit: | e4ce8c1 | |
|---|---|---|
| Author: | Chris Henzie | |
| Committer: | Chris Henzie | |
Add UpdatePodSandbox to NRI plugin API This API is called by the container runtime to update pod sandbox resources when they change. This is for the In-place Pod Resize KEP-1287. Signed-off-by: Chris Henzie <chrishenzie@google.com>
| Commit: | 112fc36 | |
|---|---|---|
| Author: | Sascha Grunert | |
| Committer: | Sascha Grunert | |
Add WASM plugin support Signed-off-by: Sascha Grunert <sgrunert@redhat.com>
| Commit: | eaf78a9 | |
|---|---|---|
| Author: | Antonio Ojea | |
| Committer: | Antonio Ojea | |
api: support Pod IPs Allow NRI plugins to read the allocated IPs to the pod on the PodSandbox hooks. This is specially useful for networking daemons that depend on the Pod IPs assigned via CNI by the container runtime (service mesh, network policies, ... ) to create seamless integrations without having to modify the existing environment. Existing network integrations use techniques like: - CNI chaining (invasive) as the implementation needs to modify the existing deployment and can cause disruption due to mutations on the existing configurations. - Read Pod Status, that is too late in the process, since the pod lifecycle does not update the pod status until the containers are running, but there are applications like network policy implemetnations or service meshes that needs this information before the pod is completely created. - Inspect the host namespaces to gather the information, that is very intrusive and not portable, creating a tighly coupling between. Add a nri plugin that can be used as reference implementations for this integration, the nri plugin just log the interesting networking details of the pod (ips and network namespace) on the different hooks of the pod lifecucle. Change-Id: Idb9605c719903d0df51c9a1947e0f838870b5c0b Signed-off-by: Antonio Ojea <aojea@google.com>
| Commit: | 6fd59d6 | |
|---|---|---|
| Author: | Krisztian Litkey | |
| Committer: | Krisztian Litkey | |
api: add support for multiple sync messages. Signed-off-by: Krisztian Litkey <krisztian.litkey@intel.com>
| Commit: | f86d982 | |
|---|---|---|
| Author: | Krisztian Litkey | |
| Committer: | Krisztian Litkey | |
api,adaptation,stub: let plugin know configured timeouts. Let plugins know the configured registration and request processing timeout. Signed-off-by: Krisztian Litkey <krisztian.litkey@intel.com>
| Commit: | a03dc93 | |
|---|---|---|
| Author: | Krisztian Litkey | |
pkg,plugins,.codespellrc: add codespellrc, fix spelling. Add .codespellrc, fix reported existing spelling errors. Signed-off-by: Krisztian Litkey <krisztian.litkey@intel.com>
| Commit: | efcb2da | |
|---|---|---|
| Author: | Xiaojin Zhang | |
NRI plugins support adjust oom_score_adj Signed-off-by: Xiaojin Zhang <874478410@qq.com>
| Commit: | f1aa58f | |
|---|---|---|
| Author: | Krisztian Litkey | |
| Committer: | Krisztian Litkey | |
api: add support for native CDI device injection. Add support for native CDI injection. With this in place, a plugin can now directly request injection of CDI devices by device name. This is much simpler than first performing CDI device resolution and injection, followed by a set of low- level NRI adjustments for devices, mounts, env. vars. and OCI hooks to effectively do the same. Signed-off-by: Krisztian Litkey <krisztian.litkey@intel.com>
| Commit: | 1719502 | |
|---|---|---|
| Author: | yylt | |
| Committer: | yylt | |
support pids cgroup Signed-off-by: Yang Yang <yang8518296@163.com>
| Commit: | efaf36e | |
|---|---|---|
| Author: | Samuel Karp | |
| Committer: | Samuel Karp | |
api: add POSIXRlimit type Signed-off-by: Samuel Karp <samuelkarp@google.com>
| Commit: | 429fe28 | |
|---|---|---|
| Author: | Krisztian Litkey | |
| Committer: | Krisztian Litkey | |
pkg/api: define updated NRI plugin API. Define a ttRPC-based updated NRI API which allows plugins more flexible control over containers with less overhead per plugin invocation/request. The new protocol allows plugins to - synchronize their state with the runtime on startup - subscribe for pod and container lifecycle events - adjust a subset of container parameters at creation - update assigned container resources otherwise The API allows adjusting the following parameters during container creation: - annotations - environment variables - mounts, devices - OCI hooks - assigned cgroupfs-controlled resources, including o scheduling parameters o memory and huge page limits o CPU and memory pinning o unified cgroup v2 parameters o RDT class (LLC, memory BW control) o Block I/O class (blkio controller parameters) The API allows updating the following container parameters otherwise: - assigned cgroupfs-controlled resources Signed-off-by: Krisztian Litkey <krisztian.litkey@intel.com>
| Commit: | e1172e9 | |
|---|---|---|
| Author: | Sebastiaan van Stijn | |
| Committer: | Sebastiaan van Stijn | |
remove vendor directory This project is used as a library and doesn't produce binaries, in which case convention is to not use vendoring. Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit does not contain any .proto files.
| Commit: | 83fed81 | |
|---|---|---|
| Author: | Michael Crosby | |
Vendor go modules Signed-off-by: Michael Crosby <michael@thepasture.io>