# Code generated by skv2. DO NOT EDIT.
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
crd.solo.io/specHash: f6ef9604870ad04b
crd.solo.io/version: 2.14.0
labels:
app: gloo-mesh-apis
app.kubernetes.io/name: gloo-mesh-apis
name: activehealthcheckpolicies.resilience.policy.gloo.solo.io
spec:
group: resilience.policy.gloo.solo.io
names:
categories:
- solo-io
kind: ActiveHealthCheckPolicy
listKind: ActiveHealthCheckPolicyList
plural: activehealthcheckpolicies
shortNames:
- ahcp
singular: activehealthcheckpolicy
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .status.common.State.approval
name: Status
type: string
name: v2
schema:
openAPIV3Schema:
properties:
spec:
description: Specifications for the policy.
properties:
applyToDestinations:
description: |-
Destinations to actively health check.
If empty, no healthchecks are performed.
items:
description: |-
DestinationSelector is a selector for matching routable destinations for routes.
DestinationSelectors can select a variety of object types. The behavior of the route action
will vary depending on the type of destination selected. Defaults to the kubernetes `v1/Service`.
Currently supported destination types:
- v1 Service
- networking.gloo.solo.io/v2 VirtualDestination (route traffic to a group of backing destinations)
- networking.gloo.solo.io/v2 ExternalService (route traffic to a static set of service endpoints external to the mesh)
properties:
kind:
description: The kind of destination being selected. defaults to
Kubernetes Service.
enum:
- SERVICE
- VIRTUAL_DESTINATION
- EXTERNAL_SERVICE
type: string
port:
description: |-
The port on the Destination which receives traffic.
All ports on the Destination will be selected if left empty.
oneOf:
- not:
anyOf:
- required:
- number
- required:
- name
- required:
- number
- required:
- name
properties:
name:
description: the name of the port on the destination objects
being targeted.
type: string
number:
description: the number of the port on the destination objects
being targeted.
maximum: 65535
minimum: 1
type: integer
type: object
selector:
description: The selector used to match destination objects by their
metadata
properties:
cluster:
description: |-
Only select objects in the matching cluster. If omitted, Gloo selects
matching objects across all clusters available in the parent object's workspace.
type: string
labels:
additionalProperties:
type: string
description: labels matching those of the object
type: object
name:
description: |-
Only select objects with the matching name. If omitted, Gloo selects
matching objects with any name available in the parent object's workspace.
type: string
namespace:
description: |-
Only select objects in the matching namespace. If omitted, Gloo selects
matching objects across all namespaces available in the parent object's workspace.
type: string
workspace:
description: |-
Only select objects in the given workspace. If omitted, Gloo selects
matching objects across all workspaces available in the parent object's workspace.
type: string
type: object
type: object
type: array
config:
description: Details of the healthcheck policy to apply to the selected
destinations.
properties:
healthCheck:
description: |-
Configuration for the Envoy healthcheck. For more info, see the
[Envoy healthcheck config reference](https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/endpoint/v3/endpoint_components.proto#config-endpoint-v3-endpoint-healthcheckconfig).
type: object
x-kubernetes-preserve-unknown-fields: true
virtualGateways:
description: A list of references to virtual gateways that perform
the healthchecks.
items:
description: |-
reference to a Kubernetes API object.
Kube API objects are referenced explicitly by the namespace and cluster containing them.
properties:
cluster:
description: the cluster of the object. If omitted, Gloo Mesh
will use the same cluster as the parent object containing
this reference.
type: string
name:
description: the name of the object
type: string
namespace:
description: the namespace of the object. If omitted, Gloo Mesh
will use the same namespace as the parent object containing
this reference.
type: string
type: object
type: array
type: object
type: object
status:
description: The status of the policy after it is applied to your Gloo environment.
properties:
common:
description: The state and workspace conditions of the applied policy.
properties:
State:
properties:
approval:
description: |-
Whether the resource has been accepted as valid and processed in the Gloo
Mesh config translation.
enum:
- PENDING
- ACCEPTED
- INVALID
- WARNING
- FAILED
- UNLICENSED
type: string
message:
description: Additional information about the current state of
the resource.
type: string
observedGeneration:
description: |-
The most recent generation observed in the object's metadata.
If the `observedGeneration` does not match `metadata.generation`, Gloo Mesh
has not processed the most recent version of this object.
format: int64
type: integer
type: object
workspaceConditions:
additionalProperties:
maximum: 4294967295
minimum: 0
type: integer
description: |-
A map of ApprovalState to the number of workspaces in this condition, e.g.,
"Accepted" -> 2
"Pending" -> 1
type: object
type: object
numSelectedDestinationPorts:
description: The number of destination ports selected by the policy.
maximum: 4294967295
minimum: 0
type: integer
type: object
type: object
served: true
storage: true
subresources:
status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
crd.solo.io/specHash: a1e76e7def5fd9d9
crd.solo.io/version: 2.14.0
labels:
app: gloo-mesh-apis
app.kubernetes.io/name: gloo-mesh-apis
name: adaptiverequestconcurrencypolicies.resilience.policy.gloo.solo.io
spec:
group: resilience.policy.gloo.solo.io
names:
categories:
- solo-io
kind: AdaptiveRequestConcurrencyPolicy
listKind: AdaptiveRequestConcurrencyPolicyList
plural: adaptiverequestconcurrencypolicies
shortNames:
- arcp
singular: adaptiverequestconcurrencypolicy
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .status.common.State.approval
name: Status
type: string
name: v2
schema:
openAPIV3Schema:
properties:
spec:
description: Specifications for the policy.
properties:
applyToDestinations:
description: |-
Destinations to apply the concurrency limit to.
If empty, the policy applies to all destinations in the workspace.
items:
description: |-
DestinationSelector is a selector for matching routable destinations for routes.
DestinationSelectors can select a variety of object types. The behavior of the route action
will vary depending on the type of destination selected. Defaults to the kubernetes `v1/Service`.
Currently supported destination types:
- v1 Service
- networking.gloo.solo.io/v2 VirtualDestination (route traffic to a group of backing destinations)
- networking.gloo.solo.io/v2 ExternalService (route traffic to a static set of service endpoints external to the mesh)
properties:
kind:
description: The kind of destination being selected. defaults to
Kubernetes Service.
enum:
- SERVICE
- VIRTUAL_DESTINATION
- EXTERNAL_SERVICE
type: string
port:
description: |-
The port on the Destination which receives traffic.
All ports on the Destination will be selected if left empty.
oneOf:
- not:
anyOf:
- required:
- number
- required:
- name
- required:
- number
- required:
- name
properties:
name:
description: the name of the port on the destination objects
being targeted.
type: string
number:
description: the number of the port on the destination objects
being targeted.
maximum: 65535
minimum: 1
type: integer
type: object
selector:
description: The selector used to match destination objects by their
metadata
properties:
cluster:
description: |-
Only select objects in the matching cluster. If omitted, Gloo selects
matching objects across all clusters available in the parent object's workspace.
type: string
labels:
additionalProperties:
type: string
description: labels matching those of the object
type: object
name:
description: |-
Only select objects with the matching name. If omitted, Gloo selects
matching objects with any name available in the parent object's workspace.
type: string
namespace:
description: |-
Only select objects in the matching namespace. If omitted, Gloo selects
matching objects across all namespaces available in the parent object's workspace.
type: string
workspace:
description: |-
Only select objects in the given workspace. If omitted, Gloo selects
matching objects across all workspaces available in the parent object's workspace.
type: string
type: object
type: object
type: array
config:
description: Details of the policy to apply to the selected destinations.
properties:
concurrencyLimitExceededStatus:
description: |-
Return a custom HTTP response status code to the downstream client when the concurrency limit is exceeded.
If this field is empty, omitted, or set to a non-error response of < 400, the response code defaults to 503 (Service Unavailable).
maximum: 4294967295
minimum: 0
type: integer
concurrencyUpdateIntervalMillis:
description: |-
The period of time during which request latency samples are taken to recalculate the concurrency limit.
This field is required.
maximum: 4294967295
minimum: 0
type: integer
maxConcurrencyLimit:
description: |-
The allowed upper-bound on the calculated concurrency limit. For example, you can cap the concurrency
limit to a maximum of 800 connections, in the case that the calculated concurrency limit exceeds this value.
If unset, defaults to 1000.
maximum: 4294967295
minimum: 0
nullable: true
type: integer
minRttCalcParams:
description: |-
Configure how the gradient controller calculates the minimum round-trip time (minRTT) for the destination.
For more information about the minRTT formula and the following fields, see the
[Envoy adaptive concurrency docs](https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/adaptive_concurrency_filter).
This field is required.
properties:
bufferPercentile:
description: |-
Add a buffer to the measured minRTT to stabilize natural variability in latency. This is represented as a percentage
of the measured value, and can be adjusted to allow more or less tolerance to the sampled latency values.
If unset, defaults to 25%.
nullable: true
type: number
intervalMillis:
description: |-
The amount of time between each minRTT remeasurement.
This field is required.
maximum: 4294967295
minimum: 0
type: integer
jitterPercentile:
description: |-
Add a random delay to the start of each minRTT measurement, represented as a percentage of the interval between each
remeasurement (`intervalMillis`). For example, if the interval is 1000ms and the jitter is 15%, the next minRTT measurement
begins in the range of 1000ms - 1150ms, because a delay between 0ms - 150ms is added to the 1000ms interval.
If unset, defaults to 15%.
nullable: true
type: number
minConcurrency:
description: |-
Temporarily set the concurrency limit until the latest minRTT measurement is complete.
If unset, defaults to 3.
maximum: 4294967295
minimum: 0
nullable: true
type: integer
requestCount:
description: |-
The number of requests to sample during the `concurrencyUpdateIntervalMillis` timeframe.
If unset, defaults to 50.
maximum: 4294967295
minimum: 0
nullable: true
type: integer
type: object
sampleAggregatePercentile:
description: |-
The percent of sampled requests to use when summarizing aggregated samples in the minRTT
calculation. If unset, defaults to 50%.
nullable: true
type: number
type: object
type: object
status:
description: The status of the policy after it is applied to your Gloo environment.
properties:
common:
description: The state and workspace conditions of the applied resource.
properties:
State:
properties:
approval:
description: |-
Whether the resource has been accepted as valid and processed in the Gloo
Mesh config translation.
enum:
- PENDING
- ACCEPTED
- INVALID
- WARNING
- FAILED
- UNLICENSED
type: string
message:
description: Additional information about the current state of
the resource.
type: string
observedGeneration:
description: |-
The most recent generation observed in the object's metadata.
If the `observedGeneration` does not match `metadata.generation`, Gloo Mesh
has not processed the most recent version of this object.
format: int64
type: integer
type: object
workspaceConditions:
additionalProperties:
maximum: 4294967295
minimum: 0
type: integer
description: |-
A map of ApprovalState to the number of workspaces in this condition, e.g.,
"Accepted" -> 2
"Pending" -> 1
type: object
type: object
numSelectedDestinations:
description: The number of destinations selected by this policy.
maximum: 4294967295
minimum: 0
type: integer
type: object
type: object
served: true
storage: true
subresources:
status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
crd.solo.io/specHash: 86ea44a89b2713bb
crd.solo.io/version: 2.14.0
labels:
app: gloo-mesh-apis
app.kubernetes.io/name: gloo-mesh-apis
name: connectionpolicies.resilience.policy.gloo.solo.io
spec:
group: resilience.policy.gloo.solo.io
names:
categories:
- solo-io
kind: ConnectionPolicy
listKind: ConnectionPolicyList
plural: connectionpolicies
shortNames:
- cp
singular: connectionpolicy
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .status.common.State.approval
name: Status
type: string
name: v2
schema:
openAPIV3Schema:
properties:
spec:
description: ConnectionPolicy provides settings to apply low-level settings
on selected TCP connections.
properties:
applyToDestinations:
description: |-
select the destinations where the policy will be applied. If empty,
this will apply to all destinations in the workspace.
items:
description: |-
DestinationSelector is a selector for matching routable destinations for routes.
DestinationSelectors can select a variety of object types. The behavior of the route action
will vary depending on the type of destination selected. Defaults to the kubernetes `v1/Service`.
Currently supported destination types:
- v1 Service
- networking.gloo.solo.io/v2 VirtualDestination (route traffic to a group of backing destinations)
- networking.gloo.solo.io/v2 ExternalService (route traffic to a static set of service endpoints external to the mesh)
properties:
kind:
description: The kind of destination being selected. defaults to
Kubernetes Service.
enum:
- SERVICE
- VIRTUAL_DESTINATION
- EXTERNAL_SERVICE
type: string
port:
description: |-
The port on the Destination which receives traffic.
All ports on the Destination will be selected if left empty.
oneOf:
- not:
anyOf:
- required:
- number
- required:
- name
- required:
- number
- required:
- name
properties:
name:
description: the name of the port on the destination objects
being targeted.
type: string
number:
description: the number of the port on the destination objects
being targeted.
maximum: 65535
minimum: 1
type: integer
type: object
selector:
description: The selector used to match destination objects by their
metadata
properties:
cluster:
description: |-
Only select objects in the matching cluster. If omitted, Gloo selects
matching objects across all clusters available in the parent object's workspace.
type: string
labels:
additionalProperties:
type: string
description: labels matching those of the object
type: object
name:
description: |-
Only select objects with the matching name. If omitted, Gloo selects
matching objects with any name available in the parent object's workspace.
type: string
namespace:
description: |-
Only select objects in the matching namespace. If omitted, Gloo selects
matching objects across all namespaces available in the parent object's workspace.
type: string
workspace:
description: |-
Only select objects in the given workspace. If omitted, Gloo selects
matching objects across all workspaces available in the parent object's workspace.
type: string
type: object
type: object
type: array
config:
description: The details of the low-level network connection settings
to apply to the destinations.
properties:
http:
description: The low-level HTTP connection settings to apply to the
destination selected.
properties:
idleTimeout:
description: |-
The idle timeout for upstream connection pool connections. The idle timeout is defined as the period in which there are no active requests.
If omitted, the default is 1 hour. When the idle timeout is reached, the connection will be closed. If the connection is an HTTP/2 connection
a drain sequence will occur prior to closing the connection. Note that request based timeouts mean that HTTP/2 PINGs will not keep the connection alive.
Applies to both HTTP1.1 and HTTP2 connections.
For more information about the value format, see the [Google protocol buffer documentation](https://protobuf.dev/reference/protobuf/google.protobuf/#duration).
type: string
maxPendingRequests:
description: |-
Maximum number of requests that will be queued while waiting for a ready connection pool connection. Default 1024.
If the limit is reached, the request will fail and a 503 error will be returned.
Applicable to both HTTP/1.1 and HTTP2.
format: int32
type: integer
maxRequests:
description: Maximum number of active requests to a destination.
Default 1024. Applicable to both HTTP/1.1 and HTTP2.
format: int32
type: integer
maxRequestsPerConnection:
description: Maximum number of requests per connection to a backend.
Setting this parameter to 1 disables keep alive. Default 0,
meaning "unlimited", up to 2^29.
format: int32
type: integer
maxRetries:
description: Maximum number of retries that can be outstanding
to all hosts in a cluster at a given time. Defaults to 2^32-1.
format: int32
type: integer
type: object
tcp:
description: The low-level TCP connection settings to apply to the
destinations selected.
properties:
connectTimeout:
description: |-
Sets the TCP connection timeout. It must be greater than or equal to 1ms.
For information about the value format, see the [Google protocol buffer documentation](https://protobuf.dev/reference/protobuf/google.protobuf/#duration).
type: string
maxConnectionDuration:
description: |-
Sets the maximum duration of a connection to the destination host, measured from when the connection
was established. If not set, there is no max duration. It must be greater than or equal to 1ms.
For information about the value format, see the [Google protocol buffer documentation](https://protobuf.dev/reference/protobuf/google.protobuf/#duration).
type: string
maxConnections:
description: Sets the maximum allowed connections to the destination
host. If not set, up to 2^32-1 connections are allowed.
format: int32
type: integer
tcpKeepalive:
description: |-
Sets the TCP keep-alive settings to apply to selected destinations.
If the EnableDefaultTcpKeepalive feature gate is enabled, TCP keep-alive is configured on all VirtualDestinations by default,
with the probes field set to 9 and the time and interval fields set to 180s,
and setting these values will override the defaults for selected VirtualDestinations.
properties:
interval:
description: |-
The time duration between keep-alive probes.
Defaults to the OS-level configuration. For Linux, the default is 75s, unless overridden.
**Configuration constraints**:
- The value must be an integer or decimal value and a preferred unit, or multiple of these concatenated.
Examples: `1m`, `1h`, `1.5h`, `1s500ms`
- The value cannot have granularity smaller than one millisecond.
- The value must be at least 1ms.
- For information about the value format,
see the [ParseDuration documentation](https://pkg.go.dev/time#ParseDuration).
type: string
probes:
description: |-
Maximum number of TCP keepalive probes to send before determining that connection is dead.
Defaults to the OS-level configuration. For Linux, the default is 9, unless overridden.
maximum: 4294967295
minimum: 0
type: integer
time:
description: |-
The time duration a connection needs to be idle before keep-alive probes start being sent.
Defaults to the OS-level configuration. For Linux, the default is 7200s (2 hours), unless overridden.
**Configuration constraints**:
- The value must be an integer or decimal value and a preferred unit, or multiple of these concatenated.
Examples: `1m`, `1h`, `1.5h`, `1s500ms`
- The value cannot have granularity smaller than one millisecond.
- The value must be at least 1ms.
- For information about the value format,
see the [ParseDuration documentation](https://pkg.go.dev/time#ParseDuration).
type: string
type: object
type: object
type: object
type: object
status:
description: The status of the policy after it is applied to your Gloo environment.
properties:
common:
description: The state and workspace conditions of the applied resource.
properties:
State:
properties:
approval:
description: |-
Whether the resource has been accepted as valid and processed in the Gloo
Mesh config translation.
enum:
- PENDING
- ACCEPTED
- INVALID
- WARNING
- FAILED
- UNLICENSED
type: string
message:
description: Additional information about the current state of
the resource.
type: string
observedGeneration:
description: |-
The most recent generation observed in the object's metadata.
If the `observedGeneration` does not match `metadata.generation`, Gloo Mesh
has not processed the most recent version of this object.
format: int64
type: integer
type: object
workspaceConditions:
additionalProperties:
maximum: 4294967295
minimum: 0
type: integer
description: |-
A map of ApprovalState to the number of workspaces in this condition, e.g.,
"Accepted" -> 2
"Pending" -> 1
type: object
type: object
numSelectedDestinationPorts:
description: The number of destination ports selected by this policy.
maximum: 4294967295
minimum: 0
type: integer
type: object
type: object
served: true
storage: true
subresources:
status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
crd.solo.io/specHash: 9ab413f60760347f
crd.solo.io/version: 2.14.0
labels:
app: gloo-mesh-apis
app.kubernetes.io/name: gloo-mesh-apis
name: failoverpolicies.resilience.policy.gloo.solo.io
spec:
group: resilience.policy.gloo.solo.io
names:
categories:
- solo-io
kind: FailoverPolicy
listKind: FailoverPolicyList
plural: failoverpolicies
shortNames:
- fp
singular: failoverpolicy
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .status.common.State.approval
name: Status
type: string
name: v2
schema:
openAPIV3Schema:
properties:
spec:
description: Specifications for the policy.
properties:
applyToDestinations:
description: |-
Select the destinations to apply the policy to by using labels.
If empty, the policy applies to all destinations in the workspace.
items:
description: |-
DestinationSelector is a selector for matching routable destinations for routes.
DestinationSelectors can select a variety of object types. The behavior of the route action
will vary depending on the type of destination selected. Defaults to the kubernetes `v1/Service`.
Currently supported destination types:
- v1 Service
- networking.gloo.solo.io/v2 VirtualDestination (route traffic to a group of backing destinations)
- networking.gloo.solo.io/v2 ExternalService (route traffic to a static set of service endpoints external to the mesh)
properties:
kind:
description: The kind of destination being selected. defaults to
Kubernetes Service.
enum:
- SERVICE
- VIRTUAL_DESTINATION
- EXTERNAL_SERVICE
type: string
port:
description: |-
The port on the Destination which receives traffic.
All ports on the Destination will be selected if left empty.
oneOf:
- not:
anyOf:
- required:
- number
- required:
- name
- required:
- number
- required:
- name
properties:
name:
description: the name of the port on the destination objects
being targeted.
type: string
number:
description: the number of the port on the destination objects
being targeted.
maximum: 65535
minimum: 1
type: integer
type: object
selector:
description: The selector used to match destination objects by their
metadata
properties:
cluster:
description: |-
Only select objects in the matching cluster. If omitted, Gloo selects
matching objects across all clusters available in the parent object's workspace.
type: string
labels:
additionalProperties:
type: string
description: labels matching those of the object
type: object
name:
description: |-
Only select objects with the matching name. If omitted, Gloo selects
matching objects with any name available in the parent object's workspace.
type: string
namespace:
description: |-
Only select objects in the matching namespace. If omitted, Gloo selects
matching objects across all namespaces available in the parent object's workspace.
type: string
workspace:
description: |-
Only select objects in the given workspace. If omitted, Gloo selects
matching objects across all workspaces available in the parent object's workspace.
type: string
type: object
type: object
type: array
config:
description: The details of the failover policy to apply to the selected
virtual destinations.
oneOf:
- not:
anyOf:
- required:
- priorityLabels
- required:
- priorityLabels
properties:
localityMappings:
description: |-
Map the localities to fail over traffic from one region, zone,
or subzone to another in case of failure. The locality is determined
by the Kubernetes labels on the node where the destination's app runs.
For more information, see the [Istio docs](https://istio.io/latest/docs/tasks/traffic-management/locality-load-balancing/).
You can exclude this setting to enable the locality load balancer
settings without mappings.
Only priority labels or locality mappings can be specified, not both.
items:
properties:
from:
description: |-
The locality of the destination where Gloo Mesh originally
tried to fulfill the request.
properties:
region:
description: The locality's region.
type: string
subZone:
description: (Optional) The locality's sub-zone.
type: string
zone:
description: (Optional) The locality's zone.
type: string
type: object
to:
description: |-
The localities of the destination where Gloo Mesh can reroute requests.
You must specify the region, and optionally the zone and subzone.
If you have multiple `to` destinations, you can optionally set a weight.
items:
description: |-
A geographic location defined by a region, zone, and sub-zone
along with the weight for the destination.
properties:
region:
description: The locality's region.
type: string
subZone:
description: (Optional) The locality's sub-zone.
type: string
weight:
description: |-
(Optional) Weight for destination locality. All weights must add up to 100.
If not provided, weight is determined based on other destination locality weights.
For information about the value format, see the
[Google protocol buffer documentation](https://protobuf.dev/reference/protobuf/google.protobuf/#u-int32-value).
maximum: 4294967295
minimum: 0
nullable: true
type: integer
zone:
description: (Optional) The locality's zone.
type: string
type: object
type: array
type: object
type: array
priorityLabels:
description: |-
Prioritize destinations to fail over traffic to by configuring priority labels. In general, destinations that match the most labels have higher priority during failover.
For more information, see the [Istio docs](https://istio.io/latest/docs/reference/config/networking/destination-rule/#:~:text=No-,failoverPriority,-string%5B%5D).
When using priority labels, you must specify either an ordered list of label keys or an ordered list of label key-value pairs.
For example, you can specify `["region"]` or `["region=us-east-1", "availabilityzone=1a", "datacenter=4"]`.
You cannot have an ordered list that includes both label keys and label key-value pairs.
Only priority labels or locality mappings can be specified, not both. If you specify both, Gloo Mesh will give precedence to the locality mappings.
You can use locality labels in your list of priority labels, such as the Kubernetes `topology.kubernetes.io/region` node label.
properties:
labels:
items:
type: string
type: array
type: object
type: object
type: object
status:
description: The status of the policy after it is applied to your Gloo environment.
properties:
common:
description: The state and workspace conditions of the applied resource.
properties:
State:
properties:
approval:
description: |-
Whether the resource has been accepted as valid and processed in the Gloo
Mesh config translation.
enum:
- PENDING
- ACCEPTED
- INVALID
- WARNING
- FAILED
- UNLICENSED
type: string
message:
description: Additional information about the current state of
the resource.
type: string
observedGeneration:
description: |-
The most recent generation observed in the object's metadata.
If the `observedGeneration` does not match `metadata.generation`, Gloo Mesh
has not processed the most recent version of this object.
format: int64
type: integer
type: object
workspaceConditions:
additionalProperties:
maximum: 4294967295
minimum: 0
type: integer
description: |-
A map of ApprovalState to the number of workspaces in this condition, e.g.,
"Accepted" -> 2
"Pending" -> 1
type: object
type: object
numSelectedDestinationPorts:
description: The number of destination ports selected by the policy.
maximum: 4294967295
minimum: 0
type: integer
type: object
type: object
served: true
storage: true
subresources:
status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
crd.solo.io/specHash: e14e07e55faa3ce9
crd.solo.io/version: 2.14.0
labels:
app: gloo-mesh-apis
app.kubernetes.io/name: gloo-mesh-apis
name: faultinjectionpolicies.resilience.policy.gloo.solo.io
spec:
group: resilience.policy.gloo.solo.io
names:
categories:
- solo-io
kind: FaultInjectionPolicy
listKind: FaultInjectionPolicyList
plural: faultinjectionpolicies
shortNames:
- fip
singular: faultinjectionpolicy
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .status.common.State.approval
name: Status
type: string
name: v2
schema:
openAPIV3Schema:
properties:
spec:
description: Specifications for the policy.
properties:
applyToRoutes:
description: |-
Routes to apply the policy to.
If empty, the policy applies to all routes in the workspace.
**Configuration constraints**: Only one fault injection policy can apply to a route. Subsequent policies (sorted by creation time)
are ignored and put into a FAILED state.
items:
description: |-
RouteSelector is a Selector specifically built for individual Routes inside of RouteTables.
This selector can be used to select individual routes or entire route tables using the same label selector.
oneOf:
- not:
anyOf:
- required:
- route
- required:
- withDestinations
- required:
- route
- required:
- withDestinations
properties:
route:
description: |-
select routes based on their labels.
these labels can be used to match route tables or individual routes within route tables.
properties:
cluster:
description: Only select routes attached to route tables matching
the cluster.
type: string
labels:
additionalProperties:
type: string
description: Select routes including all specified labels on
the route or route table.
type: object
namespace:
description: Only select routes attached to route tables matching
the namespace.
type: string
workspace:
description: Only select routes attached to route tables matching
the workspace.
type: string
type: object
withDestinations:
description: |-
select routes with `forwardTo` actions based on their destinations.
this can be used to apply policy to routes regardless of
their labels
properties:
kind:
description: The kind of destination being selected. defaults
to Kubernetes Service.
enum:
- SERVICE
- VIRTUAL_DESTINATION
- EXTERNAL_SERVICE
type: string
port:
description: |-
The port on the Destination which receives traffic.
All ports on the Destination will be selected if left empty.
oneOf:
- not:
anyOf:
- required:
- number
- required:
- name
- required:
- number
- required:
- name
properties:
name:
description: the name of the port on the destination objects
being targeted.
type: string
number:
description: the number of the port on the destination objects
being targeted.
maximum: 65535
minimum: 1
type: integer
type: object
selector:
description: The selector used to match destination objects
by their metadata
properties:
cluster:
description: |-
Only select objects in the matching cluster. If omitted, Gloo selects
matching objects across all clusters available in the parent object's workspace.
type: string
labels:
additionalProperties:
type: string
description: labels matching those of the object
type: object
name:
description: |-
Only select objects with the matching name. If omitted, Gloo selects
matching objects with any name available in the parent object's workspace.
type: string
namespace:
description: |-
Only select objects in the matching namespace. If omitted, Gloo selects
matching objects across all namespaces available in the parent object's workspace.
type: string
workspace:
description: |-
Only select objects in the given workspace. If omitted, Gloo selects
matching objects across all workspaces available in the parent object's workspace.
type: string
type: object
type: object
type: object
type: array
config:
description: |-
The details of the fault injection policy to apply to the selected routes.
**Implementation notes**: Delays and aborts are independent of one another.
When both are set, both happen, with the delay happening first.
**Configuration constraints**: A fault injection rule must specify a delay, an abort, or both.
properties:
abort:
description: Abort HTTP request attempts, and return an error code
to the traffic source.
properties:
httpStatus:
description: |-
Required: The HTTP status code to use to abort the request.
**Configuration constraints**: The status code must be in the range 200 - 599, inclusive.
format: int32
type: integer
percentage:
description: |-
Percentage of requests to be aborted. If omitted, all requests are aborted.
**Configuration constraints**:
- The value must be 0.0 or in the range 0.0001 - 100.0, inclusive.
- For information about the value format,
see the [Google protocol buffer documentation](https://protobuf.dev/reference/protobuf/google.protobuf/#double-value).
nullable: true
type: number
required:
- httpStatus
type: object
delay:
description: |-
Delay requests before forwarding them to the upstream service, which emulates various failures such as
network issues or overloaded upstream services.
properties:
fixedDelay:
description: |-
Required: Add a delay of a fixed duration before sending the request.
**Configuration constraints**:
- The value must be an integer or decimal value and a preferred unit, or multiple of these concatenated.
Examples: `1m`, `1h`, `1.5h`, `1s500ms`
- The value cannot have granularity smaller than one millisecond.
- The value must be at least 1ms.
- For information about the value format,
see the [ParseDuration documentation](https://pkg.go.dev/time#ParseDuration).
type: string
percentage:
description: |-
Delay only a certain percentage of requests. If omitted, all requests are delayed.
**Configuration constraints**:
- The value must be 0.0 or in the range 0.0001 - 100.0, inclusive.
- For information about the value format,
see the [Google protocol buffer documentation](https://protobuf.dev/reference/protobuf/google.protobuf/#double-value).
nullable: true
type: number
required:
- fixedDelay
type: object
type: object
type: object
status:
description: The status of the policy after it is applied to your Gloo environment.
properties:
common:
description: The common status of the object
properties:
State:
properties:
approval:
description: |-
Whether the resource has been accepted as valid and processed in the Gloo
Mesh config translation.
enum:
- PENDING
- ACCEPTED
- INVALID
- WARNING
- FAILED
- UNLICENSED
type: string
message:
description: Additional information about the current state of
the resource.
type: string
observedGeneration:
description: |-
The most recent generation observed in the object's metadata.
If the `observedGeneration` does not match `metadata.generation`, Gloo Mesh
has not processed the most recent version of this object.
format: int64
type: integer
type: object
workspaceConditions:
additionalProperties:
maximum: 4294967295
minimum: 0
type: integer
description: |-
A map of ApprovalState to the number of workspaces in this condition, e.g.,
"Accepted" -> 2
"Pending" -> 1
type: object
type: object
numSelectedRoutes:
description: The number of routes selected by the policy.
maximum: 4294967295
minimum: 0
type: integer
type: object
type: object
served: true
storage: true
subresources:
status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
crd.solo.io/specHash: c3def4e82f61a0d8
crd.solo.io/version: 2.14.0
labels:
app: gloo-mesh-apis
app.kubernetes.io/name: gloo-mesh-apis
name: graphqlpersistedquerycachepolicies.resilience.policy.gloo.solo.io
spec:
group: resilience.policy.gloo.solo.io
names:
categories:
- solo-io
kind: GraphQLPersistedQueryCachePolicy
listKind: GraphQLPersistedQueryCachePolicyList
plural: graphqlpersistedquerycachepolicies
shortNames:
- gqlpq
- gqlpqc
singular: graphqlpersistedquerycachepolicy
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .status.common.State.approval
name: Status
type: string
name: v2
schema:
openAPIV3Schema:
properties:
spec:
description: |-
To improve network performance for large query strings, the GraphQL filter supports
automatic persisted queries. A persisted query is a query string that's cached on the server side,
along with it's hash. The client can then send the hash instead of the full query string, thus
reducing request sizes (responses are unaffected).
Persisted queries are especially effective when clients send queries as GET requests.
This enables clients to take advantage of the browser cache and integrate with a CDN.
If empty, persisted query cache is not used.
properties:
applyToRoutes:
description: |-
Select the graphql routes where the policy will be applied.
If empty, will apply to no graphql routes.
selection via Destination selectors will not work for this policy, and only
route selectors will work.
If more than one GraphQLPersistedQueryCachePolicy applies to a GraphQLRoute, the oldest
one will be applied.
items:
description: |-
RouteSelector is a Selector specifically built for individual Routes inside of RouteTables.
This selector can be used to select individual routes or entire route tables using the same label selector.
oneOf:
- not:
anyOf:
- required:
- route
- required:
- withDestinations
- required:
- route
- required:
- withDestinations
properties:
route:
description: |-
select routes based on their labels.
these labels can be used to match route tables or individual routes within route tables.
properties:
cluster:
description: Only select routes attached to route tables matching
the cluster.
type: string
labels:
additionalProperties:
type: string
description: Select routes including all specified labels on
the route or route table.
type: object
namespace:
description: Only select routes attached to route tables matching
the namespace.
type: string
workspace:
description: Only select routes attached to route tables matching
the workspace.
type: string
type: object
withDestinations:
description: |-
select routes with `forwardTo` actions based on their destinations.
this can be used to apply policy to routes regardless of
their labels
properties:
kind:
description: The kind of destination being selected. defaults
to Kubernetes Service.
enum:
- SERVICE
- VIRTUAL_DESTINATION
- EXTERNAL_SERVICE
type: string
port:
description: |-
The port on the Destination which receives traffic.
All ports on the Destination will be selected if left empty.
oneOf:
- not:
anyOf:
- required:
- number
- required:
- name
- required:
- number
- required:
- name
properties:
name:
description: the name of the port on the destination objects
being targeted.
type: string
number:
description: the number of the port on the destination objects
being targeted.
maximum: 65535
minimum: 1
type: integer
type: object
selector:
description: The selector used to match destination objects
by their metadata
properties:
cluster:
description: |-
Only select objects in the matching cluster. If omitted, Gloo selects
matching objects across all clusters available in the parent object's workspace.
type: string
labels:
additionalProperties:
type: string
description: labels matching those of the object
type: object
name:
description: |-
Only select objects with the matching name. If omitted, Gloo selects
matching objects with any name available in the parent object's workspace.
type: string
namespace:
description: |-
Only select objects in the matching namespace. If omitted, Gloo selects
matching objects across all namespaces available in the parent object's workspace.
type: string
workspace:
description: |-
Only select objects in the given workspace. If omitted, Gloo selects
matching objects across all workspaces available in the parent object's workspace.
type: string
type: object
type: object
type: object
type: array
config:
description: Persisted query cache configuration.
properties:
cacheSize:
description: The number of queries to store in the persisted query
cache, defaults to 1000.
maximum: 4294967295
minimum: 0
type: integer
type: object
type: object
status:
properties:
common:
description: The state and workspace conditions of the applied resource.
properties:
State:
properties:
approval:
description: |-
Whether the resource has been accepted as valid and processed in the Gloo
Mesh config translation.
enum:
- PENDING
- ACCEPTED
- INVALID
- WARNING
- FAILED
- UNLICENSED
type: string
message:
description: Additional information about the current state of
the resource.
type: string
observedGeneration:
description: |-
The most recent generation observed in the object's metadata.
If the `observedGeneration` does not match `metadata.generation`, Gloo Mesh
has not processed the most recent version of this object.
format: int64
type: integer
type: object
workspaceConditions:
additionalProperties:
maximum: 4294967295
minimum: 0
type: integer
description: |-
A map of ApprovalState to the number of workspaces in this condition, e.g.,
"Accepted" -> 2
"Pending" -> 1
type: object
type: object
numSelectedRoutes:
description: The number of routes selected by the policy.
maximum: 4294967295
minimum: 0
type: integer
type: object
type: object
served: true
storage: true
subresources:
status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
crd.solo.io/specHash: e924c7877a7d7708
crd.solo.io/version: 2.14.0
labels:
app: gloo-mesh-apis
app.kubernetes.io/name: gloo-mesh-apis
name: listenerconnectionpolicies.resilience.policy.gloo.solo.io
spec:
group: resilience.policy.gloo.solo.io
names:
categories:
- solo-io
kind: ListenerConnectionPolicy
listKind: ListenerConnectionPolicyList
plural: listenerconnectionpolicies
shortNames:
- lcp
singular: listenerconnectionpolicy
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .status.common.State.approval
name: Status
type: string
name: v2
schema:
openAPIV3Schema:
properties:
spec:
description: |-
ListenerConnectionPolicy is used to set configuration for gateway listeners.
```
apiVersion: resilience.policy.gloo.solo.io/v2
kind: ListenerConnectionPolicy
metadata:
name: my-policy
namespace: bookinfo
spec:
config:
perConnectionBufferLimitBytes: 16384
applyToListeners:
- virtualGateway:
name: virtual-gateway
namespace: bookinfo
cluster: my-cluster
port:
number: 443
```
properties:
applyToListeners:
description: The VirtualGateway(s) and Port(s) to which this policy applies.
items:
description: ListenerSelector is a selector for a listener on a VirtualGateway.
properties:
port:
description: The port to select on the selected listener.
oneOf:
- not:
anyOf:
- required:
- number
- required:
- name
- required:
- number
- required:
- name
properties:
name:
description: the name of the port on the destination objects
being targeted.
type: string
number:
description: the number of the port on the destination objects
being targeted.
maximum: 65535
minimum: 1
type: integer
type: object
virtualGateway:
description: The virtual gateway on which to select a listener.
properties:
cluster:
description: |-
Only select objects in the matching cluster. If omitted, Gloo selects
matching objects across all clusters available in the parent object's workspace.
type: string
labels:
additionalProperties:
type: string
description: labels matching those of the object
type: object
name:
description: |-
Only select objects with the matching name. If omitted, Gloo selects
matching objects with any name available in the parent object's workspace.
type: string
namespace:
description: |-
Only select objects in the matching namespace. If omitted, Gloo selects
matching objects across all namespaces available in the parent object's workspace.
type: string
workspace:
description: |-
Only select objects in the given workspace. If omitted, Gloo selects
matching objects across all workspaces available in the parent object's workspace.
type: string
type: object
type: object
type: array
config:
properties:
perConnectionBufferLimitBytes:
description: |-
Required: Soft limit on size of the listener’s new connection read
and write buffers.
Default value set by Envoy is 1MiB.
maximum: 4294967295
minimum: 0
nullable: true
type: integer
tcpKeepalive:
description: Sets the TCP keep-alive settings to apply to selected
listeners.
properties:
interval:
description: |-
The time duration between keep-alive probes.
Defaults to the OS-level configuration. For Linux, the default is 75s, unless overridden.
**Configuration constraints**:
- The value must be an integer or decimal value and a preferred unit, or multiple of these concatenated.
Examples: `1m`, `1h`, `1.5h`, `1s500ms`
- The value cannot have granularity smaller than one millisecond.
- The value must be at least 1ms.
- For information about the value format,
see the [ParseDuration documentation](https://pkg.go.dev/time#ParseDuration).
type: string
probes:
description: |-
Maximum number of TCP keepalive probes to send before determining that connection is dead.
Defaults to the OS-level configuration. For Linux, the default is 9, unless overridden.
maximum: 4294967295
minimum: 0
type: integer
time:
description: |-
The time duration a connection needs to be idle before keep-alive probes start being sent.
Defaults to the OS-level configuration. For Linux, the default is 7200s (2 hours), unless overridden.
**Configuration constraints**:
- The value must be an integer or decimal value and a preferred unit, or multiple of these concatenated.
Examples: `1m`, `1h`, `1.5h`, `1s500ms`
- The value cannot have granularity smaller than one millisecond.
- The value must be at least 1ms.
- For information about the value format,
see the [ParseDuration documentation](https://pkg.go.dev/time#ParseDuration).
type: string
type: object
type: object
type: object
status:
description: The status of the policy after it is applied to your Gloo environment.
properties:
common:
description: The state and workspace conditions of the applied resource.
properties:
State:
properties:
approval:
description: |-
Whether the resource has been accepted as valid and processed in the Gloo
Mesh config translation.
enum:
- PENDING
- ACCEPTED
- INVALID
- WARNING
- FAILED
- UNLICENSED
type: string
message:
description: Additional information about the current state of
the resource.
type: string
observedGeneration:
description: |-
The most recent generation observed in the object's metadata.
If the `observedGeneration` does not match `metadata.generation`, Gloo Mesh
has not processed the most recent version of this object.
format: int64
type: integer
type: object
workspaceConditions:
additionalProperties:
maximum: 4294967295
minimum: 0
type: integer
description: |-
A map of ApprovalState to the number of workspaces in this condition, e.g.,
"Accepted" -> 2
"Pending" -> 1
type: object
type: object
numSelectedListeners:
description: The number of virtual gateway listeners selected by the policy.
maximum: 4294967295
minimum: 0
type: integer
type: object
type: object
served: true
storage: true
subresources:
status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
crd.solo.io/specHash: 91e10c92bf0c71e7
crd.solo.io/version: 2.14.0
labels:
app: gloo-mesh-apis
app.kubernetes.io/name: gloo-mesh-apis
name: outlierdetectionpolicies.resilience.policy.gloo.solo.io
spec:
group: resilience.policy.gloo.solo.io
names:
categories:
- solo-io
kind: OutlierDetectionPolicy
listKind: OutlierDetectionPolicyList
plural: outlierdetectionpolicies
shortNames:
- odp
singular: outlierdetectionpolicy
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .status.common.State.approval
name: Status
type: string
name: v2
schema:
openAPIV3Schema:
properties:
spec:
description: Specifications for the policy.
properties:
applyToDestinations:
description: |-
Destinations to apply the policy to.
**Implementation notes**:
- If empty, the policy applies to all destinations in the workspace.
- This policy currently supports selecting Gloo virtual destinations or external services.
Selecting Kubernetes services is not supported.
**Configuration constraints**: `applyToDestinations.kind` must equal either `VIRTUAL_DESTINATION` or `EXTERNAL_SERVICE`.
items:
description: |-
DestinationSelector is a selector for matching routable destinations for routes.
DestinationSelectors can select a variety of object types. The behavior of the route action
will vary depending on the type of destination selected. Defaults to the kubernetes `v1/Service`.
Currently supported destination types:
- v1 Service
- networking.gloo.solo.io/v2 VirtualDestination (route traffic to a group of backing destinations)
- networking.gloo.solo.io/v2 ExternalService (route traffic to a static set of service endpoints external to the mesh)
properties:
kind:
description: The kind of destination being selected. defaults to
Kubernetes Service.
enum:
- SERVICE
- VIRTUAL_DESTINATION
- EXTERNAL_SERVICE
type: string
port:
description: |-
The port on the Destination which receives traffic.
All ports on the Destination will be selected if left empty.
oneOf:
- not:
anyOf:
- required:
- number
- required:
- name
- required:
- number
- required:
- name
properties:
name:
description: the name of the port on the destination objects
being targeted.
type: string
number:
description: the number of the port on the destination objects
being targeted.
maximum: 65535
minimum: 1
type: integer
type: object
selector:
description: The selector used to match destination objects by their
metadata
properties:
cluster:
description: |-
Only select objects in the matching cluster. If omitted, Gloo selects
matching objects across all clusters available in the parent object's workspace.
type: string
labels:
additionalProperties:
type: string
description: labels matching those of the object
type: object
name:
description: |-
Only select objects with the matching name. If omitted, Gloo selects
matching objects with any name available in the parent object's workspace.
type: string
namespace:
description: |-
Only select objects in the matching namespace. If omitted, Gloo selects
matching objects across all namespaces available in the parent object's workspace.
type: string
workspace:
description: |-
Only select objects in the given workspace. If omitted, Gloo selects
matching objects across all workspaces available in the parent object's workspace.
type: string
type: object
type: object
type: array
config:
description: The details of the OutlierDetectionPolicy to apply to the
selected destinations.
properties:
baseEjectionTime:
description: |-
The minimum time duration for ejection, or the time when a destination
is considered unhealthy and not used for load balancing.
Defaults to 30s.
**Configuration constraints**:
- The value must be an integer or decimal value and a preferred unit, or multiple of these concatenated.
Examples: `1m`, `1h`, `1.5h`, `1s500ms`
- The value cannot have granularity smaller than one millisecond.
- The value must be at least 1ms.
- For information about the value format,
see the [ParseDuration documentation](https://pkg.go.dev/time#ParseDuration).
type: string
consecutiveErrors:
description: |-
The number of 5xx errors that can be returned before a destination is removed
from the healthy connection pool. The default is 5.
**Configuration constraints**:
- The value must be greater than or equal to 1.
- The maximum value must fit the `int32` format.
For information about the value format, see the
[Google protocol buffer documentation](https://protobuf.dev/reference/protobuf/google.protobuf/#u-int32-value).
maximum: 4294967295
minimum: 0
nullable: true
type: integer
consecutiveGatewayErrors:
description: |-
The number of gateway errors before a host is ejected from the connection pool.
**Implementation notes**:
- When the upstream host is accessed over HTTP, a 502, 503, or 504 reponse
code qualifies as a gateway error.
- When the upstream host is accessed over
an opaque TCP connection, connection timeouts and connection error/failure
events qualify as a gateway error.
- This feature is disabled by default or when set to the value 0.
- This field (`consecutiveGatewayErrors`) and `consecutiveErrors` can be
used separately or together. Because the errors counted by
`consecutiveGatewayErrors` are also included in `consecutiveErrors`,
if the value of `consecutiveGatewayErrors` is greater than or equal to
the value of `consecutiveErrors`, `consecutiveGatewayErrors` has
no effect.
**Configuration constraints**:
- The value must be greater than or equal to 0.
- The maximum value must fit the `int32` format.
For information about the value format, see the
[Google protocol buffer documentation](https://protobuf.dev/reference/protobuf/google.protobuf/#u-int32-value).
maximum: 4294967295
minimum: 0
nullable: true
type: integer
interval:
description: |-
The amount of time between analyzing destinations for ejection.
Defaults to 10s.
**Configuration constraints**:
- The value must be an integer or decimal value and a preferred unit, or multiple of these concatenated.
Examples: `1m`, `1h`, `1.5h`, `1s500ms`
- The value cannot have granularity smaller than one millisecond.
- The value must be at least 1ms.
- For information about the value format,
see the [ParseDuration documentation](https://pkg.go.dev/time#ParseDuration).
type: string
maxEjectionPercent:
description: |-
The maximum percentage of destinations that can be removed
from the healthy connection pool at a time.
For example, if you have 10 total destinations that the policy selects,
and you set this value to 50 percent, 5 destinations can be removed at once.
At least 1 destination can always be removed, regardless of the value that you set.
The default value is `100`.
**Configuration constraints**: The value must be in the range 0 - 100, inclusive. If set to 0, the default
Istio value, 10%, is used.
maximum: 4294967295
minimum: 0
type: integer
type: object
type: object
status:
description: The status of the policy after it is applied to your Gloo environment.
properties:
common:
description: The state and workspace conditions of the applied resource.
properties:
State:
properties:
approval:
description: |-
Whether the resource has been accepted as valid and processed in the Gloo
Mesh config translation.
enum:
- PENDING
- ACCEPTED
- INVALID
- WARNING
- FAILED
- UNLICENSED
type: string
message:
description: Additional information about the current state of
the resource.
type: string
observedGeneration:
description: |-
The most recent generation observed in the object's metadata.
If the `observedGeneration` does not match `metadata.generation`, Gloo Mesh
has not processed the most recent version of this object.
format: int64
type: integer
type: object
workspaceConditions:
additionalProperties:
maximum: 4294967295
minimum: 0
type: integer
description: |-
A map of ApprovalState to the number of workspaces in this condition, e.g.,
"Accepted" -> 2
"Pending" -> 1
type: object
type: object
numSelectedDestinationPorts:
description: The number of destination ports selected by the policy.
maximum: 4294967295
minimum: 0
type: integer
type: object
type: object
served: true
storage: true
subresources:
status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
crd.solo.io/specHash: ebefa1c6add18176
crd.solo.io/version: 2.14.0
labels:
app: gloo-mesh-apis
app.kubernetes.io/name: gloo-mesh-apis
name: retrytimeoutpolicies.resilience.policy.gloo.solo.io
spec:
group: resilience.policy.gloo.solo.io
names:
categories:
- solo-io
kind: RetryTimeoutPolicy
listKind: RetryTimeoutPolicyList
plural: retrytimeoutpolicies
shortNames:
- rtp
singular: retrytimeoutpolicy
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .status.common.State.approval
name: Status
type: string
name: v2
schema:
openAPIV3Schema:
properties:
spec:
description: Specifications for the policy.
properties:
applyToRoutes:
description: |-
Routes to apply the policy to.
**Implementation notes**:
- Only one RetryTimeoutPolicy can apply to a route. Subsequent policies (sorted by creation time)
are ignored and put into a FAILED state.
- If empty, the policy applies to all routes in the workspace.
items:
description: |-
RouteSelector is a Selector specifically built for individual Routes inside of RouteTables.
This selector can be used to select individual routes or entire route tables using the same label selector.
oneOf:
- not:
anyOf:
- required:
- route
- required:
- withDestinations
- required:
- route
- required:
- withDestinations
properties:
route:
description: |-
select routes based on their labels.
these labels can be used to match route tables or individual routes within route tables.
properties:
cluster:
description: Only select routes attached to route tables matching
the cluster.
type: string
labels:
additionalProperties:
type: string
description: Select routes including all specified labels on
the route or route table.
type: object
namespace:
description: Only select routes attached to route tables matching
the namespace.
type: string
workspace:
description: Only select routes attached to route tables matching
the workspace.
type: string
type: object
withDestinations:
description: |-
select routes with `forwardTo` actions based on their destinations.
this can be used to apply policy to routes regardless of
their labels
properties:
kind:
description: The kind of destination being selected. defaults
to Kubernetes Service.
enum:
- SERVICE
- VIRTUAL_DESTINATION
- EXTERNAL_SERVICE
type: string
port:
description: |-
The port on the Destination which receives traffic.
All ports on the Destination will be selected if left empty.
oneOf:
- not:
anyOf:
- required:
- number
- required:
- name
- required:
- number
- required:
- name
properties:
name:
description: the name of the port on the destination objects
being targeted.
type: string
number:
description: the number of the port on the destination objects
being targeted.
maximum: 65535
minimum: 1
type: integer
type: object
selector:
description: The selector used to match destination objects
by their metadata
properties:
cluster:
description: |-
Only select objects in the matching cluster. If omitted, Gloo selects
matching objects across all clusters available in the parent object's workspace.
type: string
labels:
additionalProperties:
type: string
description: labels matching those of the object
type: object
name:
description: |-
Only select objects with the matching name. If omitted, Gloo selects
matching objects with any name available in the parent object's workspace.
type: string
namespace:
description: |-
Only select objects in the matching namespace. If omitted, Gloo selects
matching objects across all namespaces available in the parent object's workspace.
type: string
workspace:
description: |-
Only select objects in the given workspace. If omitted, Gloo selects
matching objects across all workspaces available in the parent object's workspace.
type: string
type: object
type: object
type: object
type: array
config:
description: |-
The details of the retry/timeout policy to apply to the selected routes.
**Configuration constraints**:
- This field is required.
- At least one of `retries` and `request_timeout` must be set.
properties:
requestTimeout:
description: |-
Set a timeout on requests that match the selected routes.
**Configuration constraints**:
- The value must be an integer or decimal value and a preferred unit, or multiple of these concatenated.
Examples: `1m`, `1h`, `1.5h`, `1s500ms`
- The value cannot have granularity smaller than one millisecond.
- The value must be at least 1ms.
- For information about the value format,
see the [ParseDuration documentation](https://pkg.go.dev/time#ParseDuration).
type: string
retries:
description: Specify retries for failed requests.
properties:
attempts:
description: |-
The number of retries for a failed request.
The interval between retries is determined automatically (25ms+).
**Implementation notes**:
- When the `requestTimeout` or `perTryTimeout` fields are configured,
the actual number of retries attempted also depends on those values.
- The default value is 2 retries.
- A value of `0` explicitly disable retries.
- The maximum number of requests that can be made is 1 + `attempts`.
**Configuration constraints**: If set, this value must be greater than or equal to `0`.
For information about the value format, see the
[Google protocol buffer documentation](https://protobuf.dev/reference/protobuf/google.protobuf/#int32-value).
maximum: 2147483647
minimum: 0
nullable: true
type: integer
perTryTimeout:
description: |-
Timeout per retry attempt for a failed request.
If unset, this field defaults to 0, which means that no timeout is set.
**Configuration constraints**:
- If `attempts` is 0, this field must not be set.
- The value must be an integer or decimal value and a preferred unit, or multiple of these concatenated.
Examples: `1m`, `1h`, `1.5h`, `1s500ms`
- The value cannot have granularity smaller than one millisecond.
- The value must be at least 1ms.
- For information about the value format,
see the [ParseDuration documentation](https://pkg.go.dev/time#ParseDuration).
type: string
retryOn:
description: |-
The conditions under which a retry takes place.
For more information, see the [retry policies](https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/router_filter#x-envoy-retry-on)
and [gRPC retry policies](https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/router_filter#x-envoy-retry-grpc-on) in the Envoy docs.
**Configuration constraints**:
- If `attempts` is 0, this field must not be set.
- The following values are supported. Specify multiple values in a comma-delimited list.
- 5xx
- gateway-error
- reset
- reset-before-request
- connect-failure
- retriable-4xx
- refused-stream
- retriable-status-codes
- retriable-headers
- envoy-ratelimited
- http3-post-connect-failure
- cancelled
- deadline-exceeded
- internal
- resource-exhausted
- unavailable
- Any valid [http status code](https://go.dev/src/net/http/status.go)
type: string
retryRemoteLocalities:
description: |-
Flag to specify whether the retries should retry to other localities.
Defaults to false.
For more information, see the
[retry plugin configuration](https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/http/http_connection_management#retry-plugin-configuration) in the Envoy docs.
**Configuration constraints**: If `attempts` is 0, this field must not be set.
nullable: true
type: boolean
type: object
type: object
required:
- config
type: object
status:
description: The status of the policy after it is applied to your Gloo environment.
properties:
common:
description: The state and workspace conditions of the applied resource.
properties:
State:
properties:
approval:
description: |-
Whether the resource has been accepted as valid and processed in the Gloo
Mesh config translation.
enum:
- PENDING
- ACCEPTED
- INVALID
- WARNING
- FAILED
- UNLICENSED
type: string
message:
description: Additional information about the current state of
the resource.
type: string
observedGeneration:
description: |-
The most recent generation observed in the object's metadata.
If the `observedGeneration` does not match `metadata.generation`, Gloo Mesh
has not processed the most recent version of this object.
format: int64
type: integer
type: object
workspaceConditions:
additionalProperties:
maximum: 4294967295
minimum: 0
type: integer
description: |-
A map of ApprovalState to the number of workspaces in this condition, e.g.,
"Accepted" -> 2
"Pending" -> 1
type: object
type: object
numSelectedRoutes:
description: The number of routes selected by the policy.
maximum: 4294967295
minimum: 0
type: integer
type: object
type: object
served: true
storage: true
subresources:
status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
crd.solo.io/specHash: 5193003fcc4ab7e5
crd.solo.io/version: 2.14.0
labels:
app: gloo-mesh-apis
app.kubernetes.io/name: gloo-mesh-apis
name: trimproxyconfigpolicies.resilience.policy.gloo.solo.io
spec:
group: resilience.policy.gloo.solo.io
names:
categories:
- solo-io
kind: TrimProxyConfigPolicy
listKind: TrimProxyConfigPolicyList
plural: trimproxyconfigpolicies
shortNames:
- tpcp
singular: trimproxyconfigpolicy
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .status.common.State.approval
name: Status
type: string
name: v2
schema:
openAPIV3Schema:
properties:
spec:
description: |-
Use the TrimConfigProxyPolicy to select workloads and their corresponding allowed destinations. Then, the Istio
sidecar of the workloads keeps only the configuration of those allowed destinations instead of all the destinations
in the Istio service mesh. Otherwise, the extra config can lead to memory pressure issues.
properties:
applyToWorkloads:
description: |-
Select the workloads for the policy to trim the Istio sidecar config. If omitted, all workloads are selected.
{{< reuse "conrefs/snippets/policies/trim-proxy-workloads-limit.md" >}}
items:
description: |-
WorkloadSelector is a Selector specifically built for selecting individual workloads.
Workloads must have injected sidecar proxies or be standalone gateway proxies to be selected by Gloo Mesh policies.
This selector can be used to select Kubernetes workloads (KUBE) or sidecar-injected external endpoints (VM).
properties:
kind:
description: The kind of workload being selected. Defaults to Kube.
enum:
- KUBE
- VM
type: string
port:
description: |-
The port to select on the selected workloads.
Only applies to policies which select specific workload ports, such as the WasmDeploymentPolicy.
oneOf:
- not:
anyOf:
- required:
- number
- required:
- name
- required:
- number
- required:
- name
properties:
name:
description: the name of the port on the destination objects
being targeted.
type: string
number:
description: the number of the port on the destination objects
being targeted.
maximum: 65535
minimum: 1
type: integer
type: object
selector:
description: Selector used to match Workload objects by their metadata.
properties:
cluster:
description: |-
Only select objects in the matching cluster. If omitted, Gloo selects
matching objects across all clusters available in the parent object's workspace.
type: string
labels:
additionalProperties:
type: string
description: labels matching those of the object
type: object
name:
description: |-
Only select objects with the matching name. If omitted, Gloo selects
matching objects with any name available in the parent object's workspace.
type: string
namespace:
description: |-
Only select objects in the matching namespace. If omitted, Gloo selects
matching objects across all namespaces available in the parent object's workspace.
type: string
workspace:
description: |-
Only select objects in the given workspace. If omitted, Gloo selects
matching objects across all workspaces available in the parent object's workspace.
type: string
type: object
type: object
type: array
config:
description: Trim Proxy Config
properties:
includedDestinations:
description: |-
Select which destinations to include in the trimmed sidecar proxy configuration of the workloads that this policy
applies to. You can select destinations by Kubernetes label. Destinations can be a Kubernetes service,
VirtualDestination, or ExternalService. To select all destinations, specify {}. If omitted or if the selection
does not match any destination, no destinations are selected and the sidecar proxy configurations of the
workloads are not trimmed. The destinations must be within the same workspace as the policy, or imported to the
workspace.
items:
description: |-
DestinationSelector is a selector for matching routable destinations for routes.
DestinationSelectors can select a variety of object types. The behavior of the route action
will vary depending on the type of destination selected. Defaults to the kubernetes `v1/Service`.
Currently supported destination types:
- v1 Service
- networking.gloo.solo.io/v2 VirtualDestination (route traffic to a group of backing destinations)
- networking.gloo.solo.io/v2 ExternalService (route traffic to a static set of service endpoints external to the mesh)
properties:
kind:
description: The kind of destination being selected. defaults
to Kubernetes Service.
enum:
- SERVICE
- VIRTUAL_DESTINATION
- EXTERNAL_SERVICE
type: string
port:
description: |-
The port on the Destination which receives traffic.
All ports on the Destination will be selected if left empty.
oneOf:
- not:
anyOf:
- required:
- number
- required:
- name
- required:
- number
- required:
- name
properties:
name:
description: the name of the port on the destination objects
being targeted.
type: string
number:
description: the number of the port on the destination objects
being targeted.
maximum: 65535
minimum: 1
type: integer
type: object
selector:
description: The selector used to match destination objects
by their metadata
properties:
cluster:
description: |-
Only select objects in the matching cluster. If omitted, Gloo selects
matching objects across all clusters available in the parent object's workspace.
type: string
labels:
additionalProperties:
type: string
description: labels matching those of the object
type: object
name:
description: |-
Only select objects with the matching name. If omitted, Gloo selects
matching objects with any name available in the parent object's workspace.
type: string
namespace:
description: |-
Only select objects in the matching namespace. If omitted, Gloo selects
matching objects across all namespaces available in the parent object's workspace.
type: string
workspace:
description: |-
Only select objects in the given workspace. If omitted, Gloo selects
matching objects across all workspaces available in the parent object's workspace.
type: string
type: object
type: object
type: array
type: object
type: object
status:
properties:
common:
description: The state and workspace conditions of the applied resource.
properties:
State:
properties:
approval:
description: |-
Whether the resource has been accepted as valid and processed in the Gloo
Mesh config translation.
enum:
- PENDING
- ACCEPTED
- INVALID
- WARNING
- FAILED
- UNLICENSED
type: string
message:
description: Additional information about the current state of
the resource.
type: string
observedGeneration:
description: |-
The most recent generation observed in the object's metadata.
If the `observedGeneration` does not match `metadata.generation`, Gloo Mesh
has not processed the most recent version of this object.
format: int64
type: integer
type: object
workspaceConditions:
additionalProperties:
maximum: 4294967295
minimum: 0
type: integer
description: |-
A map of ApprovalState to the number of workspaces in this condition, e.g.,
"Accepted" -> 2
"Pending" -> 1
type: object
type: object
numIncludedHosts:
description: The number of hosts of destinations included by the policy.
maximum: 4294967295
minimum: 0
type: integer
numSelectedWorkloads:
description: The number of workloads selected by the policy.
maximum: 4294967295
minimum: 0
type: integer
type: object
type: object
served: true
storage: true
subresources:
status: {}
---