apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.13.0 name: meshratelimits.kuma.io spec: group: kuma.io names: categories: - kuma kind: MeshRateLimit listKind: MeshRateLimitList plural: meshratelimits singular: meshratelimit scope: Namespaced versions:
- additionalPrinterColumns:
- jsonPath: .spec.targetRef.kind name: TargetRef Kind type: string
- jsonPath: .spec.targetRef.name
name: TargetRef Name
type: string
name: v1alpha1
schema:
openAPIV3Schema:
properties:
apiVersion:
description: ‘APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources’
type: string
kind:
description: ‘Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds’
type: string
metadata:
type: object
spec:
description: Spec is the specification of the Kuma MeshRateLimit resource.
properties:
from:
description: From list makes a match between clients and corresponding
configurations
items:
properties:
default:
description: Default is a configuration specific to the group
of clients referenced in ‘targetRef’
properties:
local:
description: LocalConf defines local http or/and tcp rate
limit configuration
properties:
http:
description: LocalHTTP defines confguration of local
HTTP rate limiting https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/local_rate_limit_filter
properties:
disabled:
description: Define if rate limiting should be disabled.
type: boolean
onRateLimit:
description: Describes the actions to take on a
rate limit event
properties:
headers:
description: The Headers to be added to the
HTTP response on a rate limit event
properties:
add:
items:
properties:
name:
maxLength: 256
minLength: 1
pattern: ^[a-z0-9!#$%&’+-.^_\x60|~]+$
type: string
value:
type: string
required:
- name
- value
type: object
maxItems: 16
type: array
x-kubernetes-list-map-keys:
- name
x-kubernetes-list-type: map
set:
items:
properties:
name:
maxLength: 256
minLength: 1
pattern: ^[a-z0-9!#$%&’+-.^_\x60|~]+$
type: string
value:
type: string
required:
- name
- value
type: object
maxItems: 16
type: array
x-kubernetes-list-map-keys:
- name
x-kubernetes-list-type: map
type: object
status:
description: The HTTP status code to be set
on a rate limit event
format: int32
type: integer
type: object
requestRate:
description: Defines how many requests are allowed
per interval.
properties:
interval:
description: The interval the number of units
is accounted for.
type: string
num:
description: Number of units per interval (depending
on usage it can be a number of requests, or
a number of connections).
format: int32
type: integer
required:
- interval
- num
type: object
type: object
tcp:
description: LocalTCP defines confguration of local
TCP rate limiting https://www.envoyproxy.io/docs/envoy/latest/configuration/listeners/network_filters/local_rate_limit_filter
properties:
connectionRate:
description: Defines how many connections are allowed
per interval.
properties:
interval:
description: The interval the number of units
is accounted for.
type: string
num:
description: Number of units per interval (depending
on usage it can be a number of requests, or
a number of connections).
format: int32
type: integer
required:
- interval
- num
type: object
disabled:
description: ‘Define if rate limiting should be
disabled. Default: false’
type: boolean
type: object
type: object
type: object
targetRef:
description: TargetRef is a reference to the resource that represents
a group of clients.
properties:
kind:
description: Kind of the referenced resource
enum:
- Mesh
- MeshSubset
- MeshGateway
- MeshService
- MeshServiceSubset
- MeshHTTPRoute
type: string
mesh:
description: Mesh is reserved for future use to identify
cross mesh resources.
type: string
name:
description: ‘Name of the referenced resource. Can only
be used with kinds:
MeshService
,MeshServiceSubset
andMeshGatewayRoute
’ type: string tags: additionalProperties: type: string description: Tags used to select a subset of proxies by tags. Can only be used with kindsMeshSubset
andMeshServiceSubset
type: object type: object required: - targetRef type: object type: array targetRef: description: TargetRef is a reference to the resource the policy takes an effect on. The resource could be either a real store object or virtual resource defined inplace. properties: kind: description: Kind of the referenced resource enum: - Mesh - MeshSubset - MeshGateway - MeshService - MeshServiceSubset - MeshHTTPRoute type: string mesh: description: Mesh is reserved for future use to identify cross mesh resources. type: string name: description: ‘Name of the referenced resource. Can only be used with kinds:MeshService
,MeshServiceSubset
andMeshGatewayRoute
’ type: string tags: additionalProperties: type: string description: Tags used to select a subset of proxies by tags. Can only be used with kindsMeshSubset
andMeshServiceSubset
type: object type: object required: - targetRef type: object type: object served: true storage: true subresources: {}