Skip to content

Commit 193f499

Browse files
committed
Merge remote-tracking branch 'origin/main' into main
2 parents ab5009e + da27ae2 commit 193f499

File tree

1 file changed

+58
-6
lines changed

1 file changed

+58
-6
lines changed

README.md

Lines changed: 58 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,22 @@
11
# diffgram-helm
22
Helm Chart for DIffgram
33

4-
# Pre-requisites
4+
5+
Full Tutorial on Azure: https://medium.com/diffgram/tutorial-installing-diffgram-on-azure-aks-b9447685e271
6+
7+
# How to Install:
8+
9+
## A. Pre-requisites
10+
11+
### Ingress Controller
12+
If you are using minikube make sure you've done:
13+
14+
`minikube addons enable ingress`
15+
16+
To have the ingress enabled, otherwise you won't be able to acess your diffgram services from outside the cluster.
17+
18+
If you are not on minikube, you can use the Nginx K8s Ingress Controller. Check how to install on your cloud provider here: https://kubernetes.github.io/ingress-nginx/deploy/
19+
520
### Opencore or Enterprise
621

722
Make sure you set the value of `diffgramEdition` in the `values.yaml` to either `opencore`
@@ -29,6 +44,18 @@ imagePullCredentials:
2944

3045

3146
### TLS Ceritificates
47+
#### Using minikube (For local testing)
48+
Install Cert Manager
49+
`helm repo add jetstack https://charts.jetstack.io`
50+
51+
`helm install cert-manager --namespace default jetstack/cert-manager --set installCRDs=true`
52+
53+
Default domain on diffgram is: `example.com` so make sure you add that to your local hosts file:
54+
55+
`echo "$(minikube ip) example.com" | sudo tee -a /etc/hosts`
56+
57+
#### Using cert-manager
58+
3259
1. If you want to have TLS connections, please make sure you have a domain available and access to the name servers so you can modify the records to point to the IP addresses of the ingress.
3360

3461
`helm repo add jetstack https://charts.jetstack.io`
@@ -47,14 +74,27 @@ imagePullCredentials:
4774
4. After a few minutes you should be able to see the issuer and the certificate generated. You can confirm this by running:
4875
`kubectl describe issuer letsencrypt-prod`
4976

50-
# Installation
51-
`helm install diffgram ./diffgram`
77+
## B. Installation
78+
`git clone https://github.com/diffgram/diffgram-helm/`
79+
80+
`helm install diffgram ./diffgram-helm --create-namespace`
81+
82+
If you don't change anything on `values.yaml`. You will have the namespace `default` created on your cluster
83+
84+
Note: if on Minikube: run `echo "$(minikube ip) example.com" | sudo tee -a /etc/hosts`
85+
86+
To point minikube to domain example.com (or whatever domain you have set in the `diffgramDomain` inside `values.yaml`
87+
88+
### Values to Change in `values.yaml`
89+
Check section D. to see required values.
90+
5291

53-
You can substitute `./diffgram` with whatever the path to this repo is on your local machine. Also feel free to install on any other namespace.
92+
93+
You can substitute `./diffgram-helm` with whatever the path to this repo is on your local machine. Also feel free to install on any other namespace.
5494

5595
Future versions will provide a repo to download the chart without cloning from github.
5696

57-
# Main Structure
97+
## C. Main Structure
5898
When deploying this chart there are 5 main components to be aware of:
5999

60100
**1. default-service:** This is the service in charge for most of the API calls and data management. Both for the SDK and for the Frontend UI.
@@ -68,7 +108,7 @@ When deploying this chart there are 5 main components to be aware of:
68108
**5. ingress:** A Nginx ingress controller for accessing all the services. This is the entry point and router to all the above services.
69109

70110

71-
# Configurations:
111+
## D. Configurations:
72112
The following are some of the most important configurations of the values.yaml in the helm chart. Please feel free to contact us if you have any questions on any of the configurations.
73113
## 4.1 Database Settings
74114
**1. dbSettings.dbProvider:** Set this to “rds”, "azure", or "local" depending on your DB managed service.
@@ -84,6 +124,7 @@ The following are some of the most important configurations of the values.yaml i
84124
**6. dbSettings.dbPassword:** Set this to RDS instance’s password
85125

86126
## 4.2 Diffgram Configuration Settings
127+
**1. diffgramSecrets.DIFFGRAM_STATIC_STORAGE_PROVIDER:** Set this to “aws”, "azure", or "gcp" depending on your DB managed service. Default is `aws`
87128
**1. diffgramSecrets.DIFFGRAM_AWS_ACCESS_KEY_ID:** Set this to your AWS credentials access key. Make sure the account has permissions to the S3 bucket you’ll use as static storage.
88129

89130
**2. diffgramSecrets.DIFFGRAM_AWS_ACCESS_KEY_SECRET:** Set this to your AWS credentials secret. Make sure the account has permissions to the S3 bucket you’ll use as static storage.
@@ -92,5 +133,16 @@ The following are some of the most important configurations of the values.yaml i
92133

93134
**4. diffgramSettings.ML__DIFFGRAM_S3_BUCKET_NAME:** Set this to your S3’s bucket name for static file storage.
94135

136+
## E. Common Issues:
137+
138+
1. My Helm Chart gets stuck during install and the timesout with
139+
140+
Try doing `kubectl get pods` and find a pod named `diffgram-pre-install-{SOME-ID}`.
141+
142+
Now do `kubectl logs diffgram-pre-install-{SOME-ID} -c pre-upgrade-alembic-hook`
143+
144+
This will show the logs of the POD to further debug the issue. Most common causes for this error are:
145+
146+
- Missing Blob Storage Provider Credentials (Either AWS Access Keys, GCP Service Account or Azure Conn String)
95147

96148

0 commit comments

Comments
 (0)