Add example ServiceResolver

pull/15015/head
Nathan Coleman 2022-10-17 16:35:45 -04:00
parent e41ec340d8
commit 72a3bf2296
1 changed files with 19 additions and 4 deletions

View File

@ -11,7 +11,8 @@ This topic describes how to configure Consul API Gateway to route traffic to ser
1. Verify that the [requirements](/docs/api-gateway/tech-specs) have been met. 1. Verify that the [requirements](/docs/api-gateway/tech-specs) have been met.
1. Verify that the Consul API Gateway CRDs and controller have been installed and applied. Refer to [Installation](/docs/api-gateway/install) for details. 1. Verify that the Consul API Gateway CRDs and controller have been installed and applied. Refer to [Installation](/docs/api-gateway/install) for details.
1. Verify that a peering connection has been established between Consul clusters and that at least one service has been exported to the cluster containing your `Gateway`. Refer to [Cluster Peering on Kubernetes](https://developer.hashicorp.com/consul/docs/connect/cluster-peering/k8s) for details. 1. Verify that a peering connection has been established between Consul clusters and that the Consul service you want to route to has been exported to the cluster containing your `Gateway`. Refer to [Cluster Peering on Kubernetes](https://developer.hashicorp.com/consul/docs/connect/cluster-peering/k8s) for details.
1. Verify that a `ServiceResolver` has been created in the cluster containing your `Gateway` for the Consul service you want to route to
## Configuration ## Configuration
@ -22,7 +23,21 @@ Configure the following fields in your `MeshService` configuration to use this f
## Example ## Example
In the following example, routes using the example-mesh-service as a backend will send requests to the `echo` service exported by the peered Consul cluster, `dc2`. In the following example, routes using `example-mesh-service` as a backend will send requests to the `echo` service exported by the peered Consul cluster, `cluster-02`.
<CodeBlockConfig filename="serviceresolver.yaml">
```yaml hideClipboard
apiVersion: consul.hashicorp.com/v1alpha1
kind: ServiceResolver
metadata:
name: echo
spec:
redirect:
peer: cluster-02
service: echo
```
</CodeBlockConfig>
<CodeBlockConfig filename="meshservice.yaml"> <CodeBlockConfig filename="meshservice.yaml">
@ -34,11 +49,11 @@ metadata:
##... ##...
spec: spec:
name: echo name: echo
peer: dc2 peer: cluster-02
``` ```
</CodeBlockConfig> </CodeBlockConfig>
A `HTTPRoute` may then reference this `example-mesh-service` as its `backendRef`. A `HTTPRoute` may then reference `example-mesh-service` as its `backendRef`.
<CodeBlockConfig filename="route.yaml"> <CodeBlockConfig filename="route.yaml">