Skip to content

Commit 5a33481

Browse files
stackit-skenschad
andauthored
[release-v1.31] Update IaaS API to 1.0.0 (#50)
* Update IaaS API to v1 spec Signed-off-by: Niclas Schad <[email protected]> * crash CSI if STACKIT_REGION is not set Signed-off-by: Niclas Schad <[email protected]> --------- Signed-off-by: Niclas Schad <[email protected]> Co-authored-by: Niclas Schad <[email protected]>
1 parent f0e1e64 commit 5a33481

File tree

14 files changed

+2145
-1136
lines changed

14 files changed

+2145
-1136
lines changed

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ require (
1515
github.com/spf13/cobra v1.10.1
1616
github.com/spf13/pflag v1.0.10
1717
github.com/stackitcloud/stackit-sdk-go/core v0.17.3
18-
github.com/stackitcloud/stackit-sdk-go/services/iaas v0.31.0
18+
github.com/stackitcloud/stackit-sdk-go/services/iaas v1.0.0
1919
github.com/stackitcloud/stackit-sdk-go/services/loadbalancer v1.6.0
2020
go.uber.org/mock v0.6.0
2121
golang.org/x/sync v0.17.0

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -185,8 +185,8 @@ github.com/stackitcloud/cloud-provider v0.31.7-ske-1 h1:gSIY096covfItQgEg5FUUURI
185185
github.com/stackitcloud/cloud-provider v0.31.7-ske-1/go.mod h1:nz9vAQrcHnIuwgX1xB7Btqkg37huHbhGBly+Ujq2kWU=
186186
github.com/stackitcloud/stackit-sdk-go/core v0.17.3 h1:GsZGmRRc/3GJLmCUnsZswirr5wfLRrwavbnL/renOqg=
187187
github.com/stackitcloud/stackit-sdk-go/core v0.17.3/go.mod h1:HBCXJGPgdRulplDzhrmwC+Dak9B/x0nzNtmOpu+1Ahg=
188-
github.com/stackitcloud/stackit-sdk-go/services/iaas v0.31.0 h1:dnEjyapuv8WwRN5vE2z6+4/+ZqQTBx+bX27x2nOF7Jw=
189-
github.com/stackitcloud/stackit-sdk-go/services/iaas v0.31.0/go.mod h1:854gnLR92NvAbJAA1xZEumrtNh1DoBP1FXTMvhwYA6w=
188+
github.com/stackitcloud/stackit-sdk-go/services/iaas v1.0.0 h1:qLMpd5whPMLnaLEdFQjK51q/o9V6eMFMORBDSsyGyNI=
189+
github.com/stackitcloud/stackit-sdk-go/services/iaas v1.0.0/go.mod h1:854gnLR92NvAbJAA1xZEumrtNh1DoBP1FXTMvhwYA6w=
190190
github.com/stackitcloud/stackit-sdk-go/services/loadbalancer v1.6.0 h1:q33ZaCBVEBUsnMDxYyuJKtJvGcE5nKgvuPed3s8zXNI=
191191
github.com/stackitcloud/stackit-sdk-go/services/loadbalancer v1.6.0/go.mod h1:20QOZ3rBC9wTGgzXzLz9M6YheX0VaxWE0/JI+s8On7k=
192192
github.com/stackitcloud/stackit-sdk-go/services/resourcemanager v0.17.1 h1:r7oaINTwLmIG31AaqKTuQHHFF8YNuYGzi+46DOuSjw4=

pkg/ccm/instances.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -187,8 +187,8 @@ func instanceIDFromProviderID(providerID string) (instanceID, region string, err
187187
return matches[2], matches[1], nil
188188
}
189189

190-
func getServerByName(ctx context.Context, client stackit.NodeClient, name, projectID string) (*iaas.Server, error) {
191-
servers, err := client.ListServers(ctx, projectID)
190+
func getServerByName(ctx context.Context, client stackit.NodeClient, name, projectID, region string) (*iaas.Server, error) {
191+
servers, err := client.ListServers(ctx, projectID, region)
192192
if err != nil {
193193
return nil, fmt.Errorf("failed to list servers: %w", err)
194194
}
@@ -211,7 +211,7 @@ func getServerByName(ctx context.Context, client stackit.NodeClient, name, proje
211211

212212
func (i *Instances) getInstance(ctx context.Context, node *corev1.Node) (*iaas.Server, error) {
213213
if node.Spec.ProviderID == "" {
214-
return getServerByName(ctx, i.iaasClient, node.Name, i.projectID)
214+
return getServerByName(ctx, i.iaasClient, node.Name, i.projectID, i.region)
215215
}
216216

217217
instanceID, instanceRegion, err := instanceIDFromProviderID(node.Spec.ProviderID)
@@ -223,7 +223,7 @@ func (i *Instances) getInstance(ctx context.Context, node *corev1.Node) (*iaas.S
223223
return nil, fmt.Errorf("ProviderID \"%s\" didn't match supported region \"%s\"", node.Spec.ProviderID, i.region)
224224
}
225225

226-
server, err := i.iaasClient.GetServer(ctx, i.projectID, instanceID)
226+
server, err := i.iaasClient.GetServer(ctx, i.projectID, i.region, instanceID)
227227
if stackit.IsNotFound(err) {
228228
return nil, cloudprovider.InstanceNotFound
229229
}

pkg/ccm/instances_test.go

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -38,24 +38,26 @@ var _ = Describe("Node Controller", func() {
3838
instance *Instances
3939

4040
projectID string
41+
region string
4142
serverID string
4243
)
4344

4445
BeforeEach(func() {
4546
projectID = "my-project"
47+
region = "eu01"
4648
serverID = "my-server"
4749

4850
ctrl := gomock.NewController(GinkgoT())
4951
nodeMockClient = stackit.NewMockNodeClient(ctrl)
5052

5153
var err error
52-
instance, err = NewInstance(nodeMockClient, projectID, "eu-01")
54+
instance, err = NewInstance(nodeMockClient, projectID, "eu01")
5355
Expect(err).NotTo(HaveOccurred())
5456
})
5557

5658
Describe("InstanceExists", func() {
5759
It("does not error if instance not found", func() {
58-
nodeMockClient.EXPECT().ListServers(gomock.Any(), projectID).Return(&[]iaas.Server{}, nil)
60+
nodeMockClient.EXPECT().ListServers(gomock.Any(), projectID, region).Return(&[]iaas.Server{}, nil)
5961

6062
node := &corev1.Node{
6163
ObjectMeta: metav1.ObjectMeta{Name: "foo"},
@@ -67,7 +69,7 @@ var _ = Describe("Node Controller", func() {
6769
})
6870

6971
It("successfully get the instance when provider ID not there", func() {
70-
nodeMockClient.EXPECT().ListServers(gomock.Any(), projectID).Return(&[]iaas.Server{
72+
nodeMockClient.EXPECT().ListServers(gomock.Any(), projectID, region).Return(&[]iaas.Server{
7173
{
7274
Name: ptr.To("foo"),
7375
},
@@ -83,7 +85,7 @@ var _ = Describe("Node Controller", func() {
8385
})
8486

8587
It("successfully get the instance when provider ID is there", func() {
86-
nodeMockClient.EXPECT().GetServer(gomock.Any(), projectID, serverID).Return(&iaas.Server{
88+
nodeMockClient.EXPECT().GetServer(gomock.Any(), projectID, region, serverID).Return(&iaas.Server{
8789
Name: ptr.To("foo"),
8890
}, nil)
8991

@@ -100,7 +102,7 @@ var _ = Describe("Node Controller", func() {
100102
})
101103

102104
It("error when list server fails", func() {
103-
nodeMockClient.EXPECT().ListServers(gomock.Any(), projectID).Return(nil, fmt.Errorf("failed due to some reason"))
105+
nodeMockClient.EXPECT().ListServers(gomock.Any(), projectID, region).Return(nil, fmt.Errorf("failed due to some reason"))
104106

105107
node := &corev1.Node{
106108
ObjectMeta: metav1.ObjectMeta{Name: "foo"},
@@ -111,7 +113,7 @@ var _ = Describe("Node Controller", func() {
111113
})
112114

113115
It("does not error when get server instance not found", func() {
114-
nodeMockClient.EXPECT().GetServer(gomock.Any(), projectID, serverID).Return(nil, stackit.ErrorNotFound)
116+
nodeMockClient.EXPECT().GetServer(gomock.Any(), projectID, region, serverID).Return(nil, stackit.ErrorNotFound)
115117

116118
node := &corev1.Node{
117119
ObjectMeta: metav1.ObjectMeta{Name: "foo"},
@@ -128,7 +130,7 @@ var _ = Describe("Node Controller", func() {
128130

129131
Describe("InstanceShutdown", func() {
130132
It("successfully gets the instance status with provider ID", func() {
131-
nodeMockClient.EXPECT().ListServers(gomock.Any(), projectID).Return(&[]iaas.Server{
133+
nodeMockClient.EXPECT().ListServers(gomock.Any(), projectID, region).Return(&[]iaas.Server{
132134
{
133135
Name: ptr.To("foo"),
134136
Status: ptr.To(instanceStopping),
@@ -145,7 +147,7 @@ var _ = Describe("Node Controller", func() {
145147
})
146148

147149
It("successfully gets the instance status without provider ID", func() {
148-
nodeMockClient.EXPECT().GetServer(gomock.Any(), projectID, serverID).Return(&iaas.Server{
150+
nodeMockClient.EXPECT().GetServer(gomock.Any(), projectID, region, serverID).Return(&iaas.Server{
149151
Name: ptr.To("foo"),
150152
Status: ptr.To("ACTIVE"),
151153
}, nil)
@@ -163,7 +165,7 @@ var _ = Describe("Node Controller", func() {
163165
})
164166

165167
It("fails if server not found", func() {
166-
nodeMockClient.EXPECT().ListServers(gomock.Any(), projectID).Return(nil, stackit.ErrorNotFound)
168+
nodeMockClient.EXPECT().ListServers(gomock.Any(), projectID, region).Return(nil, stackit.ErrorNotFound)
167169

168170
node := &corev1.Node{
169171
ObjectMeta: metav1.ObjectMeta{Name: "foo"},
@@ -177,7 +179,7 @@ var _ = Describe("Node Controller", func() {
177179

178180
Describe("InstanceMetadata", func() {
179181
It("does not error if instance not found", func() {
180-
nodeMockClient.EXPECT().ListServers(gomock.Any(), projectID).Return(&[]iaas.Server{}, nil)
182+
nodeMockClient.EXPECT().ListServers(gomock.Any(), projectID, region).Return(&[]iaas.Server{}, nil)
181183

182184
node := &corev1.Node{
183185
ObjectMeta: metav1.ObjectMeta{Name: "foo"},
@@ -189,7 +191,7 @@ var _ = Describe("Node Controller", func() {
189191
})
190192

191193
It("successfully get all the metadata values", func() {
192-
nodeMockClient.EXPECT().ListServers(gomock.Any(), projectID).Return(&[]iaas.Server{
194+
nodeMockClient.EXPECT().ListServers(gomock.Any(), projectID, region).Return(&[]iaas.Server{
193195
{
194196
Name: ptr.To("foo"),
195197
Id: ptr.To(serverID),
@@ -220,11 +222,11 @@ var _ = Describe("Node Controller", func() {
220222
Address: "foo",
221223
},
222224
}))
223-
Expect(metadata.Region).To(Equal("eu-01"))
225+
Expect(metadata.Region).To(Equal("eu01"))
224226
})
225227

226228
It("errors when list server fails", func() {
227-
nodeMockClient.EXPECT().ListServers(gomock.Any(), projectID).Return(nil, fmt.Errorf("failed due to some reason"))
229+
nodeMockClient.EXPECT().ListServers(gomock.Any(), projectID, region).Return(nil, fmt.Errorf("failed due to some reason"))
228230

229231
node := &corev1.Node{
230232
ObjectMeta: metav1.ObjectMeta{Name: "foo"},

0 commit comments

Comments
 (0)