mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 03:41:45 +00:00
gce: remove duplicate patch service method
Signed-off-by: andrewsykim <kim.andrewsy@gmail.com>
This commit is contained in:
parent
4cadaf2563
commit
2a05613480
@ -50,7 +50,6 @@ go_library(
|
|||||||
"//staging/src/k8s.io/apimachinery/pkg/types:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/types:go_default_library",
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/util/errors:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/util/errors:go_default_library",
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library",
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/util/strategicpatch:go_default_library",
|
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/util/version:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/util/version:go_default_library",
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/util/wait:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/util/wait:go_default_library",
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/watch:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/watch:go_default_library",
|
||||||
|
@ -33,18 +33,15 @@ import (
|
|||||||
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta"
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta"
|
||||||
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/mock"
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/mock"
|
||||||
"k8s.io/api/core/v1"
|
"k8s.io/api/core/v1"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
"k8s.io/apimachinery/pkg/types"
|
"k8s.io/apimachinery/pkg/types"
|
||||||
"k8s.io/apimachinery/pkg/util/sets"
|
"k8s.io/apimachinery/pkg/util/sets"
|
||||||
"k8s.io/apimachinery/pkg/util/strategicpatch"
|
|
||||||
|
|
||||||
"encoding/json"
|
|
||||||
|
|
||||||
"cloud.google.com/go/compute/metadata"
|
"cloud.google.com/go/compute/metadata"
|
||||||
compute "google.golang.org/api/compute/v1"
|
compute "google.golang.org/api/compute/v1"
|
||||||
"google.golang.org/api/googleapi"
|
"google.golang.org/api/googleapi"
|
||||||
"k8s.io/client-go/kubernetes/fake"
|
"k8s.io/client-go/kubernetes/fake"
|
||||||
v1core "k8s.io/client-go/kubernetes/typed/core/v1"
|
v1core "k8s.io/client-go/kubernetes/typed/core/v1"
|
||||||
|
servicehelper "k8s.io/cloud-provider/service/helpers"
|
||||||
)
|
)
|
||||||
|
|
||||||
func fakeGCECloud(vals TestClusterValues) (*Cloud, error) {
|
func fakeGCECloud(vals TestClusterValues) (*Cloud, error) {
|
||||||
@ -362,8 +359,7 @@ func addFinalizer(service *v1.Service, kubeClient v1core.CoreV1Interface, key st
|
|||||||
updated := service.DeepCopy()
|
updated := service.DeepCopy()
|
||||||
updated.ObjectMeta.Finalizers = append(updated.ObjectMeta.Finalizers, key)
|
updated.ObjectMeta.Finalizers = append(updated.ObjectMeta.Finalizers, key)
|
||||||
|
|
||||||
// TODO(87447) use PatchService from k8s.io/cloud-provider/service/helpers
|
_, err := servicehelper.PatchService(kubeClient, service, updated)
|
||||||
_, err := patchService(kubeClient, service, updated)
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -377,7 +373,7 @@ func removeFinalizer(service *v1.Service, kubeClient v1core.CoreV1Interface, key
|
|||||||
updated := service.DeepCopy()
|
updated := service.DeepCopy()
|
||||||
updated.ObjectMeta.Finalizers = removeString(updated.ObjectMeta.Finalizers, key)
|
updated.ObjectMeta.Finalizers = removeString(updated.ObjectMeta.Finalizers, key)
|
||||||
|
|
||||||
_, err := patchService(kubeClient, service, updated)
|
_, err := servicehelper.PatchService(kubeClient, service, updated)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -402,35 +398,3 @@ func removeString(slice []string, s string) []string {
|
|||||||
}
|
}
|
||||||
return newSlice
|
return newSlice
|
||||||
}
|
}
|
||||||
|
|
||||||
// patchService patches service's Status or ObjectMeta given the origin and
|
|
||||||
// updated ones. Change to spec will be ignored.
|
|
||||||
func patchService(c v1core.CoreV1Interface, oldSvc *v1.Service, newSvc *v1.Service) (*v1.Service, error) {
|
|
||||||
// Reset spec to make sure only patch for Status or ObjectMeta.
|
|
||||||
newSvc.Spec = oldSvc.Spec
|
|
||||||
|
|
||||||
patchBytes, err := getPatchBytes(oldSvc, newSvc)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return c.Services(oldSvc.Namespace).Patch(context.TODO(), oldSvc.Name, types.StrategicMergePatchType, patchBytes, metav1.PatchOptions{}, "status")
|
|
||||||
}
|
|
||||||
|
|
||||||
func getPatchBytes(oldSvc *v1.Service, newSvc *v1.Service) ([]byte, error) {
|
|
||||||
oldData, err := json.Marshal(oldSvc)
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("failed to Marshal oldData for svc %s/%s: %v", oldSvc.Namespace, oldSvc.Name, err)
|
|
||||||
}
|
|
||||||
|
|
||||||
newData, err := json.Marshal(newSvc)
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("failed to Marshal newData for svc %s/%s: %v", newSvc.Namespace, newSvc.Name, err)
|
|
||||||
}
|
|
||||||
|
|
||||||
patchBytes, err := strategicpatch.CreateTwoWayMergePatch(oldData, newData, v1.Service{})
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("failed to CreateTwoWayMergePatch for svc %s/%s: %v", oldSvc.Namespace, oldSvc.Name, err)
|
|
||||||
}
|
|
||||||
return patchBytes, nil
|
|
||||||
}
|
|
||||||
|
Loading…
Reference in New Issue
Block a user