Files
Minikura/operator/internal/controller/apply.go
T
2026-08-13 02:19:14 +07:00

33 lines
780 B
Go

package controller
import (
"context"
"k8s.io/apimachinery/pkg/runtime"
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/client/apiutil"
v1alpha1 "github.com/YuzuZensai/Minikura/operator/api/v1alpha1"
)
var applyOpts = []client.PatchOption{
client.FieldOwner(v1alpha1.ManagerName),
client.ForceOwnership,
}
func apply(ctx context.Context, c client.Client, owner client.Object, obj client.Object, scheme *runtime.Scheme) error {
if err := setOwner(owner, obj, scheme); err != nil {
return err
}
gvk, err := apiutil.GVKForObject(obj, scheme)
if err != nil {
return err
}
obj.GetObjectKind().SetGroupVersionKind(gvk)
obj.SetManagedFields(nil)
obj.SetResourceVersion("")
return c.Patch(ctx, obj, client.Apply, applyOpts...)
}