mirror of
https://github.com/kubernetes/client-go.git
synced 2026-07-16 17:14:36 +00:00
Co-authored-by: Antoni Zawodny <zawodny@google.com> Kubernetes-commit: cea3df3e5624e40ceb4aa0b4e309eaf0596675dd
169 lines
9.2 KiB
Go
169 lines
9.2 KiB
Go
/*
|
|
Copyright The Kubernetes Authors.
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
*/
|
|
|
|
// Code generated by applyconfiguration-gen. DO NOT EDIT.
|
|
|
|
package v1alpha3
|
|
|
|
import (
|
|
schedulingv1alpha3 "k8s.io/api/scheduling/v1alpha3"
|
|
)
|
|
|
|
// PodGroupSpecApplyConfiguration represents a declarative configuration of the PodGroupSpec type for use
|
|
// with apply.
|
|
//
|
|
// PodGroupSpec defines the desired state of a PodGroup.
|
|
type PodGroupSpecApplyConfiguration struct {
|
|
// ParentCompositePodGroupName contains the name of the parent composite pod group
|
|
// within the same namespace as this pod group.
|
|
// If it's nil, then this pod group is a root of a workload's hierarchy.
|
|
// This field is used only when the CompositePodGroup feature gate is enabled.
|
|
// This field is immutable.
|
|
ParentCompositePodGroupName *string `json:"parentCompositePodGroupName,omitempty"`
|
|
// WorkloadRef references an optional PodGroup template within the Workload
|
|
// object that was used to create the PodGroup.
|
|
// This field is immutable.
|
|
WorkloadRef *WorkloadReferenceApplyConfiguration `json:"workloadRef,omitempty"`
|
|
// SchedulingPolicy defines the scheduling policy for this instance of the PodGroup.
|
|
// Controllers are expected to fill this field by copying it from a PodGroupTemplate.
|
|
SchedulingPolicy *PodGroupSchedulingPolicyApplyConfiguration `json:"schedulingPolicy,omitempty"`
|
|
// SchedulingConstraints defines optional scheduling constraints (e.g. topology) for this PodGroup.
|
|
// Controllers are expected to fill this field by copying it from a PodGroupTemplate.
|
|
// This field is immutable.
|
|
// This field is only available when the TopologyAwareWorkloadScheduling feature gate is enabled.
|
|
SchedulingConstraints *PodGroupSchedulingConstraintsApplyConfiguration `json:"schedulingConstraints,omitempty"`
|
|
// ResourceClaims defines which ResourceClaims may be shared among Pods in
|
|
// the group. Pods consume the devices allocated to a PodGroup's claim by
|
|
// defining a claim in its own Spec.ResourceClaims that matches the
|
|
// PodGroup's claim exactly. The claim must have the same name and refer to
|
|
// the same ResourceClaim or ResourceClaimTemplate.
|
|
//
|
|
// This is an alpha-level field and requires that the
|
|
// DRAWorkloadResourceClaims feature gate is enabled.
|
|
//
|
|
// This field is immutable.
|
|
ResourceClaims []PodGroupResourceClaimApplyConfiguration `json:"resourceClaims,omitempty"`
|
|
// DisruptionMode defines the mode in which a given PodGroup can be disrupted.
|
|
// Controllers are expected to fill this field by copying it from a PodGroupTemplate.
|
|
// One of Single, All. Defaults to Single if unset.
|
|
// This field is immutable.
|
|
DisruptionMode *DisruptionModeApplyConfiguration `json:"disruptionMode,omitempty"`
|
|
// PriorityClassName defines the priority that should be considered when scheduling this pod group.
|
|
// Controllers are expected to fill this field by copying it from a PodGroupTemplate.
|
|
// Otherwise, it is validated and resolved similarly to the PriorityClassName on PodGroupTemplate
|
|
// (i.e. if no priority class is specified, admission control can set this to the global default
|
|
// priority class if it exists. Otherwise, the pod group's priority will be zero).
|
|
// This field is immutable.
|
|
PriorityClassName *string `json:"priorityClassName,omitempty"`
|
|
// Priority is the value of priority of this pod group. Various system components
|
|
// use this field to find the priority of the pod group. 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.
|
|
// This field is immutable.
|
|
Priority *int32 `json:"priority,omitempty"`
|
|
// PreemptionPolicy is the Policy for preempting pods/podgroups with lower priority.
|
|
// One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset.
|
|
// When Priority Admission Controller is enabled, it populates this field from PriorityClassName,
|
|
// and defaults to PreemptLowerPriority if value is unset in PriorityClass.
|
|
// This field is immutable.
|
|
// This field is available only when the PodGroupPreemptionPolicy feature gate is enabled.
|
|
PreemptionPolicy *schedulingv1alpha3.PreemptionPolicy `json:"preemptionPolicy,omitempty"`
|
|
}
|
|
|
|
// PodGroupSpecApplyConfiguration constructs a declarative configuration of the PodGroupSpec type for use with
|
|
// apply.
|
|
func PodGroupSpec() *PodGroupSpecApplyConfiguration {
|
|
return &PodGroupSpecApplyConfiguration{}
|
|
}
|
|
|
|
// WithParentCompositePodGroupName sets the ParentCompositePodGroupName field in the declarative configuration to the given value
|
|
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
// If called multiple times, the ParentCompositePodGroupName field is set to the value of the last call.
|
|
func (b *PodGroupSpecApplyConfiguration) WithParentCompositePodGroupName(value string) *PodGroupSpecApplyConfiguration {
|
|
b.ParentCompositePodGroupName = &value
|
|
return b
|
|
}
|
|
|
|
// WithWorkloadRef sets the WorkloadRef field in the declarative configuration to the given value
|
|
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
// If called multiple times, the WorkloadRef field is set to the value of the last call.
|
|
func (b *PodGroupSpecApplyConfiguration) WithWorkloadRef(value *WorkloadReferenceApplyConfiguration) *PodGroupSpecApplyConfiguration {
|
|
b.WorkloadRef = value
|
|
return b
|
|
}
|
|
|
|
// WithSchedulingPolicy sets the SchedulingPolicy field in the declarative configuration to the given value
|
|
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
// If called multiple times, the SchedulingPolicy field is set to the value of the last call.
|
|
func (b *PodGroupSpecApplyConfiguration) WithSchedulingPolicy(value *PodGroupSchedulingPolicyApplyConfiguration) *PodGroupSpecApplyConfiguration {
|
|
b.SchedulingPolicy = value
|
|
return b
|
|
}
|
|
|
|
// WithSchedulingConstraints sets the SchedulingConstraints field in the declarative configuration to the given value
|
|
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
// If called multiple times, the SchedulingConstraints field is set to the value of the last call.
|
|
func (b *PodGroupSpecApplyConfiguration) WithSchedulingConstraints(value *PodGroupSchedulingConstraintsApplyConfiguration) *PodGroupSpecApplyConfiguration {
|
|
b.SchedulingConstraints = value
|
|
return b
|
|
}
|
|
|
|
// WithResourceClaims adds the given value to the ResourceClaims field in the declarative configuration
|
|
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
|
|
// If called multiple times, values provided by each call will be appended to the ResourceClaims field.
|
|
func (b *PodGroupSpecApplyConfiguration) WithResourceClaims(values ...*PodGroupResourceClaimApplyConfiguration) *PodGroupSpecApplyConfiguration {
|
|
for i := range values {
|
|
if values[i] == nil {
|
|
panic("nil value passed to WithResourceClaims")
|
|
}
|
|
b.ResourceClaims = append(b.ResourceClaims, *values[i])
|
|
}
|
|
return b
|
|
}
|
|
|
|
// WithDisruptionMode sets the DisruptionMode field in the declarative configuration to the given value
|
|
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
// If called multiple times, the DisruptionMode field is set to the value of the last call.
|
|
func (b *PodGroupSpecApplyConfiguration) WithDisruptionMode(value *DisruptionModeApplyConfiguration) *PodGroupSpecApplyConfiguration {
|
|
b.DisruptionMode = value
|
|
return b
|
|
}
|
|
|
|
// WithPriorityClassName sets the PriorityClassName field in the declarative configuration to the given value
|
|
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
// If called multiple times, the PriorityClassName field is set to the value of the last call.
|
|
func (b *PodGroupSpecApplyConfiguration) WithPriorityClassName(value string) *PodGroupSpecApplyConfiguration {
|
|
b.PriorityClassName = &value
|
|
return b
|
|
}
|
|
|
|
// WithPriority sets the Priority field in the declarative configuration to the given value
|
|
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
// If called multiple times, the Priority field is set to the value of the last call.
|
|
func (b *PodGroupSpecApplyConfiguration) WithPriority(value int32) *PodGroupSpecApplyConfiguration {
|
|
b.Priority = &value
|
|
return b
|
|
}
|
|
|
|
// WithPreemptionPolicy sets the PreemptionPolicy field in the declarative configuration to the given value
|
|
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
// If called multiple times, the PreemptionPolicy field is set to the value of the last call.
|
|
func (b *PodGroupSpecApplyConfiguration) WithPreemptionPolicy(value schedulingv1alpha3.PreemptionPolicy) *PodGroupSpecApplyConfiguration {
|
|
b.PreemptionPolicy = &value
|
|
return b
|
|
}
|