Files
capsule/pkg/utils/kubernetes_version.go
T
cc4fb45d70 feat: upstream enterprise preview (#1841)
feat: upstream enterprise preview

---------

Signed-off-by: Oliver Baehler <oliver@sudo-i.net>
Co-authored-by: CorentinPtrl <pitrel.corentin@gmail.com>
2026-05-28 00:58:58 +02:00

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())
}