Here's how to do it with the latest Go client.
If you are in a k8s cluster:
package main import ( "fmt" "k8s.io/client-go/1.5/kubernetes" "k8s.io/client-go/1.5/pkg/api/v1" "k8s.io/client-go/1.5/rest" ) func main() { config, err = rest.InClusterConfig() if err != nil { return nil, err } c, err := kubernetes.NewForConfig(config) if err != nil { return nil, err } // Get Pod by name pod, err := c.Pods(v1.NamespaceDefault).Get("my-pod") if err != nil { fmt.Println(err) return } // Print its creation time fmt.Println(pod.GetCreationTimestamp()) }
And if you are outside the cluster:
package main import ( "fmt" "k8s.io/client-go/1.5/kubernetes" "k8s.io/client-go/1.5/pkg/api/v1" "k8s.io/client-go/1.5/tools/clientcmd" ) func main() { config, err := clientcmd.BuildConfigFromFlags("", <kube-config-path>) if err != nil { return nil, err } c, err := kubernetes.NewForConfig(config) if err != nil { return nil, err } // Get Pod by name pod, err := c.Pods(v1.NamespaceDefault).Get("my-pod") if err != nil { fmt.Println(err) return } // Print its creation time fmt.Println(pod.GetCreationTimestamp()) }
I spoke in detail about this in the message.
Rush
source share