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) }