Created
June 23, 2021 14:59
-
-
Save gcavalcante8808/e9547ed05c43cc8826603d10933b56f8 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"definitions": { | |
"virtualservices.networking.istio.io": { | |
"properties": { | |
"spec": { | |
"description": "Configuration affecting label/content routing, sni routing, etc. See more details at: https://istio.io/docs/reference/config/networking/virtual-service.html", | |
"properties": { | |
"exportTo": { | |
"description": "A list of namespaces to which this virtual service is exported.", | |
"items": { | |
"type": "string" | |
}, | |
"type": "array" | |
}, | |
"gateways": { | |
"description": "The names of gateways and sidecars that should apply these routes.", | |
"items": { | |
"type": "string" | |
}, | |
"type": "array" | |
}, | |
"hosts": { | |
"description": "The destination hosts to which traffic is being sent.", | |
"items": { | |
"type": "string" | |
}, | |
"type": "array" | |
}, | |
"http": { | |
"description": "An ordered list of route rules for HTTP traffic.", | |
"items": { | |
"properties": { | |
"corsPolicy": { | |
"description": "Cross-Origin Resource Sharing policy (CORS).", | |
"properties": { | |
"allowCredentials": { | |
"nullable": true, | |
"type": "boolean" | |
}, | |
"allowHeaders": { | |
"items": { | |
"type": "string" | |
}, | |
"type": "array" | |
}, | |
"allowMethods": { | |
"description": "List of HTTP methods allowed to access the resource.", | |
"items": { | |
"type": "string" | |
}, | |
"type": "array" | |
}, | |
"allowOrigin": { | |
"description": "The list of origins that are allowed to perform CORS requests.", | |
"items": { | |
"type": "string" | |
}, | |
"type": "array" | |
}, | |
"allowOrigins": { | |
"description": "String patterns that match allowed origins.", | |
"items": { | |
"oneOf": [ | |
{ | |
"not": { | |
"anyOf": [ | |
{ | |
"required": [ | |
"exact" | |
] | |
}, | |
{ | |
"required": [ | |
"prefix" | |
] | |
}, | |
{ | |
"required": [ | |
"regex" | |
] | |
} | |
] | |
} | |
}, | |
{ | |
"required": [ | |
"exact" | |
] | |
}, | |
{ | |
"required": [ | |
"prefix" | |
] | |
}, | |
{ | |
"required": [ | |
"regex" | |
] | |
} | |
], | |
"properties": { | |
"exact": { | |
"type": "string" | |
}, | |
"prefix": { | |
"type": "string" | |
}, | |
"regex": { | |
"description": "RE2 style regex-based match (https://github.com/google/re2/wiki/Syntax).", | |
"type": "string" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"type": "array" | |
}, | |
"exposeHeaders": { | |
"items": { | |
"type": "string" | |
}, | |
"type": "array" | |
}, | |
"maxAge": { | |
"type": "string" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"delegate": { | |
"properties": { | |
"name": { | |
"description": "Name specifies the name of the delegate VirtualService.", | |
"type": "string" | |
}, | |
"namespace": { | |
"description": "Namespace specifies the namespace where the delegate VirtualService resides.", | |
"type": "string" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"fault": { | |
"description": "Fault injection policy to apply on HTTP traffic at the client side.", | |
"properties": { | |
"abort": { | |
"oneOf": [ | |
{ | |
"not": { | |
"anyOf": [ | |
{ | |
"required": [ | |
"httpStatus" | |
] | |
}, | |
{ | |
"required": [ | |
"grpcStatus" | |
] | |
}, | |
{ | |
"required": [ | |
"http2Error" | |
] | |
} | |
] | |
} | |
}, | |
{ | |
"required": [ | |
"httpStatus" | |
] | |
}, | |
{ | |
"required": [ | |
"grpcStatus" | |
] | |
}, | |
{ | |
"required": [ | |
"http2Error" | |
] | |
} | |
], | |
"properties": { | |
"grpcStatus": { | |
"type": "string" | |
}, | |
"http2Error": { | |
"type": "string" | |
}, | |
"httpStatus": { | |
"description": "HTTP status code to use to abort the Http request.", | |
"format": "int32", | |
"type": "integer" | |
}, | |
"percentage": { | |
"description": "Percentage of requests to be aborted with the error code provided.", | |
"properties": { | |
"value": { | |
"format": "double", | |
"type": "number" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"delay": { | |
"oneOf": [ | |
{ | |
"not": { | |
"anyOf": [ | |
{ | |
"required": [ | |
"fixedDelay" | |
] | |
}, | |
{ | |
"required": [ | |
"exponentialDelay" | |
] | |
} | |
] | |
} | |
}, | |
{ | |
"required": [ | |
"fixedDelay" | |
] | |
}, | |
{ | |
"required": [ | |
"exponentialDelay" | |
] | |
} | |
], | |
"properties": { | |
"exponentialDelay": { | |
"type": "string" | |
}, | |
"fixedDelay": { | |
"description": "Add a fixed delay before forwarding the request.", | |
"type": "string" | |
}, | |
"percent": { | |
"description": "Percentage of requests on which the delay will be injected (0-100).", | |
"format": "int32", | |
"type": "integer" | |
}, | |
"percentage": { | |
"description": "Percentage of requests on which the delay will be injected.", | |
"properties": { | |
"value": { | |
"format": "double", | |
"type": "number" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"headers": { | |
"properties": { | |
"request": { | |
"properties": { | |
"add": { | |
"additionalProperties": { | |
"type": "string" | |
}, | |
"type": "object" | |
}, | |
"remove": { | |
"items": { | |
"type": "string" | |
}, | |
"type": "array" | |
}, | |
"set": { | |
"additionalProperties": { | |
"type": "string" | |
}, | |
"type": "object" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"response": { | |
"properties": { | |
"add": { | |
"additionalProperties": { | |
"type": "string" | |
}, | |
"type": "object" | |
}, | |
"remove": { | |
"items": { | |
"type": "string" | |
}, | |
"type": "array" | |
}, | |
"set": { | |
"additionalProperties": { | |
"type": "string" | |
}, | |
"type": "object" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"match": { | |
"items": { | |
"properties": { | |
"authority": { | |
"oneOf": [ | |
{ | |
"not": { | |
"anyOf": [ | |
{ | |
"required": [ | |
"exact" | |
] | |
}, | |
{ | |
"required": [ | |
"prefix" | |
] | |
}, | |
{ | |
"required": [ | |
"regex" | |
] | |
} | |
] | |
} | |
}, | |
{ | |
"required": [ | |
"exact" | |
] | |
}, | |
{ | |
"required": [ | |
"prefix" | |
] | |
}, | |
{ | |
"required": [ | |
"regex" | |
] | |
} | |
], | |
"properties": { | |
"exact": { | |
"type": "string" | |
}, | |
"prefix": { | |
"type": "string" | |
}, | |
"regex": { | |
"description": "RE2 style regex-based match (https://github.com/google/re2/wiki/Syntax).", | |
"type": "string" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"gateways": { | |
"description": "Names of gateways where the rule should be applied.", | |
"items": { | |
"type": "string" | |
}, | |
"type": "array" | |
}, | |
"headers": { | |
"additionalProperties": { | |
"oneOf": [ | |
{ | |
"not": { | |
"anyOf": [ | |
{ | |
"required": [ | |
"exact" | |
] | |
}, | |
{ | |
"required": [ | |
"prefix" | |
] | |
}, | |
{ | |
"required": [ | |
"regex" | |
] | |
} | |
] | |
} | |
}, | |
{ | |
"required": [ | |
"exact" | |
] | |
}, | |
{ | |
"required": [ | |
"prefix" | |
] | |
}, | |
{ | |
"required": [ | |
"regex" | |
] | |
} | |
], | |
"properties": { | |
"exact": { | |
"type": "string" | |
}, | |
"prefix": { | |
"type": "string" | |
}, | |
"regex": { | |
"description": "RE2 style regex-based match (https://github.com/google/re2/wiki/Syntax).", | |
"type": "string" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"type": "object" | |
}, | |
"ignoreUriCase": { | |
"description": "Flag to specify whether the URI matching should be case-insensitive.", | |
"type": "boolean" | |
}, | |
"method": { | |
"oneOf": [ | |
{ | |
"not": { | |
"anyOf": [ | |
{ | |
"required": [ | |
"exact" | |
] | |
}, | |
{ | |
"required": [ | |
"prefix" | |
] | |
}, | |
{ | |
"required": [ | |
"regex" | |
] | |
} | |
] | |
} | |
}, | |
{ | |
"required": [ | |
"exact" | |
] | |
}, | |
{ | |
"required": [ | |
"prefix" | |
] | |
}, | |
{ | |
"required": [ | |
"regex" | |
] | |
} | |
], | |
"properties": { | |
"exact": { | |
"type": "string" | |
}, | |
"prefix": { | |
"type": "string" | |
}, | |
"regex": { | |
"description": "RE2 style regex-based match (https://github.com/google/re2/wiki/Syntax).", | |
"type": "string" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"name": { | |
"description": "The name assigned to a match.", | |
"type": "string" | |
}, | |
"port": { | |
"description": "Specifies the ports on the host that is being addressed.", | |
"type": "integer" | |
}, | |
"queryParams": { | |
"additionalProperties": { | |
"oneOf": [ | |
{ | |
"not": { | |
"anyOf": [ | |
{ | |
"required": [ | |
"exact" | |
] | |
}, | |
{ | |
"required": [ | |
"prefix" | |
] | |
}, | |
{ | |
"required": [ | |
"regex" | |
] | |
} | |
] | |
} | |
}, | |
{ | |
"required": [ | |
"exact" | |
] | |
}, | |
{ | |
"required": [ | |
"prefix" | |
] | |
}, | |
{ | |
"required": [ | |
"regex" | |
] | |
} | |
], | |
"properties": { | |
"exact": { | |
"type": "string" | |
}, | |
"prefix": { | |
"type": "string" | |
}, | |
"regex": { | |
"description": "RE2 style regex-based match (https://github.com/google/re2/wiki/Syntax).", | |
"type": "string" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"description": "Query parameters for matching.", | |
"type": "object" | |
}, | |
"scheme": { | |
"oneOf": [ | |
{ | |
"not": { | |
"anyOf": [ | |
{ | |
"required": [ | |
"exact" | |
] | |
}, | |
{ | |
"required": [ | |
"prefix" | |
] | |
}, | |
{ | |
"required": [ | |
"regex" | |
] | |
} | |
] | |
} | |
}, | |
{ | |
"required": [ | |
"exact" | |
] | |
}, | |
{ | |
"required": [ | |
"prefix" | |
] | |
}, | |
{ | |
"required": [ | |
"regex" | |
] | |
} | |
], | |
"properties": { | |
"exact": { | |
"type": "string" | |
}, | |
"prefix": { | |
"type": "string" | |
}, | |
"regex": { | |
"description": "RE2 style regex-based match (https://github.com/google/re2/wiki/Syntax).", | |
"type": "string" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"sourceLabels": { | |
"additionalProperties": { | |
"type": "string" | |
}, | |
"type": "object" | |
}, | |
"sourceNamespace": { | |
"description": "Source namespace constraining the applicability of a rule to workloads in that namespace.", | |
"type": "string" | |
}, | |
"uri": { | |
"oneOf": [ | |
{ | |
"not": { | |
"anyOf": [ | |
{ | |
"required": [ | |
"exact" | |
] | |
}, | |
{ | |
"required": [ | |
"prefix" | |
] | |
}, | |
{ | |
"required": [ | |
"regex" | |
] | |
} | |
] | |
} | |
}, | |
{ | |
"required": [ | |
"exact" | |
] | |
}, | |
{ | |
"required": [ | |
"prefix" | |
] | |
}, | |
{ | |
"required": [ | |
"regex" | |
] | |
} | |
], | |
"properties": { | |
"exact": { | |
"type": "string" | |
}, | |
"prefix": { | |
"type": "string" | |
}, | |
"regex": { | |
"description": "RE2 style regex-based match (https://github.com/google/re2/wiki/Syntax).", | |
"type": "string" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"withoutHeaders": { | |
"additionalProperties": { | |
"oneOf": [ | |
{ | |
"not": { | |
"anyOf": [ | |
{ | |
"required": [ | |
"exact" | |
] | |
}, | |
{ | |
"required": [ | |
"prefix" | |
] | |
}, | |
{ | |
"required": [ | |
"regex" | |
] | |
} | |
] | |
} | |
}, | |
{ | |
"required": [ | |
"exact" | |
] | |
}, | |
{ | |
"required": [ | |
"prefix" | |
] | |
}, | |
{ | |
"required": [ | |
"regex" | |
] | |
} | |
], | |
"properties": { | |
"exact": { | |
"type": "string" | |
}, | |
"prefix": { | |
"type": "string" | |
}, | |
"regex": { | |
"description": "RE2 style regex-based match (https://github.com/google/re2/wiki/Syntax).", | |
"type": "string" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"description": "withoutHeader has the same syntax with the header, but has opposite meaning.", | |
"type": "object" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"type": "array" | |
}, | |
"mirror": { | |
"properties": { | |
"host": { | |
"description": "The name of a service from the service registry.", | |
"type": "string" | |
}, | |
"port": { | |
"description": "Specifies the port on the host that is being addressed.", | |
"properties": { | |
"number": { | |
"type": "integer" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"subset": { | |
"description": "The name of a subset within the service.", | |
"type": "string" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"mirror_percent": { | |
"description": "Percentage of the traffic to be mirrored by the `mirror` field.", | |
"nullable": true, | |
"type": "integer" | |
}, | |
"mirrorPercent": { | |
"description": "Percentage of the traffic to be mirrored by the `mirror` field.", | |
"nullable": true, | |
"type": "integer" | |
}, | |
"mirrorPercentage": { | |
"description": "Percentage of the traffic to be mirrored by the `mirror` field.", | |
"properties": { | |
"value": { | |
"format": "double", | |
"type": "number" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"name": { | |
"description": "The name assigned to the route for debugging purposes.", | |
"type": "string" | |
}, | |
"redirect": { | |
"description": "A HTTP rule can either redirect or forward (default) traffic.", | |
"properties": { | |
"authority": { | |
"type": "string" | |
}, | |
"redirectCode": { | |
"type": "integer" | |
}, | |
"uri": { | |
"type": "string" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"retries": { | |
"description": "Retry policy for HTTP requests.", | |
"properties": { | |
"attempts": { | |
"description": "Number of retries to be allowed for a given request.", | |
"format": "int32", | |
"type": "integer" | |
}, | |
"perTryTimeout": { | |
"description": "Timeout per attempt for a given request, including the initial call and any retries.", | |
"type": "string" | |
}, | |
"retryOn": { | |
"description": "Specifies the conditions under which retry takes place.", | |
"type": "string" | |
}, | |
"retryRemoteLocalities": { | |
"description": "Flag to specify whether the retries should retry to other localities.", | |
"nullable": true, | |
"type": "boolean" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"rewrite": { | |
"description": "Rewrite HTTP URIs and Authority headers.", | |
"properties": { | |
"authority": { | |
"description": "rewrite the Authority/Host header with this value.", | |
"type": "string" | |
}, | |
"uri": { | |
"type": "string" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"route": { | |
"description": "A HTTP rule can either redirect or forward (default) traffic.", | |
"items": { | |
"properties": { | |
"destination": { | |
"properties": { | |
"host": { | |
"description": "The name of a service from the service registry.", | |
"type": "string" | |
}, | |
"port": { | |
"description": "Specifies the port on the host that is being addressed.", | |
"properties": { | |
"number": { | |
"type": "integer" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"subset": { | |
"description": "The name of a subset within the service.", | |
"type": "string" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"headers": { | |
"properties": { | |
"request": { | |
"properties": { | |
"add": { | |
"additionalProperties": { | |
"type": "string" | |
}, | |
"type": "object" | |
}, | |
"remove": { | |
"items": { | |
"type": "string" | |
}, | |
"type": "array" | |
}, | |
"set": { | |
"additionalProperties": { | |
"type": "string" | |
}, | |
"type": "object" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"response": { | |
"properties": { | |
"add": { | |
"additionalProperties": { | |
"type": "string" | |
}, | |
"type": "object" | |
}, | |
"remove": { | |
"items": { | |
"type": "string" | |
}, | |
"type": "array" | |
}, | |
"set": { | |
"additionalProperties": { | |
"type": "string" | |
}, | |
"type": "object" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"weight": { | |
"format": "int32", | |
"type": "integer" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"type": "array" | |
}, | |
"timeout": { | |
"description": "Timeout for HTTP requests, default is disabled.", | |
"type": "string" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"type": "array" | |
}, | |
"tcp": { | |
"description": "An ordered list of route rules for opaque TCP traffic.", | |
"items": { | |
"properties": { | |
"match": { | |
"items": { | |
"properties": { | |
"destinationSubnets": { | |
"description": "IPv4 or IPv6 ip addresses of destination with optional subnet.", | |
"items": { | |
"type": "string" | |
}, | |
"type": "array" | |
}, | |
"gateways": { | |
"description": "Names of gateways where the rule should be applied.", | |
"items": { | |
"type": "string" | |
}, | |
"type": "array" | |
}, | |
"port": { | |
"description": "Specifies the port on the host that is being addressed.", | |
"type": "integer" | |
}, | |
"sourceLabels": { | |
"additionalProperties": { | |
"type": "string" | |
}, | |
"type": "object" | |
}, | |
"sourceNamespace": { | |
"description": "Source namespace constraining the applicability of a rule to workloads in that namespace.", | |
"type": "string" | |
}, | |
"sourceSubnet": { | |
"description": "IPv4 or IPv6 ip address of source with optional subnet.", | |
"type": "string" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"type": "array" | |
}, | |
"route": { | |
"description": "The destination to which the connection should be forwarded to.", | |
"items": { | |
"properties": { | |
"destination": { | |
"properties": { | |
"host": { | |
"description": "The name of a service from the service registry.", | |
"type": "string" | |
}, | |
"port": { | |
"description": "Specifies the port on the host that is being addressed.", | |
"properties": { | |
"number": { | |
"type": "integer" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"subset": { | |
"description": "The name of a subset within the service.", | |
"type": "string" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"weight": { | |
"format": "int32", | |
"type": "integer" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"type": "array" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"type": "array" | |
}, | |
"tls": { | |
"items": { | |
"properties": { | |
"match": { | |
"items": { | |
"properties": { | |
"destinationSubnets": { | |
"description": "IPv4 or IPv6 ip addresses of destination with optional subnet.", | |
"items": { | |
"type": "string" | |
}, | |
"type": "array" | |
}, | |
"gateways": { | |
"description": "Names of gateways where the rule should be applied.", | |
"items": { | |
"type": "string" | |
}, | |
"type": "array" | |
}, | |
"port": { | |
"description": "Specifies the port on the host that is being addressed.", | |
"type": "integer" | |
}, | |
"sniHosts": { | |
"description": "SNI (server name indicator) to match on.", | |
"items": { | |
"type": "string" | |
}, | |
"type": "array" | |
}, | |
"sourceLabels": { | |
"additionalProperties": { | |
"type": "string" | |
}, | |
"type": "object" | |
}, | |
"sourceNamespace": { | |
"description": "Source namespace constraining the applicability of a rule to workloads in that namespace.", | |
"type": "string" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"type": "array" | |
}, | |
"route": { | |
"description": "The destination to which the connection should be forwarded to.", | |
"items": { | |
"properties": { | |
"destination": { | |
"properties": { | |
"host": { | |
"description": "The name of a service from the service registry.", | |
"type": "string" | |
}, | |
"port": { | |
"description": "Specifies the port on the host that is being addressed.", | |
"properties": { | |
"number": { | |
"type": "integer" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"subset": { | |
"description": "The name of a subset within the service.", | |
"type": "string" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"weight": { | |
"format": "int32", | |
"type": "integer" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"type": "array" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"type": "array" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"status": { | |
"type": "object", | |
"x-kubernetes-preserve-unknown-fields": true | |
} | |
}, | |
"type": "object" | |
}, | |
"destinationrules.networking.istio.io": { | |
"DestinationRule": { | |
"properties": { | |
"spec": { | |
"description": "Configuration affecting load balancing, outlier detection, etc. See more details at: https://istio.io/docs/reference/config/networking/destination-rule.html", | |
"properties": { | |
"exportTo": { | |
"description": "A list of namespaces to which this destination rule is exported.", | |
"items": { | |
"type": "string" | |
}, | |
"type": "array" | |
}, | |
"host": { | |
"description": "The name of a service from the service registry.", | |
"type": "string" | |
}, | |
"subsets": { | |
"items": { | |
"properties": { | |
"labels": { | |
"additionalProperties": { | |
"type": "string" | |
}, | |
"type": "object" | |
}, | |
"name": { | |
"description": "Name of the subset.", | |
"type": "string" | |
}, | |
"trafficPolicy": { | |
"description": "Traffic policies that apply to this subset.", | |
"properties": { | |
"connectionPool": { | |
"properties": { | |
"http": { | |
"description": "HTTP connection pool settings.", | |
"properties": { | |
"h2UpgradePolicy": { | |
"description": "Specify if http1.1 connection should be upgraded to http2 for the associated destination.", | |
"enum": [ | |
"DEFAULT", | |
"DO_NOT_UPGRADE", | |
"UPGRADE" | |
], | |
"type": "string" | |
}, | |
"http1MaxPendingRequests": { | |
"description": "Maximum number of pending HTTP requests to a destination.", | |
"format": "int32", | |
"type": "integer" | |
}, | |
"http2MaxRequests": { | |
"description": "Maximum number of requests to a backend.", | |
"format": "int32", | |
"type": "integer" | |
}, | |
"idleTimeout": { | |
"description": "The idle timeout for upstream connection pool connections.", | |
"type": "string" | |
}, | |
"maxRequestsPerConnection": { | |
"description": "Maximum number of requests per connection to a backend.", | |
"format": "int32", | |
"type": "integer" | |
}, | |
"maxRetries": { | |
"format": "int32", | |
"type": "integer" | |
}, | |
"useClientProtocol": { | |
"description": "If set to true, client protocol will be preserved while initiating connection to backend.", | |
"type": "boolean" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"tcp": { | |
"description": "Settings common to both HTTP and TCP upstream connections.", | |
"properties": { | |
"connectTimeout": { | |
"description": "TCP connection timeout.", | |
"type": "string" | |
}, | |
"maxConnections": { | |
"description": "Maximum number of HTTP1 /TCP connections to a destination host.", | |
"format": "int32", | |
"type": "integer" | |
}, | |
"tcpKeepalive": { | |
"description": "If set then set SO_KEEPALIVE on the socket to enable TCP Keepalives.", | |
"properties": { | |
"interval": { | |
"description": "The time duration between keep-alive probes.", | |
"type": "string" | |
}, | |
"probes": { | |
"type": "integer" | |
}, | |
"time": { | |
"type": "string" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"loadBalancer": { | |
"description": "Settings controlling the load balancer algorithms.", | |
"oneOf": [ | |
{ | |
"not": { | |
"anyOf": [ | |
{ | |
"required": [ | |
"simple" | |
] | |
}, | |
{ | |
"properties": { | |
"consistentHash": { | |
"oneOf": [ | |
{ | |
"not": { | |
"anyOf": [ | |
{ | |
"required": [ | |
"httpHeaderName" | |
] | |
}, | |
{ | |
"required": [ | |
"httpCookie" | |
] | |
}, | |
{ | |
"required": [ | |
"useSourceIp" | |
] | |
}, | |
{ | |
"required": [ | |
"httpQueryParameterName" | |
] | |
} | |
] | |
} | |
}, | |
{ | |
"required": [ | |
"httpHeaderName" | |
] | |
}, | |
{ | |
"required": [ | |
"httpCookie" | |
] | |
}, | |
{ | |
"required": [ | |
"useSourceIp" | |
] | |
}, | |
{ | |
"required": [ | |
"httpQueryParameterName" | |
] | |
} | |
] | |
} | |
}, | |
"required": [ | |
"consistentHash" | |
] | |
} | |
] | |
} | |
}, | |
{ | |
"required": [ | |
"simple" | |
] | |
}, | |
{ | |
"properties": { | |
"consistentHash": { | |
"oneOf": [ | |
{ | |
"not": { | |
"anyOf": [ | |
{ | |
"required": [ | |
"httpHeaderName" | |
] | |
}, | |
{ | |
"required": [ | |
"httpCookie" | |
] | |
}, | |
{ | |
"required": [ | |
"useSourceIp" | |
] | |
}, | |
{ | |
"required": [ | |
"httpQueryParameterName" | |
] | |
} | |
] | |
} | |
}, | |
{ | |
"required": [ | |
"httpHeaderName" | |
] | |
}, | |
{ | |
"required": [ | |
"httpCookie" | |
] | |
}, | |
{ | |
"required": [ | |
"useSourceIp" | |
] | |
}, | |
{ | |
"required": [ | |
"httpQueryParameterName" | |
] | |
} | |
] | |
} | |
}, | |
"required": [ | |
"consistentHash" | |
] | |
} | |
], | |
"properties": { | |
"consistentHash": { | |
"properties": { | |
"httpCookie": { | |
"description": "Hash based on HTTP cookie.", | |
"properties": { | |
"name": { | |
"description": "Name of the cookie.", | |
"type": "string" | |
}, | |
"path": { | |
"description": "Path to set for the cookie.", | |
"type": "string" | |
}, | |
"ttl": { | |
"description": "Lifetime of the cookie.", | |
"type": "string" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"httpHeaderName": { | |
"description": "Hash based on a specific HTTP header.", | |
"type": "string" | |
}, | |
"httpQueryParameterName": { | |
"description": "Hash based on a specific HTTP query parameter.", | |
"type": "string" | |
}, | |
"minimumRingSize": { | |
"type": "integer" | |
}, | |
"useSourceIp": { | |
"description": "Hash based on the source IP address.", | |
"type": "boolean" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"localityLbSetting": { | |
"properties": { | |
"distribute": { | |
"description": "Optional: only one of distribute or failover can be set.", | |
"items": { | |
"properties": { | |
"from": { | |
"description": "Originating locality, '/' separated, e.g.", | |
"type": "string" | |
}, | |
"to": { | |
"additionalProperties": { | |
"type": "integer" | |
}, | |
"description": "Map of upstream localities to traffic distribution weights.", | |
"type": "object" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"type": "array" | |
}, | |
"enabled": { | |
"description": "enable locality load balancing, this is DestinationRule-level and will override mesh wide settings in entirety.", | |
"nullable": true, | |
"type": "boolean" | |
}, | |
"failover": { | |
"description": "Optional: only failover or distribute can be set.", | |
"items": { | |
"properties": { | |
"from": { | |
"description": "Originating region.", | |
"type": "string" | |
}, | |
"to": { | |
"type": "string" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"type": "array" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"simple": { | |
"enum": [ | |
"ROUND_ROBIN", | |
"LEAST_CONN", | |
"RANDOM", | |
"PASSTHROUGH" | |
], | |
"type": "string" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"outlierDetection": { | |
"properties": { | |
"baseEjectionTime": { | |
"description": "Minimum ejection duration.", | |
"type": "string" | |
}, | |
"consecutive5xxErrors": { | |
"description": "Number of 5xx errors before a host is ejected from the connection pool.", | |
"nullable": true, | |
"type": "integer" | |
}, | |
"consecutiveErrors": { | |
"format": "int32", | |
"type": "integer" | |
}, | |
"consecutiveGatewayErrors": { | |
"description": "Number of gateway errors before a host is ejected from the connection pool.", | |
"nullable": true, | |
"type": "integer" | |
}, | |
"consecutiveLocalOriginFailures": { | |
"nullable": true, | |
"type": "integer" | |
}, | |
"interval": { | |
"description": "Time interval between ejection sweep analysis.", | |
"type": "string" | |
}, | |
"maxEjectionPercent": { | |
"format": "int32", | |
"type": "integer" | |
}, | |
"minHealthPercent": { | |
"format": "int32", | |
"type": "integer" | |
}, | |
"splitExternalLocalOriginErrors": { | |
"description": "Determines whether to distinguish local origin failures from external errors.", | |
"type": "boolean" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"portLevelSettings": { | |
"description": "Traffic policies specific to individual ports.", | |
"items": { | |
"properties": { | |
"connectionPool": { | |
"properties": { | |
"http": { | |
"description": "HTTP connection pool settings.", | |
"properties": { | |
"h2UpgradePolicy": { | |
"description": "Specify if http1.1 connection should be upgraded to http2 for the associated destination.", | |
"enum": [ | |
"DEFAULT", | |
"DO_NOT_UPGRADE", | |
"UPGRADE" | |
], | |
"type": "string" | |
}, | |
"http1MaxPendingRequests": { | |
"description": "Maximum number of pending HTTP requests to a destination.", | |
"format": "int32", | |
"type": "integer" | |
}, | |
"http2MaxRequests": { | |
"description": "Maximum number of requests to a backend.", | |
"format": "int32", | |
"type": "integer" | |
}, | |
"idleTimeout": { | |
"description": "The idle timeout for upstream connection pool connections.", | |
"type": "string" | |
}, | |
"maxRequestsPerConnection": { | |
"description": "Maximum number of requests per connection to a backend.", | |
"format": "int32", | |
"type": "integer" | |
}, | |
"maxRetries": { | |
"format": "int32", | |
"type": "integer" | |
}, | |
"useClientProtocol": { | |
"description": "If set to true, client protocol will be preserved while initiating connection to backend.", | |
"type": "boolean" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"tcp": { | |
"description": "Settings common to both HTTP and TCP upstream connections.", | |
"properties": { | |
"connectTimeout": { | |
"description": "TCP connection timeout.", | |
"type": "string" | |
}, | |
"maxConnections": { | |
"description": "Maximum number of HTTP1 /TCP connections to a destination host.", | |
"format": "int32", | |
"type": "integer" | |
}, | |
"tcpKeepalive": { | |
"description": "If set then set SO_KEEPALIVE on the socket to enable TCP Keepalives.", | |
"properties": { | |
"interval": { | |
"description": "The time duration between keep-alive probes.", | |
"type": "string" | |
}, | |
"probes": { | |
"type": "integer" | |
}, | |
"time": { | |
"type": "string" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"loadBalancer": { | |
"description": "Settings controlling the load balancer algorithms.", | |
"oneOf": [ | |
{ | |
"not": { | |
"anyOf": [ | |
{ | |
"required": [ | |
"simple" | |
] | |
}, | |
{ | |
"properties": { | |
"consistentHash": { | |
"oneOf": [ | |
{ | |
"not": { | |
"anyOf": [ | |
{ | |
"required": [ | |
"httpHeaderName" | |
] | |
}, | |
{ | |
"required": [ | |
"httpCookie" | |
] | |
}, | |
{ | |
"required": [ | |
"useSourceIp" | |
] | |
}, | |
{ | |
"required": [ | |
"httpQueryParameterName" | |
] | |
} | |
] | |
} | |
}, | |
{ | |
"required": [ | |
"httpHeaderName" | |
] | |
}, | |
{ | |
"required": [ | |
"httpCookie" | |
] | |
}, | |
{ | |
"required": [ | |
"useSourceIp" | |
] | |
}, | |
{ | |
"required": [ | |
"httpQueryParameterName" | |
] | |
} | |
] | |
} | |
}, | |
"required": [ | |
"consistentHash" | |
] | |
} | |
] | |
} | |
}, | |
{ | |
"required": [ | |
"simple" | |
] | |
}, | |
{ | |
"properties": { | |
"consistentHash": { | |
"oneOf": [ | |
{ | |
"not": { | |
"anyOf": [ | |
{ | |
"required": [ | |
"httpHeaderName" | |
] | |
}, | |
{ | |
"required": [ | |
"httpCookie" | |
] | |
}, | |
{ | |
"required": [ | |
"useSourceIp" | |
] | |
}, | |
{ | |
"required": [ | |
"httpQueryParameterName" | |
] | |
} | |
] | |
} | |
}, | |
{ | |
"required": [ | |
"httpHeaderName" | |
] | |
}, | |
{ | |
"required": [ | |
"httpCookie" | |
] | |
}, | |
{ | |
"required": [ | |
"useSourceIp" | |
] | |
}, | |
{ | |
"required": [ | |
"httpQueryParameterName" | |
] | |
} | |
] | |
} | |
}, | |
"required": [ | |
"consistentHash" | |
] | |
} | |
], | |
"properties": { | |
"consistentHash": { | |
"properties": { | |
"httpCookie": { | |
"description": "Hash based on HTTP cookie.", | |
"properties": { | |
"name": { | |
"description": "Name of the cookie.", | |
"type": "string" | |
}, | |
"path": { | |
"description": "Path to set for the cookie.", | |
"type": "string" | |
}, | |
"ttl": { | |
"description": "Lifetime of the cookie.", | |
"type": "string" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"httpHeaderName": { | |
"description": "Hash based on a specific HTTP header.", | |
"type": "string" | |
}, | |
"httpQueryParameterName": { | |
"description": "Hash based on a specific HTTP query parameter.", | |
"type": "string" | |
}, | |
"minimumRingSize": { | |
"type": "integer" | |
}, | |
"useSourceIp": { | |
"description": "Hash based on the source IP address.", | |
"type": "boolean" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"localityLbSetting": { | |
"properties": { | |
"distribute": { | |
"description": "Optional: only one of distribute or failover can be set.", | |
"items": { | |
"properties": { | |
"from": { | |
"description": "Originating locality, '/' separated, e.g.", | |
"type": "string" | |
}, | |
"to": { | |
"additionalProperties": { | |
"type": "integer" | |
}, | |
"description": "Map of upstream localities to traffic distribution weights.", | |
"type": "object" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"type": "array" | |
}, | |
"enabled": { | |
"description": "enable locality load balancing, this is DestinationRule-level and will override mesh wide settings in entirety.", | |
"nullable": true, | |
"type": "boolean" | |
}, | |
"failover": { | |
"description": "Optional: only failover or distribute can be set.", | |
"items": { | |
"properties": { | |
"from": { | |
"description": "Originating region.", | |
"type": "string" | |
}, | |
"to": { | |
"type": "string" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"type": "array" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"simple": { | |
"enum": [ | |
"ROUND_ROBIN", | |
"LEAST_CONN", | |
"RANDOM", | |
"PASSTHROUGH" | |
], | |
"type": "string" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"outlierDetection": { | |
"properties": { | |
"baseEjectionTime": { | |
"description": "Minimum ejection duration.", | |
"type": "string" | |
}, | |
"consecutive5xxErrors": { | |
"description": "Number of 5xx errors before a host is ejected from the connection pool.", | |
"nullable": true, | |
"type": "integer" | |
}, | |
"consecutiveErrors": { | |
"format": "int32", | |
"type": "integer" | |
}, | |
"consecutiveGatewayErrors": { | |
"description": "Number of gateway errors before a host is ejected from the connection pool.", | |
"nullable": true, | |
"type": "integer" | |
}, | |
"consecutiveLocalOriginFailures": { | |
"nullable": true, | |
"type": "integer" | |
}, | |
"interval": { | |
"description": "Time interval between ejection sweep analysis.", | |
"type": "string" | |
}, | |
"maxEjectionPercent": { | |
"format": "int32", | |
"type": "integer" | |
}, | |
"minHealthPercent": { | |
"format": "int32", | |
"type": "integer" | |
}, | |
"splitExternalLocalOriginErrors": { | |
"description": "Determines whether to distinguish local origin failures from external errors.", | |
"type": "boolean" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"port": { | |
"properties": { | |
"number": { | |
"type": "integer" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"tls": { | |
"description": "TLS related settings for connections to the upstream service.", | |
"properties": { | |
"caCertificates": { | |
"type": "string" | |
}, | |
"clientCertificate": { | |
"description": "REQUIRED if mode is `MUTUAL`.", | |
"type": "string" | |
}, | |
"credentialName": { | |
"type": "string" | |
}, | |
"mode": { | |
"enum": [ | |
"DISABLE", | |
"SIMPLE", | |
"MUTUAL", | |
"ISTIO_MUTUAL" | |
], | |
"type": "string" | |
}, | |
"privateKey": { | |
"description": "REQUIRED if mode is `MUTUAL`.", | |
"type": "string" | |
}, | |
"sni": { | |
"description": "SNI string to present to the server during TLS handshake.", | |
"type": "string" | |
}, | |
"subjectAltNames": { | |
"items": { | |
"type": "string" | |
}, | |
"type": "array" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"type": "array" | |
}, | |
"tls": { | |
"description": "TLS related settings for connections to the upstream service.", | |
"properties": { | |
"caCertificates": { | |
"type": "string" | |
}, | |
"clientCertificate": { | |
"description": "REQUIRED if mode is `MUTUAL`.", | |
"type": "string" | |
}, | |
"credentialName": { | |
"type": "string" | |
}, | |
"mode": { | |
"enum": [ | |
"DISABLE", | |
"SIMPLE", | |
"MUTUAL", | |
"ISTIO_MUTUAL" | |
], | |
"type": "string" | |
}, | |
"privateKey": { | |
"description": "REQUIRED if mode is `MUTUAL`.", | |
"type": "string" | |
}, | |
"sni": { | |
"description": "SNI string to present to the server during TLS handshake.", | |
"type": "string" | |
}, | |
"subjectAltNames": { | |
"items": { | |
"type": "string" | |
}, | |
"type": "array" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"type": "array" | |
}, | |
"trafficPolicy": { | |
"properties": { | |
"connectionPool": { | |
"properties": { | |
"http": { | |
"description": "HTTP connection pool settings.", | |
"properties": { | |
"h2UpgradePolicy": { | |
"description": "Specify if http1.1 connection should be upgraded to http2 for the associated destination.", | |
"enum": [ | |
"DEFAULT", | |
"DO_NOT_UPGRADE", | |
"UPGRADE" | |
], | |
"type": "string" | |
}, | |
"http1MaxPendingRequests": { | |
"description": "Maximum number of pending HTTP requests to a destination.", | |
"format": "int32", | |
"type": "integer" | |
}, | |
"http2MaxRequests": { | |
"description": "Maximum number of requests to a backend.", | |
"format": "int32", | |
"type": "integer" | |
}, | |
"idleTimeout": { | |
"description": "The idle timeout for upstream connection pool connections.", | |
"type": "string" | |
}, | |
"maxRequestsPerConnection": { | |
"description": "Maximum number of requests per connection to a backend.", | |
"format": "int32", | |
"type": "integer" | |
}, | |
"maxRetries": { | |
"format": "int32", | |
"type": "integer" | |
}, | |
"useClientProtocol": { | |
"description": "If set to true, client protocol will be preserved while initiating connection to backend.", | |
"type": "boolean" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"tcp": { | |
"description": "Settings common to both HTTP and TCP upstream connections.", | |
"properties": { | |
"connectTimeout": { | |
"description": "TCP connection timeout.", | |
"type": "string" | |
}, | |
"maxConnections": { | |
"description": "Maximum number of HTTP1 /TCP connections to a destination host.", | |
"format": "int32", | |
"type": "integer" | |
}, | |
"tcpKeepalive": { | |
"description": "If set then set SO_KEEPALIVE on the socket to enable TCP Keepalives.", | |
"properties": { | |
"interval": { | |
"description": "The time duration between keep-alive probes.", | |
"type": "string" | |
}, | |
"probes": { | |
"type": "integer" | |
}, | |
"time": { | |
"type": "string" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"loadBalancer": { | |
"description": "Settings controlling the load balancer algorithms.", | |
"oneOf": [ | |
{ | |
"not": { | |
"anyOf": [ | |
{ | |
"required": [ | |
"simple" | |
] | |
}, | |
{ | |
"properties": { | |
"consistentHash": { | |
"oneOf": [ | |
{ | |
"not": { | |
"anyOf": [ | |
{ | |
"required": [ | |
"httpHeaderName" | |
] | |
}, | |
{ | |
"required": [ | |
"httpCookie" | |
] | |
}, | |
{ | |
"required": [ | |
"useSourceIp" | |
] | |
}, | |
{ | |
"required": [ | |
"httpQueryParameterName" | |
] | |
} | |
] | |
} | |
}, | |
{ | |
"required": [ | |
"httpHeaderName" | |
] | |
}, | |
{ | |
"required": [ | |
"httpCookie" | |
] | |
}, | |
{ | |
"required": [ | |
"useSourceIp" | |
] | |
}, | |
{ | |
"required": [ | |
"httpQueryParameterName" | |
] | |
} | |
] | |
} | |
}, | |
"required": [ | |
"consistentHash" | |
] | |
} | |
] | |
} | |
}, | |
{ | |
"required": [ | |
"simple" | |
] | |
}, | |
{ | |
"properties": { | |
"consistentHash": { | |
"oneOf": [ | |
{ | |
"not": { | |
"anyOf": [ | |
{ | |
"required": [ | |
"httpHeaderName" | |
] | |
}, | |
{ | |
"required": [ | |
"httpCookie" | |
] | |
}, | |
{ | |
"required": [ | |
"useSourceIp" | |
] | |
}, | |
{ | |
"required": [ | |
"httpQueryParameterName" | |
] | |
} | |
] | |
} | |
}, | |
{ | |
"required": [ | |
"httpHeaderName" | |
] | |
}, | |
{ | |
"required": [ | |
"httpCookie" | |
] | |
}, | |
{ | |
"required": [ | |
"useSourceIp" | |
] | |
}, | |
{ | |
"required": [ | |
"httpQueryParameterName" | |
] | |
} | |
] | |
} | |
}, | |
"required": [ | |
"consistentHash" | |
] | |
} | |
], | |
"properties": { | |
"consistentHash": { | |
"properties": { | |
"httpCookie": { | |
"description": "Hash based on HTTP cookie.", | |
"properties": { | |
"name": { | |
"description": "Name of the cookie.", | |
"type": "string" | |
}, | |
"path": { | |
"description": "Path to set for the cookie.", | |
"type": "string" | |
}, | |
"ttl": { | |
"description": "Lifetime of the cookie.", | |
"type": "string" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"httpHeaderName": { | |
"description": "Hash based on a specific HTTP header.", | |
"type": "string" | |
}, | |
"httpQueryParameterName": { | |
"description": "Hash based on a specific HTTP query parameter.", | |
"type": "string" | |
}, | |
"minimumRingSize": { | |
"type": "integer" | |
}, | |
"useSourceIp": { | |
"description": "Hash based on the source IP address.", | |
"type": "boolean" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"localityLbSetting": { | |
"properties": { | |
"distribute": { | |
"description": "Optional: only one of distribute or failover can be set.", | |
"items": { | |
"properties": { | |
"from": { | |
"description": "Originating locality, '/' separated, e.g.", | |
"type": "string" | |
}, | |
"to": { | |
"additionalProperties": { | |
"type": "integer" | |
}, | |
"description": "Map of upstream localities to traffic distribution weights.", | |
"type": "object" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"type": "array" | |
}, | |
"enabled": { | |
"description": "enable locality load balancing, this is DestinationRule-level and will override mesh wide settings in entirety.", | |
"nullable": true, | |
"type": "boolean" | |
}, | |
"failover": { | |
"description": "Optional: only failover or distribute can be set.", | |
"items": { | |
"properties": { | |
"from": { | |
"description": "Originating region.", | |
"type": "string" | |
}, | |
"to": { | |
"type": "string" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"type": "array" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"simple": { | |
"enum": [ | |
"ROUND_ROBIN", | |
"LEAST_CONN", | |
"RANDOM", | |
"PASSTHROUGH" | |
], | |
"type": "string" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"outlierDetection": { | |
"properties": { | |
"baseEjectionTime": { | |
"description": "Minimum ejection duration.", | |
"type": "string" | |
}, | |
"consecutive5xxErrors": { | |
"description": "Number of 5xx errors before a host is ejected from the connection pool.", | |
"nullable": true, | |
"type": "integer" | |
}, | |
"consecutiveErrors": { | |
"format": "int32", | |
"type": "integer" | |
}, | |
"consecutiveGatewayErrors": { | |
"description": "Number of gateway errors before a host is ejected from the connection pool.", | |
"nullable": true, | |
"type": "integer" | |
}, | |
"consecutiveLocalOriginFailures": { | |
"nullable": true, | |
"type": "integer" | |
}, | |
"interval": { | |
"description": "Time interval between ejection sweep analysis.", | |
"type": "string" | |
}, | |
"maxEjectionPercent": { | |
"format": "int32", | |
"type": "integer" | |
}, | |
"minHealthPercent": { | |
"format": "int32", | |
"type": "integer" | |
}, | |
"splitExternalLocalOriginErrors": { | |
"description": "Determines whether to distinguish local origin failures from external errors.", | |
"type": "boolean" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"portLevelSettings": { | |
"description": "Traffic policies specific to individual ports.", | |
"items": { | |
"properties": { | |
"connectionPool": { | |
"properties": { | |
"http": { | |
"description": "HTTP connection pool settings.", | |
"properties": { | |
"h2UpgradePolicy": { | |
"description": "Specify if http1.1 connection should be upgraded to http2 for the associated destination.", | |
"enum": [ | |
"DEFAULT", | |
"DO_NOT_UPGRADE", | |
"UPGRADE" | |
], | |
"type": "string" | |
}, | |
"http1MaxPendingRequests": { | |
"description": "Maximum number of pending HTTP requests to a destination.", | |
"format": "int32", | |
"type": "integer" | |
}, | |
"http2MaxRequests": { | |
"description": "Maximum number of requests to a backend.", | |
"format": "int32", | |
"type": "integer" | |
}, | |
"idleTimeout": { | |
"description": "The idle timeout for upstream connection pool connections.", | |
"type": "string" | |
}, | |
"maxRequestsPerConnection": { | |
"description": "Maximum number of requests per connection to a backend.", | |
"format": "int32", | |
"type": "integer" | |
}, | |
"maxRetries": { | |
"format": "int32", | |
"type": "integer" | |
}, | |
"useClientProtocol": { | |
"description": "If set to true, client protocol will be preserved while initiating connection to backend.", | |
"type": "boolean" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"tcp": { | |
"description": "Settings common to both HTTP and TCP upstream connections.", | |
"properties": { | |
"connectTimeout": { | |
"description": "TCP connection timeout.", | |
"type": "string" | |
}, | |
"maxConnections": { | |
"description": "Maximum number of HTTP1 /TCP connections to a destination host.", | |
"format": "int32", | |
"type": "integer" | |
}, | |
"tcpKeepalive": { | |
"description": "If set then set SO_KEEPALIVE on the socket to enable TCP Keepalives.", | |
"properties": { | |
"interval": { | |
"description": "The time duration between keep-alive probes.", | |
"type": "string" | |
}, | |
"probes": { | |
"type": "integer" | |
}, | |
"time": { | |
"type": "string" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"loadBalancer": { | |
"description": "Settings controlling the load balancer algorithms.", | |
"oneOf": [ | |
{ | |
"not": { | |
"anyOf": [ | |
{ | |
"required": [ | |
"simple" | |
] | |
}, | |
{ | |
"properties": { | |
"consistentHash": { | |
"oneOf": [ | |
{ | |
"not": { | |
"anyOf": [ | |
{ | |
"required": [ | |
"httpHeaderName" | |
] | |
}, | |
{ | |
"required": [ | |
"httpCookie" | |
] | |
}, | |
{ | |
"required": [ | |
"useSourceIp" | |
] | |
}, | |
{ | |
"required": [ | |
"httpQueryParameterName" | |
] | |
} | |
] | |
} | |
}, | |
{ | |
"required": [ | |
"httpHeaderName" | |
] | |
}, | |
{ | |
"required": [ | |
"httpCookie" | |
] | |
}, | |
{ | |
"required": [ | |
"useSourceIp" | |
] | |
}, | |
{ | |
"required": [ | |
"httpQueryParameterName" | |
] | |
} | |
] | |
} | |
}, | |
"required": [ | |
"consistentHash" | |
] | |
} | |
] | |
} | |
}, | |
{ | |
"required": [ | |
"simple" | |
] | |
}, | |
{ | |
"properties": { | |
"consistentHash": { | |
"oneOf": [ | |
{ | |
"not": { | |
"anyOf": [ | |
{ | |
"required": [ | |
"httpHeaderName" | |
] | |
}, | |
{ | |
"required": [ | |
"httpCookie" | |
] | |
}, | |
{ | |
"required": [ | |
"useSourceIp" | |
] | |
}, | |
{ | |
"required": [ | |
"httpQueryParameterName" | |
] | |
} | |
] | |
} | |
}, | |
{ | |
"required": [ | |
"httpHeaderName" | |
] | |
}, | |
{ | |
"required": [ | |
"httpCookie" | |
] | |
}, | |
{ | |
"required": [ | |
"useSourceIp" | |
] | |
}, | |
{ | |
"required": [ | |
"httpQueryParameterName" | |
] | |
} | |
] | |
} | |
}, | |
"required": [ | |
"consistentHash" | |
] | |
} | |
], | |
"properties": { | |
"consistentHash": { | |
"properties": { | |
"httpCookie": { | |
"description": "Hash based on HTTP cookie.", | |
"properties": { | |
"name": { | |
"description": "Name of the cookie.", | |
"type": "string" | |
}, | |
"path": { | |
"description": "Path to set for the cookie.", | |
"type": "string" | |
}, | |
"ttl": { | |
"description": "Lifetime of the cookie.", | |
"type": "string" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"httpHeaderName": { | |
"description": "Hash based on a specific HTTP header.", | |
"type": "string" | |
}, | |
"httpQueryParameterName": { | |
"description": "Hash based on a specific HTTP query parameter.", | |
"type": "string" | |
}, | |
"minimumRingSize": { | |
"type": "integer" | |
}, | |
"useSourceIp": { | |
"description": "Hash based on the source IP address.", | |
"type": "boolean" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"localityLbSetting": { | |
"properties": { | |
"distribute": { | |
"description": "Optional: only one of distribute or failover can be set.", | |
"items": { | |
"properties": { | |
"from": { | |
"description": "Originating locality, '/' separated, e.g.", | |
"type": "string" | |
}, | |
"to": { | |
"additionalProperties": { | |
"type": "integer" | |
}, | |
"description": "Map of upstream localities to traffic distribution weights.", | |
"type": "object" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"type": "array" | |
}, | |
"enabled": { | |
"description": "enable locality load balancing, this is DestinationRule-level and will override mesh wide settings in entirety.", | |
"nullable": true, | |
"type": "boolean" | |
}, | |
"failover": { | |
"description": "Optional: only failover or distribute can be set.", | |
"items": { | |
"properties": { | |
"from": { | |
"description": "Originating region.", | |
"type": "string" | |
}, | |
"to": { | |
"type": "string" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"type": "array" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"simple": { | |
"enum": [ | |
"ROUND_ROBIN", | |
"LEAST_CONN", | |
"RANDOM", | |
"PASSTHROUGH" | |
], | |
"type": "string" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"outlierDetection": { | |
"properties": { | |
"baseEjectionTime": { | |
"description": "Minimum ejection duration.", | |
"type": "string" | |
}, | |
"consecutive5xxErrors": { | |
"description": "Number of 5xx errors before a host is ejected from the connection pool.", | |
"nullable": true, | |
"type": "integer" | |
}, | |
"consecutiveErrors": { | |
"format": "int32", | |
"type": "integer" | |
}, | |
"consecutiveGatewayErrors": { | |
"description": "Number of gateway errors before a host is ejected from the connection pool.", | |
"nullable": true, | |
"type": "integer" | |
}, | |
"consecutiveLocalOriginFailures": { | |
"nullable": true, | |
"type": "integer" | |
}, | |
"interval": { | |
"description": "Time interval between ejection sweep analysis.", | |
"type": "string" | |
}, | |
"maxEjectionPercent": { | |
"format": "int32", | |
"type": "integer" | |
}, | |
"minHealthPercent": { | |
"format": "int32", | |
"type": "integer" | |
}, | |
"splitExternalLocalOriginErrors": { | |
"description": "Determines whether to distinguish local origin failures from external errors.", | |
"type": "boolean" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"port": { | |
"properties": { | |
"number": { | |
"type": "integer" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"tls": { | |
"description": "TLS related settings for connections to the upstream service.", | |
"properties": { | |
"caCertificates": { | |
"type": "string" | |
}, | |
"clientCertificate": { | |
"description": "REQUIRED if mode is `MUTUAL`.", | |
"type": "string" | |
}, | |
"credentialName": { | |
"type": "string" | |
}, | |
"mode": { | |
"enum": [ | |
"DISABLE", | |
"SIMPLE", | |
"MUTUAL", | |
"ISTIO_MUTUAL" | |
], | |
"type": "string" | |
}, | |
"privateKey": { | |
"description": "REQUIRED if mode is `MUTUAL`.", | |
"type": "string" | |
}, | |
"sni": { | |
"description": "SNI string to present to the server during TLS handshake.", | |
"type": "string" | |
}, | |
"subjectAltNames": { | |
"items": { | |
"type": "string" | |
}, | |
"type": "array" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"type": "array" | |
}, | |
"tls": { | |
"description": "TLS related settings for connections to the upstream service.", | |
"properties": { | |
"caCertificates": { | |
"type": "string" | |
}, | |
"clientCertificate": { | |
"description": "REQUIRED if mode is `MUTUAL`.", | |
"type": "string" | |
}, | |
"credentialName": { | |
"type": "string" | |
}, | |
"mode": { | |
"enum": [ | |
"DISABLE", | |
"SIMPLE", | |
"MUTUAL", | |
"ISTIO_MUTUAL" | |
], | |
"type": "string" | |
}, | |
"privateKey": { | |
"description": "REQUIRED if mode is `MUTUAL`.", | |
"type": "string" | |
}, | |
"sni": { | |
"description": "SNI string to present to the server during TLS handshake.", | |
"type": "string" | |
}, | |
"subjectAltNames": { | |
"items": { | |
"type": "string" | |
}, | |
"type": "array" | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
} | |
}, | |
"type": "object", | |
"additionalProperties": false | |
}, | |
"status": { | |
"type": "object", | |
"x-kubernetes-preserve-unknown-fields": true | |
} | |
}, | |
"type": "object" | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment