From 58a58a29842851930f5a7c0a7bd15d1d47279be3 Mon Sep 17 00:00:00 2001 From: jeff Date: Thu, 29 Nov 2018 14:46:09 +0800 Subject: [PATCH] query workload pods in a graceful way, which supports paging --- pkg/models/controllers/pods.go | 10 ++++++++++ pkg/models/controllers/types.go | 2 ++ 2 files changed, 12 insertions(+) diff --git a/pkg/models/controllers/pods.go b/pkg/models/controllers/pods.go index dc3caa290..1278ef272 100644 --- a/pkg/models/controllers/pods.go +++ b/pkg/models/controllers/pods.go @@ -175,6 +175,14 @@ func (ctl *PodCtl) generateObject(item v1.Pod) *Pod { createTime := item.CreationTimestamp.Time containerStatus := item.Status.ContainerStatuses containerSpecs := item.Spec.Containers + var ownerKind, ownerName string + + // For ReplicaSet,ReplicaController,DaemonSet,StatefulSet,Job,CronJob, k8s will automatically + // set ownerReference for pods, in case of setting ownerReference manually. + if item.OwnerReferences != nil && len(item.OwnerReferences) > 0 { + ownerKind = item.OwnerReferences[0].Kind + ownerName = item.OwnerReferences[0].Name + } var containers Containers @@ -204,6 +212,8 @@ func (ctl *PodCtl) generateObject(item v1.Pod) *Pod { Annotation: MapString{item.Annotations}, Containers: containers, RestartCount: restartCount, + OwnerKind: ownerKind, + OwnerName: ownerName, Labels: MapString{item.Labels}, } diff --git a/pkg/models/controllers/types.go b/pkg/models/controllers/types.go index 03f1fd5d5..fcf538570 100644 --- a/pkg/models/controllers/types.go +++ b/pkg/models/controllers/types.go @@ -219,6 +219,8 @@ type Pod struct { Containers Containers `gorm:"type:text" json:"containers,omitempty"` Annotation MapString `json:"annotations"` Labels MapString `json:"labels"` + OwnerKind string `gorm:"column:ownerKind" json:"ownerKind,omitempty"` + OwnerName string `gorm:"column:ownerName" json:"ownerName,omitempty"` RestartCount int `json:"restartCount"` CreateTime time.Time `gorm:"column:createTime" json:"createTime,omitempty"` }