diff --git a/pkg/apis/apps/v1/zz_generated.defaults.go b/pkg/apis/apps/v1/zz_generated.defaults.go index dd28a2d9671..0eb8a900c78 100644 --- a/pkg/apis/apps/v1/zz_generated.defaults.go +++ b/pkg/apis/apps/v1/zz_generated.defaults.go @@ -200,6 +200,7 @@ func SetObjectDefaults_DaemonSet(in *v1.DaemonSet) { } for i := range in.Spec.Template.Spec.EphemeralContainers { a := &in.Spec.Template.Spec.EphemeralContainers[i] + corev1.SetDefaults_EphemeralContainer(a) for j := range a.EphemeralContainerCommon.Ports { b := &a.EphemeralContainerCommon.Ports[j] corev1.SetDefaults_ContainerPort(b) @@ -414,6 +415,7 @@ func SetObjectDefaults_Deployment(in *v1.Deployment) { } for i := range in.Spec.Template.Spec.EphemeralContainers { a := &in.Spec.Template.Spec.EphemeralContainers[i] + corev1.SetDefaults_EphemeralContainer(a) for j := range a.EphemeralContainerCommon.Ports { b := &a.EphemeralContainerCommon.Ports[j] corev1.SetDefaults_ContainerPort(b) @@ -628,6 +630,7 @@ func SetObjectDefaults_ReplicaSet(in *v1.ReplicaSet) { } for i := range in.Spec.Template.Spec.EphemeralContainers { a := &in.Spec.Template.Spec.EphemeralContainers[i] + corev1.SetDefaults_EphemeralContainer(a) for j := range a.EphemeralContainerCommon.Ports { b := &a.EphemeralContainerCommon.Ports[j] corev1.SetDefaults_ContainerPort(b) @@ -842,6 +845,7 @@ func SetObjectDefaults_StatefulSet(in *v1.StatefulSet) { } for i := range in.Spec.Template.Spec.EphemeralContainers { a := &in.Spec.Template.Spec.EphemeralContainers[i] + corev1.SetDefaults_EphemeralContainer(a) for j := range a.EphemeralContainerCommon.Ports { b := &a.EphemeralContainerCommon.Ports[j] corev1.SetDefaults_ContainerPort(b) diff --git a/pkg/apis/apps/v1beta1/zz_generated.defaults.go b/pkg/apis/apps/v1beta1/zz_generated.defaults.go index 7b90fd8c3b1..001b53b7dd8 100644 --- a/pkg/apis/apps/v1beta1/zz_generated.defaults.go +++ b/pkg/apis/apps/v1beta1/zz_generated.defaults.go @@ -196,6 +196,7 @@ func SetObjectDefaults_Deployment(in *v1beta1.Deployment) { } for i := range in.Spec.Template.Spec.EphemeralContainers { a := &in.Spec.Template.Spec.EphemeralContainers[i] + v1.SetDefaults_EphemeralContainer(a) for j := range a.EphemeralContainerCommon.Ports { b := &a.EphemeralContainerCommon.Ports[j] v1.SetDefaults_ContainerPort(b) @@ -410,6 +411,7 @@ func SetObjectDefaults_StatefulSet(in *v1beta1.StatefulSet) { } for i := range in.Spec.Template.Spec.EphemeralContainers { a := &in.Spec.Template.Spec.EphemeralContainers[i] + v1.SetDefaults_EphemeralContainer(a) for j := range a.EphemeralContainerCommon.Ports { b := &a.EphemeralContainerCommon.Ports[j] v1.SetDefaults_ContainerPort(b) diff --git a/pkg/apis/apps/v1beta2/zz_generated.defaults.go b/pkg/apis/apps/v1beta2/zz_generated.defaults.go index 98288c2d0d2..a8798788cc4 100644 --- a/pkg/apis/apps/v1beta2/zz_generated.defaults.go +++ b/pkg/apis/apps/v1beta2/zz_generated.defaults.go @@ -200,6 +200,7 @@ func SetObjectDefaults_DaemonSet(in *v1beta2.DaemonSet) { } for i := range in.Spec.Template.Spec.EphemeralContainers { a := &in.Spec.Template.Spec.EphemeralContainers[i] + v1.SetDefaults_EphemeralContainer(a) for j := range a.EphemeralContainerCommon.Ports { b := &a.EphemeralContainerCommon.Ports[j] v1.SetDefaults_ContainerPort(b) @@ -414,6 +415,7 @@ func SetObjectDefaults_Deployment(in *v1beta2.Deployment) { } for i := range in.Spec.Template.Spec.EphemeralContainers { a := &in.Spec.Template.Spec.EphemeralContainers[i] + v1.SetDefaults_EphemeralContainer(a) for j := range a.EphemeralContainerCommon.Ports { b := &a.EphemeralContainerCommon.Ports[j] v1.SetDefaults_ContainerPort(b) @@ -628,6 +630,7 @@ func SetObjectDefaults_ReplicaSet(in *v1beta2.ReplicaSet) { } for i := range in.Spec.Template.Spec.EphemeralContainers { a := &in.Spec.Template.Spec.EphemeralContainers[i] + v1.SetDefaults_EphemeralContainer(a) for j := range a.EphemeralContainerCommon.Ports { b := &a.EphemeralContainerCommon.Ports[j] v1.SetDefaults_ContainerPort(b) @@ -842,6 +845,7 @@ func SetObjectDefaults_StatefulSet(in *v1beta2.StatefulSet) { } for i := range in.Spec.Template.Spec.EphemeralContainers { a := &in.Spec.Template.Spec.EphemeralContainers[i] + v1.SetDefaults_EphemeralContainer(a) for j := range a.EphemeralContainerCommon.Ports { b := &a.EphemeralContainerCommon.Ports[j] v1.SetDefaults_ContainerPort(b) diff --git a/pkg/apis/batch/v1/zz_generated.defaults.go b/pkg/apis/batch/v1/zz_generated.defaults.go index 44ee51207d4..75e7cd5b934 100644 --- a/pkg/apis/batch/v1/zz_generated.defaults.go +++ b/pkg/apis/batch/v1/zz_generated.defaults.go @@ -194,6 +194,7 @@ func SetObjectDefaults_Job(in *v1.Job) { } for i := range in.Spec.Template.Spec.EphemeralContainers { a := &in.Spec.Template.Spec.EphemeralContainers[i] + corev1.SetDefaults_EphemeralContainer(a) for j := range a.EphemeralContainerCommon.Ports { b := &a.EphemeralContainerCommon.Ports[j] corev1.SetDefaults_ContainerPort(b) diff --git a/pkg/apis/batch/v1beta1/zz_generated.defaults.go b/pkg/apis/batch/v1beta1/zz_generated.defaults.go index daacf1123c1..d435a8e5e17 100644 --- a/pkg/apis/batch/v1beta1/zz_generated.defaults.go +++ b/pkg/apis/batch/v1beta1/zz_generated.defaults.go @@ -195,6 +195,7 @@ func SetObjectDefaults_CronJob(in *v1beta1.CronJob) { } for i := range in.Spec.JobTemplate.Spec.Template.Spec.EphemeralContainers { a := &in.Spec.JobTemplate.Spec.Template.Spec.EphemeralContainers[i] + v1.SetDefaults_EphemeralContainer(a) for j := range a.EphemeralContainerCommon.Ports { b := &a.EphemeralContainerCommon.Ports[j] v1.SetDefaults_ContainerPort(b) @@ -408,6 +409,7 @@ func SetObjectDefaults_JobTemplate(in *v1beta1.JobTemplate) { } for i := range in.Template.Spec.Template.Spec.EphemeralContainers { a := &in.Template.Spec.Template.Spec.EphemeralContainers[i] + v1.SetDefaults_EphemeralContainer(a) for j := range a.EphemeralContainerCommon.Ports { b := &a.EphemeralContainerCommon.Ports[j] v1.SetDefaults_ContainerPort(b) diff --git a/pkg/apis/batch/v2alpha1/zz_generated.defaults.go b/pkg/apis/batch/v2alpha1/zz_generated.defaults.go index 9de0a141ee0..64377e4a2df 100644 --- a/pkg/apis/batch/v2alpha1/zz_generated.defaults.go +++ b/pkg/apis/batch/v2alpha1/zz_generated.defaults.go @@ -195,6 +195,7 @@ func SetObjectDefaults_CronJob(in *v2alpha1.CronJob) { } for i := range in.Spec.JobTemplate.Spec.Template.Spec.EphemeralContainers { a := &in.Spec.JobTemplate.Spec.Template.Spec.EphemeralContainers[i] + v1.SetDefaults_EphemeralContainer(a) for j := range a.EphemeralContainerCommon.Ports { b := &a.EphemeralContainerCommon.Ports[j] v1.SetDefaults_ContainerPort(b) @@ -408,6 +409,7 @@ func SetObjectDefaults_JobTemplate(in *v2alpha1.JobTemplate) { } for i := range in.Template.Spec.Template.Spec.EphemeralContainers { a := &in.Template.Spec.Template.Spec.EphemeralContainers[i] + v1.SetDefaults_EphemeralContainer(a) for j := range a.EphemeralContainerCommon.Ports { b := &a.EphemeralContainerCommon.Ports[j] v1.SetDefaults_ContainerPort(b) diff --git a/pkg/apis/core/fuzzer/fuzzer.go b/pkg/apis/core/fuzzer/fuzzer.go index 2d33f44d88f..43c4943474f 100644 --- a/pkg/apis/core/fuzzer/fuzzer.go +++ b/pkg/apis/core/fuzzer/fuzzer.go @@ -301,6 +301,11 @@ var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} { ct.TerminationMessagePath = "/" + ct.TerminationMessagePath // Must be non-empty ct.TerminationMessagePolicy = "File" }, + func(ep *core.EphemeralContainer, c fuzz.Continue) { + c.FuzzNoCustom(ep) // fuzz self without calling this function again + ep.EphemeralContainerCommon.TerminationMessagePath = "/" + ep.TerminationMessagePath // Must be non-empty + ep.EphemeralContainerCommon.TerminationMessagePolicy = "File" + }, func(p *core.Probe, c fuzz.Continue) { c.FuzzNoCustom(p) // These fields have default values. diff --git a/pkg/apis/core/v1/defaults.go b/pkg/apis/core/v1/defaults.go index 1bb6f27dcf2..dc8bf7e0734 100644 --- a/pkg/apis/core/v1/defaults.go +++ b/pkg/apis/core/v1/defaults.go @@ -96,6 +96,10 @@ func SetDefaults_Container(obj *v1.Container) { } } +func SetDefaults_EphemeralContainer(obj *v1.EphemeralContainer) { + SetDefaults_Container((*v1.Container)(&obj.EphemeralContainerCommon)) +} + func SetDefaults_Service(obj *v1.Service) { if obj.Spec.SessionAffinity == "" { obj.Spec.SessionAffinity = v1.ServiceAffinityNone diff --git a/pkg/apis/core/v1/defaults_test.go b/pkg/apis/core/v1/defaults_test.go index 7bb6cdbad08..14a990a0517 100644 --- a/pkg/apis/core/v1/defaults_test.go +++ b/pkg/apis/core/v1/defaults_test.go @@ -80,6 +80,7 @@ func TestWorkloadDefaults(t *testing.T) { ".Spec.Containers[0].TerminationMessagePolicy": `"File"`, ".Spec.DNSPolicy": `"ClusterFirst"`, ".Spec.EphemeralContainers[0].EphemeralContainerCommon.Env[0].ValueFrom.FieldRef.APIVersion": `"v1"`, + ".Spec.EphemeralContainers[0].EphemeralContainerCommon.ImagePullPolicy": `"IfNotPresent"`, ".Spec.EphemeralContainers[0].EphemeralContainerCommon.Lifecycle.PostStart.HTTPGet.Path": `"/"`, ".Spec.EphemeralContainers[0].EphemeralContainerCommon.Lifecycle.PostStart.HTTPGet.Scheme": `"HTTP"`, ".Spec.EphemeralContainers[0].EphemeralContainerCommon.Lifecycle.PreStop.HTTPGet.Path": `"/"`, @@ -103,6 +104,8 @@ func TestWorkloadDefaults(t *testing.T) { ".Spec.EphemeralContainers[0].EphemeralContainerCommon.StartupProbe.PeriodSeconds": "10", ".Spec.EphemeralContainers[0].EphemeralContainerCommon.StartupProbe.SuccessThreshold": "1", ".Spec.EphemeralContainers[0].EphemeralContainerCommon.StartupProbe.TimeoutSeconds": "1", + ".Spec.EphemeralContainers[0].EphemeralContainerCommon.TerminationMessagePath": `"/dev/termination-log"`, + ".Spec.EphemeralContainers[0].EphemeralContainerCommon.TerminationMessagePolicy": `"File"`, ".Spec.InitContainers[0].Env[0].ValueFrom.FieldRef.APIVersion": `"v1"`, ".Spec.InitContainers[0].ImagePullPolicy": `"IfNotPresent"`, ".Spec.InitContainers[0].Lifecycle.PostStart.HTTPGet.Path": `"/"`, @@ -203,6 +206,7 @@ func TestPodDefaults(t *testing.T) { ".Spec.DNSPolicy": `"ClusterFirst"`, ".Spec.EnableServiceLinks": `true`, ".Spec.EphemeralContainers[0].EphemeralContainerCommon.Env[0].ValueFrom.FieldRef.APIVersion": `"v1"`, + ".Spec.EphemeralContainers[0].EphemeralContainerCommon.ImagePullPolicy": `"IfNotPresent"`, ".Spec.EphemeralContainers[0].EphemeralContainerCommon.Lifecycle.PostStart.HTTPGet.Path": `"/"`, ".Spec.EphemeralContainers[0].EphemeralContainerCommon.Lifecycle.PostStart.HTTPGet.Scheme": `"HTTP"`, ".Spec.EphemeralContainers[0].EphemeralContainerCommon.Lifecycle.PreStop.HTTPGet.Path": `"/"`, @@ -226,6 +230,8 @@ func TestPodDefaults(t *testing.T) { ".Spec.EphemeralContainers[0].EphemeralContainerCommon.StartupProbe.PeriodSeconds": "10", ".Spec.EphemeralContainers[0].EphemeralContainerCommon.StartupProbe.SuccessThreshold": "1", ".Spec.EphemeralContainers[0].EphemeralContainerCommon.StartupProbe.TimeoutSeconds": "1", + ".Spec.EphemeralContainers[0].EphemeralContainerCommon.TerminationMessagePath": `"/dev/termination-log"`, + ".Spec.EphemeralContainers[0].EphemeralContainerCommon.TerminationMessagePolicy": `"File"`, ".Spec.InitContainers[0].Env[0].ValueFrom.FieldRef.APIVersion": `"v1"`, ".Spec.InitContainers[0].ImagePullPolicy": `"IfNotPresent"`, ".Spec.InitContainers[0].Lifecycle.PostStart.HTTPGet.Path": `"/"`, diff --git a/pkg/apis/core/v1/zz_generated.defaults.go b/pkg/apis/core/v1/zz_generated.defaults.go index 048457b8d9c..d85f6291e47 100644 --- a/pkg/apis/core/v1/zz_generated.defaults.go +++ b/pkg/apis/core/v1/zz_generated.defaults.go @@ -88,6 +88,7 @@ func SetObjectDefaults_EndpointsList(in *v1.EndpointsList) { func SetObjectDefaults_EphemeralContainers(in *v1.EphemeralContainers) { for i := range in.EphemeralContainers { a := &in.EphemeralContainers[i] + SetDefaults_EphemeralContainer(a) for j := range a.EphemeralContainerCommon.Ports { b := &a.EphemeralContainerCommon.Ports[j] SetDefaults_ContainerPort(b) @@ -379,6 +380,7 @@ func SetObjectDefaults_Pod(in *v1.Pod) { } for i := range in.Spec.EphemeralContainers { a := &in.Spec.EphemeralContainers[i] + SetDefaults_EphemeralContainer(a) for j := range a.EphemeralContainerCommon.Ports { b := &a.EphemeralContainerCommon.Ports[j] SetDefaults_ContainerPort(b) @@ -592,6 +594,7 @@ func SetObjectDefaults_PodTemplate(in *v1.PodTemplate) { } for i := range in.Template.Spec.EphemeralContainers { a := &in.Template.Spec.EphemeralContainers[i] + SetDefaults_EphemeralContainer(a) for j := range a.EphemeralContainerCommon.Ports { b := &a.EphemeralContainerCommon.Ports[j] SetDefaults_ContainerPort(b) @@ -807,6 +810,7 @@ func SetObjectDefaults_ReplicationController(in *v1.ReplicationController) { } for i := range in.Spec.Template.Spec.EphemeralContainers { a := &in.Spec.Template.Spec.EphemeralContainers[i] + SetDefaults_EphemeralContainer(a) for j := range a.EphemeralContainerCommon.Ports { b := &a.EphemeralContainerCommon.Ports[j] SetDefaults_ContainerPort(b) diff --git a/pkg/apis/extensions/v1beta1/zz_generated.defaults.go b/pkg/apis/extensions/v1beta1/zz_generated.defaults.go index d55f96ec040..29f0d6064ee 100644 --- a/pkg/apis/extensions/v1beta1/zz_generated.defaults.go +++ b/pkg/apis/extensions/v1beta1/zz_generated.defaults.go @@ -204,6 +204,7 @@ func SetObjectDefaults_DaemonSet(in *v1beta1.DaemonSet) { } for i := range in.Spec.Template.Spec.EphemeralContainers { a := &in.Spec.Template.Spec.EphemeralContainers[i] + v1.SetDefaults_EphemeralContainer(a) for j := range a.EphemeralContainerCommon.Ports { b := &a.EphemeralContainerCommon.Ports[j] v1.SetDefaults_ContainerPort(b) @@ -418,6 +419,7 @@ func SetObjectDefaults_Deployment(in *v1beta1.Deployment) { } for i := range in.Spec.Template.Spec.EphemeralContainers { a := &in.Spec.Template.Spec.EphemeralContainers[i] + v1.SetDefaults_EphemeralContainer(a) for j := range a.EphemeralContainerCommon.Ports { b := &a.EphemeralContainerCommon.Ports[j] v1.SetDefaults_ContainerPort(b) @@ -673,6 +675,7 @@ func SetObjectDefaults_ReplicaSet(in *v1beta1.ReplicaSet) { } for i := range in.Spec.Template.Spec.EphemeralContainers { a := &in.Spec.Template.Spec.EphemeralContainers[i] + v1.SetDefaults_EphemeralContainer(a) for j := range a.EphemeralContainerCommon.Ports { b := &a.EphemeralContainerCommon.Ports[j] v1.SetDefaults_ContainerPort(b) diff --git a/staging/src/k8s.io/kubectl/pkg/cmd/debug/debug.go b/staging/src/k8s.io/kubectl/pkg/cmd/debug/debug.go index 51d9d676c83..03288dfc995 100644 --- a/staging/src/k8s.io/kubectl/pkg/cmd/debug/debug.go +++ b/staging/src/k8s.io/kubectl/pkg/cmd/debug/debug.go @@ -160,7 +160,7 @@ func addDebugFlags(cmd *cobra.Command, opt *DebugOptions) { cmd.Flags().StringToString("env", nil, i18n.T("Environment variables to set in the container.")) cmd.Flags().StringVar(&opt.Image, "image", opt.Image, i18n.T("Container image to use for debug container.")) cmd.MarkFlagRequired("image") - cmd.Flags().String("image-pull-policy", string(corev1.PullIfNotPresent), i18n.T("The image pull policy for the container.")) + cmd.Flags().String("image-pull-policy", "", i18n.T("The image pull policy for the container. If left empty, this value will not be specified by the client and defaulted by the server")) cmd.Flags().BoolVarP(&opt.Interactive, "stdin", "i", opt.Interactive, i18n.T("Keep stdin open on the container(s) in the pod, even if nothing is attached.")) cmd.Flags().BoolVar(&opt.Quiet, "quiet", opt.Quiet, i18n.T("If true, suppress informational messages.")) cmd.Flags().BoolVar(&opt.SameNode, "same-node", opt.SameNode, i18n.T("When used with '--copy-to', schedule the copy of target Pod on the same node."))