Install Gateway Template
Configurations to manage the gateways deployment templates and the auto-lifecycle of the install gateways affected by the template.
ClusterSelector
A template selector based on Cluster details.
| Field | Description | Validation Rule |
|---|---|---|
name | – | |
labelsSelector | 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
The install gateway template feature is in an early access alpha state. Before trying this in a non production environment, please reach out to Tetrate first.
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 determined by selectors that match attributes such as provider, labels, or cluster names.
The following example creates an InstallGatewayTemplate named eks-template under the tetrate organization.
It 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"
environmentSelector:
provider: "EKS"
gatewaySpec:
kubeSpec:
annotations:
service.beta.kubernetes.io/aws-load-balancer-type: 'external'
Another example creates an InstallGatewayTemplate named mem-template under the tetrate organization.
By using a cluster selector, it is scoped to clusters labelled with managed-by: a-team. Furthermore, the scope
is narrowed down thanks to the gateway workload selector to only the gateways with the label memory: high-limits that
are part of the beforementioned clusters. The template enforces memory limits for the selected gateways.
apiVersion: gateway.tsb.tetrate.io/v2
kind: InstallGatewayTemplate
metadata:
name: mem-template
organization: tetrate
spec:
displayName: "memory template"
description: "Template for setting memory limits for some specific labelled gateways"
clusterSelector:
labelsSelector:
labels:
managed-by: "a-team"
gatewayWorkloadSelector:
labelsSelector:
labels:
memory: "high-limits"
gatewaySpec:
kubeSpec:
deployment:
resources:
limits:
memory: 2Gi
| 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 | – |
allClustersSelector | 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 | – | |
labelsSelector | tetrateio.api.tsb.gateway.v2.LabelsSelector oneof _selector | – |
WorkloadSelector
A template selector for Gateway workloads.
| Field | Description | Validation Rule |
|---|---|---|
labelsSelector | 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. |