Skip to content

Commit 21e8831

Browse files
Merge pull request #37 from codefresh-io/CR-8836-sync-v1.1.0
fix: Handle minor version with '+' when determining ingress mode (#15
2 parents dbdaf07 + cc7a3c4 commit 21e8831

File tree

2 files changed

+33
-2
lines changed

2 files changed

+33
-2
lines changed

utils/ingress/ingress.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -275,7 +275,11 @@ func DetermineIngressMode(apiVersion string, d discovery.ServerVersionInterface)
275275
if err != nil {
276276
return 0, err
277277
}
278-
minor, err := strconv.Atoi(ver.Minor)
278+
verMinor := ver.Minor
279+
if strings.HasSuffix(ver.Minor, "+") {
280+
verMinor = ver.Minor[0 : len(ver.Minor)-1]
281+
}
282+
minor, err := strconv.Atoi(verMinor)
279283
if err != nil {
280284
return 0, err
281285
}
@@ -286,5 +290,4 @@ func DetermineIngressMode(apiVersion string, d discovery.ServerVersionInterface)
286290
return IngressModeNetworking, nil
287291
}
288292
return IngressModeExtensions, nil
289-
290293
}

utils/ingress/ingress_test.go

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -329,6 +329,12 @@ func TestDetermineIngressMode(t *testing.T) {
329329
faKeDiscovery: newFakeDiscovery("1", "18", nil),
330330
expectedMode: IngressModeExtensions,
331331
},
332+
{
333+
name: "will return networking mode if server minor version has '+' suffix, e.g. 1.19+",
334+
apiVersion: "",
335+
faKeDiscovery: newFakeDiscovery("1", "19+", nil),
336+
expectedMode: IngressModeNetworking,
337+
},
332338
{
333339
name: "will return error if fails to retrieve server version",
334340
apiVersion: "",
@@ -358,6 +364,28 @@ func TestDetermineIngressMode(t *testing.T) {
358364
Err: errors.New("invalid syntax"),
359365
},
360366
},
367+
{
368+
name: "will return error if fails to parse minor version with '+' suffix, e.g. 1.wrong+",
369+
apiVersion: "",
370+
faKeDiscovery: newFakeDiscovery("1", "wrong+", nil),
371+
expectedMode: 0,
372+
expectedError: &strconv.NumError{
373+
Func: "Atoi",
374+
Num: "wrong",
375+
Err: errors.New("invalid syntax"),
376+
},
377+
},
378+
{
379+
name: "will return error if fails to parse minor version with just '+'",
380+
apiVersion: "",
381+
faKeDiscovery: newFakeDiscovery("1", "+", nil),
382+
expectedMode: 0,
383+
expectedError: &strconv.NumError{
384+
Func: "Atoi",
385+
Num: "",
386+
Err: errors.New("invalid syntax"),
387+
},
388+
},
361389
}
362390
for _, c := range cases {
363391
c := c // necessary to ensure all test cases are executed when running in parallel mode

0 commit comments

Comments
 (0)