Merge branch 'master' into jenkins-releases.json-v0.17.1

pull/1216/head
Matt Rickard 2017-03-06 11:16:57 -08:00 committed by GitHub
commit 4639bc01a0
4 changed files with 45 additions and 23 deletions

View File

@ -108,6 +108,11 @@ To debug issues with minikube (not kubernetes but minikube itself), you can use
* --v=3 libmachine logging
* --v=7 libmachine --debug level logging
If you need to access additional tools for debugging, minikube also includes the [CoreOS toolbox](https://github.com/coreos/toolbox)
You can ssh into the toolbox and access these additional commands using:
`minikube ssh toolbox`
### Using rkt container engine
To use [rkt](https://github.com/coreos/rkt) as the container runtime run:
@ -293,10 +298,11 @@ spec:
You can also achieve persistence by creating a PV in a mounted host folder.
## Mounted Host Folders
Some drivers will mount a host folder within the VM so that you can easily share files between the VM and host. These are not configurable at the moment and different for the driver and OS you are using. Note: Host folder sharing is not implemented on Linux yet.
Some drivers will mount a host folder within the VM so that you can easily share files between the VM and host. These are not configurable at the moment and different for the driver and OS you are using. Note: Host folder sharing is not implemented in the KVM driver yet.
| Driver | OS | HostFolder | VM |
| --- | --- | --- | --- |
| Virtualbox | Linux | /home | /hosthome |
| Virtualbox | OSX | /Users | /Users |
| Virtualbox | Windows | C://Users | /c/Users |
| VMWare Fusion | OSX | /Users | /Users |

View File

@ -1,5 +1,5 @@
[
{
{
"name": "v0.17.1",
"checksums": {
"darwin": "b175c355d377a6ce2fefdd19201c865a7e628581261ac949fffb725af459c389",
@ -7,6 +7,15 @@
"windows": "86a713ced29399c736d14bf19be7aead96a22b03374441d99a457a4c44df9d53"
}
},
{
"name": "v0.17.0",
"checksums": {
"darwin": "d12fb4f8d9ff538c5563e1dcdf29495dc47b64a3fe108d7190fa37bf94a09a21",
"linux": "086d3438a9c2f324f494cf6dd4c422c27e93b19dd874c77d093d8ff91709a659",
"windows": "3d349978704791596a03237715ad502f5ab5bbd76014b761e579e859a5eaf4c1"
}
},
{
"name": "v0.16.0",
"checksums": {

View File

@ -47,44 +47,47 @@ func findNestedElement(s string, c interface{}) (reflect.Value, error) {
// setElement sets the supplied element to the value in the supplied string. The string will be coerced to the correct type.
func setElement(e reflect.Value, v string) error {
switch t := e.Interface().(type) {
case int, int32, int64:
switch e.Kind() {
case reflect.Int, reflect.Int32, reflect.Int64:
i, err := strconv.Atoi(v)
if err != nil {
return fmt.Errorf("Error converting input %s to an integer: %s", v, err)
}
e.SetInt(int64(i))
case string:
case reflect.String:
e.SetString(v)
case float32, float64:
case reflect.Float32, reflect.Float64:
f, err := strconv.ParseFloat(v, 64)
if err != nil {
return fmt.Errorf("Error converting input %s to a float: %s", v, err)
}
e.SetFloat(f)
case bool:
case reflect.Bool:
b, err := strconv.ParseBool(v)
if err != nil {
return fmt.Errorf("Error converting input %s to a bool: %s", v, err)
}
e.SetBool(b)
case net.IP:
ip := net.ParseIP(v)
if ip == nil {
return fmt.Errorf("Error converting input %s to an IP.", v)
}
e.Set(reflect.ValueOf(ip))
case utilnet.PortRange:
pr, err := utilnet.ParsePortRange(v)
if err != nil {
return fmt.Errorf("Error converting input %s to PortRange: %s", v, err)
}
e.Set(reflect.ValueOf(*pr))
case []string:
vals := strings.Split(v, ",")
e.Set(reflect.ValueOf(vals))
default:
return fmt.Errorf("Unable to set type %T.", t)
switch t := e.Interface().(type) {
case net.IP:
ip := net.ParseIP(v)
if ip == nil {
return fmt.Errorf("Error converting input %s to an IP.", v)
}
e.Set(reflect.ValueOf(ip))
case utilnet.PortRange:
pr, err := utilnet.ParsePortRange(v)
if err != nil {
return fmt.Errorf("Error converting input %s to PortRange: %s", v, err)
}
e.Set(reflect.ValueOf(*pr))
case []string:
vals := strings.Split(v, ",")
e.Set(reflect.ValueOf(vals))
default:
return fmt.Errorf("Unable to set type %T.", t)
}
}
return nil
}

View File

@ -25,6 +25,8 @@ import (
utilnet "k8s.io/kubernetes/pkg/util/net"
)
type aliasedString string
type testConfig struct {
A string
B int
@ -54,6 +56,7 @@ type subConfig3 struct {
Q net.IP
R utilnet.PortRange
S []string
T aliasedString
}
func buildConfig() testConfig {
@ -172,6 +175,7 @@ func TestSetElement(t *testing.T) {
{"D.I.Q", "11.22.33.44", func(t testConfig) bool { return t.D.I.Q.Equal(net.ParseIP("11.22.33.44")) }},
{"D.I.R", "7-11", func(t testConfig) bool { return t.D.I.R.Base == 7 && t.D.I.R.Size == 5 }},
{"D.I.S", "a,b", func(t testConfig) bool { return reflect.DeepEqual(t.D.I.S, []string{"a", "b"}) }},
{"D.I.T", "foo", func(t testConfig) bool { return t.D.I.T == "foo" }},
} {
a := buildConfig()
if err := FindAndSet(tc.path, &a, tc.newval); err != nil {