diff --git a/staging/src/k8s.io/client-go/examples/in-cluster-client-configuration/BUILD b/staging/src/k8s.io/client-go/examples/in-cluster-client-configuration/BUILD index 038801eed63..c6a83a87201 100644 --- a/staging/src/k8s.io/client-go/examples/in-cluster-client-configuration/BUILD +++ b/staging/src/k8s.io/client-go/examples/in-cluster-client-configuration/BUILD @@ -19,6 +19,7 @@ go_library( srcs = ["main.go"], tags = ["automanaged"], deps = [ + "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/client-go/kubernetes:go_default_library", "//vendor/k8s.io/client-go/rest:go_default_library", diff --git a/staging/src/k8s.io/client-go/examples/in-cluster-client-configuration/main.go b/staging/src/k8s.io/client-go/examples/in-cluster-client-configuration/main.go index b94ff440a87..f7150681759 100644 --- a/staging/src/k8s.io/client-go/examples/in-cluster-client-configuration/main.go +++ b/staging/src/k8s.io/client-go/examples/in-cluster-client-configuration/main.go @@ -21,6 +21,7 @@ import ( "fmt" "time" + "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/kubernetes" "k8s.io/client-go/rest" @@ -43,6 +44,21 @@ func main() { panic(err.Error()) } fmt.Printf("There are %d pods in the cluster\n", len(pods.Items)) + + // Examples for error handling: + // - Use helper functions like e.g. errors.IsNotFound() + // - And/or cast to StatusError and use its properties like e.g. ErrStatus.Message + _, err = clientset.CoreV1().Pods("default").Get("example-xxxxx", metav1.GetOptions{}) + if errors.IsNotFound(err) { + fmt.Printf("Pod not found\n") + } else if statusError, isStatus := err.(*errors.StatusError); isStatus { + fmt.Printf("Error getting pod %v\n", statusError.ErrStatus.Message) + } else if err != nil { + panic(err.Error()) + } else { + fmt.Printf("Found pod\n") + } + time.Sleep(10 * time.Second) } } diff --git a/staging/src/k8s.io/client-go/examples/out-of-cluster-client-configuration/BUILD b/staging/src/k8s.io/client-go/examples/out-of-cluster-client-configuration/BUILD index 92f4666d997..b38ada6f51c 100644 --- a/staging/src/k8s.io/client-go/examples/out-of-cluster-client-configuration/BUILD +++ b/staging/src/k8s.io/client-go/examples/out-of-cluster-client-configuration/BUILD @@ -19,6 +19,7 @@ go_library( srcs = ["main.go"], tags = ["automanaged"], deps = [ + "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/client-go/kubernetes:go_default_library", "//vendor/k8s.io/client-go/tools/clientcmd:go_default_library", diff --git a/staging/src/k8s.io/client-go/examples/out-of-cluster-client-configuration/main.go b/staging/src/k8s.io/client-go/examples/out-of-cluster-client-configuration/main.go index b76278b7e94..252307b1826 100644 --- a/staging/src/k8s.io/client-go/examples/out-of-cluster-client-configuration/main.go +++ b/staging/src/k8s.io/client-go/examples/out-of-cluster-client-configuration/main.go @@ -24,6 +24,7 @@ import ( "path/filepath" "time" + "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/kubernetes" "k8s.io/client-go/tools/clientcmd" @@ -57,6 +58,21 @@ func main() { panic(err.Error()) } fmt.Printf("There are %d pods in the cluster\n", len(pods.Items)) + + // Examples for error handling: + // - Use helper functions like e.g. errors.IsNotFound() + // - And/or cast to StatusError and use its properties like e.g. ErrStatus.Message + _, err = clientset.CoreV1().Pods("default").Get("example-xxxxx", metav1.GetOptions{}) + if errors.IsNotFound(err) { + fmt.Printf("Pod not found\n") + } else if statusError, isStatus := err.(*errors.StatusError); isStatus { + fmt.Printf("Error getting pod %v\n", statusError.ErrStatus.Message) + } else if err != nil { + panic(err.Error()) + } else { + fmt.Printf("Found pod\n") + } + time.Sleep(10 * time.Second) } }