consul/website/content/docs/api-gateway/configuration/meshservice.mdx

59 lines
2.2 KiB
Markdown

---
layout: docs
page_title: MeshService Resource Configuration
description: >-
The `MeshService` resource specifies a service running outside the Kubernetes cluster but in the same datacenter where the Consul API Gateway is deployed. Learn about its configuration model and reference specifications.
---
# MeshService Resource Configuration
This topic provides full details about the `MeshService` resource.
## Introduction
A `MeshService` is a resource in the Kubernetes cluster that enables Kubernetes configuration models, such as `HTTPRoute` and `TCPRoute`, to reference services that only exist in Consul.
A `MeshService` represents a service in the Consul service mesh outside the Kubernetes cluster where Consul API Gateway is deployed.
The service represented by the `MeshService` resource must either be in the same Consul datacenter as the Kubernetes cluster or imported from a peered Consul cluster.
## Configuration Model
The following outline shows how to format the configurations in the `MeshService` object. Click on a property name to view details about the configuration.
- [`name`](#name): string | required
- [`peer`](#peer): string | optional
## Specification
This topic provides details about the configuration parameters.
### name
Specifies the name of the service in the Consul service mesh to send traffic to.
- Type: string
- Required: required
### peer
Specifies the name of the peered Consul cluster that exported the service. If not specified, Consul defaults to the local datacenter.
You must apply a [`ServiceResolver`](/docs/connect/config-entries/service-resolver) for the referenced service. The `ServiceResolver` configuration entry enables Consul to resolve routes to upstream service instances.
- Type: string
- Required: optional
## Example Configuration
The following example creates a mesh service called `example-mesh-service`. Routes that use `example-mesh-service` as a backend route traffic to the Consul service in the local datacenter named `echo`.
<CodeBlockConfig filename="meshservice.yaml">
```yaml hideClipboard
apiVersion: api-gateway.consul.hashicorp.com/v1alpha1
kind: MeshService
metadata:
name: example-mesh-service
spec:
name: echo
```
</CodeBlockConfig>