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

Enable support for taints, annotations and labels #174

Closed
prashanth26 opened this issue Oct 5, 2018 · 9 comments · Fixed by #256
Closed

Enable support for taints, annotations and labels #174

prashanth26 opened this issue Oct 5, 2018 · 9 comments · Fixed by #256
Labels
component/gardener Gardener component/mcm Machine Controller Manager (including Node Problem Detector, Cluster Auto Scaler, etc.) effort/2d Effort for issue is around 2 days kind/enhancement Enhancement, improvement, extension priority/2 Priority (lower number equals higher priority)
Milestone

Comments

@prashanth26
Copy link
Contributor

prashanth26 commented Oct 5, 2018

Problem

There is no mechanism to sync the taints, annotations, and labels between machine-object and corresponding node-objects. This causes issues when we wish to automate the propagation of such features.

Solution

Allow propagation of taints, annotations, and labels to be specified on machine objects and propagate the same onto their node objects (or vice-versa ?).

Related issues

@prashanth26 prashanth26 added kind/enhancement Enhancement, improvement, extension component/machine-controller-manager component/gardener Gardener size/s Size of pull request is small (see gardener-robot robot/bots/size.py) priority/critical Needs to be resolved soon, because it impacts users negatively labels Oct 5, 2018
@amshuman-kr
Copy link

Do we really need this feature? Do we need to sync taints and labels on machines? Can we not make things work with taints and labels on the nodes directly?

@prashanth26 prashanth26 changed the title Enable support for taints, tolerations and labels Enable support for taints, annotations and labels Oct 8, 2018
@prashanth26
Copy link
Contributor Author

After having a follow-up discussion, the following are our findings.

  1. How do you sync labels, annotations & taints between machines and nodes? A two-way (superset) sync is not possible as it would lead to race conditions between the node and the machine object. Hence it would only make sense to have it propagated from machines ----> nodes?
  2. Do we sync these across the different controllers as well? Meaning labels, annotations & taints added on the machine-deployment propagates to ---> machine-set ----> machine ----> nodes?

@prashanth26
Copy link
Contributor Author

prashanth26 commented Oct 8, 2018

The community has similar issues open here - kubernetes-sigs/cluster-api#493, kubernetes-sigs/cluster-api#458. Looking at the discussions from the community, there was a positive input by keeping them the list of labels, taints, and annotations need to be additive (not authoritative) refer - kubernetes-sigs/cluster-api#493 (comment). But I don't think that they have reached a conclusion as well.

rfranzke added a commit to gardener/gardener that referenced this issue Nov 14, 2018
- How are controller registered at Gardener and deployed to seeds
- Generic resources
- Add worker taints, labels, nodes proposal in shoot manifest (#492, gardener/machine-controller-manager#174)
@gardener-robot-ci-1 gardener-robot-ci-1 added lifecycle/stale Nobody worked on this for 6 months (will further age) and removed lifecycle/stale Nobody worked on this for 6 months (will further age) labels Dec 8, 2018
@rfranzke
Copy link
Member

Any updates here?

@prashanth26
Copy link
Contributor Author

The last I checked, the community were themselves not sure about how to approach this. I don't think they have reached a conclusion here yet.

@rfranzke
Copy link
Member

Can you elaborate on the discussions that are happening?

@prashanth26
Copy link
Contributor Author

The discussion in the community is along the same lines that we internally had a discussion here. It mainly revolves around the idea of propagation of labels. How do you sync labels between the different levels?

nodes <---> machines <---> machineset <---> machinedeployment

From which direction do we propagate the labels? which to be considered as the source of truth?

For instance: If you add a label on the node object and if the machine object adopts this label. And now if the node label is deleted, should the label be deleted on the machine object or re-copied from the machine object to the node now? How do you define which is the source of truth? Both directions of propagation of labels look important at this moment.

@rfranzke
Copy link
Member

OK, got it, thanks for the update!

@gardener-robot-ci-1 gardener-robot-ci-1 added lifecycle/stale Nobody worked on this for 6 months (will further age) and removed lifecycle/stale Nobody worked on this for 6 months (will further age) labels Mar 18, 2019
richardyuwen pushed a commit to richardyuwen/gardener that referenced this issue Mar 26, 2019
- How are controller registered at Gardener and deployed to seeds
- Generic resources
- Add worker taints, labels, nodes proposal in shoot manifest (gardener#492, gardener/machine-controller-manager#174)
@PadmaB PadmaB added this to the 1904b milestone Apr 26, 2019
@prashanth26
Copy link
Contributor Author

Support for Gardener with labels, taints & annotations - gardener/gardener#952. PR on hold waiting for MCM release with feature.

@prashanth26 prashanth26 reopened this May 6, 2019
@ghost ghost added the component/mcm Machine Controller Manager (including Node Problem Detector, Cluster Auto Scaler, etc.) label Mar 7, 2020
@gardener-robot gardener-robot added priority/2 Priority (lower number equals higher priority) effort/2d Effort for issue is around 2 days and removed priority/critical Needs to be resolved soon, because it impacts users negatively size/s Size of pull request is small (see gardener-robot robot/bots/size.py) labels Mar 8, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component/gardener Gardener component/mcm Machine Controller Manager (including Node Problem Detector, Cluster Auto Scaler, etc.) effort/2d Effort for issue is around 2 days kind/enhancement Enhancement, improvement, extension priority/2 Priority (lower number equals higher priority)
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants