---
layout: docs
page_title: Consul API Gateway GatewayClass
description:  >-
  Consul API Gateway GatewayClass
---

# GatewayClass

The `GatewayClass` resource is used as a template for creating `Gateway` resources.
The specification includes the name of the controller (`controllerName`) and an API object containing controller-specific configuration resources within the cluster (`parametersRef`).
The value of the `controllerName` field must be set to `hashicorp.com/consul-api-gateway-controller`.

When gateways are created from a `GatewayClass`, they use the parameters specified in the `GatewayClass` at the time of instantiation.

Add the `kind: GatewayClass` option to the the gateway values file to declare a gateway class.
The following example creates a gateway class called `test-gateway-class`:

<CodeBlockConfig filename="gateway.yaml">

  ```yaml
  apiVersion: gateway.networking.k8s.io/v1alpha2
  kind: GatewayClass
  metadata:
  name: test-gateway-class
  spec:
  controllerName: 'hashicorp.com/consul-api-gateway-controller'
  parametersRef:
  group: api-gateway.consul.hashicorp.com
  kind: GatewayClassConfig
  name: test-gateway-class-config
  ```

</CodeBlockConfig>

Refer to the [Kubernetes Gateway API documentation](https://gateway-api.sigs.k8s.io/v1alpha2/references/spec/#gateway.networking.k8s.io/v1alpha2.GatewayClass) for details about configuring gateway classes.

