Skip to content

Upgrading sigs.k8s.io/controller-runtime 0.19 to 0.20

Breakingv0.19.7 → v0.20.4Breaking5New13Changed62Fixed16Other5

BreakingUpgrade verdict

5 breaking changes.

  • API warning messages are no longer collapsed into one by default, so you may see repeated warnings.
  • The old Defaulter and Validator webhook types are gone and must be replaced.
  • The SyncPeriod setting is no longer available.
  • Drops GCS support in setup-envtest.
Top 3 of 5 that need code or config changes
Breaking5
Stops deduplicating API warnings by default in logging.
Removes the deprecated Defaulter and Validator webhook interfaces.
DefaulterValidator
Removes the deprecated SyncPeriod option from cluster.
SyncPeriod
Drops GCS support in setup-envtest.
setup-envtest
Stops deleting unknown fields in CustomDefaulter webhooks.
CustomDefaulter

Generated by DepDelta from published Go source. Not mixed with prose notes.

  • changed: method WebhookBuilder.WithDefaulter(admission.CustomDefaulter) *WebhookBuilder → method WebhookBuilder.WithDefaulter(admission.CustomDefaulter, ...admission.DefaulterOption) *WebhookBuilder
  • added: method WebhookBuilder.WithCustomPath(string) *WebhookBuilder
  • added: field Options.NewInformer: func(toolscache.ListerWatcher, runtime.Object, time.Duration, toolscache.Indexers) toolscache.SharedIndexInformer
  • added: func AddIndex(client.Client, runtime.Object, string, client.IndexerFunc) error
  • removed: field Options.SyncPeriod: *time.Duration
  • added: field Controller.UsePriorityQueue: *bool
  • added: func HasOwnerReference([]metav1.OwnerReference, client.Object, *runtime.Scheme) (bool, error)
  • added: field AddOpts.After: time.Duration
  • added: field AddOpts.Priority: int
  • added: field AddOpts.RateLimited: bool
  • added: field Opts.Log: logr.Logger
  • added: field Opts.MetricProvider: workqueue.MetricsProvider
  • added: field Opts.RateLimiter: workqueue.TypedRateLimiter[T]
  • added: func New[T comparable](string, ...Opt[T]) PriorityQueue[T]
  • added: method PriorityQueue.AddWithOpts(AddOpts, ...T)
  • added: method PriorityQueue.GetWithPriority() (T, int, bool)
  • added: type AddOpts: struct
  • added: type Opt: [T comparable] func(*Opts[T])
  • added: type Opts: [T comparable] struct
  • added: type PriorityQueue: [T comparable] interface{workqueue.TypedRateLimitingInterface[T]}
  • added: func ReadCRDFiles(*CRDInstallOptions) error
  • added: const LowPriority
  • added: func WithLowPriorityWhenUnchanged[object client.Object, request comparable](TypedEventHandler[object, request]) TypedEventHandler[object, request]
  • removed: type Defaulter = admission.Defaulter
  • removed: type Validator = admission.Validator
  • removed: func DefaultingWebhookFor(*runtime.Scheme, Defaulter) *Webhook
  • removed: func ValidatingWebhookFor(*runtime.Scheme, Validator) *Webhook
  • removed: method Defaulter.Default()
  • removed: method Validator.ValidateCreate() (Warnings, error)
  • removed: method Validator.ValidateDelete() (Warnings, error)
  • removed: method Validator.ValidateUpdate(runtime.Object) (Warnings, error)
  • removed: type Defaulter: interface{runtime.Object}
  • removed: type Validator: interface{runtime.Object}
  • changed: func WithCustomDefaulter(*runtime.Scheme, runtime.Object, CustomDefaulter) *Webhook → func WithCustomDefaulter(*runtime.Scheme, runtime.Object, CustomDefaulter, ...DefaulterOption) *Webhook
  • added: func DefaulterRemoveUnknownOrOmitableFields(*defaulterOptions)
  • added: type DefaulterOption: func(*defaulterOptions)