remove apps/v1beta2 defaulting codes for obj.Spec.Selector and obj.Labels
This commit is contained in:
		 crimsonfaith91
					crimsonfaith91
				
			
				
					committed by
					
						 Jun Xiang Tee
						Jun Xiang Tee
					
				
			
			
				
	
			
			
			 Jun Xiang Tee
						Jun Xiang Tee
					
				
			
						parent
						
							da549596c4
						
					
				
				
					commit
					a5987fe72c
				
			| @@ -18,7 +18,6 @@ package v1beta2 | ||||
|  | ||||
| import ( | ||||
| 	appsv1beta2 "k8s.io/api/apps/v1beta2" | ||||
| 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" | ||||
| 	"k8s.io/apimachinery/pkg/runtime" | ||||
| 	"k8s.io/apimachinery/pkg/util/intstr" | ||||
| ) | ||||
| @@ -28,19 +27,6 @@ func addDefaultingFuncs(scheme *runtime.Scheme) error { | ||||
| } | ||||
|  | ||||
| func SetDefaults_DaemonSet(obj *appsv1beta2.DaemonSet) { | ||||
| 	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 { | ||||
| 			obj.Spec.Selector = &metav1.LabelSelector{ | ||||
| 				MatchLabels: labels, | ||||
| 			} | ||||
| 		} | ||||
| 		if len(obj.Labels) == 0 { | ||||
| 			obj.Labels = labels | ||||
| 		} | ||||
| 	} | ||||
| 	updateStrategy := &obj.Spec.UpdateStrategy | ||||
| 	if updateStrategy.Type == "" { | ||||
| 		updateStrategy.Type = appsv1beta2.RollingUpdateDaemonSetStrategyType | ||||
| @@ -81,17 +67,6 @@ func SetDefaults_StatefulSet(obj *appsv1beta2.StatefulSet) { | ||||
| 		*obj.Spec.UpdateStrategy.RollingUpdate.Partition = 0 | ||||
| 	} | ||||
|  | ||||
| 	labels := obj.Spec.Template.Labels | ||||
| 	if labels != nil { | ||||
| 		if obj.Spec.Selector == nil { | ||||
| 			obj.Spec.Selector = &metav1.LabelSelector{ | ||||
| 				MatchLabels: labels, | ||||
| 			} | ||||
| 		} | ||||
| 		if len(obj.Labels) == 0 { | ||||
| 			obj.Labels = labels | ||||
| 		} | ||||
| 	} | ||||
| 	if obj.Spec.Replicas == nil { | ||||
| 		obj.Spec.Replicas = new(int32) | ||||
| 		*obj.Spec.Replicas = 1 | ||||
| @@ -109,17 +84,6 @@ func SetDefaults_StatefulSet(obj *appsv1beta2.StatefulSet) { | ||||
| // - RevisionHistoryLimit set to 10 (not set in extensions) | ||||
| // - ProgressDeadlineSeconds set to 600s (not set in extensions) | ||||
| func SetDefaults_Deployment(obj *appsv1beta2.Deployment) { | ||||
| 	// Default labels and selector to labels from pod template spec. | ||||
| 	labels := obj.Spec.Template.Labels | ||||
|  | ||||
| 	if labels != nil { | ||||
| 		if obj.Spec.Selector == nil { | ||||
| 			obj.Spec.Selector = &metav1.LabelSelector{MatchLabels: labels} | ||||
| 		} | ||||
| 		if len(obj.Labels) == 0 { | ||||
| 			obj.Labels = labels | ||||
| 		} | ||||
| 	} | ||||
| 	// Set appsv1beta2.DeploymentSpec.Replicas to 1 if it is not set. | ||||
| 	if obj.Spec.Replicas == nil { | ||||
| 		obj.Spec.Replicas = new(int32) | ||||
| @@ -157,19 +121,6 @@ func SetDefaults_Deployment(obj *appsv1beta2.Deployment) { | ||||
| } | ||||
|  | ||||
| func SetDefaults_ReplicaSet(obj *appsv1beta2.ReplicaSet) { | ||||
| 	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 { | ||||
| 			obj.Spec.Selector = &metav1.LabelSelector{ | ||||
| 				MatchLabels: labels, | ||||
| 			} | ||||
| 		} | ||||
| 		if len(obj.Labels) == 0 { | ||||
| 			obj.Labels = labels | ||||
| 		} | ||||
| 	} | ||||
| 	if obj.Spec.Replicas == nil { | ||||
| 		obj.Spec.Replicas = new(int32) | ||||
| 		*obj.Spec.Replicas = 1 | ||||
|   | ||||
| @@ -73,9 +73,6 @@ func TestSetDefaultDaemonSetSpec(t *testing.T) { | ||||
| 					Labels: defaultLabels, | ||||
| 				}, | ||||
| 				Spec: appsv1beta2.DaemonSetSpec{ | ||||
| 					Selector: &metav1.LabelSelector{ | ||||
| 						MatchLabels: defaultLabels, | ||||
| 					}, | ||||
| 					Template: defaultTemplate, | ||||
| 					UpdateStrategy: appsv1beta2.DaemonSetUpdateStrategy{ | ||||
| 						Type: appsv1beta2.RollingUpdateStatefulSetStrategyType, | ||||
| @@ -106,9 +103,6 @@ func TestSetDefaultDaemonSetSpec(t *testing.T) { | ||||
| 					}, | ||||
| 				}, | ||||
| 				Spec: appsv1beta2.DaemonSetSpec{ | ||||
| 					Selector: &metav1.LabelSelector{ | ||||
| 						MatchLabels: defaultLabels, | ||||
| 					}, | ||||
| 					Template: defaultTemplate, | ||||
| 					UpdateStrategy: appsv1beta2.DaemonSetUpdateStrategy{ | ||||
| 						Type: appsv1beta2.RollingUpdateStatefulSetStrategyType, | ||||
| @@ -196,7 +190,7 @@ func TestSetDefaultStatefulSet(t *testing.T) { | ||||
| 		original *appsv1beta2.StatefulSet | ||||
| 		expected *appsv1beta2.StatefulSet | ||||
| 	}{ | ||||
| 		{ // Selector, labels and default update strategy | ||||
| 		{ // labels and default update strategy | ||||
| 			original: &appsv1beta2.StatefulSet{ | ||||
| 				Spec: appsv1beta2.StatefulSetSpec{ | ||||
| 					Template: defaultTemplate, | ||||
| @@ -207,9 +201,6 @@ func TestSetDefaultStatefulSet(t *testing.T) { | ||||
| 					Labels: defaultLabels, | ||||
| 				}, | ||||
| 				Spec: appsv1beta2.StatefulSetSpec{ | ||||
| 					Selector: &metav1.LabelSelector{ | ||||
| 						MatchLabels: defaultLabels, | ||||
| 					}, | ||||
| 					Replicas:            &defaultReplicas, | ||||
| 					Template:            defaultTemplate, | ||||
| 					PodManagementPolicy: appsv1beta2.OrderedReadyPodManagement, | ||||
| @@ -237,9 +228,6 @@ func TestSetDefaultStatefulSet(t *testing.T) { | ||||
| 					Labels: defaultLabels, | ||||
| 				}, | ||||
| 				Spec: appsv1beta2.StatefulSetSpec{ | ||||
| 					Selector: &metav1.LabelSelector{ | ||||
| 						MatchLabels: defaultLabels, | ||||
| 					}, | ||||
| 					Replicas:            &defaultReplicas, | ||||
| 					Template:            defaultTemplate, | ||||
| 					PodManagementPolicy: appsv1beta2.OrderedReadyPodManagement, | ||||
| @@ -262,9 +250,6 @@ func TestSetDefaultStatefulSet(t *testing.T) { | ||||
| 					Labels: defaultLabels, | ||||
| 				}, | ||||
| 				Spec: appsv1beta2.StatefulSetSpec{ | ||||
| 					Selector: &metav1.LabelSelector{ | ||||
| 						MatchLabels: defaultLabels, | ||||
| 					}, | ||||
| 					Replicas:            &defaultReplicas, | ||||
| 					Template:            defaultTemplate, | ||||
| 					PodManagementPolicy: appsv1beta2.ParallelPodManagement, | ||||
| @@ -458,119 +443,6 @@ func TestDefaultDeploymentAvailability(t *testing.T) { | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func TestSetDefaultReplicaSet(t *testing.T) { | ||||
| 	tests := []struct { | ||||
| 		rs             *appsv1beta2.ReplicaSet | ||||
| 		expectLabels   bool | ||||
| 		expectSelector bool | ||||
| 	}{ | ||||
| 		{ | ||||
| 			rs: &appsv1beta2.ReplicaSet{ | ||||
| 				Spec: appsv1beta2.ReplicaSetSpec{ | ||||
| 					Template: v1.PodTemplateSpec{ | ||||
| 						ObjectMeta: metav1.ObjectMeta{ | ||||
| 							Labels: map[string]string{ | ||||
| 								"foo": "bar", | ||||
| 							}, | ||||
| 						}, | ||||
| 					}, | ||||
| 				}, | ||||
| 			}, | ||||
| 			expectLabels:   true, | ||||
| 			expectSelector: true, | ||||
| 		}, | ||||
| 		{ | ||||
| 			rs: &appsv1beta2.ReplicaSet{ | ||||
| 				ObjectMeta: metav1.ObjectMeta{ | ||||
| 					Labels: map[string]string{ | ||||
| 						"bar": "foo", | ||||
| 					}, | ||||
| 				}, | ||||
| 				Spec: appsv1beta2.ReplicaSetSpec{ | ||||
| 					Template: v1.PodTemplateSpec{ | ||||
| 						ObjectMeta: metav1.ObjectMeta{ | ||||
| 							Labels: map[string]string{ | ||||
| 								"foo": "bar", | ||||
| 							}, | ||||
| 						}, | ||||
| 					}, | ||||
| 				}, | ||||
| 			}, | ||||
| 			expectLabels:   false, | ||||
| 			expectSelector: true, | ||||
| 		}, | ||||
| 		{ | ||||
| 			rs: &appsv1beta2.ReplicaSet{ | ||||
| 				ObjectMeta: metav1.ObjectMeta{ | ||||
| 					Labels: map[string]string{ | ||||
| 						"bar": "foo", | ||||
| 					}, | ||||
| 				}, | ||||
| 				Spec: appsv1beta2.ReplicaSetSpec{ | ||||
| 					Selector: &metav1.LabelSelector{ | ||||
| 						MatchLabels: map[string]string{ | ||||
| 							"some": "other", | ||||
| 						}, | ||||
| 					}, | ||||
| 					Template: v1.PodTemplateSpec{ | ||||
| 						ObjectMeta: metav1.ObjectMeta{ | ||||
| 							Labels: map[string]string{ | ||||
| 								"foo": "bar", | ||||
| 							}, | ||||
| 						}, | ||||
| 					}, | ||||
| 				}, | ||||
| 			}, | ||||
| 			expectLabels:   false, | ||||
| 			expectSelector: false, | ||||
| 		}, | ||||
| 		{ | ||||
| 			rs: &appsv1beta2.ReplicaSet{ | ||||
| 				Spec: appsv1beta2.ReplicaSetSpec{ | ||||
| 					Selector: &metav1.LabelSelector{ | ||||
| 						MatchLabels: map[string]string{ | ||||
| 							"some": "other", | ||||
| 						}, | ||||
| 					}, | ||||
| 					Template: v1.PodTemplateSpec{ | ||||
| 						ObjectMeta: metav1.ObjectMeta{ | ||||
| 							Labels: map[string]string{ | ||||
| 								"foo": "bar", | ||||
| 							}, | ||||
| 						}, | ||||
| 					}, | ||||
| 				}, | ||||
| 			}, | ||||
| 			expectLabels:   true, | ||||
| 			expectSelector: false, | ||||
| 		}, | ||||
| 	} | ||||
|  | ||||
| 	for _, test := range tests { | ||||
| 		rs := test.rs | ||||
| 		obj2 := roundTrip(t, runtime.Object(rs)) | ||||
| 		rs2, ok := obj2.(*appsv1beta2.ReplicaSet) | ||||
| 		if !ok { | ||||
| 			t.Errorf("unexpected object: %v", rs2) | ||||
| 			t.FailNow() | ||||
| 		} | ||||
| 		if test.expectSelector != reflect.DeepEqual(rs2.Spec.Selector.MatchLabels, rs2.Spec.Template.Labels) { | ||||
| 			if test.expectSelector { | ||||
| 				t.Errorf("expected: %v, got: %v", rs2.Spec.Template.Labels, rs2.Spec.Selector) | ||||
| 			} else { | ||||
| 				t.Errorf("unexpected equality: %v", rs.Spec.Selector) | ||||
| 			} | ||||
| 		} | ||||
| 		if test.expectLabels != reflect.DeepEqual(rs2.Labels, rs2.Spec.Template.Labels) { | ||||
| 			if test.expectLabels { | ||||
| 				t.Errorf("expected: %v, got: %v", rs2.Spec.Template.Labels, rs2.Labels) | ||||
| 			} else { | ||||
| 				t.Errorf("unexpected equality: %v", rs.Labels) | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func TestSetDefaultReplicaSetReplicas(t *testing.T) { | ||||
| 	tests := []struct { | ||||
| 		rs             appsv1beta2.ReplicaSet | ||||
|   | ||||
| @@ -133,7 +133,7 @@ var etcdStorageData = map[schema.GroupVersionResource]struct { | ||||
|  | ||||
| 	// k8s.io/kubernetes/pkg/apis/apps/v1beta1 | ||||
| 	gvr("apps", "v1beta1", "statefulsets"): { | ||||
| 		stub:             `{"metadata": {"name": "ss1"}, "spec": {"template": {"metadata": {"labels": {"a": "b"}}}}}`, | ||||
| 		stub:             `{"metadata": {"name": "ss1"}, "spec": {"selector": {"matchLabels": {"a": "b"}}, "template": {"metadata": {"labels": {"a": "b"}}}}}`, | ||||
| 		expectedEtcdPath: "/registry/statefulsets/etcdstoragepathtestnamespace/ss1", | ||||
| 	}, | ||||
| 	gvr("apps", "v1beta1", "deployments"): { | ||||
| @@ -149,7 +149,7 @@ var etcdStorageData = map[schema.GroupVersionResource]struct { | ||||
|  | ||||
| 	// k8s.io/kubernetes/pkg/apis/apps/v1beta2 | ||||
| 	gvr("apps", "v1beta2", "statefulsets"): { | ||||
| 		stub:             `{"metadata": {"name": "ss2"}, "spec": {"template": {"metadata": {"labels": {"a": "b"}}}}}`, | ||||
| 		stub:             `{"metadata": {"name": "ss2"}, "spec": {"selector": {"matchLabels": {"a": "b"}}, "template": {"metadata": {"labels": {"a": "b"}}}}}`, | ||||
| 		expectedEtcdPath: "/registry/statefulsets/etcdstoragepathtestnamespace/ss2", | ||||
| 		expectedGVK:      gvkP("apps", "v1beta1", "StatefulSet"), | ||||
| 	}, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user