This topic provides full details about the `GatewayClass` resource
This topic provides describes how to configure the `GatewayClass` resource, which is a generic Kubernetes gateway object used as a template for creating `Gateway` resources.
## Introduction
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`.
The `GatewayClass` 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.
@ -23,10 +21,10 @@ The `GatewayClass` resource is a generic Kubernetes gateway object. For configur
The following outline shows how to format the configurations in the `GatewayClass` object. Click on a property name to view details about the configuration.
@ -34,39 +32,24 @@ The following outline shows how to format the configurations in the `GatewayClas
This topic provides details about the configuration parameters.
### controllerName
Specifies the name of the controller that manages the gateways generated by this class. The value must alwasy be `'hashicorp.com/consul-api-gateway-controller'`.
Specifies the name of the controller that manages the gateways generated by this class.
The value must always be `hashicorp.com/consul-api-gateway-controller`.
* Type: string
* Required: required
### parametersRef
Defines an object that specifies additional configurations required by the gateway controller.
* Type: object
* Required: required
### parametersRef.group
Specifies the Kubernetes group that the `parametersRef` is a member of. The value must always be `api-gateway.consul.hashicorp.com`.
The `parametersRef.group` is always the same across all deployments of Consul API Gateway.
* Type: string
* Required: required
### parametersRef.kind
Specifies the Kubernetes kind of entity that the `parametersRef` is. The value must always be `GatewayClassConfig`.
Defines an API object that references additional configurations required by the gateway controller. The following table describes the fields that you must include in the `parametersRef` coniguration.
This `parametersRef.kind` is always the same across all deployments of Consul API Gateway.
* Type: string
* Required: required
### parametersRef.name
Specfies the name of the `GatewayClassConfig` object.
* Type: object
* Required: required
| Parameter | Description | Type | Required |
| --- | --- | --- | --- |
| `group` | Specifies the Kubernetes group that the `parametersRef` is a member of. <br/>The value must always be `api-gateway.consul.hashicorp.com`.<br/>The `parametersRef.group` is always the same across all deployments of Consul API Gateway. | String | Required |
| `kind` | Specifies the type of Kubernetes object that the `parametersRef` configuration defines. <br/>The value must always be `GatewayClassConfig`. <br/> This `parametersRef.kind` is always the same across all deployments of Consul API Gateway. | String | Required |
| `name` | Specfies a name for the `GatewayClassConfig` object. | String | Required |
### description
Specifies a human-readable description of the gateway class. We recommend including a description so that a record exists that describes the gateway class's purpose.
Specifies a human-readable description of the gateway class. We recommend using the description field to describe the gateway class's purpose.
* Type: string
* Required: optional
@ -86,6 +69,7 @@ The following example creates a gateway class called `test-gateway-class`:
group: api-gateway.consul.hashicorp.com
kind: GatewayClassConfig
name: test-gateway-class-config
description: The gateway class is for creating test gateways class configurations