mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-18 08:09:58 +00:00
Move and make exported lbScheme types into cloud/constants.go
This commit is contained in:
parent
bef0838a21
commit
5dd3fdebec
@ -21,11 +21,15 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type NetworkTier string
|
type NetworkTier string
|
||||||
|
type LbScheme string
|
||||||
|
|
||||||
const (
|
const (
|
||||||
NetworkTierStandard NetworkTier = "Standard"
|
NetworkTierStandard NetworkTier = "Standard"
|
||||||
NetworkTierPremium NetworkTier = "Premium"
|
NetworkTierPremium NetworkTier = "Premium"
|
||||||
NetworkTierDefault NetworkTier = NetworkTierPremium
|
NetworkTierDefault NetworkTier = NetworkTierPremium
|
||||||
|
|
||||||
|
SchemeExternal LbScheme = "EXTERNAL"
|
||||||
|
SchemeInternal LbScheme = "INTERNAL"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ToGCEValue converts NetworkTier to a string that we can populate the
|
// ToGCEValue converts NetworkTier to a string that we can populate the
|
||||||
|
@ -23,6 +23,7 @@ import (
|
|||||||
compute "google.golang.org/api/compute/v1"
|
compute "google.golang.org/api/compute/v1"
|
||||||
|
|
||||||
"github.com/golang/glog"
|
"github.com/golang/glog"
|
||||||
|
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud"
|
||||||
)
|
)
|
||||||
|
|
||||||
type addressManager struct {
|
type addressManager struct {
|
||||||
@ -31,13 +32,13 @@ type addressManager struct {
|
|||||||
name string
|
name string
|
||||||
serviceName string
|
serviceName string
|
||||||
targetIP string
|
targetIP string
|
||||||
addressType lbScheme
|
addressType cloud.LbScheme
|
||||||
region string
|
region string
|
||||||
subnetURL string
|
subnetURL string
|
||||||
tryRelease bool
|
tryRelease bool
|
||||||
}
|
}
|
||||||
|
|
||||||
func newAddressManager(svc CloudAddressService, serviceName, region, subnetURL, name, targetIP string, addressType lbScheme) *addressManager {
|
func newAddressManager(svc CloudAddressService, serviceName, region, subnetURL, name, targetIP string, addressType cloud.LbScheme) *addressManager {
|
||||||
return &addressManager{
|
return &addressManager{
|
||||||
svc: svc,
|
svc: svc,
|
||||||
logPrefix: fmt.Sprintf("AddressManager(%q)", name),
|
logPrefix: fmt.Sprintf("AddressManager(%q)", name),
|
||||||
|
@ -22,6 +22,7 @@ import (
|
|||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
compute "google.golang.org/api/compute/v1"
|
compute "google.golang.org/api/compute/v1"
|
||||||
|
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud"
|
||||||
)
|
)
|
||||||
|
|
||||||
const testSvcName = "my-service"
|
const testSvcName = "my-service"
|
||||||
@ -34,8 +35,8 @@ func TestAddressManagerNoRequestedIP(t *testing.T) {
|
|||||||
svc := NewFakeCloudAddressService()
|
svc := NewFakeCloudAddressService()
|
||||||
targetIP := ""
|
targetIP := ""
|
||||||
|
|
||||||
mgr := newAddressManager(svc, testSvcName, testRegion, testSubnet, testLBName, targetIP, schemeInternal)
|
mgr := newAddressManager(svc, testSvcName, testRegion, testSubnet, testLBName, targetIP, cloud.SchemeInternal)
|
||||||
testHoldAddress(t, mgr, svc, testLBName, testRegion, targetIP, string(schemeInternal))
|
testHoldAddress(t, mgr, svc, testLBName, testRegion, targetIP, string(cloud.SchemeInternal))
|
||||||
testReleaseAddress(t, mgr, svc, testLBName, testRegion)
|
testReleaseAddress(t, mgr, svc, testLBName, testRegion)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -44,8 +45,8 @@ func TestAddressManagerBasic(t *testing.T) {
|
|||||||
svc := NewFakeCloudAddressService()
|
svc := NewFakeCloudAddressService()
|
||||||
targetIP := "1.1.1.1"
|
targetIP := "1.1.1.1"
|
||||||
|
|
||||||
mgr := newAddressManager(svc, testSvcName, testRegion, testSubnet, testLBName, targetIP, schemeInternal)
|
mgr := newAddressManager(svc, testSvcName, testRegion, testSubnet, testLBName, targetIP, cloud.SchemeInternal)
|
||||||
testHoldAddress(t, mgr, svc, testLBName, testRegion, targetIP, string(schemeInternal))
|
testHoldAddress(t, mgr, svc, testLBName, testRegion, targetIP, string(cloud.SchemeInternal))
|
||||||
testReleaseAddress(t, mgr, svc, testLBName, testRegion)
|
testReleaseAddress(t, mgr, svc, testLBName, testRegion)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -55,12 +56,12 @@ func TestAddressManagerOrphaned(t *testing.T) {
|
|||||||
svc := NewFakeCloudAddressService()
|
svc := NewFakeCloudAddressService()
|
||||||
targetIP := "1.1.1.1"
|
targetIP := "1.1.1.1"
|
||||||
|
|
||||||
addr := &compute.Address{Name: testLBName, Address: targetIP, AddressType: string(schemeInternal)}
|
addr := &compute.Address{Name: testLBName, Address: targetIP, AddressType: string(cloud.SchemeInternal)}
|
||||||
err := svc.ReserveRegionAddress(addr, testRegion)
|
err := svc.ReserveRegionAddress(addr, testRegion)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
mgr := newAddressManager(svc, testSvcName, testRegion, testSubnet, testLBName, targetIP, schemeInternal)
|
mgr := newAddressManager(svc, testSvcName, testRegion, testSubnet, testLBName, targetIP, cloud.SchemeInternal)
|
||||||
testHoldAddress(t, mgr, svc, testLBName, testRegion, targetIP, string(schemeInternal))
|
testHoldAddress(t, mgr, svc, testLBName, testRegion, targetIP, string(cloud.SchemeInternal))
|
||||||
testReleaseAddress(t, mgr, svc, testLBName, testRegion)
|
testReleaseAddress(t, mgr, svc, testLBName, testRegion)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -71,12 +72,12 @@ func TestAddressManagerOutdatedOrphan(t *testing.T) {
|
|||||||
previousAddress := "1.1.0.0"
|
previousAddress := "1.1.0.0"
|
||||||
targetIP := "1.1.1.1"
|
targetIP := "1.1.1.1"
|
||||||
|
|
||||||
addr := &compute.Address{Name: testLBName, Address: previousAddress, AddressType: string(schemeExternal)}
|
addr := &compute.Address{Name: testLBName, Address: previousAddress, AddressType: string(cloud.SchemeExternal)}
|
||||||
err := svc.ReserveRegionAddress(addr, testRegion)
|
err := svc.ReserveRegionAddress(addr, testRegion)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
mgr := newAddressManager(svc, testSvcName, testRegion, testSubnet, testLBName, targetIP, schemeInternal)
|
mgr := newAddressManager(svc, testSvcName, testRegion, testSubnet, testLBName, targetIP, cloud.SchemeInternal)
|
||||||
testHoldAddress(t, mgr, svc, testLBName, testRegion, targetIP, string(schemeInternal))
|
testHoldAddress(t, mgr, svc, testLBName, testRegion, targetIP, string(cloud.SchemeInternal))
|
||||||
testReleaseAddress(t, mgr, svc, testLBName, testRegion)
|
testReleaseAddress(t, mgr, svc, testLBName, testRegion)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -86,11 +87,11 @@ func TestAddressManagerExternallyOwned(t *testing.T) {
|
|||||||
svc := NewFakeCloudAddressService()
|
svc := NewFakeCloudAddressService()
|
||||||
targetIP := "1.1.1.1"
|
targetIP := "1.1.1.1"
|
||||||
|
|
||||||
addr := &compute.Address{Name: "my-important-address", Address: targetIP, AddressType: string(schemeInternal)}
|
addr := &compute.Address{Name: "my-important-address", Address: targetIP, AddressType: string(cloud.SchemeInternal)}
|
||||||
err := svc.ReserveRegionAddress(addr, testRegion)
|
err := svc.ReserveRegionAddress(addr, testRegion)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
mgr := newAddressManager(svc, testSvcName, testRegion, testSubnet, testLBName, targetIP, schemeInternal)
|
mgr := newAddressManager(svc, testSvcName, testRegion, testSubnet, testLBName, targetIP, cloud.SchemeInternal)
|
||||||
ipToUse, err := mgr.HoldAddress()
|
ipToUse, err := mgr.HoldAddress()
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
assert.NotEmpty(t, ipToUse)
|
assert.NotEmpty(t, ipToUse)
|
||||||
@ -107,11 +108,11 @@ func TestAddressManagerBadExternallyOwned(t *testing.T) {
|
|||||||
svc := NewFakeCloudAddressService()
|
svc := NewFakeCloudAddressService()
|
||||||
targetIP := "1.1.1.1"
|
targetIP := "1.1.1.1"
|
||||||
|
|
||||||
addr := &compute.Address{Name: "my-important-address", Address: targetIP, AddressType: string(schemeExternal)}
|
addr := &compute.Address{Name: "my-important-address", Address: targetIP, AddressType: string(cloud.SchemeExternal)}
|
||||||
err := svc.ReserveRegionAddress(addr, testRegion)
|
err := svc.ReserveRegionAddress(addr, testRegion)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
mgr := newAddressManager(svc, testSvcName, testRegion, testSubnet, testLBName, targetIP, schemeInternal)
|
mgr := newAddressManager(svc, testSvcName, testRegion, testSubnet, testLBName, targetIP, cloud.SchemeInternal)
|
||||||
_, err = mgr.HoldAddress()
|
_, err = mgr.HoldAddress()
|
||||||
assert.NotNil(t, err)
|
assert.NotNil(t, err)
|
||||||
}
|
}
|
||||||
|
@ -25,6 +25,8 @@ import (
|
|||||||
computealpha "google.golang.org/api/compute/v0.alpha"
|
computealpha "google.golang.org/api/compute/v0.alpha"
|
||||||
computebeta "google.golang.org/api/compute/v0.beta"
|
computebeta "google.golang.org/api/compute/v0.beta"
|
||||||
compute "google.golang.org/api/compute/v1"
|
compute "google.golang.org/api/compute/v1"
|
||||||
|
|
||||||
|
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud"
|
||||||
)
|
)
|
||||||
|
|
||||||
// test
|
// test
|
||||||
@ -68,7 +70,7 @@ func (cas *FakeCloudAddressService) ReserveAlphaRegionAddress(addr *computealpha
|
|||||||
}
|
}
|
||||||
|
|
||||||
if addr.AddressType == "" {
|
if addr.AddressType == "" {
|
||||||
addr.AddressType = string(schemeExternal)
|
addr.AddressType = string(cloud.SchemeExternal)
|
||||||
}
|
}
|
||||||
|
|
||||||
if cas.reservedAddrs[addr.Address] {
|
if cas.reservedAddrs[addr.Address] {
|
||||||
@ -76,8 +78,8 @@ func (cas *FakeCloudAddressService) ReserveAlphaRegionAddress(addr *computealpha
|
|||||||
// When the IP is already in use, this call returns an error code based
|
// When the IP is already in use, this call returns an error code based
|
||||||
// on the type (internal vs external) of the address. This is to be
|
// on the type (internal vs external) of the address. This is to be
|
||||||
// consistent with actual GCE API.
|
// consistent with actual GCE API.
|
||||||
switch lbScheme(addr.AddressType) {
|
switch cloud.LbScheme(addr.AddressType) {
|
||||||
case schemeExternal:
|
case cloud.SchemeExternal:
|
||||||
return makeGoogleAPIError(http.StatusBadRequest, msg)
|
return makeGoogleAPIError(http.StatusBadRequest, msg)
|
||||||
default:
|
default:
|
||||||
return makeGoogleAPIError(http.StatusConflict, msg)
|
return makeGoogleAPIError(http.StatusConflict, msg)
|
||||||
@ -209,7 +211,7 @@ func convertToAlphaAddress(object gceObject) *computealpha.Address {
|
|||||||
panic(fmt.Sprintf("Failed to convert GCE apiObject %v to alpha address: %v", object, err))
|
panic(fmt.Sprintf("Failed to convert GCE apiObject %v to alpha address: %v", object, err))
|
||||||
}
|
}
|
||||||
// Set the default values for the Alpha fields.
|
// Set the default values for the Alpha fields.
|
||||||
addr.NetworkTier = NetworkTierDefault.ToGCEValue()
|
addr.NetworkTier = cloud.NetworkTierDefault.ToGCEValue()
|
||||||
return &addr
|
return &addr
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -28,6 +28,7 @@ import (
|
|||||||
|
|
||||||
"k8s.io/api/core/v1"
|
"k8s.io/api/core/v1"
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider"
|
"k8s.io/kubernetes/pkg/cloudprovider"
|
||||||
|
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud"
|
||||||
netsets "k8s.io/kubernetes/pkg/util/net/sets"
|
netsets "k8s.io/kubernetes/pkg/util/net/sets"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -44,13 +45,6 @@ func newLoadBalancerMetricContext(request, region string) *metricContext {
|
|||||||
return newGenericMetricContext("loadbalancer", request, region, unusedMetricLabel, computeV1Version)
|
return newGenericMetricContext("loadbalancer", request, region, unusedMetricLabel, computeV1Version)
|
||||||
}
|
}
|
||||||
|
|
||||||
type lbScheme string
|
|
||||||
|
|
||||||
const (
|
|
||||||
schemeExternal lbScheme = "EXTERNAL"
|
|
||||||
schemeInternal lbScheme = "INTERNAL"
|
|
||||||
)
|
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
var err error
|
var err error
|
||||||
// LB L7 proxies and all L3/4/7 health checkers have client addresses within these known CIDRs.
|
// LB L7 proxies and all L3/4/7 health checkers have client addresses within these known CIDRs.
|
||||||
@ -126,13 +120,13 @@ func (gce *GCECloud) EnsureLoadBalancer(ctx context.Context, clusterName string,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if existingFwdRule != nil {
|
if existingFwdRule != nil {
|
||||||
existingScheme := lbScheme(strings.ToUpper(existingFwdRule.LoadBalancingScheme))
|
existingScheme := cloud.LbScheme(strings.ToUpper(existingFwdRule.LoadBalancingScheme))
|
||||||
|
|
||||||
// If the loadbalancer type changes between INTERNAL and EXTERNAL, the old load balancer should be deleted.
|
// If the loadbalancer type changes between INTERNAL and EXTERNAL, the old load balancer should be deleted.
|
||||||
if existingScheme != desiredScheme {
|
if existingScheme != desiredScheme {
|
||||||
glog.V(4).Infof("EnsureLoadBalancer(%v, %v, %v, %v, %v): deleting existing %v loadbalancer", clusterName, svc.Namespace, svc.Name, loadBalancerName, gce.region, existingScheme)
|
glog.V(4).Infof("EnsureLoadBalancer(%v, %v, %v, %v, %v): deleting existing %v loadbalancer", clusterName, svc.Namespace, svc.Name, loadBalancerName, gce.region, existingScheme)
|
||||||
switch existingScheme {
|
switch existingScheme {
|
||||||
case schemeInternal:
|
case cloud.SchemeInternal:
|
||||||
err = gce.ensureInternalLoadBalancerDeleted(clusterName, clusterID, svc)
|
err = gce.ensureInternalLoadBalancerDeleted(clusterName, clusterID, svc)
|
||||||
default:
|
default:
|
||||||
err = gce.ensureExternalLoadBalancerDeleted(clusterName, clusterID, svc)
|
err = gce.ensureExternalLoadBalancerDeleted(clusterName, clusterID, svc)
|
||||||
@ -149,7 +143,7 @@ func (gce *GCECloud) EnsureLoadBalancer(ctx context.Context, clusterName string,
|
|||||||
|
|
||||||
var status *v1.LoadBalancerStatus
|
var status *v1.LoadBalancerStatus
|
||||||
switch desiredScheme {
|
switch desiredScheme {
|
||||||
case schemeInternal:
|
case cloud.SchemeInternal:
|
||||||
status, err = gce.ensureInternalLoadBalancer(clusterName, clusterID, svc, existingFwdRule, nodes)
|
status, err = gce.ensureInternalLoadBalancer(clusterName, clusterID, svc, existingFwdRule, nodes)
|
||||||
default:
|
default:
|
||||||
status, err = gce.ensureExternalLoadBalancer(clusterName, clusterID, svc, existingFwdRule, nodes)
|
status, err = gce.ensureExternalLoadBalancer(clusterName, clusterID, svc, existingFwdRule, nodes)
|
||||||
@ -170,7 +164,7 @@ func (gce *GCECloud) UpdateLoadBalancer(ctx context.Context, clusterName string,
|
|||||||
glog.V(4).Infof("UpdateLoadBalancer(%v, %v, %v, %v, %v): updating with %d nodes", clusterName, svc.Namespace, svc.Name, loadBalancerName, gce.region, len(nodes))
|
glog.V(4).Infof("UpdateLoadBalancer(%v, %v, %v, %v, %v): updating with %d nodes", clusterName, svc.Namespace, svc.Name, loadBalancerName, gce.region, len(nodes))
|
||||||
|
|
||||||
switch scheme {
|
switch scheme {
|
||||||
case schemeInternal:
|
case cloud.SchemeInternal:
|
||||||
err = gce.updateInternalLoadBalancer(clusterName, clusterID, svc, nodes)
|
err = gce.updateInternalLoadBalancer(clusterName, clusterID, svc, nodes)
|
||||||
default:
|
default:
|
||||||
err = gce.updateExternalLoadBalancer(clusterName, svc, nodes)
|
err = gce.updateExternalLoadBalancer(clusterName, svc, nodes)
|
||||||
@ -191,7 +185,7 @@ func (gce *GCECloud) EnsureLoadBalancerDeleted(ctx context.Context, clusterName
|
|||||||
glog.V(4).Infof("EnsureLoadBalancerDeleted(%v, %v, %v, %v, %v): deleting loadbalancer", clusterName, svc.Namespace, svc.Name, loadBalancerName, gce.region)
|
glog.V(4).Infof("EnsureLoadBalancerDeleted(%v, %v, %v, %v, %v): deleting loadbalancer", clusterName, svc.Namespace, svc.Name, loadBalancerName, gce.region)
|
||||||
|
|
||||||
switch scheme {
|
switch scheme {
|
||||||
case schemeInternal:
|
case cloud.SchemeInternal:
|
||||||
err = gce.ensureInternalLoadBalancerDeleted(clusterName, clusterID, svc)
|
err = gce.ensureInternalLoadBalancerDeleted(clusterName, clusterID, svc)
|
||||||
default:
|
default:
|
||||||
err = gce.ensureExternalLoadBalancerDeleted(clusterName, clusterID, svc)
|
err = gce.ensureExternalLoadBalancerDeleted(clusterName, clusterID, svc)
|
||||||
@ -200,9 +194,9 @@ func (gce *GCECloud) EnsureLoadBalancerDeleted(ctx context.Context, clusterName
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func getSvcScheme(svc *v1.Service) lbScheme {
|
func getSvcScheme(svc *v1.Service) cloud.LbScheme {
|
||||||
if typ, ok := GetLoadBalancerAnnotationType(svc); ok && typ == LBTypeInternal {
|
if typ, ok := GetLoadBalancerAnnotationType(svc); ok && typ == LBTypeInternal {
|
||||||
return schemeInternal
|
return cloud.SchemeInternal
|
||||||
}
|
}
|
||||||
return schemeExternal
|
return cloud.SchemeExternal
|
||||||
}
|
}
|
||||||
|
@ -28,6 +28,7 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/util/sets"
|
"k8s.io/apimachinery/pkg/util/sets"
|
||||||
v1_service "k8s.io/kubernetes/pkg/api/v1/service"
|
v1_service "k8s.io/kubernetes/pkg/api/v1/service"
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider"
|
"k8s.io/kubernetes/pkg/cloudprovider"
|
||||||
|
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@ -37,7 +38,7 @@ const (
|
|||||||
func (gce *GCECloud) ensureInternalLoadBalancer(clusterName, clusterID string, svc *v1.Service, existingFwdRule *compute.ForwardingRule, nodes []*v1.Node) (*v1.LoadBalancerStatus, error) {
|
func (gce *GCECloud) ensureInternalLoadBalancer(clusterName, clusterID string, svc *v1.Service, existingFwdRule *compute.ForwardingRule, nodes []*v1.Node) (*v1.LoadBalancerStatus, error) {
|
||||||
nm := types.NamespacedName{Name: svc.Name, Namespace: svc.Namespace}
|
nm := types.NamespacedName{Name: svc.Name, Namespace: svc.Namespace}
|
||||||
ports, protocol := getPortsAndProtocol(svc.Spec.Ports)
|
ports, protocol := getPortsAndProtocol(svc.Spec.Ports)
|
||||||
scheme := schemeInternal
|
scheme := cloud.SchemeInternal
|
||||||
loadBalancerName := cloudprovider.GetLoadBalancerName(svc)
|
loadBalancerName := cloudprovider.GetLoadBalancerName(svc)
|
||||||
sharedBackend := shareBackendService(svc)
|
sharedBackend := shareBackendService(svc)
|
||||||
backendServiceName := makeBackendServiceName(loadBalancerName, clusterID, sharedBackend, scheme, protocol, svc.Spec.SessionAffinity)
|
backendServiceName := makeBackendServiceName(loadBalancerName, clusterID, sharedBackend, scheme, protocol, svc.Spec.SessionAffinity)
|
||||||
@ -93,7 +94,7 @@ func (gce *GCECloud) ensureInternalLoadBalancer(clusterName, clusterID string, s
|
|||||||
var addrMgr *addressManager
|
var addrMgr *addressManager
|
||||||
// If the network is not a legacy network, use the address manager
|
// If the network is not a legacy network, use the address manager
|
||||||
if !gce.IsLegacyNetwork() {
|
if !gce.IsLegacyNetwork() {
|
||||||
addrMgr = newAddressManager(gce, nm.String(), gce.Region(), subnetworkURL, loadBalancerName, requestedIP, schemeInternal)
|
addrMgr = newAddressManager(gce, nm.String(), gce.Region(), subnetworkURL, loadBalancerName, requestedIP, cloud.SchemeInternal)
|
||||||
ipToUse, err = addrMgr.HoldAddress()
|
ipToUse, err = addrMgr.HoldAddress()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -208,7 +209,7 @@ func (gce *GCECloud) updateInternalLoadBalancer(clusterName, clusterID string, s
|
|||||||
|
|
||||||
// Generate the backend service name
|
// Generate the backend service name
|
||||||
_, protocol := getPortsAndProtocol(svc.Spec.Ports)
|
_, protocol := getPortsAndProtocol(svc.Spec.Ports)
|
||||||
scheme := schemeInternal
|
scheme := cloud.SchemeInternal
|
||||||
loadBalancerName := cloudprovider.GetLoadBalancerName(svc)
|
loadBalancerName := cloudprovider.GetLoadBalancerName(svc)
|
||||||
backendServiceName := makeBackendServiceName(loadBalancerName, clusterID, shareBackendService(svc), scheme, protocol, svc.Spec.SessionAffinity)
|
backendServiceName := makeBackendServiceName(loadBalancerName, clusterID, shareBackendService(svc), scheme, protocol, svc.Spec.SessionAffinity)
|
||||||
// Ensure the backend service has the proper backend/instance-group links
|
// Ensure the backend service has the proper backend/instance-group links
|
||||||
@ -218,7 +219,7 @@ func (gce *GCECloud) updateInternalLoadBalancer(clusterName, clusterID string, s
|
|||||||
func (gce *GCECloud) ensureInternalLoadBalancerDeleted(clusterName, clusterID string, svc *v1.Service) error {
|
func (gce *GCECloud) ensureInternalLoadBalancerDeleted(clusterName, clusterID string, svc *v1.Service) error {
|
||||||
loadBalancerName := cloudprovider.GetLoadBalancerName(svc)
|
loadBalancerName := cloudprovider.GetLoadBalancerName(svc)
|
||||||
_, protocol := getPortsAndProtocol(svc.Spec.Ports)
|
_, protocol := getPortsAndProtocol(svc.Spec.Ports)
|
||||||
scheme := schemeInternal
|
scheme := cloud.SchemeInternal
|
||||||
sharedBackend := shareBackendService(svc)
|
sharedBackend := shareBackendService(svc)
|
||||||
sharedHealthCheck := !v1_service.RequestsOnlyLocalTraffic(svc)
|
sharedHealthCheck := !v1_service.RequestsOnlyLocalTraffic(svc)
|
||||||
|
|
||||||
@ -506,7 +507,7 @@ func (gce *GCECloud) ensureInternalInstanceGroupsDeleted(name string) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (gce *GCECloud) ensureInternalBackendService(name, description string, affinityType v1.ServiceAffinity, scheme lbScheme, protocol v1.Protocol, igLinks []string, hcLink string) error {
|
func (gce *GCECloud) ensureInternalBackendService(name, description string, affinityType v1.ServiceAffinity, scheme cloud.LbScheme, protocol v1.Protocol, igLinks []string, hcLink string) error {
|
||||||
glog.V(2).Infof("ensureInternalBackendService(%v, %v, %v): checking existing backend service with %d groups", name, scheme, protocol, len(igLinks))
|
glog.V(2).Infof("ensureInternalBackendService(%v, %v, %v): checking existing backend service with %d groups", name, scheme, protocol, len(igLinks))
|
||||||
bs, err := gce.GetRegionBackendService(name, gce.region)
|
bs, err := gce.GetRegionBackendService(name, gce.region)
|
||||||
if err != nil && !isNotFound(err) {
|
if err != nil && !isNotFound(err) {
|
||||||
|
@ -24,6 +24,7 @@ import (
|
|||||||
|
|
||||||
"k8s.io/api/core/v1"
|
"k8s.io/api/core/v1"
|
||||||
"k8s.io/apimachinery/pkg/types"
|
"k8s.io/apimachinery/pkg/types"
|
||||||
|
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Internal Load Balancer
|
// Internal Load Balancer
|
||||||
@ -33,7 +34,7 @@ func makeInstanceGroupName(clusterID string) string {
|
|||||||
return fmt.Sprintf("k8s-ig--%s", clusterID)
|
return fmt.Sprintf("k8s-ig--%s", clusterID)
|
||||||
}
|
}
|
||||||
|
|
||||||
func makeBackendServiceName(loadBalancerName, clusterID string, shared bool, scheme lbScheme, protocol v1.Protocol, svcAffinity v1.ServiceAffinity) string {
|
func makeBackendServiceName(loadBalancerName, clusterID string, shared bool, scheme cloud.LbScheme, protocol v1.Protocol, svcAffinity v1.ServiceAffinity) string {
|
||||||
if shared {
|
if shared {
|
||||||
hash := sha1.New()
|
hash := sha1.New()
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user