1
0
mirror of https://github.com/rancher/rke.git synced 2025-09-02 15:34:36 +00:00

added validation error for weave for k8s version >=1.30.0

This commit is contained in:
vardhaman22
2024-06-28 14:57:50 +05:30
parent 8d11342949
commit 29f8933eac
2 changed files with 64 additions and 0 deletions

View File

@@ -215,6 +215,16 @@ func validateNetworkOptions(c *Cluster) error {
}
if c.Network.Plugin == WeaveNetworkPlugin {
supported, err := isWeaveSupportedK8sVersion(c.Version)
if err != nil {
return fmt.Errorf("error while checking weave support for cluster version: %w", err)
}
if !supported {
logrus.Errorf("weave CNI support is removed for k8s version >=1.30.0")
return fmt.Errorf("weave CNI support is removed for k8s version >=1.30.0")
}
if err := warnWeaveDeprecation(c.Version); err != nil {
return fmt.Errorf("Error while printing Weave deprecation message: %w", err)
}
@@ -732,3 +742,8 @@ func warnWeaveDeprecation(k8sVersion string) error {
}
return nil
}
// isWeaveSupportedK8sVersion checks if weave CNI is supported for a given kubernetes version
func isWeaveSupportedK8sVersion(k8sVersion string) (bool, error) {
return util.SemVerMatchRange(k8sVersion, "<1.30.0-rancher0")
}

View File

@@ -0,0 +1,49 @@
package cluster
import (
"testing"
"github.com/rancher/rke/types"
"github.com/stretchr/testify/assert"
)
func TestValidateNetworkOptions(t *testing.T) {
t.Run("weave with k8s v1.30.0 or greater", func(tt *testing.T) {
cluster := &Cluster{
RancherKubernetesEngineConfig: types.RancherKubernetesEngineConfig{
Version: "v1.30.0-rancher1",
Network: types.NetworkConfig{
Plugin: WeaveNetworkPlugin,
},
},
}
err := validateNetworkOptions(cluster)
assert.NotNil(t, err)
assert.EqualError(t, err, "weave CNI support is removed for k8s version >=1.30.0")
cluster.Version = "v1.30.1-rancher1"
err = validateNetworkOptions(cluster)
assert.NotNil(t, err)
assert.EqualError(t, err, "weave CNI support is removed for k8s version >=1.30.0")
})
t.Run("weave with k8s version less than v1.30.0", func(tt *testing.T) {
cluster := &Cluster{
RancherKubernetesEngineConfig: types.RancherKubernetesEngineConfig{
Version: "v1.29.0-rancher1",
Network: types.NetworkConfig{
Plugin: WeaveNetworkPlugin,
},
},
}
err := validateNetworkOptions(cluster)
assert.Nil(t, err)
cluster.Version = "v1.28.5-rancher1"
err = validateNetworkOptions(cluster)
assert.Nil(t, err)
})
}