|
1 | | -# Overview |
| 1 | +# Nango Helm Charts |
2 | 2 |
|
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. |
4 | 4 |
|
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? |
18 | 6 |
|
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. |
22 | 8 |
|
23 | | -# Setting Up Secrets |
| 9 | +## Available Charts |
24 | 10 |
|
25 | | -Nango expects the following secrets: |
| 11 | +| Chart | Description | Version | |
| 12 | +|-------|-------------|---------| |
| 13 | +| [nango](./charts/nango) | Complete Nango deployment with all components |  | |
26 | 14 |
|
27 | | -## `nango-secrets` |
| 15 | +## Quick Start |
28 | 16 |
|
29 | | -This secret should contain: |
| 17 | +### Prerequisites |
30 | 18 |
|
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 |
34 | 22 |
|
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 |
79 | 24 |
|
80 | 25 | ```bash |
81 | 26 | helm repo add nangohq https://nangohq.github.io/nango-helm-charts |
| 27 | +helm repo update |
82 | 28 | ``` |
83 | 29 |
|
84 | | -3. Update the Repository (if previously added): |
| 30 | +### Install Nango |
85 | 31 |
|
86 | 32 | ```bash |
87 | | -helm repo update nangohq |
88 | | -helm search repo nangohq |
| 33 | +helm install nango nangohq/nango |
89 | 34 | ``` |
90 | 35 |
|
91 | | -4. Configure values.yaml: Refer to the configuration section below. |
92 | | -5. Install Nango charts |
| 36 | +### Uninstall Nango |
93 | 37 |
|
94 | 38 | ```bash |
95 | | -helm install nango nangohq/nango |
| 39 | +helm uninstall nango |
96 | 40 | ``` |
97 | 41 |
|
98 | | -- To uninstall the chart |
99 | | - |
100 | | -```sh |
101 | | -helm delete nango |
102 | | -``` |
| 42 | +## Documentation |
103 | 43 |
|
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 |
0 commit comments