Skip to content

Commit 2446b29

Browse files
authored
Nango Helm Chart V2 (#25)
Major rework of the Nango helm chart - now on v2. This is heavily inspired by the [bitnami template](https://github.com/bitnami/charts/tree/main/template). It supports a range of features for each component and can be easily configured from the values file. Sensible defaults are provided. The chart does not provide _any_ of the application environment variables - all of these are provided by the consumer application. Next, will work on a better README and documentation.
1 parent 78e3822 commit 2446b29

90 files changed

Lines changed: 6479 additions & 867 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,5 @@ nango-data/*
55
.idea/*
66
.env
77
nango-integrations/*
8+
charts/nango/charts
9+
template.generated.yaml

ENV_VARIABLES.md

Lines changed: 0 additions & 44 deletions
This file was deleted.

README.md

Lines changed: 23 additions & 127 deletions
Original file line numberDiff line numberDiff line change
@@ -1,150 +1,46 @@
1-
# Overview
1+
# Nango Helm Charts
22

3-
Nango requires specific components and configurations to operate correctly within a Kubernetes cluster. Key dependencies include:
3+
This repository contains Helm charts for deploying [Nango](https://nango.dev) on Kubernetes.
44

5-
- **[Elasticsearch](https://www.elastic.co/)**: Nango relies on Elasticsearch for logging.
6-
Nango can operate without running Elasticsearch and the environment variable `NANGO_LOGS_ENABLED`
7-
determines if logs are ingested and displayed in the Nango UI. If you are running Elasticsearch you
8-
need to set:
9-
```
10-
NANGO_LOGS_ENABLED
11-
NANGO_LOGS_ES_PWD
12-
NANGO_LOGS_ES_URL
13-
NANGO_LOGS_ES_USER
14-
```
15-
Note that these helm charts include a self hosted Elasticsearch version but
16-
using that for production workloads is **not recommended**.
17-
- **Required Values**: Obtain the following values from a Nango developer:
5+
## What is Nango?
186

19-
```
20-
MAILGUN_API_KEY
21-
```
7+
Nango is a single API for all your integrations. It provides OAuth handling, webhook management, and unified API access to hundreds of third-party services.
228

23-
# Setting Up Secrets
9+
## Available Charts
2410

25-
Nango expects the following secrets:
11+
| Chart | Description | Version |
12+
|-------|-------------|---------|
13+
| [nango](./charts/nango) | Complete Nango deployment with all components | ![Version](https://img.shields.io/badge/version-2.0.0-blue.svg?style=flat-square) |
2614

27-
## `nango-secrets`
15+
## Quick Start
2816

29-
This secret should contain:
17+
### Prerequisites
3018

31-
- `postgres-password`: Required if `postgresql.enabled` is set to `false` (i.e., using an external database).
32-
- `encryption-key`: Required if `shared.encryptionEnabled` is set to `true`.
33-
- `mailgun-api-key`.
19+
- Kubernetes 1.19+
20+
- Helm 3.0+
21+
- PV provisioner support in the underlying infrastructure
3422

35-
Example command to create `nango-secrets`:
36-
37-
```bash
38-
kubectl create secret generic nango-secrets \
39-
--from-literal=postgres-password=secure-pw \
40-
--from-literal=encryption-key=base64-encoded-256-bit-key \
41-
--from-literal=mailgun-api-key=key-from-nango-dev
42-
```
43-
44-
Then to create the secrets:
45-
46-
```yaml
47-
apiVersion: v1
48-
kind: Secret
49-
metadata:
50-
name: nango-secrets
51-
type: Opaque
52-
data:
53-
postgres-password: [base64-encoded-password]
54-
encryption-key: [base64-encoded-encryption-key-which-means-you-need-to-base64-encode-the-base64-256-bit-key]
55-
mailgun-api-key: [base64-encoded-api-key]
56-
```
57-
58-
# Persistent Volume Configuration
59-
60-
To facilitate syncs and actions, Nango utilizes a persistent volume across services.
61-
The jobs-pvc.yaml and jobs-${aws|gcp}-storage-class.yaml in the jobs template
62-
are responsible for creating this volume, used by the jobs and server components.
63-
Reach out for assistance if you encounter issues with the volume attachment.
64-
65-
# Exposing the Server
66-
67-
The server component, crucial for OAuth handshake, needs to be publicly accessible.
68-
By default, on AWS, a LoadBalancer exposes the server. Set useLoadBalancer
69-
to false to use an alternate exposure method.
70-
71-
Note for Porter Users: There's a known issue where the server might not be
72-
correctly exposed due to an internal-only load balancer. Please contact us for support.
73-
74-
# Usage
75-
76-
1. Install helm: Follow the [official Helm documentation](https://helm.sh/docs)
77-
78-
2. Add the Nango Repository
23+
### Add the Helm Repository
7924

8025
```bash
8126
helm repo add nangohq https://nangohq.github.io/nango-helm-charts
27+
helm repo update
8228
```
8329

84-
3. Update the Repository (if previously added):
30+
### Install Nango
8531

8632
```bash
87-
helm repo update nangohq
88-
helm search repo nangohq
33+
helm install nango nangohq/nango
8934
```
9035

91-
4. Configure values.yaml: Refer to the configuration section below.
92-
5. Install Nango charts
36+
### Uninstall Nango
9337

9438
```bash
95-
helm install nango nangohq/nango
39+
helm uninstall nango
9640
```
9741

98-
- To uninstall the chart
99-
100-
```sh
101-
helm delete nango
102-
```
42+
## Documentation
10343

104-
# Configuration
105-
106-
| Component | Key | Default Value|
107-
|--------------------------|--------------------------------|--------------|
108-
| postgresql | enabled | true |
109-
| | fullnameOverride | nango-postgresql |
110-
| | primary.persistence.enabled | false |
111-
| | primary.resources.limits.cpu | "1000m" |
112-
| | primary.resources.limits.memory | "2048Mi" |
113-
| | primary.resources.requests.cpu | "250m" |
114-
| | primary.resources.requests.memory | "1024Mi" |
115-
| | auth.postgresPassword | nango |
116-
| | auth.database | nango |
117-
| elasticsearch | enabled | false |
118-
| | fullnameOverride | nango-elasticsearch |
119-
| | clusterName | elastic |
120-
| | security.enabled | true |
121-
| | security.elasticPassword | nango |
122-
| server | name | server |
123-
| | tag | enterprise |
124-
| | useLoadBalancer | true |
125-
| | replicas | 1 |
126-
| jobs | name | jobs |
127-
| | tag | enterprise |
128-
| | replicas | 1 |
129-
| | volume.name | flows-volume |
130-
| | volume.claimName | flow-claim |
131-
| | volume.aws | false |
132-
| | volume.gcp | false |
133-
| runner | name | runner |
134-
| | tag | enterprise |
135-
| | replicas | 1 |
136-
| persist | name | persist |
137-
| | tag | |
138-
| | replicas | 1 |
139-
| | url | `http://nango-persist` |
140-
| shared | namespace | default |
141-
| | NODE_ENV | production |
142-
| | NANGO_DB_HOST | nango-postgresql |
143-
| | NANGO_DB_USER | postgres |
144-
| | NANGO_DB_PORT | "5432" |
145-
| | NANGO_DB_NAME | nango |
146-
| | NANGO_DB_SSL | false |
147-
| | NANGO_SERVER_URL | `https://your-hosted-instance.com` |
148-
| | NANGO_CALLBACK_URL | `https://your-hosted-instance.com/oauth/callback` |
149-
| | flows_path | /flows |
150-
| | useVolumeForFlows | true |
44+
- [Nango Chart Documentation](./charts/nango/README.md) - Detailed configuration and usage
45+
- [Nango Official Documentation](https://docs.nango.dev) - Application documentation
46+
- [Helm Documentation](https://helm.sh/docs) - Helm usage guide

charts/nango/Chart.lock

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
dependencies:
22
- name: postgresql
33
repository: https://charts.bitnami.com/bitnami
4-
version: 13.2.24
4+
version: 16.7.26
55
- name: elasticsearch
66
repository: https://charts.bitnami.com/bitnami
7-
version: 21.3.3
8-
digest: sha256:df557f6fd1ac5231b28abb6a176c5b599e66d038bb755ac306e4464b611680c9
9-
generated: "2024-07-23T15:36:44.302022-04:00"
7+
version: 22.0.15
8+
- name: redis
9+
repository: https://charts.bitnami.com/bitnami
10+
version: 21.0.3
11+
digest: sha256:a9b9f4a9bba7cab3ff632cbfeb3f281a3188fb8607bad41ecd24b4fba40b0b81
12+
generated: "2025-08-18T08:47:31.904356+02:00"

charts/nango/Chart.yaml

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,20 @@
11
apiVersion: v2
22
name: nango
33
type: application
4-
version: 1.1.5
5-
appVersion: 0.0.2
4+
version: 2.0.0
65
dependencies:
76
- condition: postgresql.enabled
87
name: postgresql
98
repository: https://charts.bitnami.com/bitnami
10-
version: 13.2.24
9+
version: ~16.7.0
1110
- condition: elasticsearch.enabled
1211
name: elasticsearch
1312
repository: https://charts.bitnami.com/bitnami
14-
version: 21.3.3
15-
deprecated: false
13+
version: ~22.0.0
14+
- condition: redis.enabled
15+
name: redis
16+
repository: https://charts.bitnami.com/bitnami
17+
version: ~21.0.0
1618
description: Nango - A single API for all your integrations
1719
home: https://nango.dev
1820
icon: https://app.nango.dev/logo-dark-background-vertical.svg
@@ -24,8 +26,7 @@ keywords:
2426
- apps
2527
- open-source
2628
maintainers:
27-
- email: khaliq@nango.dev
28-
name: nango
29-
url: https://app.nango.dev
29+
- name: nango
30+
url: https://github.com/NangoHQ/nango-helm-charts
3031
sources:
31-
- https://github.com/nango/nango-helm-charts.git
32+
- https://github.com/NangoHQ/nango-helm-charts/tree/main/charts/nango

0 commit comments

Comments
 (0)