Commit ba6d9cec authored by Ryan Fredette's avatar Ryan Fredette
Browse files

Update openshift/api dependency

Needed to get ingresscontroller spec.tuningOptions.threadCount maximum
change
parent 285df816
......@@ -15,7 +15,7 @@ require (
github.com/go-logr/zapr v0.4.0
github.com/google/go-cmp v0.5.2
github.com/kevinburke/go-bindata v3.11.0+incompatible
github.com/openshift/api v0.0.0-20210416094334-c22782737ea0
github.com/openshift/api v0.0.0-20210513192832-efee9960e6fd
github.com/openshift/build-machinery-go v0.0.0-20210409131504-b1828cc0cdad
github.com/openshift/library-go v0.0.0-20210331235027-66936e2fcc52
github.com/pkg/errors v0.9.1
......
......@@ -481,8 +481,8 @@ github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQ
github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0=
github.com/openshift/api v0.0.0-20210331162552-3e31249e6a55/go.mod h1:dZ4kytOo3svxJHNYd0J55hwe/6IQG5gAUHUE0F3Jkio=
github.com/openshift/api v0.0.0-20210331193751-3acddb19d360/go.mod h1:dZ4kytOo3svxJHNYd0J55hwe/6IQG5gAUHUE0F3Jkio=
github.com/openshift/api v0.0.0-20210416094334-c22782737ea0 h1:kzGQSOl/9G3mEyCsu9i9eHNnIuZ9PTlyKoCN0I3sjUQ=
github.com/openshift/api v0.0.0-20210416094334-c22782737ea0/go.mod h1:dZ4kytOo3svxJHNYd0J55hwe/6IQG5gAUHUE0F3Jkio=
github.com/openshift/api v0.0.0-20210513192832-efee9960e6fd h1:gEG7ErTKgVs8/TxIynuOhkfJG8mQghw30tGRruclKBA=
github.com/openshift/api v0.0.0-20210513192832-efee9960e6fd/go.mod h1:dZ4kytOo3svxJHNYd0J55hwe/6IQG5gAUHUE0F3Jkio=
github.com/openshift/build-machinery-go v0.0.0-20210209125900-0da259a2c359/go.mod h1:b1BuldmJlbA/xYtdZvKi+7j5YGB44qJUJDZ9zwiNCfE=
github.com/openshift/build-machinery-go v0.0.0-20210409131504-b1828cc0cdad h1:3sJkKZdEapxFstGRRycvL1VPJ1gT5/fpfV//KejKmzQ=
github.com/openshift/build-machinery-go v0.0.0-20210409131504-b1828cc0cdad/go.mod h1:b1BuldmJlbA/xYtdZvKi+7j5YGB44qJUJDZ9zwiNCfE=
......
......@@ -981,15 +981,17 @@ spec:
description: "threadCount defines the number of threads created
per HAProxy process. Creating more threads allows each ingress
controller pod to handle more connections, at the cost of more
system resources being used. If this field is empty, the IngressController
will use the default value. The current default is 4 threads,
but this may change in future releases. \n Setting this field
is generally not recommended. Increasing the number of HAProxy
system resources being used. HAProxy currently supports up to
64 threads. If this field is empty, the IngressController will
use the default value. The current default is 4 threads, but
this may change in future releases. \n Setting this field is
generally not recommended. Increasing the number of HAProxy
threads allows ingress controller pods to utilize more CPU time
under load, potentially starving other pods if set too high.
Reducing the number of threads may cause the ingress controller
to perform poorly."
format: int32
maximum: 64
minimum: 1
type: integer
type: object
......
This diff is collapsed.
......@@ -4,22 +4,38 @@ metadata:
annotations:
include.release.openshift.io/self-managed-high-availability: "true"
include.release.openshift.io/single-node-developer: "true"
name: deprecatedapirequests.apiserver.openshift.io
name: apirequestcounts.apiserver.openshift.io
spec:
group: apiserver.openshift.io
names:
kind: DeprecatedAPIRequest
listKind: DeprecatedAPIRequestList
plural: deprecatedapirequests
singular: deprecatedapirequest
kind: APIRequestCount
listKind: APIRequestCountList
plural: apirequestcounts
singular: apirequestcount
scope: Cluster
versions:
- name: v1
schema:
openAPIV3Schema:
description: DeprecatedAPIRequest tracts requests made to a deprecated API.
The instance name should be of the form `resource.version.group`, matching
the deprecated resource.
served: true
storage: true
subresources:
status: {}
additionalPrinterColumns:
- name: RemovedInRelease
type: string
description: Release in which an API will be removed.
jsonPath: .status.removedInRelease
- name: RequestsInCurrentHour
type: integer
description: Number of requests in the current hour.
jsonPath: .status.currentHour.requestCount
- name: RequestsInLast24h
type: integer
description: Number of requests in the last 24h.
jsonPath: .status.requestCount
"schema":
"openAPIV3Schema":
description: APIRequestCount tracks requests made to an API. The instance
name must be of the form `resource.version.group`, matching the resource.
type: object
required:
- spec
......@@ -40,12 +56,15 @@ spec:
description: spec defines the characteristics of the resource.
type: object
properties:
removedRelease:
description: removedRelease is when the API will be removed.
type: string
maxLength: 64
minLength: 3
pattern: ^[0-9][0-9]*\.[0-9][0-9]*$
numberOfUsersToReport:
description: numberOfUsersToReport is the number of users to include
in the report. If unspecified or zero, the default is ten. This
is default is subject to change.
type: integer
format: int64
default: 10
maximum: 100
minimum: 0
status:
description: status contains the observed state of the resource.
type: object
......@@ -121,127 +140,187 @@ spec:
type: string
maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
requestsLast24h:
description: requestsLast24h contains request history for the last
24 hours, indexed by the hour, so 12:00AM-12:59 is in index 0, 6am-6:59am
currentHour:
description: currentHour contains request history for the current
hour. This is porcelain to make the API easier to read by humans
seeing if they addressed a problem. This field is reset on the hour.
type: object
properties:
byNode:
description: byNode contains logs of requests per node.
type: array
maxItems: 512
items:
description: PerNodeAPIRequestLog contains logs of requests
to a certain node.
type: object
properties:
byUser:
description: byUser contains request details by top .spec.numberOfUsersToReport
users. Note that because in the case of an apiserver,
restart the list of top users is determined on a best-effort
basis, the list might be imprecise. In addition, some
system users may be explicitly included in the list.
type: array
maxItems: 500
items:
description: PerUserAPIRequestCount contains logs of a
user's requests.
type: object
properties:
byVerb:
description: byVerb details by verb.
type: array
maxItems: 10
items:
description: PerVerbAPIRequestCount requestCounts
requests by API request verb.
type: object
properties:
requestCount:
description: requestCount of requests for verb.
type: integer
format: int64
minimum: 0
verb:
description: verb of API request (get, list,
create, etc...)
type: string
maxLength: 20
requestCount:
description: requestCount of requests by the user
across all verbs.
type: integer
format: int64
minimum: 0
userAgent:
description: userAgent that made the request. The
same user often has multiple binaries which connect
(pods with many containers). The different binaries
will have different userAgents, but the same user. In
addition, we have userAgents with version information
embedded and the userName isn't likely to change.
type: string
maxLength: 1024
username:
description: userName that made the request.
type: string
maxLength: 512
nodeName:
description: nodeName where the request are being handled.
type: string
maxLength: 512
minLength: 1
requestCount:
description: requestCount is a sum of all requestCounts
across all users, even those outside of the top 10 users.
type: integer
format: int64
minimum: 0
requestCount:
description: requestCount is a sum of all requestCounts across
nodes.
type: integer
format: int64
minimum: 0
last24h:
description: last24h contains request history for the last 24 hours,
indexed by the hour, so 12:00AM-12:59 is in index 0, 6am-6:59am
is index 6, etc. The index of the current hour is updated live and
then duplicated into the requestsLastHour field.
type: array
maxItems: 24
items:
description: RequestLog logs request for various nodes.
description: PerResourceAPIRequestLog logs request for various nodes.
type: object
properties:
nodes:
description: nodes contains logs of requests per node.
byNode:
description: byNode contains logs of requests per node.
type: array
maxItems: 512
items:
description: NodeRequestLog contains logs of requests to a
certain node.
description: PerNodeAPIRequestLog contains logs of requests
to a certain node.
type: object
properties:
lastUpdate:
description: lastUpdate should *always* being within the
hour this is for. This is a time indicating the last
moment the server is recording for, not the actual update
time.
type: string
format: date-time
nodeName:
description: nodeName where the request are being handled.
type: string
users:
description: users contains request details by top 10
users. Note that because in the case of an apiserver
restart the list of top 10 users is determined on a
best-effort basis, the list might be imprecise.
byUser:
description: byUser contains request details by top .spec.numberOfUsersToReport
users. Note that because in the case of an apiserver,
restart the list of top users is determined on a best-effort
basis, the list might be imprecise. In addition, some
system users may be explicitly included in the list.
type: array
maxItems: 500
items:
description: RequestUser contains logs of a user's requests.
description: PerUserAPIRequestCount contains logs of
a user's requests.
type: object
properties:
count:
description: count of requests.
type: integer
requests:
description: requests details by verb.
byVerb:
description: byVerb details by verb.
type: array
maxItems: 10
items:
description: RequestCount counts requests by API
request verb.
description: PerVerbAPIRequestCount requestCounts
requests by API request verb.
type: object
properties:
count:
description: count of requests for verb.
requestCount:
description: requestCount of requests for
verb.
type: integer
format: int64
minimum: 0
verb:
description: verb of API request (get, list,
create, etc...)
type: string
maxLength: 20
requestCount:
description: requestCount of requests by the user
across all verbs.
type: integer
format: int64
minimum: 0
userAgent:
description: userAgent that made the request. The
same user often has multiple binaries which connect
(pods with many containers). The different binaries
will have different userAgents, but the same user. In
addition, we have userAgents with version information
embedded and the userName isn't likely to change.
type: string
maxLength: 1024
username:
description: userName that made the request.
type: string
requestsLastHour:
description: requestsLastHour contains request history for the current
hour. This is porcelain to make the API easier to read by humans
seeing if they addressed a problem. This field is reset on the hour.
type: object
properties:
nodes:
description: nodes contains logs of requests per node.
type: array
items:
description: NodeRequestLog contains logs of requests to a certain
node.
type: object
properties:
lastUpdate:
description: lastUpdate should *always* being within the
hour this is for. This is a time indicating the last
moment the server is recording for, not the actual update
time.
type: string
format: date-time
nodeName:
description: nodeName where the request are being handled.
type: string
users:
description: users contains request details by top 10 users.
Note that because in the case of an apiserver restart
the list of top 10 users is determined on a best-effort
basis, the list might be imprecise.
type: array
items:
description: RequestUser contains logs of a user's requests.
type: object
properties:
count:
description: count of requests.
type: integer
requests:
description: requests details by verb.
type: array
items:
description: RequestCount counts requests by API
request verb.
type: object
properties:
count:
description: count of requests for verb.
type: integer
verb:
description: verb of API request (get, list,
create, etc...)
type: string
username:
description: userName that made the request.
type: string
served: true
storage: true
subresources:
status: {}
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
maxLength: 512
nodeName:
description: nodeName where the request are being handled.
type: string
maxLength: 512
minLength: 1
requestCount:
description: requestCount is a sum of all requestCounts
across all users, even those outside of the top 10 users.
type: integer
format: int64
minimum: 0
requestCount:
description: requestCount is a sum of all requestCounts across
nodes.
type: integer
format: int64
minimum: 0
removedInRelease:
description: removedInRelease is when the API will be removed.
type: string
maxLength: 64
minLength: 0
pattern: ^[0-9][0-9]*\.[0-9][0-9]*$
requestCount:
description: requestCount is a sum of all requestCounts across all
current hours, nodes, and users.
type: integer
format: int64
minimum: 0
......@@ -30,8 +30,8 @@ func Resource(resource string) schema.GroupResource {
// Adds the list of known types to api.Scheme.
func addKnownTypes(scheme *runtime.Scheme) error {
scheme.AddKnownTypes(GroupVersion,
&DeprecatedAPIRequest{},
&DeprecatedAPIRequestList{},
&APIRequestCount{},
&APIRequestCountList{},
)
metav1.AddToGroupVersion(scheme, GroupVersion)
return nil
......
// Package v1 is an api version in the apiserver.openshift.io group
package v1
import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
const (
// RemovedInReleaseLabel is a label which can be used to select APIRequestCounts based on the release
// in which they are removed. The value is equivalent to .status.removedInRelease.
RemovedInReleaseLabel = "apirequestcounts.apiserver.openshift.io/removedInRelease"
)
// +genclient
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +kubebuilder:resource:scope="Cluster"
// +kubebuilder:subresource:status
// +genclient:nonNamespaced
// APIRequestCount tracks requests made to an API. The instance name must
// be of the form `resource.version.group`, matching the resource.
type APIRequestCount struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"`
// spec defines the characteristics of the resource.
// +kubebuilder:validation:Required
// +required
Spec APIRequestCountSpec `json:"spec"`
// status contains the observed state of the resource.
Status APIRequestCountStatus `json:"status,omitempty"`
}
type APIRequestCountSpec struct {
// numberOfUsersToReport is the number of users to include in the report.
// If unspecified or zero, the default is ten. This is default is subject to change.
// +kubebuilder:default:=10
// +kubebuilder:validation:Minimum=0
// +kubebuilder:validation:Maximum=100
// +optional
NumberOfUsersToReport int64 `json:"numberOfUsersToReport"`
}
// +k8s:deepcopy-gen=true
type APIRequestCountStatus struct {
// conditions contains details of the current status of this API Resource.
// +patchMergeKey=type
// +patchStrategy=merge
Conditions []metav1.Condition `json:"conditions" patchStrategy:"merge" patchMergeKey:"type"`
// removedInRelease is when the API will be removed.
// +kubebuilder:validation:MinLength=0
// +kubebuilder:validation:Pattern=^[0-9][0-9]*\.[0-9][0-9]*$
// +kubebuilder:validation:MaxLength=64
// +optional
RemovedInRelease string `json:"removedInRelease,omitempty"`
// requestCount is a sum of all requestCounts across all current hours, nodes, and users.
// +kubebuilder:validation:Minimum=0
// +required
RequestCount int64 `json:"requestCount"`
// currentHour contains request history for the current hour. This is porcelain to make the API
// easier to read by humans seeing if they addressed a problem. This field is reset on the hour.
// +optional
CurrentHour PerResourceAPIRequestLog `json:"currentHour"`
// last24h contains request history for the last 24 hours, indexed by the hour, so
// 12:00AM-12:59 is in index 0, 6am-6:59am is index 6, etc. The index of the current hour
// is updated live and then duplicated into the requestsLastHour field.
// +kubebuilder:validation:MaxItems=24
// +optional
Last24h []PerResourceAPIRequestLog `json:"last24h"`
}
// PerResourceAPIRequestLog logs request for various nodes.
type PerResourceAPIRequestLog struct {
// byNode contains logs of requests per node.
// +kubebuilder:validation:MaxItems=512
// +optional
ByNode []PerNodeAPIRequestLog `json:"byNode"`
// requestCount is a sum of all requestCounts across nodes.
// +kubebuilder:validation:Minimum=0
// +required
RequestCount int64 `json:"requestCount"`
}
// PerNodeAPIRequestLog contains logs of requests to a certain node.
type PerNodeAPIRequestLog struct {
// nodeName where the request are being handled.
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=512
// +required
NodeName string `json:"nodeName"`
// requestCount is a sum of all requestCounts across all users, even those outside of the top 10 users.
// +kubebuilder:validation:Minimum=0
// +required
RequestCount int64 `json:"requestCount"`
// byUser contains request details by top .spec.numberOfUsersToReport users.
// Note that because in the case of an apiserver, restart the list of top users is determined on a best-effort basis,
// the list might be imprecise.
// In addition, some system users may be explicitly included in the list.
// +kubebuilder:validation:MaxItems=500
ByUser []PerUserAPIRequestCount `json:"byUser"`
}
// PerUserAPIRequestCount contains logs of a user's requests.
type PerUserAPIRequestCount struct {
// userName that made the request.
// +kubebuilder:validation:MaxLength=512
UserName string `json:"username"`
// userAgent that made the request.
// The same user often has multiple binaries which connect (pods with many containers). The different binaries
// will have different userAgents, but the same user. In addition, we have userAgents with version information
// embedded and the userName isn't likely to change.
// +kubebuilder:validation:MaxLength=1024
UserAgent string `json:"userAgent"`
// requestCount of requests by the user across all verbs.
// +kubebuilder:validation:Minimum=0
// +required
RequestCount int64 `json:"requestCount"`
// byVerb details by verb.
// +kubebuilder:validation:MaxItems=10
ByVerb []PerVerbAPIRequestCount `json:"byVerb"`
}
// PerVerbAPIRequestCount requestCounts requests by API request verb.
type PerVerbAPIRequestCount struct {
// verb of API request (get, list, create, etc...)
// +kubebuilder:validation:MaxLength=20
// +required
Verb string `json:"verb"`
// requestCount of requests for verb.
// +kubebuilder:validation:Minimum=0
// +required
RequestCount int64 `json:"requestCount"`
}
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// APIRequestCountList is a list of APIRequestCount resources.
type APIRequestCountList struct {
metav1.TypeMeta `json:",inline"`