Skip to content

Commit

Permalink
Merge pull request kubernetes#2293 from prateekgogia/node_role
Browse files Browse the repository at this point in the history
Include control plane node role when checking for control plane node
  • Loading branch information
k8s-ci-robot authored Jun 27, 2023
2 parents daebee8 + 8aa125c commit 4c08d58
Show file tree
Hide file tree
Showing 6 changed files with 50 additions and 7 deletions.
2 changes: 1 addition & 1 deletion clusterloader2/pkg/measurement/common/scheduler_latency.go
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ func (s *schedulerLatencyMeasurement) Execute(config *measurement.Config) ([]mea

var masterRegistered = false
for _, node := range nodes.Items {
if util.LegacyIsMasterNode(&node) {
if util.LegacyIsMasterNode(&node) || util.IsControlPlaneNode(&node) {
masterRegistered = true
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ func NewResourceUsageGatherer(c clientset.Interface, host string, port int, prov

masterNodes := sets.NewString()
for _, node := range nodeList.Items {
if pkgutil.LegacyIsMasterNode(&node) {
if pkgutil.LegacyIsMasterNode(&node) || pkgutil.IsControlPlaneNode(&node) {
masterNodes.Insert(node.Name)
}
}
Expand Down
2 changes: 1 addition & 1 deletion clusterloader2/pkg/prometheus/prometheus.go
Original file line number Diff line number Diff line change
Expand Up @@ -415,7 +415,7 @@ func (pc *Controller) runNodeExporter() error {
numMasters := 0
for _, node := range nodes {
node := node
if util.LegacyIsMasterNode(&node) {
if util.LegacyIsMasterNode(&node) || util.IsControlPlaneNode(&node) {
numMasters++
g.Go(func() error {
f, err := pc.manifestsFS().Open(nodeExporterPod)
Expand Down
2 changes: 1 addition & 1 deletion clusterloader2/pkg/provider/gce.go
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ func (p *GCEProvider) Metadata(c clientset.Interface) (map[string]string, error)

var masterInstanceIDs []string
for _, node := range nodes {
if util.LegacyIsMasterNode(&node) {
if util.LegacyIsMasterNode(&node) || util.IsControlPlaneNode(&node) {
zone, ok := node.Labels["topology.kubernetes.io/zone"]
if !ok {
// Fallback to old label to make it work for old k8s versions.
Expand Down
14 changes: 12 additions & 2 deletions clusterloader2/pkg/util/cluster.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import (
)

const keyMasterNodeLabel = "node-role.kubernetes.io/master"
const keyControlPlaneNodeLabel = "node-role.kubernetes.io/control-plane"

// Based on the following docs:
// https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/#taint-based-evictions
Expand Down Expand Up @@ -152,7 +153,7 @@ func GetMasterName(c clientset.Interface) (string, error) {
return "", err
}
for i := range nodeList {
if LegacyIsMasterNode(&nodeList[i]) {
if LegacyIsMasterNode(&nodeList[i]) || IsControlPlaneNode(&nodeList[i]) {
return nodeList[i].Name, nil
}
}
Expand All @@ -167,7 +168,7 @@ func GetMasterIPs(c clientset.Interface, addressType corev1.NodeAddressType) ([]
}
var ips []string
for i := range nodeList {
if LegacyIsMasterNode(&nodeList[i]) {
if LegacyIsMasterNode(&nodeList[i]) || IsControlPlaneNode(&nodeList[i]) {
for _, address := range nodeList[i].Status.Addresses {
if address.Type == addressType && address.Address != "" {
ips = append(ips, address.Address)
Expand Down Expand Up @@ -208,3 +209,12 @@ func LegacyIsMasterNode(node *corev1.Node) bool {
}
return false
}

func IsControlPlaneNode(node *corev1.Node) bool {
for key := range node.GetLabels() {
if key == keyControlPlaneNodeLabel {
return true
}
}
return false
}
35 changes: 34 additions & 1 deletion clusterloader2/pkg/util/cluster_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,11 @@ limitations under the License.
package util

import (
"testing"

"github.com/stretchr/testify/assert"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"testing"
)

func TestLegacyIsMasterNode(t *testing.T) {
Expand Down Expand Up @@ -51,3 +52,35 @@ func TestLegacyIsMasterNode(t *testing.T) {
assert.Equal(t, tc.expect, result)
}
}

func TestIsControlPlaneNode(t *testing.T) {
testcases := map[string]struct {
Name string
Labels map[string]string
expect bool
}{
"node with controlplane node-role key": {
Labels: map[string]string{keyControlPlaneNodeLabel: ""},
expect: true,
},
"node with controlplane node-role key and value as true": {
Labels: map[string]string{keyControlPlaneNodeLabel: "true"},
expect: true,
},
"node with controlplane node-role key and value as false": {
Labels: map[string]string{keyControlPlaneNodeLabel: "false"},
expect: true,
},
"node without controlplane node-role": {
Labels: map[string]string{},
expect: false,
},
}
for _, tc := range testcases {
node := &corev1.Node{
ObjectMeta: metav1.ObjectMeta{Labels: tc.Labels},
}
result := IsControlPlaneNode(node)
assert.Equal(t, tc.expect, result)
}
}

0 comments on commit 4c08d58

Please sign in to comment.