func()

in perf-tools/framework/node_analyzer.go [46:71]


func (na *NodeAnalyzer) InitNodeInfosBeforeTesting() error {
	// get resource map for schedulable nodes
	nodes, err := na.kubeClient.GetNodes(&metav1.ListOptions{LabelSelector: na.nodeSelector})
	if nodes == nil || err != nil {
		return err
	}
	if len(nodes.Items) == 0 {
		return fmt.Errorf("no selected nodes in k8s cluster, nodeSelector=%s", na.nodeSelector)
	}
	na.allocatableNodes = make(map[string]*NodeInfo)
	for _, nodeItem := range nodes.Items {
		if nodeItem.Spec.Unschedulable {
			utils.Logger.Debug("skip unschedulable node", zap.String("nodeID", nodeItem.Name))
			continue
		}
		if !IsNodeReady(&nodeItem) {
			utils.Logger.Debug("skip not-ready node", zap.String("nodeID", nodeItem.Name))
			continue
		}
		// allocatable resource is the upper limit of allocated resource for pods
		capacityRes := ParseResourceFromResourceList(&nodeItem.Status.Allocatable)
		nodeInfo := NewNodeInfo(nodeItem.Name, capacityRes, resources.NewResource())
		na.allocatableNodes[nodeItem.Name] = nodeInfo
	}
	return nil
}