containerd: introduce a new field to enable NRI#15994
Conversation
|
/cc @hakman |
|
Validation of the version should be in pkg/apis/kops/validation/validation.go, specifically validateContainerdConfig() |
|
Is there never going to be anything else we will need to configure around NRI? How would one get the domain or vendor-specific logic plugged in? |
cb7ce8a to
723e3ed
Compare
That's a good point. I discussed with @klihub, who has implemented NRI feature, about what parameters would be good to expose in kOps config. We agreed that at this stage of the NRI, it is good enough to have enabled, socketPath, pluginRegistrationTimeout and pluginRequestTimeout options. In case, if user wants to configure additional parameters then configOverride can be used perhaps. We could see how users adapt to using NRI via kOps and if there is a need that arises to add other parameters of NRI in kOps we can come back and add those too in the future.
Those logics are referred to as NRI plugins. Currently, there is a project called containers/nri-plugins which serves as a collection of community-maintained NRI plugins. These plugins operate as Kubernetes applications, utilizing resources like DaemonSets and ConfigMaps. Essentially, through kOps, administrators have the capability to enable NRI and subsequently install a plugin on their own. /cc @kad |
to second what @fmuyassarov already wrote: we don't want at current stage to add to deployments tools, like kops, too much of the parameters of NRI. The key part is to give cluster owners to easily enable feature and configiure the most important bits: enable flag, socket path and timeouts. Anything else if needed can be easily added later into structure if field feedback would really request it. |
I also think that at this point it would be enough for us to have the ability to enable NRI and configure/override the timeout parameters. |
|
/test pull-kops-e2e-k8s-aws-calico |
723e3ed to
babf206
Compare
|
@johngmyers, Unfortunately, I'm unable to pinpoint the exact reason behind the failings tests. Those CI checks that have failed seems due to running |
|
@fmuyassarov I think you need to run |
|
@hakman I did that :) |
Hmm, it is strange that I don't see deep copy changes here on the PR. At the same time, |
|
Is the |
Yes. It is. I will give it a try. |
|
@hakman moving out the project from GOPATH did work. Thank you for help. |
8e5b9c2 to
dcaacf8
Compare
|
@johngmyers PTAL. Thanks. |
|
/cc @hakman |
|
ping @hakman @johngmyers Hi. Would you folks have some time to take a look at the PR? |
dcaacf8 to
c0bf0dc
Compare
c0bf0dc to
6fdb3fc
Compare
6fdb3fc to
a410027
Compare
|
/hold for confirmation that manual tests are passing |
|
@fmuyassarov: The following test failed, say
Full PR test history. Your PR dashboard. Please help us cut down on flakes by linking to an open issue when you hit one in your PR. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here. |
Node Resource Interface (NRI) is a common framework for plugging domain or vendor-specific custom logic into container runtime like containerd. This commit introduces a new congiguration field `containerd.nri`, providing cluster admins the flexibility to opt in for this feature in containerd and tune some of its parameters. By default, NRI is disabled here in accordance with the containerd's default config file. Signed-off-by: Feruzjon Muyassarov <feruzjon.muyassarov@intel.com>
a410027 to
0aeab5e
Compare
|
Tests issues are now resolved. |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: hakman The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
Node Resource Interface (NRI) is a common framework for plugging domain or vendor-specific custom logic into container runtime like containerd. This commit introduces a new field
containerd.nri, providing cluster admins the flexibility to opt in (defaulted to disabled) for this feature in containerd. By default, NRI is disabled here in accordance with the containerd's default config file. Since NRI support was added to containerd starting from1.7.0release, I've added also check to ensure that at least it is1.7.0release of containerd that is in use.Example: