mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-28 13:03:43 +00:00
Rename PodDisruptionsAllowed to DisruptionsAllowed in type PodDisruptionBudgetStatus
This commit is contained in:
parent
249c6cf915
commit
1fb0dd4ec5
@ -534,7 +534,6 @@ API rule violation: names_match,k8s.io/api/core/v1,RBDVolumeSource,RBDPool
|
|||||||
API rule violation: names_match,k8s.io/api/core/v1,RBDVolumeSource,RadosUser
|
API rule violation: names_match,k8s.io/api/core/v1,RBDVolumeSource,RadosUser
|
||||||
API rule violation: names_match,k8s.io/api/core/v1,VolumeSource,CephFS
|
API rule violation: names_match,k8s.io/api/core/v1,VolumeSource,CephFS
|
||||||
API rule violation: names_match,k8s.io/api/core/v1,VolumeSource,StorageOS
|
API rule violation: names_match,k8s.io/api/core/v1,VolumeSource,StorageOS
|
||||||
API rule violation: names_match,k8s.io/api/policy/v1beta1,PodDisruptionBudgetStatus,PodDisruptionsAllowed
|
|
||||||
API rule violation: names_match,k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1,JSON,Raw
|
API rule violation: names_match,k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1,JSON,Raw
|
||||||
API rule violation: names_match,k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1,JSONSchemaProps,Ref
|
API rule violation: names_match,k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1,JSONSchemaProps,Ref
|
||||||
API rule violation: names_match,k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1,JSONSchemaProps,Schema
|
API rule violation: names_match,k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1,JSONSchemaProps,Schema
|
||||||
|
2
api/openapi-spec/swagger.json
generated
2
api/openapi-spec/swagger.json
generated
@ -15224,7 +15224,7 @@
|
|||||||
"type": "integer"
|
"type": "integer"
|
||||||
},
|
},
|
||||||
"observedGeneration": {
|
"observedGeneration": {
|
||||||
"description": "Most recent generation observed when updating this PDB status. PodDisruptionsAllowed and other status information is valid only if observedGeneration equals to PDB's object generation.",
|
"description": "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.",
|
||||||
"format": "int64",
|
"format": "int64",
|
||||||
"type": "integer"
|
"type": "integer"
|
||||||
}
|
}
|
||||||
|
@ -28,7 +28,7 @@ var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} {
|
|||||||
return []interface{}{
|
return []interface{}{
|
||||||
func(s *policy.PodDisruptionBudgetStatus, c fuzz.Continue) {
|
func(s *policy.PodDisruptionBudgetStatus, c fuzz.Continue) {
|
||||||
c.FuzzNoCustom(s) // fuzz self without calling this function again
|
c.FuzzNoCustom(s) // fuzz self without calling this function again
|
||||||
s.PodDisruptionsAllowed = int32(c.Rand.Intn(2))
|
s.DisruptionsAllowed = int32(c.Rand.Intn(2))
|
||||||
},
|
},
|
||||||
func(psp *policy.PodSecurityPolicySpec, c fuzz.Continue) {
|
func(psp *policy.PodSecurityPolicySpec, c fuzz.Continue) {
|
||||||
c.FuzzNoCustom(psp) // fuzz self without calling this function again
|
c.FuzzNoCustom(psp) // fuzz self without calling this function again
|
||||||
|
@ -47,7 +47,7 @@ type PodDisruptionBudgetSpec struct {
|
|||||||
// PodDisruptionBudgetStatus represents information about the status of a
|
// PodDisruptionBudgetStatus represents information about the status of a
|
||||||
// PodDisruptionBudget. Status may trail the actual state of a system.
|
// PodDisruptionBudget. Status may trail the actual state of a system.
|
||||||
type PodDisruptionBudgetStatus struct {
|
type PodDisruptionBudgetStatus struct {
|
||||||
// Most recent generation observed when updating this PDB status. PodDisruptionsAllowed and other
|
// 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.
|
// status information is valid only if observedGeneration equals to PDB's object generation.
|
||||||
// +optional
|
// +optional
|
||||||
ObservedGeneration int64
|
ObservedGeneration int64
|
||||||
@ -67,7 +67,7 @@ type PodDisruptionBudgetStatus struct {
|
|||||||
DisruptedPods map[string]metav1.Time
|
DisruptedPods map[string]metav1.Time
|
||||||
|
|
||||||
// Number of pod disruptions that are currently allowed.
|
// Number of pod disruptions that are currently allowed.
|
||||||
PodDisruptionsAllowed int32
|
DisruptionsAllowed int32
|
||||||
|
|
||||||
// current number of healthy pods
|
// current number of healthy pods
|
||||||
CurrentHealthy int32
|
CurrentHealthy int32
|
||||||
|
@ -464,7 +464,7 @@ func Convert_policy_PodDisruptionBudgetSpec_To_v1beta1_PodDisruptionBudgetSpec(i
|
|||||||
func autoConvert_v1beta1_PodDisruptionBudgetStatus_To_policy_PodDisruptionBudgetStatus(in *v1beta1.PodDisruptionBudgetStatus, out *policy.PodDisruptionBudgetStatus, s conversion.Scope) error {
|
func autoConvert_v1beta1_PodDisruptionBudgetStatus_To_policy_PodDisruptionBudgetStatus(in *v1beta1.PodDisruptionBudgetStatus, out *policy.PodDisruptionBudgetStatus, s conversion.Scope) error {
|
||||||
out.ObservedGeneration = in.ObservedGeneration
|
out.ObservedGeneration = in.ObservedGeneration
|
||||||
out.DisruptedPods = *(*map[string]v1.Time)(unsafe.Pointer(&in.DisruptedPods))
|
out.DisruptedPods = *(*map[string]v1.Time)(unsafe.Pointer(&in.DisruptedPods))
|
||||||
out.PodDisruptionsAllowed = in.PodDisruptionsAllowed
|
out.DisruptionsAllowed = in.DisruptionsAllowed
|
||||||
out.CurrentHealthy = in.CurrentHealthy
|
out.CurrentHealthy = in.CurrentHealthy
|
||||||
out.DesiredHealthy = in.DesiredHealthy
|
out.DesiredHealthy = in.DesiredHealthy
|
||||||
out.ExpectedPods = in.ExpectedPods
|
out.ExpectedPods = in.ExpectedPods
|
||||||
@ -479,7 +479,7 @@ func Convert_v1beta1_PodDisruptionBudgetStatus_To_policy_PodDisruptionBudgetStat
|
|||||||
func autoConvert_policy_PodDisruptionBudgetStatus_To_v1beta1_PodDisruptionBudgetStatus(in *policy.PodDisruptionBudgetStatus, out *v1beta1.PodDisruptionBudgetStatus, s conversion.Scope) error {
|
func autoConvert_policy_PodDisruptionBudgetStatus_To_v1beta1_PodDisruptionBudgetStatus(in *policy.PodDisruptionBudgetStatus, out *v1beta1.PodDisruptionBudgetStatus, s conversion.Scope) error {
|
||||||
out.ObservedGeneration = in.ObservedGeneration
|
out.ObservedGeneration = in.ObservedGeneration
|
||||||
out.DisruptedPods = *(*map[string]v1.Time)(unsafe.Pointer(&in.DisruptedPods))
|
out.DisruptedPods = *(*map[string]v1.Time)(unsafe.Pointer(&in.DisruptedPods))
|
||||||
out.PodDisruptionsAllowed = in.PodDisruptionsAllowed
|
out.DisruptionsAllowed = in.DisruptionsAllowed
|
||||||
out.CurrentHealthy = in.CurrentHealthy
|
out.CurrentHealthy = in.CurrentHealthy
|
||||||
out.DesiredHealthy = in.DesiredHealthy
|
out.DesiredHealthy = in.DesiredHealthy
|
||||||
out.ExpectedPods = in.ExpectedPods
|
out.ExpectedPods = in.ExpectedPods
|
||||||
|
@ -71,7 +71,7 @@ func ValidatePodDisruptionBudgetSpec(spec policy.PodDisruptionBudgetSpec, fldPat
|
|||||||
// with any errors.
|
// with any errors.
|
||||||
func ValidatePodDisruptionBudgetStatus(status policy.PodDisruptionBudgetStatus, fldPath *field.Path) field.ErrorList {
|
func ValidatePodDisruptionBudgetStatus(status policy.PodDisruptionBudgetStatus, fldPath *field.Path) field.ErrorList {
|
||||||
allErrs := field.ErrorList{}
|
allErrs := field.ErrorList{}
|
||||||
allErrs = append(allErrs, apivalidation.ValidateNonnegativeField(int64(status.PodDisruptionsAllowed), fldPath.Child("podDisruptionsAllowed"))...)
|
allErrs = append(allErrs, apivalidation.ValidateNonnegativeField(int64(status.DisruptionsAllowed), fldPath.Child("disruptionsAllowed"))...)
|
||||||
allErrs = append(allErrs, apivalidation.ValidateNonnegativeField(int64(status.CurrentHealthy), fldPath.Child("currentHealthy"))...)
|
allErrs = append(allErrs, apivalidation.ValidateNonnegativeField(int64(status.CurrentHealthy), fldPath.Child("currentHealthy"))...)
|
||||||
allErrs = append(allErrs, apivalidation.ValidateNonnegativeField(int64(status.DesiredHealthy), fldPath.Child("desiredHealthy"))...)
|
allErrs = append(allErrs, apivalidation.ValidateNonnegativeField(int64(status.DesiredHealthy), fldPath.Child("desiredHealthy"))...)
|
||||||
allErrs = append(allErrs, apivalidation.ValidateNonnegativeField(int64(status.ExpectedPods), fldPath.Child("expectedPods"))...)
|
allErrs = append(allErrs, apivalidation.ValidateNonnegativeField(int64(status.ExpectedPods), fldPath.Child("expectedPods"))...)
|
||||||
|
@ -99,7 +99,7 @@ func TestValidateMinAvailablePodAndMaxUnavailableDisruptionBudgetSpec(t *testing
|
|||||||
|
|
||||||
func TestValidatePodDisruptionBudgetStatus(t *testing.T) {
|
func TestValidatePodDisruptionBudgetStatus(t *testing.T) {
|
||||||
successCases := []policy.PodDisruptionBudgetStatus{
|
successCases := []policy.PodDisruptionBudgetStatus{
|
||||||
{PodDisruptionsAllowed: 10},
|
{DisruptionsAllowed: 10},
|
||||||
{CurrentHealthy: 5},
|
{CurrentHealthy: 5},
|
||||||
{DesiredHealthy: 3},
|
{DesiredHealthy: 3},
|
||||||
{ExpectedPods: 2}}
|
{ExpectedPods: 2}}
|
||||||
@ -110,7 +110,7 @@ func TestValidatePodDisruptionBudgetStatus(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
failureCases := []policy.PodDisruptionBudgetStatus{
|
failureCases := []policy.PodDisruptionBudgetStatus{
|
||||||
{PodDisruptionsAllowed: -10},
|
{DisruptionsAllowed: -10},
|
||||||
{CurrentHealthy: -5},
|
{CurrentHealthy: -5},
|
||||||
{DesiredHealthy: -3},
|
{DesiredHealthy: -3},
|
||||||
{ExpectedPods: -2}}
|
{ExpectedPods: -2}}
|
||||||
|
@ -743,14 +743,14 @@ func (dc *DisruptionController) buildDisruptedPodMap(pods []*v1.Pod, pdb *policy
|
|||||||
return result, recheckTime
|
return result, recheckTime
|
||||||
}
|
}
|
||||||
|
|
||||||
// failSafe is an attempt to at least update the PodDisruptionsAllowed field to
|
// failSafe is an attempt to at least update the DisruptionsAllowed field to
|
||||||
// 0 if everything else has failed. This is one place we
|
// 0 if everything else has failed. This is one place we
|
||||||
// implement the "fail open" part of the design since if we manage to update
|
// implement the "fail open" part of the design since if we manage to update
|
||||||
// this field correctly, we will prevent the /evict handler from approving an
|
// this field correctly, we will prevent the /evict handler from approving an
|
||||||
// eviction when it may be unsafe to do so.
|
// eviction when it may be unsafe to do so.
|
||||||
func (dc *DisruptionController) failSafe(pdb *policy.PodDisruptionBudget) error {
|
func (dc *DisruptionController) failSafe(pdb *policy.PodDisruptionBudget) error {
|
||||||
newPdb := pdb.DeepCopy()
|
newPdb := pdb.DeepCopy()
|
||||||
newPdb.Status.PodDisruptionsAllowed = 0
|
newPdb.Status.DisruptionsAllowed = 0
|
||||||
return dc.getUpdater()(newPdb)
|
return dc.getUpdater()(newPdb)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -769,7 +769,7 @@ func (dc *DisruptionController) updatePdbStatus(pdb *policy.PodDisruptionBudget,
|
|||||||
if pdb.Status.CurrentHealthy == currentHealthy &&
|
if pdb.Status.CurrentHealthy == currentHealthy &&
|
||||||
pdb.Status.DesiredHealthy == desiredHealthy &&
|
pdb.Status.DesiredHealthy == desiredHealthy &&
|
||||||
pdb.Status.ExpectedPods == expectedCount &&
|
pdb.Status.ExpectedPods == expectedCount &&
|
||||||
pdb.Status.PodDisruptionsAllowed == disruptionsAllowed &&
|
pdb.Status.DisruptionsAllowed == disruptionsAllowed &&
|
||||||
apiequality.Semantic.DeepEqual(pdb.Status.DisruptedPods, disruptedPods) &&
|
apiequality.Semantic.DeepEqual(pdb.Status.DisruptedPods, disruptedPods) &&
|
||||||
pdb.Status.ObservedGeneration == pdb.Generation {
|
pdb.Status.ObservedGeneration == pdb.Generation {
|
||||||
return nil
|
return nil
|
||||||
@ -777,12 +777,12 @@ func (dc *DisruptionController) updatePdbStatus(pdb *policy.PodDisruptionBudget,
|
|||||||
|
|
||||||
newPdb := pdb.DeepCopy()
|
newPdb := pdb.DeepCopy()
|
||||||
newPdb.Status = policy.PodDisruptionBudgetStatus{
|
newPdb.Status = policy.PodDisruptionBudgetStatus{
|
||||||
CurrentHealthy: currentHealthy,
|
CurrentHealthy: currentHealthy,
|
||||||
DesiredHealthy: desiredHealthy,
|
DesiredHealthy: desiredHealthy,
|
||||||
ExpectedPods: expectedCount,
|
ExpectedPods: expectedCount,
|
||||||
PodDisruptionsAllowed: disruptionsAllowed,
|
DisruptionsAllowed: disruptionsAllowed,
|
||||||
DisruptedPods: disruptedPods,
|
DisruptedPods: disruptedPods,
|
||||||
ObservedGeneration: pdb.Generation,
|
ObservedGeneration: pdb.Generation,
|
||||||
}
|
}
|
||||||
|
|
||||||
return dc.getUpdater()(newPdb)
|
return dc.getUpdater()(newPdb)
|
||||||
|
@ -73,12 +73,12 @@ func (ps *pdbStates) VerifyPdbStatus(t *testing.T, key string, disruptionsAllowe
|
|||||||
disruptedPodMap map[string]metav1.Time) {
|
disruptedPodMap map[string]metav1.Time) {
|
||||||
actualPDB := ps.Get(key)
|
actualPDB := ps.Get(key)
|
||||||
expectedStatus := policy.PodDisruptionBudgetStatus{
|
expectedStatus := policy.PodDisruptionBudgetStatus{
|
||||||
PodDisruptionsAllowed: disruptionsAllowed,
|
DisruptionsAllowed: disruptionsAllowed,
|
||||||
CurrentHealthy: currentHealthy,
|
CurrentHealthy: currentHealthy,
|
||||||
DesiredHealthy: desiredHealthy,
|
DesiredHealthy: desiredHealthy,
|
||||||
ExpectedPods: expectedPods,
|
ExpectedPods: expectedPods,
|
||||||
DisruptedPods: disruptedPodMap,
|
DisruptedPods: disruptedPodMap,
|
||||||
ObservedGeneration: actualPDB.Generation,
|
ObservedGeneration: actualPDB.Generation,
|
||||||
}
|
}
|
||||||
actualStatus := actualPDB.Status
|
actualStatus := actualPDB.Status
|
||||||
if !apiequality.Semantic.DeepEqual(actualStatus, expectedStatus) {
|
if !apiequality.Semantic.DeepEqual(actualStatus, expectedStatus) {
|
||||||
@ -89,9 +89,9 @@ func (ps *pdbStates) VerifyPdbStatus(t *testing.T, key string, disruptionsAllowe
|
|||||||
|
|
||||||
func (ps *pdbStates) VerifyDisruptionAllowed(t *testing.T, key string, disruptionsAllowed int32) {
|
func (ps *pdbStates) VerifyDisruptionAllowed(t *testing.T, key string, disruptionsAllowed int32) {
|
||||||
pdb := ps.Get(key)
|
pdb := ps.Get(key)
|
||||||
if pdb.Status.PodDisruptionsAllowed != disruptionsAllowed {
|
if pdb.Status.DisruptionsAllowed != disruptionsAllowed {
|
||||||
debug.PrintStack()
|
debug.PrintStack()
|
||||||
t.Fatalf("PodDisruptionAllowed mismatch for PDB %q. Expected %v but got %v.", key, disruptionsAllowed, pdb.Status.PodDisruptionsAllowed)
|
t.Fatalf("PodDisruptionAllowed mismatch for PDB %q. Expected %v but got %v.", key, disruptionsAllowed, pdb.Status.DisruptionsAllowed)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1043,15 +1043,15 @@ func TestDeploymentFinderFunction(t *testing.T) {
|
|||||||
// This test checks that the disruption controller does not write stale data to
|
// This test checks that the disruption controller does not write stale data to
|
||||||
// a PDB status during race conditions with the eviction handler. Specifically,
|
// a PDB status during race conditions with the eviction handler. Specifically,
|
||||||
// failed updates due to ResourceVersion conflict should not cause a stale value
|
// failed updates due to ResourceVersion conflict should not cause a stale value
|
||||||
// of PodDisruptionsAllowed to be written.
|
// of DisruptionsAllowed to be written.
|
||||||
//
|
//
|
||||||
// In this test, PodDisruptionsAllowed starts at 2.
|
// In this test, DisruptionsAllowed starts at 2.
|
||||||
// (A) We will delete 1 pod and trigger DisruptionController to set
|
// (A) We will delete 1 pod and trigger DisruptionController to set
|
||||||
// PodDisruptionsAllowed to 1.
|
// DisruptionsAllowed to 1.
|
||||||
// (B) As the DisruptionController attempts this write, we will evict the
|
// (B) As the DisruptionController attempts this write, we will evict the
|
||||||
// remaining 2 pods and update PodDisruptionsAllowed to 0. (The real eviction
|
// remaining 2 pods and update DisruptionsAllowed to 0. (The real eviction
|
||||||
// handler would allow this because it still sees PodDisruptionsAllowed=2.)
|
// handler would allow this because it still sees DisruptionsAllowed=2.)
|
||||||
// (C) If the DisruptionController writes PodDisruptionsAllowed=1 despite the
|
// (C) If the DisruptionController writes DisruptionsAllowed=1 despite the
|
||||||
// resource conflict error, then there is a bug.
|
// resource conflict error, then there is a bug.
|
||||||
func TestUpdatePDBStatusRetries(t *testing.T) {
|
func TestUpdatePDBStatusRetries(t *testing.T) {
|
||||||
dc, _ := newFakeDisruptionController()
|
dc, _ := newFakeDisruptionController()
|
||||||
@ -1106,10 +1106,10 @@ func TestUpdatePDBStatusRetries(t *testing.T) {
|
|||||||
}
|
}
|
||||||
updatedPDB := obj.(*policy.PodDisruptionBudget)
|
updatedPDB := obj.(*policy.PodDisruptionBudget)
|
||||||
// Each eviction,
|
// Each eviction,
|
||||||
// - decrements PodDisruptionsAllowed
|
// - decrements DisruptionsAllowed
|
||||||
// - adds the pod to DisruptedPods
|
// - adds the pod to DisruptedPods
|
||||||
// - deletes the pod
|
// - deletes the pod
|
||||||
updatedPDB.Status.PodDisruptionsAllowed -= int32(len(podNames))
|
updatedPDB.Status.DisruptionsAllowed -= int32(len(podNames))
|
||||||
updatedPDB.Status.DisruptedPods = make(map[string]metav1.Time)
|
updatedPDB.Status.DisruptedPods = make(map[string]metav1.Time)
|
||||||
for _, name := range podNames {
|
for _, name := range podNames {
|
||||||
updatedPDB.Status.DisruptedPods[name] = metav1.NewTime(time.Now())
|
updatedPDB.Status.DisruptedPods[name] = metav1.NewTime(time.Now())
|
||||||
@ -1161,8 +1161,8 @@ func TestUpdatePDBStatusRetries(t *testing.T) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Failed to get PDB: %v", err)
|
t.Fatalf("Failed to get PDB: %v", err)
|
||||||
}
|
}
|
||||||
if expected, actual := int32(0), finalPDB.Status.PodDisruptionsAllowed; expected != actual {
|
if expected, actual := int32(0), finalPDB.Status.DisruptionsAllowed; expected != actual {
|
||||||
t.Errorf("PodDisruptionsAllowed should be %d, got %d", expected, actual)
|
t.Errorf("DisruptionsAllowed should be %d, got %d", expected, actual)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -821,7 +821,7 @@ func printPodDisruptionBudget(obj *policy.PodDisruptionBudget, options printers.
|
|||||||
maxUnavailable = "N/A"
|
maxUnavailable = "N/A"
|
||||||
}
|
}
|
||||||
|
|
||||||
row.Cells = append(row.Cells, obj.Name, minAvailable, maxUnavailable, int64(obj.Status.PodDisruptionsAllowed), translateTimestampSince(obj.CreationTimestamp))
|
row.Cells = append(row.Cells, obj.Name, minAvailable, maxUnavailable, int64(obj.Status.DisruptionsAllowed), translateTimestampSince(obj.CreationTimestamp))
|
||||||
return []metav1.TableRow{row}, nil
|
return []metav1.TableRow{row}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2943,7 +2943,7 @@ func TestPrintPodDisruptionBudget(t *testing.T) {
|
|||||||
MinAvailable: &minAvailable,
|
MinAvailable: &minAvailable,
|
||||||
},
|
},
|
||||||
Status: policy.PodDisruptionBudgetStatus{
|
Status: policy.PodDisruptionBudgetStatus{
|
||||||
PodDisruptionsAllowed: 5,
|
DisruptionsAllowed: 5,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
// Columns: Name, Min Available, Max Available, Allowed Disruptions, Age
|
// Columns: Name, Min Available, Max Available, Allowed Disruptions, Age
|
||||||
@ -2961,7 +2961,7 @@ func TestPrintPodDisruptionBudget(t *testing.T) {
|
|||||||
MaxUnavailable: &maxUnavailable,
|
MaxUnavailable: &maxUnavailable,
|
||||||
},
|
},
|
||||||
Status: policy.PodDisruptionBudgetStatus{
|
Status: policy.PodDisruptionBudgetStatus{
|
||||||
PodDisruptionsAllowed: 5,
|
DisruptionsAllowed: 5,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
// Columns: Name, Min Available, Max Available, Allowed Disruptions, Age
|
// Columns: Name, Min Available, Max Available, Allowed Disruptions, Age
|
||||||
@ -2998,7 +2998,7 @@ func TestPrintPodDisruptionBudgetList(t *testing.T) {
|
|||||||
MaxUnavailable: &maxUnavailable,
|
MaxUnavailable: &maxUnavailable,
|
||||||
},
|
},
|
||||||
Status: policy.PodDisruptionBudgetStatus{
|
Status: policy.PodDisruptionBudgetStatus{
|
||||||
PodDisruptionsAllowed: 5,
|
DisruptionsAllowed: 5,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -3011,7 +3011,7 @@ func TestPrintPodDisruptionBudgetList(t *testing.T) {
|
|||||||
MinAvailable: &minAvailable,
|
MinAvailable: &minAvailable,
|
||||||
},
|
},
|
||||||
Status: policy.PodDisruptionBudgetStatus{
|
Status: policy.PodDisruptionBudgetStatus{
|
||||||
PodDisruptionsAllowed: 3,
|
DisruptionsAllowed: 3,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -214,19 +214,19 @@ func (r *EvictionREST) checkAndDecrement(namespace string, podName string, pdb p
|
|||||||
err.ErrStatus.Details.Causes = append(err.ErrStatus.Details.Causes, metav1.StatusCause{Type: "DisruptionBudget", Message: fmt.Sprintf("The disruption budget %s is still being processed by the server.", pdb.Name)})
|
err.ErrStatus.Details.Causes = append(err.ErrStatus.Details.Causes, metav1.StatusCause{Type: "DisruptionBudget", Message: fmt.Sprintf("The disruption budget %s is still being processed by the server.", pdb.Name)})
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if pdb.Status.PodDisruptionsAllowed < 0 {
|
if pdb.Status.DisruptionsAllowed < 0 {
|
||||||
return errors.NewForbidden(policy.Resource("poddisruptionbudget"), pdb.Name, fmt.Errorf("pdb disruptions allowed is negative"))
|
return errors.NewForbidden(policy.Resource("poddisruptionbudget"), pdb.Name, fmt.Errorf("pdb disruptions allowed is negative"))
|
||||||
}
|
}
|
||||||
if len(pdb.Status.DisruptedPods) > MaxDisruptedPodSize {
|
if len(pdb.Status.DisruptedPods) > MaxDisruptedPodSize {
|
||||||
return errors.NewForbidden(policy.Resource("poddisruptionbudget"), pdb.Name, fmt.Errorf("DisruptedPods map too big - too many evictions not confirmed by PDB controller"))
|
return errors.NewForbidden(policy.Resource("poddisruptionbudget"), pdb.Name, fmt.Errorf("DisruptedPods map too big - too many evictions not confirmed by PDB controller"))
|
||||||
}
|
}
|
||||||
if pdb.Status.PodDisruptionsAllowed == 0 {
|
if pdb.Status.DisruptionsAllowed == 0 {
|
||||||
err := errors.NewTooManyRequests("Cannot evict pod as it would violate the pod's disruption budget.", 0)
|
err := errors.NewTooManyRequests("Cannot evict pod as it would violate the pod's disruption budget.", 0)
|
||||||
err.ErrStatus.Details.Causes = append(err.ErrStatus.Details.Causes, metav1.StatusCause{Type: "DisruptionBudget", Message: fmt.Sprintf("The disruption budget %s needs %d healthy pods and has %d currently", pdb.Name, pdb.Status.DesiredHealthy, pdb.Status.CurrentHealthy)})
|
err.ErrStatus.Details.Causes = append(err.ErrStatus.Details.Causes, metav1.StatusCause{Type: "DisruptionBudget", Message: fmt.Sprintf("The disruption budget %s needs %d healthy pods and has %d currently", pdb.Name, pdb.Status.DesiredHealthy, pdb.Status.CurrentHealthy)})
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
pdb.Status.PodDisruptionsAllowed--
|
pdb.Status.DisruptionsAllowed--
|
||||||
// If this is a dry-run, we don't need to go any further than that.
|
// If this is a dry-run, we don't need to go any further than that.
|
||||||
if dryRun == true {
|
if dryRun == true {
|
||||||
return nil
|
return nil
|
||||||
|
@ -54,7 +54,7 @@ func TestEviction(t *testing.T) {
|
|||||||
pdbs: []runtime.Object{&policyv1beta1.PodDisruptionBudget{
|
pdbs: []runtime.Object{&policyv1beta1.PodDisruptionBudget{
|
||||||
ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "default"},
|
ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "default"},
|
||||||
Spec: policyv1beta1.PodDisruptionBudgetSpec{Selector: &metav1.LabelSelector{MatchLabels: map[string]string{"a": "true"}}},
|
Spec: policyv1beta1.PodDisruptionBudgetSpec{Selector: &metav1.LabelSelector{MatchLabels: map[string]string{"a": "true"}}},
|
||||||
Status: policyv1beta1.PodDisruptionBudgetStatus{PodDisruptionsAllowed: 0},
|
Status: policyv1beta1.PodDisruptionBudgetStatus{DisruptionsAllowed: 0},
|
||||||
}},
|
}},
|
||||||
eviction: &policy.Eviction{ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "default"}, DeleteOptions: metav1.NewDeleteOptions(0)},
|
eviction: &policy.Eviction{ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "default"}, DeleteOptions: metav1.NewDeleteOptions(0)},
|
||||||
expectError: true,
|
expectError: true,
|
||||||
@ -64,7 +64,7 @@ func TestEviction(t *testing.T) {
|
|||||||
pdbs: []runtime.Object{&policyv1beta1.PodDisruptionBudget{
|
pdbs: []runtime.Object{&policyv1beta1.PodDisruptionBudget{
|
||||||
ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "default"},
|
ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "default"},
|
||||||
Spec: policyv1beta1.PodDisruptionBudgetSpec{Selector: &metav1.LabelSelector{MatchLabels: map[string]string{"a": "true"}}},
|
Spec: policyv1beta1.PodDisruptionBudgetSpec{Selector: &metav1.LabelSelector{MatchLabels: map[string]string{"a": "true"}}},
|
||||||
Status: policyv1beta1.PodDisruptionBudgetStatus{PodDisruptionsAllowed: 1},
|
Status: policyv1beta1.PodDisruptionBudgetStatus{DisruptionsAllowed: 1},
|
||||||
}},
|
}},
|
||||||
eviction: &policy.Eviction{ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "default"}, DeleteOptions: metav1.NewDeleteOptions(0)},
|
eviction: &policy.Eviction{ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "default"}, DeleteOptions: metav1.NewDeleteOptions(0)},
|
||||||
expectDeleted: true,
|
expectDeleted: true,
|
||||||
@ -74,7 +74,7 @@ func TestEviction(t *testing.T) {
|
|||||||
pdbs: []runtime.Object{&policyv1beta1.PodDisruptionBudget{
|
pdbs: []runtime.Object{&policyv1beta1.PodDisruptionBudget{
|
||||||
ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "default"},
|
ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "default"},
|
||||||
Spec: policyv1beta1.PodDisruptionBudgetSpec{Selector: &metav1.LabelSelector{MatchLabels: map[string]string{"b": "true"}}},
|
Spec: policyv1beta1.PodDisruptionBudgetSpec{Selector: &metav1.LabelSelector{MatchLabels: map[string]string{"b": "true"}}},
|
||||||
Status: policyv1beta1.PodDisruptionBudgetStatus{PodDisruptionsAllowed: 0},
|
Status: policyv1beta1.PodDisruptionBudgetStatus{DisruptionsAllowed: 0},
|
||||||
}},
|
}},
|
||||||
eviction: &policy.Eviction{ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "default"}, DeleteOptions: metav1.NewDeleteOptions(0)},
|
eviction: &policy.Eviction{ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "default"}, DeleteOptions: metav1.NewDeleteOptions(0)},
|
||||||
expectDeleted: true,
|
expectDeleted: true,
|
||||||
@ -84,7 +84,7 @@ func TestEviction(t *testing.T) {
|
|||||||
pdbs: []runtime.Object{&policyv1beta1.PodDisruptionBudget{
|
pdbs: []runtime.Object{&policyv1beta1.PodDisruptionBudget{
|
||||||
ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "default"},
|
ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "default"},
|
||||||
Spec: policyv1beta1.PodDisruptionBudgetSpec{Selector: &metav1.LabelSelector{MatchLabels: map[string]string{"a": "true"}}},
|
Spec: policyv1beta1.PodDisruptionBudgetSpec{Selector: &metav1.LabelSelector{MatchLabels: map[string]string{"a": "true"}}},
|
||||||
Status: policyv1beta1.PodDisruptionBudgetStatus{PodDisruptionsAllowed: 1},
|
Status: policyv1beta1.PodDisruptionBudgetStatus{DisruptionsAllowed: 1},
|
||||||
}},
|
}},
|
||||||
badNameInURL: true,
|
badNameInURL: true,
|
||||||
eviction: &policy.Eviction{ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "default"}, DeleteOptions: metav1.NewDeleteOptions(0)},
|
eviction: &policy.Eviction{ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "default"}, DeleteOptions: metav1.NewDeleteOptions(0)},
|
||||||
@ -219,7 +219,7 @@ func TestEvictionDryRun(t *testing.T) {
|
|||||||
pdbs: []runtime.Object{&policyv1beta1.PodDisruptionBudget{
|
pdbs: []runtime.Object{&policyv1beta1.PodDisruptionBudget{
|
||||||
ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "default"},
|
ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "default"},
|
||||||
Spec: policyv1beta1.PodDisruptionBudgetSpec{Selector: &metav1.LabelSelector{MatchLabels: map[string]string{"a": "true"}}},
|
Spec: policyv1beta1.PodDisruptionBudgetSpec{Selector: &metav1.LabelSelector{MatchLabels: map[string]string{"a": "true"}}},
|
||||||
Status: policyv1beta1.PodDisruptionBudgetStatus{PodDisruptionsAllowed: 1},
|
Status: policyv1beta1.PodDisruptionBudgetStatus{DisruptionsAllowed: 1},
|
||||||
}},
|
}},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -54,10 +54,10 @@ func TestPodDisruptionBudgetStrategy(t *testing.T) {
|
|||||||
ObjectMeta: metav1.ObjectMeta{Name: pdb.Name, Namespace: pdb.Namespace},
|
ObjectMeta: metav1.ObjectMeta{Name: pdb.Name, Namespace: pdb.Namespace},
|
||||||
Spec: pdb.Spec,
|
Spec: pdb.Spec,
|
||||||
Status: policy.PodDisruptionBudgetStatus{
|
Status: policy.PodDisruptionBudgetStatus{
|
||||||
PodDisruptionsAllowed: 1,
|
DisruptionsAllowed: 1,
|
||||||
CurrentHealthy: 3,
|
CurrentHealthy: 3,
|
||||||
DesiredHealthy: 3,
|
DesiredHealthy: 3,
|
||||||
ExpectedPods: 3,
|
ExpectedPods: 3,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -117,10 +117,10 @@ func TestPodDisruptionBudgetStatusStrategy(t *testing.T) {
|
|||||||
MinAvailable: &oldMinAvailable,
|
MinAvailable: &oldMinAvailable,
|
||||||
},
|
},
|
||||||
Status: policy.PodDisruptionBudgetStatus{
|
Status: policy.PodDisruptionBudgetStatus{
|
||||||
PodDisruptionsAllowed: 1,
|
DisruptionsAllowed: 1,
|
||||||
CurrentHealthy: 3,
|
CurrentHealthy: 3,
|
||||||
DesiredHealthy: 3,
|
DesiredHealthy: 3,
|
||||||
ExpectedPods: 3,
|
ExpectedPods: 3,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
newPdb := &policy.PodDisruptionBudget{
|
newPdb := &policy.PodDisruptionBudget{
|
||||||
@ -130,10 +130,10 @@ func TestPodDisruptionBudgetStatusStrategy(t *testing.T) {
|
|||||||
MinAvailable: &newMinAvailable,
|
MinAvailable: &newMinAvailable,
|
||||||
},
|
},
|
||||||
Status: policy.PodDisruptionBudgetStatus{
|
Status: policy.PodDisruptionBudgetStatus{
|
||||||
PodDisruptionsAllowed: 0,
|
DisruptionsAllowed: 0,
|
||||||
CurrentHealthy: 2,
|
CurrentHealthy: 2,
|
||||||
DesiredHealthy: 3,
|
DesiredHealthy: 3,
|
||||||
ExpectedPods: 3,
|
ExpectedPods: 3,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
StatusStrategy.PrepareForUpdate(ctx, newPdb, oldPdb)
|
StatusStrategy.PrepareForUpdate(ctx, newPdb, oldPdb)
|
||||||
|
@ -1061,7 +1061,7 @@ func filterPodsWithPDBViolation(pods []*v1.Pod, pdbs []*policy.PodDisruptionBudg
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
// We have found a matching PDB.
|
// We have found a matching PDB.
|
||||||
if pdb.Status.PodDisruptionsAllowed <= 0 {
|
if pdb.Status.DisruptionsAllowed <= 0 {
|
||||||
pdbForPodIsViolated = true
|
pdbForPodIsViolated = true
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
242
staging/src/k8s.io/api/policy/v1beta1/generated.pb.go
generated
242
staging/src/k8s.io/api/policy/v1beta1/generated.pb.go
generated
@ -609,125 +609,125 @@ func init() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var fileDescriptor_014060e454a820dc = []byte{
|
var fileDescriptor_014060e454a820dc = []byte{
|
||||||
// 1883 bytes of a gzipped FileDescriptorProto
|
// 1878 bytes of a gzipped FileDescriptorProto
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x58, 0xdd, 0x6e, 0x1b, 0xc7,
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x58, 0xdd, 0x6e, 0x1b, 0xc7,
|
||||||
0x15, 0xd6, 0x9a, 0xfa, 0xa1, 0x46, 0x3f, 0x16, 0x47, 0x3f, 0x5e, 0x2b, 0x35, 0xd7, 0xd9, 0x00,
|
0x15, 0xd6, 0x9a, 0xfa, 0xa1, 0x46, 0x3f, 0x16, 0x47, 0x3f, 0x5e, 0x2b, 0x0d, 0xd7, 0xd9, 0x00,
|
||||||
0x85, 0x9b, 0x26, 0xcb, 0x58, 0x76, 0x5c, 0xa3, 0x69, 0x8b, 0x68, 0x45, 0xc9, 0x56, 0x60, 0x59,
|
0x85, 0x9b, 0x26, 0xcb, 0x58, 0x76, 0x5c, 0xa3, 0x69, 0x8b, 0x68, 0x45, 0xc9, 0x56, 0x60, 0x59,
|
||||||
0xec, 0xd0, 0x0e, 0xda, 0xc2, 0x2d, 0x3a, 0xe4, 0x8e, 0xa8, 0x8d, 0x96, 0xbb, 0xdb, 0x99, 0x59,
|
0xec, 0xd0, 0x0e, 0xda, 0xc2, 0x2d, 0x3a, 0xe4, 0x8e, 0xa8, 0x8d, 0x96, 0xbb, 0xdb, 0x99, 0x59,
|
||||||
0x46, 0xbc, 0xeb, 0x45, 0x2f, 0x7a, 0xd9, 0x17, 0x08, 0xfa, 0x00, 0x45, 0xaf, 0xfa, 0x12, 0x0e,
|
0x46, 0xbc, 0xeb, 0x45, 0x2f, 0x7a, 0xd9, 0x17, 0x08, 0xfa, 0x00, 0x45, 0xaf, 0xfa, 0x12, 0x0e,
|
||||||
0x50, 0x04, 0xb9, 0x0c, 0x7a, 0x41, 0xd4, 0x2c, 0xfa, 0x12, 0xbe, 0x0a, 0x76, 0x38, 0xbb, 0xe4,
|
0x50, 0x04, 0xb9, 0x0c, 0x7a, 0x41, 0xd4, 0xec, 0x5b, 0xf8, 0xaa, 0xd8, 0xe1, 0xec, 0x92, 0xfb,
|
||||||
0xfe, 0x91, 0x76, 0x00, 0xfb, 0x8e, 0x3b, 0xe7, 0xfb, 0xbe, 0x33, 0x73, 0xe6, 0xcc, 0x99, 0xc3,
|
0x47, 0x5a, 0x01, 0xec, 0x3b, 0xee, 0x9c, 0xef, 0xfb, 0xce, 0xcc, 0x99, 0x33, 0x67, 0x0e, 0x07,
|
||||||
0x01, 0xe6, 0xc5, 0x7d, 0x66, 0xd8, 0x5e, 0xed, 0x22, 0x68, 0x11, 0xea, 0x12, 0x4e, 0x58, 0xad,
|
0x98, 0x17, 0x0f, 0x98, 0x61, 0x7b, 0xb5, 0x8b, 0xa0, 0x45, 0xa8, 0x4b, 0x38, 0x61, 0xb5, 0x1e,
|
||||||
0x47, 0x5c, 0xcb, 0xa3, 0x35, 0x69, 0xc0, 0xbe, 0x5d, 0xf3, 0x3d, 0xc7, 0x6e, 0xf7, 0x6b, 0xbd,
|
0x71, 0x2d, 0x8f, 0xd6, 0xa4, 0x01, 0xfb, 0x76, 0xcd, 0xf7, 0x1c, 0xbb, 0xdd, 0xaf, 0xf5, 0xee,
|
||||||
0xdb, 0x2d, 0xc2, 0xf1, 0xed, 0x5a, 0x87, 0xb8, 0x84, 0x62, 0x4e, 0x2c, 0xc3, 0xa7, 0x1e, 0xf7,
|
0xb4, 0x08, 0xc7, 0x77, 0x6a, 0x1d, 0xe2, 0x12, 0x8a, 0x39, 0xb1, 0x0c, 0x9f, 0x7a, 0xdc, 0x83,
|
||||||
0xe0, 0xf5, 0x11, 0xd4, 0xc0, 0xbe, 0x6d, 0x8c, 0xa0, 0x86, 0x84, 0xee, 0x7e, 0xd8, 0xb1, 0xf9,
|
0x37, 0x47, 0x50, 0x03, 0xfb, 0xb6, 0x31, 0x82, 0x1a, 0x12, 0xba, 0xfb, 0x51, 0xc7, 0xe6, 0xe7,
|
||||||
0x79, 0xd0, 0x32, 0xda, 0x5e, 0xb7, 0xd6, 0xf1, 0x3a, 0x5e, 0x4d, 0x30, 0x5a, 0xc1, 0x99, 0xf8,
|
0x41, 0xcb, 0x68, 0x7b, 0xdd, 0x5a, 0xc7, 0xeb, 0x78, 0x35, 0xc1, 0x68, 0x05, 0x67, 0xe2, 0x4b,
|
||||||
0x12, 0x1f, 0xe2, 0xd7, 0x48, 0x69, 0x57, 0x9f, 0x70, 0xda, 0xf6, 0x28, 0xa9, 0xf5, 0x32, 0xde,
|
0x7c, 0x88, 0x5f, 0x23, 0xa5, 0x5d, 0x7d, 0xc2, 0x69, 0xdb, 0xa3, 0xa4, 0xd6, 0xcb, 0x78, 0xdb,
|
||||||
0x76, 0xef, 0x8e, 0x31, 0x5d, 0xdc, 0x3e, 0xb7, 0x5d, 0x42, 0xfb, 0x35, 0xff, 0xa2, 0x13, 0x0e,
|
0xbd, 0x37, 0xc6, 0x74, 0x71, 0xfb, 0xdc, 0x76, 0x09, 0xed, 0xd7, 0xfc, 0x8b, 0x4e, 0x38, 0xc0,
|
||||||
0xb0, 0x5a, 0x97, 0x70, 0x9c, 0xc7, 0xaa, 0x15, 0xb1, 0x68, 0xe0, 0x72, 0xbb, 0x4b, 0x32, 0x84,
|
0x6a, 0x5d, 0xc2, 0x71, 0x1e, 0xab, 0x56, 0xc4, 0xa2, 0x81, 0xcb, 0xed, 0x2e, 0xc9, 0x10, 0xee,
|
||||||
0x7b, 0xb3, 0x08, 0xac, 0x7d, 0x4e, 0xba, 0x38, 0xc3, 0xbb, 0x53, 0xc4, 0x0b, 0xb8, 0xed, 0xd4,
|
0xcf, 0x22, 0xb0, 0xf6, 0x39, 0xe9, 0xe2, 0x0c, 0xef, 0x6e, 0x11, 0x2f, 0xe0, 0xb6, 0x53, 0xb3,
|
||||||
0x6c, 0x97, 0x33, 0x4e, 0xd3, 0x24, 0xfd, 0x2e, 0xd8, 0xd8, 0x77, 0x1c, 0xef, 0x4b, 0x62, 0x1d,
|
0x5d, 0xce, 0x38, 0x4d, 0x93, 0xf4, 0x7b, 0x60, 0x63, 0xdf, 0x71, 0xbc, 0xaf, 0x88, 0x75, 0xd0,
|
||||||
0x34, 0x8f, 0xeb, 0xd4, 0xee, 0x11, 0x0a, 0x6f, 0x82, 0x79, 0x17, 0x77, 0x89, 0xaa, 0xdc, 0x54,
|
0x3c, 0xae, 0x53, 0xbb, 0x47, 0x28, 0xbc, 0x05, 0xe6, 0x5d, 0xdc, 0x25, 0xaa, 0x72, 0x4b, 0xb9,
|
||||||
0x6e, 0x2d, 0x9b, 0xab, 0xcf, 0x07, 0xda, 0xdc, 0x70, 0xa0, 0xcd, 0x3f, 0xc6, 0x5d, 0x82, 0x84,
|
0xbd, 0x6c, 0xae, 0xbe, 0x18, 0x68, 0x73, 0xc3, 0x81, 0x36, 0xff, 0x04, 0x77, 0x09, 0x12, 0x16,
|
||||||
0x45, 0xff, 0x04, 0x54, 0x24, 0xeb, 0xc8, 0x21, 0x97, 0x9f, 0x7b, 0x4e, 0xd0, 0x25, 0xf0, 0xc7,
|
0xfd, 0x53, 0x50, 0x91, 0xac, 0x23, 0x87, 0x5c, 0x7e, 0xe1, 0x39, 0x41, 0x97, 0xc0, 0x1f, 0x83,
|
||||||
0x60, 0xd1, 0x12, 0x02, 0x92, 0xb8, 0x2e, 0x89, 0x8b, 0x23, 0x59, 0x24, 0xad, 0x3a, 0x03, 0x57,
|
0x45, 0x4b, 0x08, 0x48, 0xe2, 0xba, 0x24, 0x2e, 0x8e, 0x64, 0x91, 0xb4, 0xea, 0x0c, 0x5c, 0x97,
|
||||||
0x25, 0xf9, 0xa1, 0xc7, 0x78, 0x03, 0xf3, 0x73, 0xb8, 0x07, 0x80, 0x8f, 0xf9, 0x79, 0x83, 0x92,
|
0xe4, 0x47, 0x1e, 0xe3, 0x0d, 0xcc, 0xcf, 0xe1, 0x1e, 0x00, 0x3e, 0xe6, 0xe7, 0x0d, 0x4a, 0xce,
|
||||||
0x33, 0xfb, 0x52, 0xd2, 0xa1, 0xa4, 0x83, 0x46, 0x6c, 0x41, 0x13, 0x28, 0xf8, 0x01, 0x28, 0x53,
|
0xec, 0x4b, 0x49, 0x87, 0x92, 0x0e, 0x1a, 0xb1, 0x05, 0x4d, 0xa0, 0xe0, 0x87, 0xa0, 0x4c, 0x09,
|
||||||
0x82, 0xad, 0x53, 0xd7, 0xe9, 0xab, 0x57, 0x6e, 0x2a, 0xb7, 0xca, 0xe6, 0x86, 0x64, 0x94, 0x91,
|
0xb6, 0x4e, 0x5d, 0xa7, 0xaf, 0x5e, 0xbb, 0xa5, 0xdc, 0x2e, 0x9b, 0x1b, 0x92, 0x51, 0x46, 0x72,
|
||||||
0x1c, 0x47, 0x31, 0x42, 0xff, 0x8f, 0x02, 0xca, 0x87, 0x3d, 0xbb, 0xcd, 0x6d, 0xcf, 0x85, 0x7f,
|
0x1c, 0xc5, 0x08, 0xfd, 0x3f, 0x0a, 0x28, 0x1f, 0xf6, 0xec, 0x36, 0xb7, 0x3d, 0x17, 0xfe, 0x11,
|
||||||
0x04, 0xe5, 0x70, 0xb7, 0x2c, 0xcc, 0xb1, 0x70, 0xb6, 0xb2, 0xf7, 0x91, 0x31, 0xce, 0xa4, 0x38,
|
0x94, 0xc3, 0xdd, 0xb2, 0x30, 0xc7, 0xc2, 0xd9, 0xca, 0xde, 0xc7, 0xc6, 0x38, 0x93, 0xe2, 0xe0,
|
||||||
0x78, 0x86, 0x7f, 0xd1, 0x09, 0x07, 0x98, 0x11, 0xa2, 0x8d, 0xde, 0x6d, 0xe3, 0xb4, 0xf5, 0x05,
|
0x19, 0xfe, 0x45, 0x27, 0x1c, 0x60, 0x46, 0x88, 0x36, 0x7a, 0x77, 0x8c, 0xd3, 0xd6, 0x97, 0xa4,
|
||||||
0x69, 0xf3, 0x13, 0xc2, 0xf1, 0x78, 0x7a, 0xe3, 0x31, 0x14, 0xab, 0x42, 0x07, 0xac, 0x59, 0xc4,
|
0xcd, 0x4f, 0x08, 0xc7, 0xe3, 0xe9, 0x8d, 0xc7, 0x50, 0xac, 0x0a, 0x1d, 0xb0, 0x66, 0x11, 0x87,
|
||||||
0x21, 0x9c, 0x9c, 0xfa, 0xa1, 0x47, 0x26, 0x66, 0xb8, 0xb2, 0x77, 0xe7, 0xd5, 0xdc, 0xd4, 0x27,
|
0x70, 0x72, 0xea, 0x87, 0x1e, 0x99, 0x98, 0xe1, 0xca, 0xde, 0xdd, 0xd7, 0x73, 0x53, 0x9f, 0xa4,
|
||||||
0xa9, 0x66, 0x65, 0x38, 0xd0, 0xd6, 0x12, 0x43, 0x28, 0x29, 0xae, 0x7f, 0xa5, 0x80, 0x9d, 0xa3,
|
0x9a, 0x95, 0xe1, 0x40, 0x5b, 0x4b, 0x0c, 0xa1, 0xa4, 0xb8, 0xfe, 0xb5, 0x02, 0x76, 0x8e, 0x9a,
|
||||||
0xe6, 0x03, 0xea, 0x05, 0x7e, 0x93, 0x87, 0xbb, 0xdb, 0xe9, 0x4b, 0x13, 0xfc, 0x19, 0x98, 0xa7,
|
0x0f, 0xa9, 0x17, 0xf8, 0x4d, 0x1e, 0xee, 0x6e, 0xa7, 0x2f, 0x4d, 0xf0, 0x67, 0x60, 0x9e, 0x06,
|
||||||
0x81, 0x13, 0xed, 0xe5, 0x7b, 0xd1, 0x5e, 0xa2, 0xc0, 0x21, 0x2f, 0x07, 0xda, 0x66, 0x8a, 0xf5,
|
0x4e, 0xb4, 0x97, 0xef, 0x47, 0x7b, 0x89, 0x02, 0x87, 0xbc, 0x1a, 0x68, 0x9b, 0x29, 0xd6, 0xd3,
|
||||||
0xa4, 0xef, 0x13, 0x24, 0x08, 0xf0, 0x33, 0xb0, 0x48, 0xb1, 0xdb, 0x21, 0xe1, 0xd4, 0x4b, 0xb7,
|
0xbe, 0x4f, 0x90, 0x20, 0xc0, 0xcf, 0xc1, 0x22, 0xc5, 0x6e, 0x87, 0x84, 0x53, 0x2f, 0xdd, 0x5e,
|
||||||
0x56, 0xf6, 0x74, 0xa3, 0xf0, 0xac, 0x19, 0xc7, 0x75, 0x14, 0x42, 0xc7, 0x3b, 0x2e, 0x3e, 0x19,
|
0xd9, 0xd3, 0x8d, 0xc2, 0xb3, 0x66, 0x1c, 0xd7, 0x51, 0x08, 0x1d, 0xef, 0xb8, 0xf8, 0x64, 0x48,
|
||||||
0x92, 0x0a, 0xfa, 0x09, 0x58, 0x13, 0x5b, 0xed, 0x51, 0x2e, 0x2c, 0xf0, 0x06, 0x28, 0x75, 0x6d,
|
0x2a, 0xe8, 0x27, 0x60, 0x4d, 0x6c, 0xb5, 0x47, 0xb9, 0xb0, 0xc0, 0x77, 0x41, 0xa9, 0x6b, 0xbb,
|
||||||
0x57, 0x4c, 0x6a, 0xc1, 0x5c, 0x91, 0xac, 0xd2, 0x89, 0xed, 0xa2, 0x70, 0x5c, 0x98, 0xf1, 0xa5,
|
0x62, 0x52, 0x0b, 0xe6, 0x8a, 0x64, 0x95, 0x4e, 0x6c, 0x17, 0x85, 0xe3, 0xc2, 0x8c, 0x2f, 0x45,
|
||||||
0x88, 0xd9, 0xa4, 0x19, 0x5f, 0xa2, 0x70, 0x5c, 0x7f, 0x00, 0x96, 0xa4, 0xc7, 0x49, 0xa1, 0xd2,
|
0xcc, 0x26, 0xcd, 0xf8, 0x12, 0x85, 0xe3, 0xfa, 0x43, 0xb0, 0x24, 0x3d, 0x4e, 0x0a, 0x95, 0xa6,
|
||||||
0x74, 0xa1, 0x52, 0x8e, 0xd0, 0x3f, 0xae, 0x80, 0xcd, 0x86, 0x67, 0xd5, 0x6d, 0x46, 0x03, 0x11,
|
0x0b, 0x95, 0x72, 0x84, 0xfe, 0x71, 0x0d, 0x6c, 0x36, 0x3c, 0xab, 0x6e, 0x33, 0x1a, 0x88, 0x78,
|
||||||
0x2f, 0x33, 0xb0, 0x3a, 0x84, 0xbf, 0x85, 0xfc, 0x78, 0x02, 0xe6, 0x99, 0x4f, 0xda, 0x32, 0x2d,
|
0x99, 0x81, 0xd5, 0x21, 0xfc, 0x2d, 0xe4, 0xc7, 0x53, 0x30, 0xcf, 0x7c, 0xd2, 0x96, 0x69, 0xb1,
|
||||||
0xf6, 0xa6, 0xc4, 0x36, 0x67, 0x7e, 0x4d, 0x9f, 0xb4, 0xc7, 0xc7, 0x32, 0xfc, 0x42, 0x42, 0x0d,
|
0x37, 0x25, 0xb6, 0x39, 0xf3, 0x6b, 0xfa, 0xa4, 0x3d, 0x3e, 0x96, 0xe1, 0x17, 0x12, 0x6a, 0xf0,
|
||||||
0x3e, 0x03, 0x8b, 0x8c, 0x63, 0x1e, 0x30, 0xb5, 0x24, 0x74, 0xef, 0xbe, 0xa6, 0xae, 0xe0, 0x8e,
|
0x39, 0x58, 0x64, 0x1c, 0xf3, 0x80, 0xa9, 0x25, 0xa1, 0x7b, 0xef, 0x8a, 0xba, 0x82, 0x3b, 0xde,
|
||||||
0x77, 0x71, 0xf4, 0x8d, 0xa4, 0xa6, 0xfe, 0x6f, 0x05, 0x5c, 0xcb, 0x61, 0x3d, 0xb2, 0x19, 0x87,
|
0xc5, 0xd1, 0x37, 0x92, 0x9a, 0xfa, 0xbf, 0x15, 0x70, 0x23, 0x87, 0xf5, 0xd8, 0x66, 0x1c, 0x3e,
|
||||||
0xcf, 0x32, 0x11, 0x33, 0x5e, 0x2d, 0x62, 0x21, 0x5b, 0xc4, 0x2b, 0x3e, 0xbc, 0xd1, 0xc8, 0x44,
|
0xcf, 0x44, 0xcc, 0x78, 0xbd, 0x88, 0x85, 0x6c, 0x11, 0xaf, 0xf8, 0xf0, 0x46, 0x23, 0x13, 0xd1,
|
||||||
0xb4, 0x9a, 0x60, 0xc1, 0xe6, 0xa4, 0x1b, 0xa5, 0xa2, 0xf1, 0x7a, 0xcb, 0x32, 0xd7, 0xa4, 0xf4,
|
0x6a, 0x82, 0x05, 0x9b, 0x93, 0x6e, 0x94, 0x8a, 0xc6, 0xd5, 0x96, 0x65, 0xae, 0x49, 0xe9, 0x85,
|
||||||
0xc2, 0x71, 0x28, 0x82, 0x46, 0x5a, 0xfa, 0x37, 0x57, 0x72, 0x97, 0x13, 0x86, 0x13, 0x9e, 0x81,
|
0xe3, 0x50, 0x04, 0x8d, 0xb4, 0xf4, 0x6f, 0xaf, 0xe5, 0x2e, 0x27, 0x0c, 0x27, 0x3c, 0x03, 0xab,
|
||||||
0xd5, 0xae, 0xed, 0xee, 0xf7, 0xb0, 0xed, 0xe0, 0x96, 0x3c, 0x3d, 0xd3, 0x92, 0x20, 0xac, 0xb0,
|
0x5d, 0xdb, 0xdd, 0xef, 0x61, 0xdb, 0xc1, 0x2d, 0x79, 0x7a, 0xa6, 0x25, 0x41, 0x58, 0x61, 0x8d,
|
||||||
0xc6, 0xa8, 0xc2, 0x1a, 0xc7, 0x2e, 0x3f, 0xa5, 0x4d, 0x4e, 0x6d, 0xb7, 0x63, 0x6e, 0x0c, 0x07,
|
0x51, 0x85, 0x35, 0x8e, 0x5d, 0x7e, 0x4a, 0x9b, 0x9c, 0xda, 0x6e, 0xc7, 0xdc, 0x18, 0x0e, 0xb4,
|
||||||
0xda, 0xea, 0xc9, 0x84, 0x12, 0x4a, 0xe8, 0xc2, 0xdf, 0x83, 0x32, 0x23, 0x0e, 0x69, 0x73, 0x8f,
|
0xd5, 0x93, 0x09, 0x25, 0x94, 0xd0, 0x85, 0xbf, 0x07, 0x65, 0x46, 0x1c, 0xd2, 0xe6, 0x1e, 0xbd,
|
||||||
0xbe, 0x5e, 0x85, 0x78, 0x84, 0x5b, 0xc4, 0x69, 0x4a, 0xaa, 0xb9, 0x1a, 0xc6, 0x2d, 0xfa, 0x42,
|
0x5a, 0x85, 0x78, 0x8c, 0x5b, 0xc4, 0x69, 0x4a, 0xaa, 0xb9, 0x1a, 0xc6, 0x2d, 0xfa, 0x42, 0xb1,
|
||||||
0xb1, 0x24, 0x74, 0xc0, 0x7a, 0x17, 0x5f, 0x3e, 0x75, 0x71, 0xbc, 0x90, 0xd2, 0x0f, 0x5c, 0x08,
|
0x24, 0x74, 0xc0, 0x7a, 0x17, 0x5f, 0x3e, 0x73, 0x71, 0xbc, 0x90, 0xd2, 0x0f, 0x5c, 0x08, 0x1c,
|
||||||
0x1c, 0x0e, 0xb4, 0xf5, 0x93, 0x84, 0x16, 0x4a, 0x69, 0xeb, 0xff, 0x9f, 0x07, 0xd7, 0x0b, 0xb3,
|
0x0e, 0xb4, 0xf5, 0x93, 0x84, 0x16, 0x4a, 0x69, 0xeb, 0xc3, 0x79, 0x70, 0xb3, 0x30, 0xab, 0xe0,
|
||||||
0x0a, 0x7e, 0x06, 0xa0, 0xd7, 0x62, 0x84, 0xf6, 0x88, 0xf5, 0x60, 0x74, 0x07, 0xd9, 0x5e, 0x74,
|
0xe7, 0x00, 0x7a, 0x2d, 0x46, 0x68, 0x8f, 0x58, 0x0f, 0x47, 0x77, 0x90, 0xed, 0x45, 0x07, 0x77,
|
||||||
0x70, 0x77, 0xe5, 0x06, 0xc1, 0xd3, 0x0c, 0x02, 0xe5, 0xb0, 0xe0, 0x5f, 0x14, 0xb0, 0x66, 0x8d,
|
0x57, 0x6e, 0x10, 0x3c, 0xcd, 0x20, 0x50, 0x0e, 0x0b, 0xfe, 0x45, 0x01, 0x6b, 0xd6, 0xc8, 0x0d,
|
||||||
0xdc, 0x10, 0xab, 0xe1, 0x59, 0x51, 0x62, 0x3c, 0xf8, 0x21, 0xf9, 0x6e, 0xd4, 0x27, 0x95, 0x0e,
|
0xb1, 0x1a, 0x9e, 0x15, 0x25, 0xc6, 0xc3, 0x1f, 0x92, 0xef, 0x46, 0x7d, 0x52, 0xe9, 0xd0, 0xe5,
|
||||||
0x5d, 0x4e, 0xfb, 0xe6, 0xb6, 0x9c, 0xd0, 0x5a, 0xc2, 0x86, 0x92, 0x4e, 0xe1, 0x09, 0x80, 0x56,
|
0xb4, 0x6f, 0x6e, 0xcb, 0x09, 0xad, 0x25, 0x6c, 0x28, 0xe9, 0x34, 0x5c, 0x92, 0x15, 0x4b, 0x32,
|
||||||
0x2c, 0xc9, 0xe4, 0x9d, 0x26, 0x42, 0xbc, 0x60, 0xde, 0x90, 0x0a, 0xdb, 0x09, 0xbf, 0x11, 0x08,
|
0x79, 0xa7, 0x89, 0x10, 0x2f, 0x8c, 0x97, 0x54, 0xcf, 0x20, 0x50, 0x0e, 0x0b, 0xfe, 0x0a, 0xac,
|
||||||
0xe5, 0x10, 0xe1, 0xaf, 0xc0, 0x7a, 0x3b, 0xa0, 0x94, 0xb8, 0xfc, 0x21, 0xc1, 0x0e, 0x3f, 0xef,
|
0xb7, 0x03, 0x4a, 0x89, 0xcb, 0x1f, 0x11, 0xec, 0xf0, 0xf3, 0xbe, 0x3a, 0x2f, 0x74, 0x76, 0xa4,
|
||||||
0xab, 0xf3, 0x42, 0x6a, 0x47, 0x4a, 0xad, 0x1f, 0x24, 0xac, 0x28, 0x85, 0x0e, 0xf9, 0x16, 0x61,
|
0xce, 0xfa, 0x41, 0xc2, 0x8a, 0x52, 0xe8, 0x90, 0x6f, 0x11, 0x66, 0x53, 0x62, 0x45, 0xfc, 0x85,
|
||||||
0x36, 0x25, 0x56, 0xc4, 0x5f, 0x48, 0xf2, 0xeb, 0x09, 0x2b, 0x4a, 0xa1, 0xe1, 0x7d, 0xb0, 0x4a,
|
0x24, 0xbf, 0x9e, 0xb0, 0xa2, 0x14, 0x1a, 0x3e, 0x00, 0xab, 0xe4, 0xd2, 0x27, 0xed, 0x28, 0xa0,
|
||||||
0x2e, 0x7d, 0xd2, 0x8e, 0x62, 0xba, 0x28, 0xd8, 0x5b, 0x92, 0xbd, 0x7a, 0x38, 0x61, 0x43, 0x09,
|
0x8b, 0x82, 0xbd, 0x25, 0xd9, 0xab, 0x87, 0x13, 0x36, 0x94, 0x40, 0xee, 0x3a, 0x00, 0x66, 0x23,
|
||||||
0xe4, 0xae, 0x03, 0x60, 0x36, 0x88, 0x70, 0x03, 0x94, 0x2e, 0x48, 0x7f, 0x74, 0xf3, 0xa0, 0xf0,
|
0x08, 0x37, 0x40, 0xe9, 0x82, 0xf4, 0x47, 0xd7, 0x0e, 0x0a, 0x7f, 0xc2, 0xcf, 0xc0, 0x42, 0x0f,
|
||||||
0x27, 0xfc, 0x14, 0x2c, 0xf4, 0xb0, 0x13, 0x10, 0x99, 0xeb, 0xef, 0xbf, 0x5a, 0xae, 0x3f, 0xb1,
|
0x3b, 0x01, 0x91, 0x89, 0xfe, 0xc1, 0xeb, 0x25, 0xfa, 0x53, 0xbb, 0x4b, 0xd0, 0x88, 0xf8, 0xf3,
|
||||||
0xbb, 0x04, 0x8d, 0x88, 0x3f, 0xbf, 0x72, 0x5f, 0xd1, 0xbf, 0x56, 0x40, 0xa5, 0xe1, 0x59, 0x4d,
|
0x6b, 0x0f, 0x14, 0xfd, 0x1b, 0x05, 0x54, 0x1a, 0x9e, 0xd5, 0x24, 0xed, 0x80, 0xda, 0xbc, 0xdf,
|
||||||
0xd2, 0x0e, 0xa8, 0xcd, 0xfb, 0x0d, 0xb1, 0xcf, 0x6f, 0xa1, 0x66, 0xa3, 0x44, 0xcd, 0xfe, 0x68,
|
0x10, 0x9b, 0xfc, 0x16, 0x0a, 0x36, 0x4a, 0x14, 0xec, 0x8f, 0xa7, 0x27, 0x5a, 0x72, 0x76, 0x45,
|
||||||
0x7a, 0xae, 0x25, 0x67, 0x57, 0x54, 0xb1, 0xf5, 0xe7, 0x0a, 0xd8, 0xce, 0xa0, 0xdf, 0x42, 0x45,
|
0xe5, 0x5a, 0x7f, 0xa1, 0x80, 0xed, 0x0c, 0xfa, 0x2d, 0x94, 0xd3, 0x5f, 0x27, 0xcb, 0xe9, 0x87,
|
||||||
0xfd, 0x75, 0xb2, 0xa2, 0x7e, 0xf0, 0x3a, 0x8b, 0x29, 0xa8, 0xa7, 0x5f, 0x57, 0x72, 0x96, 0x22,
|
0x57, 0x59, 0x4c, 0x41, 0x31, 0xfd, 0xa6, 0x92, 0xb3, 0x14, 0x51, 0x4a, 0xc3, 0xd6, 0x8e, 0xda,
|
||||||
0xaa, 0x69, 0xd8, 0xdd, 0x51, 0xbb, 0x67, 0x3b, 0xa4, 0x43, 0x2c, 0xb1, 0x98, 0xf2, 0x44, 0x77,
|
0x3d, 0xdb, 0x21, 0x1d, 0x62, 0x89, 0xc5, 0x94, 0x27, 0x5a, 0xbb, 0xd8, 0x82, 0x26, 0x50, 0x90,
|
||||||
0x17, 0x5b, 0xd0, 0x04, 0x0a, 0x32, 0xb0, 0x63, 0x91, 0x33, 0x1c, 0x38, 0x7c, 0xdf, 0xb2, 0x0e,
|
0x81, 0x1d, 0x8b, 0x9c, 0xe1, 0xc0, 0xe1, 0xfb, 0x96, 0x75, 0x80, 0x7d, 0xdc, 0xb2, 0x1d, 0x9b,
|
||||||
0xb0, 0x8f, 0x5b, 0xb6, 0x63, 0x73, 0x5b, 0xb6, 0x23, 0xcb, 0xe6, 0x27, 0xc3, 0x81, 0xb6, 0x53,
|
0xdb, 0xb2, 0x17, 0x59, 0x36, 0x3f, 0x1d, 0x0e, 0xb4, 0x9d, 0x7a, 0x2e, 0xe2, 0xd5, 0x40, 0x7b,
|
||||||
0xcf, 0x45, 0xbc, 0x1c, 0x68, 0x37, 0xb2, 0xdd, 0xbc, 0x11, 0x43, 0xfa, 0xa8, 0x40, 0x1a, 0xf6,
|
0x37, 0xdb, 0xca, 0x1b, 0x31, 0xa4, 0x8f, 0x0a, 0xa4, 0x61, 0x1f, 0xa8, 0x94, 0xfc, 0x29, 0x08,
|
||||||
0x81, 0x4a, 0xc9, 0x9f, 0x82, 0xf0, 0x50, 0xd4, 0xa9, 0xe7, 0x27, 0xdc, 0x96, 0x84, 0xdb, 0x5f,
|
0x0f, 0x45, 0x9d, 0x7a, 0x7e, 0xc2, 0x6d, 0x49, 0xb8, 0xfd, 0xe5, 0x70, 0xa0, 0xa9, 0xa8, 0x00,
|
||||||
0x0e, 0x07, 0x9a, 0x8a, 0x0a, 0x30, 0xb3, 0x1d, 0x17, 0xca, 0xc3, 0x2f, 0xc0, 0x26, 0x96, 0x7d,
|
0x33, 0xdb, 0x71, 0xa1, 0x3c, 0xfc, 0x12, 0x6c, 0x62, 0xd9, 0x84, 0x4f, 0x7a, 0x9d, 0x17, 0x5e,
|
||||||
0xf8, 0xa4, 0xd7, 0x79, 0xe1, 0xf5, 0xfe, 0x70, 0xa0, 0x6d, 0xee, 0x67, 0xcd, 0xb3, 0x1d, 0xe6,
|
0x1f, 0x0c, 0x07, 0xda, 0xe6, 0x7e, 0xd6, 0x3c, 0xdb, 0x61, 0x9e, 0x28, 0xac, 0x81, 0xa5, 0x9e,
|
||||||
0x89, 0xc2, 0x1a, 0x58, 0xea, 0x89, 0x96, 0x9d, 0xa9, 0x0b, 0x42, 0x7f, 0x7b, 0x38, 0xd0, 0x96,
|
0xe8, 0xd7, 0x99, 0xba, 0x20, 0xf4, 0xb7, 0x87, 0x03, 0x6d, 0x69, 0xd4, 0xc2, 0x87, 0x9a, 0x8b,
|
||||||
0x46, 0x5d, 0x7c, 0xa8, 0xb9, 0x78, 0xd4, 0x14, 0x8d, 0x60, 0x84, 0x82, 0x1f, 0x83, 0x95, 0x73,
|
0x47, 0x4d, 0xd1, 0x05, 0x46, 0x28, 0xf8, 0x09, 0x58, 0x39, 0xf7, 0x18, 0x7f, 0x42, 0xf8, 0x57,
|
||||||
0x8f, 0xf1, 0xc7, 0x84, 0x7f, 0xe9, 0xd1, 0x0b, 0x51, 0x18, 0xca, 0xe6, 0xa6, 0xdc, 0xc1, 0x95,
|
0x1e, 0xbd, 0x10, 0x85, 0xa1, 0x6c, 0x6e, 0xca, 0x1d, 0x5c, 0x79, 0x34, 0x36, 0xa1, 0x49, 0x1c,
|
||||||
0x87, 0x63, 0x13, 0x9a, 0xc4, 0xc1, 0xdf, 0x82, 0xe5, 0x73, 0xd9, 0xf6, 0x31, 0x75, 0x49, 0x24,
|
0xfc, 0x2d, 0x58, 0x3e, 0x97, 0x3d, 0x1f, 0x53, 0x97, 0x44, 0xa2, 0xdd, 0x9e, 0x92, 0x68, 0x89,
|
||||||
0xda, 0xad, 0x29, 0x89, 0x96, 0x68, 0x11, 0xcd, 0x8a, 0x94, 0x5f, 0x8e, 0x86, 0x19, 0x1a, 0xab,
|
0xfe, 0xd0, 0xac, 0x48, 0xf9, 0xe5, 0x68, 0x98, 0xa1, 0xb1, 0x1a, 0xfc, 0x09, 0x58, 0x12, 0x1f,
|
||||||
0xc1, 0x9f, 0x80, 0x25, 0xf1, 0x71, 0x5c, 0x57, 0xcb, 0x62, 0x36, 0x57, 0x25, 0x7c, 0xe9, 0xe1,
|
0xc7, 0x75, 0xb5, 0x2c, 0x66, 0x73, 0x5d, 0xc2, 0x97, 0x1e, 0x8d, 0x86, 0x51, 0x64, 0x8f, 0xa0,
|
||||||
0x68, 0x18, 0x45, 0xf6, 0x08, 0x7a, 0xdc, 0x38, 0x50, 0x97, 0xb3, 0xd0, 0xe3, 0xc6, 0x01, 0x8a,
|
0xc7, 0x8d, 0x03, 0x75, 0x39, 0x0b, 0x3d, 0x6e, 0x1c, 0xa0, 0xc8, 0x0e, 0x9f, 0x83, 0x25, 0x46,
|
||||||
0xec, 0xf0, 0x19, 0x58, 0x62, 0xe4, 0x91, 0xed, 0x06, 0x97, 0x2a, 0x10, 0x47, 0xee, 0xf6, 0x94,
|
0x1e, 0xdb, 0x6e, 0x70, 0xa9, 0x02, 0x71, 0xe4, 0xee, 0x4c, 0x99, 0x6e, 0xf3, 0x50, 0x20, 0x53,
|
||||||
0xe9, 0x36, 0x0f, 0x05, 0x32, 0xd5, 0x70, 0x8f, 0xd5, 0xa5, 0x1d, 0x45, 0x92, 0xd0, 0x02, 0xcb,
|
0xdd, 0xf6, 0x58, 0x5d, 0xda, 0x51, 0x24, 0x09, 0x2d, 0xb0, 0x4c, 0x03, 0x77, 0x9f, 0x3d, 0x63,
|
||||||
0x34, 0x70, 0xf7, 0xd9, 0x53, 0x46, 0xa8, 0xba, 0x92, 0xb9, 0xed, 0xd3, 0xfa, 0x28, 0xc2, 0xa6,
|
0x84, 0xaa, 0x2b, 0x99, 0xab, 0x3e, 0xad, 0x8f, 0x22, 0x6c, 0xda, 0x43, 0x1c, 0x99, 0x18, 0x81,
|
||||||
0x3d, 0xc4, 0x91, 0x89, 0x11, 0x68, 0x2c, 0x0c, 0x2d, 0x00, 0xc4, 0x87, 0xe8, 0xeb, 0xd5, 0x9d,
|
0xc6, 0xc2, 0xd0, 0x02, 0x40, 0x7c, 0x88, 0xa6, 0x5e, 0xdd, 0x99, 0xd9, 0x04, 0xa2, 0x18, 0x9c,
|
||||||
0x99, 0x7d, 0x20, 0x8a, 0xc1, 0x69, 0x3f, 0xeb, 0xe1, 0xf1, 0x1c, 0x9b, 0xd1, 0x84, 0x2e, 0xfc,
|
0xf6, 0xb3, 0x1e, 0x1e, 0xcf, 0xb1, 0x19, 0x4d, 0xe8, 0xc2, 0xbf, 0x2a, 0x00, 0xb2, 0xc0, 0xf7,
|
||||||
0xab, 0x02, 0x20, 0x0b, 0x7c, 0xdf, 0x21, 0x5d, 0xe2, 0x72, 0xec, 0x88, 0x51, 0xa6, 0xae, 0x0a,
|
0x1d, 0xd2, 0x25, 0x2e, 0xc7, 0x8e, 0x18, 0x65, 0xea, 0xaa, 0x70, 0xf7, 0x8b, 0x69, 0x51, 0xcb,
|
||||||
0x77, 0xbf, 0x98, 0x16, 0xb5, 0x0c, 0x29, 0xed, 0x36, 0x6e, 0x06, 0xb2, 0x50, 0x94, 0xe3, 0x33,
|
0x90, 0xd2, 0x6e, 0xe3, 0x6b, 0x33, 0x0b, 0x45, 0x39, 0x3e, 0xc3, 0x4d, 0x3b, 0x93, 0xab, 0x5d,
|
||||||
0xdc, 0xb4, 0x33, 0xb9, 0xda, 0xb5, 0x99, 0x9b, 0x96, 0xff, 0x2f, 0x69, 0xbc, 0x69, 0xd2, 0x8e,
|
0x9b, 0xb9, 0x69, 0xf9, 0x7f, 0x91, 0xc6, 0x9b, 0x26, 0xed, 0x28, 0x92, 0x84, 0x5f, 0x80, 0x9d,
|
||||||
0x22, 0x49, 0xf8, 0x39, 0xd8, 0x89, 0xfe, 0x43, 0x22, 0xcf, 0xe3, 0x47, 0xb6, 0x43, 0x58, 0x9f,
|
0xe8, 0x0f, 0x24, 0xf2, 0x3c, 0x7e, 0x64, 0x3b, 0x84, 0xf5, 0x19, 0x27, 0x5d, 0x75, 0x5d, 0x24,
|
||||||
0x71, 0xd2, 0x55, 0xd7, 0x45, 0x32, 0x55, 0x25, 0x73, 0x07, 0xe5, 0xa2, 0x50, 0x01, 0x1b, 0x76,
|
0x53, 0x55, 0x32, 0x77, 0x50, 0x2e, 0x0a, 0x15, 0xb0, 0x61, 0x17, 0x68, 0x51, 0x11, 0x0a, 0x4f,
|
||||||
0x81, 0x16, 0x15, 0xa1, 0xf0, 0x84, 0xc6, 0x55, 0xf0, 0x90, 0xb5, 0xb1, 0x33, 0xea, 0x8d, 0xae,
|
0x68, 0x5c, 0x05, 0x0f, 0x59, 0x1b, 0x3b, 0xa3, 0xc6, 0xe8, 0xba, 0x70, 0xf0, 0xfe, 0x70, 0xa0,
|
||||||
0x0a, 0x07, 0xef, 0x0d, 0x07, 0x9a, 0x56, 0x9f, 0x0e, 0x45, 0xb3, 0xb4, 0xe0, 0x6f, 0x80, 0x8a,
|
0x69, 0xf5, 0xe9, 0x50, 0x34, 0x4b, 0x0b, 0xfe, 0x06, 0xa8, 0xb8, 0xc8, 0xcf, 0x86, 0xf0, 0xf3,
|
||||||
0x8b, 0xfc, 0x6c, 0x08, 0x3f, 0x3f, 0x0a, 0x2b, 0x5b, 0xa1, 0x83, 0x42, 0x36, 0xf4, 0xc1, 0x06,
|
0xa3, 0xb0, 0xb2, 0x15, 0x3a, 0x28, 0x64, 0x43, 0x1f, 0x6c, 0xe0, 0xe4, 0x5f, 0x79, 0xa6, 0x56,
|
||||||
0x4e, 0xfe, 0x9b, 0x67, 0x6a, 0x45, 0x9c, 0xf5, 0xf7, 0xa7, 0xec, 0x43, 0xea, 0x01, 0xc0, 0x54,
|
0xc4, 0x59, 0xff, 0x60, 0xca, 0x3e, 0xa4, 0xfe, 0xfd, 0x9b, 0xaa, 0x0c, 0xe3, 0x46, 0xca, 0xc0,
|
||||||
0x65, 0x18, 0x37, 0x52, 0x06, 0x86, 0x32, 0xea, 0xf0, 0x12, 0x40, 0x9c, 0x7e, 0x7c, 0x60, 0x2a,
|
0x50, 0x46, 0x1d, 0x5e, 0x02, 0x88, 0xd3, 0x2f, 0x0f, 0x4c, 0x85, 0x33, 0x2f, 0xb2, 0xcc, 0x73,
|
||||||
0x9c, 0x79, 0x91, 0x65, 0x5e, 0x2c, 0xc6, 0xa9, 0x96, 0x31, 0x31, 0x94, 0xe3, 0x03, 0x72, 0x50,
|
0xc5, 0x38, 0xd5, 0x32, 0x26, 0x86, 0x72, 0x7c, 0x40, 0x0e, 0x2a, 0x38, 0xf5, 0x52, 0xc2, 0xd4,
|
||||||
0xc1, 0xa9, 0xc7, 0x12, 0xa6, 0x5e, 0x13, 0x8e, 0x7f, 0x3a, 0xdb, 0x71, 0xcc, 0x31, 0xaf, 0x4b,
|
0x1b, 0xc2, 0xf1, 0x4f, 0x67, 0x3b, 0x8e, 0x39, 0xe6, 0x4d, 0xe9, 0xb7, 0x92, 0xb6, 0x30, 0x94,
|
||||||
0xbf, 0x95, 0xb4, 0x85, 0xa1, 0xac, 0x03, 0xf8, 0x08, 0x6c, 0xc9, 0xc1, 0xa7, 0x2e, 0xc3, 0x67,
|
0x75, 0x00, 0x1f, 0x83, 0x2d, 0x39, 0xf8, 0xcc, 0x65, 0xf8, 0x8c, 0x34, 0xfb, 0xac, 0xcd, 0x1d,
|
||||||
0xa4, 0xd9, 0x67, 0x6d, 0xee, 0x30, 0x75, 0x53, 0xd4, 0x6e, 0x75, 0x38, 0xd0, 0xb6, 0xf6, 0x73,
|
0xa6, 0x6e, 0x8a, 0xda, 0xad, 0x0e, 0x07, 0xda, 0xd6, 0x7e, 0x8e, 0x1d, 0xe5, 0xb2, 0xe0, 0x67,
|
||||||
0xec, 0x28, 0x97, 0x05, 0x3f, 0x05, 0x1b, 0x67, 0x1e, 0x6d, 0xd9, 0x96, 0x45, 0xdc, 0x48, 0x69,
|
0x60, 0xe3, 0xcc, 0xa3, 0x2d, 0xdb, 0xb2, 0x88, 0x1b, 0x29, 0x6d, 0x09, 0xa5, 0xad, 0x30, 0xfe,
|
||||||
0x4b, 0x28, 0x6d, 0x85, 0xf1, 0x3f, 0x4a, 0xd9, 0x50, 0x06, 0x0d, 0x19, 0xd8, 0x96, 0xca, 0x0d,
|
0x47, 0x29, 0x1b, 0xca, 0xa0, 0x21, 0x03, 0xdb, 0x52, 0xb9, 0x41, 0xbd, 0xf6, 0x89, 0x17, 0xb8,
|
||||||
0xea, 0xb5, 0x4f, 0xbc, 0xc0, 0xe5, 0xe1, 0x75, 0xc1, 0xd4, 0xed, 0xf8, 0x8a, 0xdc, 0xde, 0xcf,
|
0x3c, 0xbc, 0x2e, 0x98, 0xba, 0x1d, 0x5f, 0x91, 0xdb, 0xfb, 0x79, 0x80, 0x57, 0x03, 0xed, 0x56,
|
||||||
0x03, 0xbc, 0x1c, 0x68, 0x37, 0x73, 0xae, 0xab, 0x04, 0x08, 0xe5, 0x6b, 0x43, 0x07, 0xac, 0xca,
|
0xce, 0x75, 0x95, 0x00, 0xa1, 0x7c, 0x6d, 0xe8, 0x80, 0x55, 0xf9, 0xf6, 0x75, 0xe0, 0x60, 0xc6,
|
||||||
0xe7, 0xaf, 0x03, 0x07, 0x33, 0xa6, 0xaa, 0xe2, 0xa8, 0xdf, 0x9b, 0x5e, 0xd8, 0x62, 0x78, 0xfa,
|
0x54, 0x55, 0x1c, 0xf5, 0xfb, 0xd3, 0x0b, 0x5b, 0x0c, 0x4f, 0x9f, 0x77, 0xf1, 0xa7, 0x6c, 0x12,
|
||||||
0xbc, 0x8b, 0xff, 0x65, 0x93, 0x00, 0x94, 0x50, 0xd7, 0xff, 0xae, 0x80, 0xeb, 0x85, 0x85, 0x11,
|
0x80, 0x12, 0xea, 0xfa, 0xdf, 0x15, 0x70, 0xb3, 0xb0, 0x30, 0xc2, 0xfb, 0x89, 0x07, 0x15, 0x3d,
|
||||||
0xde, 0x4b, 0xbc, 0xa9, 0xe8, 0xa9, 0x37, 0x15, 0x98, 0x25, 0xbe, 0x81, 0x27, 0x95, 0xaf, 0x14,
|
0xf5, 0xa0, 0x02, 0xb3, 0xc4, 0x37, 0xf0, 0x9e, 0xf2, 0xb5, 0x02, 0xd4, 0xa2, 0x1b, 0x02, 0x7e,
|
||||||
0xa0, 0x16, 0xdd, 0x10, 0xf0, 0xe3, 0xc4, 0x04, 0xdf, 0x4d, 0x4d, 0xb0, 0x92, 0xe1, 0xbd, 0x81,
|
0x92, 0x98, 0xe0, 0x7b, 0xa9, 0x09, 0x56, 0x32, 0xbc, 0x37, 0x30, 0xbf, 0x6f, 0x15, 0xf0, 0xce,
|
||||||
0xf9, 0x7d, 0xa3, 0x80, 0x77, 0xa6, 0xec, 0x40, 0x5c, 0x90, 0x88, 0x35, 0x89, 0x7a, 0x8c, 0xc3,
|
0x94, 0x1d, 0x88, 0x0b, 0x12, 0xb1, 0x26, 0x51, 0x4f, 0x70, 0x78, 0x94, 0x15, 0x91, 0x47, 0xe3,
|
||||||
0xa3, 0xac, 0x88, 0x3c, 0x1a, 0x17, 0xa4, 0x1c, 0x0c, 0x2a, 0x64, 0xc3, 0xa7, 0xe0, 0x9a, 0xac,
|
0x82, 0x94, 0x83, 0x41, 0x85, 0x6c, 0xf8, 0x0c, 0xdc, 0x90, 0xd5, 0x30, 0x6d, 0x13, 0x9d, 0xfb,
|
||||||
0x86, 0x69, 0x9b, 0xe8, 0xdc, 0x97, 0xcd, 0x77, 0x86, 0x03, 0xed, 0x5a, 0x3d, 0x1f, 0x82, 0x8a,
|
0xb2, 0xf9, 0xce, 0x70, 0xa0, 0xdd, 0xa8, 0xe7, 0x43, 0x50, 0x11, 0x57, 0xff, 0xa7, 0x02, 0x76,
|
||||||
0xb8, 0xfa, 0x3f, 0x15, 0xb0, 0x93, 0x7f, 0xe5, 0xc3, 0x3b, 0x89, 0x70, 0x6b, 0xa9, 0x70, 0x5f,
|
0xf2, 0xaf, 0x7c, 0x78, 0x37, 0x11, 0x6e, 0x2d, 0x15, 0xee, 0xeb, 0x29, 0x96, 0x0c, 0xf6, 0x1f,
|
||||||
0x4d, 0xb1, 0x64, 0xb0, 0xff, 0x00, 0xd6, 0x65, 0x63, 0x90, 0x7c, 0x22, 0x4c, 0x04, 0x3d, 0x3c,
|
0xc0, 0xba, 0x6c, 0x0c, 0x92, 0xef, 0x83, 0x89, 0xa0, 0x87, 0x47, 0x24, 0xec, 0xe9, 0xa5, 0x44,
|
||||||
0x22, 0x61, 0x4f, 0x2f, 0x25, 0xa2, 0xf4, 0x15, 0xff, 0xc6, 0x93, 0x63, 0x28, 0xa5, 0xa6, 0xff,
|
0x94, 0xbe, 0xe2, 0xaf, 0x78, 0x72, 0x0c, 0xa5, 0xd4, 0xf4, 0x7f, 0x29, 0xe0, 0xbd, 0x99, 0x97,
|
||||||
0x4b, 0x01, 0xef, 0xce, 0xbc, 0x6c, 0xa1, 0x99, 0x98, 0xba, 0x91, 0x9a, 0x7a, 0xb5, 0x58, 0xe0,
|
0x2d, 0x34, 0x13, 0x53, 0x37, 0x52, 0x53, 0xaf, 0x16, 0x0b, 0xbc, 0x99, 0x67, 0x42, 0xf3, 0xa3,
|
||||||
0xcd, 0xbc, 0x14, 0x9a, 0x1f, 0x3e, 0x7f, 0x51, 0x9d, 0xfb, 0xf6, 0x45, 0x75, 0xee, 0xbb, 0x17,
|
0x17, 0x2f, 0xab, 0x73, 0xdf, 0xbd, 0xac, 0xce, 0x7d, 0xff, 0xb2, 0x3a, 0xf7, 0xe7, 0x61, 0x55,
|
||||||
0xd5, 0xb9, 0x3f, 0x0f, 0xab, 0xca, 0xf3, 0x61, 0x55, 0xf9, 0x76, 0x58, 0x55, 0xbe, 0x1b, 0x56,
|
0x79, 0x31, 0xac, 0x2a, 0xdf, 0x0d, 0xab, 0xca, 0xf7, 0xc3, 0xaa, 0xf2, 0xdf, 0x61, 0x55, 0xf9,
|
||||||
0x95, 0xff, 0x0e, 0xab, 0xca, 0xdf, 0xfe, 0x57, 0x9d, 0xfb, 0xdd, 0x92, 0x94, 0xfb, 0x3e, 0x00,
|
0xdb, 0xff, 0xaa, 0x73, 0xbf, 0x5b, 0x92, 0x72, 0xff, 0x0f, 0x00, 0x00, 0xff, 0xff, 0x5d, 0xe0,
|
||||||
0x00, 0xff, 0xff, 0x48, 0x23, 0x7b, 0x0e, 0x44, 0x18, 0x00, 0x00,
|
0x55, 0x1c, 0x41, 0x18, 0x00, 0x00,
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *AllowedCSIDriver) Marshal() (dAtA []byte, err error) {
|
func (m *AllowedCSIDriver) Marshal() (dAtA []byte, err error) {
|
||||||
@ -1155,7 +1155,7 @@ func (m *PodDisruptionBudgetStatus) MarshalToSizedBuffer(dAtA []byte) (int, erro
|
|||||||
i = encodeVarintGenerated(dAtA, i, uint64(m.CurrentHealthy))
|
i = encodeVarintGenerated(dAtA, i, uint64(m.CurrentHealthy))
|
||||||
i--
|
i--
|
||||||
dAtA[i] = 0x20
|
dAtA[i] = 0x20
|
||||||
i = encodeVarintGenerated(dAtA, i, uint64(m.PodDisruptionsAllowed))
|
i = encodeVarintGenerated(dAtA, i, uint64(m.DisruptionsAllowed))
|
||||||
i--
|
i--
|
||||||
dAtA[i] = 0x18
|
dAtA[i] = 0x18
|
||||||
if len(m.DisruptedPods) > 0 {
|
if len(m.DisruptedPods) > 0 {
|
||||||
@ -1940,7 +1940,7 @@ func (m *PodDisruptionBudgetStatus) Size() (n int) {
|
|||||||
n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))
|
n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
n += 1 + sovGenerated(uint64(m.PodDisruptionsAllowed))
|
n += 1 + sovGenerated(uint64(m.DisruptionsAllowed))
|
||||||
n += 1 + sovGenerated(uint64(m.CurrentHealthy))
|
n += 1 + sovGenerated(uint64(m.CurrentHealthy))
|
||||||
n += 1 + sovGenerated(uint64(m.DesiredHealthy))
|
n += 1 + sovGenerated(uint64(m.DesiredHealthy))
|
||||||
n += 1 + sovGenerated(uint64(m.ExpectedPods))
|
n += 1 + sovGenerated(uint64(m.ExpectedPods))
|
||||||
@ -2307,7 +2307,7 @@ func (this *PodDisruptionBudgetStatus) String() string {
|
|||||||
s := strings.Join([]string{`&PodDisruptionBudgetStatus{`,
|
s := strings.Join([]string{`&PodDisruptionBudgetStatus{`,
|
||||||
`ObservedGeneration:` + fmt.Sprintf("%v", this.ObservedGeneration) + `,`,
|
`ObservedGeneration:` + fmt.Sprintf("%v", this.ObservedGeneration) + `,`,
|
||||||
`DisruptedPods:` + mapStringForDisruptedPods + `,`,
|
`DisruptedPods:` + mapStringForDisruptedPods + `,`,
|
||||||
`PodDisruptionsAllowed:` + fmt.Sprintf("%v", this.PodDisruptionsAllowed) + `,`,
|
`DisruptionsAllowed:` + fmt.Sprintf("%v", this.DisruptionsAllowed) + `,`,
|
||||||
`CurrentHealthy:` + fmt.Sprintf("%v", this.CurrentHealthy) + `,`,
|
`CurrentHealthy:` + fmt.Sprintf("%v", this.CurrentHealthy) + `,`,
|
||||||
`DesiredHealthy:` + fmt.Sprintf("%v", this.DesiredHealthy) + `,`,
|
`DesiredHealthy:` + fmt.Sprintf("%v", this.DesiredHealthy) + `,`,
|
||||||
`ExpectedPods:` + fmt.Sprintf("%v", this.ExpectedPods) + `,`,
|
`ExpectedPods:` + fmt.Sprintf("%v", this.ExpectedPods) + `,`,
|
||||||
@ -3783,9 +3783,9 @@ func (m *PodDisruptionBudgetStatus) Unmarshal(dAtA []byte) error {
|
|||||||
iNdEx = postIndex
|
iNdEx = postIndex
|
||||||
case 3:
|
case 3:
|
||||||
if wireType != 0 {
|
if wireType != 0 {
|
||||||
return fmt.Errorf("proto: wrong wireType = %d for field PodDisruptionsAllowed", wireType)
|
return fmt.Errorf("proto: wrong wireType = %d for field DisruptionsAllowed", wireType)
|
||||||
}
|
}
|
||||||
m.PodDisruptionsAllowed = 0
|
m.DisruptionsAllowed = 0
|
||||||
for shift := uint(0); ; shift += 7 {
|
for shift := uint(0); ; shift += 7 {
|
||||||
if shift >= 64 {
|
if shift >= 64 {
|
||||||
return ErrIntOverflowGenerated
|
return ErrIntOverflowGenerated
|
||||||
@ -3795,7 +3795,7 @@ func (m *PodDisruptionBudgetStatus) Unmarshal(dAtA []byte) error {
|
|||||||
}
|
}
|
||||||
b := dAtA[iNdEx]
|
b := dAtA[iNdEx]
|
||||||
iNdEx++
|
iNdEx++
|
||||||
m.PodDisruptionsAllowed |= int32(b&0x7F) << shift
|
m.DisruptionsAllowed |= int32(b&0x7F) << shift
|
||||||
if b < 0x80 {
|
if b < 0x80 {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
@ -150,7 +150,7 @@ message PodDisruptionBudgetSpec {
|
|||||||
// PodDisruptionBudgetStatus represents information about the status of a
|
// PodDisruptionBudgetStatus represents information about the status of a
|
||||||
// PodDisruptionBudget. Status may trail the actual state of a system.
|
// PodDisruptionBudget. Status may trail the actual state of a system.
|
||||||
message PodDisruptionBudgetStatus {
|
message PodDisruptionBudgetStatus {
|
||||||
// Most recent generation observed when updating this PDB status. PodDisruptionsAllowed and other
|
// 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.
|
// status information is valid only if observedGeneration equals to PDB's object generation.
|
||||||
// +optional
|
// +optional
|
||||||
optional int64 observedGeneration = 1;
|
optional int64 observedGeneration = 1;
|
||||||
|
@ -47,7 +47,7 @@ type PodDisruptionBudgetSpec struct {
|
|||||||
// PodDisruptionBudgetStatus represents information about the status of a
|
// PodDisruptionBudgetStatus represents information about the status of a
|
||||||
// PodDisruptionBudget. Status may trail the actual state of a system.
|
// PodDisruptionBudget. Status may trail the actual state of a system.
|
||||||
type PodDisruptionBudgetStatus struct {
|
type PodDisruptionBudgetStatus struct {
|
||||||
// Most recent generation observed when updating this PDB status. PodDisruptionsAllowed and other
|
// 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.
|
// status information is valid only if observedGeneration equals to PDB's object generation.
|
||||||
// +optional
|
// +optional
|
||||||
ObservedGeneration int64 `json:"observedGeneration,omitempty" protobuf:"varint,1,opt,name=observedGeneration"`
|
ObservedGeneration int64 `json:"observedGeneration,omitempty" protobuf:"varint,1,opt,name=observedGeneration"`
|
||||||
@ -67,7 +67,7 @@ type PodDisruptionBudgetStatus struct {
|
|||||||
DisruptedPods map[string]metav1.Time `json:"disruptedPods,omitempty" protobuf:"bytes,2,rep,name=disruptedPods"`
|
DisruptedPods map[string]metav1.Time `json:"disruptedPods,omitempty" protobuf:"bytes,2,rep,name=disruptedPods"`
|
||||||
|
|
||||||
// Number of pod disruptions that are currently allowed.
|
// Number of pod disruptions that are currently allowed.
|
||||||
PodDisruptionsAllowed int32 `json:"disruptionsAllowed" protobuf:"varint,3,opt,name=disruptionsAllowed"`
|
DisruptionsAllowed int32 `json:"disruptionsAllowed" protobuf:"varint,3,opt,name=disruptionsAllowed"`
|
||||||
|
|
||||||
// current number of healthy pods
|
// current number of healthy pods
|
||||||
CurrentHealthy int32 `json:"currentHealthy" protobuf:"varint,4,opt,name=currentHealthy"`
|
CurrentHealthy int32 `json:"currentHealthy" protobuf:"varint,4,opt,name=currentHealthy"`
|
||||||
|
@ -126,7 +126,7 @@ func (PodDisruptionBudgetSpec) SwaggerDoc() map[string]string {
|
|||||||
|
|
||||||
var map_PodDisruptionBudgetStatus = map[string]string{
|
var map_PodDisruptionBudgetStatus = map[string]string{
|
||||||
"": "PodDisruptionBudgetStatus represents information about the status of a PodDisruptionBudget. Status may trail the actual state of a system.",
|
"": "PodDisruptionBudgetStatus represents information about the status of a PodDisruptionBudget. Status may trail the actual state of a system.",
|
||||||
"observedGeneration": "Most recent generation observed when updating this PDB status. PodDisruptionsAllowed and other status information is valid only if observedGeneration equals to PDB's object generation.",
|
"observedGeneration": "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.",
|
||||||
"disruptedPods": "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": "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.",
|
||||||
"disruptionsAllowed": "Number of pod disruptions that are currently allowed.",
|
"disruptionsAllowed": "Number of pod disruptions that are currently allowed.",
|
||||||
"currentHealthy": "current number of healthy pods",
|
"currentHealthy": "current number of healthy pods",
|
||||||
|
@ -3981,7 +3981,7 @@ func describePodDisruptionBudget(pdb *policyv1beta1.PodDisruptionBudget, events
|
|||||||
w.Write(LEVEL_0, "Selector:\t<unset>\n")
|
w.Write(LEVEL_0, "Selector:\t<unset>\n")
|
||||||
}
|
}
|
||||||
w.Write(LEVEL_0, "Status:\n")
|
w.Write(LEVEL_0, "Status:\n")
|
||||||
w.Write(LEVEL_2, "Allowed disruptions:\t%d\n", pdb.Status.PodDisruptionsAllowed)
|
w.Write(LEVEL_2, "Allowed disruptions:\t%d\n", pdb.Status.DisruptionsAllowed)
|
||||||
w.Write(LEVEL_2, "Current:\t%d\n", pdb.Status.CurrentHealthy)
|
w.Write(LEVEL_2, "Current:\t%d\n", pdb.Status.CurrentHealthy)
|
||||||
w.Write(LEVEL_2, "Desired:\t%d\n", pdb.Status.DesiredHealthy)
|
w.Write(LEVEL_2, "Desired:\t%d\n", pdb.Status.DesiredHealthy)
|
||||||
w.Write(LEVEL_2, "Total:\t%d\n", pdb.Status.ExpectedPods)
|
w.Write(LEVEL_2, "Total:\t%d\n", pdb.Status.ExpectedPods)
|
||||||
|
@ -1753,7 +1753,7 @@ func TestDescribePodDisruptionBudget(t *testing.T) {
|
|||||||
MinAvailable: &minAvailable,
|
MinAvailable: &minAvailable,
|
||||||
},
|
},
|
||||||
Status: policyv1beta1.PodDisruptionBudgetStatus{
|
Status: policyv1beta1.PodDisruptionBudgetStatus{
|
||||||
PodDisruptionsAllowed: 5,
|
DisruptionsAllowed: 5,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
s := PodDisruptionBudgetDescriber{f}
|
s := PodDisruptionBudgetDescriber{f}
|
||||||
|
@ -14413,7 +14413,7 @@
|
|||||||
"type": "integer"
|
"type": "integer"
|
||||||
},
|
},
|
||||||
"observedGeneration": {
|
"observedGeneration": {
|
||||||
"description": "Most recent generation observed when updating this PDB status. PodDisruptionsAllowed and other status information is valid only if observedGeneration equals to PDB's object generation.",
|
"description": "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.",
|
||||||
"format": "int64",
|
"format": "int64",
|
||||||
"type": "integer"
|
"type": "integer"
|
||||||
}
|
}
|
||||||
|
@ -24,7 +24,7 @@ import (
|
|||||||
"github.com/onsi/gomega"
|
"github.com/onsi/gomega"
|
||||||
|
|
||||||
appsv1 "k8s.io/api/apps/v1"
|
appsv1 "k8s.io/api/apps/v1"
|
||||||
"k8s.io/api/core/v1"
|
v1 "k8s.io/api/core/v1"
|
||||||
policyv1beta1 "k8s.io/api/policy/v1beta1"
|
policyv1beta1 "k8s.io/api/policy/v1beta1"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apimachinery/pkg/util/intstr"
|
"k8s.io/apimachinery/pkg/util/intstr"
|
||||||
@ -71,7 +71,7 @@ var _ = SIGDescribe("DisruptionController", func() {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return false, err
|
return false, err
|
||||||
}
|
}
|
||||||
return pdb.Status.PodDisruptionsAllowed > 0, nil
|
return pdb.Status.DisruptionsAllowed > 0, nil
|
||||||
})
|
})
|
||||||
framework.ExpectNoError(err)
|
framework.ExpectNoError(err)
|
||||||
})
|
})
|
||||||
|
@ -702,7 +702,7 @@ func (j *TestJig) waitForPdbReady() error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if pdb.Status.PodDisruptionsAllowed > 0 {
|
if pdb.Status.DisruptionsAllowed > 0 {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -21,7 +21,7 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"k8s.io/api/core/v1"
|
v1 "k8s.io/api/core/v1"
|
||||||
"k8s.io/api/policy/v1beta1"
|
"k8s.io/api/policy/v1beta1"
|
||||||
apiextensionsv1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
|
apiextensionsv1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
|
||||||
apiextensionsclientset "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset"
|
apiextensionsclientset "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset"
|
||||||
@ -170,7 +170,7 @@ func TestPDBWithScaleSubresource(t *testing.T) {
|
|||||||
if expected, found := int32(replicas)-maxUnavailable, newPdb.Status.DesiredHealthy; expected != found {
|
if expected, found := int32(replicas)-maxUnavailable, newPdb.Status.DesiredHealthy; expected != found {
|
||||||
t.Errorf("Expected %d, but found %d", expected, found)
|
t.Errorf("Expected %d, but found %d", expected, found)
|
||||||
}
|
}
|
||||||
if expected, found := maxUnavailable, newPdb.Status.PodDisruptionsAllowed; expected != found {
|
if expected, found := maxUnavailable, newPdb.Status.DisruptionsAllowed; expected != found {
|
||||||
t.Errorf("Expected %d, but found %d", expected, found)
|
t.Errorf("Expected %d, but found %d", expected, found)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user