mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-09-15 14:14:39 +00:00
Merge pull request #5264 from jlowdermilk/kube-up
Standalone kubeconfig for gce kube-up (mulligan)
This commit is contained in:
@@ -53,8 +53,8 @@ func (t *testResult) Fail() { *t = false }
|
||||
|
||||
// Run each Go end-to-end-test. This function assumes the
|
||||
// creation of a test cluster.
|
||||
func RunE2ETests(authConfig, certDir, host, repoRoot, provider string, gceConfig *GCEConfig, orderseed int64, times int, reportDir string, testList []string) {
|
||||
testContext = testContextType{authConfig, certDir, host, repoRoot, provider, *gceConfig}
|
||||
func RunE2ETests(kubeConfig, authConfig, certDir, host, repoRoot, provider string, gceConfig *GCEConfig, orderseed int64, times int, reportDir string, testList []string) {
|
||||
testContext = testContextType{kubeConfig, authConfig, certDir, host, repoRoot, provider, *gceConfig}
|
||||
util.ReallyCrash = true
|
||||
util.InitLogs()
|
||||
defer util.FlushLogs()
|
||||
|
@@ -26,6 +26,7 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/client"
|
||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/client/clientcmd"
|
||||
|
||||
. "github.com/onsi/ginkgo"
|
||||
)
|
||||
@@ -182,12 +183,17 @@ func getData(c *client.Client, podID string) (*updateDemoData, error) {
|
||||
}
|
||||
|
||||
func kubectlCmd(args ...string) *exec.Cmd {
|
||||
defaultArgs := []string{"--auth-path=" + testContext.authConfig}
|
||||
if testContext.certDir != "" {
|
||||
defaultArgs = append(defaultArgs,
|
||||
fmt.Sprintf("--certificate-authority=%s", filepath.Join(testContext.certDir, "ca.crt")),
|
||||
fmt.Sprintf("--client-certificate=%s", filepath.Join(testContext.certDir, "kubecfg.crt")),
|
||||
fmt.Sprintf("--client-key=%s", filepath.Join(testContext.certDir, "kubecfg.key")))
|
||||
defaultArgs := []string{}
|
||||
if testContext.kubeConfig != "" {
|
||||
defaultArgs = append(defaultArgs, "--"+clientcmd.RecommendedConfigPathFlag+"="+testContext.kubeConfig)
|
||||
} else {
|
||||
defaultArgs = append(defaultArgs, "--"+clientcmd.FlagAuthPath+"="+testContext.authConfig)
|
||||
if testContext.certDir != "" {
|
||||
defaultArgs = append(defaultArgs,
|
||||
fmt.Sprintf("--certificate-authority=%s", filepath.Join(testContext.certDir, "ca.crt")),
|
||||
fmt.Sprintf("--client-certificate=%s", filepath.Join(testContext.certDir, "kubecfg.crt")),
|
||||
fmt.Sprintf("--client-key=%s", filepath.Join(testContext.certDir, "kubecfg.key")))
|
||||
}
|
||||
}
|
||||
kubectlArgs := append(defaultArgs, args...)
|
||||
// TODO: Remove this once gcloud writes a proper entry in the kubeconfig file.
|
||||
|
@@ -25,8 +25,8 @@ import (
|
||||
|
||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/api"
|
||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/client"
|
||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/client/clientcmd"
|
||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/clientauth"
|
||||
|
||||
. "github.com/onsi/ginkgo"
|
||||
. "github.com/onsi/gomega"
|
||||
)
|
||||
@@ -38,6 +38,7 @@ const (
|
||||
)
|
||||
|
||||
type testContextType struct {
|
||||
kubeConfig string
|
||||
authConfig string
|
||||
certDir string
|
||||
host string
|
||||
@@ -117,32 +118,44 @@ func waitForPodSuccess(c *client.Client, podName string, contName string) error
|
||||
}
|
||||
|
||||
func loadConfig() (*client.Config, error) {
|
||||
config := &client.Config{
|
||||
Host: testContext.host,
|
||||
switch {
|
||||
case testContext.kubeConfig != "":
|
||||
fmt.Printf(">>> testContext.kubeConfig: %s\n", testContext.kubeConfig)
|
||||
c, err := clientcmd.LoadFromFile(testContext.kubeConfig)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error loading kubeConfig: %v", err.Error())
|
||||
}
|
||||
return clientcmd.NewDefaultClientConfig(*c, &clientcmd.ConfigOverrides{}).ClientConfig()
|
||||
case testContext.authConfig != "":
|
||||
config := &client.Config{
|
||||
Host: testContext.host,
|
||||
}
|
||||
info, err := clientauth.LoadFromFile(testContext.authConfig)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error loading authConfig: %v", err.Error())
|
||||
}
|
||||
// If the certificate directory is provided, set the cert paths to be there.
|
||||
if testContext.certDir != "" {
|
||||
Logf("Expecting certs in %v.", testContext.certDir)
|
||||
info.CAFile = filepath.Join(testContext.certDir, "ca.crt")
|
||||
info.CertFile = filepath.Join(testContext.certDir, "kubecfg.crt")
|
||||
info.KeyFile = filepath.Join(testContext.certDir, "kubecfg.key")
|
||||
}
|
||||
mergedConfig, err := info.MergeWithConfig(*config)
|
||||
return &mergedConfig, err
|
||||
default:
|
||||
return nil, fmt.Errorf("either kubeConfig or authConfig must be specified to load client config")
|
||||
}
|
||||
info, err := clientauth.LoadFromFile(testContext.authConfig)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("Error loading auth: %v", err.Error())
|
||||
}
|
||||
// If the certificate directory is provided, set the cert paths to be there.
|
||||
if testContext.certDir != "" {
|
||||
Logf("Expecting certs in %v.", testContext.certDir)
|
||||
info.CAFile = filepath.Join(testContext.certDir, "ca.crt")
|
||||
info.CertFile = filepath.Join(testContext.certDir, "kubecfg.crt")
|
||||
info.KeyFile = filepath.Join(testContext.certDir, "kubecfg.key")
|
||||
}
|
||||
mergedConfig, err := info.MergeWithConfig(*config)
|
||||
return &mergedConfig, err
|
||||
}
|
||||
|
||||
func loadClient() (*client.Client, error) {
|
||||
config, err := loadConfig()
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("Error creating client: %v", err.Error())
|
||||
return nil, fmt.Errorf("error creating client: %v", err.Error())
|
||||
}
|
||||
c, err := client.New(config)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("Error creating client: %v", err.Error())
|
||||
return nil, fmt.Errorf("error creating client: %v", err.Error())
|
||||
}
|
||||
return c, nil
|
||||
}
|
||||
|
Reference in New Issue
Block a user