Skip to main content
Running on Podman, containerd, or another container runtime? See Container Runtimes.

Compatible Kubernetes Versions

1.33.x, 1.34.x, 1.35.x

Prerequisites

  • 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 bundled values.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

  1. Clone the tyk-install repository and navigate to the Kubernetes self-managed directory:
  2. Copy the example environment file and add your license keys:
  3. Open .env and set your license key:
  4. 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

Expected pods:

Step 5: Access the Services

The bundled values.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:
Cloud cluster (LoadBalancer): EKS, GKE, and AKS provision an external address for each service. List them and wait for EXTERNAL-IP to be assigned:
For production setups with custom domains and TLS, configure Ingress (AWS ALB, GKE GCE, AKS Application Gateway, or NGINX). See the helm-self-managed README for per-provider Ingress configuration.

Step 6: Get Admin Credentials

The chart bootstraps the admin user from the tyk-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):
You are now ready to create an API, or manage APIs declaratively with Tyk Operator, which is installed as part of this stack.

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

To remove cert-manager (only if you installed it specifically for Tyk):

Troubleshooting

Pods fail to initialize or remain in a pending state.
Missing or incorrectly configured Kubernetes secrets prevent proper authentication and configuration.
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.
The Developer Portal or Tyk Dashboard cannot connect to the PostgreSQL database.
The Tyk Dashboard or other components fail due to a missing or invalid license key.
Tyk Gateway fails to retrieve or display API definitions from the Tyk Dashboard.
The Tyk Dashboard web interface is unavailable or unreachable.
Tyk Operator fails to start or manage custom resources.
Ingress routes fail to direct traffic to the services.

Legacy Helm Chart

tyk-pro chart is deprecated. Please use our Tyk Stack helm chart instead.We recommend all users migrate to the tyk-stack Chart. Please review the Configuration section of the new helm chart and cross-check with your existing configurations while planning for migration.
Tyk Helm chart is the preferred (and easiest) way to install Tyk Self-Managed on Kubernetes. The helm chart tyk-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

  1. Tyk License If you are evaluating Tyk on Kubernetes, contact us to obtain a temporary license.
  2. 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).
    You can find supported MongoDB and SQL versions here. Installation instructions for Redis and MongoDB/SQL are detailed below.
  3. 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

Please make sure you are installing Redis versions that are supported by Tyk. Please refer to Tyk docs to get list of supported versions.
Follow the notes from the installation output to get connection details and password.
The DNS name of your Redis as set by Bitnami is 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_PASSWORD

Quick Redis and MongoDB PoC installation
Another option for Redis and MongoDB, to get started quickly, is to use our simple-redis and simple-mongodb charts. Please note that these provided charts must not ever be used in production and for anything but a quick start evaluation only. Use external redis or Official Redis Helm chart in any other case. We provide this chart, so you can quickly get up and running, however it is not meant for long term storage of data for example.

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.
  1. Add Tyk official Helm repo to your local Helm repository
  2. Create namespace for your Tyk deployment
  3. 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:
  4. License setting For the Tyk Self-Managed chart we need to set the license key in your custom values.yaml file under dash.license field or use --set dash.license={YOUR-LICENSE_KEY} with the helm install command. 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 is Deployment and the replica count to your license node limit. By default, the chart is configured to work with a single node license: gateway.kind=Deployment and gateway.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.
  5. Installing Tyk Self managed Now we can install the chart using our custom values:
    Important Note regarding MongoDBThe --wait argument is important to successfully complete the bootstrap of your Tyk Manager.

Pump Installation

By default pump installation is disabled. You can enable it by setting pump.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)
  1. Mongo Pump To configure mongo pump, do following changings in values.yaml file:
    1. Set backend to mongo.
    2. Set connection string in mongo.mongoURL.
  2. Postgres Pump To configure postgres pump, do following changings in values.yaml file:
    1. Set backend to postgres.
    2. Set connection string parameters in postgres section.

Tyk Developer Portal

You can disable the bootstrapping of the Developer Portal by the portal.bootstrap: false in your local values.yaml file.

Using TLS

You can turn on the TLS option under the gateway section in your local values.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 the gateway.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.