Stop exposing v1beta3 by default
This commit is contained in:
@@ -31,7 +31,6 @@ import (
|
||||
|
||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/api"
|
||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/api/latest"
|
||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/api/registered"
|
||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/runtime"
|
||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/util"
|
||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/version"
|
||||
@@ -174,7 +173,7 @@ func MatchesServerVersion(client *Client, c *Config) error {
|
||||
// stderr and try client's registered versions in order of preference.
|
||||
// - If version is config default, and the server does not support it,
|
||||
// return an error.
|
||||
func NegotiateVersion(client *Client, c *Config, version string) (string, error) {
|
||||
func NegotiateVersion(client *Client, c *Config, version string, clientRegisteredVersions []string) (string, error) {
|
||||
var err error
|
||||
if client == nil {
|
||||
client, err = New(c)
|
||||
@@ -183,7 +182,7 @@ func NegotiateVersion(client *Client, c *Config, version string) (string, error)
|
||||
}
|
||||
}
|
||||
clientVersions := util.StringSet{}
|
||||
for _, v := range registered.RegisteredVersions {
|
||||
for _, v := range clientRegisteredVersions {
|
||||
clientVersions.Insert(v)
|
||||
}
|
||||
apiVersions, err := client.ServerAPIVersions()
|
||||
@@ -214,7 +213,7 @@ func NegotiateVersion(client *Client, c *Config, version string) (string, error)
|
||||
}
|
||||
}
|
||||
|
||||
for _, clientVersion := range registered.RegisteredVersions {
|
||||
for _, clientVersion := range clientRegisteredVersions {
|
||||
if serverVersions.Has(clientVersion) {
|
||||
// Version was not explicitly requested in command config (--api-version).
|
||||
// Ok to fall back to a supported version with a warning.
|
||||
@@ -225,7 +224,7 @@ func NegotiateVersion(client *Client, c *Config, version string) (string, error)
|
||||
}
|
||||
}
|
||||
return "", fmt.Errorf("Failed to negotiate an api version. Server supports: %v. Client supports: %v.",
|
||||
serverVersions, registered.RegisteredVersions)
|
||||
serverVersions, clientRegisteredVersions)
|
||||
}
|
||||
|
||||
// NewOrDie creates a Kubernetes client and panics if the provided API version is not recognized.
|
||||
|
@@ -333,39 +333,44 @@ func TestNegotiateVersion(t *testing.T) {
|
||||
tests := []struct {
|
||||
name, version, expectedVersion string
|
||||
serverVersions []string
|
||||
clientVersions []string
|
||||
config *Config
|
||||
expectErr bool
|
||||
}{
|
||||
{
|
||||
name: "server supports client default",
|
||||
version: "v1",
|
||||
expectedVersion: "v1",
|
||||
version: "version1",
|
||||
config: &Config{},
|
||||
serverVersions: []string{"v1beta3", "v1"},
|
||||
serverVersions: []string{"version1", testapi.Version()},
|
||||
clientVersions: []string{"version1", testapi.Version()},
|
||||
expectedVersion: "version1",
|
||||
expectErr: false,
|
||||
},
|
||||
{
|
||||
name: "server falls back to client supported",
|
||||
version: "v1",
|
||||
expectedVersion: "v1beta3",
|
||||
version: testapi.Version(),
|
||||
config: &Config{},
|
||||
serverVersions: []string{"v1beta3"},
|
||||
serverVersions: []string{"version1"},
|
||||
clientVersions: []string{"version1", testapi.Version()},
|
||||
expectedVersion: "version1",
|
||||
expectErr: false,
|
||||
},
|
||||
{
|
||||
name: "explicit version supported",
|
||||
version: "",
|
||||
expectedVersion: "v1",
|
||||
config: &Config{Version: "v1"},
|
||||
serverVersions: []string{"v1beta3", "v1"},
|
||||
config: &Config{Version: testapi.Version()},
|
||||
serverVersions: []string{"version1", testapi.Version()},
|
||||
clientVersions: []string{"version1", testapi.Version()},
|
||||
expectedVersion: testapi.Version(),
|
||||
expectErr: false,
|
||||
},
|
||||
{
|
||||
name: "explicit version not supported",
|
||||
version: "",
|
||||
config: &Config{Version: testapi.Version()},
|
||||
serverVersions: []string{"version1"},
|
||||
clientVersions: []string{"version1", testapi.Version()},
|
||||
expectedVersion: "",
|
||||
config: &Config{Version: "v1"},
|
||||
serverVersions: []string{"v1beta3"},
|
||||
expectErr: true,
|
||||
},
|
||||
}
|
||||
@@ -384,7 +389,7 @@ func TestNegotiateVersion(t *testing.T) {
|
||||
}
|
||||
c := NewOrDie(test.config)
|
||||
c.Client = fakeClient.Client
|
||||
response, err := NegotiateVersion(c, test.config, test.version)
|
||||
response, err := NegotiateVersion(c, test.config, test.version, test.clientVersions)
|
||||
if err == nil && test.expectErr {
|
||||
t.Errorf("expected error, got nil for [%s].", test.name)
|
||||
}
|
||||
|
Reference in New Issue
Block a user