Skip to content

Commit 7ab21e9

Browse files
authored
Support-k8s-1.26 (#693)
## What allow installation on k8s `1.26.x` (previously we allowed only up to `1.25.x`) no other code changes required to support `1.26` ## Why EKS has 1.26 available, and i'm sure other cloud providers as well ## Notes improved k8s version check to use semver semantics for `1.21-0 - 1.26-0`
1 parent f5878a2 commit 7ab21e9

File tree

3 files changed

+7
-11
lines changed

3 files changed

+7
-11
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
VERSION=v0.1.45
1+
VERSION=v0.1.46
22

33
OUT_DIR=dist
44
YEAR?=$(shell date +"%Y")

pkg/store/store.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -145,8 +145,7 @@ type Store struct {
145145
NetworkTesterImage string
146146
TCPConnectionTesterGenerateName string
147147
TCPConnectionTesterName string
148-
MinKubeVersion string
149-
MaxKubeVersion string
148+
KubeVersionConstrint *semver.Constraints
150149
MasterIngressName string
151150
ClusterResourcesPath string
152151
InClusterPath string
@@ -265,8 +264,7 @@ func init() {
265264
s.NetworkTesterImage = "quay.io/codefresh/cf-venona-network-tester:latest"
266265
s.TCPConnectionTesterGenerateName = "cf-tcp-connections-tester-"
267266
s.TCPConnectionTesterName = "cf-tcp-connections-tester"
268-
s.MinKubeVersion = "v1.21.0"
269-
s.MaxKubeVersion = "v1.25.999"
267+
s.KubeVersionConstrint, _ = semver.NewConstraint("1.21-0 - 1.26-0")
270268
s.MasterIngressName = "-master"
271269
s.ClusterResourcesPath = "/bootstrap/cluster-resources.yaml"
272270
s.InClusterPath = "/bootstrap/cluster-resources/in-cluster"

pkg/util/kube/kube.go

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import (
2323
"strings"
2424
"time"
2525

26+
"github.com/Masterminds/semver/v3"
2627
"github.com/codefresh-io/cli-v2/pkg/log"
2728
"github.com/codefresh-io/cli-v2/pkg/store"
2829

@@ -36,7 +37,6 @@ import (
3637
k8serrors "k8s.io/apimachinery/pkg/api/errors"
3738
"k8s.io/apimachinery/pkg/api/resource"
3839
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
39-
"k8s.io/apimachinery/pkg/version"
4040
"k8s.io/client-go/kubernetes"
4141
)
4242

@@ -91,11 +91,9 @@ func EnsureClusterRequirements(ctx context.Context, opts ClusterRequirementsOpti
9191
return fmt.Errorf("failed to check the cluster's version: %w", err)
9292
}
9393

94-
minDelta := version.CompareKubeAwareVersionStrings(store.Get().MinKubeVersion, kubeVersion.String())
95-
maxDelta := version.CompareKubeAwareVersionStrings(store.Get().MaxKubeVersion, kubeVersion.String())
96-
97-
if minDelta < 0 || maxDelta > 0 {
98-
return fmt.Errorf("%s: cluster's server version must be between %s and %s", requirementsValidationErrorMessage, store.Get().MinKubeVersion, store.Get().MaxKubeVersion)
94+
v := semver.MustParse(kubeVersion.String())
95+
if !store.Get().KubeVersionConstrint.Check(v) {
96+
return fmt.Errorf("%s: cluster's server version must match %s", requirementsValidationErrorMessage, store.Get().KubeVersionConstrint)
9997
}
10098

10199
req := validationRequest{

0 commit comments

Comments
 (0)