Merge pull request #775 from Garrybest/pr_cleanup
clean up unstructured conversion
This commit is contained in:
commit
7d77644d43
|
@ -8,7 +8,6 @@ import (
|
|||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
|
||||
"k8s.io/apimachinery/pkg/labels"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
"k8s.io/client-go/tools/record"
|
||||
"k8s.io/klog/v2"
|
||||
controllerruntime "sigs.k8s.io/controller-runtime"
|
||||
|
@ -88,8 +87,8 @@ func (c *EndpointSliceController) collectEndpointSliceFromWork(work *workv1alpha
|
|||
return controllerruntime.Result{Requeue: true}, err
|
||||
}
|
||||
|
||||
endpointSlice := &discoveryv1beta1.EndpointSlice{}
|
||||
if err := runtime.DefaultUnstructuredConverter.FromUnstructured(unstructObj.UnstructuredContent(), endpointSlice); err != nil {
|
||||
endpointSlice, err := helper.ConvertToEndpointSlice(unstructObj)
|
||||
if err != nil {
|
||||
klog.Errorf("failed to convert unstructured to typed object: %v", err)
|
||||
return controllerruntime.Result{Requeue: true}, err
|
||||
}
|
||||
|
|
|
@ -29,6 +29,7 @@ import (
|
|||
|
||||
clusterv1alpha1 "github.com/karmada-io/karmada/pkg/apis/cluster/v1alpha1"
|
||||
"github.com/karmada-io/karmada/pkg/util"
|
||||
"github.com/karmada-io/karmada/pkg/util/helper"
|
||||
"github.com/karmada-io/karmada/pkg/util/informermanager"
|
||||
)
|
||||
|
||||
|
@ -454,9 +455,8 @@ func getResourceSummary(nodes []*corev1.Node, pods []*corev1.Pod) *clusterv1alph
|
|||
func convertObjectsToNodes(nodeList []runtime.Object) ([]*corev1.Node, error) {
|
||||
nodes := make([]*corev1.Node, 0, len(nodeList))
|
||||
for _, obj := range nodeList {
|
||||
unstructObj := obj.(*unstructured.Unstructured)
|
||||
node := &corev1.Node{}
|
||||
if err := runtime.DefaultUnstructuredConverter.FromUnstructured(unstructObj.UnstructuredContent(), node); err != nil {
|
||||
node, err := helper.ConvertToNode(obj.(*unstructured.Unstructured))
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to convert unstructured to typed object: %v", err)
|
||||
}
|
||||
nodes = append(nodes, node)
|
||||
|
@ -467,9 +467,8 @@ func convertObjectsToNodes(nodeList []runtime.Object) ([]*corev1.Node, error) {
|
|||
func convertObjectsToPods(podList []runtime.Object) ([]*corev1.Pod, error) {
|
||||
pods := make([]*corev1.Pod, 0, len(podList))
|
||||
for _, obj := range podList {
|
||||
unstructObj := obj.(*unstructured.Unstructured)
|
||||
pod := &corev1.Pod{}
|
||||
if err := runtime.DefaultUnstructuredConverter.FromUnstructured(unstructObj.UnstructuredContent(), pod); err != nil {
|
||||
pod, err := helper.ConvertToPod(obj.(*unstructured.Unstructured))
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to convert unstructured to typed object: %v", err)
|
||||
}
|
||||
pods = append(pods, pod)
|
||||
|
|
|
@ -4,6 +4,7 @@ import (
|
|||
appsv1 "k8s.io/api/apps/v1"
|
||||
batchv1 "k8s.io/api/batch/v1"
|
||||
corev1 "k8s.io/api/core/v1"
|
||||
discoveryv1beta1 "k8s.io/api/discovery/v1beta1"
|
||||
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
|
||||
|
@ -51,6 +52,16 @@ func ConvertToPod(obj *unstructured.Unstructured) (*corev1.Pod, error) {
|
|||
return typedObj, nil
|
||||
}
|
||||
|
||||
// ConvertToNode converts a Node object from unstructured to typed.
|
||||
func ConvertToNode(obj *unstructured.Unstructured) (*corev1.Node, error) {
|
||||
typedObj := &corev1.Node{}
|
||||
if err := runtime.DefaultUnstructuredConverter.FromUnstructured(obj.UnstructuredContent(), typedObj); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return typedObj, nil
|
||||
}
|
||||
|
||||
// ConvertToReplicaSet converts a ReplicaSet object from unstructured to typed.
|
||||
func ConvertToReplicaSet(obj *unstructured.Unstructured) (*appsv1.ReplicaSet, error) {
|
||||
typedObj := &appsv1.ReplicaSet{}
|
||||
|
@ -100,3 +111,13 @@ func ConvertToJob(obj *unstructured.Unstructured) (*batchv1.Job, error) {
|
|||
|
||||
return typedObj, nil
|
||||
}
|
||||
|
||||
// ConvertToEndpointSlice converts a EndpointSlice object from unstructured to typed.
|
||||
func ConvertToEndpointSlice(obj *unstructured.Unstructured) (*discoveryv1beta1.EndpointSlice, error) {
|
||||
typedObj := &discoveryv1beta1.EndpointSlice{}
|
||||
if err := runtime.DefaultUnstructuredConverter.FromUnstructured(obj.UnstructuredContent(), typedObj); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return typedObj, nil
|
||||
}
|
||||
|
|
|
@ -7,7 +7,6 @@ import (
|
|||
"net/http"
|
||||
"strings"
|
||||
|
||||
batchv1 "k8s.io/api/batch/v1"
|
||||
corev1 "k8s.io/api/core/v1"
|
||||
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
|
@ -16,6 +15,7 @@ import (
|
|||
|
||||
workv1alpha1 "github.com/karmada-io/karmada/pkg/apis/work/v1alpha1"
|
||||
"github.com/karmada-io/karmada/pkg/util"
|
||||
"github.com/karmada-io/karmada/pkg/util/helper"
|
||||
)
|
||||
|
||||
// MutatingAdmission mutates API request if necessary.
|
||||
|
@ -120,8 +120,7 @@ func removeIrrelevantField(workload *unstructured.Unstructured) error {
|
|||
}
|
||||
|
||||
if workload.GetKind() == util.JobKind {
|
||||
job := &batchv1.Job{}
|
||||
err := runtime.DefaultUnstructuredConverter.FromUnstructured(workload.UnstructuredContent(), job)
|
||||
job, err := helper.ConvertToJob(workload)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue