mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-28 22:17:14 +00:00
Merge pull request #81348 from yastij/code-org-service-controller
move service helpers to k8s.io/cloud-provider
This commit is contained in:
commit
6a5f0e6eda
@ -281,34 +281,6 @@ func IsStandardFinalizerName(str string) bool {
|
|||||||
return standardFinalizers.Has(str)
|
return standardFinalizers.Has(str)
|
||||||
}
|
}
|
||||||
|
|
||||||
// LoadBalancerStatusEqual checks if the status of the load balancer is equal to the target status
|
|
||||||
// TODO: make method on LoadBalancerStatus?
|
|
||||||
func LoadBalancerStatusEqual(l, r *core.LoadBalancerStatus) bool {
|
|
||||||
return ingressSliceEqual(l.Ingress, r.Ingress)
|
|
||||||
}
|
|
||||||
|
|
||||||
func ingressSliceEqual(lhs, rhs []core.LoadBalancerIngress) bool {
|
|
||||||
if len(lhs) != len(rhs) {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
for i := range lhs {
|
|
||||||
if !ingressEqual(&lhs[i], &rhs[i]) {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
func ingressEqual(lhs, rhs *core.LoadBalancerIngress) bool {
|
|
||||||
if lhs.IP != rhs.IP {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
if lhs.Hostname != rhs.Hostname {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetAccessModesAsString returns a string representation of an array of access modes.
|
// GetAccessModesAsString returns a string representation of an array of access modes.
|
||||||
// modes, when present, are always in the same order: RWO,ROX,RWX.
|
// modes, when present, are always in the same order: RWO,ROX,RWX.
|
||||||
func GetAccessModesAsString(modes []core.PersistentVolumeAccessMode) string {
|
func GetAccessModesAsString(modes []core.PersistentVolumeAccessMode) string {
|
||||||
|
@ -21,7 +21,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"k8s.io/api/core/v1"
|
v1 "k8s.io/api/core/v1"
|
||||||
"k8s.io/apimachinery/pkg/api/resource"
|
"k8s.io/apimachinery/pkg/api/resource"
|
||||||
"k8s.io/apimachinery/pkg/fields"
|
"k8s.io/apimachinery/pkg/fields"
|
||||||
"k8s.io/apimachinery/pkg/labels"
|
"k8s.io/apimachinery/pkg/labels"
|
||||||
@ -135,16 +135,6 @@ func ingressEqual(lhs, rhs *v1.LoadBalancerIngress) bool {
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: make method on LoadBalancerStatus?
|
|
||||||
func LoadBalancerStatusDeepCopy(lb *v1.LoadBalancerStatus) *v1.LoadBalancerStatus {
|
|
||||||
c := &v1.LoadBalancerStatus{}
|
|
||||||
c.Ingress = make([]v1.LoadBalancerIngress, len(lb.Ingress))
|
|
||||||
for i := range lb.Ingress {
|
|
||||||
c.Ingress[i] = lb.Ingress[i]
|
|
||||||
}
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetAccessModesAsString returns a string representation of an array of access modes.
|
// GetAccessModesAsString returns a string representation of an array of access modes.
|
||||||
// modes, when present, are always in the same order: RWO,ROX,RWX.
|
// modes, when present, are always in the same order: RWO,ROX,RWX.
|
||||||
func GetAccessModesAsString(modes []v1.PersistentVolumeAccessMode) string {
|
func GetAccessModesAsString(modes []v1.PersistentVolumeAccessMode) string {
|
||||||
|
@ -10,7 +10,6 @@ go_library(
|
|||||||
importpath = "k8s.io/kubernetes/pkg/controller/service",
|
importpath = "k8s.io/kubernetes/pkg/controller/service",
|
||||||
visibility = ["//visibility:public"],
|
visibility = ["//visibility:public"],
|
||||||
deps = [
|
deps = [
|
||||||
"//pkg/apis/core/v1/helper:go_default_library",
|
|
||||||
"//staging/src/k8s.io/api/core/v1:go_default_library",
|
"//staging/src/k8s.io/api/core/v1:go_default_library",
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/api/errors:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/api/errors:go_default_library",
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/types:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/types:go_default_library",
|
||||||
|
@ -42,7 +42,6 @@ import (
|
|||||||
servicehelper "k8s.io/cloud-provider/service/helpers"
|
servicehelper "k8s.io/cloud-provider/service/helpers"
|
||||||
"k8s.io/component-base/metrics/prometheus/ratelimiter"
|
"k8s.io/component-base/metrics/prometheus/ratelimiter"
|
||||||
"k8s.io/klog"
|
"k8s.io/klog"
|
||||||
v1helper "k8s.io/kubernetes/pkg/apis/core/v1/helper"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@ -316,7 +315,7 @@ func (s *ServiceController) syncLoadBalancerIfNeeded(service *v1.Service, key st
|
|||||||
// which may involve service interruption. Also, we would like user-friendly events.
|
// which may involve service interruption. Also, we would like user-friendly events.
|
||||||
|
|
||||||
// Save the state so we can avoid a write if it doesn't change
|
// Save the state so we can avoid a write if it doesn't change
|
||||||
previousStatus := v1helper.LoadBalancerStatusDeepCopy(&service.Status.LoadBalancer)
|
previousStatus := service.Status.LoadBalancer.DeepCopy()
|
||||||
var newStatus *v1.LoadBalancerStatus
|
var newStatus *v1.LoadBalancerStatus
|
||||||
var op loadBalancerOperation
|
var op loadBalancerOperation
|
||||||
var err error
|
var err error
|
||||||
@ -866,7 +865,7 @@ func removeString(slice []string, s string) []string {
|
|||||||
|
|
||||||
// patchStatus patches the service with the given LoadBalancerStatus.
|
// patchStatus patches the service with the given LoadBalancerStatus.
|
||||||
func (s *ServiceController) patchStatus(service *v1.Service, previousStatus, newStatus *v1.LoadBalancerStatus) error {
|
func (s *ServiceController) patchStatus(service *v1.Service, previousStatus, newStatus *v1.LoadBalancerStatus) error {
|
||||||
if v1helper.LoadBalancerStatusEqual(previousStatus, newStatus) {
|
if servicehelper.LoadBalancerStatusEqual(previousStatus, newStatus) {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -19,7 +19,6 @@ go_library(
|
|||||||
],
|
],
|
||||||
importpath = "k8s.io/kubernetes/pkg/proxy/userspace",
|
importpath = "k8s.io/kubernetes/pkg/proxy/userspace",
|
||||||
deps = [
|
deps = [
|
||||||
"//pkg/apis/core/v1/helper:go_default_library",
|
|
||||||
"//pkg/proxy:go_default_library",
|
"//pkg/proxy:go_default_library",
|
||||||
"//pkg/proxy/config:go_default_library",
|
"//pkg/proxy/config:go_default_library",
|
||||||
"//pkg/proxy/util:go_default_library",
|
"//pkg/proxy/util:go_default_library",
|
||||||
@ -34,6 +33,7 @@ go_library(
|
|||||||
"//staging/src/k8s.io/apimachinery/pkg/util/runtime:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/util/runtime: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/wait:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/util/wait:go_default_library",
|
||||||
|
"//staging/src/k8s.io/cloud-provider/service/helpers:go_default_library",
|
||||||
"//vendor/k8s.io/klog:go_default_library",
|
"//vendor/k8s.io/klog:go_default_library",
|
||||||
"//vendor/k8s.io/utils/exec:go_default_library",
|
"//vendor/k8s.io/utils/exec:go_default_library",
|
||||||
] + select({
|
] + select({
|
||||||
|
@ -32,8 +32,8 @@ import (
|
|||||||
utilnet "k8s.io/apimachinery/pkg/util/net"
|
utilnet "k8s.io/apimachinery/pkg/util/net"
|
||||||
"k8s.io/apimachinery/pkg/util/runtime"
|
"k8s.io/apimachinery/pkg/util/runtime"
|
||||||
"k8s.io/apimachinery/pkg/util/sets"
|
"k8s.io/apimachinery/pkg/util/sets"
|
||||||
|
servicehelper "k8s.io/cloud-provider/service/helpers"
|
||||||
"k8s.io/klog"
|
"k8s.io/klog"
|
||||||
"k8s.io/kubernetes/pkg/apis/core/v1/helper"
|
|
||||||
"k8s.io/kubernetes/pkg/proxy"
|
"k8s.io/kubernetes/pkg/proxy"
|
||||||
"k8s.io/kubernetes/pkg/proxy/config"
|
"k8s.io/kubernetes/pkg/proxy/config"
|
||||||
utilproxy "k8s.io/kubernetes/pkg/proxy/util"
|
utilproxy "k8s.io/kubernetes/pkg/proxy/util"
|
||||||
@ -673,7 +673,7 @@ func sameConfig(info *ServiceInfo, service *v1.Service, port *v1.ServicePort) bo
|
|||||||
if !ipsEqual(info.externalIPs, service.Spec.ExternalIPs) {
|
if !ipsEqual(info.externalIPs, service.Spec.ExternalIPs) {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
if !helper.LoadBalancerStatusEqual(&info.loadBalancerStatus, &service.Status.LoadBalancer) {
|
if !servicehelper.LoadBalancerStatusEqual(&info.loadBalancerStatus, &service.Status.LoadBalancer) {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
if info.sessionAffinityType != service.Spec.SessionAffinity {
|
if info.sessionAffinityType != service.Spec.SessionAffinity {
|
||||||
|
@ -115,3 +115,30 @@ func HasLBFinalizer(service *v1.Service) bool {
|
|||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// LoadBalancerStatusEqual checks if load balancer status are equal
|
||||||
|
func LoadBalancerStatusEqual(l, r *v1.LoadBalancerStatus) bool {
|
||||||
|
return ingressSliceEqual(l.Ingress, r.Ingress)
|
||||||
|
}
|
||||||
|
|
||||||
|
func ingressSliceEqual(lhs, rhs []v1.LoadBalancerIngress) bool {
|
||||||
|
if len(lhs) != len(rhs) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
for i := range lhs {
|
||||||
|
if !ingressEqual(&lhs[i], &rhs[i]) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
func ingressEqual(lhs, rhs *v1.LoadBalancerIngress) bool {
|
||||||
|
if lhs.IP != rhs.IP {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
if lhs.Hostname != rhs.Hostname {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user