Tyk’s Multi Data Centre Bridge (MDCB) is a separately licensed extension to the Tyk control plane that performs management and synchronisation of logically or geographically distributed clusters of Tyk API Gateways.
This chart defines a standalone Tyk MDCB component on a Kubernetes cluster using the Helm package manager.
For typical usage, we recommend using following umbrella charts:
- For single data centre deployment, please use tyk-stack
- For multi data centre deployment, please use tyk-control-plane (Coming soon!)
Learn more about different deployment options
- Kubernetes 1.19+
- Helm 3+
- Tyk Gateway
- Tyk Dashboard
- Redis should already be installed or accessible by the gateway
- MongoDB or PostgreSQL
To install the chart from the Helm repository in namespace tyk with the release name tyk-mdcb:
helm repo add tyk-helm https://helm.tyk.io/public/helm/charts/
helm show values tyk-helm/tyk-mdcb > values.yamlNote:
- Set Redis connection details at
.Values.global.redis - Set MongoDB or Postgres connection details at
.Values.global.mongoor.Values.global.postgresrespectively. - The Tyk MDCB also requires a license to be set at
.Values.mdcb.license
helm install tyk-mdcb tyk-helm/tyk-mdcb -n tyk --create-namespace -f values.yamlhelm uninstall tyk-mdcb -n tykThis removes all the Kubernetes components associated with the chart and deletes the release.
helm upgrade tyk-mdcb tyk-helm/tyk-mdcb -n tykSee Customizing the Chart Before Installing.
To get all configurable options with detailed comments:
helm repo add tyk-helm https://helm.tyk.io/public/helm/charts/
helm show values tyk-helm/tyk-mdcb > values.yamlYou can update any value in your local values.yaml file and use -f [filename] flag to override default values during installation.
Alternatively, you can use --set flag to set it in Tyk installation.
Tyk uses Redis for distributed rate-limiting and token storage.
You may set global.redis.addr and global.redis.pass with Redis connection string and password respectively.
If you do not already have Redis installed, you can use these charts provided by Bitnami
helm repo add bitnami https://charts.bitnami.com/bitnami
helm install tyk-redis bitnami/redis -n tyk --create-namespaceFollow 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:6379 (Tyk needs the name including the port).
You can update them in your local values.yaml file under global.redis.addrs and global.redis.pass.
Alternatively, you can use --set flag to set it in Tyk installation. For example --set global.redis.pass=$REDIS_PASSWORD
If you have already installed MongoDB or PostgreSQL, you can set the connection details in global.mongo and global.postgres section of values file respectively.
If not, you can use these rather excellent charts provided by Bitnami to install MongoDB or PostgreSQL:
MongoDB Installation
helm install tyk-mongo bitnami/mongodb --version {HELM_CHART_VERSION} --set "replicaSet.enabled=true" -n tykPostgreSQL Installation
helm install tyk-postgres bitnami/postgresql --set "auth.database=tyk_analytics" -n tykFollow the notes from the installation output to get connection details.
NOTE: Please make sure you are installing MongoDB or PostgreSQL versions that are supported by Tyk. Please refer to Tyk docs to get list of supported versions.
Tyk MDCB requires a license to be set at .Values.mdcb.license. This field is mandatory and must be configured.
To enhance security and avoid storing plaintext values for the MDCB license directly in the Helm value file,
an alternative approach is available. You can store the license in a Kubernetes Secret and reference it externally.
Set the license in the Kubernetes Secret and provide the secret's name through .Values.mdcb.useSecretName.
The Secret must contain a key named MDCBLicense.
The .Values.mdcb.listenPort field represents a RPC port which worker Tyk Gateways will connect to.
Setting .Values.mdcb.listenPort field opens a port on MDCB container and MDCB service targets this port.
It is used to set TYK_MDCB_LISTENPORT
The health check port for Tyk MDCB can be configurable via .Values.mdcb.probes.healthCheckPort field. This port lets MDCB allow standard health checks.
It also defines the path for liveness and readiness probes. It is used to set TYK_MDCB_HEALTHCHECKPORT