Merge pull request #22758 from madhusudancs/replicaset-nonpointer-template
ReplicaSetSpec.Template shouldn't be a pointer.
This commit is contained in:
		| @@ -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] | ||||
|   | ||||
| @@ -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. | ||||
|   | ||||
| @@ -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 | ||||
| } | ||||
|   | ||||
| @@ -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 | ||||
| } | ||||
|   | ||||
| @@ -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 | ||||
| } | ||||
|   | ||||
| @@ -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 { | ||||
|   | ||||
| @@ -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", | ||||
|   | ||||
| @@ -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] | ||||
|   | ||||
| @@ -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. | ||||
|   | ||||
| @@ -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 | ||||
| } | ||||
|   | ||||
| @@ -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, | ||||
|   | ||||
| @@ -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{}, | ||||
| 				}, | ||||
| 			}, | ||||
| 		}, | ||||
|   | ||||
| @@ -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) | ||||
|   | ||||
| @@ -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, | ||||
| 		}, | ||||
| 	} | ||||
|  | ||||
|   | ||||
| @@ -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) | ||||
|   | ||||
| @@ -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", | ||||
|   | ||||
| @@ -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", "<unset>") | ||||
| 		} | ||||
| 		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) | ||||
| 		} | ||||
|   | ||||
| @@ -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) | ||||
|   | ||||
| @@ -552,7 +552,7 @@ func TestDeploymentStop(t *testing.T) { | ||||
| 								Namespace: ns, | ||||
| 							}, | ||||
| 							Spec: extensions.ReplicaSetSpec{ | ||||
| 								Template: &template, | ||||
| 								Template: template, | ||||
| 							}, | ||||
| 						}, | ||||
| 					}, | ||||
|   | ||||
| @@ -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"}, | ||||
| 				}, | ||||
|   | ||||
| @@ -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, | ||||
|   | ||||
| @@ -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 | ||||
| 		} | ||||
|   | ||||
| @@ -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}, | ||||
| 		}, | ||||
| 	} | ||||
|   | ||||
| @@ -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, | ||||
| 				}, | ||||
|   | ||||
| @@ -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}, | ||||
| 				}, | ||||
|   | ||||
| @@ -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 { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Andy Goldstein
					Andy Goldstein