---
layout: docs
page_title: MeshService resource configuration reference
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 reference

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`](/consul/docs/reference/config-entry/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>
