mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-29 06:27:05 +00:00
Merge pull request #45610 from bsalamat/priority_api
Automatic merge from submit-queue (batch tested with PRs 45610, 47628) Add Priority to Kubernetes API **What this PR does / why we need it**: This is the first in a series of PRs to add priority to Kubernetes API. Subsequent PRs will add priority name resolution to admission controller. **Release note**: ```release-note Add PriorityClassName and Priority fields to PodSpec. ```
This commit is contained in:
commit
82eff38a63
@ -51285,6 +51285,15 @@
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"priority": {
|
||||
"description": "The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority.",
|
||||
"type": "integer",
|
||||
"format": "int32"
|
||||
},
|
||||
"priorityClassName": {
|
||||
"description": "If specified, indicates the pod's priority. \"SYSTEM\" is a special keyword which indicates the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default.",
|
||||
"type": "string"
|
||||
},
|
||||
"restartPolicy": {
|
||||
"description": "Restart policy for all containers within the pod. One of Always, OnFailure, Never. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy",
|
||||
"type": "string"
|
||||
|
@ -3828,6 +3828,15 @@
|
||||
"$ref": "v1.HostAlias"
|
||||
},
|
||||
"description": "HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts file if specified. This is only valid for non-hostNetwork pods."
|
||||
},
|
||||
"priorityClassName": {
|
||||
"type": "string",
|
||||
"description": "If specified, indicates the pod's priority. \"SYSTEM\" is a special keyword which indicates the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default."
|
||||
},
|
||||
"priority": {
|
||||
"type": "integer",
|
||||
"format": "int32",
|
||||
"description": "The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority."
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -1575,6 +1575,15 @@
|
||||
"$ref": "v1.HostAlias"
|
||||
},
|
||||
"description": "HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts file if specified. This is only valid for non-hostNetwork pods."
|
||||
},
|
||||
"priorityClassName": {
|
||||
"type": "string",
|
||||
"description": "If specified, indicates the pod's priority. \"SYSTEM\" is a special keyword which indicates the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default."
|
||||
},
|
||||
"priority": {
|
||||
"type": "integer",
|
||||
"format": "int32",
|
||||
"description": "The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority."
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -2656,6 +2656,15 @@
|
||||
"$ref": "v1.HostAlias"
|
||||
},
|
||||
"description": "HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts file if specified. This is only valid for non-hostNetwork pods."
|
||||
},
|
||||
"priorityClassName": {
|
||||
"type": "string",
|
||||
"description": "If specified, indicates the pod's priority. \"SYSTEM\" is a special keyword which indicates the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default."
|
||||
},
|
||||
"priority": {
|
||||
"type": "integer",
|
||||
"format": "int32",
|
||||
"description": "The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority."
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -7300,6 +7300,15 @@
|
||||
"$ref": "v1.HostAlias"
|
||||
},
|
||||
"description": "HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts file if specified. This is only valid for non-hostNetwork pods."
|
||||
},
|
||||
"priorityClassName": {
|
||||
"type": "string",
|
||||
"description": "If specified, indicates the pod's priority. \"SYSTEM\" is a special keyword which indicates the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default."
|
||||
},
|
||||
"priority": {
|
||||
"type": "integer",
|
||||
"format": "int32",
|
||||
"description": "The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority."
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -19702,6 +19702,15 @@
|
||||
"$ref": "v1.HostAlias"
|
||||
},
|
||||
"description": "HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts file if specified. This is only valid for non-hostNetwork pods."
|
||||
},
|
||||
"priorityClassName": {
|
||||
"type": "string",
|
||||
"description": "If specified, indicates the pod's priority. \"SYSTEM\" is a special keyword which indicates the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default."
|
||||
},
|
||||
"priority": {
|
||||
"type": "integer",
|
||||
"format": "int32",
|
||||
"description": "The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority."
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -3797,6 +3797,20 @@ The StatefulSet guarantees that a given network identity will always map to the
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_v1_hostalias">v1.HostAlias</a> array</p></td>
|
||||
<td class="tableblock halign-left valign-top"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">priorityClassName</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">If specified, indicates the pod’s priority. "SYSTEM" is a special keyword which indicates the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default.</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>
|
||||
<tr>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">priority</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority.</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">integer (int32)</p></td>
|
||||
<td class="tableblock halign-left valign-top"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
@ -3222,6 +3222,20 @@ When an object is created, the system will populate this list with the current s
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_v1_hostalias">v1.HostAlias</a> array</p></td>
|
||||
<td class="tableblock halign-left valign-top"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">priorityClassName</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">If specified, indicates the pod’s priority. "SYSTEM" is a special keyword which indicates the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default.</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>
|
||||
<tr>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">priority</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority.</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">integer (int32)</p></td>
|
||||
<td class="tableblock halign-left valign-top"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
@ -3229,6 +3229,20 @@ When an object is created, the system will populate this list with the current s
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_v1_hostalias">v1.HostAlias</a> array</p></td>
|
||||
<td class="tableblock halign-left valign-top"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">priorityClassName</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">If specified, indicates the pod’s priority. "SYSTEM" is a special keyword which indicates the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default.</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>
|
||||
<tr>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">priority</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority.</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">integer (int32)</p></td>
|
||||
<td class="tableblock halign-left valign-top"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
@ -4541,6 +4541,20 @@ When an object is created, the system will populate this list with the current s
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_v1_hostalias">v1.HostAlias</a> array</p></td>
|
||||
<td class="tableblock halign-left valign-top"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">priorityClassName</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">If specified, indicates the pod’s priority. "SYSTEM" is a special keyword which indicates the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default.</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>
|
||||
<tr>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">priority</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority.</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">integer (int32)</p></td>
|
||||
<td class="tableblock halign-left valign-top"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
@ -5405,6 +5405,20 @@ The resulting set of endpoints can be viewed as:<br>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_v1_hostalias">v1.HostAlias</a> array</p></td>
|
||||
<td class="tableblock halign-left valign-top"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">priorityClassName</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">If specified, indicates the pod’s priority. "SYSTEM" is a special keyword which indicates the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default.</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>
|
||||
<tr>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">priority</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority.</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">integer (int32)</p></td>
|
||||
<td class="tableblock halign-left valign-top"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
@ -11166,6 +11166,15 @@
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"priority": {
|
||||
"description": "The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority.",
|
||||
"type": "integer",
|
||||
"format": "int32"
|
||||
},
|
||||
"priorityClassName": {
|
||||
"description": "If specified, indicates the pod's priority. \"SYSTEM\" is a special keyword which indicates the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default.",
|
||||
"type": "string"
|
||||
},
|
||||
"restartPolicy": {
|
||||
"description": "Restart policy for all containers within the pod. One of Always, OnFailure, Never. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy",
|
||||
"type": "string"
|
||||
|
@ -5044,6 +5044,15 @@
|
||||
"$ref": "v1.HostAlias"
|
||||
},
|
||||
"description": "HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts file if specified. This is only valid for non-hostNetwork pods."
|
||||
},
|
||||
"priorityClassName": {
|
||||
"type": "string",
|
||||
"description": "If specified, indicates the pod's priority. \"SYSTEM\" is a special keyword which indicates the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default."
|
||||
},
|
||||
"priority": {
|
||||
"type": "integer",
|
||||
"format": "int32",
|
||||
"description": "The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority."
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -4160,6 +4160,20 @@ When an object is created, the system will populate this list with the current s
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_v1_hostalias">v1.HostAlias</a> array</p></td>
|
||||
<td class="tableblock halign-left valign-top"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">priorityClassName</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">If specified, indicates the pod’s priority. "SYSTEM" is a special keyword which indicates the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default.</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>
|
||||
<tr>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">priority</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority.</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">integer (int32)</p></td>
|
||||
<td class="tableblock halign-left valign-top"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
@ -2213,6 +2213,20 @@ type PodSpec struct {
|
||||
// file if specified. This is only valid for non-hostNetwork pods.
|
||||
// +optional
|
||||
HostAliases []HostAlias
|
||||
// If specified, indicates the pod's priority. "SYSTEM" is a special keyword
|
||||
// which indicates the highest priority. Any other name must be defined by
|
||||
// creating a PriorityClass object with that name.
|
||||
// If not specified, the pod priority will be default or zero if there is no
|
||||
// default.
|
||||
// +optional
|
||||
PriorityClassName string
|
||||
// The priority value. Various system components use this field to find the
|
||||
// priority of the pod. When Priority Admission Controller is enabled, it
|
||||
// prevents users from setting this field. The admission controller populates
|
||||
// this field from PriorityClassName.
|
||||
// The higher the value, the higher the priority.
|
||||
// +optional
|
||||
Priority *int32
|
||||
}
|
||||
|
||||
// HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the
|
||||
|
@ -3532,6 +3532,8 @@ func autoConvert_v1_PodSpec_To_api_PodSpec(in *v1.PodSpec, out *api.PodSpec, s c
|
||||
out.SchedulerName = in.SchedulerName
|
||||
out.Tolerations = *(*[]api.Toleration)(unsafe.Pointer(&in.Tolerations))
|
||||
out.HostAliases = *(*[]api.HostAlias)(unsafe.Pointer(&in.HostAliases))
|
||||
out.PriorityClassName = in.PriorityClassName
|
||||
out.Priority = (*int32)(unsafe.Pointer(in.Priority))
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -3577,6 +3579,8 @@ func autoConvert_api_PodSpec_To_v1_PodSpec(in *api.PodSpec, out *v1.PodSpec, s c
|
||||
out.SchedulerName = in.SchedulerName
|
||||
out.Tolerations = *(*[]v1.Toleration)(unsafe.Pointer(&in.Tolerations))
|
||||
out.HostAliases = *(*[]v1.HostAlias)(unsafe.Pointer(&in.HostAliases))
|
||||
out.PriorityClassName = in.PriorityClassName
|
||||
out.Priority = (*int32)(unsafe.Pointer(in.Priority))
|
||||
return nil
|
||||
}
|
||||
|
||||
|
@ -276,6 +276,10 @@ var ValidateClusterName = genericvalidation.ValidateClusterName
|
||||
// (where it should be) and this file.
|
||||
var ValidateClassName = NameIsDNSSubdomain
|
||||
|
||||
// ValidatePiorityClassName can be used to check whether the given priority
|
||||
// class name is valid.
|
||||
var ValidatePriorityClassName = NameIsDNSSubdomain
|
||||
|
||||
// TODO update all references to these functions to point to the genericvalidation ones
|
||||
// NameIsDNSSubdomain is a ValidateNameFunc for names that must be a DNS subdomain.
|
||||
func NameIsDNSSubdomain(name string, prefix bool) []string {
|
||||
@ -2296,6 +2300,20 @@ func ValidatePodSpec(spec *api.PodSpec, fldPath *field.Path) field.ErrorList {
|
||||
allErrs = append(allErrs, ValidateHostAliases(spec.HostAliases, fldPath.Child("hostAliases"))...)
|
||||
}
|
||||
|
||||
if len(spec.PriorityClassName) > 0 {
|
||||
if !utilfeature.DefaultFeatureGate.Enabled(features.PodPriority) {
|
||||
allErrs = append(allErrs, field.Forbidden(fldPath.Child("priorityClassName"), "Pod priority is disabled by feature-gate"))
|
||||
} else {
|
||||
for _, msg := range ValidatePriorityClassName(spec.PriorityClassName, false) {
|
||||
allErrs = append(allErrs, field.Invalid(fldPath.Child("priorityClassName"), spec.PriorityClassName, msg))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if spec.Priority != nil && !utilfeature.DefaultFeatureGate.Enabled(features.PodPriority) {
|
||||
allErrs = append(allErrs, field.Forbidden(fldPath.Child("priority"), "Pod priority is disabled by feature-gate"))
|
||||
}
|
||||
|
||||
return allErrs
|
||||
}
|
||||
|
||||
|
@ -3631,6 +3631,24 @@ func TestValidatePodSpec(t *testing.T) {
|
||||
minGroupID := int64(0)
|
||||
maxGroupID := int64(2147483647)
|
||||
|
||||
priorityEnabled := utilfeature.DefaultFeatureGate.Enabled("PodPriority")
|
||||
defer func() {
|
||||
var err error
|
||||
// restoring the old value
|
||||
if priorityEnabled {
|
||||
err = utilfeature.DefaultFeatureGate.Set("PodPriority=true")
|
||||
} else {
|
||||
err = utilfeature.DefaultFeatureGate.Set("PodPriority=false")
|
||||
}
|
||||
if err != nil {
|
||||
t.Errorf("Failed to restore feature gate for PodPriority: %v", err)
|
||||
}
|
||||
}()
|
||||
err := utilfeature.DefaultFeatureGate.Set("PodPriority=true")
|
||||
if err != nil {
|
||||
t.Errorf("Failed to enable feature gate for PodPriority: %v", err)
|
||||
return
|
||||
}
|
||||
successCases := []api.PodSpec{
|
||||
{ // Populate basic fields, leave defaults for most.
|
||||
Volumes: []api.Volume{{Name: "vol", VolumeSource: api.VolumeSource{EmptyDir: &api.EmptyDirVolumeSource{}}}},
|
||||
@ -3739,6 +3757,13 @@ func TestValidatePodSpec(t *testing.T) {
|
||||
RestartPolicy: api.RestartPolicyAlways,
|
||||
DNSPolicy: api.DNSClusterFirst,
|
||||
},
|
||||
{ // Populate PriorityClassName.
|
||||
Volumes: []api.Volume{{Name: "vol", VolumeSource: api.VolumeSource{EmptyDir: &api.EmptyDirVolumeSource{}}}},
|
||||
Containers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}},
|
||||
RestartPolicy: api.RestartPolicyAlways,
|
||||
DNSPolicy: api.DNSClusterFirst,
|
||||
PriorityClassName: "valid-name",
|
||||
},
|
||||
}
|
||||
for i := range successCases {
|
||||
if errs := ValidatePodSpec(&successCases[i], field.NewPath("field")); len(errs) != 0 {
|
||||
@ -3909,12 +3934,47 @@ func TestValidatePodSpec(t *testing.T) {
|
||||
RestartPolicy: api.RestartPolicyAlways,
|
||||
DNSPolicy: api.DNSClusterFirst,
|
||||
},
|
||||
"bad PriorityClassName": {
|
||||
Volumes: []api.Volume{{Name: "vol", VolumeSource: api.VolumeSource{EmptyDir: &api.EmptyDirVolumeSource{}}}},
|
||||
Containers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}},
|
||||
RestartPolicy: api.RestartPolicyAlways,
|
||||
DNSPolicy: api.DNSClusterFirst,
|
||||
PriorityClassName: "InvalidName",
|
||||
},
|
||||
}
|
||||
for k, v := range failureCases {
|
||||
if errs := ValidatePodSpec(&v, field.NewPath("field")); len(errs) == 0 {
|
||||
t.Errorf("expected failure for %q", k)
|
||||
}
|
||||
}
|
||||
|
||||
err = utilfeature.DefaultFeatureGate.Set("PodPriority=false")
|
||||
if err != nil {
|
||||
t.Errorf("Failed to disable feature gate for PodPriority: %v", err)
|
||||
return
|
||||
}
|
||||
priority := int32(100)
|
||||
featuregatedCases := map[string]api.PodSpec{
|
||||
"set PriorityClassName": {
|
||||
Volumes: []api.Volume{{Name: "vol", VolumeSource: api.VolumeSource{EmptyDir: &api.EmptyDirVolumeSource{}}}},
|
||||
Containers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}},
|
||||
RestartPolicy: api.RestartPolicyAlways,
|
||||
DNSPolicy: api.DNSClusterFirst,
|
||||
PriorityClassName: "valid-name",
|
||||
},
|
||||
"set Priority": {
|
||||
Volumes: []api.Volume{{Name: "vol", VolumeSource: api.VolumeSource{EmptyDir: &api.EmptyDirVolumeSource{}}}},
|
||||
Containers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}},
|
||||
RestartPolicy: api.RestartPolicyAlways,
|
||||
DNSPolicy: api.DNSClusterFirst,
|
||||
Priority: &priority,
|
||||
},
|
||||
}
|
||||
for k, v := range featuregatedCases {
|
||||
if errs := ValidatePodSpec(&v, field.NewPath("field")); len(errs) == 0 {
|
||||
t.Errorf("expected failure due to gated feature: %q", k)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func extendPodSpecwithTolerations(in api.PodSpec, tolerations []api.Toleration) api.PodSpec {
|
||||
@ -5781,6 +5841,50 @@ func TestValidatePodUpdate(t *testing.T) {
|
||||
"metadata.annotations[kubernetes.io/config.mirror]",
|
||||
"changed mirror pod annotation",
|
||||
},
|
||||
{
|
||||
api.Pod{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "foo",
|
||||
},
|
||||
Spec: api.PodSpec{
|
||||
NodeName: "node1",
|
||||
PriorityClassName: "bar-priority",
|
||||
},
|
||||
},
|
||||
api.Pod{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "foo",
|
||||
},
|
||||
Spec: api.PodSpec{
|
||||
NodeName: "node1",
|
||||
PriorityClassName: "foo-priority",
|
||||
},
|
||||
},
|
||||
"spec: Forbidden: pod updates",
|
||||
"changed priority class name",
|
||||
},
|
||||
{
|
||||
api.Pod{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "foo",
|
||||
},
|
||||
Spec: api.PodSpec{
|
||||
NodeName: "node1",
|
||||
PriorityClassName: "",
|
||||
},
|
||||
},
|
||||
api.Pod{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "foo",
|
||||
},
|
||||
Spec: api.PodSpec{
|
||||
NodeName: "node1",
|
||||
PriorityClassName: "foo-priority",
|
||||
},
|
||||
},
|
||||
"spec: Forbidden: pod updates",
|
||||
"removed priority class name",
|
||||
},
|
||||
}
|
||||
|
||||
for _, test := range tests {
|
||||
|
@ -2619,6 +2619,11 @@ func DeepCopy_api_PodSpec(in interface{}, out interface{}, c *conversion.Cloner)
|
||||
}
|
||||
}
|
||||
}
|
||||
if in.Priority != nil {
|
||||
in, out := &in.Priority, &out.Priority
|
||||
*out = new(int32)
|
||||
**out = **in
|
||||
}
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
@ -114,6 +114,12 @@ const (
|
||||
//
|
||||
// Allows running a "debug container" in a pod namespaces to troubleshoot a running pod.
|
||||
DebugContainers utilfeature.Feature = "DebugContainers"
|
||||
|
||||
// owner: @bsalamat
|
||||
// alpha: v1.8
|
||||
//
|
||||
// Add priority to pods. Priority affects scheduling and preemption of pods.
|
||||
PodPriority utilfeature.Feature = "PodPriority"
|
||||
)
|
||||
|
||||
func init() {
|
||||
@ -137,6 +143,7 @@ var defaultKubernetesFeatureGates = map[utilfeature.Feature]utilfeature.FeatureS
|
||||
PersistentLocalVolumes: {Default: false, PreRelease: utilfeature.Alpha},
|
||||
LocalStorageCapacityIsolation: {Default: false, PreRelease: utilfeature.Alpha},
|
||||
DebugContainers: {Default: false, PreRelease: utilfeature.Alpha},
|
||||
PodPriority: {Default: false, PreRelease: utilfeature.Alpha},
|
||||
|
||||
// inherited features from generic apiserver, relisted here to get a conflict if it is changed
|
||||
// unintentionally on either side:
|
||||
|
@ -7976,7 +7976,7 @@ func (x codecSelfer1234) decSliceStatefulSet(v *[]StatefulSet, d *codec1978.Deco
|
||||
|
||||
yyrg1 := len(yyv1) > 0
|
||||
yyv21 := yyv1
|
||||
yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 984)
|
||||
yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 1008)
|
||||
if yyrt1 {
|
||||
if yyrl1 <= cap(yyv1) {
|
||||
yyv1 = yyv1[:yyrl1]
|
||||
@ -8214,7 +8214,7 @@ func (x codecSelfer1234) decSliceDeployment(v *[]Deployment, d *codec1978.Decode
|
||||
|
||||
yyrg1 := len(yyv1) > 0
|
||||
yyv21 := yyv1
|
||||
yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 968)
|
||||
yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 992)
|
||||
if yyrt1 {
|
||||
if yyrl1 <= cap(yyv1) {
|
||||
yyv1 = yyv1[:yyrl1]
|
||||
|
@ -2481,7 +2481,7 @@ func (x codecSelfer1234) decSliceJob(v *[]Job, d *codec1978.Decoder) {
|
||||
|
||||
yyrg1 := len(yyv1) > 0
|
||||
yyv21 := yyv1
|
||||
yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 920)
|
||||
yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 944)
|
||||
if yyrt1 {
|
||||
if yyrl1 <= cap(yyv1) {
|
||||
yyv1 = yyv1[:yyrl1]
|
||||
|
@ -2325,7 +2325,7 @@ func (x codecSelfer1234) decSliceCronJob(v *[]CronJob, d *codec1978.Decoder) {
|
||||
|
||||
yyrg1 := len(yyv1) > 0
|
||||
yyv21 := yyv1
|
||||
yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 1192)
|
||||
yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 1216)
|
||||
if yyrt1 {
|
||||
if yyrl1 <= cap(yyv1) {
|
||||
yyv1 = yyv1[:yyrl1]
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -2791,6 +2791,22 @@ message PodSpec {
|
||||
// +patchMergeKey=ip
|
||||
// +patchStrategy=merge
|
||||
repeated HostAlias hostAliases = 23;
|
||||
|
||||
// If specified, indicates the pod's priority. "SYSTEM" is a special keyword
|
||||
// which indicates the highest priority. Any other name must be defined by
|
||||
// creating a PriorityClass object with that name.
|
||||
// If not specified, the pod priority will be default or zero if there is no
|
||||
// default.
|
||||
// +optional
|
||||
optional string priorityClassName = 24;
|
||||
|
||||
// The priority value. Various system components use this field to find the
|
||||
// priority of the pod. When Priority Admission Controller is enabled, it
|
||||
// prevents users from setting this field. The admission controller populates
|
||||
// this field from PriorityClassName.
|
||||
// The higher the value, the higher the priority.
|
||||
// +optional
|
||||
optional int32 priority = 25;
|
||||
}
|
||||
|
||||
// PodStatus represents information about the status of a pod. Status may trail the actual
|
||||
|
@ -35760,7 +35760,7 @@ func (x *PodSpec) CodecEncodeSelf(e *codec1978.Encoder) {
|
||||
} else {
|
||||
yysep2 := !z.EncBinary()
|
||||
yy2arr2 := z.EncBasicHandle().StructToArray
|
||||
var yyq2 [23]bool
|
||||
var yyq2 [25]bool
|
||||
_, _, _ = yysep2, yyq2, yy2arr2
|
||||
const yyr2 bool = false
|
||||
yyq2[0] = len(x.Volumes) != 0
|
||||
@ -35785,9 +35785,11 @@ func (x *PodSpec) CodecEncodeSelf(e *codec1978.Encoder) {
|
||||
yyq2[20] = x.SchedulerName != ""
|
||||
yyq2[21] = len(x.Tolerations) != 0
|
||||
yyq2[22] = len(x.HostAliases) != 0
|
||||
yyq2[23] = x.PriorityClassName != ""
|
||||
yyq2[24] = x.Priority != nil
|
||||
var yynn2 int
|
||||
if yyr2 || yy2arr2 {
|
||||
r.EncodeArrayStart(23)
|
||||
r.EncodeArrayStart(25)
|
||||
} else {
|
||||
yynn2 = 1
|
||||
for _, b := range yyq2 {
|
||||
@ -36429,6 +36431,66 @@ func (x *PodSpec) CodecEncodeSelf(e *codec1978.Encoder) {
|
||||
}
|
||||
}
|
||||
}
|
||||
if yyr2 || yy2arr2 {
|
||||
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
|
||||
if yyq2[23] {
|
||||
yym79 := z.EncBinary()
|
||||
_ = yym79
|
||||
if false {
|
||||
} else {
|
||||
r.EncodeString(codecSelferC_UTF81234, string(x.PriorityClassName))
|
||||
}
|
||||
} else {
|
||||
r.EncodeString(codecSelferC_UTF81234, "")
|
||||
}
|
||||
} else {
|
||||
if yyq2[23] {
|
||||
z.EncSendContainerState(codecSelfer_containerMapKey1234)
|
||||
r.EncodeString(codecSelferC_UTF81234, string("priorityClassName"))
|
||||
z.EncSendContainerState(codecSelfer_containerMapValue1234)
|
||||
yym80 := z.EncBinary()
|
||||
_ = yym80
|
||||
if false {
|
||||
} else {
|
||||
r.EncodeString(codecSelferC_UTF81234, string(x.PriorityClassName))
|
||||
}
|
||||
}
|
||||
}
|
||||
if yyr2 || yy2arr2 {
|
||||
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
|
||||
if yyq2[24] {
|
||||
if x.Priority == nil {
|
||||
r.EncodeNil()
|
||||
} else {
|
||||
yy82 := *x.Priority
|
||||
yym83 := z.EncBinary()
|
||||
_ = yym83
|
||||
if false {
|
||||
} else {
|
||||
r.EncodeInt(int64(yy82))
|
||||
}
|
||||
}
|
||||
} else {
|
||||
r.EncodeNil()
|
||||
}
|
||||
} else {
|
||||
if yyq2[24] {
|
||||
z.EncSendContainerState(codecSelfer_containerMapKey1234)
|
||||
r.EncodeString(codecSelferC_UTF81234, string("priority"))
|
||||
z.EncSendContainerState(codecSelfer_containerMapValue1234)
|
||||
if x.Priority == nil {
|
||||
r.EncodeNil()
|
||||
} else {
|
||||
yy84 := *x.Priority
|
||||
yym85 := z.EncBinary()
|
||||
_ = yym85
|
||||
if false {
|
||||
} else {
|
||||
r.EncodeInt(int64(yy84))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if yyr2 || yy2arr2 {
|
||||
z.EncSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
} else {
|
||||
@ -36766,6 +36828,34 @@ func (x *PodSpec) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
|
||||
h.decSliceHostAlias((*[]HostAlias)(yyv44), d)
|
||||
}
|
||||
}
|
||||
case "priorityClassName":
|
||||
if r.TryDecodeAsNil() {
|
||||
x.PriorityClassName = ""
|
||||
} else {
|
||||
yyv46 := &x.PriorityClassName
|
||||
yym47 := z.DecBinary()
|
||||
_ = yym47
|
||||
if false {
|
||||
} else {
|
||||
*((*string)(yyv46)) = r.DecodeString()
|
||||
}
|
||||
}
|
||||
case "priority":
|
||||
if r.TryDecodeAsNil() {
|
||||
if x.Priority != nil {
|
||||
x.Priority = nil
|
||||
}
|
||||
} else {
|
||||
if x.Priority == nil {
|
||||
x.Priority = new(int32)
|
||||
}
|
||||
yym49 := z.DecBinary()
|
||||
_ = yym49
|
||||
if false {
|
||||
} else {
|
||||
*((*int32)(x.Priority)) = int32(r.DecodeInt(32))
|
||||
}
|
||||
}
|
||||
default:
|
||||
z.DecStructFieldNotFound(-1, yys3)
|
||||
} // end switch yys3
|
||||
@ -36777,16 +36867,16 @@ func (x *PodSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
||||
var h codecSelfer1234
|
||||
z, r := codec1978.GenHelperDecoder(d)
|
||||
_, _, _ = h, z, r
|
||||
var yyj46 int
|
||||
var yyb46 bool
|
||||
var yyhl46 bool = l >= 0
|
||||
yyj46++
|
||||
if yyhl46 {
|
||||
yyb46 = yyj46 > l
|
||||
var yyj50 int
|
||||
var yyb50 bool
|
||||
var yyhl50 bool = l >= 0
|
||||
yyj50++
|
||||
if yyhl50 {
|
||||
yyb50 = yyj50 > l
|
||||
} else {
|
||||
yyb46 = r.CheckBreak()
|
||||
yyb50 = r.CheckBreak()
|
||||
}
|
||||
if yyb46 {
|
||||
if yyb50 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@ -36794,21 +36884,21 @@ func (x *PodSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
||||
if r.TryDecodeAsNil() {
|
||||
x.Volumes = nil
|
||||
} else {
|
||||
yyv47 := &x.Volumes
|
||||
yym48 := z.DecBinary()
|
||||
_ = yym48
|
||||
yyv51 := &x.Volumes
|
||||
yym52 := z.DecBinary()
|
||||
_ = yym52
|
||||
if false {
|
||||
} else {
|
||||
h.decSliceVolume((*[]Volume)(yyv47), d)
|
||||
h.decSliceVolume((*[]Volume)(yyv51), d)
|
||||
}
|
||||
}
|
||||
yyj46++
|
||||
if yyhl46 {
|
||||
yyb46 = yyj46 > l
|
||||
yyj50++
|
||||
if yyhl50 {
|
||||
yyb50 = yyj50 > l
|
||||
} else {
|
||||
yyb46 = r.CheckBreak()
|
||||
yyb50 = r.CheckBreak()
|
||||
}
|
||||
if yyb46 {
|
||||
if yyb50 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@ -36816,21 +36906,21 @@ func (x *PodSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
||||
if r.TryDecodeAsNil() {
|
||||
x.InitContainers = nil
|
||||
} else {
|
||||
yyv49 := &x.InitContainers
|
||||
yym50 := z.DecBinary()
|
||||
_ = yym50
|
||||
yyv53 := &x.InitContainers
|
||||
yym54 := z.DecBinary()
|
||||
_ = yym54
|
||||
if false {
|
||||
} else {
|
||||
h.decSliceContainer((*[]Container)(yyv49), d)
|
||||
h.decSliceContainer((*[]Container)(yyv53), d)
|
||||
}
|
||||
}
|
||||
yyj46++
|
||||
if yyhl46 {
|
||||
yyb46 = yyj46 > l
|
||||
yyj50++
|
||||
if yyhl50 {
|
||||
yyb50 = yyj50 > l
|
||||
} else {
|
||||
yyb46 = r.CheckBreak()
|
||||
yyb50 = r.CheckBreak()
|
||||
}
|
||||
if yyb46 {
|
||||
if yyb50 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@ -36838,21 +36928,21 @@ func (x *PodSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
||||
if r.TryDecodeAsNil() {
|
||||
x.Containers = nil
|
||||
} else {
|
||||
yyv51 := &x.Containers
|
||||
yym52 := z.DecBinary()
|
||||
_ = yym52
|
||||
yyv55 := &x.Containers
|
||||
yym56 := z.DecBinary()
|
||||
_ = yym56
|
||||
if false {
|
||||
} else {
|
||||
h.decSliceContainer((*[]Container)(yyv51), d)
|
||||
h.decSliceContainer((*[]Container)(yyv55), d)
|
||||
}
|
||||
}
|
||||
yyj46++
|
||||
if yyhl46 {
|
||||
yyb46 = yyj46 > l
|
||||
yyj50++
|
||||
if yyhl50 {
|
||||
yyb50 = yyj50 > l
|
||||
} else {
|
||||
yyb46 = r.CheckBreak()
|
||||
yyb50 = r.CheckBreak()
|
||||
}
|
||||
if yyb46 {
|
||||
if yyb50 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@ -36860,16 +36950,16 @@ func (x *PodSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
||||
if r.TryDecodeAsNil() {
|
||||
x.RestartPolicy = ""
|
||||
} else {
|
||||
yyv53 := &x.RestartPolicy
|
||||
yyv53.CodecDecodeSelf(d)
|
||||
yyv57 := &x.RestartPolicy
|
||||
yyv57.CodecDecodeSelf(d)
|
||||
}
|
||||
yyj46++
|
||||
if yyhl46 {
|
||||
yyb46 = yyj46 > l
|
||||
yyj50++
|
||||
if yyhl50 {
|
||||
yyb50 = yyj50 > l
|
||||
} else {
|
||||
yyb46 = r.CheckBreak()
|
||||
yyb50 = r.CheckBreak()
|
||||
}
|
||||
if yyb46 {
|
||||
if yyb50 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@ -36882,20 +36972,20 @@ func (x *PodSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
||||
if x.TerminationGracePeriodSeconds == nil {
|
||||
x.TerminationGracePeriodSeconds = new(int64)
|
||||
}
|
||||
yym55 := z.DecBinary()
|
||||
_ = yym55
|
||||
yym59 := z.DecBinary()
|
||||
_ = yym59
|
||||
if false {
|
||||
} else {
|
||||
*((*int64)(x.TerminationGracePeriodSeconds)) = int64(r.DecodeInt(64))
|
||||
}
|
||||
}
|
||||
yyj46++
|
||||
if yyhl46 {
|
||||
yyb46 = yyj46 > l
|
||||
yyj50++
|
||||
if yyhl50 {
|
||||
yyb50 = yyj50 > l
|
||||
} else {
|
||||
yyb46 = r.CheckBreak()
|
||||
yyb50 = r.CheckBreak()
|
||||
}
|
||||
if yyb46 {
|
||||
if yyb50 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@ -36908,20 +36998,20 @@ func (x *PodSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
||||
if x.ActiveDeadlineSeconds == nil {
|
||||
x.ActiveDeadlineSeconds = new(int64)
|
||||
}
|
||||
yym57 := z.DecBinary()
|
||||
_ = yym57
|
||||
yym61 := z.DecBinary()
|
||||
_ = yym61
|
||||
if false {
|
||||
} else {
|
||||
*((*int64)(x.ActiveDeadlineSeconds)) = int64(r.DecodeInt(64))
|
||||
}
|
||||
}
|
||||
yyj46++
|
||||
if yyhl46 {
|
||||
yyb46 = yyj46 > l
|
||||
yyj50++
|
||||
if yyhl50 {
|
||||
yyb50 = yyj50 > l
|
||||
} else {
|
||||
yyb46 = r.CheckBreak()
|
||||
yyb50 = r.CheckBreak()
|
||||
}
|
||||
if yyb46 {
|
||||
if yyb50 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@ -36929,16 +37019,16 @@ func (x *PodSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
||||
if r.TryDecodeAsNil() {
|
||||
x.DNSPolicy = ""
|
||||
} else {
|
||||
yyv58 := &x.DNSPolicy
|
||||
yyv58.CodecDecodeSelf(d)
|
||||
yyv62 := &x.DNSPolicy
|
||||
yyv62.CodecDecodeSelf(d)
|
||||
}
|
||||
yyj46++
|
||||
if yyhl46 {
|
||||
yyb46 = yyj46 > l
|
||||
yyj50++
|
||||
if yyhl50 {
|
||||
yyb50 = yyj50 > l
|
||||
} else {
|
||||
yyb46 = r.CheckBreak()
|
||||
yyb50 = r.CheckBreak()
|
||||
}
|
||||
if yyb46 {
|
||||
if yyb50 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@ -36946,21 +37036,21 @@ func (x *PodSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
||||
if r.TryDecodeAsNil() {
|
||||
x.NodeSelector = nil
|
||||
} else {
|
||||
yyv59 := &x.NodeSelector
|
||||
yym60 := z.DecBinary()
|
||||
_ = yym60
|
||||
yyv63 := &x.NodeSelector
|
||||
yym64 := z.DecBinary()
|
||||
_ = yym64
|
||||
if false {
|
||||
} else {
|
||||
z.F.DecMapStringStringX(yyv59, false, d)
|
||||
z.F.DecMapStringStringX(yyv63, false, d)
|
||||
}
|
||||
}
|
||||
yyj46++
|
||||
if yyhl46 {
|
||||
yyb46 = yyj46 > l
|
||||
yyj50++
|
||||
if yyhl50 {
|
||||
yyb50 = yyj50 > l
|
||||
} else {
|
||||
yyb46 = r.CheckBreak()
|
||||
yyb50 = r.CheckBreak()
|
||||
}
|
||||
if yyb46 {
|
||||
if yyb50 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@ -36968,21 +37058,21 @@ func (x *PodSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
||||
if r.TryDecodeAsNil() {
|
||||
x.ServiceAccountName = ""
|
||||
} else {
|
||||
yyv61 := &x.ServiceAccountName
|
||||
yym62 := z.DecBinary()
|
||||
_ = yym62
|
||||
yyv65 := &x.ServiceAccountName
|
||||
yym66 := z.DecBinary()
|
||||
_ = yym66
|
||||
if false {
|
||||
} else {
|
||||
*((*string)(yyv61)) = r.DecodeString()
|
||||
*((*string)(yyv65)) = r.DecodeString()
|
||||
}
|
||||
}
|
||||
yyj46++
|
||||
if yyhl46 {
|
||||
yyb46 = yyj46 > l
|
||||
yyj50++
|
||||
if yyhl50 {
|
||||
yyb50 = yyj50 > l
|
||||
} else {
|
||||
yyb46 = r.CheckBreak()
|
||||
yyb50 = r.CheckBreak()
|
||||
}
|
||||
if yyb46 {
|
||||
if yyb50 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@ -36990,21 +37080,21 @@ func (x *PodSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
||||
if r.TryDecodeAsNil() {
|
||||
x.DeprecatedServiceAccount = ""
|
||||
} else {
|
||||
yyv63 := &x.DeprecatedServiceAccount
|
||||
yym64 := z.DecBinary()
|
||||
_ = yym64
|
||||
yyv67 := &x.DeprecatedServiceAccount
|
||||
yym68 := z.DecBinary()
|
||||
_ = yym68
|
||||
if false {
|
||||
} else {
|
||||
*((*string)(yyv63)) = r.DecodeString()
|
||||
*((*string)(yyv67)) = r.DecodeString()
|
||||
}
|
||||
}
|
||||
yyj46++
|
||||
if yyhl46 {
|
||||
yyb46 = yyj46 > l
|
||||
yyj50++
|
||||
if yyhl50 {
|
||||
yyb50 = yyj50 > l
|
||||
} else {
|
||||
yyb46 = r.CheckBreak()
|
||||
yyb50 = r.CheckBreak()
|
||||
}
|
||||
if yyb46 {
|
||||
if yyb50 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@ -37017,20 +37107,20 @@ func (x *PodSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
||||
if x.AutomountServiceAccountToken == nil {
|
||||
x.AutomountServiceAccountToken = new(bool)
|
||||
}
|
||||
yym66 := z.DecBinary()
|
||||
_ = yym66
|
||||
yym70 := z.DecBinary()
|
||||
_ = yym70
|
||||
if false {
|
||||
} else {
|
||||
*((*bool)(x.AutomountServiceAccountToken)) = r.DecodeBool()
|
||||
}
|
||||
}
|
||||
yyj46++
|
||||
if yyhl46 {
|
||||
yyb46 = yyj46 > l
|
||||
yyj50++
|
||||
if yyhl50 {
|
||||
yyb50 = yyj50 > l
|
||||
} else {
|
||||
yyb46 = r.CheckBreak()
|
||||
yyb50 = r.CheckBreak()
|
||||
}
|
||||
if yyb46 {
|
||||
if yyb50 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@ -37038,21 +37128,21 @@ func (x *PodSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
||||
if r.TryDecodeAsNil() {
|
||||
x.NodeName = ""
|
||||
} else {
|
||||
yyv67 := &x.NodeName
|
||||
yym68 := z.DecBinary()
|
||||
_ = yym68
|
||||
yyv71 := &x.NodeName
|
||||
yym72 := z.DecBinary()
|
||||
_ = yym72
|
||||
if false {
|
||||
} else {
|
||||
*((*string)(yyv67)) = r.DecodeString()
|
||||
*((*string)(yyv71)) = r.DecodeString()
|
||||
}
|
||||
}
|
||||
yyj46++
|
||||
if yyhl46 {
|
||||
yyb46 = yyj46 > l
|
||||
yyj50++
|
||||
if yyhl50 {
|
||||
yyb50 = yyj50 > l
|
||||
} else {
|
||||
yyb46 = r.CheckBreak()
|
||||
yyb50 = r.CheckBreak()
|
||||
}
|
||||
if yyb46 {
|
||||
if yyb50 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@ -37060,51 +37150,7 @@ func (x *PodSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
||||
if r.TryDecodeAsNil() {
|
||||
x.HostNetwork = false
|
||||
} else {
|
||||
yyv69 := &x.HostNetwork
|
||||
yym70 := z.DecBinary()
|
||||
_ = yym70
|
||||
if false {
|
||||
} else {
|
||||
*((*bool)(yyv69)) = r.DecodeBool()
|
||||
}
|
||||
}
|
||||
yyj46++
|
||||
if yyhl46 {
|
||||
yyb46 = yyj46 > l
|
||||
} else {
|
||||
yyb46 = r.CheckBreak()
|
||||
}
|
||||
if yyb46 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
|
||||
if r.TryDecodeAsNil() {
|
||||
x.HostPID = false
|
||||
} else {
|
||||
yyv71 := &x.HostPID
|
||||
yym72 := z.DecBinary()
|
||||
_ = yym72
|
||||
if false {
|
||||
} else {
|
||||
*((*bool)(yyv71)) = r.DecodeBool()
|
||||
}
|
||||
}
|
||||
yyj46++
|
||||
if yyhl46 {
|
||||
yyb46 = yyj46 > l
|
||||
} else {
|
||||
yyb46 = r.CheckBreak()
|
||||
}
|
||||
if yyb46 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
|
||||
if r.TryDecodeAsNil() {
|
||||
x.HostIPC = false
|
||||
} else {
|
||||
yyv73 := &x.HostIPC
|
||||
yyv73 := &x.HostNetwork
|
||||
yym74 := z.DecBinary()
|
||||
_ = yym74
|
||||
if false {
|
||||
@ -37112,13 +37158,57 @@ func (x *PodSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
||||
*((*bool)(yyv73)) = r.DecodeBool()
|
||||
}
|
||||
}
|
||||
yyj46++
|
||||
if yyhl46 {
|
||||
yyb46 = yyj46 > l
|
||||
yyj50++
|
||||
if yyhl50 {
|
||||
yyb50 = yyj50 > l
|
||||
} else {
|
||||
yyb46 = r.CheckBreak()
|
||||
yyb50 = r.CheckBreak()
|
||||
}
|
||||
if yyb46 {
|
||||
if yyb50 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
|
||||
if r.TryDecodeAsNil() {
|
||||
x.HostPID = false
|
||||
} else {
|
||||
yyv75 := &x.HostPID
|
||||
yym76 := z.DecBinary()
|
||||
_ = yym76
|
||||
if false {
|
||||
} else {
|
||||
*((*bool)(yyv75)) = r.DecodeBool()
|
||||
}
|
||||
}
|
||||
yyj50++
|
||||
if yyhl50 {
|
||||
yyb50 = yyj50 > l
|
||||
} else {
|
||||
yyb50 = r.CheckBreak()
|
||||
}
|
||||
if yyb50 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
|
||||
if r.TryDecodeAsNil() {
|
||||
x.HostIPC = false
|
||||
} else {
|
||||
yyv77 := &x.HostIPC
|
||||
yym78 := z.DecBinary()
|
||||
_ = yym78
|
||||
if false {
|
||||
} else {
|
||||
*((*bool)(yyv77)) = r.DecodeBool()
|
||||
}
|
||||
}
|
||||
yyj50++
|
||||
if yyhl50 {
|
||||
yyb50 = yyj50 > l
|
||||
} else {
|
||||
yyb50 = r.CheckBreak()
|
||||
}
|
||||
if yyb50 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@ -37133,13 +37223,13 @@ func (x *PodSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
||||
}
|
||||
x.SecurityContext.CodecDecodeSelf(d)
|
||||
}
|
||||
yyj46++
|
||||
if yyhl46 {
|
||||
yyb46 = yyj46 > l
|
||||
yyj50++
|
||||
if yyhl50 {
|
||||
yyb50 = yyj50 > l
|
||||
} else {
|
||||
yyb46 = r.CheckBreak()
|
||||
yyb50 = r.CheckBreak()
|
||||
}
|
||||
if yyb46 {
|
||||
if yyb50 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@ -37147,21 +37237,21 @@ func (x *PodSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
||||
if r.TryDecodeAsNil() {
|
||||
x.ImagePullSecrets = nil
|
||||
} else {
|
||||
yyv76 := &x.ImagePullSecrets
|
||||
yym77 := z.DecBinary()
|
||||
_ = yym77
|
||||
yyv80 := &x.ImagePullSecrets
|
||||
yym81 := z.DecBinary()
|
||||
_ = yym81
|
||||
if false {
|
||||
} else {
|
||||
h.decSliceLocalObjectReference((*[]LocalObjectReference)(yyv76), d)
|
||||
h.decSliceLocalObjectReference((*[]LocalObjectReference)(yyv80), d)
|
||||
}
|
||||
}
|
||||
yyj46++
|
||||
if yyhl46 {
|
||||
yyb46 = yyj46 > l
|
||||
yyj50++
|
||||
if yyhl50 {
|
||||
yyb50 = yyj50 > l
|
||||
} else {
|
||||
yyb46 = r.CheckBreak()
|
||||
yyb50 = r.CheckBreak()
|
||||
}
|
||||
if yyb46 {
|
||||
if yyb50 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@ -37169,21 +37259,21 @@ func (x *PodSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
||||
if r.TryDecodeAsNil() {
|
||||
x.Hostname = ""
|
||||
} else {
|
||||
yyv78 := &x.Hostname
|
||||
yym79 := z.DecBinary()
|
||||
_ = yym79
|
||||
yyv82 := &x.Hostname
|
||||
yym83 := z.DecBinary()
|
||||
_ = yym83
|
||||
if false {
|
||||
} else {
|
||||
*((*string)(yyv78)) = r.DecodeString()
|
||||
*((*string)(yyv82)) = r.DecodeString()
|
||||
}
|
||||
}
|
||||
yyj46++
|
||||
if yyhl46 {
|
||||
yyb46 = yyj46 > l
|
||||
yyj50++
|
||||
if yyhl50 {
|
||||
yyb50 = yyj50 > l
|
||||
} else {
|
||||
yyb46 = r.CheckBreak()
|
||||
yyb50 = r.CheckBreak()
|
||||
}
|
||||
if yyb46 {
|
||||
if yyb50 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@ -37191,21 +37281,21 @@ func (x *PodSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
||||
if r.TryDecodeAsNil() {
|
||||
x.Subdomain = ""
|
||||
} else {
|
||||
yyv80 := &x.Subdomain
|
||||
yym81 := z.DecBinary()
|
||||
_ = yym81
|
||||
yyv84 := &x.Subdomain
|
||||
yym85 := z.DecBinary()
|
||||
_ = yym85
|
||||
if false {
|
||||
} else {
|
||||
*((*string)(yyv80)) = r.DecodeString()
|
||||
*((*string)(yyv84)) = r.DecodeString()
|
||||
}
|
||||
}
|
||||
yyj46++
|
||||
if yyhl46 {
|
||||
yyb46 = yyj46 > l
|
||||
yyj50++
|
||||
if yyhl50 {
|
||||
yyb50 = yyj50 > l
|
||||
} else {
|
||||
yyb46 = r.CheckBreak()
|
||||
yyb50 = r.CheckBreak()
|
||||
}
|
||||
if yyb46 {
|
||||
if yyb50 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@ -37220,13 +37310,13 @@ func (x *PodSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
||||
}
|
||||
x.Affinity.CodecDecodeSelf(d)
|
||||
}
|
||||
yyj46++
|
||||
if yyhl46 {
|
||||
yyb46 = yyj46 > l
|
||||
yyj50++
|
||||
if yyhl50 {
|
||||
yyb50 = yyj50 > l
|
||||
} else {
|
||||
yyb46 = r.CheckBreak()
|
||||
yyb50 = r.CheckBreak()
|
||||
}
|
||||
if yyb46 {
|
||||
if yyb50 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@ -37234,21 +37324,21 @@ func (x *PodSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
||||
if r.TryDecodeAsNil() {
|
||||
x.SchedulerName = ""
|
||||
} else {
|
||||
yyv83 := &x.SchedulerName
|
||||
yym84 := z.DecBinary()
|
||||
_ = yym84
|
||||
yyv87 := &x.SchedulerName
|
||||
yym88 := z.DecBinary()
|
||||
_ = yym88
|
||||
if false {
|
||||
} else {
|
||||
*((*string)(yyv83)) = r.DecodeString()
|
||||
*((*string)(yyv87)) = r.DecodeString()
|
||||
}
|
||||
}
|
||||
yyj46++
|
||||
if yyhl46 {
|
||||
yyb46 = yyj46 > l
|
||||
yyj50++
|
||||
if yyhl50 {
|
||||
yyb50 = yyj50 > l
|
||||
} else {
|
||||
yyb46 = r.CheckBreak()
|
||||
yyb50 = r.CheckBreak()
|
||||
}
|
||||
if yyb46 {
|
||||
if yyb50 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@ -37256,21 +37346,21 @@ func (x *PodSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
||||
if r.TryDecodeAsNil() {
|
||||
x.Tolerations = nil
|
||||
} else {
|
||||
yyv85 := &x.Tolerations
|
||||
yym86 := z.DecBinary()
|
||||
_ = yym86
|
||||
yyv89 := &x.Tolerations
|
||||
yym90 := z.DecBinary()
|
||||
_ = yym90
|
||||
if false {
|
||||
} else {
|
||||
h.decSliceToleration((*[]Toleration)(yyv85), d)
|
||||
h.decSliceToleration((*[]Toleration)(yyv89), d)
|
||||
}
|
||||
}
|
||||
yyj46++
|
||||
if yyhl46 {
|
||||
yyb46 = yyj46 > l
|
||||
yyj50++
|
||||
if yyhl50 {
|
||||
yyb50 = yyj50 > l
|
||||
} else {
|
||||
yyb46 = r.CheckBreak()
|
||||
yyb50 = r.CheckBreak()
|
||||
}
|
||||
if yyb46 {
|
||||
if yyb50 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@ -37278,26 +37368,74 @@ func (x *PodSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
||||
if r.TryDecodeAsNil() {
|
||||
x.HostAliases = nil
|
||||
} else {
|
||||
yyv87 := &x.HostAliases
|
||||
yym88 := z.DecBinary()
|
||||
_ = yym88
|
||||
yyv91 := &x.HostAliases
|
||||
yym92 := z.DecBinary()
|
||||
_ = yym92
|
||||
if false {
|
||||
} else {
|
||||
h.decSliceHostAlias((*[]HostAlias)(yyv87), d)
|
||||
h.decSliceHostAlias((*[]HostAlias)(yyv91), d)
|
||||
}
|
||||
}
|
||||
yyj50++
|
||||
if yyhl50 {
|
||||
yyb50 = yyj50 > l
|
||||
} else {
|
||||
yyb50 = r.CheckBreak()
|
||||
}
|
||||
if yyb50 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
|
||||
if r.TryDecodeAsNil() {
|
||||
x.PriorityClassName = ""
|
||||
} else {
|
||||
yyv93 := &x.PriorityClassName
|
||||
yym94 := z.DecBinary()
|
||||
_ = yym94
|
||||
if false {
|
||||
} else {
|
||||
*((*string)(yyv93)) = r.DecodeString()
|
||||
}
|
||||
}
|
||||
yyj50++
|
||||
if yyhl50 {
|
||||
yyb50 = yyj50 > l
|
||||
} else {
|
||||
yyb50 = r.CheckBreak()
|
||||
}
|
||||
if yyb50 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
|
||||
if r.TryDecodeAsNil() {
|
||||
if x.Priority != nil {
|
||||
x.Priority = nil
|
||||
}
|
||||
} else {
|
||||
if x.Priority == nil {
|
||||
x.Priority = new(int32)
|
||||
}
|
||||
yym96 := z.DecBinary()
|
||||
_ = yym96
|
||||
if false {
|
||||
} else {
|
||||
*((*int32)(x.Priority)) = int32(r.DecodeInt(32))
|
||||
}
|
||||
}
|
||||
for {
|
||||
yyj46++
|
||||
if yyhl46 {
|
||||
yyb46 = yyj46 > l
|
||||
yyj50++
|
||||
if yyhl50 {
|
||||
yyb50 = yyj50 > l
|
||||
} else {
|
||||
yyb46 = r.CheckBreak()
|
||||
yyb50 = r.CheckBreak()
|
||||
}
|
||||
if yyb46 {
|
||||
if yyb50 {
|
||||
break
|
||||
}
|
||||
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
|
||||
z.DecStructFieldNotFound(yyj46-1, "")
|
||||
z.DecStructFieldNotFound(yyj50-1, "")
|
||||
}
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
}
|
||||
@ -72457,7 +72595,7 @@ func (x codecSelfer1234) decSlicePod(v *[]Pod, d *codec1978.Decoder) {
|
||||
|
||||
yyrg1 := len(yyv1) > 0
|
||||
yyv21 := yyv1
|
||||
yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 768)
|
||||
yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 792)
|
||||
if yyrt1 {
|
||||
if yyrl1 <= cap(yyv1) {
|
||||
yyv1 = yyv1[:yyrl1]
|
||||
@ -72576,7 +72714,7 @@ func (x codecSelfer1234) decSlicePodTemplate(v *[]PodTemplate, d *codec1978.Deco
|
||||
|
||||
yyrg1 := len(yyv1) > 0
|
||||
yyv21 := yyv1
|
||||
yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 824)
|
||||
yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 848)
|
||||
if yyrt1 {
|
||||
if yyrl1 <= cap(yyv1) {
|
||||
yyv1 = yyv1[:yyrl1]
|
||||
|
@ -2520,6 +2520,20 @@ type PodSpec struct {
|
||||
// +patchMergeKey=ip
|
||||
// +patchStrategy=merge
|
||||
HostAliases []HostAlias `json:"hostAliases,omitempty" patchStrategy:"merge" patchMergeKey:"ip" protobuf:"bytes,23,rep,name=hostAliases"`
|
||||
// If specified, indicates the pod's priority. "SYSTEM" is a special keyword
|
||||
// which indicates the highest priority. Any other name must be defined by
|
||||
// creating a PriorityClass object with that name.
|
||||
// If not specified, the pod priority will be default or zero if there is no
|
||||
// default.
|
||||
// +optional
|
||||
PriorityClassName string `json:"priorityClassName,omitempty" protobuf:"bytes,24,opt,name=priorityClassName"`
|
||||
// The priority value. Various system components use this field to find the
|
||||
// priority of the pod. When Priority Admission Controller is enabled, it
|
||||
// prevents users from setting this field. The admission controller populates
|
||||
// this field from PriorityClassName.
|
||||
// The higher the value, the higher the priority.
|
||||
// +optional
|
||||
Priority *int32 `json:"priority,omitempty" protobuf:"bytes,25,opt,name=priority"`
|
||||
}
|
||||
|
||||
// HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the
|
||||
|
@ -1376,6 +1376,8 @@ var map_PodSpec = map[string]string{
|
||||
"schedulerName": "If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler.",
|
||||
"tolerations": "If specified, the pod's tolerations.",
|
||||
"hostAliases": "HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts file if specified. This is only valid for non-hostNetwork pods.",
|
||||
"priorityClassName": "If specified, indicates the pod's priority. \"SYSTEM\" is a special keyword which indicates the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default.",
|
||||
"priority": "The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority.",
|
||||
}
|
||||
|
||||
func (PodSpec) SwaggerDoc() map[string]string {
|
||||
|
@ -2601,6 +2601,11 @@ func DeepCopy_v1_PodSpec(in interface{}, out interface{}, c *conversion.Cloner)
|
||||
}
|
||||
}
|
||||
}
|
||||
if in.Priority != nil {
|
||||
in, out := &in.Priority, &out.Priority
|
||||
*out = new(int32)
|
||||
**out = **in
|
||||
}
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
@ -19886,7 +19886,7 @@ func (x codecSelfer1234) decSliceDeployment(v *[]Deployment, d *codec1978.Decode
|
||||
|
||||
yyrg1 := len(yyv1) > 0
|
||||
yyv21 := yyv1
|
||||
yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 968)
|
||||
yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 992)
|
||||
if yyrt1 {
|
||||
if yyrl1 <= cap(yyv1) {
|
||||
yyv1 = yyv1[:yyrl1]
|
||||
@ -20005,7 +20005,7 @@ func (x codecSelfer1234) decSliceDaemonSet(v *[]DaemonSet, d *codec1978.Decoder)
|
||||
|
||||
yyrg1 := len(yyv1) > 0
|
||||
yyv21 := yyv1
|
||||
yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 928)
|
||||
yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 952)
|
||||
if yyrt1 {
|
||||
if yyrl1 <= cap(yyv1) {
|
||||
yyv1 = yyv1[:yyrl1]
|
||||
@ -20719,7 +20719,7 @@ func (x codecSelfer1234) decSliceReplicaSet(v *[]ReplicaSet, d *codec1978.Decode
|
||||
|
||||
yyrg1 := len(yyv1) > 0
|
||||
yyv21 := yyv1
|
||||
yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 896)
|
||||
yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 920)
|
||||
if yyrt1 {
|
||||
if yyrl1 <= cap(yyv1) {
|
||||
yyv1 = yyv1[:yyrl1]
|
||||
|
Loading…
Reference in New Issue
Block a user