submariner-io / subctl

CLI tool that provides helper commands to install, inspect, and troubleshoot a Submariner deployment.
Apache License 2.0
19 stars 23 forks source link

nodeSelector support during deployment for mixed node clusters #278

Open mikenorgate opened 2 years ago

mikenorgate commented 2 years ago

What would you like to be added: Add ability to specify nodeSelector during deployment

Why is this needed: When deploying into a cluster container a mixture of Windows and Linux nodes I would like to be able to specify a nodeSelector with a value of kubernetes.io/os: linux to make sure the submariner pods are scheduled to the correct nodes

dfarrell07 commented 1 year ago

This might solve the use case: https://github.com/submariner-io/enhancements/issues/149

mkolesnik commented 1 year ago

to make sure the submariner pods are scheduled to the correct nodes

Which pods do you mean exactly?

Or are you simply trying to limit all submariner pods to Linux nodes only?

vthapar commented 1 year ago

Idea is to implement this through a generic option to take a yaml file as input, probably take Submariner CR as input yaml with all fields missing from yaml filled up as per current default.

skitt commented 1 year ago

Isn’t this done @vthapar?

vthapar commented 1 year ago

https://github.com/submariner-io/enhancements/issues/149 is done and it adds support for node selector for submariner pods. But it doesn't add any means in subctl to set this and only provides option to modify in SubmarinerCR.

As mentioned in comment this would be better implemented by providing a generic way to pass submariner CR yaml as input to subctl join.

sridhargaddam commented 1 year ago

to make sure the submariner pods are scheduled to the correct nodes

Which pods do you mean exactly?

Or are you simply trying to limit all submariner pods to Linux nodes only?

@mikenorgate can you clarify the query from @mkolesnik.

mikenorgate commented 1 year ago

The need is to limit all submariner pods to Linux nodes

sridhargaddam commented 1 year ago

The need is to limit all submariner pods to Linux nodes

Okay. Please be aware that in order to achieve connectivity from a worker node to remote clusters, especially when using the kubeproxy based handlers, Submariner RouteAgent Pods should be running on every worker node. We can probably add necessary support in Submariner to limit scheduling of the RA pods (along with other DaemonSets) only to Linux nodes, but it might limit inter-connectivity only to those nodes. Is this something okay for you?

skitt commented 1 year ago

Given that the constraint stems from Submariner’s implementation, it might be best to always add a pod selector specifying kubernetes.io/os = Linux — end users shouldn’t have to deal with deployment failures caused by the unavailability of Windows route agents... (However they should be aware that non-Linux nodes won’t be able to use or provide multi-cluster services.)

github-actions[bot] commented 9 months ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

github-actions[bot] commented 5 months ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

github-actions[bot] commented 1 month ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.