Skip to content

Commit 93dd80b

Browse files
Saas 7194 fix (#129)
1 parent a43d5b5 commit 93dd80b

File tree

6 files changed

+39
-8
lines changed

6 files changed

+39
-8
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "venona",
3-
"version": "1.2.7",
3+
"version": "1.2.8",
44
"description": "Codefresh agent to run on Codefresh's runtime environment and execute pipeline",
55
"main": "index.js",
66
"scripts": {

venonactl/VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.2.7
1+
1.2.8

venonactl/go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ go 1.13
44

55
require (
66
github.com/Azure/go-autorest/autorest v0.10.0 // indirect
7-
github.com/Masterminds/semver v1.5.0 // indirect
7+
github.com/Masterminds/semver v1.5.0
88
github.com/Masterminds/sprig v2.22.0+incompatible
99
github.com/briandowns/spinner v1.11.1
1010
github.com/codefresh-io/go-sdk v0.18.0

venonactl/pkg/plugins/helper.go

Lines changed: 34 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,11 @@ import (
3333
"github.com/codefresh-io/venona/venonactl/pkg/logger"
3434
templates "github.com/codefresh-io/venona/venonactl/pkg/templates/kubernetes"
3535

36+
"github.com/Masterminds/semver"
3637
"k8s.io/apimachinery/pkg/api/resource"
3738
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
3839
"k8s.io/apimachinery/pkg/runtime"
40+
"k8s.io/apimachinery/pkg/version"
3941
"k8s.io/client-go/kubernetes/scheme"
4042
)
4143

@@ -52,6 +54,8 @@ type (
5254
}
5355
)
5456

57+
var requiredK8sVersion, _ = semver.NewConstraint(">= 1.10.0")
58+
5559
func unescape(s string) template.HTML {
5660
return template.HTML(s)
5761
}
@@ -149,8 +153,22 @@ func getKubeObjectsFromTempalte(values map[string]interface{}, pattern string, l
149153
return KubeObjectsFromTemplates(templatesMap, values, pattern, logger)
150154
}
151155

152-
func ensureClusterRequirements(client *kubernetes.Clientset, req validationRequest) (validationResult, error) {
153-
result := validationResult{}
156+
func ensureClusterRequirements(client *kubernetes.Clientset, req validationRequest, logger logger.Logger) (validationResult, error) {
157+
result := validationResult{true, nil}
158+
159+
v, err := client.ServerVersion()
160+
if err != nil {
161+
// should not fail if can't get version
162+
logger.Warn("Failed to validate kubernetes version", "cause", err)
163+
} else if res, err := testKubernetesVersion(v); !res {
164+
if err != nil {
165+
logger.Warn("Failed to validate kubernetes version", "cause", err)
166+
} else {
167+
result.isValid = false
168+
result.message = append(result.message, fmt.Sprintf("Cluster does not meet the version requirements, minimum supported version is: '1.10.0' found version: '%v'", v))
169+
}
170+
}
171+
154172
nodes, err := client.CoreV1().Nodes().List(metav1.ListOptions{})
155173
if err != nil {
156174
return result, err
@@ -159,7 +177,6 @@ func ensureClusterRequirements(client *kubernetes.Clientset, req validationReque
159177
return result, errors.New("Nodes not found")
160178
}
161179

162-
result.isValid = true
163180
if len(nodes.Items) == 0 {
164181
result.message = append(result.message, "No nodes in cluster")
165182
result.isValid = false
@@ -181,6 +198,20 @@ func ensureClusterRequirements(client *kubernetes.Clientset, req validationReque
181198
return result, nil
182199
}
183200

201+
func testKubernetesVersion(version *version.Info) (bool, error) {
202+
v, err := semver.NewVersion(version.String())
203+
if err != nil {
204+
return false, err
205+
}
206+
// extract only major, minor and patch
207+
verStr := fmt.Sprintf("%v.%v.%v", v.Major(), v.Minor(), v.Patch())
208+
v, err = semver.NewVersion(verStr)
209+
if err != nil {
210+
return false, err
211+
}
212+
return requiredK8sVersion.Check(v), nil
213+
}
214+
184215
func testNode(n v1.Node, req validationRequest) []string {
185216
result := []string{}
186217

venonactl/pkg/plugins/runtime-environment.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ func (u *runtimeEnvironmentPlugin) Install(opt *InstallOptions, v Values) (Value
8989
res, err := ensureClusterRequirements(cs, validationRequest{
9090
cpu: "1",
9191
momorySize: "1Gi",
92-
})
92+
}, u.logger)
9393
if err != nil {
9494
return nil, err
9595
}

venonactl/pkg/plugins/venona.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ func (u *venonaPlugin) Install(opt *InstallOptions, v Values) (Values, error) {
7878
res, err := ensureClusterRequirements(cs, validationRequest{
7979
cpu: "500m",
8080
momorySize: "1Gi",
81-
})
81+
}, u.logger)
8282
if err != nil {
8383
return nil, err
8484
}

0 commit comments

Comments
 (0)