146 lines
7.7 KiB
Go
146 lines
7.7 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 v1alpha2
|
|
|
|
import (
|
|
schedulingv1alpha2 "k8s.io/api/scheduling/v1alpha2"
|
|
)
|
|
|
|
// PodGroupSpecApplyConfiguration represents a declarative configuration of the PodGroupSpec type for use
|
|
// with apply.
|
|
//
|
|
// PodGroupSpec defines the desired state of a PodGroup.
|
|
type PodGroupSpecApplyConfiguration struct {
|
|
// PodGroupTemplateRef references an optional PodGroup template within other object
|
|
// (e.g. Workload) that was used to create the PodGroup. This field is immutable.
|
|
PodGroupTemplateRef *PodGroupTemplateReferenceApplyConfiguration `json:"podGroupTemplateRef,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.
|
|
// This field is immutable.
|
|
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 Pod, PodGroup. Defaults to Pod if unset.
|
|
// This field is immutable.
|
|
// This field is available only when the WorkloadAwarePreemption feature gate
|
|
// is enabled.
|
|
DisruptionMode *schedulingv1alpha2.DisruptionMode `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.
|
|
// This field is available only when the WorkloadAwarePreemption feature gate
|
|
// is enabled.
|
|
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.
|
|
// This field is available only when the WorkloadAwarePreemption feature gate
|
|
// is enabled.
|
|
Priority *int32 `json:"priority,omitempty"`
|
|
}
|
|
|
|
// PodGroupSpecApplyConfiguration constructs a declarative configuration of the PodGroupSpec type for use with
|
|
// apply.
|
|
func PodGroupSpec() *PodGroupSpecApplyConfiguration {
|
|
return &PodGroupSpecApplyConfiguration{}
|
|
}
|
|
|
|
// WithPodGroupTemplateRef sets the PodGroupTemplateRef 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 PodGroupTemplateRef field is set to the value of the last call.
|
|
func (b *PodGroupSpecApplyConfiguration) WithPodGroupTemplateRef(value *PodGroupTemplateReferenceApplyConfiguration) *PodGroupSpecApplyConfiguration {
|
|
b.PodGroupTemplateRef = 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 schedulingv1alpha2.DisruptionMode) *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
|
|
}
|