in internal/testers/ginkgov1/ginkgo.go [125:163]
func (t *Tester) pretestSetup() error {
if config := os.Getenv("KUBECONFIG"); config != "" {
// The ginkgo tester errors out if the kubeconfig provided
// is not an absolute path, likely because ginkgo changes its
// working directory while executing. To get around this problem
// we can manually edit the provided KUBECONFIG to ensure a
// successful run.
if !filepath.IsAbs(config) {
newKubeconfig, err := filepath.Abs(config)
if err != nil {
return fmt.Errorf("failed to convert kubeconfig to absolute path: %s", err)
}
klog.V(0).Infof("Ginkgo tester received a non-absolute path for KUBECONFIG. Updating to: %s", newKubeconfig)
config = newKubeconfig
}
t.kubeconfigPath = config
} else {
home, err := os.UserHomeDir()
if err != nil {
return fmt.Errorf("failed to find home directory: %v", err)
}
t.kubeconfigPath = filepath.Join(home, ".kube", "config")
}
klog.V(0).Infof("Using kubeconfig at %s", t.kubeconfigPath)
if t.UseBuiltBinaries {
return t.validateLocalBinaries()
}
if t.UseBinariesFromPath {
return t.validateBinariesFromPath()
}
if err := t.AcquireTestPackage(); err != nil {
return fmt.Errorf("failed to get ginkgo test package from published releases: %s", err)
}
return nil
}