mirror of
https://github.com/k3s-io/kubernetes.git
synced 2026-01-05 07:27:21 +00:00
ReplicaSetSpec.Template shouldn't be a pointer.
PodTemplateSpec should be consistent for all the types in extensions/v1beta1. See PR #19510.
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user