93 lines
4.3 KiB
Go
93 lines
4.3 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 v1
|
|
|
|
// ResourceClaimStatusApplyConfiguration represents a declarative configuration of the ResourceClaimStatus type for use
|
|
// with apply.
|
|
//
|
|
// ResourceClaimStatus tracks whether the resource has been allocated and what
|
|
// the result of that was.
|
|
type ResourceClaimStatusApplyConfiguration struct {
|
|
// Allocation is set once the claim has been allocated successfully.
|
|
Allocation *AllocationResultApplyConfiguration `json:"allocation,omitempty"`
|
|
// ReservedFor indicates which entities are currently allowed to use
|
|
// the claim. A Pod which references a ResourceClaim which is not
|
|
// reserved for that Pod will not be started. A claim that is in
|
|
// use or might be in use because it has been reserved must not get
|
|
// deallocated.
|
|
//
|
|
// In a cluster with multiple scheduler instances, two pods might get
|
|
// scheduled concurrently by different schedulers. When they reference
|
|
// the same ResourceClaim which already has reached its maximum number
|
|
// of consumers, only one pod can be scheduled.
|
|
//
|
|
// Both schedulers try to add their pod to the claim.status.reservedFor
|
|
// field, but only the update that reaches the API server first gets
|
|
// stored. The other one fails with an error and the scheduler
|
|
// which issued it knows that it must put the pod back into the queue,
|
|
// waiting for the ResourceClaim to become usable again.
|
|
//
|
|
// There can be at most 256 such reservations. This may get increased in
|
|
// the future, but not reduced.
|
|
ReservedFor []ResourceClaimConsumerReferenceApplyConfiguration `json:"reservedFor,omitempty"`
|
|
// Devices contains the status of each device allocated for this
|
|
// claim, as reported by the driver. This can include driver-specific
|
|
// information. Entries are owned by their respective drivers.
|
|
Devices []AllocatedDeviceStatusApplyConfiguration `json:"devices,omitempty"`
|
|
}
|
|
|
|
// ResourceClaimStatusApplyConfiguration constructs a declarative configuration of the ResourceClaimStatus type for use with
|
|
// apply.
|
|
func ResourceClaimStatus() *ResourceClaimStatusApplyConfiguration {
|
|
return &ResourceClaimStatusApplyConfiguration{}
|
|
}
|
|
|
|
// WithAllocation sets the Allocation 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 Allocation field is set to the value of the last call.
|
|
func (b *ResourceClaimStatusApplyConfiguration) WithAllocation(value *AllocationResultApplyConfiguration) *ResourceClaimStatusApplyConfiguration {
|
|
b.Allocation = value
|
|
return b
|
|
}
|
|
|
|
// WithReservedFor adds the given value to the ReservedFor 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 ReservedFor field.
|
|
func (b *ResourceClaimStatusApplyConfiguration) WithReservedFor(values ...*ResourceClaimConsumerReferenceApplyConfiguration) *ResourceClaimStatusApplyConfiguration {
|
|
for i := range values {
|
|
if values[i] == nil {
|
|
panic("nil value passed to WithReservedFor")
|
|
}
|
|
b.ReservedFor = append(b.ReservedFor, *values[i])
|
|
}
|
|
return b
|
|
}
|
|
|
|
// WithDevices adds the given value to the Devices 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 Devices field.
|
|
func (b *ResourceClaimStatusApplyConfiguration) WithDevices(values ...*AllocatedDeviceStatusApplyConfiguration) *ResourceClaimStatusApplyConfiguration {
|
|
for i := range values {
|
|
if values[i] == nil {
|
|
panic("nil value passed to WithDevices")
|
|
}
|
|
b.Devices = append(b.Devices, *values[i])
|
|
}
|
|
return b
|
|
}
|