func ValidatePodDisruptionBudgetUpdate(pdb, oldPdb *policy.PodDisruptionBudget) field.ErrorList { allErrs := field.ErrorList{} restoreGeneration := pdb.Generation pdb.Generation = oldPdb.Generation if !reflect.DeepEqual(pdb, oldPdb) { allErrs = append(allErrs, field.Forbidden(field.NewPath("spec"), "updates to poddisruptionbudget spec are forbidden.")) } pdb.Generation = restoreGeneration return allErrs }
func autoConvert_v1beta1_PodDisruptionBudget_To_policy_PodDisruptionBudget(in *PodDisruptionBudget, out *policy.PodDisruptionBudget, s conversion.Scope) error { out.ObjectMeta = in.ObjectMeta if err := Convert_v1beta1_PodDisruptionBudgetSpec_To_policy_PodDisruptionBudgetSpec(&in.Spec, &out.Spec, s); err != nil { return err } if err := Convert_v1beta1_PodDisruptionBudgetStatus_To_policy_PodDisruptionBudgetStatus(&in.Status, &out.Status, s); err != nil { return err } return nil }
func (dc *DisruptionController) writePdbStatus(pdb *policy.PodDisruptionBudget) error { pdbClient := dc.kubeClient.Policy().PodDisruptionBudgets(pdb.Namespace) st := pdb.Status var err error for i, pdb := 0, pdb; i < statusUpdateRetries; i, pdb = i+1, refresh(pdbClient, pdb) { pdb.Status = st if _, err = pdbClient.UpdateStatus(pdb); err == nil { break } } return err }