const defaultRequestTimeout … // DefaultRetryBackoffWithInitialDelay returns the default backoff parameters for webhook retry from a given initial delay. // Handy for the client that provides a custom initial delay only. func DefaultRetryBackoffWithInitialDelay(initialBackoffDelay time.Duration) wait.Backoff { … } type GenericWebhook … // DefaultShouldRetry is a default implementation for the GenericWebhook ShouldRetry function property. // If the error reason is one of: networking (connection reset) or http (InternalServerError (500), GatewayTimeout (504), TooManyRequests (429)), // or apierrors.SuggestsClientDelay() returns true, then the function advises a retry. // Otherwise it returns false for an immediate fail. func DefaultShouldRetry(err error) bool { … } // NewGenericWebhook creates a new GenericWebhook from the provided rest.Config. func NewGenericWebhook(scheme *runtime.Scheme, codecFactory serializer.CodecFactory, config *rest.Config, groupVersions []schema.GroupVersion, retryBackoff wait.Backoff) (*GenericWebhook, error) { … } // WithExponentialBackoff will retry webhookFn() as specified by the given backoff parameters with exponentially // increasing backoff when it returns an error for which this GenericWebhook's ShouldRetry function returns true, // confirming it to be retriable. If no ShouldRetry has been defined for the webhook, // then the default one is used (DefaultShouldRetry). func (g *GenericWebhook) WithExponentialBackoff(ctx context.Context, webhookFn func() rest.Result) rest.Result { … } // WithExponentialBackoff will retry webhookFn up to 5 times with exponentially increasing backoff when // it returns an error for which shouldRetry returns true, confirming it to be retriable. func WithExponentialBackoff(ctx context.Context, retryBackoff wait.Backoff, webhookFn func() error, shouldRetry func(error) bool) error { … } func LoadKubeconfig(kubeConfigFile string, customDial utilnet.DialFunc) (*rest.Config, error) { … }