Skip to content

Commit

Permalink
[TT-8522] Tyk Control Plane (#211)
Browse files Browse the repository at this point in the history
* Add tyk-control-plane umbrella chart

Signed-off-by: Burak Sekili <[email protected]>

* Update readme and add beta version to release

Signed-off-by: Burak Sekili <[email protected]>

* added helpers to use in it notes

Signed-off-by: Burak Sekili <[email protected]>

* add mdcb instructions on readme and update how to provide mdcb license through secret

Signed-off-by: Burak Sekili <[email protected]>

* Update notes of tyk-control-plane

Signed-off-by: Burak Sekili <[email protected]>

* Update ingress notes to mention that will belong to dashboard. Set pump disabled by default in docs. Remove redundant comment in the docs. Point to tyk-data-plane chart in the docs regarding deploying additional gateways. add todo comment in values file about analytics config type. move mongo and postgres pump installation notes

Signed-off-by: Burak Sekili <[email protected]>

* Fix addrs

Signed-off-by: Burak Sekili <[email protected]>

---------

Signed-off-by: Burak Sekili <[email protected]>
  • Loading branch information
buraksekili authored Jan 22, 2024
1 parent 8251bc0 commit 0f72428
Show file tree
Hide file tree
Showing 11 changed files with 2,326 additions and 11 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,5 @@ tyk-stack/charts/*

tyk-data-plane/charts/*

tyk-control-plane/charts/*

12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ This is a repository for new Tyk helm charts. We will roll out new component cha
## Umbrella Charts
Helm umbrella chart (chart of charts) is an easy and really flexible way of installing multiple components as a single one. We have following umbrella charts that help you to install group of related tyk components based on your deployment need.

| Umbrella Charts | Description | Status |
|------------------------------------|---------------------------------------------------------------|-------------|
| [tyk-oss](./tyk-oss) | Tyk Open Source | Stable |
| [tyk-stack](./tyk-stack) | Tyk Self Managed | Stable |
| tyk-control-plane | Tyk Self Managed (MDCB) Control Plane | Coming Soon |
| [tyk-data-plane](./tyk-data-plane) | Tyk Self Managed (MDCB) Data Plane <br> Tyk Hybrid Data Plane | Stable |
| Umbrella Charts | Description | Status |
|------------------------------------------|---------------------------------------------------------------|--------|
| [tyk-oss](./tyk-oss) | Tyk Open Source | Stable |
| [tyk-stack](./tyk-stack) | Tyk Self Managed | Stable |
| [tyk-control-plane](./tyk-control-plane) | Tyk Self Managed (MDCB) Control Plane | Beta |
| [tyk-data-plane](./tyk-data-plane) | Tyk Self Managed (MDCB) Data Plane <br> Tyk Hybrid Data Plane | Stable |

## Component Charts
* [tyk-gateway](./components/tyk-gateway)
Expand Down
16 changes: 11 additions & 5 deletions components/tyk-mdcb/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,18 +103,24 @@ Follow 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.
### MDCB Configuration
### Tyk MDCB Configuration

#### License
Tyk MDCB requires a license to be set at `.Values.mdcb.license`. This field is required and must be set.
#### Tyk MDCB License

#### Listen Port
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`.

#### Tyk MDCB Listen Port

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`

#### Health Check Port
#### Tyk MDCB Health Check Port
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.
Expand Down
14 changes: 14 additions & 0 deletions components/tyk-mdcb/templates/_helpers.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,20 @@ mongoURL
{{- end -}}
{{- end -}}

{{/*
HTTP Protocol that is used by Tyk MDCB. At the moment, TLS is not supported.
*/}}
{{- define "mdcb.proto" -}}
http
{{- end -}}

{{/*
HTTP Protocol that is used by Tyk MDCB. At the moment, TLS is not supported.
*/}}
{{- define "mdcb.svcPort" -}}
{{ .Values.mdcb.service.port }}
{{- end -}}

{{- define "mdcb.tplvalues.render" -}}
{{- if typeIs "string" .value }}
{{- tpl .value .context }}
Expand Down
23 changes: 23 additions & 0 deletions tyk-control-plane/.helmignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*.orig
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/
21 changes: 21 additions & 0 deletions tyk-control-plane/Chart.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
dependencies:
- name: tyk-gateway
repository: file://../components/tyk-gateway
version: 1.2.0
- name: tyk-pump
repository: file://../components/tyk-pump
version: 1.2.0
- name: tyk-dashboard
repository: file://../components/tyk-dashboard
version: 1.0.0
- name: tyk-bootstrap
repository: file://../components/tyk-bootstrap
version: 1.0.0
- name: tyk-mdcb
repository: file://../components/tyk-mdcb
version: 1.0.0-beta1
- name: tyk-dev-portal
repository: file://../components/tyk-dev-portal
version: 1.0.0
digest: sha256:5245e9050edc9be75cb9e6201daa0fa8622a6b7f6912e2582c825023b03e4ba2
generated: "2024-01-17T15:44:19.948207+03:00"
55 changes: 55 additions & 0 deletions tyk-control-plane/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
apiVersion: v2
name: tyk-control-plane
version: 1.0.0-beta1
description: |
A Helm chart for deploying Tyk Control Plane on a cluster.
It will deploy all required Tyk components with the settings provided in the values.yaml file.
It includes:
Tyk Gateway, an open source Enterprise API Gateway (supporting REST, GraphQL, TCP and gRPC protocols).
Tyk Pump, an analytics purger that moves the data generated by your Tyk nodes to any back-end.
Tyk Dashboard, a license based component that provides GUI management interface and analytics platform for Tyk.
Tyk Developer Enterprise Portal, a full-fledged CMS-like system for API providers to publish, monetise and drive the adoption of APIs.
Tyk MDCB, a license based component that performs management and synchronisation of distributed clusters of Tyk API Gateways.
icon: https://tyk.io/wp-content/uploads/2023/11/Tyk-helm-icon-02.png
type: application
home: https://tyk.io/
sources:
- https://github.com/TykTechnologies/tyk-charts/tree/main/tyk-control-plane
keywords:
- api gateway
- reverse proxy
- api management
- tyk
- tyk stack
- tyk self managed
- apis
- api developer portal
- mdcb
dependencies:
- name: tyk-gateway
version: 1.2.0
repository: file://../components/tyk-gateway
- name: tyk-pump
version: 1.2.0
repository: file://../components/tyk-pump
condition: global.components.pump
- name: tyk-dashboard
version: 1.0.0
repository: file://../components/tyk-dashboard
- name: tyk-bootstrap
version: 1.0.0
repository: file://../components/tyk-bootstrap
- name: tyk-mdcb
version: 1.0.0-beta1
repository: file://../components/tyk-mdcb
- name: tyk-dev-portal
version: 1.0.0
repository: file://../components/tyk-dev-portal
condition: global.components.devPortal
annotations:
artifacthub.io/category: networking
artifacthub.io/links: |
- name: docs
url: https://tyk.io/docs/
- name: support
url: https://community.tyk.io/
Loading

0 comments on commit 0f72428

Please sign in to comment.