@@ -27,6 +27,66 @@ import (
2727 "k8s.io/kops/util/pkg/hashing"
2828)
2929
30+ func TestBaseURL_OverridesVersionFromKopsBaseURL (t * testing.T ) {
31+ origVersion := kops .Version
32+ t .Cleanup (func () {
33+ kops .Version = origVersion
34+ kopsBaseURL = nil
35+ })
36+
37+ tests := []struct {
38+ name string
39+ kopsBaseURL string
40+ expectedVersion string
41+ }{
42+ {
43+ name : "postsubmit URL" ,
44+ kopsBaseURL : "https://storage.googleapis.com/k8s-staging-kops/kops/releases/1.35.0-beta.2+v1.35.0-beta.1-384-gf369c3ab16" ,
45+ expectedVersion : "1.35.0-beta.2+v1.35.0-beta.1-384-gf369c3ab16" ,
46+ },
47+ {
48+ name : "postsubmit URL with trailing slash" ,
49+ kopsBaseURL : "https://storage.googleapis.com/k8s-staging-kops/kops/releases/1.35.0-beta.2+v1.35.0-beta.1-384-gf369c3ab16/" ,
50+ expectedVersion : "1.35.0-beta.2+v1.35.0-beta.1-384-gf369c3ab16" ,
51+ },
52+ {
53+ name : "CI URL" ,
54+ kopsBaseURL : "https://storage.googleapis.com/k8s-staging-kops/kops/ci/1.35.0-beta.2+abc123" ,
55+ expectedVersion : "1.35.0-beta.2+abc123" ,
56+ },
57+ {
58+ name : "CI URL with trailing slash" ,
59+ kopsBaseURL : "https://storage.googleapis.com/k8s-staging-kops/kops/ci/1.35.0-beta.2+abc123/" ,
60+ expectedVersion : "1.35.0-beta.2+abc123" ,
61+ },
62+ {
63+ name : "release URL" ,
64+ kopsBaseURL : "https://artifacts.k8s.io/binaries/kops/1.35.0" ,
65+ expectedVersion : "1.35.0" ,
66+ },
67+ {
68+ name : "same version as binary does not override" ,
69+ kopsBaseURL : fmt .Sprintf ("https://example.com/kops/%s" , origVersion ),
70+ expectedVersion : origVersion ,
71+ },
72+ }
73+ for _ , tc := range tests {
74+ t .Run (tc .name , func (t * testing.T ) {
75+ kops .Version = origVersion
76+ kopsBaseURL = nil
77+ t .Setenv ("KOPS_BASE_URL" , tc .kopsBaseURL )
78+
79+ _ , err := BaseURL ()
80+ if err != nil {
81+ t .Fatalf ("BaseURL() error: %v" , err )
82+ }
83+ if kops .Version != tc .expectedVersion {
84+ t .Errorf ("kops.Version = %q, want %q" , kops .Version , tc .expectedVersion )
85+ }
86+ })
87+ }
88+ }
89+
3090func Test_BuildMirroredAsset (t * testing.T ) {
3191 tests := []struct {
3292 url string
0 commit comments