Skip to content

Commit

Permalink
Merge pull request #99840 from deads2k/try-beta
Browse files Browse the repository at this point in the history
update to handle beta removals in 1.22
  • Loading branch information
k8s-ci-robot committed May 13, 2021
2 parents 24727b5 + be2e2f8 commit 8abdf8c
Show file tree
Hide file tree
Showing 9 changed files with 15,753 additions and 35,235 deletions.
50,940 changes: 15,728 additions & 35,212 deletions api/openapi-spec/swagger.json

Large diffs are not rendered by default.

3 changes: 1 addition & 2 deletions pkg/controlplane/instance.go
Expand Up @@ -83,7 +83,6 @@ import (
"k8s.io/client-go/kubernetes"
corev1client "k8s.io/client-go/kubernetes/typed/core/v1"
discoveryclient "k8s.io/client-go/kubernetes/typed/discovery/v1"
"k8s.io/component-base/version"
"k8s.io/component-helpers/apimachinery/lease"
"k8s.io/klog/v2"
api "k8s.io/kubernetes/pkg/apis/core"
Expand Down Expand Up @@ -571,7 +570,7 @@ func (m *Instance) InstallAPIs(apiResourceConfigSource serverstorage.APIResource
apiGroupsInfo := []*genericapiserver.APIGroupInfo{}

// used later in the loop to filter the served resource by those that have expired.
resourceExpirationEvaluator, err := genericapiserver.NewResourceExpirationEvaluator(version.Get())
resourceExpirationEvaluator, err := genericapiserver.NewResourceExpirationEvaluator(*m.GenericAPIServer.Version)
if err != nil {
return err
}
Expand Down
25 changes: 5 additions & 20 deletions pkg/controlplane/instance_test.go
Expand Up @@ -317,31 +317,13 @@ func TestAPIVersionOfDiscoveryEndpoints(t *testing.T) {
assert.NoError(decodeResponse(resp, &groupList))
assert.Equal(groupList.APIVersion, "")

// /apis/extensions exists in release-1.1
resp, err = http.Get(server.URL + "/apis/extensions")
if err != nil {
t.Errorf("unexpected error: %v", err)
}
group := metav1.APIGroup{}
assert.NoError(decodeResponse(resp, &group))
assert.Equal(group.APIVersion, "")

// /apis/extensions/v1beta1 exists in release-1.1
resp, err = http.Get(server.URL + "/apis/extensions/v1beta1")
if err != nil {
t.Errorf("unexpected error: %v", err)
}
resourceList = metav1.APIResourceList{}
assert.NoError(decodeResponse(resp, &resourceList))
assert.Equal(resourceList.APIVersion, "")

// /apis/autoscaling doesn't exist in release-1.1, so the APIVersion field
// should be non-empty in the results returned by the server.
resp, err = http.Get(server.URL + "/apis/autoscaling")
if err != nil {
t.Errorf("unexpected error: %v", err)
}
group = metav1.APIGroup{}
group := metav1.APIGroup{}
assert.NoError(decodeResponse(resp, &group))
assert.Equal(group.APIVersion, "v1")

Expand Down Expand Up @@ -376,8 +358,10 @@ func TestStorageVersionHashes(t *testing.T) {
t.Error(err)
}
var count int
apiResources := sets.NewString()
for _, g := range all {
for _, r := range g.APIResources {
apiResources.Insert(g.GroupVersion + "/" + r.Name)
if strings.Contains(r.Name, "/") ||
storageversionhashdata.NoStorageVersionHash.Has(g.GroupVersion+"/"+r.Name) {
if r.StorageVersionHash != "" {
Expand All @@ -399,7 +383,8 @@ func TestStorageVersionHashes(t *testing.T) {
}
}
if count != len(storageversionhashdata.GVRToStorageVersionHash) {
t.Errorf("please remove the redundant entries from GVRToStorageVersionHash")
knownResources := sets.StringKeySet(storageversionhashdata.GVRToStorageVersionHash)
t.Errorf("please remove the redundant entries from GVRToStorageVersionHash: %v", knownResources.Difference(apiResources).List())
}
}

Expand Down
2 changes: 2 additions & 0 deletions staging/src/k8s.io/apiserver/pkg/server/config.go
Expand Up @@ -593,6 +593,8 @@ func (c completedConfig) New(name string, delegationTarget DelegationTarget) (*G

APIServerID: c.APIServerID,
StorageVersionManager: c.StorageVersionManager,

Version: c.Version,
}

for {
Expand Down
6 changes: 5 additions & 1 deletion staging/src/k8s.io/apiserver/pkg/server/deleted_kinds.go
Expand Up @@ -54,7 +54,10 @@ type ResourceExpirationEvaluator interface {
}

func NewResourceExpirationEvaluator(currentVersion apimachineryversion.Info) (ResourceExpirationEvaluator, error) {
ret := &resourceExpirationEvaluator{}
ret := &resourceExpirationEvaluator{
// TODO https://github.com/kubernetes/kubernetes/issues/101951 set this back to false after beta is tagged.
strictRemovedHandlingInAlpha: true,
}
if len(currentVersion.Major) > 0 {
currentMajor64, err := strconv.ParseInt(currentVersion.Major, 10, 32)
if err != nil {
Expand Down Expand Up @@ -83,6 +86,7 @@ func NewResourceExpirationEvaluator(currentVersion apimachineryversion.Info) (Re
} else {
ret.strictRemovedHandlingInAlpha = envBool
}

if envString, ok := os.LookupEnv("KUBE_APISERVER_SERVE_REMOVED_APIS_FOR_ONE_RELEASE"); !ok {
// do nothing
} else if envBool, err := strconv.ParseBool(envString); err != nil {
Expand Down
Expand Up @@ -82,6 +82,7 @@ func Test_newResourceExpirationEvaluator(t *testing.T) {
return
}

actual.(*resourceExpirationEvaluator).strictRemovedHandlingInAlpha = false
if !reflect.DeepEqual(tt.expected, *actual.(*resourceExpirationEvaluator)) {
t.Fatal(actual)
}
Expand Down
4 changes: 4 additions & 0 deletions staging/src/k8s.io/apiserver/pkg/server/genericapiserver.go
Expand Up @@ -34,6 +34,7 @@ import (
"k8s.io/apimachinery/pkg/util/clock"
"k8s.io/apimachinery/pkg/util/sets"
utilwaitgroup "k8s.io/apimachinery/pkg/util/waitgroup"
"k8s.io/apimachinery/pkg/version"
"k8s.io/apiserver/pkg/admission"
"k8s.io/apiserver/pkg/audit"
"k8s.io/apiserver/pkg/authorization/authorizer"
Expand Down Expand Up @@ -209,6 +210,9 @@ type GenericAPIServer struct {

// StorageVersionManager holds the storage versions of the API resources installed by this server.
StorageVersionManager storageversion.Manager

// Version will enable the /version endpoint if non-nil
Version *version.Info
}

// DelegationTarget is an interface which allows for composition of API servers with top level handling that works
Expand Down
1 change: 1 addition & 0 deletions staging/src/k8s.io/kubectl/pkg/cmd/auth/reconcile.go
Expand Up @@ -138,6 +138,7 @@ func (o *ReconcileOptions) Complete(cmd *cobra.Command, f cmdutil.Factory, args
NamespaceParam(namespace).DefaultNamespace().
FilenameParam(enforceNamespace, o.FilenameOptions).
Flatten().
Local().
Do()

if err := r.Err(); err != nil {
Expand Down
6 changes: 6 additions & 0 deletions test/integration/framework/master_utils.go
Expand Up @@ -309,6 +309,12 @@ func NewMasterConfigWithOptions(opts *MasterConfigOptions) *controlplane.Config

genericConfig := genericapiserver.NewConfig(legacyscheme.Codecs)
kubeVersion := version.Get()
if len(kubeVersion.Major) == 0 {
kubeVersion.Major = "1"
}
if len(kubeVersion.Minor) == 0 {
kubeVersion.Minor = "22"
}
genericConfig.Version = &kubeVersion
genericConfig.Authorization.Authorizer = authorizerfactory.NewAlwaysAllowAuthorizer()

Expand Down

0 comments on commit 8abdf8c

Please sign in to comment.