mirror of https://github.com/hashicorp/consul
92 lines
3.2 KiB
Markdown
92 lines
3.2 KiB
Markdown
---
|
|
layout: docs
|
|
page_title: Consul API Gateway GatewayClass
|
|
description: >-
|
|
Consul API Gateway GatewayClass
|
|
---
|
|
|
|
# GatewayClass
|
|
|
|
This topic provides full details about the `GatewayClass` resource
|
|
|
|
## 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`.
|
|
|
|
When gateways are created from a `GatewayClass`, they use the parameters specified in the `GatewayClass` at the time of instantiation.
|
|
|
|
The `GatewayClass` resource is a generic kubernetes gateway object. For configuration specific to Consul API Gateway, see [GatewayClassConfig](/docs/api-gateway/configuration/gatewayclassconfig).
|
|
|
|
## Configuration model
|
|
|
|
* (`controllerName`)[###controllerName]: string | required
|
|
* (`parametersRef`)[###parametersRef]: object | optional
|
|
* (`group`)[###parametersRef.group]: Group | required is parametersRef is set
|
|
* (`kind`)[###parametersRef.kind]: Kind | required is parametersRef is set
|
|
* (`name`)[###parametersRef.name]: string | required is parametersRef is set
|
|
* (`description`)[###description]: string | optional
|
|
|
|
## Specification
|
|
|
|
This topic provides details about the configuration parameters.
|
|
|
|
### controllerName
|
|
The name of the controller that is managing the gateways of this class. When using Consul API Gateway, this value should be equal to `'hashicorp.com/consul-api-gateway-controller'`
|
|
* Type: string
|
|
* Required: required
|
|
|
|
### parametersRef
|
|
An object that defines additional configuration required by the gateway controller.
|
|
* Type: object
|
|
* Required: required
|
|
|
|
### parametersRef.group
|
|
The Kubernetes group of the `parametersRef`. This value will always be the same across all deployments of Consul API Gateway.
|
|
* Type: Group
|
|
* Required: required
|
|
|
|
You must specify the following value:
|
|
* `api-gateway.consul.hashicorp.com`
|
|
|
|
### parametersRef.kind
|
|
The Kubernetes kind of the `parametersRef`. This value will always be the same across all deployments of Consul API Gateway.
|
|
* Type: Kind
|
|
* Required: required
|
|
|
|
You must specify the following value:
|
|
* `GatewayClassConfig`
|
|
|
|
### parametersRef.name
|
|
The name of the `GatewayClassConfig` object
|
|
* Type: object
|
|
* Required: required
|
|
|
|
### description
|
|
Helps describe a gateway class with more details
|
|
* Type: string
|
|
* Required: optional
|
|
|
|
## Complete Configuration
|
|
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.
|
|
|