From 5b49a4ae9f1323407d525f63aca29f602d19ddbe Mon Sep 17 00:00:00 2001 From: Andre Marianiello Date: Tue, 2 Sep 2025 13:47:26 -0400 Subject: [PATCH] client-go/dynamic/fake: Stop ignoring options Kubernetes-commit: c7ddceb8cb4fbe300c1552d5d8a234c1da338c59 --- dynamic/fake/simple.go | 61 +++++++++++++++++++++++------------------- 1 file changed, 33 insertions(+), 28 deletions(-) diff --git a/dynamic/fake/simple.go b/dynamic/fake/simple.go index 43d908051..80bbf557a 100644 --- a/dynamic/fake/simple.go +++ b/dynamic/fake/simple.go @@ -168,7 +168,7 @@ func (c *dynamicResourceClient) Create(ctx context.Context, obj *unstructured.Un switch { case len(c.namespace) == 0 && len(subresources) == 0: uncastRet, err = c.client.Fake. - Invokes(testing.NewRootCreateAction(c.resource, obj), obj) + Invokes(testing.NewRootCreateActionWithOptions(c.resource, obj, opts), obj) case len(c.namespace) == 0 && len(subresources) > 0: var accessor metav1.Object // avoid shadowing err @@ -178,11 +178,11 @@ func (c *dynamicResourceClient) Create(ctx context.Context, obj *unstructured.Un } name := accessor.GetName() uncastRet, err = c.client.Fake. - Invokes(testing.NewRootCreateSubresourceAction(c.resource, name, strings.Join(subresources, "/"), obj), obj) + Invokes(testing.NewRootCreateSubresourceActionWithOptions(c.resource, name, strings.Join(subresources, "/"), obj, opts), obj) case len(c.namespace) > 0 && len(subresources) == 0: uncastRet, err = c.client.Fake. - Invokes(testing.NewCreateAction(c.resource, c.namespace, obj), obj) + Invokes(testing.NewCreateActionWithOptions(c.resource, c.namespace, obj, opts), obj) case len(c.namespace) > 0 && len(subresources) > 0: var accessor metav1.Object // avoid shadowing err @@ -192,7 +192,7 @@ func (c *dynamicResourceClient) Create(ctx context.Context, obj *unstructured.Un } name := accessor.GetName() uncastRet, err = c.client.Fake. - Invokes(testing.NewCreateSubresourceAction(c.resource, name, strings.Join(subresources, "/"), c.namespace, obj), obj) + Invokes(testing.NewCreateSubresourceActionWithOptions(c.resource, name, strings.Join(subresources, "/"), c.namespace, obj, opts), obj) } @@ -216,19 +216,19 @@ func (c *dynamicResourceClient) Update(ctx context.Context, obj *unstructured.Un switch { case len(c.namespace) == 0 && len(subresources) == 0: uncastRet, err = c.client.Fake. - Invokes(testing.NewRootUpdateAction(c.resource, obj), obj) + Invokes(testing.NewRootUpdateActionWithOptions(c.resource, obj, opts), obj) case len(c.namespace) == 0 && len(subresources) > 0: uncastRet, err = c.client.Fake. - Invokes(testing.NewRootUpdateSubresourceAction(c.resource, strings.Join(subresources, "/"), obj), obj) + Invokes(testing.NewRootUpdateSubresourceActionWithOptions(c.resource, strings.Join(subresources, "/"), obj, opts), obj) case len(c.namespace) > 0 && len(subresources) == 0: uncastRet, err = c.client.Fake. - Invokes(testing.NewUpdateAction(c.resource, c.namespace, obj), obj) + Invokes(testing.NewUpdateActionWithOptions(c.resource, c.namespace, obj, opts), obj) case len(c.namespace) > 0 && len(subresources) > 0: uncastRet, err = c.client.Fake. - Invokes(testing.NewUpdateSubresourceAction(c.resource, strings.Join(subresources, "/"), c.namespace, obj), obj) + Invokes(testing.NewUpdateSubresourceActionWithOptions(c.resource, strings.Join(subresources, "/"), c.namespace, obj, opts), obj) } @@ -252,11 +252,11 @@ func (c *dynamicResourceClient) UpdateStatus(ctx context.Context, obj *unstructu switch { case len(c.namespace) == 0: uncastRet, err = c.client.Fake. - Invokes(testing.NewRootUpdateSubresourceAction(c.resource, "status", obj), obj) + Invokes(testing.NewRootUpdateSubresourceActionWithOptions(c.resource, "status", obj, opts), obj) case len(c.namespace) > 0: uncastRet, err = c.client.Fake. - Invokes(testing.NewUpdateSubresourceAction(c.resource, "status", c.namespace, obj), obj) + Invokes(testing.NewUpdateSubresourceActionWithOptions(c.resource, "status", c.namespace, obj, opts), obj) } @@ -301,11 +301,11 @@ func (c *dynamicResourceClient) DeleteCollection(ctx context.Context, opts metav var err error switch { case len(c.namespace) == 0: - action := testing.NewRootDeleteCollectionAction(c.resource, listOptions) + action := testing.NewRootDeleteCollectionActionWithOptions(c.resource, opts, listOptions) _, err = c.client.Fake.Invokes(action, &metav1.Status{Status: "dynamic deletecollection fail"}) case len(c.namespace) > 0: - action := testing.NewDeleteCollectionAction(c.resource, c.namespace, listOptions) + action := testing.NewDeleteCollectionActionWithOptions(c.resource, c.namespace, opts, listOptions) _, err = c.client.Fake.Invokes(action, &metav1.Status{Status: "dynamic deletecollection fail"}) } @@ -319,19 +319,19 @@ func (c *dynamicResourceClient) Get(ctx context.Context, name string, opts metav switch { case len(c.namespace) == 0 && len(subresources) == 0: uncastRet, err = c.client.Fake. - Invokes(testing.NewRootGetAction(c.resource, name), &metav1.Status{Status: "dynamic get fail"}) + Invokes(testing.NewRootGetActionWithOptions(c.resource, name, opts), &metav1.Status{Status: "dynamic get fail"}) case len(c.namespace) == 0 && len(subresources) > 0: uncastRet, err = c.client.Fake. - Invokes(testing.NewRootGetSubresourceAction(c.resource, strings.Join(subresources, "/"), name), &metav1.Status{Status: "dynamic get fail"}) + Invokes(testing.NewRootGetSubresourceActionWithOptions(c.resource, strings.Join(subresources, "/"), name, opts), &metav1.Status{Status: "dynamic get fail"}) case len(c.namespace) > 0 && len(subresources) == 0: uncastRet, err = c.client.Fake. - Invokes(testing.NewGetAction(c.resource, c.namespace, name), &metav1.Status{Status: "dynamic get fail"}) + Invokes(testing.NewGetActionWithOptions(c.resource, c.namespace, name, opts), &metav1.Status{Status: "dynamic get fail"}) case len(c.namespace) > 0 && len(subresources) > 0: uncastRet, err = c.client.Fake. - Invokes(testing.NewGetSubresourceAction(c.resource, c.namespace, strings.Join(subresources, "/"), name), &metav1.Status{Status: "dynamic get fail"}) + Invokes(testing.NewGetSubresourceActionWithOptions(c.resource, c.namespace, strings.Join(subresources, "/"), name, opts), &metav1.Status{Status: "dynamic get fail"}) } if err != nil { @@ -360,11 +360,11 @@ func (c *dynamicResourceClient) List(ctx context.Context, opts metav1.ListOption switch { case len(c.namespace) == 0: obj, err = c.client.Fake. - Invokes(testing.NewRootListAction(c.resource, listForFakeClientGVK, opts), &metav1.Status{Status: "dynamic list fail"}) + Invokes(testing.NewRootListActionWithOptions(c.resource, listForFakeClientGVK, opts), &metav1.Status{Status: "dynamic list fail"}) case len(c.namespace) > 0: obj, err = c.client.Fake. - Invokes(testing.NewListAction(c.resource, listForFakeClientGVK, c.namespace, opts), &metav1.Status{Status: "dynamic list fail"}) + Invokes(testing.NewListActionWithOptions(c.resource, listForFakeClientGVK, c.namespace, opts), &metav1.Status{Status: "dynamic list fail"}) } @@ -409,11 +409,11 @@ func (c *dynamicResourceClient) Watch(ctx context.Context, opts metav1.ListOptio switch { case len(c.namespace) == 0: return c.client.Fake. - InvokesWatch(testing.NewRootWatchAction(c.resource, opts)) + InvokesWatch(testing.NewRootWatchActionWithOptions(c.resource, opts)) case len(c.namespace) > 0: return c.client.Fake. - InvokesWatch(testing.NewWatchAction(c.resource, c.namespace, opts)) + InvokesWatch(testing.NewWatchActionWithOptions(c.resource, c.namespace, opts)) } panic("math broke") @@ -426,19 +426,19 @@ func (c *dynamicResourceClient) Patch(ctx context.Context, name string, pt types switch { case len(c.namespace) == 0 && len(subresources) == 0: uncastRet, err = c.client.Fake. - Invokes(testing.NewRootPatchAction(c.resource, name, pt, data), &metav1.Status{Status: "dynamic patch fail"}) + Invokes(testing.NewRootPatchActionWithOptions(c.resource, name, pt, data, opts), &metav1.Status{Status: "dynamic patch fail"}) case len(c.namespace) == 0 && len(subresources) > 0: uncastRet, err = c.client.Fake. - Invokes(testing.NewRootPatchSubresourceAction(c.resource, name, pt, data, subresources...), &metav1.Status{Status: "dynamic patch fail"}) + Invokes(testing.NewRootPatchSubresourceActionWithOptions(c.resource, name, pt, data, opts, subresources...), &metav1.Status{Status: "dynamic patch fail"}) case len(c.namespace) > 0 && len(subresources) == 0: uncastRet, err = c.client.Fake. - Invokes(testing.NewPatchAction(c.resource, c.namespace, name, pt, data), &metav1.Status{Status: "dynamic patch fail"}) + Invokes(testing.NewPatchActionWithOptions(c.resource, c.namespace, name, pt, data, opts), &metav1.Status{Status: "dynamic patch fail"}) case len(c.namespace) > 0 && len(subresources) > 0: uncastRet, err = c.client.Fake. - Invokes(testing.NewPatchSubresourceAction(c.resource, c.namespace, name, pt, data, subresources...), &metav1.Status{Status: "dynamic patch fail"}) + Invokes(testing.NewPatchSubresourceActionWithOptions(c.resource, c.namespace, name, pt, data, opts, subresources...), &metav1.Status{Status: "dynamic patch fail"}) } @@ -462,23 +462,28 @@ func (c *dynamicResourceClient) Apply(ctx context.Context, name string, obj *uns if err != nil { return nil, err } + patchOptions := metav1.PatchOptions{ + Force: &options.Force, + DryRun: options.DryRun, + FieldManager: options.FieldManager, + } var uncastRet runtime.Object switch { case len(c.namespace) == 0 && len(subresources) == 0: uncastRet, err = c.client.Fake. - Invokes(testing.NewRootPatchAction(c.resource, name, types.ApplyPatchType, outBytes), &metav1.Status{Status: "dynamic patch fail"}) + Invokes(testing.NewRootPatchActionWithOptions(c.resource, name, types.ApplyPatchType, outBytes, patchOptions), &metav1.Status{Status: "dynamic patch fail"}) case len(c.namespace) == 0 && len(subresources) > 0: uncastRet, err = c.client.Fake. - Invokes(testing.NewRootPatchSubresourceAction(c.resource, name, types.ApplyPatchType, outBytes, subresources...), &metav1.Status{Status: "dynamic patch fail"}) + Invokes(testing.NewRootPatchSubresourceActionWithOptions(c.resource, name, types.ApplyPatchType, outBytes, patchOptions, subresources...), &metav1.Status{Status: "dynamic patch fail"}) case len(c.namespace) > 0 && len(subresources) == 0: uncastRet, err = c.client.Fake. - Invokes(testing.NewPatchAction(c.resource, c.namespace, name, types.ApplyPatchType, outBytes), &metav1.Status{Status: "dynamic patch fail"}) + Invokes(testing.NewPatchActionWithOptions(c.resource, c.namespace, name, types.ApplyPatchType, outBytes, patchOptions), &metav1.Status{Status: "dynamic patch fail"}) case len(c.namespace) > 0 && len(subresources) > 0: uncastRet, err = c.client.Fake. - Invokes(testing.NewPatchSubresourceAction(c.resource, c.namespace, name, types.ApplyPatchType, outBytes, subresources...), &metav1.Status{Status: "dynamic patch fail"}) + Invokes(testing.NewPatchSubresourceActionWithOptions(c.resource, c.namespace, name, types.ApplyPatchType, outBytes, patchOptions, subresources...), &metav1.Status{Status: "dynamic patch fail"}) }