Running on Podman, containerd, or another container runtime? See Container Runtimes.
Compatible Kubernetes Versions
1.33.x, 1.34.x, 1.35.xPrerequisites
- A running Kubernetes cluster. This can be local (minikube, kind, or Docker Desktop) or a managed cloud cluster (EKS, GKE, or AKS).
- kubectl installed and connected to your cluster.
- Helm 3.12 or later.
- Tyk license keys. The Dashboard license is required; the Operator and Portal licenses are optional. Get a free trial at tyk.io/self-managed-trial.
- 4GB RAM or more available to the cluster.
Instructions
This guide deploys the full Tyk stack with the opinionated, trial-ready configuration from the tyk-install repository. The bundledvalues.yaml enables Pump analytics to PostgreSQL, audit logging, hashed-key listing, OPA, and Dashboard security defaults out of the box.
Step 1: Clone and Configure
-
Clone the tyk-install repository and navigate to the Kubernetes self-managed directory:
-
Copy the example environment file and add your license keys:
-
Open
.envand set your license key: -
Load the environment variables into your shell:
Step 2: Create the Namespace and Secrets
The secrets store your licenses, the shared API secret, database connection strings, and the bootstrap admin user. The values come from the.env file you loaded in Step 1.
Step 3: Install Dependencies
Install PostgreSQL and Redis from Bitnami, wait for them to become ready, then install cert-manager (required by the Tyk Operator).Waiting for PostgreSQL and Redis to report ready before installing Tyk prevents the Gateway, Dashboard, and Pump pods from entering
CrashLoopBackOff while they wait for a database connection.Step 4: Install the Tyk Stack
Step 5: Access the Services
The bundledvalues.yaml sets the Gateway, Dashboard, and Portal services to LoadBalancer. Choose the access method that matches your environment.
Local cluster (port-forward): the quickest way to reach the services on a local cluster. Run each command in a separate terminal:
EXTERNAL-IP to be assigned:
Step 6: Get Admin Credentials
The chart bootstraps the admin user from thetyk-conf secret. Retrieve the credentials to log in to the Tyk Dashboard:
Step 7: Verify the Installation
Test that all components are responding (adjust the host if you are not using port-forward):Configuration
Two files control the deployment:
The bundled
values.yaml is tuned for trials and evaluation, with Pump analytics to PostgreSQL, audit logging, hashed-key listing, OPA, and Dashboard security settings enabled. Inline comments mark the options to change for production and performance. For production deployments, also review the Planning for Production guide and the helm-self-managed README for Ingress, TLS, autoscaling, and troubleshooting.
Hybrid Control Plane and Data Plane
The installation above deploys a single, self-contained Tyk stack. To distribute API traffic across multiple data centers or regions, you can instead run a hybrid topology: a central Control Plane that hosts the management components and one or more remote Data Planes whose Gateways serve traffic locally and sync configuration from the Control Plane over Tyk MDCB. To set up a hybrid deployment with Helm:- Install the Control Plane first to provision the Dashboard, MDCB, and supporting services.
- Install each Data Plane using the connection details produced by the Control Plane installation.
Cleanup
Troubleshooting
Pods Not Starting
Pods Not Starting
Pods fail to initialize or remain in a pending state.
Secret Issues
Secret Issues
Missing or incorrectly configured Kubernetes secrets prevent proper authentication and configuration.
Portal Login Returns "Bad Request"
Portal Login Returns "Bad Request"
Developer Portal authentication fails with a bad request error.Set
PORTAL_DISABLECSRFCHECK=true in values.yaml under tyk-dev-portal.extraEnvs. This is needed when accessing the Developer Portal via HTTP or a LoadBalancer IP. Set it to false when using a proper domain with TLS and Ingress.Database Connection Issues
Database Connection Issues
The Developer Portal or Tyk Dashboard cannot connect to the PostgreSQL database.
License Key Issues
License Key Issues
The Tyk Dashboard or other components fail due to a missing or invalid license key.
Gateway Not Loading APIs
Gateway Not Loading APIs
Tyk Gateway fails to retrieve or display API definitions from the Tyk Dashboard.
Dashboard Not Accessible
Dashboard Not Accessible
The Tyk Dashboard web interface is unavailable or unreachable.
Operator Issues
Operator Issues
Tyk Operator fails to start or manage custom resources.
Ingress Not Working
Ingress Not Working
Ingress routes fail to direct traffic to the services.
Legacy Helm Chart
Tyk Helm chart is the preferred (and easiest) way to install Tyk Self-Managed on Kubernetes. The helm charttyk-helm/tyk-pro will install full Tyk platform with Tyk Manager, Tyk Gateways and Tyk Pump into your Kubernetes cluster. You can also choose to enable the installation of Tyk Operator (to manage your APIs in a declarative way).
Prerequisites
- Tyk License If you are evaluating Tyk on Kubernetes, contact us to obtain a temporary license.
-
Data stores
The following are required for a Tyk Self-Managed installation:
- Redis - Should be installed in the cluster or reachable from inside the cluster (for SaaS option). You can find instructions for a simple Redis installation bellow.
- MongoDB or SQL - Should be installed in the cluster or be reachable by the Tyk Manager (for SaaS option).
- Helm Installed Helm 3 Tyk Helm Chart is using Helm v3 version (i.e. not Helm v2).
Installing the data stores
For Redis, MongoDB or SQL you can use these rather excellent charts provided by Bitnami- Redis
- MongoDB
- SQL
Please make sure you are installing Redis versions that are supported by Tyk. Please refer to Tyk docs to get list of supported versions.
tyk-redis-master.tyk.svc.cluster.local:6379 (Tyk needs the name including the port)
You can update them in your local values.yaml file under redis.addrs and redis.pass
Alternatively, you can use --set flag to set it in Tyk installation. For example --set redis.pass=$REDIS_PASSWORDQuick Redis and MongoDB PoC installation
Instructions
As well as our official Helm repo, you can also find it in ArtifactHub. Open in ArtifactHub If you are interested in contributing to our charts, suggesting changes, creating PRs or any other way, please use GitHub Tyk-helm-chart repo or contact us in Tyk Community forum or through our sales team.-
Add Tyk official Helm repo to your local Helm repository
-
Create namespace for your Tyk deployment
-
Getting the values.yaml of the chart
Before we proceed with installation of the chart you need to set some custom values.
To see what options are configurable on a chart and save that options to a custom values.yaml file run:
-
License setting
For the Tyk Self-Managed chart we need to set the license key in your custom
values.yamlfile underdash.licensefield or use--set dash.license={YOUR-LICENSE_KEY}with thehelm installcommand. Tyk Self-Managed licensing allow for different numbers of Gateway nodes to connect to a single Dashboard instance. To ensure that your Gateway pods will not scale beyond your license allowance, please ensure that the Gateway’s resource kind isDeploymentand the replica count to your license node limit. By default, the chart is configured to work with a single node license:gateway.kind=Deploymentandgateway.replicaCount=1.Please NoteThere may be intermittent issues on the new pods during the rolling update process, when the total number of online gateway pods is more than the license limit with lower amounts of Licensed nodes. -
Installing Tyk Self managed
Now we can install the chart using our custom values:
Important Note regarding MongoDBThe
--waitargument is important to successfully complete the bootstrap of your Tyk Manager.
Pump Installation
By default pump installation is disabled. You can enable it by settingpump.enabled to true in values.yaml file.
Alternatively, you can use --set pump.enabled=true while doing helm install.
Quick Pump configuration(Supported from tyk helm v0.10.0)
-
Mongo Pump
To configure mongo pump, do following changings in
values.yamlfile:- Set
backendtomongo. - Set connection string in
mongo.mongoURL.
- Set
-
Postgres Pump
To configure postgres pump, do following changings in
values.yamlfile:- Set
backendtopostgres. - Set connection string parameters in
postgressection.
- Set
Tyk Developer Portal
You can disable the bootstrapping of the Developer Portal by theportal.bootstrap: false in your local values.yaml file.
Using TLS
You can turn on the TLS option under the gateway section in your localvalues.yaml file which will make your Gateway
listen on port 443 and load up a dummy certificate. You can set your own default certificate by replacing the file in the certs/ folder.
Mounting Files
To mount files to any of the Tyk stack components, add the following to the mounts array in the section of that component. For example:Sharding APIs
Sharding is the ability for you to decide which of your APIs are loaded on which of your Tyk Gateways. This option is turned off by default, however, you can turn it on by updating thegateway.sharding.enabled option. Once you do that you
will also need to set the gateway.sharding.tags field with the tags that you want that particular Gateway to load. (ex. tags: “external,ingress”.)
You can then add those tags to your APIs in the API Designer, under the Advanced Options tab, and
the Segment Tags (Node Segmentation) section in your Tyk Dashboard.
Check Tyk Gateway Sharding for more details.