# Code generated by skv2. DO NOT EDIT. apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: crd.solo.io/specHash: 5f561ac167d344ea crd.solo.io/version: 2.14.0 labels: app: gloo-mesh-apis app.kubernetes.io/name: gloo-mesh-apis name: externalendpoints.networking.gloo.solo.io spec: group: networking.gloo.solo.io names: categories: - solo-io kind: ExternalEndpoint listKind: ExternalEndpointList plural: externalendpoints shortNames: - ep singular: externalendpoint scope: Namespaced versions: - additionalPrinterColumns: - jsonPath: .status.common.State.approval name: Status type: string name: v2 schema: openAPIV3Schema: properties: spec: description: ExternalEndpoint defines a static IP for routing which exist outside the mesh. ExternalEndpoints provide a mechanism for direct resolution of the addresses backing ExternalServices. properties: address: description: |- Address associated with the network endpoint without the port. Domain names can be used if and only if the resolution is set to DNS, and must be fully-qualified without wildcards. Use the form unix:///absolute/path/to/socket for Unix domain socket endpoints. type: string locality: description: |- The locality associated with the endpoint. A locality corresponds to a failure domain (e.g., country/region/zone). Arbitrary failure domain hierarchies can be represented by separating each encapsulating failure domain by /. For example, the locality of an an endpoint in US, in US-East-1 region, within availability zone az-1, in data center rack r11 can be represented as us/us-east-1/az-1/r11. Istio will configure the sidecar to route to endpoints within the same locality as the sidecar. If none of the endpoints in the locality are available, endpoints parent locality (but within the same network ID) will be chosen. For example, if there are two endpoints in same network (networkID "n1"), say e1 with locality us/us-east-1/az-1/r11 and e2 with locality us/us-east-1/az-2/r12, a sidecar from us/us-east-1/az-1/r11 locality will prefer e1 from the same locality over e2 from a different locality. Endpoint e2 could be the IP associated with a gateway (that bridges networks n1 and n2), or the IP associated with a standard service endpoint. properties: region: description: |- Represents a large geographic area, such as us-east1. A region typically contains a number of availability zones. A workload's region is determined by the value of the "topology.kubernetes.io/region" label (or the deprecated "failure-domain.beta.kubernetes.io/region" one) of the Node that is running it. type: string subZone: description: |- A zone can be divided into sub-zones to have even more fine-grained control over load balancing behavior. The sub-zone concept doesn't exist in Kubernetes. This value is derived by the Istio-specific "topology.istio.io/subzone" Node label. type: string zone: description: |- Represents an availability zone within a region, e.g. us-east-1a. A workload's zone is determined by the value of the "topology.kubernetes.io/zone" label (or the deprecated "failure-domain.beta.kubernetes.io/zone" one) of the Node that is running it. type: string type: object ports: description: Set of ports on which the ExternalEndpoint's address receives traffic. items: description: a port on an ExternalEndpoint properties: name: description: name of the port. required if more then one port is specified on the ExternalEndpoint type: string number: description: the port number. maximum: 4294967295 minimum: 0 type: integer type: object type: array type: object status: description: The status of the resource 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 type: object type: object served: true storage: true subresources: status: {} --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: crd.solo.io/specHash: 2082664d9698f3d4 crd.solo.io/version: 2.14.0 labels: app: gloo-mesh-apis app.kubernetes.io/name: gloo-mesh-apis name: externalservices.networking.gloo.solo.io spec: group: networking.gloo.solo.io names: categories: - solo-io kind: ExternalService listKind: ExternalServiceList plural: externalservices shortNames: - es singular: externalservice scope: Namespaced versions: - additionalPrinterColumns: - jsonPath: .status.common.State.approval name: Status type: string name: v2 schema: openAPIV3Schema: properties: spec: description: |- ExternalService defines a destination for routing which exist outside the mesh. This could for example be a web API or a set of virtual machines that are not running in Kubernetes. When an ExternalService is defined for a given workspace, it can be used as a Destination in Routes, as well as called directly via its specified hostname. Resolution of the IP addresses for external services can be done via DNS or provided statically using the ExternalEndpoint object. properties: addresses: description: |- (mutually exclusive with hosts): The List of ipv4 or ipv6 addresses which will be associated to this service. Can be CIDR prefixes. These addresses must be unique among all ExternalServices within a workspace. items: type: string type: array hosts: description: |- (mutually exclusive with addresses): The List of hostnames which will resolve to this service. Both FQDN and wildcard prefix domains are supported. TLS origination to ExternalServices is supported with use of the ClientsideTls property. **Warning**: If you do not use an egress gateway to route all egress traffic through, and you use a wildcard prefix domain for the host without selecting any ExternalEndpoints, the `REGISTRY_ONLY` outbound traffic policy can be bypassed and traffic can be sent to any external service by using a TCP passthrough listener on the sidecar proxy. items: type: string type: array ports: description: The associated ports of the external service. items: description: Port establishes a new port that will be exposed on an ExternalService. properties: clientsideTls: description: |- The tls config for the given port. If the protocol is HTTPS or TLS, the ExternalService will be configured to use TLS automatically. If used in conjunction with targetPort this can be used for TLS Origination. For example, port: 80, targetPort: 443, with ClientsideTls will cause port 80 traffic from workloads to be forwarded to 443 resulting in HTTPS traffic over the internet with TLS originating at the sidecar proxy. properties: caCertificates: description: |- Should be empty if mode is `ISTIO_MUTUAL`. The file path to the file containing CA certificates used to verify server certificates, which should be mounted onto the proxy of the specific workload communicating with the external service. If omitted, the proxy will not verify the server’s certificate. When `hosts` contains a wildcard, this is only used on a port that routes through an egress gateway via `egressGatewayRoutes`. From a sidecar it is ignored: the upstream is verified against the proxy's default trust bundle, and a warning is reported on the ExternalService. type: string clientCertificate: description: |- REQUIRED if mode is `MUTUAL`. Should be empty if mode is `ISTIO_MUTUAL`. The file path to the client-side TLS certificate to use, which should be mounted onto the proxy of the specific workload communicating with the external service. When `hosts` contains a wildcard, this is only used on a port that routes through an egress gateway via `egressGatewayRoutes`. From a sidecar it is ignored: no client certificate is presented to the upstream, and an error is reported on the ExternalService. type: string credentialName: description: |- The name of the secret holding the client-side TLS certificate, private key and CA certificates, resolved through SDS rather than read from the proxy's filesystem. Should be empty if mode is ISTIO_MUTUAL. Mutually exclusive with `clientCertificate` and `privateKey`. Not supported when `hosts` contains a wildcard: the value is ignored and a warning is reported on the ExternalService. Use the `caCertificates`, `clientCertificate` and `privateKey` file paths instead, on a port that routes through an egress gateway. type: string insecureSkipVerify: description: |- insecureSkipVerify specifies whether the proxy should skip verifying the CA signature and SAN for the server certificate corresponding to the host. The default value of this field is false. nullable: true type: boolean mode: description: |- tls mode passed to corresponding DestinationRules' tls traffic policy MUST be one of the following: SIMPLE, MUTUAL, ISTIO_MUTUAL, DISABLE enum: - SIMPLE - DISABLE - MUTUAL - ISTIO_MUTUAL type: string privateKey: description: |- REQUIRED if mode is `MUTUAL`. Should be empty if mode is `ISTIO_MUTUAL`. The file path to the client’s private key, which should be mounted onto the proxy of the specific workload communicating with the external service. When `hosts` contains a wildcard, this is only used on a port that routes through an egress gateway via `egressGatewayRoutes`. From a sidecar it is ignored: no client certificate is presented to the upstream, and an error is reported on the ExternalService. type: string sni: description: |- SNI string to present to the server during TLS handshake. If there is a single host in the hosts list, this will be used as the SNI string. type: string type: object egressGatewayRoutes: description: |- A list of egress VirtualGateways via which this ExternalService is reachable. This is required in meshes that are configured to deny all traffic that is not explicitly allowed. Requires the ExternalService to use Hosts rather than Addresses. Currently only supported for ExternalService ports with HTTP, HTTP2, and HTTPS protocols. properties: portMatch: description: |- The port number to match for traffic originating from the mesh. default to 80. must be unique for each ExternalService port. Note that if this field matches any ExternalService non-egress port (spec.ports.number), requests to this port may not be routed through the egress gateway. maximum: 4294967295 minimum: 0 type: integer virtualGatewayRefs: description: |- Reference to the virtual gateways to use for egress. Multiple gateways selected in this way will have egress traffic load-balanced across them. 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 name: description: A label for the port, eg "http". type: string number: description: The port number. Must be a valid, non-negative integer port number. maximum: 4294967295 minimum: 0 type: integer protocol: description: |- The protocol used in communication with this destination MUST be one of the following: HTTP, HTTPS, GRPC, HTTP2, MONGO, TCP, TLS. type: string targetPort: description: |- (optional): The port number or name used to match the corresponding port on the ExternalService's backing ExternalEndpoints. All of the backing ExternalEndpoints for this ExternalService must contain this port, matching by name or number. If no backing ExternalEndpoints are provided, a name selector is invalid, and requests will be routed to the provided hosts on the port number specified. If unspecified, will default to the value of the port number field above. Ignored when `hosts` contains a wildcard: traffic is always sent to port 443, and a warning is reported on the ExternalService if another port is set. 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 type: object type: array selector: additionalProperties: type: string description: |- Selecting ExternalEndpoints will provide the addresses used for routing traffic to on the ExternalService's hosts. An empty selector will not select any endpoints. If no endpoints are selected, requests will be routed to the provided hosts using dns resolution. type: object subjectAltNames: description: |- A list of alternate names to verify the subject identity in the certificate. If specified, the proxy will verify that the server certificate's subject alt name matches one of the specified values. Only applicable when using TLS to communicate with the ExternalService. items: type: string type: array type: object status: description: The status of the resource 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 numAppliedDestinationPolicies: additionalProperties: maximum: 4294967295 minimum: 0 type: integer description: |- A map of policy GVK to policy references for all policies that are applied on this resource. type: object numSelectedExternalEndpoints: description: The number of external endpoints selected by this ExternalService. maximum: 4294967295 minimum: 0 type: integer numSelectedVirtualGateways: description: The number of VirtualGateways selected by this ExternalService. maximum: 4294967295 minimum: 0 type: integer ownedByWorkspace: description: The name of the workspace that owns this ExternalService. type: string type: object type: object served: true storage: true subresources: status: {} --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: crd.solo.io/specHash: ea72b67c95eb2f9c crd.solo.io/version: 2.14.0 labels: app: gloo-mesh-apis app.kubernetes.io/name: gloo-mesh-apis name: externalworkloads.networking.gloo.solo.io spec: group: networking.gloo.solo.io names: categories: - solo-io kind: ExternalWorkload listKind: ExternalWorkloadList plural: externalworkloads shortNames: - ew singular: externalworkload scope: Namespaced versions: - additionalPrinterColumns: - jsonPath: .status.common.State.approval name: Status type: string name: v2alpha1 schema: openAPIV3Schema: properties: spec: description: Specifications for the external workload. properties: connectedClusters: additionalProperties: type: string description: |- A map of cluster names to the namespace within the cluster that the external workload is registered in. To scope the external workload to multiple registered clusters, multiple cluster-namespace pairs can be specified. However, within a cluster, only a single namespace can be used to register the external workload. type: object identitySelector: description: |- The conditions under which an external workload is selected. For example, you might select a Google Cloud Platform (GCP) VM by specifying `gcp.serviceAccount: `. This field is optional when you use a join token to attest the external workload. If you specify multiple identity selectors, an external workload is selected when at least one of the selectors matches. properties: aws: description: 'Optional: Selector for external workloads running in AWS.' items: description: |- Selector for external workloads that run in AWS. If multiple fields are specified, an external workload is selected only when all match. properties: iamRole: description: 'Optional: The IAM role within the instance profile of the external workload.' type: string imageId: description: 'Optional: The ID of the AMI used to launch the external workload.' type: string instanceId: description: 'Optional: The ID of the external workload instance.' type: string region: description: 'Optional: The region where the external workload is running.' type: string securityGroupId: description: 'Optional: The ID of the security group associated with the external workload.' type: string securityGroupName: description: 'Optional: The name of the security group associated with the external workload.' type: string tag: description: The tag applied as a key to the external workload. properties: key: description: The key of the tag. type: string value: description: The value of the tag. type: string type: object zone: description: 'Optional: The availability zone in which the external workload is running.' type: string type: object type: array azure: description: 'Optional: Selector for external workloads running in Azure.' items: description: |- Selector for external workloads that run in Azure. If multiple fields are specified, an external workload is selected only when all match. properties: name: description: |- Optional: The name of the external workload instance. If specified, the `resourceGroup` field must also be specified. type: string resourceGroup: description: |- Optional: The resource group the external workload belongs to. The resource group does not act as a selector, but is used in conjunction with the other fields. Must be specified if the `securityGroup`, `virtualNetwork`, `subnet`, or `name` fields are specified. type: string securityGroup: description: |- Optional: The name of the security group associated with the external workload. If specified, the `resourceGroup` field must also be specified. type: string subnet: description: |- Optional: The name of the subnet in the virtual network the external workload belongs to. If specified, the `resourceGroup` and `virtualNetwork` fields must also be specified. type: string subscriptionId: description: 'Optional: The subscription ID of the external workload.' type: string virtualNetwork: description: |- Optional: The name of the virtual network the external workload belongs to. If specified, the `resourceGroup` field must also be specified. type: string type: object type: array gcp: description: 'Optional: Selector for external workloads running in GCP.' items: description: |- Selector for external workloads that run in GCP. If multiple fields are specified, an external workload is selected only when all match. properties: label: description: |- Optional: The label applied as a key-value pair to the external workload. The value for the key is optional. properties: key: description: The key of the label. type: string value: description: The value of the label. type: string type: object name: description: 'Optional: Name of the external workload instance.' type: string projectId: description: 'Optional: The ID of the project containing the external workload.' type: string serviceAccount: description: 'Optional: The service account associated with the external workload.' type: string tag: description: 'Optional: The tag applied as a key to the external workload.' type: string zone: description: 'Optional: The availability zone in which the external workload is running.' type: string type: object type: array joinToken: description: 'Optional: Join token configuration to attest the external workload.' properties: enable: description: |- Optional: Enable the use of join tokens to attest the external workload. Defaults to false. type: boolean type: object type: object ports: description: Ports that the external workloads listen on. items: description: The port on the backing external workload. properties: name: description: The logical name assigned to the port. type: string number: description: The port number. Must be in the range 1 - 65535. maximum: 4294967295 minimum: 0 type: integer protocol: description: |- The protocol of the port. Supported protocols: HTTP, HTTPS, GRPC, HTTP2, MONGO, TCP, TLS type: string type: object type: array readinessProbe: description: 'Optional: Readiness probe for the external workload.' oneOf: - not: anyOf: - required: - httpGet - required: - tcpSocket - required: - exec - required: - httpGet - required: - tcpSocket - required: - exec properties: exec: description: Configuration for an exec command probe. properties: command: description: Command to run. An exit status of zero (0) is considered healthy, and a non-zero status is considered unhealthy. items: type: string type: array type: object failureThreshold: description: |- Optional: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. maximum: 4294967295 minimum: 0 nullable: true type: integer httpGet: description: Configuration for an HTTP probe request. properties: httpHeaders: description: 'Optional: Custom headers to set in the request. HTTP allows repeated headers.' items: description: A custom header to use in HTTP probes. properties: name: description: The header field name. type: string value: description: The header field value. type: string type: object type: array path: description: 'Optional: Path to access on the HTTP server.' type: string port: description: Number of the port to access. Must be in the range 1 - 65535. maximum: 4294967295 minimum: 0 type: integer scheme: description: |- Optional: Scheme to use for connecting to the host. Defaults to HTTP. enum: - HTTP - HTTPS type: string type: object initialDelaySeconds: description: |- Optional: Number of seconds after the external workload startup before the probes are initiated. Defaults to 0 seconds. maximum: 4294967295 minimum: 0 nullable: true type: integer periodSeconds: description: |- Optional: How often (in seconds) to perform the probe. Defaults to 10 seconds. Minimum value is 1 second. maximum: 4294967295 minimum: 0 nullable: true type: integer successThreshold: description: |- Optional: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. maximum: 4294967295 minimum: 0 nullable: true type: integer tcpSocket: description: Configuration for a TCP socket probe. properties: host: description: 'Optional: Host to connect to. Defaults to `localhost`.' type: string port: description: Number of the port to access. Must be in the range 1 - 65535. maximum: 4294967295 minimum: 0 type: integer type: object timeoutSeconds: description: |- Optional: Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1 second. maximum: 4294967295 minimum: 0 nullable: true type: integer type: object type: object status: description: The status of the ExternalWorkload 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 numAppliedPolicies: additionalProperties: maximum: 4294967295 minimum: 0 type: integer description: |- A map of policy GVK to the number of policies that are applied on this resource, sorted by GVK. type: object ownedByWorkspace: description: Name of the workspace that owns this ExternalWorkload type: string type: object type: object served: true storage: true subresources: status: {} --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: crd.solo.io/specHash: 8925de6da525fbbb crd.solo.io/version: 2.14.0 labels: app: gloo-mesh-apis app.kubernetes.io/name: gloo-mesh-apis name: progressivedeliveries.networking.gloo.solo.io spec: group: networking.gloo.solo.io names: categories: - solo-io kind: ProgressiveDelivery listKind: ProgressiveDeliveryList plural: progressivedeliveries shortNames: - pd singular: progressivedelivery scope: Namespaced versions: - additionalPrinterColumns: - jsonPath: .status.common.State.approval name: Status type: string name: v2alpha1 schema: openAPIV3Schema: properties: spec: properties: routeTableRef: 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 virtualServicePatch: items: properties: name: type: string route: items: properties: destination: properties: host: description: |- The name of a service from the service registry. Service names are looked up from the platform's service registry (e.g., Kubernetes services, Consul services, etc.) and from the hosts declared by ServiceEntry. type: string port: description: Specifies the port on the host that is being addressed. properties: number: description: Valid port number maximum: 4294967295 minimum: 0 type: integer type: object subset: description: Either the name or labels of a subset within the service, only one can be set. properties: labels: additionalProperties: type: string type: object name: type: string type: object required: - host - subset type: object weight: format: int32 type: integer required: - destination type: object type: array required: - route type: object type: array required: - routeTableRef type: object status: properties: common: description: The state 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 failedToPatchVirtualServices: description: Any Virtual Service that failed to patch 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 patchedVirtualServices: description: Any Virtual Service that was successfully patched 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 served: true storage: true subresources: status: {} --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: crd.solo.io/specHash: 45e656ce4e08cb56 crd.solo.io/version: 2.14.0 labels: app: gloo-mesh-apis app.kubernetes.io/name: gloo-mesh-apis name: routetables.networking.gloo.solo.io spec: group: networking.gloo.solo.io names: categories: - solo-io kind: RouteTable listKind: RouteTableList plural: routetables shortNames: - rt singular: routetable scope: Namespaced versions: - additionalPrinterColumns: - jsonPath: .status.common.State.approval name: Status type: string name: v2 schema: openAPIV3Schema: properties: spec: description: Specifications for the `RouteTable` resource. properties: applyToDestinations: description: |- Optional: Selectors for destinations that route traffic for this route table via a producer-side policy, such as on waypoint proxies.
**Implementation notes**: Selecting external workloads (such as VMs), external services, or destinations with sidecars is currently not supported.
**Configuration constraints**: 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 defaultDestination: description: |- Optional: Routes that do not specify a destination forward traffic to this destination. This field applies only to `forwardTo` routes.
**Configuration constraints**: oneOf: - not: anyOf: - required: - ref - required: - awsLambda - required: - ref - required: - awsLambda properties: awsLambda: description: Reference an AWS Lambda function. properties: cloudProvider: description: Reference to the AWS Cloud Provider. 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 function: description: Name of the function to reference. type: string options: description: |- Specify how the destinations should be configured, for configuring lambda functions. If the destination config is required for the destination and not provided by the user, Gloo will invalidate the destination and its parent resources. properties: invocationStyle: description: |- Can be either Sync or Async. See [AWS Invoke](https://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html) for more details. enum: - SYNC - ASYNC type: string requestTransformation: enum: - REQUEST_DEFAULT - REQUEST_DISABLE type: string responseTransformation: enum: - RESPONSE_DEFAULT - RESPONSE_DISABLE type: string type: object qualifier: description: Qualifier of the function to reference. Defaults to $LATEST type: string type: object kind: description: |- the kind of Kubernetes destination being referenced. defaults to Service. Only applicable for Kubernetes destinations. For non Kubernetes destinations, this field is ignored. enum: - SERVICE - VIRTUAL_DESTINATION - EXTERNAL_SERVICE type: string port: description: the port on the destination object being targeted. required if the object provides more than one port. 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 ref: description: reference to a Kubernetes destination object by its metadata 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 subset: additionalProperties: type: string description: |- select a subset of the destination's endpoints for routing based on their labels. Only applicable for Kubernetes destinations. type: object weight: description: |- Specify the proportion of traffic to be forwarded to this destination. Weights across all of the `destinations` must sum to 100. Weight is only relevant when used in the context of a route with multiple destinations. maximum: 4294967295 minimum: 0 type: integer type: object failureMode: description: |- The desired behavior when one or more routes in the route table are misconfigured.
**Configuration constraints**: For delegated child route tables, this field must be empty or unset. This setting is supported only for the parent route table, which controls the behavior for each child route table. enum: - ROUTE_REPLACEMENT - FREEZE_CONFIG type: string hosts: description: |- Optional: One or more hosts for which this route table routes traffic. To avoid potential misconfigurations, fully qualified domain names are recommended instead of short names.
**Configuration constraints**: items: type: string type: array http: description: |- The HTTP routes that this route table serves. If no routes match the client request, the client receives a 404 error code. For more information on supported HTTP features, see the [Routing overview concept docs]({{< link path="/traffic_management/concepts/routes/" >}}).
**Configuration constraints**: At least one of `http`, `tcp`, or `tls` must be set. items: description: |- Use HTTP routes to control Layer 7 application level traffic to your services. To configure HTTP routes, you pair together HTTP request `matchers` with certain actions. Matchers are criteria such as a route name, port, header, or method to match with an incoming request. Actions describe what to do with a matching request, such as `forwardTo` a destination or `delegate` to another route table. You can add metadata such as names and labels to your HTTP routes so that you can apply policies, track metrics, and better manage the routes. oneOf: - not: anyOf: - required: - forwardTo - required: - delegate - required: - redirect - required: - directResponse - required: - graphql - required: - forwardTo - required: - delegate - required: - redirect - required: - directResponse - required: - graphql properties: delegate: description: Delegate routing decisions to one or more HTTP route tables. properties: allowedRoutes: description: |- Optional: Restrict delegation to the route tables that match the set of route filter criteria specified. If omitted, any route can be referenced by this route table. items: properties: cloudProvider: description: 'Optional: filter out route tables that specify CloudProvider functionality, if provided.' oneOf: - not: anyOf: - required: - aws - required: - aws properties: aws: description: |- Optional: filter out route tables that use AWS functionality, if provided. Each evaluated route must match at at least one of every repeated field provided, if not empty. properties: accountIds: description: 'Optional: filter out route tables that use an AWS account ID which does not match the selector, if provided.' items: type: string type: array iamRoles: description: |- Optional: filter out route tables that use IAM invoke roles which do not match the selector, if provided. Regex supported. items: type: string type: array lambdaFunctions: description: |- Optional: filter out route tables that use backend Lambda functions that do no match the selector, if provided. Regex supported. items: type: string type: array regions: description: 'Optional: filter out route tables that use regions which do not match the selector, if provided.' items: type: string type: array type: object type: object type: object type: array routeTables: description: |- Delegate to the route tables that match the given selectors. Selected route tables are ordered by creation time stamp in ascending order. Route tables are selected from both the tables defined within the current workspace and any tables imported into the workspace. items: description: selects zero or more Kubernetes API resources by matching on labels, name, namespace, cluster, and workspace. 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: array sortMethod: description: The method by which routes across delegated route tables are sorted. enum: - TABLE_WEIGHT - ROUTE_SPECIFICITY type: string type: object directResponse: description: Respond directly to the client from the proxy. properties: body: description: |- The content of the response body. If omitted, no body is included in the generated response.
**Configuration constraints**: Must be less than 1MB in size. type: string status: description: |- The HTTP response status code to return.
**Configuration constraints**: