Skip to content
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

Templating for tolerations / nodeselector throughout the helm chart #500

Closed
hofalk opened this issue Aug 7, 2023 · 3 comments · Fixed by #513
Closed

Templating for tolerations / nodeselector throughout the helm chart #500

hofalk opened this issue Aug 7, 2023 · 3 comments · Fixed by #513
Assignees

Comments

@hofalk
Copy link

hofalk commented Aug 7, 2023

Image I'm using: 1.2.0

Issue or Feature Request: Feature Request

We are making use of taints and tolerations to group different node-roles inside our cluster. This prevents brupop to schedule updates for any tainted nodes, as it is excluded from running an agent there.

Also, it would be nice to be able to control the scheduling of the central components (apiserver & controller) to specific nodes by exposing nodeSelector and pod(Anti)Affinity throughout the helm chart. This would enable us to group our "infra-relevant" deployments on a seperated group of nodes.

I would gladly create a PR if required, but it comes down to adding a few lines of default helm templating, like

# ...
{{- with .Values.tolerations }}
tolerations:
  {{- toYaml . | nindent 8 }}
{{- end }}
# ...

for the agent daemonset, api-server and controller deployment. And something like

# ...
{{- with .Values.nodeSelector }}
nodeSelector:
  {{- toYaml . | nindent 8 }}
{{- end }}
# ...

for api-server and controller deployment.

@cbgbt
Copy link
Contributor

cbgbt commented Aug 8, 2023

Thanks for bringing this up, this is a good suggestion. I'll take a look at implementing this.

@cbgbt
Copy link
Contributor

cbgbt commented Aug 9, 2023

@hofalk we're planning to release this in Brupop 1.3.0, which you can track in #508.

I was curious if you wouldn't mind weighing in on the implementation (#513). I think your suggested use-case of separating infrastructure pods onto their own hardware is probably the most likely, but I added individualized controls for each component to allow for other bespoke setups.

I probably should have asked before merging 😅, but happy to circle back if you have any suggestions or concerns.

@cbgbt cbgbt reopened this Aug 9, 2023
@hofalk
Copy link
Author

hofalk commented Aug 10, 2023

@cbgbt Wow, that was quick! Looks good to me!

Personally I would have nested the values by component, e.g.

controller:
  tolerations: []
  nodeSelector: {}
# ...

.. but that is obviously just a matter of taste, and I am happy in any case.

Looking forward to the new release and thanks for your work on this!

@hofalk hofalk closed this as completed Aug 10, 2023
@cbgbt cbgbt self-assigned this Aug 15, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants