apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.13.0 name: meshhealthchecks.kuma.io spec: group: kuma.io names: categories: - kuma kind: MeshHealthCheck listKind: MeshHealthCheckList plural: meshhealthchecks singular: meshhealthcheck 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 MeshHealthCheck resource.
properties:
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 to: description: To list makes a match between the consumed services and corresponding configurations items: properties: default: description: Default is a configuration specific to the group of destinations referenced in ‘targetRef’ properties: alwaysLogHealthCheckFailures: description: If set to true, health check failure events will always be logged. If set to false, only the initial health check failure event will be logged. The default value is false. type: boolean eventLogPath: description: Specifies the path to the file where Envoy can log health check events. If empty, no event log will be written. type: string failTrafficOnPanic: description: If set to true, Envoy will not consider any hosts when the cluster is in ‘panic mode’. Instead, the cluster will fail all requests as if all hosts are unhealthy. This can help avoid potentially overwhelming a failing service. type: boolean grpc: description: GrpcHealthCheck defines gRPC configuration which will instruct the service the health check will be made for is a gRPC service. properties: authority: description: The value of the :authority header in the gRPC health check request, by default name of the cluster this health check is associated with type: string disabled: description: If true the GrpcHealthCheck is disabled type: boolean serviceName: description: Service name parameter which will be sent to gRPC service type: string type: object healthyPanicThreshold: anyOf: - type: integer - type: string description: Allows to configure panic threshold for Envoy cluster. If not specified, the default is 50%. To disable panic mode, set to 0%. Either int or decimal represented as string. x-kubernetes-int-or-string: true healthyThreshold: default: 1 description: Number of consecutive healthy checks before considering a host healthy. format: int32 type: integer http: description: HttpHealthCheck defines HTTP configuration which will instruct the service the health check will be made for is an HTTP service. properties: disabled: description: If true the HttpHealthCheck is disabled type: boolean expectedStatuses: description: List of HTTP response statuses which are considered healthy items: format: int32 type: integer type: array path: default: / description: The HTTP path which will be requested during the health check (ie. /health) type: string requestHeadersToAdd: description: The list of HTTP headers which should be added to each health check request 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 type: object initialJitter: description: If specified, Envoy will start health checking after a random time in ms between 0 and initialJitter. This only applies to the first health check. type: string interval: default: 1m description: Interval between consecutive health checks. type: string intervalJitter: description: If specified, during every interval Envoy will add IntervalJitter to the wait time. type: string intervalJitterPercent: description: If specified, during every interval Envoy will add IntervalJitter * IntervalJitterPercent / 100 to the wait time. If IntervalJitter and IntervalJitterPercent are both set, both of them will be used to increase the wait time. format: int32 type: integer noTrafficInterval: description: The “no traffic interval” is a special health check interval that is used when a cluster has never had traffic routed to it. This lower interval allows cluster information to be kept up to date, without sending a potentially large amount of active health checking traffic for no reason. Once a cluster has been used for traffic routing, Envoy will shift back to using the standard health check interval that is defined. Note that this interval takes precedence over any other. The default value for “no traffic interval” is 60 seconds. type: string reuseConnection: description: Reuse health check connection between health checks. Default is true. type: boolean tcp: description: TcpHealthCheck defines configuration for specifying bytes to send and expected response during the health check properties: disabled: description: If true the TcpHealthCheck is disabled type: boolean receive: description: List of Base64 encoded blocks of strings expected as a response. When checking the response, “fuzzy” matching is performed such that each block must be found, and in the order specified, but not necessarily contiguous. If not provided or empty, checks will be performed as “connect only” and be marked as successful when TCP connection is successfully established. items: type: string type: array send: description: Base64 encoded content of the message which will be sent during the health check to the target type: string type: object timeout: default: 15s description: Maximum time to wait for a health check response. type: string unhealthyThreshold: default: 5 description: Number of consecutive unhealthy checks before considering a host unhealthy. format: int32 type: integer type: object targetRef: description: TargetRef is a reference to the resource that represents a group of destinations. 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 required: - targetRef type: object type: object served: true storage: true subresources: {}