func RegisterCommonFlags(flags *flag.FlagSet) {
	flags.StringVar(&TestContext.KubeConfig, clientcmd.RecommendedConfigPathFlag, os.Getenv(clientcmd.RecommendedConfigPathEnvVar), "Path to kubeconfig containing embedded authinfo.")
	flags.StringVar(&TestContext.KubeContext, clientcmd.FlagContext, "", "kubeconfig context to use/override. If unset, will use value from 'current-context'")
	flags.StringVar(&TestContext.Host, "host", "", fmt.Sprintf("The host, or apiserver, to connect to. Will default to %s if this argument and --kubeconfig are not set.", defaultHost))
	flags.StringVar(&TestContext.OutputDir, "e2e-output-dir", "/tmp", "Output directory for interesting/useful test data, like performance data, benchmarks, and other metrics.")
	flags.BoolVar(&TestContext.DumpLogsOnFailure, "dump-logs-on-failure", true, "If set to true test will dump data about the namespace in which test was running.")
	flags.BoolVar(&TestContext.DisableLogDump, "disable-log-dump", false, "If set to true, logs from master and nodes won't be gathered after test run.")
	flag.IntVar(&TestContext.TimeoutSeconds, "pod-wait-timeout", 100, "Timeout to wait for a pod to be ready.")
}
RegisterCommonFlags registers flags common to all e2e test suites.
The flag set can be flag.CommandLine (if desired) or a custom
flag set that then gets passed to viperconfig.ViperizeFlags.

The other Register*Flags methods below can be used to add more
test-specific flags. However, those settings then get added
regardless whether the test is actually in the test suite.

For tests that have been converted to registering their
options themselves, copy flags from test/e2e/framework/config
as shown in HandleFlags.
package framework
import (
	"flag"
	"fmt"
	"os"
	"k8s.io/client-go/tools/clientcmd"
)
const (
	defaultHost = "https://127.0.0.1:6443"
	DefaultNumNodes = -1
)
type TestContextType struct {
	KubeConfig  string
	KubeContext string
	Host        string
	OutputDir string
	DumpLogsOnFailure bool
	DisableLogDump bool
	TimeoutSeconds int
}
var TestContext TestContextType