Moving to scaleset client for the controller

This commit is contained in:
Nikola Jokic
2026-02-24 20:14:48 +01:00
parent 1d9f626c53
commit d4a29624fa
24 changed files with 2684 additions and 339 deletions

View File

@@ -6,7 +6,7 @@ import (
kclient "sigs.k8s.io/controller-runtime/pkg/client"
)
type object[T kclient.Object] interface {
type kubernetesObject[T kclient.Object] interface {
kclient.Object
DeepCopy() T
}
@@ -15,7 +15,7 @@ type patcher interface {
Patch(ctx context.Context, obj kclient.Object, patch kclient.Patch, opts ...kclient.PatchOption) error
}
func patch[T object[T]](ctx context.Context, client patcher, obj T, update func(obj T)) error {
func patch[T kubernetesObject[T]](ctx context.Context, client patcher, obj T, update func(obj T)) error {
original := obj.DeepCopy()
update(obj)
return client.Patch(ctx, obj, kclient.MergeFrom(original))
@@ -25,7 +25,7 @@ type subResourcePatcher interface {
Patch(ctx context.Context, obj kclient.Object, patch kclient.Patch, opts ...kclient.SubResourcePatchOption) error
}
func patchSubResource[T object[T]](ctx context.Context, client subResourcePatcher, obj T, update func(obj T)) error {
func patchSubResource[T kubernetesObject[T]](ctx context.Context, client subResourcePatcher, obj T, update func(obj T)) error {
original := obj.DeepCopy()
update(obj)
return client.Patch(ctx, obj, kclient.MergeFrom(original))