Skip to content

Releases: containers/nri-plugins

v0.5.1

29 Mar 15:54
194c433
Compare
Choose a tag to compare

This release of the NRI Reference Plugins brings a few improvements to hardware topology detection and resource assignment.

What's New

  • cpuallocator: topology discovery fixes and improvements. by @klihub in #206
  • cpuallocator: add support for hybrid core discovery, preferred allocation. by @klihub in #295
  • topology-aware: configurable allocation priority by @klihub in #282
  • resmgr: enable opentelemetry tracing (span propagation) over the NRI ttrpc connection. by @klihub in #293

Updates, Fixes, and Other Improvements

  • sysfs: dump system discovery results in a more predictable order. by @klihub in #294
  • github: package and publish interim unstable Helm charts from the main and release branches by @marquiz, @klihub in #303

Full Changelog: v0.4.1...v0.5.1

v0.4.1

16 Mar 14:48
659d042
Compare
Choose a tag to compare

This major release of the NRI Reference Plugins brings new features to a few plugins, numerous smaller other improvements, and several bug fixes.

Highlights

  • balloons policy: add groupBy balloon type option
    Group containers into same balloon instances if their groupBy expressions evaluate to the same group. For example, the following expression prefers assigning all containers in the pod to a balloon that already containers pods from the same namespace and have the same nsballoon label value
  ...
  balloonTypes:
    - name: my-pods
      groupBy: ${pod/namespace}-${pod/labels/nsballoon}
  ...

If there is no such a balloon, or if such instances do not have enough CPUs, then finding a suitable balloon continues as before: assign to some other existing balloon or create a new balloon if that is preferred.

  • balloons policy: add balloon matchExpressions option
    Assign containers to balloon instances by balloon match expressions, similar to affinity expression of the topology-aware policy. Expressions are evaluated for containers which are not explicitly assigned to any balloon by an annotation. If an expression matches a container, the container is assigned to an instance of the corresponding balloon. For instance, the following matchExpression will grab all containers with matching pod names to the associated balloon:
  ...
  balloonTypes:
    - name: my-pods
      matchExpressions:
        - key: pod/name
          operator: MatchesAny
          values: [ myPod*, nginx* ]
  ...

What's New

  • balloons: implement groupBy option by @askervin in #278
  • balloons: allow assigning containers to balloons by runtime-evaluated expressions by @klihub in #260
  • balloons policy: more regular built-in balloons, treat them much like user-defined ones
    Built-in reserved and default balloon types are no longer special cases. They can be configured with the same parameters as user-defined balloons.
  • balloons: support preserving CPU and memory pinning by @askervin in #257
  • topology-aware: support preserving CPU and memory pinning by @askervin in #258
  • feat(helm): Introduce priorityClassName system-node-critical by @ffuerste in #220
  • helm: allow setting NRI plugin index via values by @klihub in #227

Updates, Fixes And Other Improvements

  • balloons: fix the order of assigning containers into balloons by @askervin in #273
  • balloons: fix logged balloon name by @klihub in #259
  • balloons & topology-aware policies: better handling of UpdateContainer[Resources] requests
    Fill in missing bits in partial container resource updates from the current resource assignment. Filter out redundant resource updates without invoking the policy.
  • memtierd: update the nri-memtierd plugin to use memtierd v0.1.1 by @askervin in #287
  • operator: ensure to kustomize operator manifests before local deployment by @fmuyassarov in #240
  • resmgr: better expression validation, cleaner key resolution by @klihub in #256
  • resmgr: inject mount before container state update by @klihub in #223
  • resmgr: log containers by pretty name during startup by @klihub in #245
  • instrumentation: fix resource creation, use parent-based sampler by @klihub in #233
  • instrumentation: allow proper reconfiguration of tracing by @klihub in #234
  • cache: support annotations to preserve CPU and memory pinning by @askervin in #249
  • cache, resmgr: expose key evaluation, implement key substitution by @klihub in #277
  • cache: fix generated pod scope and simple affinity expressions by @klihub in #285
  • cache: store creation time of pod and containers cache objects by @askervin in #272
  • topology-aware: log resource operations at info level by @klihub in #252
  • doc: clarify selecting balloon type by @askervin in #281
  • doc: more consistent terminology in balloons documentation by @askervin in #269
  • fixes: rename default config group label, support/fall back to deprecated labels. by @klihub in #231

New Contributors

Full List of Merged PRs

For a full list of changes see v0.3.2...v0.4.1

v0.3.2

29 Dec 10:28
v0.3.2
Compare
Choose a tag to compare

This patch release fixes image versioning for the operator.

What's New

operator: point containerImage tag to the latest release (v0.3.2) by @fmuyassarov in #218

v0.3.1

28 Dec 11:47
v0.3.1
398fdf5
Compare
Choose a tag to compare

This patch release fixes operator category to use community defined one instead of custom category.

What's New

*operator: switch to community defined category" by @fmuyassarov in #217

v0.3.0

22 Dec 18:46
v0.3.0
Compare
Choose a tag to compare

This release brings a few new plugins, the NRI Plugins Operator, and a new configuration mechanism to configure plugins using CRDs.

What's New

  • Ansible-based operator created with operator-sdk to manage the life cycle of the nri-plugins

  • New plugins:

  • Improvements in policies:

    • balloons: preferCloseToDevices balloon type option by @askervin in #203
    • balloons: add PreferSpreadOnPhysicalCores by @askervin in #126

What's Changed

  • Configuration for plugins switched from ConfigMaps to per-plugin CRDs

Note that existing deployments need to be updated, converting any old ConfigMap to the corresponding custom resource of the policy used in the deployment. Please see the provided sample configurations or the custom resource definitions for policy-specific CRD details.

List of PRs

  • docs: fix link to "all releases" by @marquiz in #81
  • docs: convert all rst to md by @marquiz in #80
  • pkg: eliminate usage of obsolete github.com/pkg/errors. by @klihub in #83
  • build: Fix baseurl when building documentation version selector by @jukkar in #84
  • instrumentation: use a more appropriate propagator. by @klihub in #86
  • Helm improvments by @fmuyassarov in #85
  • config: Fix configuration files for kustomize by @changzhi1990 in #88
  • gihub-action: fix helm linter action trigger path by @fmuyassarov in #89
  • Helm chart configmap fixes and some YAML clean up by @fmuyassarov in #90
  • github: Disable e2e-test workflow by @jukkar in #102
  • helm: fix topology-aware helm chart naming by @fmuyassarov in #95
  • helm/kustomize: fix configmaps by @poussa in #104
  • build(deps): bump pygments from 2.13.0 to 2.15.0 in /docs by @dependabot in #98
  • sample-configs: drop rdt from the sample configuration by @marquiz in #106
  • pkg/multierror: switch to native golang multierror handling. by @klihub in #108
  • Add utility to patch containerd config for enabling nri by @fmuyassarov in #107
  • config-manager: bump go version to 1.20 by @fmuyassarov in #110
  • build: band-aid build system to allow building binaries other than resource policy plugins. by @klihub in #109
  • Automate Helm charts releasing process via GitHub action by @fmuyassarov in #112
  • github/workflows: ditch softprops/turnstyle action by @marquiz in #113
  • github: use the git checkout action to fetch all refs by @marquiz in #114
  • Memory QoS example plugin by @askervin in #115
  • Add nri-memtierd plugin by @askervin in #117
  • memory-qos: fix image building by @askervin in #122
  • docs: improve plugins installation instructions by @fmuyassarov in #119
  • deployment: fix the nri volume type to DirectoryOrCreate by @fmuyassarov in #123
  • helm: add charts for memtierd and memory-qos by @fmuyassarov in #118
  • helm: improve labels and selector labels set on the DaemonSet by @fmuyassarov in #124
  • helm: fix config-manager image name reference in charts defaults by @fmuyassarov in #125
  • nri-memtierd: mount only needed dirs from host by @askervin in #121
  • helm: don't set image.tag in values.yaml by @marquiz in #127
  • github: set chart version when packaging Helm charts by @marquiz in #128
  • github-action: update charts path to include memtierd and memory-qos by @fmuyassarov in #129
  • deployment: refactor config manager to support NRI enabling in CRI-O by @fmuyassarov in #120
  • helm: support NRI enabling prior to running memtierd & memory-qos plugins by @fmuyassarov in #131
  • github: issue templates by @marquiz in #130
  • Bump golang version to 1.20.10 by @marquiz in #133
  • go.mod: update deps by @marquiz in #134
  • helm: don't set initContainerImage:.tag in values.yaml by @marquiz in #136
  • cleanup: nuke unused scripts, Makefile bits and defunct functionality. by @klihub in #135
  • e2e: document e2e test dependencies by @askervin in #139
  • github: fix publish-helm-charts workflow by @marquiz in #143
  • scripts: update helm-publisher by @marquiz in #141
  • workflow: fix the tagging docker images build from new tags by @fmuyassarov in #145
  • docs: update charts installation instructions by @fmuyassarov in #147
  • deployment: adjust Pod restartPolicy to OnFailure by @fmuyassarov in #152
  • Add a helper script for preparing the release by @marquiz in #138
  • fixes: fix a bunch of problems in bootstrapping e2e tests. by @klihub in #154
  • deployment: drop DaemonSet unsupported OnFailure restartPolicy by @fmuyassarov in #155
  • fixes: fix image tagging scheme in publishing workflow. by @klihub in #158
  • scripts: ditch versions for .rpm and .deb packages. by @klihub in #161
  • balloons: add PreferSpreadOnPhysicalCores by @askervin in #126
  • deployment/helm: always use DirectoryOrCreate for /var/run/nri. by @klihub in #162
  • build: don't try to gofmt generated files. by @klihub in #165
  • helm: add an option to set tolerations by @fmuyassarov in #157
  • build/docs: make site-build work again from git worktrees. by @klihub in #168
  • docs: add basic README for each Helm chart on their own directory by @fmuyassarov in #167
  • plugins: add sgx-epc plugin. by @klihub in #156
  • deployment/helm/sgx-epc: fix a small README typo. by @klihub in #170
  • deployment: fix trailing whitespace errors. by @klihub in #169
  • docs: drop unneeded and outdated resource-policy/README.md by @marquiz in #173
  • docs: fix md style by @marquiz in #172
  • deployment/helm: add default .helmignores. by @klihub in #174
  • docs: update the main readme with the list of available plugins by @fmuyassarov in #175
  • config-manager: don't crash if no runtime is found running. by @klihub in #180
  • .github: use release-* release branch pattern. by @klihub in #183
  • fixes: remove unused gRPC bits, stop forcing gRPC to 1.38.0. by @klihub in #186
  • balloons: use new config more consistently, fix incorrect test config keys. by @klihub in #188
  • e2e: fix balloons test02-prometheus-metrics by @askervin in #191
  • test/e2e: test VM provisioning fixes by @klihub in #192
  • test/e2e: fix vagrant usage, make cilium version configurable. by @klihub in #193
  • helm: fix missing tolerations option in sgx-epc plugin by @fmuyassarov in https://github.com/containers/...
Read more

v0.2.3

27 Oct 13:28
8b4beb6
Compare
Choose a tag to compare
v0.2.3 Pre-release
Pre-release

This patch release updates Helm Chart documentation, fixes automatic enabling of NRI support in CRI-O runtimes, and updates obsolete image dependencies.

What's Changed

  • config-manager: don't crash if no runtime is found running by @marquiz in #181
  • github: use release-* release branch pattern. by @klihub in #184
  • docs: cherry-pick doc changes from main branch by @fmuyassarov in #182
  • deployment: update files for v0.2.3 by @fmuyassarov in #185
  • deps: cherry-pick #186: update gRPC bits, stop forcing version. by @klihub in #187

Full Changelog: v0.2.2...v0.2.3

v0.2.2

25 Oct 13:47
v0.2.2
4e91e62
Compare
Choose a tag to compare
v0.2.2 Pre-release
Pre-release

This patch adds support to specify tolerations with Helm, in addition to fixing some issues in the Helm charts.

What's Changed

Full Changelog: v0.2.1...v0.2.2

v0.2.1

12 Oct 12:13
v0.2.1
8901be3
Compare
Choose a tag to compare
v0.2.1 Pre-release
Pre-release

What's Changed

This patch release will fix issues with the Helm charts.

NOTE: The image tag now has v prefix, i.e. format has changed from X.Y.Z to vX.Y.Z.

List of PRs

  • [release-0.2] images: fix the tagging docker images build from new tags by @fmuyassarov in #146
  • [release-0.2] docs: update charts installation instructions by @fmuyassarov in #148
  • deployment: update deployment files for v0.2.1 by @marquiz in #149

Full Changelog: v0.2.0...v0.2.1

v0.2.0

11 Oct 19:00
v0.2.0
Compare
Choose a tag to compare
v0.2.0 Pre-release
Pre-release

What's New

This is the second public release of the NRI reference plugin collection. It demonstrates a wider range of capabilities of NRI by introducing a few new plugins. Numerous Helm chart improvements make plugin deployment easier with this release. This release is a pre-release, not production quality software.

New Plugins, Binaries

Two new plugins have been merged and are now available as part of this release:

  • memory QoS: class-based or per-container adjustment of cgroup v2 memory.* control knobs
  • memtierd: launch per-container memtierd instances to track and manage memory of selected workloads

Additionally a new helper binary has been added for automatically enabling NRI support in the runtime. This is available as an init container in the Helm chart deployments.

Other Improvements

  • Helm repo for the charts is now available at https://containers.github.io/nri-plugins (helm repo add nri-plugins https://containers.github.io/nri-plugins)
  • vastly improved Helm chart and kustomize support
  • automatic enabling of NRI in the runtime during plugin deployment (see nri.patchRuntimeConfig in Helm parameters)
  • improved plugin installation instructions

List of PRs

  • docs: fix link to "all releases" by @marquiz in #81
  • docs: convert all rst to md by @marquiz in #80
  • pkg: eliminate usage of obsolete github.com/pkg/errors. by @klihub in #83
  • build: Fix baseurl when building documentation version selector by @jukkar in #84
  • instrumentation: use a more appropriate propagator. by @klihub in #86
  • Helm improvments by @fmuyassarov in #85
  • config: Fix configuration files for kustomize by @changzhi1990 in #88
  • gihub-action: fix helm linter action trigger path by @fmuyassarov in #89
  • Helm chart configmap fixes and some YAML clean up by @fmuyassarov in #90
  • github: Disable e2e-test workflow by @jukkar in #102
  • helm: fix topology-aware helm chart naming by @fmuyassarov in #95
  • helm/kustomize: fix configmaps by @poussa in #104
  • build(deps): bump pygments from 2.13.0 to 2.15.0 in /docs by @dependabot in #98
  • sample-configs: drop rdt from the sample configuration by @marquiz in #106
  • pkg/multierror: switch to native golang multierror handling. by @klihub in #108
  • Add utility to patch containerd config for enabling nri by @fmuyassarov in #107
  • config-manager: bump go version to 1.20 by @fmuyassarov in #110
  • build: band-aid build system to allow building binaries other than resource policy plugins. by @klihub in #109
  • Automate Helm charts releasing process via GitHub action by @fmuyassarov in #112
  • github/workflows: ditch softprops/turnstyle action by @marquiz in #113
  • github: use the git checkout action to fetch all refs by @marquiz in #114
  • Memory QoS example plugin by @askervin in #115
  • Add nri-memtierd plugin by @askervin in #117
  • memory-qos: fix image building by @askervin in #122
  • docs: improve plugins installation instructions by @fmuyassarov in #119
  • deployment: fix the nri volume type to DirectoryOrCreate by @fmuyassarov in #123
  • helm: add charts for memtierd and memory-qos by @fmuyassarov in #118
  • helm: improve labels and selector labels set on the DaemonSet by @fmuyassarov in #124
  • helm: fix config-manager image name reference in charts defaults by @fmuyassarov in #125
  • nri-memtierd: mount only needed dirs from host by @askervin in #121
  • helm: don't set image.tag in values.yaml by @marquiz in #127
  • github: set chart version when packaging Helm charts by @marquiz in #128
  • github-action: update charts path to include memtierd and memory-qos by @fmuyassarov in #129
  • deployment: refactor config manager to support NRI enabling in CRI-O by @fmuyassarov in #120
  • helm: support NRI enabling prior to running memtierd & memory-qos plugins by @fmuyassarov in #131
  • github: issue templates by @marquiz in #130
  • Bump golang version to 1.20.10 by @marquiz in #133
  • go.mod: update deps by @marquiz in #134
  • helm: don't set initContainerImage:.tag in values.yaml by @marquiz in #136
  • cleanup: nuke unused scripts, Makefile bits and defunct functionality. by @klihub in #135
  • [release-0.2] deployment: update deployment files for v0.2.0 by @marquiz in #137

New Contributors

Full Changelog: v0.1.0...v0.2.0

v0.1.0

26 Jun 06:51
Compare
Choose a tag to compare
v0.1.0 Pre-release
Pre-release

First public release of NRI reference plugins. This is alpha quality software to demonstrate the capabilities of NRI and the reference plugins themselves.

Reference Plugins

Currently there are two reference plugins. Both of them implement resource assignment policies:

  • topology-aware: a nearly zero configuration resource policy that allocates resources evenly in order to avoid the “noisy neighbor” problem
  • balloons: allows user to allocate workloads to resources in a more user controlled way