Skip to content

Commit 680fdd9

Browse files
authored
Merge pull request #80 from Charliekenney23/update-k8s-deps
update k8s dependencies
2 parents a0465bd + b21d579 commit 680fdd9

25 files changed

+1108
-577
lines changed

.travis.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ env:
1010
- GO111MODULE=on
1111

1212
go:
13-
- 1.12.x
13+
- 1.15.x
1414
- tip
1515

1616
cache:
@@ -33,6 +33,6 @@ script:
3333
- make
3434
- make test
3535
- make docker-build
36-
- golangci-lint run
36+
- golangci-lint run --timeout=2m
3737
- travis_wait 20 roveralls -ignore e2e
3838
- goveralls -coverprofile=roveralls.coverprofile -service=travis-ci

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ fmt: vet $(GOPATH)/bin/goimports
3030
.PHONY: test
3131
# we say code is not worth testing unless it's formatted
3232
test: $(GOPATH)/bin/ginkgo fmt
33-
ginkgo -r --v --progress --trace --cover --skipPackage=test $(TEST_ARGS) -- --v=3
33+
ginkgo -r --v --progress --trace --cover --skipPackage=test $(TEST_ARGS)
3434

3535
.PHONY: build-linux
3636
build-linux:

cloud/linode/cloud.go

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@ import (
88
"github.com/linode/linodego"
99
"github.com/spf13/pflag"
1010
"k8s.io/client-go/informers"
11-
"k8s.io/kubernetes/pkg/cloudprovider"
12-
"k8s.io/kubernetes/pkg/controller"
11+
cloudprovider "k8s.io/cloud-provider"
1312
)
1413

1514
const (
@@ -70,17 +69,13 @@ func newCloud() (cloudprovider.Interface, error) {
7069
}, nil
7170
}
7271

73-
func (c *linodeCloud) Initialize(clientBuilder controller.ControllerClientBuilder) {
72+
func (c *linodeCloud) Initialize(clientBuilder cloudprovider.ControllerClientBuilder, stopCh <-chan struct{}) {
7473
kubeclient := clientBuilder.ClientOrDie("linode-shared-informers")
7574
sharedInformer := informers.NewSharedInformerFactory(kubeclient, 0)
7675
serviceInformer := sharedInformer.Core().V1().Services()
7776

7877
serviceController := newServiceController(c.loadbalancers.(*loadbalancers), serviceInformer)
79-
80-
// in future version of the cloudprovider package, we should use the stopCh provided to
81-
// (cloudprovider.Interface).Initialize instead
82-
forever := make(chan struct{})
83-
go serviceController.Run(forever)
78+
go serviceController.Run(stopCh)
8479
}
8580

8681
func (c *linodeCloud) LoadBalancer() (cloudprovider.LoadBalancer, bool) {
@@ -91,6 +86,10 @@ func (c *linodeCloud) Instances() (cloudprovider.Instances, bool) {
9186
return c.instances, true
9287
}
9388

89+
func (c *linodeCloud) InstancesV2() (cloudprovider.InstancesV2, bool) {
90+
return nil, false
91+
}
92+
9493
func (c *linodeCloud) Zones() (cloudprovider.Zones, bool) {
9594
return c.zones, true
9695
}

cloud/linode/instances.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import (
1313
"github.com/pkg/errors"
1414
v1 "k8s.io/api/core/v1"
1515
"k8s.io/apimachinery/pkg/types"
16-
"k8s.io/kubernetes/pkg/cloudprovider"
16+
cloudprovider "k8s.io/cloud-provider"
1717
)
1818

1919
type instances struct {

cloud/linode/loadbalancers.go

Lines changed: 24 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ import (
1414
"k8s.io/client-go/kubernetes"
1515
"k8s.io/client-go/rest"
1616
"k8s.io/client-go/tools/clientcmd"
17-
"k8s.io/klog"
18-
"k8s.io/kubernetes/pkg/cloudprovider"
17+
cloudprovider "k8s.io/cloud-provider"
18+
"k8s.io/klog/v2"
1919

2020
"github.com/linode/linode-cloud-controller-manager/sentry"
2121
"github.com/linode/linodego"
@@ -111,7 +111,7 @@ func (l *loadbalancers) getLatestServiceLoadBalancerStatus(ctx context.Context,
111111
return v1.LoadBalancerStatus{}, err
112112
}
113113

114-
service, err = l.kubeClient.CoreV1().Services(service.Namespace).Get(service.Name, metav1.GetOptions{})
114+
service, err = l.kubeClient.CoreV1().Services(service.Namespace).Get(ctx, service.Name, metav1.GetOptions{})
115115
if err != nil {
116116
return v1.LoadBalancerStatus{}, err
117117
}
@@ -164,6 +164,14 @@ func (l *loadbalancers) cleanupOldNodeBalancer(ctx context.Context, service *v1.
164164
return nil
165165
}
166166

167+
// GetLoadBalancerName returns the name of the load balancer.
168+
//
169+
// GetLoadBalancer will not modify service.
170+
func (l *loadbalancers) GetLoadBalancerName(ctx context.Context, clusterName string, service *v1.Service) string {
171+
unixNano := strconv.FormatInt(time.Now().UnixNano(), 16)
172+
return fmt.Sprintf("ccm-%s", unixNano[len(unixNano)-12:])
173+
}
174+
167175
// GetLoadBalancer returns the *v1.LoadBalancerStatus of service.
168176
//
169177
// GetLoadBalancer will not modify service.
@@ -203,7 +211,7 @@ func (l *loadbalancers) EnsureLoadBalancer(ctx context.Context, clusterName stri
203211
nb, err = l.getNodeBalancerForService(ctx, service)
204212
switch err.(type) {
205213
case lbNotFoundError:
206-
if nb, err = l.buildLoadBalancerRequest(ctx, service, nodes); err != nil {
214+
if nb, err = l.buildLoadBalancerRequest(ctx, clusterName, service, nodes); err != nil {
207215
sentry.CaptureError(ctx, err)
208216
return nil, err
209217
}
@@ -269,7 +277,7 @@ func (l *loadbalancers) updateNodeBalancer(ctx context.Context, service *v1.Serv
269277
}
270278

271279
// Construct a new config for this port
272-
newNBCfg, err := l.buildNodeBalancerConfig(service, int(port.Port))
280+
newNBCfg, err := l.buildNodeBalancerConfig(ctx, service, int(port.Port))
273281
if err != nil {
274282
sentry.CaptureError(ctx, err)
275283
return err
@@ -453,11 +461,10 @@ func (l *loadbalancers) getNodeBalancerByID(ctx context.Context, service *v1.Ser
453461
return nb, nil
454462
}
455463

456-
func (l *loadbalancers) createNodeBalancer(ctx context.Context, service *v1.Service, configs []*linodego.NodeBalancerConfigCreateOptions) (lb *linodego.NodeBalancer, err error) {
464+
func (l *loadbalancers) createNodeBalancer(ctx context.Context, clusterName string, service *v1.Service, configs []*linodego.NodeBalancerConfigCreateOptions) (lb *linodego.NodeBalancer, err error) {
457465
connThrottle := getConnectionThrottle(service)
458466

459-
unixNano := strconv.FormatInt(time.Now().UnixNano(), 16)
460-
label := fmt.Sprintf("ccm-%s", unixNano[len(unixNano)-12:])
467+
label := l.GetLoadBalancerName(ctx, clusterName, service)
461468
createOpts := linodego.NodeBalancerCreateOptions{
462469
Label: &label,
463470
Region: l.zone,
@@ -468,7 +475,7 @@ func (l *loadbalancers) createNodeBalancer(ctx context.Context, service *v1.Serv
468475
}
469476

470477
//nolint:funlen
471-
func (l *loadbalancers) buildNodeBalancerConfig(service *v1.Service, port int) (linodego.NodeBalancerConfig, error) {
478+
func (l *loadbalancers) buildNodeBalancerConfig(ctx context.Context, service *v1.Service, port int) (linodego.NodeBalancerConfig, error) {
472479
portConfig, err := getPortConfig(service, port)
473480
if err != nil {
474481
return linodego.NodeBalancerConfig{}, err
@@ -534,21 +541,21 @@ func (l *loadbalancers) buildNodeBalancerConfig(service *v1.Service, port int) (
534541
config.CheckPassive = checkPassive
535542

536543
if portConfig.Protocol == linodego.ProtocolHTTPS {
537-
if err = l.addTLSCert(service, &config, portConfig); err != nil {
544+
if err = l.addTLSCert(ctx, service, &config, portConfig); err != nil {
538545
return config, err
539546
}
540547
}
541548

542549
return config, nil
543550
}
544551

545-
func (l *loadbalancers) addTLSCert(service *v1.Service, nbConfig *linodego.NodeBalancerConfig, config portConfig) error {
552+
func (l *loadbalancers) addTLSCert(ctx context.Context, service *v1.Service, nbConfig *linodego.NodeBalancerConfig, config portConfig) error {
546553
err := l.retrieveKubeClient()
547554
if err != nil {
548555
return err
549556
}
550557

551-
nbConfig.SSLCert, nbConfig.SSLKey, err = getTLSCertInfo(l.kubeClient, service.Namespace, config)
558+
nbConfig.SSLCert, nbConfig.SSLKey, err = getTLSCertInfo(ctx, l.kubeClient, service.Namespace, config)
552559
if err != nil {
553560
return err
554561
}
@@ -557,7 +564,7 @@ func (l *loadbalancers) addTLSCert(service *v1.Service, nbConfig *linodego.NodeB
557564

558565
// buildLoadBalancerRequest returns a linodego.NodeBalancer
559566
// requests for service across nodes.
560-
func (l *loadbalancers) buildLoadBalancerRequest(ctx context.Context, service *v1.Service, nodes []*v1.Node) (*linodego.NodeBalancer, error) {
567+
func (l *loadbalancers) buildLoadBalancerRequest(ctx context.Context, clusterName string, service *v1.Service, nodes []*v1.Node) (*linodego.NodeBalancer, error) {
561568
ports := service.Spec.Ports
562569
configs := make([]*linodego.NodeBalancerConfigCreateOptions, 0, len(ports))
563570

@@ -566,7 +573,7 @@ func (l *loadbalancers) buildLoadBalancerRequest(ctx context.Context, service *v
566573
return nil, fmt.Errorf("error creating NodeBalancer Config: ports with the UDP protocol are not supported")
567574
}
568575

569-
config, err := l.buildNodeBalancerConfig(service, int(port.Port))
576+
config, err := l.buildNodeBalancerConfig(ctx, service, int(port.Port))
570577
if err != nil {
571578
return nil, err
572579
}
@@ -578,7 +585,7 @@ func (l *loadbalancers) buildLoadBalancerRequest(ctx context.Context, service *v
578585

579586
configs = append(configs, &createOpt)
580587
}
581-
return l.createNodeBalancer(ctx, service, configs)
588+
return l.createNodeBalancer(ctx, clusterName, service, configs)
582589
}
583590

584591
func (l *loadbalancers) buildNodeBalancerNodeCreateOptions(node *v1.Node, nodePort int32) linodego.NodeBalancerNodeCreateOptions {
@@ -705,12 +712,12 @@ func getNodeInternalIP(node *v1.Node) string {
705712
return ""
706713
}
707714

708-
func getTLSCertInfo(kubeClient kubernetes.Interface, namespace string, config portConfig) (string, string, error) {
715+
func getTLSCertInfo(ctx context.Context, kubeClient kubernetes.Interface, namespace string, config portConfig) (string, string, error) {
709716
if config.TLSSecretName == "" {
710717
return "", "", fmt.Errorf("TLS secret name for port %v is not specified", config.Port)
711718
}
712719

713-
secret, err := kubeClient.CoreV1().Secrets(namespace).Get(config.TLSSecretName, metav1.GetOptions{})
720+
secret, err := kubeClient.CoreV1().Secrets(namespace).Get(ctx, config.TLSSecretName, metav1.GetOptions{})
714721
if err != nil {
715722
return "", "", err
716723
}

cloud/linode/loadbalancers_deprecated_test.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ func testBuildLoadBalancerRequestDeprecated(t *testing.T, client *linodego.Clien
9090
}
9191

9292
lb := &loadbalancers{client, "us-west", nil}
93-
nb, err := lb.buildLoadBalancerRequest(context.TODO(), svc, nodes)
93+
nb, err := lb.buildLoadBalancerRequest(context.TODO(), "linodelb", svc, nodes)
9494
if err != nil {
9595
t.Fatal(err)
9696
}
@@ -187,11 +187,11 @@ func testEnsureLoadBalancerDeletedDeprecated(t *testing.T, client *linodego.Clie
187187

188188
lb := &loadbalancers{client, "us-west", nil}
189189
configs := []*linodego.NodeBalancerConfigCreateOptions{}
190-
_, err := lb.createNodeBalancer(context.TODO(), svc, configs)
190+
_, err := lb.createNodeBalancer(context.TODO(), "linodelb", svc, configs)
191191
if err != nil {
192192
t.Fatal(err)
193193
}
194-
defer func() { _ = lb.EnsureLoadBalancerDeleted(context.TODO(), "lnodelb", svc) }()
194+
defer func() { _ = lb.EnsureLoadBalancerDeleted(context.TODO(), "linodelb", svc) }()
195195

196196
for _, test := range testcases {
197197
t.Run(test.name, func(t *testing.T) {
@@ -235,13 +235,13 @@ func testEnsureLoadBalancerDeprecated(t *testing.T, client *linodego.Client) {
235235
lb := &loadbalancers{client, "us-west", nil}
236236

237237
configs := []*linodego.NodeBalancerConfigCreateOptions{}
238-
nb, err := lb.createNodeBalancer(context.TODO(), svc, configs)
238+
nb, err := lb.createNodeBalancer(context.TODO(), "linodelb", svc, configs)
239239
if err != nil {
240240
t.Fatal(err)
241241
}
242242

243243
svc.Status.LoadBalancer = *makeLoadBalancerStatus(nb)
244-
defer func() { _ = lb.EnsureLoadBalancerDeleted(context.TODO(), "lnodelb", svc) }()
244+
defer func() { _ = lb.EnsureLoadBalancerDeleted(context.TODO(), "linodelb", svc) }()
245245
lbStatus, exists, err := lb.GetLoadBalancer(context.TODO(), "linodelb", svc)
246246
if err != nil {
247247
t.Fatal(err)
@@ -351,14 +351,14 @@ func testGetLoadBalancerDeprecated(t *testing.T, client *linodego.Client) {
351351
}
352352

353353
configs := []*linodego.NodeBalancerConfigCreateOptions{}
354-
nb, err := lb.createNodeBalancer(context.TODO(), svc, configs)
354+
nb, err := lb.createNodeBalancer(context.TODO(), "linodelb", svc, configs)
355355
if err != nil {
356356
t.Fatal(err)
357357
}
358358

359359
lbStatus := makeLoadBalancerStatus(nb)
360360
svc.Status.LoadBalancer = *lbStatus
361-
defer func() { _ = lb.EnsureLoadBalancerDeleted(context.TODO(), "lnodelb", svc) }()
361+
defer func() { _ = lb.EnsureLoadBalancerDeleted(context.TODO(), "linodelb", svc) }()
362362
testcases := []struct {
363363
name string
364364
service *v1.Service

0 commit comments

Comments
 (0)