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