mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-03 19:58:17 +00:00 
			
		
		
		
	Do hostNet Pod-ports -> hostPorts in Pod defaults
Rather than doing it in PodSpec defaulting, which triggers in Deployments and DaemonSets, do it only when a Pod is actually in play.
This commit is contained in:
		@@ -99,6 +99,17 @@ func TestValidateJob(t *testing.T) {
 | 
			
		||||
	validPodTemplateSpecForGenerated := getValidPodTemplateSpecForGenerated(validGeneratedSelector)
 | 
			
		||||
	validPodTemplateSpecForGeneratedRestartPolicyNever := getValidPodTemplateSpecForGenerated(validGeneratedSelector)
 | 
			
		||||
	validPodTemplateSpecForGeneratedRestartPolicyNever.Spec.RestartPolicy = api.RestartPolicyNever
 | 
			
		||||
	validHostNetPodTemplateSpec := func() api.PodTemplateSpec {
 | 
			
		||||
		spec := getValidPodTemplateSpecForGenerated(validGeneratedSelector)
 | 
			
		||||
		spec.Spec.SecurityContext = &api.PodSecurityContext{
 | 
			
		||||
			HostNetwork: true,
 | 
			
		||||
		}
 | 
			
		||||
		spec.Spec.Containers[0].Ports = []api.ContainerPort{{
 | 
			
		||||
			ContainerPort: 12345,
 | 
			
		||||
			Protocol:      api.ProtocolTCP,
 | 
			
		||||
		}}
 | 
			
		||||
		return spec
 | 
			
		||||
	}()
 | 
			
		||||
 | 
			
		||||
	successCases := map[string]struct {
 | 
			
		||||
		opts JobValidationOptions
 | 
			
		||||
@@ -179,6 +190,20 @@ func TestValidateJob(t *testing.T) {
 | 
			
		||||
				},
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
		"valid hostnet": {
 | 
			
		||||
			opts: JobValidationOptions{RequirePrefixedLabels: true},
 | 
			
		||||
			job: batch.Job{
 | 
			
		||||
				ObjectMeta: metav1.ObjectMeta{
 | 
			
		||||
					Name:      "myjob",
 | 
			
		||||
					Namespace: metav1.NamespaceDefault,
 | 
			
		||||
					UID:       types.UID("1a2b3c"),
 | 
			
		||||
				},
 | 
			
		||||
				Spec: batch.JobSpec{
 | 
			
		||||
					Selector: validGeneratedSelector,
 | 
			
		||||
					Template: validHostNetPodTemplateSpec,
 | 
			
		||||
				},
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
		"valid NonIndexed completion mode": {
 | 
			
		||||
			opts: JobValidationOptions{RequirePrefixedLabels: true},
 | 
			
		||||
			job: batch.Job{
 | 
			
		||||
@@ -1784,6 +1809,17 @@ func TestValidateCronJob(t *testing.T) {
 | 
			
		||||
	validManualSelector := getValidManualSelector()
 | 
			
		||||
	validPodTemplateSpec := getValidPodTemplateSpecForGenerated(getValidGeneratedSelector())
 | 
			
		||||
	validPodTemplateSpec.Labels = map[string]string{}
 | 
			
		||||
	validHostNetPodTemplateSpec := func() api.PodTemplateSpec {
 | 
			
		||||
		spec := getValidPodTemplateSpecForGenerated(getValidGeneratedSelector())
 | 
			
		||||
		spec.Spec.SecurityContext = &api.PodSecurityContext{
 | 
			
		||||
			HostNetwork: true,
 | 
			
		||||
		}
 | 
			
		||||
		spec.Spec.Containers[0].Ports = []api.ContainerPort{{
 | 
			
		||||
			ContainerPort: 12345,
 | 
			
		||||
			Protocol:      api.ProtocolTCP,
 | 
			
		||||
		}}
 | 
			
		||||
		return spec
 | 
			
		||||
	}()
 | 
			
		||||
 | 
			
		||||
	successCases := map[string]batch.CronJob{
 | 
			
		||||
		"basic scheduled job": {
 | 
			
		||||
@@ -1802,6 +1838,22 @@ func TestValidateCronJob(t *testing.T) {
 | 
			
		||||
				},
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
		"hostnet job": {
 | 
			
		||||
			ObjectMeta: metav1.ObjectMeta{
 | 
			
		||||
				Name:      "mycronjob",
 | 
			
		||||
				Namespace: metav1.NamespaceDefault,
 | 
			
		||||
				UID:       types.UID("1a2b3c"),
 | 
			
		||||
			},
 | 
			
		||||
			Spec: batch.CronJobSpec{
 | 
			
		||||
				Schedule:          "* * * * ?",
 | 
			
		||||
				ConcurrencyPolicy: batch.AllowConcurrent,
 | 
			
		||||
				JobTemplate: batch.JobTemplateSpec{
 | 
			
		||||
					Spec: batch.JobSpec{
 | 
			
		||||
						Template: validHostNetPodTemplateSpec,
 | 
			
		||||
					},
 | 
			
		||||
				},
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
		"non-standard scheduled": {
 | 
			
		||||
			ObjectMeta: metav1.ObjectMeta{
 | 
			
		||||
				Name:      "mycronjob",
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user