---
layout: docs
page_title: Consul API Gateway Technical Specifications
description: >-
    This topic describes technical specifications for Consul API Gateway.
---

# Technical Specifications

This topic describes the technical specifications associated with using Consul API Gateway.

## Requirements

Verify that your environment meets the following requirements prior to using Consul API Gateway.

### Datacenter Requirements

Your datacenter must meet the following requirements prior to configuring the Consul API Gateway:

- Kubernetes 1.21+
- `kubectl` 1.21+
- Consul 1.12.0+
- HashiCorp Consul Helm chart 0.43.0+
- Consul Service Mesh must be deployed on the Kubernetes cluster that API Gateway is deployed on.
- Envoy:  Envoy proxy support is determined by the Consul version deployed. Refer to [Envoy Integration](/docs/connect/proxies/envoy) for details.

### TCP Port Requirements

The following table describes the TCP port requirements for each component of the API Gateway.

| Port | Description | Component |
| ---- | ----------- | --------- |
| 9090 | Secret discovery service (SDS) | Gateway controller pod <br/> Gateway instance pod |
| 20000 | Kubernetes readiness probe | Gateway instance pod |
| Configurable | Port for scraping Prometheus metrics. Disabled by default. | Gateway controller pod |

## Consul Server Deployments

- Consul Editions supported: OSS and Enterprise
- Supported Consul Server deployment types:
  - Self-Managed
  - HCP Consul

## Deployment Environments

Consul API Gateway can be deployed in the following Kubernetes-based environments:

- Generic Kubernetes
- AWS Elastic Kubernetes Service (EKS)
- Google Kubernetes Engine (GKE)
- Azure Kubernetes Service (AKS)

## Kubernetes Gateway API Specification - Supported Versions

See the Release Notes for the version of Consul API Gateway being used.

## Resource Allocations

The following resources are allocated for each component of the API Gateway.

### Gateway Controller Pod

- **CPU**: None. Either the namespace or cluster default is allocated, depending on the Kubernetes cluster configuration.
- **Memory**: None. Either the the namespace or cluster default is allocated, depending on the Kubernetes cluster configuration.

### Gateway Instance Pod

- **CPU**: None. Either the namespace or cluster default is allocated, depending on the Kubernetes cluster configuration.
- **Memory**: None. Either the namespace or cluster default is allocated, depending on the Kubernetes cluster configuration.
