Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions cloud/linode/cilium_loadbalancers.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import (
ciliumclient "github.com/cilium/cilium/pkg/k8s/client/clientset/versioned/typed/cilium.io/v2alpha1"
slimv1 "github.com/cilium/cilium/pkg/k8s/slim/k8s/apis/meta/v1"
"github.com/google/uuid"
"github.com/linode/linodego"
"github.com/linode/linodego/v2"
v1 "k8s.io/api/core/v1"
k8serrors "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
Expand Down Expand Up @@ -218,7 +218,7 @@ func (l *loadbalancers) createSharedIP(ctx context.Context, nodes []*v1.Node, ip
return "", err
}

newSharedIP, err := l.client.AddInstanceIPAddress(ctx, ipHolder.ID, true)
newSharedIP, err := l.client.AddInstanceIPAddress(ctx, ipHolder.ID, linodego.InstanceIPAddOptions{Public: true})
if err != nil {
return "", err
}
Expand Down
46 changes: 23 additions & 23 deletions cloud/linode/cilium_loadbalancers_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import (
ciliumfake "github.com/cilium/cilium/pkg/k8s/client/clientset/versioned/fake"
fakev2alpha1 "github.com/cilium/cilium/pkg/k8s/client/clientset/versioned/typed/cilium.io/v2alpha1/fake"
"github.com/golang/mock/gomock"
"github.com/linode/linodego"
"github.com/linode/linodego/v2"
v1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/kubernetes"
Expand Down Expand Up @@ -84,7 +84,7 @@ var (
Label: fmt.Sprintf("%s-%s", ipHolderLabelPrefix, zone),
Type: "g6-standard-1",
Region: "us-west",
IPv4: []*net.IP{&publicIPv4},
IPv4: []net.IP{publicIPv4},
}
newIpHolderInstance = linodego.Instance{}
)
Expand Down Expand Up @@ -208,7 +208,7 @@ func createNewIpHolderInstance() linodego.Instance {
Label: generateClusterScopedIPHolderLinodeName(zone, options.Options.IpHolderSuffix),
Type: "g6-standard-1",
Region: "us-west",
IPv4: []*net.IP{&publicIPv4},
IPv4: []net.IP{publicIPv4},
}
}

Expand Down Expand Up @@ -246,10 +246,10 @@ func testNoBGPNodeLabel(t *testing.T, mc *mocks.MockClient) {
mc.EXPECT().CreateInstance(gomock.Any(), gomock.Any()).Times(1).Return(&newIpHolderInstance, nil)
mc.EXPECT().GetInstanceIPAddresses(gomock.Any(), newIpHolderInstance.ID).Times(1).Return(&linodego.InstanceIPAddressResponse{
IPv4: &linodego.InstanceIPv4Response{
Public: []*linodego.InstanceIP{{Address: publicIPv4.String()}, {Address: dummySharedIP}},
Public: []linodego.InstanceIP{{Address: publicIPv4.String()}, {Address: dummySharedIP}},
},
}, nil)
mc.EXPECT().AddInstanceIPAddress(gomock.Any(), newIpHolderInstance.ID, true).Times(1).Return(&linodego.InstanceIP{Address: dummySharedIP}, nil)
mc.EXPECT().AddInstanceIPAddress(gomock.Any(), newIpHolderInstance.ID, linodego.InstanceIPAddOptions{Public: true}).Times(1).Return(&linodego.InstanceIP{Address: dummySharedIP}, nil)
mc.EXPECT().ShareIPAddresses(gomock.Any(), linodego.IPAddressesShareOptions{
IPs: []string{dummySharedIP},
LinodeID: 11111,
Expand Down Expand Up @@ -325,10 +325,10 @@ func testCreateWithExistingIPHolderWithOldIpHolderNamingConvention(t *testing.T,
}
mc.EXPECT().ListInstances(gomock.Any(), linodego.NewListOptions(1, string(rawFilter))).Times(1).Return([]linodego.Instance{oldIpHolderInstance}, nil)
dummySharedIP := dummyIP
mc.EXPECT().AddInstanceIPAddress(gomock.Any(), oldIpHolderInstance.ID, true).Times(1).Return(&linodego.InstanceIP{Address: dummySharedIP}, nil)
mc.EXPECT().AddInstanceIPAddress(gomock.Any(), oldIpHolderInstance.ID, linodego.InstanceIPAddOptions{Public: true}).Times(1).Return(&linodego.InstanceIP{Address: dummySharedIP}, nil)
mc.EXPECT().GetInstanceIPAddresses(gomock.Any(), oldIpHolderInstance.ID).Times(1).Return(&linodego.InstanceIPAddressResponse{
IPv4: &linodego.InstanceIPv4Response{
Public: []*linodego.InstanceIP{{Address: publicIPv4.String()}, {Address: dummySharedIP}},
Public: []linodego.InstanceIP{{Address: publicIPv4.String()}, {Address: dummySharedIP}},
},
}, nil)
mc.EXPECT().ShareIPAddresses(gomock.Any(), linodego.IPAddressesShareOptions{
Expand Down Expand Up @@ -371,10 +371,10 @@ func testCreateWithExistingIPHolderWithNewIpHolderNamingConvention(t *testing.T,
}
mc.EXPECT().ListInstances(gomock.Any(), linodego.NewListOptions(1, string(rawFilter))).Times(1).Return([]linodego.Instance{oldIpHolderInstance}, nil)
dummySharedIP := dummyIP
mc.EXPECT().AddInstanceIPAddress(gomock.Any(), oldIpHolderInstance.ID, true).Times(1).Return(&linodego.InstanceIP{Address: dummySharedIP}, nil)
mc.EXPECT().AddInstanceIPAddress(gomock.Any(), oldIpHolderInstance.ID, linodego.InstanceIPAddOptions{Public: true}).Times(1).Return(&linodego.InstanceIP{Address: dummySharedIP}, nil)
mc.EXPECT().GetInstanceIPAddresses(gomock.Any(), oldIpHolderInstance.ID).Times(1).Return(&linodego.InstanceIPAddressResponse{
IPv4: &linodego.InstanceIPv4Response{
Public: []*linodego.InstanceIP{{Address: publicIPv4.String()}, {Address: dummySharedIP}},
Public: []linodego.InstanceIP{{Address: publicIPv4.String()}, {Address: dummySharedIP}},
},
}, nil)
mc.EXPECT().ShareIPAddresses(gomock.Any(), linodego.IPAddressesShareOptions{
Expand Down Expand Up @@ -417,10 +417,10 @@ func testCreateWithExistingIPHolderWithNewIpHolderNamingConventionUsingLongSuffi
}
mc.EXPECT().ListInstances(gomock.Any(), linodego.NewListOptions(1, string(rawFilter))).Times(1).Return([]linodego.Instance{oldIpHolderInstance}, nil)
dummySharedIP := dummyIP
mc.EXPECT().AddInstanceIPAddress(gomock.Any(), oldIpHolderInstance.ID, true).Times(1).Return(&linodego.InstanceIP{Address: dummySharedIP}, nil)
mc.EXPECT().AddInstanceIPAddress(gomock.Any(), oldIpHolderInstance.ID, linodego.InstanceIPAddOptions{Public: true}).Times(1).Return(&linodego.InstanceIP{Address: dummySharedIP}, nil)
mc.EXPECT().GetInstanceIPAddresses(gomock.Any(), oldIpHolderInstance.ID).Times(1).Return(&linodego.InstanceIPAddressResponse{
IPv4: &linodego.InstanceIPv4Response{
Public: []*linodego.InstanceIP{{Address: publicIPv4.String()}, {Address: dummySharedIP}},
Public: []linodego.InstanceIP{{Address: publicIPv4.String()}, {Address: dummySharedIP}},
},
}, nil)
mc.EXPECT().ShareIPAddresses(gomock.Any(), linodego.IPAddressesShareOptions{
Expand Down Expand Up @@ -472,10 +472,10 @@ func testCreateWithNoExistingIPHolderUsingNoSuffix(t *testing.T, mc *mocks.MockC
mc.EXPECT().CreateInstance(gomock.Any(), gomock.Any()).Times(1).Return(&newIpHolderInstance, nil)
mc.EXPECT().GetInstanceIPAddresses(gomock.Any(), newIpHolderInstance.ID).Times(1).Return(&linodego.InstanceIPAddressResponse{
IPv4: &linodego.InstanceIPv4Response{
Public: []*linodego.InstanceIP{{Address: publicIPv4.String()}, {Address: dummySharedIP}},
Public: []linodego.InstanceIP{{Address: publicIPv4.String()}, {Address: dummySharedIP}},
},
}, nil)
mc.EXPECT().AddInstanceIPAddress(gomock.Any(), newIpHolderInstance.ID, true).Times(1).Return(&linodego.InstanceIP{Address: dummySharedIP}, nil)
mc.EXPECT().AddInstanceIPAddress(gomock.Any(), newIpHolderInstance.ID, linodego.InstanceIPAddOptions{Public: true}).Times(1).Return(&linodego.InstanceIP{Address: dummySharedIP}, nil)
mc.EXPECT().ShareIPAddresses(gomock.Any(), linodego.IPAddressesShareOptions{
IPs: []string{dummySharedIP},
LinodeID: 11111,
Expand Down Expand Up @@ -525,10 +525,10 @@ func testCreateWithNoExistingIPHolderUsingShortSuffix(t *testing.T, mc *mocks.Mo
mc.EXPECT().CreateInstance(gomock.Any(), gomock.Any()).Times(1).Return(&newIpHolderInstance, nil)
mc.EXPECT().GetInstanceIPAddresses(gomock.Any(), newIpHolderInstance.ID).Times(1).Return(&linodego.InstanceIPAddressResponse{
IPv4: &linodego.InstanceIPv4Response{
Public: []*linodego.InstanceIP{{Address: publicIPv4.String()}, {Address: dummySharedIP}},
Public: []linodego.InstanceIP{{Address: publicIPv4.String()}, {Address: dummySharedIP}},
},
}, nil)
mc.EXPECT().AddInstanceIPAddress(gomock.Any(), newIpHolderInstance.ID, true).Times(1).Return(&linodego.InstanceIP{Address: dummySharedIP}, nil)
mc.EXPECT().AddInstanceIPAddress(gomock.Any(), newIpHolderInstance.ID, linodego.InstanceIPAddOptions{Public: true}).Times(1).Return(&linodego.InstanceIP{Address: dummySharedIP}, nil)
mc.EXPECT().ShareIPAddresses(gomock.Any(), linodego.IPAddressesShareOptions{
IPs: []string{dummySharedIP},
LinodeID: 11111,
Expand Down Expand Up @@ -578,10 +578,10 @@ func testCreateWithNoExistingIPHolderUsingLongSuffix(t *testing.T, mc *mocks.Moc
mc.EXPECT().CreateInstance(gomock.Any(), gomock.Any()).Times(1).Return(&newIpHolderInstance, nil)
mc.EXPECT().GetInstanceIPAddresses(gomock.Any(), newIpHolderInstance.ID).Times(1).Return(&linodego.InstanceIPAddressResponse{
IPv4: &linodego.InstanceIPv4Response{
Public: []*linodego.InstanceIP{{Address: publicIPv4.String()}, {Address: dummySharedIP}},
Public: []linodego.InstanceIP{{Address: publicIPv4.String()}, {Address: dummySharedIP}},
},
}, nil)
mc.EXPECT().AddInstanceIPAddress(gomock.Any(), newIpHolderInstance.ID, true).Times(1).Return(&linodego.InstanceIP{Address: dummySharedIP}, nil)
mc.EXPECT().AddInstanceIPAddress(gomock.Any(), newIpHolderInstance.ID, linodego.InstanceIPAddOptions{Public: true}).Times(1).Return(&linodego.InstanceIP{Address: dummySharedIP}, nil)
mc.EXPECT().ShareIPAddresses(gomock.Any(), linodego.IPAddressesShareOptions{
IPs: []string{dummySharedIP},
LinodeID: 11111,
Expand Down Expand Up @@ -692,10 +692,10 @@ func testCiliumUpdateLoadBalancerAddNodeWithOldIpHolderNamingConvention(t *testi
}
mc.EXPECT().ListInstances(gomock.Any(), linodego.NewListOptions(1, string(rawFilter))).Times(1).Return([]linodego.Instance{oldIpHolderInstance}, nil)
dummySharedIP := dummyIP
mc.EXPECT().AddInstanceIPAddress(gomock.Any(), oldIpHolderInstance.ID, true).Times(1).Return(&linodego.InstanceIP{Address: dummySharedIP}, nil)
mc.EXPECT().AddInstanceIPAddress(gomock.Any(), oldIpHolderInstance.ID, linodego.InstanceIPAddOptions{Public: true}).Times(1).Return(&linodego.InstanceIP{Address: dummySharedIP}, nil)
mc.EXPECT().GetInstanceIPAddresses(gomock.Any(), oldIpHolderInstance.ID).Times(1).Return(&linodego.InstanceIPAddressResponse{
IPv4: &linodego.InstanceIPv4Response{
Public: []*linodego.InstanceIP{{Address: publicIPv4.String()}, {Address: dummySharedIP}},
Public: []linodego.InstanceIP{{Address: publicIPv4.String()}, {Address: dummySharedIP}},
},
}, nil)
mc.EXPECT().ShareIPAddresses(gomock.Any(), linodego.IPAddressesShareOptions{
Expand All @@ -719,7 +719,7 @@ func testCiliumUpdateLoadBalancerAddNodeWithOldIpHolderNamingConvention(t *testi
mc.EXPECT().ListInstances(gomock.Any(), linodego.NewListOptions(1, string(rawFilter))).Times(1).Return([]linodego.Instance{oldIpHolderInstance}, nil)
mc.EXPECT().GetInstanceIPAddresses(gomock.Any(), oldIpHolderInstance.ID).Times(1).Return(&linodego.InstanceIPAddressResponse{
IPv4: &linodego.InstanceIPv4Response{
Public: []*linodego.InstanceIP{{Address: publicIPv4.String()}, {Address: dummySharedIP}},
Public: []linodego.InstanceIP{{Address: publicIPv4.String()}, {Address: dummySharedIP}},
},
}, nil)
mc.EXPECT().ShareIPAddresses(gomock.Any(), linodego.IPAddressesShareOptions{
Expand Down Expand Up @@ -762,10 +762,10 @@ func testCiliumUpdateLoadBalancerAddNodeWithNewIpHolderNamingConvention(t *testi
}
mc.EXPECT().ListInstances(gomock.Any(), linodego.NewListOptions(1, string(rawFilter))).Times(1).Return([]linodego.Instance{newIpHolderInstance}, nil)
dummySharedIP := dummyIP
mc.EXPECT().AddInstanceIPAddress(gomock.Any(), newIpHolderInstance.ID, true).Times(1).Return(&linodego.InstanceIP{Address: dummySharedIP}, nil)
mc.EXPECT().AddInstanceIPAddress(gomock.Any(), newIpHolderInstance.ID, linodego.InstanceIPAddOptions{Public: true}).Times(1).Return(&linodego.InstanceIP{Address: dummySharedIP}, nil)
mc.EXPECT().GetInstanceIPAddresses(gomock.Any(), newIpHolderInstance.ID).Times(1).Return(&linodego.InstanceIPAddressResponse{
IPv4: &linodego.InstanceIPv4Response{
Public: []*linodego.InstanceIP{{Address: publicIPv4.String()}, {Address: dummySharedIP}},
Public: []linodego.InstanceIP{{Address: publicIPv4.String()}, {Address: dummySharedIP}},
},
}, nil)
mc.EXPECT().ShareIPAddresses(gomock.Any(), linodego.IPAddressesShareOptions{
Expand Down Expand Up @@ -801,7 +801,7 @@ func testCiliumUpdateLoadBalancerAddNodeWithNewIpHolderNamingConvention(t *testi

mc.EXPECT().GetInstanceIPAddresses(gomock.Any(), newIpHolderInstance.ID).Times(1).Return(&linodego.InstanceIPAddressResponse{
IPv4: &linodego.InstanceIPv4Response{
Public: []*linodego.InstanceIP{{Address: publicIPv4.String()}, {Address: dummySharedIP}},
Public: []linodego.InstanceIP{{Address: publicIPv4.String()}, {Address: dummySharedIP}},
},
}, nil)
mc.EXPECT().ShareIPAddresses(gomock.Any(), linodego.IPAddressesShareOptions{
Expand Down
14 changes: 9 additions & 5 deletions cloud/linode/client/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import (
"os"
"time"

"github.com/linode/linodego"
"github.com/linode/linodego/v2"
"k8s.io/klog/v2"

_ "github.com/hexdigest/gowrap"
Expand All @@ -33,7 +33,7 @@ type Client interface {
ListInstanceConfigs(ctx context.Context, linodeID int, opts *linodego.ListOptions) ([]linodego.InstanceConfig, error)

GetInstanceIPAddresses(context.Context, int) (*linodego.InstanceIPAddressResponse, error)
AddInstanceIPAddress(ctx context.Context, linodeID int, public bool) (*linodego.InstanceIP, error)
AddInstanceIPAddress(ctx context.Context, linodeID int, options linodego.InstanceIPAddOptions) (*linodego.InstanceIP, error)
DeleteInstanceIPAddress(ctx context.Context, linodeID int, ipAddress string) error
ShareIPAddresses(ctx context.Context, opts linodego.IPAddressesShareOptions) error

Expand Down Expand Up @@ -67,7 +67,7 @@ type Client interface {
CreateFirewall(ctx context.Context, opts linodego.FirewallCreateOptions) (*linodego.Firewall, error)
DeleteFirewall(ctx context.Context, fwid int) error
GetFirewall(context.Context, int) (*linodego.Firewall, error)
UpdateFirewallRules(context.Context, int, linodego.FirewallRuleSet) (*linodego.FirewallRuleSet, error)
UpdateFirewallRules(context.Context, int, linodego.FirewallRulesUpdateOptions) (*linodego.FirewallRules, error)

ReserveIPAddress(ctx context.Context, opts linodego.ReserveIPOptions) (*linodego.InstanceIP, error)
DeleteReservedIPAddress(ctx context.Context, ipAddress string) error
Expand Down Expand Up @@ -97,6 +97,7 @@ func (t *tokenTransport) RoundTrip(req *http.Request) (*http.Response, error) {

// New creates a new linode client with a given token and default timeout.
func New(timeout time.Duration, tokenProvider TokenProvider) (*linodego.Client, error) {
var client *linodego.Client
userAgent := fmt.Sprintf("linode-cloud-controller-manager %s", linodego.DefaultUserAgent)
apiURL := os.Getenv("LINODE_URL")
if apiURL == "" {
Expand All @@ -108,8 +109,11 @@ func New(timeout time.Duration, tokenProvider TokenProvider) (*linodego.Client,
tokenProvider: tokenProvider,
}

linodeClient := linodego.NewClient(httpClient)
client, err := linodeClient.UseURL(apiURL)
linodeClient, err := linodego.NewClient(httpClient)
if err != nil {
return nil, err
}
client, err = linodeClient.UseURL(apiURL)
if err != nil {
return nil, err
}
Expand Down
8 changes: 4 additions & 4 deletions cloud/linode/client/client_with_metrics.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 4 additions & 4 deletions cloud/linode/client/mocks/mock_client.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

18 changes: 12 additions & 6 deletions cloud/linode/fake_linode_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import (
"strings"
"testing"

"github.com/linode/linodego"
"github.com/linode/linodego/v2"
)

const apiVersion = "v4"
Expand Down Expand Up @@ -531,9 +531,15 @@ func (f *fakeAPI) setupRoutes() {
}

firewall := linodego.Firewall{
ID: rand.Intn(9999),
Label: fco.Label,
Rules: fco.Rules,
ID: rand.Intn(9999),
Label: fco.Label,
Rules: linodego.FirewallRules{
Inbound: fco.Rules.Inbound,
InboundPolicy: fco.Rules.InboundPolicy,
Outbound: fco.Rules.Outbound,
OutboundPolicy: fco.Rules.OutboundPolicy,
Version: 1,
},
Tags: fco.Tags,
Status: "enabled",
}
Expand Down Expand Up @@ -735,7 +741,7 @@ func (f *fakeAPI) setupRoutes() {
})

f.mux.HandleFunc("PUT /v4/networking/firewalls/{firewallID}/rules", func(w http.ResponseWriter, r *http.Request) {
fwrs := new(linodego.FirewallRuleSet)
fwrs := new(linodego.FirewallRulesUpdateOptions)
if err := json.NewDecoder(r.Body).Decode(fwrs); err != nil {
f.t.Fatal(err)
}
Expand Down Expand Up @@ -785,7 +791,7 @@ func (f *fakeAPI) setupRoutes() {
nb.Label = nbuo.Label
}
if nbuo.Tags != nil {
nb.Tags = *nbuo.Tags
nb.Tags = nbuo.Tags
}

f.nb[strconv.Itoa(nb.ID)] = nb
Expand Down
2 changes: 1 addition & 1 deletion cloud/linode/health_check_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import (
"time"

"github.com/golang/mock/gomock"
"github.com/linode/linodego"
"github.com/linode/linodego/v2"

"github.com/linode/linode-cloud-controller-manager/cloud/linode/client/mocks"
)
Expand Down
Loading
Loading