mirror of
https://github.com/storytold/irsa-manager.git
synced 2026-10-17 00:23:52 +00:00
secret deletion
This commit is contained in:
@@ -3,11 +3,7 @@ package kubernetes
|
||||
import (
|
||||
"context"
|
||||
|
||||
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
|
||||
"sigs.k8s.io/controller-runtime/pkg/client"
|
||||
"sigs.k8s.io/controller-runtime/pkg/client/apiutil"
|
||||
)
|
||||
|
||||
func NewKubernetesClient(c client.Client, owner Owner) (*KubernetesClient, error) {
|
||||
@@ -22,19 +18,10 @@ func (h KubernetesClient) Apply(ctx context.Context, obj client.Object) error {
|
||||
client.ForceOwnership,
|
||||
client.FieldOwner(h.owner.Field),
|
||||
}
|
||||
gvk, err := apiutil.GVKForObject(obj, h.client.Scheme())
|
||||
u, err := h.toUnstructured(obj)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
u := &unstructured.Unstructured{}
|
||||
unstructured, err := runtime.DefaultUnstructuredConverter.ToUnstructured(obj)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
u.Object = unstructured
|
||||
u.SetGroupVersionKind(gvk)
|
||||
u.SetManagedFields(nil)
|
||||
err = h.client.Patch(ctx, u, client.Apply, opts...)
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -48,18 +35,10 @@ func (h KubernetesClient) PatchStatus(ctx context.Context, obj client.Object) er
|
||||
FieldManager: h.owner.Field,
|
||||
},
|
||||
}
|
||||
gvk, err := apiutil.GVKForObject(obj, h.client.Scheme())
|
||||
u, err := h.toUnstructured(obj)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
u := &unstructured.Unstructured{}
|
||||
unstructured, err := runtime.DefaultUnstructuredConverter.ToUnstructured(obj)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
u.Object = unstructured
|
||||
u.SetGroupVersionKind(gvk)
|
||||
u.SetManagedFields(nil)
|
||||
return h.client.Status().Patch(ctx, u, client.Apply, opts)
|
||||
}
|
||||
|
||||
@@ -14,27 +14,15 @@ import (
|
||||
"sigs.k8s.io/controller-runtime/pkg/client"
|
||||
)
|
||||
|
||||
func (h *KubernetesClient) DeleteAll(ctx context.Context, resources []*unstructured.Unstructured, opts handler.DeleteOptions) error {
|
||||
if !h.cleanup {
|
||||
return nil
|
||||
}
|
||||
for _, r := range resources {
|
||||
err := h.Delete(ctx, r, opts)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// Delete deletes the given object (not found errors are ignored).
|
||||
func (h *KubernetesClient) Delete(ctx context.Context, object *unstructured.Unstructured, opts handler.DeleteOptions) error {
|
||||
if !h.cleanup {
|
||||
return nil
|
||||
func (h *KubernetesClient) Delete(ctx context.Context, obj client.Object, opts handler.DeleteOptions) error {
|
||||
u, err := h.toUnstructured(obj)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
existingObject := &unstructured.Unstructured{}
|
||||
existingObject.SetGroupVersionKind(object.GroupVersionKind())
|
||||
err := h.client.Get(ctx, client.ObjectKeyFromObject(object), existingObject)
|
||||
existingObject.SetGroupVersionKind(u.GroupVersionKind())
|
||||
err = h.client.Get(ctx, client.ObjectKeyFromObject(u), existingObject)
|
||||
if err != nil {
|
||||
if !errors.IsNotFound(err) {
|
||||
return fmt.Errorf("failed to delete: %w", err)
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
package kubernetes
|
||||
|
||||
import (
|
||||
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
|
||||
"sigs.k8s.io/controller-runtime/pkg/client"
|
||||
"sigs.k8s.io/controller-runtime/pkg/client/apiutil"
|
||||
)
|
||||
|
||||
func (h KubernetesClient) toUnstructured(obj client.Object) (*unstructured.Unstructured, error) {
|
||||
gvk, err := apiutil.GVKForObject(obj, h.client.Scheme())
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
u := &unstructured.Unstructured{}
|
||||
unstructured, err := runtime.DefaultUnstructuredConverter.ToUnstructured(obj)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
u.Object = unstructured
|
||||
u.SetGroupVersionKind(gvk)
|
||||
u.SetManagedFields(nil)
|
||||
return u, nil
|
||||
}
|
||||
Reference in New Issue
Block a user