From d446c584659860427f641123548751b5b034ee41 Mon Sep 17 00:00:00 2001 From: Jonathan Ogilvie Date: Wed, 8 Oct 2025 12:47:17 -0400 Subject: [PATCH] fix: return descriptive error when kubeconfig isn't found Signed-off-by: Jonathan Ogilvie --- cmd/diff/diff_test.go | 4 ++-- cmd/diff/main.go | 7 ++++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/cmd/diff/diff_test.go b/cmd/diff/diff_test.go index a2c5c1f..f1aa5ad 100644 --- a/cmd/diff/diff_test.go +++ b/cmd/diff/diff_test.go @@ -996,8 +996,8 @@ func TestGetRestConfig(t *testing.T) { }{ "EmptyKubeconfigEnvVar": { kubeconfigPath: "", - expectError: true, // Will error when no in-cluster config is available - errorContains: "no configuration has been provided", + expectError: true, + errorContains: "KUBECONFIG environment variable is not set", }, "ValidKubeconfigPath": { setupFile: func() string { diff --git a/cmd/diff/main.go b/cmd/diff/main.go index a679b79..93996a6 100644 --- a/cmd/diff/main.go +++ b/cmd/diff/main.go @@ -25,6 +25,7 @@ import ( "k8s.io/client-go/tools/clientcmd" "sigs.k8s.io/controller-runtime/pkg/log/zap" + "github.com/crossplane/crossplane-runtime/v2/pkg/errors" "github.com/crossplane/crossplane-runtime/v2/pkg/logging" "github.com/crossplane/crossplane/v2/cmd/crank/version" @@ -79,5 +80,9 @@ func main() { } func getRestConfig() (*rest.Config, error) { - return clientcmd.BuildConfigFromFlags("", os.Getenv("KUBECONFIG")) + kubeconfig := os.Getenv("KUBECONFIG") + if kubeconfig == "" { + return nil, errors.New("KUBECONFIG environment variable is not set. Please set KUBECONFIG to point to your kubeconfig file") + } + return clientcmd.BuildConfigFromFlags("", kubeconfig) }