141 lines
7.5 KiB
Go
141 lines
7.5 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
|
|
|
|
import (
|
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
applyconfigurationsmetav1 "k8s.io/client-go/applyconfigurations/meta/v1"
|
|
)
|
|
|
|
// PodDisruptionBudgetStatusApplyConfiguration represents a declarative configuration of the PodDisruptionBudgetStatus type for use
|
|
// with apply.
|
|
//
|
|
// PodDisruptionBudgetStatus represents information about the status of a
|
|
// PodDisruptionBudget. Status may trail the actual state of a system.
|
|
type PodDisruptionBudgetStatusApplyConfiguration struct {
|
|
// Most recent generation observed when updating this PDB status. DisruptionsAllowed and other
|
|
// status information is valid only if observedGeneration equals to PDB's object generation.
|
|
ObservedGeneration *int64 `json:"observedGeneration,omitempty"`
|
|
// DisruptedPods contains information about pods whose eviction was
|
|
// processed by the API server eviction subresource handler but has not
|
|
// yet been observed by the PodDisruptionBudget controller.
|
|
// A pod will be in this map from the time when the API server processed the
|
|
// eviction request to the time when the pod is seen by PDB controller
|
|
// as having been marked for deletion (or after a timeout). The key in the map is the name of the pod
|
|
// and the value is the time when the API server processed the eviction request. If
|
|
// the deletion didn't occur and a pod is still there it will be removed from
|
|
// the list automatically by PodDisruptionBudget controller after some time.
|
|
// If everything goes smooth this map should be empty for the most of the time.
|
|
// Large number of entries in the map may indicate problems with pod deletions.
|
|
DisruptedPods map[string]metav1.Time `json:"disruptedPods,omitempty"`
|
|
// Number of pod disruptions that are currently allowed.
|
|
DisruptionsAllowed *int32 `json:"disruptionsAllowed,omitempty"`
|
|
// current number of healthy pods
|
|
CurrentHealthy *int32 `json:"currentHealthy,omitempty"`
|
|
// minimum desired number of healthy pods
|
|
DesiredHealthy *int32 `json:"desiredHealthy,omitempty"`
|
|
// total number of pods counted by this disruption budget
|
|
ExpectedPods *int32 `json:"expectedPods,omitempty"`
|
|
// Conditions contain conditions for PDB. The disruption controller sets the
|
|
// DisruptionAllowed condition. The following are known values for the reason field
|
|
// (additional reasons could be added in the future):
|
|
// - SyncFailed: The controller encountered an error and wasn't able to compute
|
|
// the number of allowed disruptions. Therefore no disruptions are
|
|
// allowed and the status of the condition will be False.
|
|
// - InsufficientPods: The number of pods are either at or below the number
|
|
// required by the PodDisruptionBudget. No disruptions are
|
|
// allowed and the status of the condition will be False.
|
|
// - SufficientPods: There are more pods than required by the PodDisruptionBudget.
|
|
// The condition will be True, and the number of allowed
|
|
// disruptions are provided by the disruptionsAllowed property.
|
|
Conditions []applyconfigurationsmetav1.ConditionApplyConfiguration `json:"conditions,omitempty"`
|
|
}
|
|
|
|
// PodDisruptionBudgetStatusApplyConfiguration constructs a declarative configuration of the PodDisruptionBudgetStatus type for use with
|
|
// apply.
|
|
func PodDisruptionBudgetStatus() *PodDisruptionBudgetStatusApplyConfiguration {
|
|
return &PodDisruptionBudgetStatusApplyConfiguration{}
|
|
}
|
|
|
|
// WithObservedGeneration sets the ObservedGeneration 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 ObservedGeneration field is set to the value of the last call.
|
|
func (b *PodDisruptionBudgetStatusApplyConfiguration) WithObservedGeneration(value int64) *PodDisruptionBudgetStatusApplyConfiguration {
|
|
b.ObservedGeneration = &value
|
|
return b
|
|
}
|
|
|
|
// WithDisruptedPods puts the entries into the DisruptedPods field in the declarative configuration
|
|
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
|
|
// If called multiple times, the entries provided by each call will be put on the DisruptedPods field,
|
|
// overwriting an existing map entries in DisruptedPods field with the same key.
|
|
func (b *PodDisruptionBudgetStatusApplyConfiguration) WithDisruptedPods(entries map[string]metav1.Time) *PodDisruptionBudgetStatusApplyConfiguration {
|
|
if b.DisruptedPods == nil && len(entries) > 0 {
|
|
b.DisruptedPods = make(map[string]metav1.Time, len(entries))
|
|
}
|
|
for k, v := range entries {
|
|
b.DisruptedPods[k] = v
|
|
}
|
|
return b
|
|
}
|
|
|
|
// WithDisruptionsAllowed sets the DisruptionsAllowed 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 DisruptionsAllowed field is set to the value of the last call.
|
|
func (b *PodDisruptionBudgetStatusApplyConfiguration) WithDisruptionsAllowed(value int32) *PodDisruptionBudgetStatusApplyConfiguration {
|
|
b.DisruptionsAllowed = &value
|
|
return b
|
|
}
|
|
|
|
// WithCurrentHealthy sets the CurrentHealthy 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 CurrentHealthy field is set to the value of the last call.
|
|
func (b *PodDisruptionBudgetStatusApplyConfiguration) WithCurrentHealthy(value int32) *PodDisruptionBudgetStatusApplyConfiguration {
|
|
b.CurrentHealthy = &value
|
|
return b
|
|
}
|
|
|
|
// WithDesiredHealthy sets the DesiredHealthy 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 DesiredHealthy field is set to the value of the last call.
|
|
func (b *PodDisruptionBudgetStatusApplyConfiguration) WithDesiredHealthy(value int32) *PodDisruptionBudgetStatusApplyConfiguration {
|
|
b.DesiredHealthy = &value
|
|
return b
|
|
}
|
|
|
|
// WithExpectedPods sets the ExpectedPods 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 ExpectedPods field is set to the value of the last call.
|
|
func (b *PodDisruptionBudgetStatusApplyConfiguration) WithExpectedPods(value int32) *PodDisruptionBudgetStatusApplyConfiguration {
|
|
b.ExpectedPods = &value
|
|
return b
|
|
}
|
|
|
|
// WithConditions adds the given value to the Conditions 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 Conditions field.
|
|
func (b *PodDisruptionBudgetStatusApplyConfiguration) WithConditions(values ...*applyconfigurationsmetav1.ConditionApplyConfiguration) *PodDisruptionBudgetStatusApplyConfiguration {
|
|
for i := range values {
|
|
if values[i] == nil {
|
|
panic("nil value passed to WithConditions")
|
|
}
|
|
b.Conditions = append(b.Conditions, *values[i])
|
|
}
|
|
return b
|
|
}
|