const DeletionTimeout …
const stalePodDisruptionTimeout …
type updater …
type DisruptionController …
type controllerAndScale …
type podControllerFinder …
func NewDisruptionController(
ctx context.Context,
podInformer coreinformers.PodInformer,
pdbInformer policyinformers.PodDisruptionBudgetInformer,
rcInformer coreinformers.ReplicationControllerInformer,
rsInformer appsv1informers.ReplicaSetInformer,
dInformer appsv1informers.DeploymentInformer,
ssInformer appsv1informers.StatefulSetInformer,
kubeClient clientset.Interface,
restMapper apimeta.RESTMapper,
scaleNamespacer scaleclient.ScalesGetter,
discoveryClient discovery.DiscoveryInterface,
) *DisruptionController { … }
func NewDisruptionControllerInternal(ctx context.Context,
podInformer coreinformers.PodInformer,
pdbInformer policyinformers.PodDisruptionBudgetInformer,
rcInformer coreinformers.ReplicationControllerInformer,
rsInformer appsv1informers.ReplicaSetInformer,
dInformer appsv1informers.DeploymentInformer,
ssInformer appsv1informers.StatefulSetInformer,
kubeClient clientset.Interface,
restMapper apimeta.RESTMapper,
scaleNamespacer scaleclient.ScalesGetter,
discoveryClient discovery.DiscoveryInterface,
clock clock.WithTicker,
stalePodDisruptionTimeout time.Duration,
) *DisruptionController { … }
func (dc *DisruptionController) finders() []podControllerFinder { … }
var controllerKindRS …
var controllerKindSS …
var controllerKindRC …
var controllerKindDep …
func (dc *DisruptionController) getPodReplicaSet(ctx context.Context, controllerRef *metav1.OwnerReference, namespace string) (*controllerAndScale, error) { … }
func (dc *DisruptionController) getPodStatefulSet(ctx context.Context, controllerRef *metav1.OwnerReference, namespace string) (*controllerAndScale, error) { … }
func (dc *DisruptionController) getPodDeployment(ctx context.Context, controllerRef *metav1.OwnerReference, namespace string) (*controllerAndScale, error) { … }
func (dc *DisruptionController) getPodReplicationController(ctx context.Context, controllerRef *metav1.OwnerReference, namespace string) (*controllerAndScale, error) { … }
func (dc *DisruptionController) getScaleController(ctx context.Context, controllerRef *metav1.OwnerReference, namespace string) (*controllerAndScale, error) { … }
func (dc *DisruptionController) implementsScale(gvr schema.GroupVersionResource) (bool, error) { … }
func verifyGroupKind(controllerRef *metav1.OwnerReference, expectedKind string, expectedGroups []string) (bool, error) { … }
func (dc *DisruptionController) Run(ctx context.Context) { … }
func (dc *DisruptionController) addDB(logger klog.Logger, obj interface{ … }
func (dc *DisruptionController) updateDB(logger klog.Logger, old, cur interface{ … }
func (dc *DisruptionController) removeDB(logger klog.Logger, obj interface{ … }
func (dc *DisruptionController) addPod(logger klog.Logger, obj interface{ … }
func (dc *DisruptionController) updatePod(logger klog.Logger, _, cur interface{ … }
func (dc *DisruptionController) deletePod(logger klog.Logger, obj interface{ … }
func (dc *DisruptionController) enqueuePdb(logger klog.Logger, pdb *policy.PodDisruptionBudget) { … }
func (dc *DisruptionController) enqueuePdbForRecheck(logger klog.Logger, pdb *policy.PodDisruptionBudget, delay time.Duration) { … }
func (dc *DisruptionController) enqueueStalePodDisruptionCleanup(logger klog.Logger, pod *v1.Pod, d time.Duration) { … }
func (dc *DisruptionController) getPdbForPod(logger klog.Logger, pod *v1.Pod) *policy.PodDisruptionBudget { … }
func (dc *DisruptionController) getPodsForPdb(pdb *policy.PodDisruptionBudget) ([]*v1.Pod, error) { … }
func (dc *DisruptionController) worker(ctx context.Context) { … }
func (dc *DisruptionController) processNextWorkItem(ctx context.Context) bool { … }
func (dc *DisruptionController) recheckWorker() { … }
func (dc *DisruptionController) processNextRecheckWorkItem() bool { … }
func (dc *DisruptionController) stalePodDisruptionWorker(ctx context.Context) { … }
func (dc *DisruptionController) processNextStalePodDisruptionWorkItem(ctx context.Context) bool { … }
func (dc *DisruptionController) sync(ctx context.Context, key string) error { … }
func (dc *DisruptionController) trySync(ctx context.Context, pdb *policy.PodDisruptionBudget) error { … }
func (dc *DisruptionController) syncStalePodDisruption(ctx context.Context, key string) error { … }
func (dc *DisruptionController) getExpectedPodCount(ctx context.Context, pdb *policy.PodDisruptionBudget, pods []*v1.Pod) (expectedCount, desiredHealthy int32, unmanagedPods []string, err error) { … }
func (dc *DisruptionController) getExpectedScale(ctx context.Context, pdb *policy.PodDisruptionBudget, pods []*v1.Pod) (expectedCount int32, unmanagedPods []string, err error) { … }
func countHealthyPods(pods []*v1.Pod, disruptedPods map[string]metav1.Time, currentTime time.Time) (currentHealthy int32) { … }
func (dc *DisruptionController) buildDisruptedPodMap(logger klog.Logger, pods []*v1.Pod, pdb *policy.PodDisruptionBudget, currentTime time.Time) (map[string]metav1.Time, *time.Time) { … }
func (dc *DisruptionController) failSafe(ctx context.Context, pdb *policy.PodDisruptionBudget, err error) error { … }
func (dc *DisruptionController) updatePdbStatus(ctx context.Context, pdb *policy.PodDisruptionBudget, currentHealthy, desiredHealthy, expectedCount int32,
disruptedPods map[string]metav1.Time) error { … }
func (dc *DisruptionController) writePdbStatus(ctx context.Context, pdb *policy.PodDisruptionBudget) error { … }
func (dc *DisruptionController) nonTerminatingPodHasStaleDisruptionCondition(pod *v1.Pod) (bool, time.Duration) { … }