From 07cb327c7ab30fc99cd69316aa388f8c9e62422b Mon Sep 17 00:00:00 2001 From: zhengjiajin <393926893@qq.com> Date: Tue, 18 Jul 2017 15:14:51 +0800 Subject: [PATCH] feat(*) Add pod info in helm status --- pkg/kube/client.go | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/pkg/kube/client.go b/pkg/kube/client.go index c0a9a42bb..0cd4fe27f 100644 --- a/pkg/kube/client.go +++ b/pkg/kube/client.go @@ -26,7 +26,7 @@ import ( "strings" "time" - jsonpatch "github.com/evanphx/json-patch" + "github.com/evanphx/json-patch" "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -171,6 +171,44 @@ func (c *Client) Get(namespace string, reader io.Reader) (string, error) { gvk := info.ResourceMapping().GroupVersionKind vk := gvk.Version + "/" + gvk.Kind objs[vk] = append(objs[vk], info.Object) + versioned, err := c.AsVersionedObject(info.Object) + if runtime.IsNotRegisteredError(err) { + return nil + } + if err != nil { + return err + } + + selector, err := getSelectorFromObject(versioned) + if err != nil { + return nil + } + + client, err := c.ClientSet() + if err != nil { + return err + } + pods, err := client.Core().Pods(info.Namespace).List(metav1.ListOptions{ + FieldSelector: fields.Everything().String(), + LabelSelector: labels.Set(selector).AsSelector().String(), + }) + if err != nil { + return err + } + for i := range pods.Items { + pod := pods.Items[i] + if pod.APIVersion == "" { + pod.APIVersion = "v1" + } + if pod.Kind == "" { + pod.Kind = "Pod" + } + podGvk := pod.GroupVersionKind() + vk := podGvk.Version + "/" + pod.Kind + + objs[vk] = append(objs[vk], &pod) + } + return nil }) if err != nil {