mirror of
https://github.com/projectcapsule/capsule.git
synced 2026-08-19 12:36:39 +00:00
feat: upstream enterprise preview --------- Signed-off-by: Oliver Baehler <oliver@sudo-i.net> Co-authored-by: CorentinPtrl <pitrel.corentin@gmail.com>
48 lines
1.0 KiB
Go
48 lines
1.0 KiB
Go
// Copyright 2020-2026 Project Capsule Authors
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package utils
|
|
|
|
import (
|
|
"k8s.io/apimachinery/pkg/util/version"
|
|
"k8s.io/client-go/discovery"
|
|
)
|
|
|
|
var versionsWithNodeFix = []string{"v1.18.18", "v1.19.10", "v1.20.6", "v1.21.0"}
|
|
|
|
func NodeWebhookSupported(currentVersion *version.Version) (bool, error) {
|
|
versions := make([]*version.Version, 0, len(versionsWithNodeFix))
|
|
|
|
for _, v := range versionsWithNodeFix {
|
|
ver, err := version.ParseGeneric(v)
|
|
if err != nil {
|
|
return false, err
|
|
}
|
|
|
|
versions = append(versions, ver)
|
|
}
|
|
|
|
for _, v := range versions {
|
|
if currentVersion.Major() == v.Major() {
|
|
if currentVersion.Minor() < v.Minor() {
|
|
return false, nil
|
|
}
|
|
|
|
if currentVersion.Minor() == v.Minor() && currentVersion.Patch() < v.Patch() {
|
|
return false, nil
|
|
}
|
|
}
|
|
}
|
|
|
|
return true, nil
|
|
}
|
|
|
|
func GetK8sVersionFromConfig(dc discovery.DiscoveryInterface) (*version.Version, error) {
|
|
sv, err := dc.ServerVersion()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return version.ParseGeneric(sv.String())
|
|
}
|