mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 19:56:01 +00:00
Merge pull request #48406 from gyliu513/image-optional
Automatic merge from submit-queue (batch tested with PRs 48406, 52819). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.. Made image as deliberately optional in v1 Container struct. **What this PR does / why we need it**: Revert https://github.com/kubernetes/kubernetes/pull/47246/ **Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes # **Special notes for your reviewer**: **Release note**: ```release-note Mark image as deliberately optional in v1 Container struct. Many objects in the Kubernetes API inherit the container struct and only Pods require the field to be set. ```
This commit is contained in:
commit
1a8bf2d854
@ -63977,8 +63977,7 @@
|
||||
"io.k8s.api.core.v1.Container": {
|
||||
"description": "A single application container that you want to run within a pod.",
|
||||
"required": [
|
||||
"name",
|
||||
"image"
|
||||
"name"
|
||||
],
|
||||
"properties": {
|
||||
"args": {
|
||||
@ -64012,7 +64011,7 @@
|
||||
}
|
||||
},
|
||||
"image": {
|
||||
"description": "Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images",
|
||||
"description": "Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.",
|
||||
"type": "string"
|
||||
},
|
||||
"imagePullPolicy": {
|
||||
|
@ -5323,8 +5323,7 @@
|
||||
"id": "v1.Container",
|
||||
"description": "A single application container that you want to run within a pod.",
|
||||
"required": [
|
||||
"name",
|
||||
"image"
|
||||
"name"
|
||||
],
|
||||
"properties": {
|
||||
"name": {
|
||||
@ -5333,7 +5332,7 @@
|
||||
},
|
||||
"image": {
|
||||
"type": "string",
|
||||
"description": "Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images"
|
||||
"description": "Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets."
|
||||
},
|
||||
"command": {
|
||||
"type": "array",
|
||||
|
@ -7653,8 +7653,7 @@
|
||||
"id": "v1.Container",
|
||||
"description": "A single application container that you want to run within a pod.",
|
||||
"required": [
|
||||
"name",
|
||||
"image"
|
||||
"name"
|
||||
],
|
||||
"properties": {
|
||||
"name": {
|
||||
@ -7663,7 +7662,7 @@
|
||||
},
|
||||
"image": {
|
||||
"type": "string",
|
||||
"description": "Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images"
|
||||
"description": "Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets."
|
||||
},
|
||||
"command": {
|
||||
"type": "array",
|
||||
|
@ -2718,8 +2718,7 @@
|
||||
"id": "v1.Container",
|
||||
"description": "A single application container that you want to run within a pod.",
|
||||
"required": [
|
||||
"name",
|
||||
"image"
|
||||
"name"
|
||||
],
|
||||
"properties": {
|
||||
"name": {
|
||||
@ -2728,7 +2727,7 @@
|
||||
},
|
||||
"image": {
|
||||
"type": "string",
|
||||
"description": "Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images"
|
||||
"description": "Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets."
|
||||
},
|
||||
"command": {
|
||||
"type": "array",
|
||||
|
@ -2773,8 +2773,7 @@
|
||||
"id": "v1.Container",
|
||||
"description": "A single application container that you want to run within a pod.",
|
||||
"required": [
|
||||
"name",
|
||||
"image"
|
||||
"name"
|
||||
],
|
||||
"properties": {
|
||||
"name": {
|
||||
@ -2783,7 +2782,7 @@
|
||||
},
|
||||
"image": {
|
||||
"type": "string",
|
||||
"description": "Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images"
|
||||
"description": "Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets."
|
||||
},
|
||||
"command": {
|
||||
"type": "array",
|
||||
|
@ -2773,8 +2773,7 @@
|
||||
"id": "v1.Container",
|
||||
"description": "A single application container that you want to run within a pod.",
|
||||
"required": [
|
||||
"name",
|
||||
"image"
|
||||
"name"
|
||||
],
|
||||
"properties": {
|
||||
"name": {
|
||||
@ -2783,7 +2782,7 @@
|
||||
},
|
||||
"image": {
|
||||
"type": "string",
|
||||
"description": "Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images"
|
||||
"description": "Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets."
|
||||
},
|
||||
"command": {
|
||||
"type": "array",
|
||||
|
@ -8271,8 +8271,7 @@
|
||||
"id": "v1.Container",
|
||||
"description": "A single application container that you want to run within a pod.",
|
||||
"required": [
|
||||
"name",
|
||||
"image"
|
||||
"name"
|
||||
],
|
||||
"properties": {
|
||||
"name": {
|
||||
@ -8281,7 +8280,7 @@
|
||||
},
|
||||
"image": {
|
||||
"type": "string",
|
||||
"description": "Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images"
|
||||
"description": "Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets."
|
||||
},
|
||||
"command": {
|
||||
"type": "array",
|
||||
|
@ -21659,8 +21659,7 @@
|
||||
"id": "v1.Container",
|
||||
"description": "A single application container that you want to run within a pod.",
|
||||
"required": [
|
||||
"name",
|
||||
"image"
|
||||
"name"
|
||||
],
|
||||
"properties": {
|
||||
"name": {
|
||||
@ -21669,7 +21668,7 @@
|
||||
},
|
||||
"image": {
|
||||
"type": "string",
|
||||
"description": "Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images"
|
||||
"description": "Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets."
|
||||
},
|
||||
"command": {
|
||||
"type": "array",
|
||||
|
@ -5500,8 +5500,8 @@ Examples:<br>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">image</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Docker image name. More info: <a href="https://kubernetes.io/docs/concepts/containers/images">https://kubernetes.io/docs/concepts/containers/images</a></p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Docker image name. More info: <a href="https://kubernetes.io/docs/concepts/containers/images">https://kubernetes.io/docs/concepts/containers/images</a> This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
|
||||
<td class="tableblock halign-left valign-top"></td>
|
||||
</tr>
|
||||
|
@ -5765,8 +5765,8 @@ Examples:<br>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">image</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Docker image name. More info: <a href="https://kubernetes.io/docs/concepts/containers/images">https://kubernetes.io/docs/concepts/containers/images</a></p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Docker image name. More info: <a href="https://kubernetes.io/docs/concepts/containers/images">https://kubernetes.io/docs/concepts/containers/images</a> This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
|
||||
<td class="tableblock halign-left valign-top"></td>
|
||||
</tr>
|
||||
|
@ -4385,8 +4385,8 @@ Examples:<br>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">image</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Docker image name. More info: <a href="https://kubernetes.io/docs/concepts/containers/images">https://kubernetes.io/docs/concepts/containers/images</a></p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Docker image name. More info: <a href="https://kubernetes.io/docs/concepts/containers/images">https://kubernetes.io/docs/concepts/containers/images</a> This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
|
||||
<td class="tableblock halign-left valign-top"></td>
|
||||
</tr>
|
||||
|
@ -4536,8 +4536,8 @@ Examples:<br>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">image</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Docker image name. More info: <a href="https://kubernetes.io/docs/concepts/containers/images">https://kubernetes.io/docs/concepts/containers/images</a></p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Docker image name. More info: <a href="https://kubernetes.io/docs/concepts/containers/images">https://kubernetes.io/docs/concepts/containers/images</a> This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
|
||||
<td class="tableblock halign-left valign-top"></td>
|
||||
</tr>
|
||||
|
@ -4392,8 +4392,8 @@ Examples:<br>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">image</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Docker image name. More info: <a href="https://kubernetes.io/docs/concepts/containers/images">https://kubernetes.io/docs/concepts/containers/images</a></p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Docker image name. More info: <a href="https://kubernetes.io/docs/concepts/containers/images">https://kubernetes.io/docs/concepts/containers/images</a> This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
|
||||
<td class="tableblock halign-left valign-top"></td>
|
||||
</tr>
|
||||
|
@ -6282,8 +6282,8 @@ Both these may change in the future. Incoming requests are matched against the h
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">image</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Docker image name. More info: <a href="https://kubernetes.io/docs/concepts/containers/images">https://kubernetes.io/docs/concepts/containers/images</a></p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Docker image name. More info: <a href="https://kubernetes.io/docs/concepts/containers/images">https://kubernetes.io/docs/concepts/containers/images</a> This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
|
||||
<td class="tableblock halign-left valign-top"></td>
|
||||
</tr>
|
||||
|
@ -7368,8 +7368,8 @@ Examples:<br>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">image</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Docker image name. More info: <a href="https://kubernetes.io/docs/concepts/containers/images">https://kubernetes.io/docs/concepts/containers/images</a></p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Docker image name. More info: <a href="https://kubernetes.io/docs/concepts/containers/images">https://kubernetes.io/docs/concepts/containers/images</a> This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
|
||||
<td class="tableblock halign-left valign-top"></td>
|
||||
</tr>
|
||||
|
@ -10770,8 +10770,7 @@
|
||||
"io.k8s.api.core.v1.Container": {
|
||||
"description": "A single application container that you want to run within a pod.",
|
||||
"required": [
|
||||
"name",
|
||||
"image"
|
||||
"name"
|
||||
],
|
||||
"properties": {
|
||||
"args": {
|
||||
@ -10805,7 +10804,7 @@
|
||||
}
|
||||
},
|
||||
"image": {
|
||||
"description": "Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images",
|
||||
"description": "Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.",
|
||||
"type": "string"
|
||||
},
|
||||
"imagePullPolicy": {
|
||||
|
@ -6470,8 +6470,7 @@
|
||||
"id": "v1.Container",
|
||||
"description": "A single application container that you want to run within a pod.",
|
||||
"required": [
|
||||
"name",
|
||||
"image"
|
||||
"name"
|
||||
],
|
||||
"properties": {
|
||||
"name": {
|
||||
@ -6480,7 +6479,7 @@
|
||||
},
|
||||
"image": {
|
||||
"type": "string",
|
||||
"description": "Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images"
|
||||
"description": "Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets."
|
||||
},
|
||||
"command": {
|
||||
"type": "array",
|
||||
|
@ -5708,8 +5708,8 @@ Both these may change in the future. Incoming requests are matched against the h
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">image</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Docker image name. More info: <a href="https://kubernetes.io/docs/concepts/containers/images">https://kubernetes.io/docs/concepts/containers/images</a></p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Docker image name. More info: <a href="https://kubernetes.io/docs/concepts/containers/images">https://kubernetes.io/docs/concepts/containers/images</a> This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
|
||||
<td class="tableblock halign-left valign-top"></td>
|
||||
</tr>
|
||||
|
@ -271,13 +271,6 @@ spec:
|
||||
Field: "name",
|
||||
},
|
||||
},
|
||||
validation.ValidationError{
|
||||
Path: "Pod.spec.containers[0]",
|
||||
Err: validation.MissingRequiredFieldError{
|
||||
Path: "io.k8s.api.core.v1.Container",
|
||||
Field: "image",
|
||||
},
|
||||
},
|
||||
})))
|
||||
})
|
||||
|
||||
@ -303,13 +296,6 @@ spec:
|
||||
Field: "name",
|
||||
},
|
||||
},
|
||||
validation.ValidationError{
|
||||
Path: "Pod.spec.containers[0]",
|
||||
Err: validation.MissingRequiredFieldError{
|
||||
Path: "io.k8s.api.core.v1.Container",
|
||||
Field: "image",
|
||||
},
|
||||
},
|
||||
})))
|
||||
})
|
||||
|
||||
@ -347,15 +333,6 @@ items:
|
||||
- name: name
|
||||
`))
|
||||
|
||||
Expect(err).To(Equal(utilerrors.NewAggregate([]error{
|
||||
validation.ValidationError{
|
||||
Path: "Pod.spec.containers[0]",
|
||||
Err: validation.MissingRequiredFieldError{
|
||||
Path: "io.k8s.api.core.v1.Container",
|
||||
Field: "image",
|
||||
},
|
||||
},
|
||||
})))
|
||||
Expect(err).To(BeNil())
|
||||
})
|
||||
|
||||
})
|
||||
|
@ -441,6 +441,9 @@ message Container {
|
||||
|
||||
// Docker image name.
|
||||
// More info: https://kubernetes.io/docs/concepts/containers/images
|
||||
// This field is optional to allow higher level config management to default or override
|
||||
// container images in workload controllers like Deployments and StatefulSets.
|
||||
// +optional
|
||||
optional string image = 2;
|
||||
|
||||
// Entrypoint array. Not executed within a shell.
|
||||
|
@ -1887,7 +1887,10 @@ type Container struct {
|
||||
Name string `json:"name" protobuf:"bytes,1,opt,name=name"`
|
||||
// Docker image name.
|
||||
// More info: https://kubernetes.io/docs/concepts/containers/images
|
||||
Image string `json:"image" protobuf:"bytes,2,opt,name=image"`
|
||||
// This field is optional to allow higher level config management to default or override
|
||||
// container images in workload controllers like Deployments and StatefulSets.
|
||||
// +optional
|
||||
Image string `json:"image,omitempty" protobuf:"bytes,2,opt,name=image"`
|
||||
// Entrypoint array. Not executed within a shell.
|
||||
// The docker image's ENTRYPOINT is used if this is not provided.
|
||||
// Variable references $(VAR_NAME) are expanded using the container's environment. If a variable
|
||||
|
@ -269,7 +269,7 @@ func (ConfigMapVolumeSource) SwaggerDoc() map[string]string {
|
||||
var map_Container = map[string]string{
|
||||
"": "A single application container that you want to run within a pod.",
|
||||
"name": "Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.",
|
||||
"image": "Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images",
|
||||
"image": "Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.",
|
||||
"command": "Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell",
|
||||
"args": "Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell",
|
||||
"workingDir": "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.",
|
||||
|
Loading…
Reference in New Issue
Block a user