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

Add toleration for new "control-plane" node label for Concierge deploy #1031

Merged
merged 2 commits into from
Feb 26, 2022

Conversation

cfryanr
Copy link
Member

@cfryanr cfryanr commented Feb 22, 2022

Addresses #1010.

Add toleration for new "control-plane" node label for Concierge deployment, which will be required instead of old "master" name for Kubernetes 1.24+.

Release note:

None, as this change won't be noticeable by users. See comment below for more information.

NONE

@codecov
Copy link

codecov bot commented Feb 22, 2022

Codecov Report

Merging #1031 (8dc4a89) into main (619b8c1) will not change coverage.
The diff coverage is n/a.

Impacted file tree graph

@@           Coverage Diff           @@
##             main    #1031   +/-   ##
=======================================
  Coverage   79.38%   79.38%           
=======================================
  Files         133      133           
  Lines        9972     9972           
=======================================
  Hits         7916     7916           
  Misses       1786     1786           
  Partials      270      270           

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 619b8c1...8dc4a89. Read the comment docs.

@cfryanr
Copy link
Member Author

cfryanr commented Feb 24, 2022

I confirmed that even without this PR, the Concierge deploys fine on multi-node clusters using the pre-release of Kubernetes 1.24. The Concierge does not ask to be scheduled on control plane nodes (no affinity for control plane), but it does tolerate control plane nodes. Therefore, in a multi-node cluster that has enough resources, the Concierge will be scheduled onto a worker node and the Concierge tolerations don't matter. On a single-node cluster, the single node would not be tainted as "control-plane", or else most apps would fail to deploy, so again the Concierge tolerations don't matter.

Note that the "concierge-kube-cert-agent" pod does want to be scheduled on the control plane nodes, but that code already correctly handles the new "control-plane" taint name, so there is no change needed in that code.

Theoretically, if a multi-node cluster were suffering from a lack of resources and the Concierge could only be scheduled (or rescheduled) on to a control plane node, then we would want to allow that by tolerating the "control-plane" taint. That would be preferable to losing the Concierge pods. For this reason, this PR seems like it still has some value.

@margocrawf
Copy link
Contributor

This approach makes sense to me, particularly since if anyone feels really strongly that the concierge should not run on their control plane nodes, they are free to edit the deployment.yaml, right?

I can't think of a reason we should outright avoid running on control plane nodes.

Copy link
Contributor

@enj enj left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Conceptually, the concierge is part of the control plane. The functionality it provides is what we wished the API server supported directly anyway.

I could see arguments for making the concierge have affinity for the control plane nodes, but we do not need to worry about that right now.

A similar line of reasoning could be applied to the supervisor.

@enj enj merged commit 04c6b33 into main Feb 26, 2022
@enj enj deleted the tolerate-control-plane branch February 26, 2022 17:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants