Skip to content

Commit 49b4b6e

Browse files
authored
parse k8s minor version for eks (#198)
1 parent 5e8dbc2 commit 49b4b6e

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

pkg/k8sutil/clientset.go

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package k8sutil
22

33
import (
4+
"regexp"
45
"strconv"
56

67
"github.com/pkg/errors"
@@ -76,7 +77,15 @@ func GetK8sMinorVersion(clientset kubernetes.Interface) (int, error) {
7677
return -1, errors.Wrap(err, "failed to get kubernetes server version")
7778
}
7879

79-
k8sMinorVersion, err := strconv.Atoi(k8sVersion.Minor)
80+
// remove + sign from Minor version if any (for EKS)
81+
// https://github.com/aws/containers-roadmap/issues/1404
82+
reg := regexp.MustCompile(`[0-9]+`)
83+
minorVersion := reg.FindString(k8sVersion.Minor)
84+
if minorVersion == "" {
85+
return -1, errors.New("failed to get k8s minor version")
86+
}
87+
88+
k8sMinorVersion, err := strconv.Atoi(minorVersion)
8089
if err != nil {
8190
return -1, errors.Wrap(err, "failed to convert k8s minor version to int")
8291
}

pkg/k8sutil/clientset_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ func TestGetK8sMinorVersion(t *testing.T) {
3131
{"expect minor version 22", args{mockClientsetK8sVersion("1", "22")}, 22, false},
3232
{"expect minor version 21", args{mockClientsetK8sVersion("1", "21")}, 21, false},
3333
{"expect minor version conversion error", args{mockClientsetK8sVersion("1", "a")}, -1, true},
34+
{"expect minor version 30", args{mockClientsetK8sVersion("1", "30+")}, 30, false},
3435
}
3536
for _, tt := range tests {
3637
t.Run(tt.name, func(t *testing.T) {

0 commit comments

Comments
 (0)