Install Gateway Template
An InstallGatewayTemplate defines a configuration template for installing gateways in TSB.
It allows specifying gateway configurations that will be applied to gateways created in a defined part
of the infrastructure.
The following example creates an InstallGatewayTemplate named eks-template
under the tetrate
organization
that enforces the use of a specific annotation for all gateways created in EKS clusters.
apiVersion: gateway.tsb.tetrate.io/v2
kind: InstallGatewayTemplate
metadata:
name: aws-template
organization: tetrate
spec:
displayName: "AWS template"
description: "Template for AWS EKS gateways"
selector:
environmentSelector:
provider: "EKS"
gatewaySpec:
kubeSpec:
annotations:
service.beta.kubernetes.io/aws-load-balancer-type: 'external'
ClusterSelector
A template selector based on Cluster details.
Field | Description | Validation Rule |
---|---|---|
name | – | |
labels | tetrateio.api.tsb.gateway.v2.LabelsSelector oneof _selector | – |
namespaceSelector | List of tetrateio.api.tsb.gateway.v2.NamespaceSelector | – |
EnvironmentSelector
A template selector based on environment details, such as the cloud provider (e.g GKE, EKS, AKS...)
Field | Description | Validation Rule |
---|---|---|
provider | string | string = { |
GatewaySpec
GatewaySpec contains the desired state of the Gateway.
Field | Description | Validation Rule |
---|---|---|
connectionDrainDuration | google.protobuf.Duration | – |
revision | string | – |
type | tetrateio.api.tsb.gateway.v2.GatewaySpec.Type | enum = { |
concurrency | int32 oneof __concurrency Set to | – |
kubeSpec | tetrateio.api.install.kubernetes.KubernetesComponentSpec | – |
InstallGatewayTemplate
InstallGatewayTemplate is defined at the Organization level. It applies to a portion of the infrastructure determined by selectors that match attributes such as provider, labels, or cluster names.
Field | Description | Validation Rule |
---|---|---|
deletionProtectionEnabled | bool | – |
priority | int32
| int32 = { |
environmentSelector | tetrateio.api.tsb.gateway.v2.EnvironmentSelector oneof _selector | – |
clusterSelector | tetrateio.api.tsb.gateway.v2.ClusterSelector oneof _selector | – |
allClusters | bool oneof _selector | bool = { |
gatewayWorkloadSelector | tetrateio.api.tsb.gateway.v2.WorkloadSelector | – |
gatewaySpec | tetrateio.api.tsb.gateway.v2.GatewaySpec | – |
LabelsSelector
A template selector based on label matching.
Field | Description | Validation Rule |
---|---|---|
labels | map = { |
NamespaceSelector
A template selector based on Cluster namespaces.
Field | Description | Validation Rule |
---|---|---|
name | – | |
labels | tetrateio.api.tsb.gateway.v2.LabelsSelector oneof _selector | – |
WorkloadSelector
A template selector for Gateway workloads.
Field | Description | Validation Rule |
---|---|---|
labels | tetrateio.api.tsb.gateway.v2.LabelsSelector | – |
Type
Type defines the functionalities supported by the Gateway install. Each type configures gateway workloads for a particular use case. If not set, UNIFIED is set as default.
Field | Number | Description |
---|---|---|
UNIFIED | 0 | UNIFIED represents the gateway type supporting all functionalities: INGRESS, EGRESS, and EASTWEST. Gateway workloads are configured with default ports 80 (HTTP), 443 (HTTPS), and 15443 (ISTIO_mTLS). The gateway is configured with a LoadBalancer type service by default. |
INGRESS | 1 | INGRESS represents the gateway type configured for Ingress use cases. Gateway workloads are configured with default ports 80 (HTTP), 443 (HTTPS), and 15443 (ISTIO_mTLS). The gateway is configured with a LoadBalancer type service by default. |
EGRESS | 2 | EGRESS represents the gateway type configured for Egress use cases. Gateway workloads are configured with the default ports 80 (HTTP), 443 (HTTPS), and 15443 (ISTIO_mTLS). The gateway is configured with a ClusterIP type service by default. |
EASTWEST | 3 | EASTWEST represents the gateway type configured for East-West use cases. Gateway workloads are configured with the default port 15443 (ISTIO_mTLS). The gateway is configured with a LoadBalancer type service by default. |