mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-27 13:37:30 +00:00
Merge pull request #90823 from smarterclayton/service_load_balancer
Service load balancers should include unschedulable nodes
This commit is contained in:
commit
a3978d0df4
@ -635,12 +635,6 @@ func nodeSlicesEqualForLB(x, y []*v1.Node) bool {
|
|||||||
|
|
||||||
func (s *Controller) getNodeConditionPredicate() NodeConditionPredicate {
|
func (s *Controller) getNodeConditionPredicate() NodeConditionPredicate {
|
||||||
return func(node *v1.Node) bool {
|
return func(node *v1.Node) bool {
|
||||||
// We add the master to the node list, but its unschedulable. So we use this to filter
|
|
||||||
// the master.
|
|
||||||
if node.Spec.Unschedulable {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
if s.legacyNodeRoleFeatureEnabled {
|
if s.legacyNodeRoleFeatureEnabled {
|
||||||
// As of 1.6, we will taint the master, but not necessarily mark it unschedulable.
|
// As of 1.6, we will taint the master, but not necessarily mark it unschedulable.
|
||||||
// Recognize nodes labeled as master, and filter them also, as we were doing previously.
|
// Recognize nodes labeled as master, and filter them also, as we were doing previously.
|
||||||
|
@ -1379,6 +1379,11 @@ func Test_getNodeConditionPredicate(t *testing.T) {
|
|||||||
input *v1.Node
|
input *v1.Node
|
||||||
want bool
|
want bool
|
||||||
}{
|
}{
|
||||||
|
{want: false, input: &v1.Node{}},
|
||||||
|
{want: true, input: &v1.Node{Status: v1.NodeStatus{Conditions: []v1.NodeCondition{{Type: v1.NodeReady, Status: v1.ConditionTrue}}}}},
|
||||||
|
{want: false, input: &v1.Node{Status: v1.NodeStatus{Conditions: []v1.NodeCondition{{Type: v1.NodeReady, Status: v1.ConditionFalse}}}}},
|
||||||
|
{want: true, input: &v1.Node{Spec: v1.NodeSpec{Unschedulable: true}, Status: v1.NodeStatus{Conditions: []v1.NodeCondition{{Type: v1.NodeReady, Status: v1.ConditionTrue}}}}},
|
||||||
|
|
||||||
{want: true, input: &v1.Node{Status: validNodeStatus, ObjectMeta: metav1.ObjectMeta{Labels: map[string]string{}}}},
|
{want: true, input: &v1.Node{Status: validNodeStatus, ObjectMeta: metav1.ObjectMeta{Labels: map[string]string{}}}},
|
||||||
{want: true, input: &v1.Node{Status: validNodeStatus, ObjectMeta: metav1.ObjectMeta{Labels: map[string]string{labelNodeRoleMaster: ""}}}},
|
{want: true, input: &v1.Node{Status: validNodeStatus, ObjectMeta: metav1.ObjectMeta{Labels: map[string]string{labelNodeRoleMaster: ""}}}},
|
||||||
{want: true, input: &v1.Node{Status: validNodeStatus, ObjectMeta: metav1.ObjectMeta{Labels: map[string]string{labelNodeRoleExcludeBalancer: ""}}}},
|
{want: true, input: &v1.Node{Status: validNodeStatus, ObjectMeta: metav1.ObjectMeta{Labels: map[string]string{labelNodeRoleExcludeBalancer: ""}}}},
|
||||||
|
Loading…
Reference in New Issue
Block a user