diff --git a/cli/cmd/context/ls.go b/cli/cmd/context/ls.go index 7ee38fc0..9d409296 100644 --- a/cli/cmd/context/ls.go +++ b/cli/cmd/context/ls.go @@ -94,7 +94,7 @@ func getEndpoint(name string, meta map[string]interface{}) string { if !ok { return "" } - data, ok := endpoints.(store.Endpoint) + data, ok := endpoints.(*store.Endpoint) if !ok { return "" } diff --git a/context/store/store.go b/context/store/store.go index 5844fcbd..465070a0 100644 --- a/context/store/store.go +++ b/context/store/store.go @@ -211,12 +211,14 @@ func toTypedEndpoints(endpoints map[string]interface{}) (map[string]interface{}, return nil, err } typeGetters := getters() - if _, ok := typeGetters[k]; !ok { - result[k] = v - continue + typeGetter, ok := typeGetters[k]; + if !ok { + typeGetter = func() interface{} { + return &Endpoint{} + } } - val := typeGetters[k]() + val := typeGetter() err = json.Unmarshal(bytes, &val) if err != nil { return nil, err diff --git a/context/store/storedefault.go b/context/store/storedefault.go index 141d4178..95785c1f 100644 --- a/context/store/storedefault.go +++ b/context/store/storedefault.go @@ -58,10 +58,10 @@ func dockerDefaultContext() (*DockerContext, error) { meta := DockerContext{ Name: "default", Endpoints: map[string]interface{}{ - "docker": Endpoint{ + "docker": &Endpoint{ Host: defaultCtx.Endpoints.Docker.Host, }, - "kubernetes": Endpoint{ + "kubernetes": &Endpoint{ Host: defaultCtx.Endpoints.Kubernetes.Host, DefaultNamespace: defaultCtx.Endpoints.Kubernetes.DefaultNamespace, },