Use versioned Taint/Toleration/AllowPods objects when marshalling

This commit is contained in:
Jordan Liggitt
2017-01-12 23:18:34 -05:00
parent 6dfe5c49f6
commit e49554501f
13 changed files with 136 additions and 188 deletions

View File

@@ -14,6 +14,7 @@ go_library(
tags = ["automanaged"],
deps = [
"//pkg/api:go_default_library",
"//pkg/api/v1:go_default_library",
"//vendor:k8s.io/apimachinery/pkg/util/validation",
],
)

View File

@@ -23,11 +23,12 @@ import (
"k8s.io/apimachinery/pkg/util/validation"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/v1"
)
// ParseTaint parses a taint from a string. Taint must be off the format '<key>=<value>:<effect>'.
func ParseTaint(st string) (api.Taint, error) {
var taint api.Taint
func ParseTaint(st string) (v1.Taint, error) {
var taint v1.Taint
parts := strings.Split(st, "=")
if len(parts) != 2 || len(parts[1]) == 0 || len(validation.IsQualifiedName(parts[0])) > 0 {
return taint, fmt.Errorf("invalid taint spec: %v", st)
@@ -35,14 +36,14 @@ func ParseTaint(st string) (api.Taint, error) {
parts2 := strings.Split(parts[1], ":")
effect := api.TaintEffect(parts2[1])
effect := v1.TaintEffect(parts2[1])
errs := validation.IsValidLabelValue(parts2[0])
if len(parts2) != 2 || len(errs) != 0 {
return taint, fmt.Errorf("invalid taint spec: %v, %s", st, strings.Join(errs, "; "))
}
if effect != api.TaintEffectNoSchedule && effect != api.TaintEffectPreferNoSchedule {
if effect != v1.TaintEffectNoSchedule && effect != v1.TaintEffectPreferNoSchedule {
return taint, fmt.Errorf("invalid taint spec: %v, unsupported taint effect", st)
}
@@ -73,7 +74,7 @@ func (t taintsVar) Set(s string) error {
if err != nil {
return err
}
taints = append(taints, taint)
taints = append(taints, api.Taint{Key: taint.Key, Value: taint.Value, Effect: api.TaintEffect(taint.Effect)})
}
*t.ptr = taints
return nil