diff --git a/mapper/scheduling.go b/mapper/scheduling.go index 420b9650..eef37aa7 100644 --- a/mapper/scheduling.go +++ b/mapper/scheduling.go @@ -95,7 +95,7 @@ func (s SchedulingMapper) nodeAffinity(data map[string]interface{}, nodeAffinity values.PutValue(data, requireAny, "scheduling", "node", "requireAny") } if len(preferred) > 0 { - values.PutValue(data, requireAny, "scheduling", "node", "preferred") + values.PutValue(data, preferred, "scheduling", "node", "preferred") } } @@ -207,6 +207,7 @@ func (s SchedulingMapper) ToInternal(data map[string]interface{}) { preferred := convert.ToStringSlice(values.GetValueN(data, "scheduling", "node", "preferred")) if len(requireAll) == 0 && len(requireAny) == 0 && len(preferred) == 0 { + data["affinity"] = nil return } @@ -243,6 +244,14 @@ func (s SchedulingMapper) ToInternal(data map[string]interface{}) { NodeAffinity: &nodeAffinity, }) + if nodeAffinity.PreferredDuringSchedulingIgnoredDuringExecution == nil { + values.PutValue(affinity, nil, "nodeAffinity", "preferredDuringSchedulingIgnoredDuringExecution") + } + + if nodeAffinity.RequiredDuringSchedulingIgnoredDuringExecution == nil { + values.PutValue(affinity, nil, "nodeAffinity", "requiredDuringSchedulingIgnoredDuringExecution") + } + data["affinity"] = affinity }