mirror of https://github.com/k3s-io/k3s
commit
74c07f1094
|
@ -34,6 +34,7 @@ import (
|
|||
kfields "github.com/GoogleCloudPlatform/kubernetes/pkg/fields"
|
||||
klabels "github.com/GoogleCloudPlatform/kubernetes/pkg/labels"
|
||||
tools "github.com/GoogleCloudPlatform/kubernetes/pkg/tools"
|
||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/util/wait"
|
||||
kwatch "github.com/GoogleCloudPlatform/kubernetes/pkg/watch"
|
||||
etcd "github.com/coreos/go-etcd/etcd"
|
||||
skymsg "github.com/skynetservices/skydns/msg"
|
||||
|
@ -121,25 +122,22 @@ func newEtcdClient() (client *etcd.Client) {
|
|||
}
|
||||
}
|
||||
// loop until we have > 0 machines && machines[0] != ""
|
||||
timeout := false
|
||||
go func() {
|
||||
<-time.After(10 * time.Second)
|
||||
timeout = true
|
||||
}()
|
||||
for !timeout {
|
||||
client = etcd.NewClient([]string{*etcd_server})
|
||||
if client == nil {
|
||||
return nil
|
||||
poll, timeout := 1*time.Second, 10*time.Second
|
||||
if err := wait.Poll(poll, timeout, func() (bool, error) {
|
||||
if client = etcd.NewClient([]string{*etcd_server}); client == nil {
|
||||
log.Fatal("etcd.NewClient returned nil")
|
||||
}
|
||||
client.SyncCluster()
|
||||
machines := client.GetCluster()
|
||||
if len(machines) > 0 && len(machines[0]) > 0 {
|
||||
if len(machines) == 0 || len(machines[0]) == 0 {
|
||||
return false, nil
|
||||
}
|
||||
return true, nil
|
||||
}); err != nil {
|
||||
log.Fatalf("Timed out after %s waiting for at least 1 synchronized etcd server in the cluster", timeout)
|
||||
}
|
||||
return client
|
||||
}
|
||||
}
|
||||
log.Fatal("Timed out waiting for correct response from etcd server")
|
||||
return nil
|
||||
}
|
||||
|
||||
// TODO: evaluate using pkg/client/clientcmd
|
||||
func newKubeClient() (*kclient.Client, error) {
|
||||
|
|
|
@ -31,7 +31,7 @@ desiredState:
|
|||
"-initial-cluster-token=skydns-etcd",
|
||||
]
|
||||
- name: kube2sky
|
||||
image: gcr.io/google_containers/kube2sky:1.3
|
||||
image: gcr.io/google_containers/kube2sky:1.4
|
||||
volumeMounts:
|
||||
- name: dns-token
|
||||
mountPath: /etc/dns_token
|
||||
|
|
|
@ -517,7 +517,7 @@ func GetEtcdVersion(host string) (string, error) {
|
|||
}
|
||||
defer response.Body.Close()
|
||||
if response.StatusCode != http.StatusOK {
|
||||
return "", fmt.Errorf("Unsuccessful response from server: %v", err)
|
||||
return "", fmt.Errorf("unsuccessful response from etcd server %q: %v", host, err)
|
||||
}
|
||||
versionBytes, err := ioutil.ReadAll(response.Body)
|
||||
if err != nil {
|
||||
|
|
|
@ -35,6 +35,8 @@ import (
|
|||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
const validEtcdVersion = "etcd 2.0.9"
|
||||
|
||||
type TestResource struct {
|
||||
api.TypeMeta `json:",inline"`
|
||||
api.ObjectMeta `json:"metadata"`
|
||||
|
@ -685,7 +687,7 @@ func TestGuaranteedUpdate_CreateCollision(t *testing.T) {
|
|||
|
||||
func TestGetEtcdVersion_ValidVersion(t *testing.T) {
|
||||
testServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
fmt.Fprint(w, "etcd 2.0.9")
|
||||
fmt.Fprint(w, validEtcdVersion)
|
||||
}))
|
||||
defer testServer.Close()
|
||||
|
||||
|
@ -694,7 +696,7 @@ func TestGetEtcdVersion_ValidVersion(t *testing.T) {
|
|||
if version, err = GetEtcdVersion(testServer.URL); err != nil {
|
||||
t.Errorf("Unexpected error: %v", err)
|
||||
}
|
||||
assert.Equal(t, "etcd 2.0.9", version, "Unexpected version")
|
||||
assert.Equal(t, validEtcdVersion, version, "Unexpected version")
|
||||
assert.Nil(t, err)
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue