Conversation
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: MarSik 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 |
| - data: | | ||
| [main] | ||
| summary=Configuration to set to 32 the nb of interrupt per NIC | ||
| include=openshift-node-performance-$name |
There was a problem hiding this comment.
In the reference configuration we also include the PerformanceProfile. We should explicitly align the names here along with a note (comment) that if you change one you need to change the other.
There was a problem hiding this comment.
Yep, we should, but the included profile also uses $name here https://github.com/openshift-kni/telco-reference/blob/main/telco-core/configuration/reference-crs/required/performance/PerformanceProfile.yaml#L7
There was a problem hiding this comment.
I could use lookupCR here to match the perf profile name, however it would not work when multiple profiles (and multiple MCPs) show up..
There was a problem hiding this comment.
I think this block is from the reference CR, not the cluster-compare template, so it may be good to hard-code some kind of reasonable default, and document when it needs to be changed.
But this is a general problem we seem to keep hitting. Is it worth opening an RFE against NTO that would allow some kind of tuned-template way to say "Include the right tuned performance profile based on this node's MCP pool name"?
| type=net | ||
| # Update the NIC name pattern | ||
| devices_udev_regex=^INTERFACE=ens1f(0|1) | ||
| channels=combined 32 |
There was a problem hiding this comment.
During discussion it was floated that 16 may be sufficient. Do we have data to back up either choice?
There was a problem hiding this comment.
Not really, this is a conservative recommendation. We can start with 16 as that is what we recommend as a starter point for schedulable control plane as well.
07336d1 to
370879a
Compare
|
@imiller0 I need a bit of a help with ./compare.sh reference-crs reference-crs-kube-compare reference-crs-kube-compare/compare_ignore |
|
You need to add another copy of the file in |
lack
left a comment
There was a problem hiding this comment.
Added some notes on how to describe the ways users will likely customize the values in the example object.
You will also need to add the tuned-queues.yaml to the metadata.yaml under reference-crs-kube-compare, and if you do use the capturegroup mechanism you will also need to declare the field that has the capturegroups to use that enhanced algorthm:
...
- path: required/networking/tuned-queues.yaml
config:
perField:
- pathToKey: spec.profile.0.data
inlineDiffFunc: capturegroups
...| [main] | ||
| summary=Configuration to set to 32 the nb of interrupt per NIC | ||
| # Make sure the include name matches the PerformanceProfile | ||
| include=openshift-node-performance-{{ .metadata.name }} |
There was a problem hiding this comment.
This will force the include to be include=openshift-node-performance-configuration-nic, which I'm not sure is right - It actually needs to be the name of the PerformanceProfile, not the name of this TuneD object, right?
If so, it's probably better to just use a capturegroup regex here (and also devices_udev_regex); something like this:
| include=openshift-node-performance-{{ .metadata.name }} | |
| include=openshift-node-performance-(?<performanceProfileName>[[:^space:]]+) |
There was a problem hiding this comment.
@MarSik can we accept Jim's changes and re-validate?
| [net] | ||
| type=net | ||
| # Update the NIC name pattern | ||
| devices_udev_regex=^INTERFACE=ens1f(0|1) |
There was a problem hiding this comment.
As above, if users are going to customize the regex part of the string, you should use something like this:
| devices_udev_regex=^INTERFACE=ens1f(0|1) | |
| devices_udev_regex=^INTERFACE=(?<ifaceRegex>[^\r\n]+) |
Note: Depends on openshift/release#62113 to merge first so CI will pass (fixes a bug in the cluster-compare version used so it doesn't get confused by the trailing ) in the example CR)
| type=net | ||
| # Update the NIC name pattern | ||
| devices_udev_regex=^INTERFACE=ens1f(0|1) | ||
| channels=combined 32 |
There was a problem hiding this comment.
If users are allowed to change this number, consider:
| channels=combined 32 | |
| channels=combined (?<channels>[0-9]+) |
| recommend: | ||
| - machineConfigLabels: | ||
| machineconfiguration.openshift.io/role: "worker" | ||
| priority: 19 | ||
| profile: configuration-nic |
There was a problem hiding this comment.
Given that we want to template the MCP name here and it's inside a list, there's a little work that needs doing, something like this:
| recommend: | |
| - machineConfigLabels: | |
| machineconfiguration.openshift.io/role: "worker" | |
| priority: 19 | |
| profile: configuration-nic | |
| recommend: | |
| {{- range .spec.recommend }} | |
| - machineConfigLabels: | |
| machineconfiguration.openshift.io/role: {{ .machineConfigLabels."machineconfiguration.openshift.io/role" }} | |
| priority: 19 | |
| profile: configuration-nic | |
| {{- end }} |
There was a problem hiding this comment.
It is a list, however only the profile created in the Tuned should be referenced here. So the name of the profile is static as well as the number of items.
There was a problem hiding this comment.
Will this always be "worker", or could this need to match different MCP pools?
There was a problem hiding this comment.
It can match various MCP pools indeed.
This file configures the number of NIC queues for kernel level networking.