Overview
Tyk is an open-source API management platform that controls, secures, and monitors API traffic. This template deploys a Tyk API Gateway workload on Control Plane alongside Redis and Redis Sentinel, which serve as the backing store for tokens, analytics, rate limits, and gateway state.This template does not create a GVC. You must deploy it into an existing GVC.
What Gets Created
- Standard Workload — Tyk API Gateway (
RELEASE_NAME-tyk-api-gateway): the gateway process, autoscaling betweenminScaleandmaxScalereplicas. API definitions and policies are mounted from Control Plane secrets at startup. - Secret — Gateway admin secret (
RELEASE_NAME-tyk-gateway-secret): a dictionary secret containing the admin API key used for management operations. - Identity & Policy — An identity (
RELEASE_NAME-tyk-identity) bound to the gateway workload withrevealaccess to the gateway secret, Redis auth secrets, and optionally the API definitions and policy secrets. - Redis and Redis Sentinel — The Redis template (v3.1.1) is deployed as a dependency, creating a Redis workload, a Sentinel workload, and their associated secrets, identities, and policies.
Prerequisites
Tyk loads API definitions and policies from files at startup. You must create the corresponding Control Plane secrets before deploying the template.1. Create the API Definitions Secret
Each key in the dictionary is a filename (e.g.app1.json) containing a Tyk API definition object. Create the secret using cpln apply:
apiSecretName in your values to the name of this secret. To omit API definitions entirely, leave apiSecretName empty.
2. Create the Policies Secret
The policies secret is a single opaque secret containing a JSON object where each key is a policy ID:policySecretName in your values to the name of this secret. To omit policies entirely, leave policySecretName empty.
Installation
To install, follow the instructions for your preferred method:UI
Browse, install, and manage templates visually
CLI
Manage templates from your terminal
Terraform
Declare templates in your Terraform configurations
Pulumi
Declare templates in your Pulumi programs
Configuration
The defaultvalues.yaml for this template:
API Definitions & Policies
apiSecretName— Name of the pre-existing Control Plane secret containing API definitions. Each key in the dictionary is a JSON filename mounted at/opt/tyk-gateway/apps. Must be created before deploying.policySecretName— Name of the pre-existing Control Plane opaque secret containing the policies JSON, mounted at/opt/tyk-gateway/policies/policies.json. Must be created before deploying.
Admin Secret
adminSecret— The admin API key used for gateway management operations (e.g. creating keys, reloading APIs). Change before deploying to production. Stored in a dictionary secret and injected into the gateway at startup.
Resources & Autoscaling
resources.cpu/resources.memory— CPU and memory allocated to the Tyk Gateway workload.autoscaling.minScale/autoscaling.maxScale— Minimum and maximum number of gateway replicas.autoscaling.metric— Scaling metric (cpuby default).autoscaling.target— Target metric value that triggers a scale-up.autoscaling.scaleToZeroDelay— Seconds of inactivity before scaling to zero (only applies whenminScaleis0).multiZone— Whentrue, spreads replicas across availability zones within the location.
Access
externalAccess— Set totrueto expose the gateway publicly. Set tofalsefor internal-only access.internalAccess.type— Controls which workloads can connect to the gateway internally:
| Type | Description |
|---|---|
none | No internal access allowed |
same-gvc | Allow access from all workloads in the same GVC |
same-org | Allow access from all workloads in the same organization |
workload-list | Allow access only from specific workloads listed in workloads |
internalAccess.workloads— List of specific workload links, used whentypeisworkload-list.
Redis
The Redis subchart is configured under theredis key. See the Redis template for full configuration details. Key options:
redis.redis.replicas— Number of Redis replicas.redis.redis.auth.password.enabled/redis.redis.auth.password.value— Redis password authentication. Change before deploying to production.redis.redis.persistence.enabled— Persist Redis data to a volume set.redis.sentinel.replicas— Number of Sentinel replicas (3 recommended for production).redis.sentinel.auth.password.enabled/redis.sentinel.auth.password.value— Sentinel password authentication. Change before deploying to production.redis.sentinel.persistence.enabled— Persist Sentinel state to a volume set.
Connecting to the Gateway
Access the gateway from within the same GVC at:externalAccess is true, the gateway is also reachable via its public Control Plane endpoint.
The Tyk management API is available on the same port under the /tyk/ path. Requests require the x-tyk-authorization header set to the value of adminSecret.
Ports
| Port | Protocol | Description |
|---|---|---|
8080 | HTTP | API traffic and management API (/tyk/) |