diff --git a/config/v1alpha1/types.go b/config/v1alpha1/types.go index f99980b..8ee6d64 100644 --- a/config/v1alpha1/types.go +++ b/config/v1alpha1/types.go @@ -114,6 +114,9 @@ type KubeControllerManagerConfiguration struct { // EndpointSliceControllerConfiguration holds configuration for // EndpointSliceController related features. EndpointSliceController EndpointSliceControllerConfiguration + // EndpointSliceMirroringControllerConfiguration holds configuration for + // EndpointSliceMirroringController related features. + EndpointSliceMirroringController EndpointSliceMirroringControllerConfiguration // GarbageCollectorControllerConfiguration holds configuration for // GarbageCollectorController related features. GarbageCollectorController GarbageCollectorControllerConfiguration @@ -319,6 +322,27 @@ type EndpointSliceControllerConfiguration struct { EndpointUpdatesBatchPeriod metav1.Duration } +// EndpointSliceMirroringControllerConfiguration contains elements describing +// EndpointSliceMirroringController. +type EndpointSliceMirroringControllerConfiguration struct { + // mirroringConcurrentServiceEndpointSyncs is the number of service endpoint + // syncing operations that will be done concurrently. Larger number = faster + // endpoint slice updating, but more CPU (and network) load. + MirroringConcurrentServiceEndpointSyncs int32 + + // mirroringMaxEndpointsPerSubset is the maximum number of endpoints that + // will be mirrored to an EndpointSlice for an EndpointSubset. + MirroringMaxEndpointsPerSubset int32 + + // mirroringEndpointUpdatesBatchPeriod can be used to batch EndpointSlice + // updates. All updates triggered by EndpointSlice changes will be delayed + // by up to 'mirroringEndpointUpdatesBatchPeriod'. If other addresses in the + // same Endpoints resource change in that period, they will be batched to a + // single EndpointSlice update. Default 0 value means that each Endpoints + // update triggers an EndpointSlice update. + MirroringEndpointUpdatesBatchPeriod metav1.Duration +} + // GarbageCollectorControllerConfiguration contains elements describing GarbageCollectorController. type GarbageCollectorControllerConfiguration struct { // enables the generic garbage collector. MUST be synced with the diff --git a/config/v1alpha1/zz_generated.deepcopy.go b/config/v1alpha1/zz_generated.deepcopy.go index afbba17..623ed12 100644 --- a/config/v1alpha1/zz_generated.deepcopy.go +++ b/config/v1alpha1/zz_generated.deepcopy.go @@ -157,6 +157,23 @@ func (in *EndpointSliceControllerConfiguration) DeepCopy() *EndpointSliceControl return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EndpointSliceMirroringControllerConfiguration) DeepCopyInto(out *EndpointSliceMirroringControllerConfiguration) { + *out = *in + out.MirroringEndpointUpdatesBatchPeriod = in.MirroringEndpointUpdatesBatchPeriod + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointSliceMirroringControllerConfiguration. +func (in *EndpointSliceMirroringControllerConfiguration) DeepCopy() *EndpointSliceMirroringControllerConfiguration { + if in == nil { + return nil + } + out := new(EndpointSliceMirroringControllerConfiguration) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *GarbageCollectorControllerConfiguration) DeepCopyInto(out *GarbageCollectorControllerConfiguration) { *out = *in @@ -307,6 +324,7 @@ func (in *KubeControllerManagerConfiguration) DeepCopyInto(out *KubeControllerMa out.DeprecatedController = in.DeprecatedController out.EndpointController = in.EndpointController out.EndpointSliceController = in.EndpointSliceController + out.EndpointSliceMirroringController = in.EndpointSliceMirroringController in.GarbageCollectorController.DeepCopyInto(&out.GarbageCollectorController) in.HPAController.DeepCopyInto(&out.HPAController) out.JobController = in.JobController