diff --git a/pkg/api/serialization_test.go b/pkg/api/serialization_test.go index 7873819fee..45a1d40785 100644 --- a/pkg/api/serialization_test.go +++ b/pkg/api/serialization_test.go @@ -91,7 +91,6 @@ func fuzzerFor(t *testing.T, version string, src rand.Source) *fuzz.Fuzzer { j.Template = &api.PodTemplateSpec{} } j.Template.ObjectMeta = api.ObjectMeta{Labels: j.Template.ObjectMeta.Labels} - j.Template.Spec.NodeSelector = nil c.Fuzz(&j.Selector) j.Replicas = int(c.RandUint64()) }, diff --git a/pkg/api/v1beta1/conversion.go b/pkg/api/v1beta1/conversion.go index eaeb5de893..5260013890 100644 --- a/pkg/api/v1beta1/conversion.go +++ b/pkg/api/v1beta1/conversion.go @@ -410,6 +410,9 @@ func init() { return err } out.DesiredState.Host = in.Spec.Host + if err := s.Convert(&in.Spec.NodeSelector, &out.NodeSelector, 0); err != nil { + return err + } if err := s.Convert(&in.ObjectMeta.Labels, &out.Labels, 0); err != nil { return err } @@ -420,6 +423,9 @@ func init() { return err } out.Spec.Host = in.DesiredState.Host + if err := s.Convert(&in.NodeSelector, &out.Spec.NodeSelector, 0); err != nil { + return err + } if err := s.Convert(&in.Labels, &out.ObjectMeta.Labels, 0); err != nil { return err } diff --git a/pkg/api/v1beta1/types.go b/pkg/api/v1beta1/types.go index 1f11c12bbd..ecdbf672db 100644 --- a/pkg/api/v1beta1/types.go +++ b/pkg/api/v1beta1/types.go @@ -457,6 +457,7 @@ type ReplicationController struct { // PodTemplate holds the information used for creating pods. type PodTemplate struct { DesiredState PodState `json:"desiredState,omitempty" description:"specification of the desired state of pods created from this template"` + NodeSelector map[string]string `json:"nodeSelector,omitempty" description:"a selector which must be true for the pod to fit on a node"` Labels map[string]string `json:"labels,omitempty" description:"map of string keys and values that can be used to organize and categorize the pods created from the template; must match the selector of the replication controller to which the template belongs; may match selectors of services"` } diff --git a/pkg/api/v1beta2/conversion.go b/pkg/api/v1beta2/conversion.go index 3666e9314c..6862bae870 100644 --- a/pkg/api/v1beta2/conversion.go +++ b/pkg/api/v1beta2/conversion.go @@ -274,6 +274,9 @@ func init() { return err } out.DesiredState.Host = in.Spec.Host + if err := s.Convert(&in.Spec.NodeSelector, &out.NodeSelector, 0); err != nil { + return err + } if err := s.Convert(&in.ObjectMeta.Labels, &out.Labels, 0); err != nil { return err } @@ -284,6 +287,9 @@ func init() { return err } out.Spec.Host = in.DesiredState.Host + if err := s.Convert(&in.NodeSelector, &out.Spec.NodeSelector, 0); err != nil { + return err + } if err := s.Convert(&in.Labels, &out.ObjectMeta.Labels, 0); err != nil { return err } diff --git a/pkg/api/v1beta2/types.go b/pkg/api/v1beta2/types.go index 3f1ef0bbac..a386857bb5 100644 --- a/pkg/api/v1beta2/types.go +++ b/pkg/api/v1beta2/types.go @@ -420,6 +420,7 @@ type ReplicationController struct { // PodTemplate holds the information used for creating pods. type PodTemplate struct { DesiredState PodState `json:"desiredState,omitempty" description:"specification of the desired state of pods created from this template"` + NodeSelector map[string]string `json:"nodeSelector,omitempty" description:"a selector which must be true for the pod to fit on a node"` Labels map[string]string `json:"labels,omitempty" description:"map of string keys and values that can be used to organize and categorize the pods created from the template; must match the selector of the replication controller to which the template belongs; may match selectors of services"` }