Skip to content

Commit 5f71ced

Browse files
Merge pull request #2195 from openshift-cherrypick-robot/cherry-pick-2113-to-release-4.18
[release-4.18] OCPBUGS-49782: OCPBUGS-39305: UPSTREAM: <carry>: log only deprecated api requests
2 parents ff3bcb8 + ff471cb commit 5f71ced

File tree

4 files changed

+27
-70
lines changed

4 files changed

+27
-70
lines changed

Diff for: openshift-kube-apiserver/filters/apirequestcount/apiaccess_count_controller.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ type controller struct {
4949

5050
// IsDeprecated return true if the resource is deprecated.
5151
func (c *controller) IsDeprecated(resource, version, group string) bool {
52-
_, ok := deprecatedApiRemovedRelease[schema.GroupVersionResource{
52+
_, ok := DeprecatedAPIRemovedRelease[schema.GroupVersionResource{
5353
Group: group,
5454
Version: version,
5555
Resource: resource,

Diff for: openshift-kube-apiserver/filters/apirequestcount/apiaccess_count_controller_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,10 @@ func TestRemovedRelease(t *testing.T) {
2525
rr := removedRelease(
2626
schema.GroupVersionResource{
2727
Group: "flowcontrol.apiserver.k8s.io",
28-
Version: "v1alpha1",
28+
Version: "v1beta3",
2929
Resource: "flowschemas",
3030
})
31-
assert.Equal(t, "1.21", rr)
31+
assert.Equal(t, "1.32", rr)
3232
}
3333

3434
func TestLoggingResetRace(t *testing.T) {
Original file line numberDiff line numberDiff line change
@@ -1,70 +1,20 @@
11
package apirequestcount
22

3-
import "k8s.io/apimachinery/pkg/runtime/schema"
3+
import (
4+
"fmt"
45

5-
var deprecatedApiRemovedRelease = map[schema.GroupVersionResource]string{
6-
// Kubernetes APIs
7-
{Group: "apps", Version: "v1beta1", Resource: "controllerrevisions"}: "1.16",
8-
{Group: "apps", Version: "v1beta1", Resource: "deploymentrollbacks"}: "1.16",
9-
{Group: "apps", Version: "v1beta1", Resource: "deployments"}: "1.16",
10-
{Group: "apps", Version: "v1beta1", Resource: "scales"}: "1.16",
11-
{Group: "apps", Version: "v1beta1", Resource: "statefulsets"}: "1.16",
12-
{Group: "apps", Version: "v1beta2", Resource: "controllerrevisions"}: "1.16",
13-
{Group: "apps", Version: "v1beta2", Resource: "daemonsets"}: "1.16",
14-
{Group: "apps", Version: "v1beta2", Resource: "deployments"}: "1.16",
15-
{Group: "apps", Version: "v1beta2", Resource: "replicasets"}: "1.16",
16-
{Group: "apps", Version: "v1beta2", Resource: "scales"}: "1.16",
17-
{Group: "apps", Version: "v1beta2", Resource: "statefulsets"}: "1.16",
18-
{Group: "extensions", Version: "v1beta1", Resource: "daemonsets"}: "1.16",
19-
{Group: "extensions", Version: "v1beta1", Resource: "deploymentrollbacks"}: "1.16",
20-
{Group: "extensions", Version: "v1beta1", Resource: "deployments"}: "1.16",
21-
{Group: "extensions", Version: "v1beta1", Resource: "networkpolicies"}: "1.16",
22-
{Group: "extensions", Version: "v1beta1", Resource: "podsecuritypolicies"}: "1.16",
23-
{Group: "extensions", Version: "v1beta1", Resource: "replicasets"}: "1.16",
24-
{Group: "extensions", Version: "v1beta1", Resource: "scales"}: "1.16",
25-
{Group: "flowcontrol.apiserver.k8s.io", Version: "v1alpha1", Resource: "flowschemas"}: "1.21",
26-
{Group: "flowcontrol.apiserver.k8s.io", Version: "v1alpha1", Resource: "prioritylevelconfigurations"}: "1.21",
27-
{Group: "admissionregistration.k8s.io", Version: "v1beta1", Resource: "mutatingwebhookconfigurations"}: "1.22",
28-
{Group: "admissionregistration.k8s.io", Version: "v1beta1", Resource: "validatingwebhookconfigurations"}: "1.22",
29-
{Group: "apiextensions.k8s.io", Version: "v1beta1", Resource: "customresourcedefinitions"}: "1.22",
30-
{Group: "apiregistration.k8s.io", Version: "v1beta1", Resource: "apiservices"}: "1.22",
31-
{Group: "authentication.k8s.io", Version: "v1beta1", Resource: "tokenreviews"}: "1.22",
32-
{Group: "authorization.k8s.io", Version: "v1beta1", Resource: "localsubjectaccessreviews"}: "1.22",
33-
{Group: "authorization.k8s.io", Version: "v1beta1", Resource: "selfsubjectaccessreviews"}: "1.22",
34-
{Group: "authorization.k8s.io", Version: "v1beta1", Resource: "selfsubjectrulesreviews"}: "1.22",
35-
{Group: "authorization.k8s.io", Version: "v1beta1", Resource: "subjectaccessreviews"}: "1.22",
36-
{Group: "certificates.k8s.io", Version: "v1beta1", Resource: "certificatesigningrequests"}: "1.22",
37-
{Group: "coordination.k8s.io", Version: "v1beta1", Resource: "leases"}: "1.22",
38-
{Group: "extensions", Version: "v1beta1", Resource: "ingresses"}: "1.22",
39-
{Group: "networking.k8s.io", Version: "v1beta1", Resource: "ingresses"}: "1.22",
40-
{Group: "networking.k8s.io", Version: "v1beta1", Resource: "ingressclasses"}: "1.22",
41-
{Group: "rbac.authorization.k8s.io", Version: "v1beta1", Resource: "clusterrolebindings"}: "1.22",
42-
{Group: "rbac.authorization.k8s.io", Version: "v1beta1", Resource: "clusterroles"}: "1.22",
43-
{Group: "rbac.authorization.k8s.io", Version: "v1beta1", Resource: "rolebindings"}: "1.22",
44-
{Group: "rbac.authorization.k8s.io", Version: "v1beta1", Resource: "roles"}: "1.22",
45-
{Group: "scheduling.k8s.io", Version: "v1beta1", Resource: "priorityclasses"}: "1.22",
46-
{Group: "storage.k8s.io", Version: "v1beta1", Resource: "csidrivers"}: "1.22",
47-
{Group: "storage.k8s.io", Version: "v1beta1", Resource: "csinodes"}: "1.22",
48-
{Group: "storage.k8s.io", Version: "v1beta1", Resource: "storageclasses"}: "1.22",
49-
{Group: "storage.k8s.io", Version: "v1beta1", Resource: "volumeattachments"}: "1.22",
50-
{Group: "batch", Version: "v1beta1", Resource: "cronjobs"}: "1.25",
51-
{Group: "discovery.k8s.io", Version: "v1beta1", Resource: "endpointslices"}: "1.25",
52-
{Group: "events.k8s.io", Version: "v1beta1", Resource: "events"}: "1.25",
53-
{Group: "autoscaling", Version: "v2beta1", Resource: "horizontalpodautoscalers"}: "1.25",
54-
{Group: "policy", Version: "v1beta1", Resource: "poddisruptionbudgets"}: "1.25",
55-
{Group: "policy", Version: "v1beta1", Resource: "podsecuritypolicies"}: "1.25",
56-
{Group: "node.k8s.io", Version: "v1beta1", Resource: "runtimeclasses"}: "1.25",
57-
{Group: "autoscaling", Version: "v2beta2", Resource: "horizontalpodautoscalers"}: "1.26",
58-
{Group: "flowcontrol.apiserver.k8s.io", Version: "v1beta1", Resource: "flowschemas"}: "1.26",
59-
{Group: "flowcontrol.apiserver.k8s.io", Version: "v1beta1", Resource: "prioritylevelconfigurations"}: "1.26",
60-
{Group: "storage.k8s.io", Version: "v1beta1", Resource: "csistoragecapacities"}: "1.27",
61-
{Group: "flowcontrol.apiserver.k8s.io", Version: "v1beta2", Resource: "flowschemas"}: "1.29",
62-
{Group: "flowcontrol.apiserver.k8s.io", Version: "v1beta2", Resource: "prioritylevelconfigurations"}: "1.29",
63-
// OpenShift APIs
64-
{Group: "operator.openshift.io", Version: "v1beta1", Resource: "kubedeschedulers"}: "1.22",
6+
"k8s.io/apimachinery/pkg/runtime/schema"
7+
)
8+
9+
var DeprecatedAPIRemovedRelease = map[schema.GroupVersionResource]uint{
10+
{Group: "flowcontrol.apiserver.k8s.io", Version: "v1beta3", Resource: "flowschemas"}: 32,
11+
{Group: "flowcontrol.apiserver.k8s.io", Version: "v1beta3", Resource: "prioritylevelconfigurations"}: 32,
6512
}
6613

6714
// removedRelease of a specified resource.version.group.
6815
func removedRelease(resource schema.GroupVersionResource) string {
69-
return deprecatedApiRemovedRelease[resource]
16+
if minor, ok := DeprecatedAPIRemovedRelease[resource]; ok {
17+
return fmt.Sprintf("1.%d", minor)
18+
}
19+
return ""
7020
}

Diff for: openshift-kube-apiserver/filters/apirequestcount_filter.go

+12-5
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,29 @@ import (
44
"net/http"
55

66
"k8s.io/apimachinery/pkg/runtime/schema"
7+
"k8s.io/apimachinery/pkg/util/version"
78
"k8s.io/apiserver/pkg/endpoints/request"
9+
versioninfo "k8s.io/component-base/version"
810
"k8s.io/kubernetes/openshift-kube-apiserver/filters/apirequestcount"
911
)
1012

1113
// WithAPIRequestCountLogging adds a handler that logs counts of api requests.
1214
func WithAPIRequestCountLogging(handler http.Handler, requestLogger apirequestcount.APIRequestLogger) http.Handler {
15+
currentMinor := version.MustParseSemantic(versioninfo.Get().GitVersion).Minor()
1316
handlerFunc := http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
1417
defer handler.ServeHTTP(w, req)
1518
info, ok := request.RequestInfoFrom(req.Context())
1619
if !ok || !info.IsResourceRequest {
1720
return
1821
}
22+
gvr := schema.GroupVersionResource{
23+
Group: info.APIGroup,
24+
Version: info.APIVersion,
25+
Resource: info.Resource,
26+
}
27+
if minor, ok := apirequestcount.DeprecatedAPIRemovedRelease[gvr]; !ok || minor <= currentMinor {
28+
return
29+
}
1930
timestamp, ok := request.ReceivedTimestampFrom(req.Context())
2031
if !ok {
2132
return
@@ -25,11 +36,7 @@ func WithAPIRequestCountLogging(handler http.Handler, requestLogger apirequestco
2536
return
2637
}
2738
requestLogger.LogRequest(
28-
schema.GroupVersionResource{
29-
Group: info.APIGroup,
30-
Version: info.APIVersion,
31-
Resource: info.Resource,
32-
},
39+
gvr,
3340
timestamp,
3441
user.GetName(),
3542
req.UserAgent(),

0 commit comments

Comments
 (0)