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