diff --git a/pkg/apis/extensions/types.generated.go b/pkg/apis/extensions/types.generated.go index 0c6360ffde6..c1b20a733f6 100644 --- a/pkg/apis/extensions/types.generated.go +++ b/pkg/apis/extensions/types.generated.go @@ -14609,7 +14609,7 @@ func (x *ReplicaSetSpec) CodecEncodeSelf(e *codec1978.Encoder) { _, _, _ = yysep2, yyq2, yy2arr2 const yyr2 bool = false yyq2[1] = x.Selector != nil - yyq2[2] = x.Template != nil + yyq2[2] = true var yynn2 int if yyr2 || yy2arr2 { r.EncodeArrayStart(3) @@ -14680,11 +14680,8 @@ func (x *ReplicaSetSpec) CodecEncodeSelf(e *codec1978.Encoder) { if yyr2 || yy2arr2 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) if yyq2[2] { - if x.Template == nil { - r.EncodeNil() - } else { - x.Template.CodecEncodeSelf(e) - } + yy10 := &x.Template + yy10.CodecEncodeSelf(e) } else { r.EncodeNil() } @@ -14693,11 +14690,8 @@ func (x *ReplicaSetSpec) CodecEncodeSelf(e *codec1978.Encoder) { z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("template")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - if x.Template == nil { - r.EncodeNil() - } else { - x.Template.CodecEncodeSelf(e) - } + yy12 := &x.Template + yy12.CodecEncodeSelf(e) } } if yyr2 || yy2arr2 { @@ -14786,14 +14780,10 @@ func (x *ReplicaSetSpec) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) { } case "template": if r.TryDecodeAsNil() { - if x.Template != nil { - x.Template = nil - } + x.Template = pkg2_api.PodTemplateSpec{} } else { - if x.Template == nil { - x.Template = new(pkg2_api.PodTemplateSpec) - } - x.Template.CodecDecodeSelf(d) + yyv7 := &x.Template + yyv7.CodecDecodeSelf(d) } default: z.DecStructFieldNotFound(-1, yys3) @@ -14864,14 +14854,10 @@ func (x *ReplicaSetSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) { } z.DecSendContainerState(codecSelfer_containerArrayElem1234) if r.TryDecodeAsNil() { - if x.Template != nil { - x.Template = nil - } + x.Template = pkg2_api.PodTemplateSpec{} } else { - if x.Template == nil { - x.Template = new(pkg2_api.PodTemplateSpec) - } - x.Template.CodecDecodeSelf(d) + yyv12 := &x.Template + yyv12.CodecDecodeSelf(d) } for { yyj8++ @@ -18962,7 +18948,7 @@ func (x codecSelfer1234) decSliceReplicaSet(v *[]ReplicaSet, d *codec1978.Decode yyrg1 := len(yyv1) > 0 yyv21 := yyv1 - yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 232) + yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 552) if yyrt1 { if yyrl1 <= cap(yyv1) { yyv1 = yyv1[:yyrl1] diff --git a/pkg/apis/extensions/types.go b/pkg/apis/extensions/types.go index ce09e26c4e8..ffaa9795978 100644 --- a/pkg/apis/extensions/types.go +++ b/pkg/apis/extensions/types.go @@ -807,7 +807,7 @@ type ReplicaSetSpec struct { // Template is the object that describes the pod that will be created if // insufficient replicas are detected. - Template *api.PodTemplateSpec `json:"template,omitempty"` + Template api.PodTemplateSpec `json:"template,omitempty"` } // ReplicaSetStatus represents the current status of a ReplicaSet. diff --git a/pkg/apis/extensions/v1beta1/conversion.go b/pkg/apis/extensions/v1beta1/conversion.go index 40108025f6d..5f4841cb431 100644 --- a/pkg/apis/extensions/v1beta1/conversion.go +++ b/pkg/apis/extensions/v1beta1/conversion.go @@ -297,13 +297,9 @@ func Convert_extensions_ReplicaSetSpec_To_v1beta1_ReplicaSetSpec(in *extensions. } else { out.Selector = nil } - if in.Template != nil { - out.Template = new(v1.PodTemplateSpec) - if err := v1.Convert_api_PodTemplateSpec_To_v1_PodTemplateSpec(in.Template, out.Template, s); err != nil { - return err - } - } else { - out.Template = nil + + if err := v1.Convert_api_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + return err } return nil } @@ -323,13 +319,8 @@ func Convert_v1beta1_ReplicaSetSpec_To_extensions_ReplicaSetSpec(in *ReplicaSetS } else { out.Selector = nil } - if in.Template != nil { - out.Template = new(api.PodTemplateSpec) - if err := v1.Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(in.Template, out.Template, s); err != nil { - return err - } - } else { - out.Template = nil + if err := v1.Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + return err } return nil } diff --git a/pkg/apis/extensions/v1beta1/conversion_generated.go b/pkg/apis/extensions/v1beta1/conversion_generated.go index a1db7353005..956e9855a82 100644 --- a/pkg/apis/extensions/v1beta1/conversion_generated.go +++ b/pkg/apis/extensions/v1beta1/conversion_generated.go @@ -3599,14 +3599,8 @@ func autoConvert_extensions_ReplicaSetSpec_To_v1beta1_ReplicaSetSpec(in *extensi } else { out.Selector = nil } - // unable to generate simple pointer conversion for api.PodTemplateSpec -> v1.PodTemplateSpec - if in.Template != nil { - out.Template = new(v1.PodTemplateSpec) - if err := Convert_api_PodTemplateSpec_To_v1_PodTemplateSpec(in.Template, out.Template, s); err != nil { - return err - } - } else { - out.Template = nil + if err := Convert_api_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + return err } return nil } @@ -4848,14 +4842,8 @@ func autoConvert_v1beta1_ReplicaSetSpec_To_extensions_ReplicaSetSpec(in *Replica } else { out.Selector = nil } - // unable to generate simple pointer conversion for v1.PodTemplateSpec -> api.PodTemplateSpec - if in.Template != nil { - out.Template = new(api.PodTemplateSpec) - if err := Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(in.Template, out.Template, s); err != nil { - return err - } - } else { - out.Template = nil + if err := Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + return err } return nil } diff --git a/pkg/apis/extensions/v1beta1/deep_copy_generated.go b/pkg/apis/extensions/v1beta1/deep_copy_generated.go index b0321374267..2157e2ad5ef 100644 --- a/pkg/apis/extensions/v1beta1/deep_copy_generated.go +++ b/pkg/apis/extensions/v1beta1/deep_copy_generated.go @@ -1738,13 +1738,8 @@ func deepCopy_v1beta1_ReplicaSetSpec(in ReplicaSetSpec, out *ReplicaSetSpec, c * } else { out.Selector = nil } - if in.Template != nil { - out.Template = new(v1.PodTemplateSpec) - if err := deepCopy_v1_PodTemplateSpec(*in.Template, out.Template, c); err != nil { - return err - } - } else { - out.Template = nil + if err := deepCopy_v1_PodTemplateSpec(in.Template, &out.Template, c); err != nil { + return err } return nil } diff --git a/pkg/apis/extensions/v1beta1/defaults.go b/pkg/apis/extensions/v1beta1/defaults.go index cb197a9652f..5373c23d810 100644 --- a/pkg/apis/extensions/v1beta1/defaults.go +++ b/pkg/apis/extensions/v1beta1/defaults.go @@ -118,10 +118,8 @@ func addDefaultingFuncs(scheme *runtime.Scheme) { } }, func(obj *ReplicaSet) { - var labels map[string]string - if obj.Spec.Template != nil { - labels = obj.Spec.Template.Labels - } + labels := obj.Spec.Template.Labels + // TODO: support templates defined elsewhere when we support them in the API if labels != nil { if obj.Spec.Selector == nil { diff --git a/pkg/apis/extensions/v1beta1/defaults_test.go b/pkg/apis/extensions/v1beta1/defaults_test.go index 85b991980aa..760df336056 100644 --- a/pkg/apis/extensions/v1beta1/defaults_test.go +++ b/pkg/apis/extensions/v1beta1/defaults_test.go @@ -426,7 +426,7 @@ func TestSetDefaultReplicaSet(t *testing.T) { { rs: &ReplicaSet{ Spec: ReplicaSetSpec{ - Template: &v1.PodTemplateSpec{ + Template: v1.PodTemplateSpec{ ObjectMeta: v1.ObjectMeta{ Labels: map[string]string{ "foo": "bar", @@ -446,7 +446,7 @@ func TestSetDefaultReplicaSet(t *testing.T) { }, }, Spec: ReplicaSetSpec{ - Template: &v1.PodTemplateSpec{ + Template: v1.PodTemplateSpec{ ObjectMeta: v1.ObjectMeta{ Labels: map[string]string{ "foo": "bar", @@ -471,7 +471,7 @@ func TestSetDefaultReplicaSet(t *testing.T) { "some": "other", }, }, - Template: &v1.PodTemplateSpec{ + Template: v1.PodTemplateSpec{ ObjectMeta: v1.ObjectMeta{ Labels: map[string]string{ "foo": "bar", @@ -491,7 +491,7 @@ func TestSetDefaultReplicaSet(t *testing.T) { "some": "other", }, }, - Template: &v1.PodTemplateSpec{ + Template: v1.PodTemplateSpec{ ObjectMeta: v1.ObjectMeta{ Labels: map[string]string{ "foo": "bar", @@ -538,7 +538,7 @@ func TestSetDefaultReplicaSetReplicas(t *testing.T) { { rs: ReplicaSet{ Spec: ReplicaSetSpec{ - Template: &v1.PodTemplateSpec{ + Template: v1.PodTemplateSpec{ ObjectMeta: v1.ObjectMeta{ Labels: map[string]string{ "foo": "bar", @@ -553,7 +553,7 @@ func TestSetDefaultReplicaSetReplicas(t *testing.T) { rs: ReplicaSet{ Spec: ReplicaSetSpec{ Replicas: newInt32(0), - Template: &v1.PodTemplateSpec{ + Template: v1.PodTemplateSpec{ ObjectMeta: v1.ObjectMeta{ Labels: map[string]string{ "foo": "bar", @@ -568,7 +568,7 @@ func TestSetDefaultReplicaSetReplicas(t *testing.T) { rs: ReplicaSet{ Spec: ReplicaSetSpec{ Replicas: newInt32(3), - Template: &v1.PodTemplateSpec{ + Template: v1.PodTemplateSpec{ ObjectMeta: v1.ObjectMeta{ Labels: map[string]string{ "foo": "bar", @@ -611,7 +611,7 @@ func TestDefaultRequestIsNotSetForReplicaSet(t *testing.T) { rs := &ReplicaSet{ Spec: ReplicaSetSpec{ Replicas: newInt32(3), - Template: &v1.PodTemplateSpec{ + Template: v1.PodTemplateSpec{ ObjectMeta: v1.ObjectMeta{ Labels: map[string]string{ "foo": "bar", diff --git a/pkg/apis/extensions/v1beta1/types.generated.go b/pkg/apis/extensions/v1beta1/types.generated.go index 11ac78e75ee..86fda0e3046 100644 --- a/pkg/apis/extensions/v1beta1/types.generated.go +++ b/pkg/apis/extensions/v1beta1/types.generated.go @@ -15962,7 +15962,7 @@ func (x *ReplicaSetSpec) CodecEncodeSelf(e *codec1978.Encoder) { const yyr2 bool = false yyq2[0] = x.Replicas != nil yyq2[1] = x.Selector != nil - yyq2[2] = x.Template != nil + yyq2[2] = true var yynn2 int if yyr2 || yy2arr2 { r.EncodeArrayStart(3) @@ -16037,11 +16037,8 @@ func (x *ReplicaSetSpec) CodecEncodeSelf(e *codec1978.Encoder) { if yyr2 || yy2arr2 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) if yyq2[2] { - if x.Template == nil { - r.EncodeNil() - } else { - x.Template.CodecEncodeSelf(e) - } + yy12 := &x.Template + yy12.CodecEncodeSelf(e) } else { r.EncodeNil() } @@ -16050,11 +16047,8 @@ func (x *ReplicaSetSpec) CodecEncodeSelf(e *codec1978.Encoder) { z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("template")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - if x.Template == nil { - r.EncodeNil() - } else { - x.Template.CodecEncodeSelf(e) - } + yy14 := &x.Template + yy14.CodecEncodeSelf(e) } } if yyr2 || yy2arr2 { @@ -16147,14 +16141,10 @@ func (x *ReplicaSetSpec) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) { } case "template": if r.TryDecodeAsNil() { - if x.Template != nil { - x.Template = nil - } + x.Template = pkg2_v1.PodTemplateSpec{} } else { - if x.Template == nil { - x.Template = new(pkg2_v1.PodTemplateSpec) - } - x.Template.CodecDecodeSelf(d) + yyv7 := &x.Template + yyv7.CodecDecodeSelf(d) } default: z.DecStructFieldNotFound(-1, yys3) @@ -16229,14 +16219,10 @@ func (x *ReplicaSetSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) { } z.DecSendContainerState(codecSelfer_containerArrayElem1234) if r.TryDecodeAsNil() { - if x.Template != nil { - x.Template = nil - } + x.Template = pkg2_v1.PodTemplateSpec{} } else { - if x.Template == nil { - x.Template = new(pkg2_v1.PodTemplateSpec) - } - x.Template.CodecDecodeSelf(d) + yyv12 := &x.Template + yyv12.CodecDecodeSelf(d) } for { yyj8++ @@ -20446,7 +20432,7 @@ func (x codecSelfer1234) decSliceReplicaSet(v *[]ReplicaSet, d *codec1978.Decode yyrg1 := len(yyv1) > 0 yyv21 := yyv1 - yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 232) + yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 576) if yyrt1 { if yyrl1 <= cap(yyv1) { yyv1 = yyv1[:yyrl1] diff --git a/pkg/apis/extensions/v1beta1/types.go b/pkg/apis/extensions/v1beta1/types.go index 5cc05a9e281..9c1455c40e1 100644 --- a/pkg/apis/extensions/v1beta1/types.go +++ b/pkg/apis/extensions/v1beta1/types.go @@ -898,7 +898,7 @@ type ReplicaSetSpec struct { // Template is the object that describes the pod that will be created if // insufficient replicas are detected. // More info: http://releases.k8s.io/HEAD/docs/user-guide/replication-controller.md#pod-template - Template *v1.PodTemplateSpec `json:"template,omitempty"` + Template v1.PodTemplateSpec `json:"template,omitempty"` } // ReplicaSetStatus represents the current status of a ReplicaSet. diff --git a/pkg/apis/extensions/validation/validation.go b/pkg/apis/extensions/validation/validation.go index e249ab965ba..bf5cbbcd30c 100644 --- a/pkg/apis/extensions/validation/validation.go +++ b/pkg/apis/extensions/validation/validation.go @@ -710,7 +710,7 @@ func ValidateReplicaSetSpec(spec *extensions.ReplicaSetSpec, fldPath *field.Path if err != nil { allErrs = append(allErrs, field.Invalid(fldPath.Child("selector"), spec.Selector, "invalid label selector.")) } else { - allErrs = append(allErrs, ValidatePodTemplateSpecForReplicaSet(spec.Template, selector, spec.Replicas, fldPath.Child("template"))...) + allErrs = append(allErrs, ValidatePodTemplateSpecForReplicaSet(&spec.Template, selector, spec.Replicas, fldPath.Child("template"))...) } return allErrs } diff --git a/pkg/apis/extensions/validation/validation_test.go b/pkg/apis/extensions/validation/validation_test.go index e93f8f3f2ab..818a6966173 100644 --- a/pkg/apis/extensions/validation/validation_test.go +++ b/pkg/apis/extensions/validation/validation_test.go @@ -1446,7 +1446,7 @@ func TestValidateReplicaSetStatusUpdate(t *testing.T) { ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault}, Spec: extensions.ReplicaSetSpec{ Selector: &unversioned.LabelSelector{MatchLabels: validLabels}, - Template: &validPodTemplate.Template, + Template: validPodTemplate.Template, }, Status: extensions.ReplicaSetStatus{ Replicas: 2, @@ -1457,7 +1457,7 @@ func TestValidateReplicaSetStatusUpdate(t *testing.T) { Spec: extensions.ReplicaSetSpec{ Replicas: 3, Selector: &unversioned.LabelSelector{MatchLabels: validLabels}, - Template: &validPodTemplate.Template, + Template: validPodTemplate.Template, }, Status: extensions.ReplicaSetStatus{ Replicas: 4, @@ -1478,7 +1478,7 @@ func TestValidateReplicaSetStatusUpdate(t *testing.T) { ObjectMeta: api.ObjectMeta{Name: "", Namespace: api.NamespaceDefault}, Spec: extensions.ReplicaSetSpec{ Selector: &unversioned.LabelSelector{MatchLabels: validLabels}, - Template: &validPodTemplate.Template, + Template: validPodTemplate.Template, }, Status: extensions.ReplicaSetStatus{ Replicas: 3, @@ -1489,7 +1489,7 @@ func TestValidateReplicaSetStatusUpdate(t *testing.T) { Spec: extensions.ReplicaSetSpec{ Replicas: 2, Selector: &unversioned.LabelSelector{MatchLabels: validLabels}, - Template: &validPodTemplate.Template, + Template: validPodTemplate.Template, }, Status: extensions.ReplicaSetStatus{ Replicas: -3, @@ -1554,7 +1554,7 @@ func TestValidateReplicaSetUpdate(t *testing.T) { ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault}, Spec: extensions.ReplicaSetSpec{ Selector: &unversioned.LabelSelector{MatchLabels: validLabels}, - Template: &validPodTemplate.Template, + Template: validPodTemplate.Template, }, }, update: extensions.ReplicaSet{ @@ -1562,7 +1562,7 @@ func TestValidateReplicaSetUpdate(t *testing.T) { Spec: extensions.ReplicaSetSpec{ Replicas: 3, Selector: &unversioned.LabelSelector{MatchLabels: validLabels}, - Template: &validPodTemplate.Template, + Template: validPodTemplate.Template, }, }, }, @@ -1571,7 +1571,7 @@ func TestValidateReplicaSetUpdate(t *testing.T) { ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault}, Spec: extensions.ReplicaSetSpec{ Selector: &unversioned.LabelSelector{MatchLabels: validLabels}, - Template: &validPodTemplate.Template, + Template: validPodTemplate.Template, }, }, update: extensions.ReplicaSet{ @@ -1579,7 +1579,7 @@ func TestValidateReplicaSetUpdate(t *testing.T) { Spec: extensions.ReplicaSetSpec{ Replicas: 1, Selector: &unversioned.LabelSelector{MatchLabels: validLabels}, - Template: &readWriteVolumePodTemplate.Template, + Template: readWriteVolumePodTemplate.Template, }, }, }, @@ -1597,7 +1597,7 @@ func TestValidateReplicaSetUpdate(t *testing.T) { ObjectMeta: api.ObjectMeta{Name: "", Namespace: api.NamespaceDefault}, Spec: extensions.ReplicaSetSpec{ Selector: &unversioned.LabelSelector{MatchLabels: validLabels}, - Template: &validPodTemplate.Template, + Template: validPodTemplate.Template, }, }, update: extensions.ReplicaSet{ @@ -1605,7 +1605,7 @@ func TestValidateReplicaSetUpdate(t *testing.T) { Spec: extensions.ReplicaSetSpec{ Replicas: 2, Selector: &unversioned.LabelSelector{MatchLabels: validLabels}, - Template: &readWriteVolumePodTemplate.Template, + Template: readWriteVolumePodTemplate.Template, }, }, }, @@ -1614,7 +1614,7 @@ func TestValidateReplicaSetUpdate(t *testing.T) { ObjectMeta: api.ObjectMeta{Name: "", Namespace: api.NamespaceDefault}, Spec: extensions.ReplicaSetSpec{ Selector: &unversioned.LabelSelector{MatchLabels: validLabels}, - Template: &validPodTemplate.Template, + Template: validPodTemplate.Template, }, }, update: extensions.ReplicaSet{ @@ -1622,7 +1622,7 @@ func TestValidateReplicaSetUpdate(t *testing.T) { Spec: extensions.ReplicaSetSpec{ Replicas: 2, Selector: &unversioned.LabelSelector{MatchLabels: invalidLabels}, - Template: &validPodTemplate.Template, + Template: validPodTemplate.Template, }, }, }, @@ -1631,7 +1631,7 @@ func TestValidateReplicaSetUpdate(t *testing.T) { ObjectMeta: api.ObjectMeta{Name: "", Namespace: api.NamespaceDefault}, Spec: extensions.ReplicaSetSpec{ Selector: &unversioned.LabelSelector{MatchLabels: validLabels}, - Template: &validPodTemplate.Template, + Template: validPodTemplate.Template, }, }, update: extensions.ReplicaSet{ @@ -1639,7 +1639,7 @@ func TestValidateReplicaSetUpdate(t *testing.T) { Spec: extensions.ReplicaSetSpec{ Replicas: 2, Selector: &unversioned.LabelSelector{MatchLabels: validLabels}, - Template: &invalidPodTemplate.Template, + Template: invalidPodTemplate.Template, }, }, }, @@ -1648,7 +1648,7 @@ func TestValidateReplicaSetUpdate(t *testing.T) { ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault}, Spec: extensions.ReplicaSetSpec{ Selector: &unversioned.LabelSelector{MatchLabels: validLabels}, - Template: &validPodTemplate.Template, + Template: validPodTemplate.Template, }, }, update: extensions.ReplicaSet{ @@ -1656,7 +1656,7 @@ func TestValidateReplicaSetUpdate(t *testing.T) { Spec: extensions.ReplicaSetSpec{ Replicas: -1, Selector: &unversioned.LabelSelector{MatchLabels: validLabels}, - Template: &validPodTemplate.Template, + Template: validPodTemplate.Template, }, }, }, @@ -1712,14 +1712,14 @@ func TestValidateReplicaSet(t *testing.T) { ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault}, Spec: extensions.ReplicaSetSpec{ Selector: &unversioned.LabelSelector{MatchLabels: validLabels}, - Template: &validPodTemplate.Template, + Template: validPodTemplate.Template, }, }, { ObjectMeta: api.ObjectMeta{Name: "abc-123", Namespace: api.NamespaceDefault}, Spec: extensions.ReplicaSetSpec{ Selector: &unversioned.LabelSelector{MatchLabels: validLabels}, - Template: &validPodTemplate.Template, + Template: validPodTemplate.Template, }, }, { @@ -1727,7 +1727,7 @@ func TestValidateReplicaSet(t *testing.T) { Spec: extensions.ReplicaSetSpec{ Replicas: 1, Selector: &unversioned.LabelSelector{MatchLabels: validLabels}, - Template: &readWriteVolumePodTemplate.Template, + Template: readWriteVolumePodTemplate.Template, }, }, } @@ -1742,27 +1742,27 @@ func TestValidateReplicaSet(t *testing.T) { ObjectMeta: api.ObjectMeta{Name: "", Namespace: api.NamespaceDefault}, Spec: extensions.ReplicaSetSpec{ Selector: &unversioned.LabelSelector{MatchLabels: validLabels}, - Template: &validPodTemplate.Template, + Template: validPodTemplate.Template, }, }, "missing-namespace": { ObjectMeta: api.ObjectMeta{Name: "abc-123"}, Spec: extensions.ReplicaSetSpec{ Selector: &unversioned.LabelSelector{MatchLabels: validLabels}, - Template: &validPodTemplate.Template, + Template: validPodTemplate.Template, }, }, "empty selector": { ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault}, Spec: extensions.ReplicaSetSpec{ - Template: &validPodTemplate.Template, + Template: validPodTemplate.Template, }, }, "selector_doesnt_match": { ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault}, Spec: extensions.ReplicaSetSpec{ Selector: &unversioned.LabelSelector{MatchLabels: map[string]string{"foo": "bar"}}, - Template: &validPodTemplate.Template, + Template: validPodTemplate.Template, }, }, "invalid manifest": { @@ -1776,7 +1776,7 @@ func TestValidateReplicaSet(t *testing.T) { Spec: extensions.ReplicaSetSpec{ Replicas: 2, Selector: &unversioned.LabelSelector{MatchLabels: validLabels}, - Template: &readWriteVolumePodTemplate.Template, + Template: readWriteVolumePodTemplate.Template, }, }, "negative_replicas": { @@ -1796,7 +1796,7 @@ func TestValidateReplicaSet(t *testing.T) { }, Spec: extensions.ReplicaSetSpec{ Selector: &unversioned.LabelSelector{MatchLabels: validLabels}, - Template: &validPodTemplate.Template, + Template: validPodTemplate.Template, }, }, "invalid_label 2": { @@ -1808,7 +1808,7 @@ func TestValidateReplicaSet(t *testing.T) { }, }, Spec: extensions.ReplicaSetSpec{ - Template: &invalidPodTemplate.Template, + Template: invalidPodTemplate.Template, }, }, "invalid_annotation": { @@ -1821,7 +1821,7 @@ func TestValidateReplicaSet(t *testing.T) { }, Spec: extensions.ReplicaSetSpec{ Selector: &unversioned.LabelSelector{MatchLabels: validLabels}, - Template: &validPodTemplate.Template, + Template: validPodTemplate.Template, }, }, "invalid restart policy 1": { @@ -1831,7 +1831,7 @@ func TestValidateReplicaSet(t *testing.T) { }, Spec: extensions.ReplicaSetSpec{ Selector: &unversioned.LabelSelector{MatchLabels: validLabels}, - Template: &api.PodTemplateSpec{ + Template: api.PodTemplateSpec{ Spec: api.PodSpec{ RestartPolicy: api.RestartPolicyOnFailure, DNSPolicy: api.DNSClusterFirst, @@ -1850,7 +1850,7 @@ func TestValidateReplicaSet(t *testing.T) { }, Spec: extensions.ReplicaSetSpec{ Selector: &unversioned.LabelSelector{MatchLabels: validLabels}, - Template: &api.PodTemplateSpec{ + Template: api.PodTemplateSpec{ Spec: api.PodSpec{ RestartPolicy: api.RestartPolicyNever, DNSPolicy: api.DNSClusterFirst, diff --git a/pkg/client/unversioned/replica_sets_test.go b/pkg/client/unversioned/replica_sets_test.go index 097fdd12751..2a0e8142cfd 100644 --- a/pkg/client/unversioned/replica_sets_test.go +++ b/pkg/client/unversioned/replica_sets_test.go @@ -49,7 +49,7 @@ func TestListReplicaSets(t *testing.T) { }, Spec: extensions.ReplicaSetSpec{ Replicas: 2, - Template: &api.PodTemplateSpec{}, + Template: api.PodTemplateSpec{}, }, }, }, @@ -76,7 +76,7 @@ func TestGetReplicaSet(t *testing.T) { }, Spec: extensions.ReplicaSetSpec{ Replicas: 2, - Template: &api.PodTemplateSpec{}, + Template: api.PodTemplateSpec{}, }, }, }, @@ -115,7 +115,7 @@ func TestUpdateReplicaSet(t *testing.T) { }, Spec: extensions.ReplicaSetSpec{ Replicas: 2, - Template: &api.PodTemplateSpec{}, + Template: api.PodTemplateSpec{}, }, }, }, @@ -143,7 +143,7 @@ func TestUpdateStatusReplicaSet(t *testing.T) { }, Spec: extensions.ReplicaSetSpec{ Replicas: 2, - Template: &api.PodTemplateSpec{}, + Template: api.PodTemplateSpec{}, }, Status: extensions.ReplicaSetStatus{ Replicas: 2, @@ -183,7 +183,7 @@ func TestCreateReplicaSet(t *testing.T) { }, Spec: extensions.ReplicaSetSpec{ Replicas: 2, - Template: &api.PodTemplateSpec{}, + Template: api.PodTemplateSpec{}, }, }, }, diff --git a/pkg/controller/deployment/deployment_controller.go b/pkg/controller/deployment/deployment_controller.go index 108c254249b..d9b996c2ee8 100644 --- a/pkg/controller/deployment/deployment_controller.go +++ b/pkg/controller/deployment/deployment_controller.go @@ -730,7 +730,7 @@ func (dc *DeploymentController) getNewReplicaSet(deployment *extensions.Deployme Spec: extensions.ReplicaSetSpec{ Replicas: 0, Selector: newRSSelector, - Template: &newRSTemplate, + Template: newRSTemplate, }, } // Set new replica set's annotation @@ -1100,9 +1100,9 @@ func (dc *DeploymentController) updateDeployment(deployment *extensions.Deployme } func (dc *DeploymentController) rollbackToTemplate(deployment *extensions.Deployment, rs *extensions.ReplicaSet) (d *extensions.Deployment, performedRollback bool, err error) { - if !reflect.DeepEqual(deploymentutil.GetNewReplicaSetTemplate(deployment), *rs.Spec.Template) { + if !reflect.DeepEqual(deploymentutil.GetNewReplicaSetTemplate(deployment), rs.Spec.Template) { glog.Infof("Rolling back deployment %s to template spec %+v", deployment.Name, rs.Spec.Template.Spec) - deploymentutil.SetFromReplicaSetTemplate(deployment, *rs.Spec.Template) + deploymentutil.SetFromReplicaSetTemplate(deployment, rs.Spec.Template) performedRollback = true } else { glog.V(4).Infof("Rolling back to a revision that contains the same template as current deployment %s, skipping rollback...", deployment.Name) diff --git a/pkg/controller/deployment/deployment_controller_test.go b/pkg/controller/deployment/deployment_controller_test.go index 6a8d7115298..31cb70061c4 100644 --- a/pkg/controller/deployment/deployment_controller_test.go +++ b/pkg/controller/deployment/deployment_controller_test.go @@ -42,7 +42,7 @@ func rs(name string, replicas int, selector map[string]string) *exp.ReplicaSet { Spec: exp.ReplicaSetSpec{ Replicas: replicas, Selector: &unversioned.LabelSelector{MatchLabels: selector}, - Template: &api.PodTemplateSpec{}, + Template: api.PodTemplateSpec{}, }, } } @@ -120,7 +120,7 @@ func newReplicaSet(d *exp.Deployment, name string, replicas int) *exp.ReplicaSet }, Spec: exp.ReplicaSetSpec{ Replicas: replicas, - Template: &d.Spec.Template, + Template: d.Spec.Template, }, } diff --git a/pkg/controller/replicaset/replica_set.go b/pkg/controller/replicaset/replica_set.go index 28b5374d3f8..0c990f2975b 100644 --- a/pkg/controller/replicaset/replica_set.go +++ b/pkg/controller/replicaset/replica_set.go @@ -439,7 +439,7 @@ func (rsc *ReplicaSetController) manageReplicas(filteredPods []*api.Pod, rs *ext for i := 0; i < diff; i++ { go func() { defer wait.Done() - if err := rsc.podControl.CreatePods(rs.Namespace, rs.Spec.Template, rs); err != nil { + if err := rsc.podControl.CreatePods(rs.Namespace, &rs.Spec.Template, rs); err != nil { // Decrement the expected number of creates because the informer won't observe this pod glog.V(2).Infof("Failed creation, decrementing expectations for replica set %q/%q", rs.Namespace, rs.Name) rsc.expectations.CreationObserved(rsKey) diff --git a/pkg/controller/replicaset/replica_set_test.go b/pkg/controller/replicaset/replica_set_test.go index 657304e28aa..50b808bb488 100644 --- a/pkg/controller/replicaset/replica_set_test.go +++ b/pkg/controller/replicaset/replica_set_test.go @@ -69,7 +69,7 @@ func newReplicaSet(replicas int, selectorMap map[string]string) *extensions.Repl Spec: extensions.ReplicaSetSpec{ Replicas: replicas, Selector: &unversioned.LabelSelector{MatchLabels: selectorMap}, - Template: &api.PodTemplateSpec{ + Template: api.PodTemplateSpec{ ObjectMeta: api.ObjectMeta{ Labels: map[string]string{ "name": "foo", diff --git a/pkg/kubectl/describe.go b/pkg/kubectl/describe.go index e377133a7c3..0a09b3a069c 100644 --- a/pkg/kubectl/describe.go +++ b/pkg/kubectl/describe.go @@ -1038,18 +1038,12 @@ func describeReplicaSet(rs *extensions.ReplicaSet, events *api.EventList, runnin return tabbedString(func(out io.Writer) error { fmt.Fprintf(out, "Name:\t%s\n", rs.Name) fmt.Fprintf(out, "Namespace:\t%s\n", rs.Namespace) - if rs.Spec.Template != nil { - fmt.Fprintf(out, "Image(s):\t%s\n", makeImageList(&rs.Spec.Template.Spec)) - } else { - fmt.Fprintf(out, "Image(s):\t%s\n", "") - } + fmt.Fprintf(out, "Image(s):\t%s\n", makeImageList(&rs.Spec.Template.Spec)) fmt.Fprintf(out, "Selector:\t%s\n", unversioned.FormatLabelSelector(rs.Spec.Selector)) fmt.Fprintf(out, "Labels:\t%s\n", labels.FormatLabels(rs.Labels)) fmt.Fprintf(out, "Replicas:\t%d current / %d desired\n", rs.Status.Replicas, rs.Spec.Replicas) fmt.Fprintf(out, "Pods Status:\t%d Running / %d Waiting / %d Succeeded / %d Failed\n", running, waiting, succeeded, failed) - if rs.Spec.Template != nil { - describeVolumes(rs.Spec.Template.Spec.Volumes, out) - } + describeVolumes(rs.Spec.Template.Spec.Volumes, out) if events != nil { DescribeEvents(events, out) } diff --git a/pkg/kubectl/history.go b/pkg/kubectl/history.go index 4ee41fa1586..37cb9e0b29a 100644 --- a/pkg/kubectl/history.go +++ b/pkg/kubectl/history.go @@ -81,7 +81,7 @@ func (h *DeploymentHistoryViewer) History(namespace, name string) (HistoryInfo, if err != nil { continue } - historyInfo.RevisionToTemplate[v] = rs.Spec.Template + historyInfo.RevisionToTemplate[v] = &rs.Spec.Template changeCause := getChangeCause(rs) if historyInfo.RevisionToTemplate[v].Annotations == nil { historyInfo.RevisionToTemplate[v].Annotations = make(map[string]string) diff --git a/pkg/kubectl/stop_test.go b/pkg/kubectl/stop_test.go index 75729e82578..9274ab40864 100644 --- a/pkg/kubectl/stop_test.go +++ b/pkg/kubectl/stop_test.go @@ -552,7 +552,7 @@ func TestDeploymentStop(t *testing.T) { Namespace: ns, }, Spec: extensions.ReplicaSetSpec{ - Template: &template, + Template: template, }, }, }, diff --git a/pkg/registry/replicaset/etcd/etcd_test.go b/pkg/registry/replicaset/etcd/etcd_test.go index 64c7c6a70cc..18cecd0111e 100644 --- a/pkg/registry/replicaset/etcd/etcd_test.go +++ b/pkg/registry/replicaset/etcd/etcd_test.go @@ -61,7 +61,7 @@ func validNewReplicaSet() *extensions.ReplicaSet { }, Spec: extensions.ReplicaSetSpec{ Selector: &unversioned.LabelSelector{MatchLabels: map[string]string{"a": "b"}}, - Template: &api.PodTemplateSpec{ + Template: api.PodTemplateSpec{ ObjectMeta: api.ObjectMeta{ Labels: map[string]string{"a": "b"}, }, diff --git a/pkg/registry/replicaset/strategy_test.go b/pkg/registry/replicaset/strategy_test.go index 1fe9b9f3484..e4fea3c39f8 100644 --- a/pkg/registry/replicaset/strategy_test.go +++ b/pkg/registry/replicaset/strategy_test.go @@ -50,7 +50,7 @@ func TestReplicaSetStrategy(t *testing.T) { ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault}, Spec: extensions.ReplicaSetSpec{ Selector: &unversioned.LabelSelector{MatchLabels: validSelector}, - Template: &validPodTemplate.Template, + Template: validPodTemplate.Template, }, Status: extensions.ReplicaSetStatus{ Replicas: 1, @@ -109,7 +109,7 @@ func TestReplicaSetStatusStrategy(t *testing.T) { Spec: extensions.ReplicaSetSpec{ Replicas: 3, Selector: &unversioned.LabelSelector{MatchLabels: validSelector}, - Template: &validPodTemplate.Template, + Template: validPodTemplate.Template, }, Status: extensions.ReplicaSetStatus{ Replicas: 1, @@ -121,7 +121,7 @@ func TestReplicaSetStatusStrategy(t *testing.T) { Spec: extensions.ReplicaSetSpec{ Replicas: 1, Selector: &unversioned.LabelSelector{MatchLabels: validSelector}, - Template: &validPodTemplate.Template, + Template: validPodTemplate.Template, }, Status: extensions.ReplicaSetStatus{ Replicas: 3, diff --git a/pkg/util/deployment/deployment.go b/pkg/util/deployment/deployment.go index 869936109cf..6ff60c34193 100644 --- a/pkg/util/deployment/deployment.go +++ b/pkg/util/deployment/deployment.go @@ -86,7 +86,7 @@ func GetOldReplicaSetsFromLists(deployment *extensions.Deployment, c clientset.I return nil, nil, fmt.Errorf("invalid label selector: %v", err) } // Filter out replica set that has the same pod template spec as the deployment - that is the new replica set. - if api.Semantic.DeepEqual(rs.Spec.Template, &newRSTemplate) { + if api.Semantic.DeepEqual(rs.Spec.Template, newRSTemplate) { continue } allOldRSs[rs.ObjectMeta.Name] = rs @@ -131,7 +131,7 @@ func GetNewReplicaSetFromList(deployment *extensions.Deployment, c clientset.Int newRSTemplate := GetNewReplicaSetTemplate(deployment) for i := range rsList { - if api.Semantic.DeepEqual(rsList[i].Spec.Template, &newRSTemplate) { + if api.Semantic.DeepEqual(rsList[i].Spec.Template, newRSTemplate) { // This is the new ReplicaSet. return &rsList[i], nil } diff --git a/pkg/util/deployment/deployment_test.go b/pkg/util/deployment/deployment_test.go index b556dd56cb6..018a7017de9 100644 --- a/pkg/util/deployment/deployment_test.go +++ b/pkg/util/deployment/deployment_test.go @@ -167,7 +167,7 @@ func generateRSWithLabel(labels map[string]string, image string) extensions.Repl Spec: extensions.ReplicaSetSpec{ Replicas: 1, Selector: &unversioned.LabelSelector{MatchLabels: labels}, - Template: &api.PodTemplateSpec{ + Template: api.PodTemplateSpec{ Spec: api.PodSpec{ Containers: []api.Container{ { @@ -192,7 +192,7 @@ func generateRS(deployment extensions.Deployment) extensions.ReplicaSet { Labels: template.Labels, }, Spec: extensions.ReplicaSetSpec{ - Template: &template, + Template: template, Selector: &unversioned.LabelSelector{MatchLabels: template.Labels}, }, } diff --git a/test/e2e/deployment.go b/test/e2e/deployment.go index de8842aa1ca..897813f445f 100644 --- a/test/e2e/deployment.go +++ b/test/e2e/deployment.go @@ -87,7 +87,7 @@ func newRS(rsName string, replicas int, rsPodLabels map[string]string, imageName Spec: extensions.ReplicaSetSpec{ Replicas: replicas, Selector: &unversioned.LabelSelector{MatchLabels: rsPodLabels}, - Template: &api.PodTemplateSpec{ + Template: api.PodTemplateSpec{ ObjectMeta: api.ObjectMeta{ Labels: rsPodLabels, }, diff --git a/test/e2e/replica_set.go b/test/e2e/replica_set.go index f7d9e8b58c7..611abade9a4 100644 --- a/test/e2e/replica_set.go +++ b/test/e2e/replica_set.go @@ -65,7 +65,7 @@ func ReplicaSetServeImageOrFail(f *Framework, test string, image string) { Selector: &unversioned.LabelSelector{MatchLabels: map[string]string{ "name": name, }}, - Template: &api.PodTemplateSpec{ + Template: api.PodTemplateSpec{ ObjectMeta: api.ObjectMeta{ Labels: map[string]string{"name": name}, }, diff --git a/test/e2e/util.go b/test/e2e/util.go index d2326b4f4ce..0db97b6069c 100644 --- a/test/e2e/util.go +++ b/test/e2e/util.go @@ -1817,7 +1817,7 @@ func (config *ReplicaSetConfig) create() error { "name": config.Name, }, }, - Template: &api.PodTemplateSpec{ + Template: api.PodTemplateSpec{ ObjectMeta: api.ObjectMeta{ Labels: map[string]string{"name": config.Name}, }, @@ -1835,7 +1835,7 @@ func (config *ReplicaSetConfig) create() error { }, } - config.applyTo(rs.Spec.Template) + config.applyTo(&rs.Spec.Template) _, err := config.Client.ReplicaSets(config.Namespace).Create(rs) if err != nil {