-
Notifications
You must be signed in to change notification settings - Fork 249
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
deployment: Implicitly generate the worker ConfigMap name #640
deployment: Implicitly generate the worker ConfigMap name #640
Conversation
Signed-off-by: Elias Koromilas <[email protected]>
Hi @eliaskoromilas. Thanks for your PR. I'm waiting for a kubernetes-sigs member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. Instructions 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. |
/assign @marquiz |
Thanks @eliaskoromilas for this
I think this sounds reasonable, I don't oppose 😄 Maybe in a separate PR, though. What I'm just thinking that we should change the kustomize-based deployment at the same time (to keep these in sync) /ok-to-test |
The problem is that in kustomize deployments everything is almost statically defined... and then patched. So everything is pretty much allowed. The default overlay uses the worker-config component and that is why the documentation states that users may edit I think that the kustomize deployment reflects the project's initial intention to serve as a K8s extension that needs to be deployed just once in a cluster. Helm changes that and transforms NFD to a K8s application that can be deployed as many times (even in the same namespace), as different NFD instances, each (probably) serving different purposes. Having both kustomize and Helm as deployment options, makes the projects intentions unclear. For example, Let me know if you want me to elaborate more with examples. |
IMO this is still the intention and objective. Nodes are "cluster scoped", so are their features/configuration and so should NFD be. Multiple parallel NFD deployments should be a rare exception. There are use cases that currently cannot be nicely covered with one NFD deployment.
Trying to move away from this e.g. with #468
Hmm, that is true 🧐 Maybe there should be an option to disable these mounts or use
I wouldn't drop it. Makes it easy to deploy without any other tools than kubectl. The selection of deployment option(s)/method(s) really should not restrict the evolution of the project, dictate technical decisions or hold us back. We can loosen the coupling between kustomize and helm deployments if it causes pain. |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: eliaskoromilas, marquiz The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
I realize now that my problem is not the kustomize deployment but the Helm one. Helm doesn't "support" cluster-scoped charts, neither cluster-scoped chart dependencies. This means that Helm apps, like the NVIDIA GPU Operator or the InAccel FPGA Operator, need to deploy their own NFD instances (with custom configuration) to make sure they will get the nodes labelled. I didn't mean to question the project's intentions, I got confused by the available Helm
But still such chart packages, that want to expose custom labels, can't depend on something they can't add as a dependency.
I agree. I just wasn't sure about project's objective. I believe though that offering strict deployment options (usually) helps users and not the opposite.
I believe this is inevitable. For example, many of the different overlays ( |
/lgtm |
Currently, this is a problem
No worries, I appreciate that somebody asks this questions
Could they depend on NFD operator? Could the operators deploy cluster-scoped CRs? #468 is probably not a full solution, yet. But hopefully a big piece of it.
By "strict", do you mean little configurability or just one support deployment method (e.g. kustomize vs. helm vs. operator)?
That's true. And I don't think we should model them there. I kind of dislike the multitude of overlays we currently have, but decided to keep them for backwards compatibility when switching over to kustomize. Maybe they should be moved to |
That's true, OLM operators are meant for that. OLM supports dependency resolution, which means that other OLM operators may add specific versions of the CRDs, that NFD owns, (or even the whole NFD operator package) as a (cluster-scoped) dependency. Helm, on the other hand, doesn't offer great support for CRDs and lifecycle management becomes too complicated.
I mean that we should probably accept the different deployment options for what they are. For example:
Having said that, it seems that Helm is the NFD deployment option with the less clear purpose.
What I propose is not to drop one method in favor of another, but to offer a clear strategy for all the available deployment methods. |
Really good discussion. And also insightful for me 🙄 For example, there are aspects that I haven't even thought about much earlier, like dependencies and cluster-scoped resources with Helm.
I agree.
Well put. We should prolly try to incorporate that^ somehow even somewhere in the documentation 😊
I think the original motivator for adding a Helm chart was to offer an "official" alternative for the multitude of downstream NFD Helm charts (and try to convince downstream to use ours).
Regarding #468, we should be a bit safer as we would be only deploying the CRD (definintion), not any CRs (objects). But the nfd-topology-updater can and will cause problems if deployed multiple times in parallel. However, it's disabled by default.
Yes, this needs to be considered. With parallel deployments one the
👍 Created #651 to keep this in mind |
fixes #627 (comment)
"node-feature-discovery.fullname"
is used to prefix the worker ConfigMap nameworker.configmapName
Helm parameter is droppedComments:
Since the template filename is still
nfd-worker-conf.yaml
, it makes sense to have the name suffix-worker-conf
.Generally, we should consider renaming the template file, to e.g.
configmap.yaml
, and drop that resource name suffix. This would make that ConfigMap resource the single source of information for any (future) nfd pod configuration (worker, master, etc.). Should I proceed with this here?