@@ -28,11 +28,11 @@ import (
|
|||||||
"k8s.io/client-go/tools/cache"
|
"k8s.io/client-go/tools/cache"
|
||||||
)
|
)
|
||||||
|
|
||||||
const nodeRole = "role"
|
const NodeRoleLabel = "node-role.kubernetes.io/"
|
||||||
|
|
||||||
func (ctl *NodeCtl) generateObject(item v1.Node) *Node {
|
func (ctl *NodeCtl) generateObject(item v1.Node) *Node {
|
||||||
var status, ip, role, displayName, msgStr string
|
var status, ip, displayName, msgStr string
|
||||||
var msg []string
|
var msg, role []string
|
||||||
|
|
||||||
if item.Annotations != nil && len(item.Annotations[DisplayName]) > 0 {
|
if item.Annotations != nil && len(item.Annotations[DisplayName]) > 0 {
|
||||||
displayName = item.Annotations[DisplayName]
|
displayName = item.Annotations[DisplayName]
|
||||||
@@ -42,8 +42,13 @@ func (ctl *NodeCtl) generateObject(item v1.Node) *Node {
|
|||||||
createTime := item.ObjectMeta.CreationTimestamp.Time
|
createTime := item.ObjectMeta.CreationTimestamp.Time
|
||||||
annotation := item.Annotations
|
annotation := item.Annotations
|
||||||
|
|
||||||
if _, exist := item.Labels[nodeRole]; exist {
|
// in case of multiple roles
|
||||||
role = item.Labels[nodeRole]
|
for label, _ := range item.Labels {
|
||||||
|
if strings.HasPrefix(label, NodeRoleLabel) {
|
||||||
|
if parts := strings.Split(label, "/"); len(parts) == 2 {
|
||||||
|
role = append(role, parts[1])
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, condition := range item.Status.Conditions {
|
for _, condition := range item.Status.Conditions {
|
||||||
@@ -83,7 +88,7 @@ func (ctl *NodeCtl) generateObject(item v1.Node) *Node {
|
|||||||
Annotation: MapString{annotation},
|
Annotation: MapString{annotation},
|
||||||
Taints: Taints{item.Spec.Taints},
|
Taints: Taints{item.Spec.Taints},
|
||||||
Msg: msgStr,
|
Msg: msgStr,
|
||||||
Role: role,
|
Role: strings.Join(role, ","),
|
||||||
Labels: MapString{item.Labels}}
|
Labels: MapString{item.Labels}}
|
||||||
|
|
||||||
return object
|
return object
|
||||||
@@ -120,7 +125,7 @@ func (ctl *NodeCtl) sync(stopChan chan struct{}) {
|
|||||||
func (ctl *NodeCtl) total() int {
|
func (ctl *NodeCtl) total() int {
|
||||||
list, err := ctl.lister.List(labels.Everything())
|
list, err := ctl.lister.List(labels.Everything())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
glog.Errorf("count %s falied, reason:%s", err, ctl.Name())
|
glog.Errorf("count %s failed, reason:%s", err, ctl.Name())
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
return len(list)
|
return len(list)
|
||||||
|
|||||||
Reference in New Issue
Block a user