Add session affinity flags to kubectl expose

This commit is contained in:
Brendan Burns
2015-07-31 10:34:52 -07:00
parent 452bdcae2d
commit c9bc1456ff
7 changed files with 85 additions and 1 deletions

View File

@@ -61,6 +61,7 @@ func paramNames() []GeneratorParam {
{"container-port", false}, // alias of target-port
{"target-port", false},
{"port-name", false},
{"session-affinity", false},
}
}
@@ -141,5 +142,15 @@ func generate(params map[string]string) (runtime.Object, error) {
if len(params["type"]) != 0 {
service.Spec.Type = api.ServiceType(params["type"])
}
if len(params["session-affinity"]) != 0 {
switch api.ServiceAffinity(params["session-affinity"]) {
case api.ServiceAffinityNone:
service.Spec.SessionAffinity = api.ServiceAffinityNone
case api.ServiceAffinityClientIP:
service.Spec.SessionAffinity = api.ServiceAffinityClientIP
default:
return nil, fmt.Errorf("unknown session affinity: %s", params["session-affinity"])
}
}
return &service, nil
}