mirror of
https://github.com/kubernetes-sigs/kind.git
synced 2025-11-30 23:16:04 +07:00
Merge pull request #3815 from BenTheElder/version-fallback
add fallback version detection for tarballs < v1.31
This commit is contained in:
@@ -27,6 +27,7 @@ import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"sigs.k8s.io/kind/pkg/errors"
|
||||
"sigs.k8s.io/kind/pkg/log"
|
||||
)
|
||||
|
||||
@@ -78,8 +79,15 @@ func (b *remoteBuilder) Build() (Bits, error) {
|
||||
|
||||
binDir := filepath.Join(tmpDir, "kubernetes/server/bin")
|
||||
contents, err := os.ReadFile(filepath.Join(tmpDir, "kubernetes/version"))
|
||||
// fallback for Kubernetes < v1.31 which doesn't have the version file
|
||||
// this approach only works for release tags as the format happens to match
|
||||
// for pre-release builds the docker tag is mangled and not valid semver
|
||||
if err != nil && os.IsNotExist(err) {
|
||||
b.logger.Warn("WARNING: Using fallback version detection due to missing version file (This command works best with Kubernetes v1.31+)")
|
||||
contents, err = os.ReadFile(filepath.Join(binDir, "kube-apiserver.docker_tag"))
|
||||
}
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return nil, errors.Wrap(err, "failed to get version")
|
||||
}
|
||||
sourceVersionRaw := strings.TrimSpace(string(contents))
|
||||
return &bits{
|
||||
|
||||
@@ -22,6 +22,7 @@ import (
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
"sigs.k8s.io/kind/pkg/errors"
|
||||
"sigs.k8s.io/kind/pkg/log"
|
||||
)
|
||||
|
||||
@@ -59,8 +60,15 @@ func (b *directoryBuilder) Build() (Bits, error) {
|
||||
|
||||
binDir := filepath.Join(tmpDir, "kubernetes/server/bin")
|
||||
contents, err := os.ReadFile(filepath.Join(tmpDir, "kubernetes/version"))
|
||||
// fallback for Kubernetes < v1.31 which doesn't have the version file
|
||||
// this approach only works for release tags as the format happens to match
|
||||
// for pre-release builds the docker tag is mangled and not valid semver
|
||||
if err != nil && os.IsNotExist(err) {
|
||||
b.logger.Warn("WARNING: Using fallback version detection due to missing version file (This command works best with Kubernetes v1.31+)")
|
||||
contents, err = os.ReadFile(filepath.Join(binDir, "kube-apiserver.docker_tag"))
|
||||
}
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return nil, errors.Wrap(err, "failed to get version")
|
||||
}
|
||||
sourceVersionRaw := strings.TrimSpace(string(contents))
|
||||
return &bits{
|
||||
|
||||
Reference in New Issue
Block a user