mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-24 04:06:03 +00:00
Merge pull request #94896 from wawa0210/fix-92383
Support kubectl alpha debug default image imagePullPolicy set by the image tag
This commit is contained in:
commit
1ebf64d343
4
pkg/apis/apps/v1/zz_generated.defaults.go
generated
4
pkg/apis/apps/v1/zz_generated.defaults.go
generated
@ -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)
|
||||
|
2
pkg/apis/apps/v1beta1/zz_generated.defaults.go
generated
2
pkg/apis/apps/v1beta1/zz_generated.defaults.go
generated
@ -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)
|
||||
|
4
pkg/apis/apps/v1beta2/zz_generated.defaults.go
generated
4
pkg/apis/apps/v1beta2/zz_generated.defaults.go
generated
@ -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)
|
||||
|
1
pkg/apis/batch/v1/zz_generated.defaults.go
generated
1
pkg/apis/batch/v1/zz_generated.defaults.go
generated
@ -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)
|
||||
|
2
pkg/apis/batch/v1beta1/zz_generated.defaults.go
generated
2
pkg/apis/batch/v1beta1/zz_generated.defaults.go
generated
@ -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)
|
||||
|
2
pkg/apis/batch/v2alpha1/zz_generated.defaults.go
generated
2
pkg/apis/batch/v2alpha1/zz_generated.defaults.go
generated
@ -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)
|
||||
|
@ -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.
|
||||
|
@ -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
|
||||
|
@ -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": `"/"`,
|
||||
|
4
pkg/apis/core/v1/zz_generated.defaults.go
generated
4
pkg/apis/core/v1/zz_generated.defaults.go
generated
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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."))
|
||||
|
Loading…
Reference in New Issue
Block a user