This is an automated email from the ASF dual-hosted git repository.

warren pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-devlake-website.git

commit 67883291f17a7e0c14ea49ceba9c7f10370f375e
Author: Ji Bin <[email protected]>
AuthorDate: Fri Feb 24 13:08:45 2023 +0800

    docs: description for external database
    
    Add faq section, initial with description for how to use external db
    Update the helm chart parameters
    
    related issue: https://github.com/apache/incubator-devlake/issues/4501
---
 docs/GettingStarted/HelmSetup.md                   | 125 ++++++++++++++-------
 .../version-v0.15/GettingStarted/HelmSetup.md      | 125 ++++++++++++++-------
 2 files changed, 166 insertions(+), 84 deletions(-)

diff --git a/docs/GettingStarted/HelmSetup.md b/docs/GettingStarted/HelmSetup.md
index cf923a3ce1..69539fb829 100644
--- a/docs/GettingStarted/HelmSetup.md
+++ b/docs/GettingStarted/HelmSetup.md
@@ -68,7 +68,7 @@ Conditions:
  - Want to visit devlake with port 30000.
 
 ```
-helm install devlake . --set service.uiPort=30000
+helm install devlake devlake/devlake --set service.uiPort=30000
 ```
 
 After deployed, visit devlake: http://192.168.0.6:30000
@@ -80,7 +80,7 @@ Conditions:
  - I want to use http://devlake.example.com for visiting devlake
 
 ```
-helm install devlake . --set 
"ingress.enabled=true,ingress.hostname=devlake.example.com"
+helm install devlake devlake/devlake --set 
"ingress.enabled=true,ingress.hostname=devlake.example.com"
 ```
 
 After deployed, visit devlake: http://devlake.example.com, and grafana at 
http://devlake.example.com/grafana
@@ -99,7 +99,7 @@ kubectl create secret tls ssl-certificate --cert cert.pem 
--key secret.pem
 
 Then, deploy the devlake:
 ```
-helm install devlake . \
+helm install devlake devlake/devlake \
     --set 
"ingress.enabled=true,ingress.enableHttps=true,ingress.hostname=devlake-0.example.com"
 \
     --set "ingress.className=nginx,ingress.httpsPort=8443" \
     --set "ingress.tlsSecretName=ssl-certificate"
@@ -112,45 +112,86 @@ After deployed, visit devlake: 
https://devlake-0.example.com:8443, and grafana a
 
 Some useful parameters for the chart, you could also check them in values.yaml
 
-| Parameter | Description | Default |
-|-----------|-------------|----|
-| replicaCount  | Replica Count for devlake, currently not used  | 1  |
-| mysql.useExternal  | If use external mysql server, currently not used  |  
false |
-| mysql.externalServer  | External mysql server address  | 127.0.0.1 |
-| mysql.externalPort  | External mysql server port  | 3306 |
-| mysql.username  | username for mysql | merico |
-| mysql.password  | password for mysql | merico |
-| mysql.database  | database for mysql | lake |
-| mysql.rootPassword  | root password for mysql | admin |
-| mysql.storage.class  | storage class for mysql's volume | "" |
-| mysql.storage.size  | volume size for mysql's data | 5Gi |
-| mysql.image.repository  | repository for mysql's image | mysql |
-| mysql.image.tag  | image tag for mysql's image | 8  |
-| mysql.image.pullPolicy  | pullPolicy for mysql's image | IfNotPresent |
-| grafana.image.repository  | repository for grafana's image | 
apache/devlake-dashboard |
-| grafana.image.tag  | image tag for grafana's image | latest |
-| grafana.image.pullPolicy  | pullPolicy for grafana's image | Always |
-| lake.storage.class  | storage class for lake's volume | "" |
-| lake.storage.size  | volume size for lake's data | 100Mi |
-| lake.image.repository  | repository for lake's image | apache/devlake |
-| lake.image.tag  | image tag for lake's image | latest |
-| lake.image.pullPolicy  | pullPolicy for lake's image | Always |
-| lake.loggingDir | the root logging directory of Devlake | /app/logs | 
-| ui.image.repository  | repository for ui's image | apache/devlake-config-ui |
-| ui.image.tag  | image tag for ui's image | latest |
-| ui.image.pullPolicy  | pullPolicy for ui's image | Always |
-| service.type  | Service type for exposed service | NodePort |
-| service.uiPort  | Service port for config ui | 32001 |
-| service.ingress.enabled  | If enable ingress  |  false |
-| service.ingress.enableHttps  | If enable https  |  false |
-| service.ingress.className  | The class name for ingressClass. If leave 
empty, the default IngressClass will be used  | "" |
-| service.ingress.hostname  | The hostname/domainname for ingress  | localhost 
|
-| service.ingress.prefix | The prefix for endpoints, currently not supported 
due to devlake's implementation  | /  |
-| service.ingress.tlsSecretName  | The secret name for tls's certificate, 
required when https enabled  | "" |
-| service.ingress.httpPort  | The http port for ingress  | 80 |
-| service.ingress.httpsPort  | The https port for ingress  | 443 |
-| option.localtime  | The hostpath for mount as /etc/localtime | 
/etc/localtime |
-
+| Parameter                     | Description                                  
              | Default                    |
+| ----------------------------- | 
---------------------------------------------------------- | 
-------------------------- |
+| replicaCount                  | Replica Count for devlake, currently not 
used              | 1                          |
+| imageTag                      | The version tag for all images               
              | see Values.yaml            |
+| mysql.useExternal             | If use external mysql server, set true       
              | false                      |
+| mysql.externalServer          | External mysql server address                
              | 127.0.0.1                  |
+| mysql.externalPort            | External mysql server port                   
              | 3306                       |
+| mysql.username                | username for mysql                           
              | merico                     |
+| mysql.password                | password for mysql                           
              | merico                     |
+| mysql.database                | database for mysql                           
              | lake                       |
+| mysql.rootPassword            | root password for mysql                      
              | admin                      |
+| mysql.storage.class           | storage class for mysql's volume             
              | ""                         |
+| mysql.storage.size            | volume size for mysql's data                 
              | 5Gi                        |
+| mysql.image.repository        | repository for mysql's image                 
              | mysql                      |
+| mysql.image.tag               | image tag for mysql's image                  
              | 8                          |
+| mysql.image.pullPolicy        | pullPolicy for mysql's image                 
              | IfNotPresent               |
+| pgsql.useExternal             | If use external pgsql server, set true       
              | false                      |
+| pgsql.externalServer          | External pgsql server address                
              | 127.0.0.1                  |
+| pgsql.externalPort            | External pgsql server port                   
              | 3306                       |
+| pgsql.username                | username for pgsql                           
              | merico                     |
+| pgsql.password                | password for pgsql                           
              | merico                     |
+| pgsql.database                | database for pgsql                           
              | lake                       |
+| pgsql.storage.class           | storage class for pgsql's volume             
              | ""                         |
+| pgsql.storage.size            | volume size for pgsql's data                 
              | 5Gi                        |
+| pgsql.image.repository        | repository for pgsql's image                 
              | postgres                   |
+| pgsql.image.tag               | image tag for pgsql's image                  
              | 14.5                       |
+| pgsql.image.pullPolicy        | pullPolicy for pgsql's image                 
              | IfNotPresent               |
+| grafana.image.repository      | repository for grafana's image               
              | apache/devlake-dashboard   |
+| grafana.image.pullPolicy      | pullPolicy for grafana's image               
              | Always                     |
+| lake.storage.class            | storage class for lake's volume              
              | ""                         |
+| lake.storage.size             | volume size for lake's data                  
              | 100Mi                      |
+| lake.image.repository         | repository for lake's image                  
              | apache/devlake             |
+| lake.image.pullPolicy         | pullPolicy for lake's image                  
              | Always                     |
+| lake.loggingDir               | log dir for the lake server                  
              | /app/logs                  |
+| lake.loggingLevel             | log level for the lake server                
              | info                       |
+| lake.dotenv                   | initial configurations for injecting to 
lake's .env        | see Values.yaml            |
+| ui.image.repository           | repository for ui's image                    
              | apache/devlake-config-ui   |
+| ui.image.pullPolicy           | pullPolicy for ui's image                    
              | Always                     |
+| ui.basicAuth.enabled          | If the basic auth in ui is enabled           
              | false                      |
+| ui.basicAuth.user             | The user name for the basic auth             
              | "admin"                    |
+| ui.basicAuth.password         | The password for the basic auth              
              | "admin"                    |
+| service.type                  | Service type for exposed service             
              | NodePort                   |
+| service.uiPort                | Node port for config ui                      
              | 32001                      |
+| service.ingress.enabled       | If enable ingress                            
              | false                      |
+| service.ingress.enableHttps   | If enable https                              
              | false                      |
+| service.ingress.className     | Class name for ingressClass. leave empty for 
using default | ""                         |
+| service.ingress.hostname      | The hostname/domainname for ingress          
              | localhost                  |
+| service.ingress.prefix        | The prefix for endpoints, currently not used 
              | /                          |
+| service.ingress.tlsSecretName | The secret name for tls's certificate for 
https            | ""                         |
+| service.ingress.httpPort      | The http port for ingress                    
              | 80                         |
+| service.ingress.httpsPort     | The https port for ingress                   
              | 443                        |
+| option.localtime              | The hostpath for mount as /etc/localtime     
              | /etc/localtime             |
+| option.database               | The database type, valids: mysql, pgsql      
              | mysql                      |
+
+## FAQ
+1. Can I use a managed Cloud database service instead of running database in 
docker?
+
+  Yes, it just set useExternal value to true while you deploy devlake with 
helm chart. Below we'll use MySQL on AWS RDS as an example.
+  1. (Optional) Create a MySQL instance on AWS RDS following this 
[doc](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.MySQL.html),
 skip this step if you'd like to use an existing instance
+  2. Proviede below values while install from helm:
+    * `mysql.useExternal`: this should be `true`
+    * `mysql.externalServer`: use your RDS instance's IP address or domain 
name.
+    * `mysql.externalPort`: use your RDS instance's database port.
+    * `mysql.username`: use your `username` for access RDS instance's DB
+    * `mysql.password`: use your `password` for access RDS instance's DB
+    * `mysql.database`: use your RDS instance's DB name, you may need to 
create a database first with `CREATE DATABASE <DB name>;`
+  
+  Here is the example:
+  ```
+  helm repo add devlake https://apache.github.io/incubator-devlake-helm-chart
+  helm repo update
+  helm install devlake devlake/devlake \
+    --set mysql.useExternal=true \
+    --set mysql.externalServer=db.example.com \
+    --set mysql.externalPort=3306 \
+    --set mysql.username=admin \
+    --set mysql.password=password_4_admin \
+    --set mysql.database=devlake
+  ```
+  
 
 ## Troubleshooting
 
diff --git a/versioned_docs/version-v0.15/GettingStarted/HelmSetup.md 
b/versioned_docs/version-v0.15/GettingStarted/HelmSetup.md
index cf923a3ce1..69539fb829 100644
--- a/versioned_docs/version-v0.15/GettingStarted/HelmSetup.md
+++ b/versioned_docs/version-v0.15/GettingStarted/HelmSetup.md
@@ -68,7 +68,7 @@ Conditions:
  - Want to visit devlake with port 30000.
 
 ```
-helm install devlake . --set service.uiPort=30000
+helm install devlake devlake/devlake --set service.uiPort=30000
 ```
 
 After deployed, visit devlake: http://192.168.0.6:30000
@@ -80,7 +80,7 @@ Conditions:
  - I want to use http://devlake.example.com for visiting devlake
 
 ```
-helm install devlake . --set 
"ingress.enabled=true,ingress.hostname=devlake.example.com"
+helm install devlake devlake/devlake --set 
"ingress.enabled=true,ingress.hostname=devlake.example.com"
 ```
 
 After deployed, visit devlake: http://devlake.example.com, and grafana at 
http://devlake.example.com/grafana
@@ -99,7 +99,7 @@ kubectl create secret tls ssl-certificate --cert cert.pem 
--key secret.pem
 
 Then, deploy the devlake:
 ```
-helm install devlake . \
+helm install devlake devlake/devlake \
     --set 
"ingress.enabled=true,ingress.enableHttps=true,ingress.hostname=devlake-0.example.com"
 \
     --set "ingress.className=nginx,ingress.httpsPort=8443" \
     --set "ingress.tlsSecretName=ssl-certificate"
@@ -112,45 +112,86 @@ After deployed, visit devlake: 
https://devlake-0.example.com:8443, and grafana a
 
 Some useful parameters for the chart, you could also check them in values.yaml
 
-| Parameter | Description | Default |
-|-----------|-------------|----|
-| replicaCount  | Replica Count for devlake, currently not used  | 1  |
-| mysql.useExternal  | If use external mysql server, currently not used  |  
false |
-| mysql.externalServer  | External mysql server address  | 127.0.0.1 |
-| mysql.externalPort  | External mysql server port  | 3306 |
-| mysql.username  | username for mysql | merico |
-| mysql.password  | password for mysql | merico |
-| mysql.database  | database for mysql | lake |
-| mysql.rootPassword  | root password for mysql | admin |
-| mysql.storage.class  | storage class for mysql's volume | "" |
-| mysql.storage.size  | volume size for mysql's data | 5Gi |
-| mysql.image.repository  | repository for mysql's image | mysql |
-| mysql.image.tag  | image tag for mysql's image | 8  |
-| mysql.image.pullPolicy  | pullPolicy for mysql's image | IfNotPresent |
-| grafana.image.repository  | repository for grafana's image | 
apache/devlake-dashboard |
-| grafana.image.tag  | image tag for grafana's image | latest |
-| grafana.image.pullPolicy  | pullPolicy for grafana's image | Always |
-| lake.storage.class  | storage class for lake's volume | "" |
-| lake.storage.size  | volume size for lake's data | 100Mi |
-| lake.image.repository  | repository for lake's image | apache/devlake |
-| lake.image.tag  | image tag for lake's image | latest |
-| lake.image.pullPolicy  | pullPolicy for lake's image | Always |
-| lake.loggingDir | the root logging directory of Devlake | /app/logs | 
-| ui.image.repository  | repository for ui's image | apache/devlake-config-ui |
-| ui.image.tag  | image tag for ui's image | latest |
-| ui.image.pullPolicy  | pullPolicy for ui's image | Always |
-| service.type  | Service type for exposed service | NodePort |
-| service.uiPort  | Service port for config ui | 32001 |
-| service.ingress.enabled  | If enable ingress  |  false |
-| service.ingress.enableHttps  | If enable https  |  false |
-| service.ingress.className  | The class name for ingressClass. If leave 
empty, the default IngressClass will be used  | "" |
-| service.ingress.hostname  | The hostname/domainname for ingress  | localhost 
|
-| service.ingress.prefix | The prefix for endpoints, currently not supported 
due to devlake's implementation  | /  |
-| service.ingress.tlsSecretName  | The secret name for tls's certificate, 
required when https enabled  | "" |
-| service.ingress.httpPort  | The http port for ingress  | 80 |
-| service.ingress.httpsPort  | The https port for ingress  | 443 |
-| option.localtime  | The hostpath for mount as /etc/localtime | 
/etc/localtime |
-
+| Parameter                     | Description                                  
              | Default                    |
+| ----------------------------- | 
---------------------------------------------------------- | 
-------------------------- |
+| replicaCount                  | Replica Count for devlake, currently not 
used              | 1                          |
+| imageTag                      | The version tag for all images               
              | see Values.yaml            |
+| mysql.useExternal             | If use external mysql server, set true       
              | false                      |
+| mysql.externalServer          | External mysql server address                
              | 127.0.0.1                  |
+| mysql.externalPort            | External mysql server port                   
              | 3306                       |
+| mysql.username                | username for mysql                           
              | merico                     |
+| mysql.password                | password for mysql                           
              | merico                     |
+| mysql.database                | database for mysql                           
              | lake                       |
+| mysql.rootPassword            | root password for mysql                      
              | admin                      |
+| mysql.storage.class           | storage class for mysql's volume             
              | ""                         |
+| mysql.storage.size            | volume size for mysql's data                 
              | 5Gi                        |
+| mysql.image.repository        | repository for mysql's image                 
              | mysql                      |
+| mysql.image.tag               | image tag for mysql's image                  
              | 8                          |
+| mysql.image.pullPolicy        | pullPolicy for mysql's image                 
              | IfNotPresent               |
+| pgsql.useExternal             | If use external pgsql server, set true       
              | false                      |
+| pgsql.externalServer          | External pgsql server address                
              | 127.0.0.1                  |
+| pgsql.externalPort            | External pgsql server port                   
              | 3306                       |
+| pgsql.username                | username for pgsql                           
              | merico                     |
+| pgsql.password                | password for pgsql                           
              | merico                     |
+| pgsql.database                | database for pgsql                           
              | lake                       |
+| pgsql.storage.class           | storage class for pgsql's volume             
              | ""                         |
+| pgsql.storage.size            | volume size for pgsql's data                 
              | 5Gi                        |
+| pgsql.image.repository        | repository for pgsql's image                 
              | postgres                   |
+| pgsql.image.tag               | image tag for pgsql's image                  
              | 14.5                       |
+| pgsql.image.pullPolicy        | pullPolicy for pgsql's image                 
              | IfNotPresent               |
+| grafana.image.repository      | repository for grafana's image               
              | apache/devlake-dashboard   |
+| grafana.image.pullPolicy      | pullPolicy for grafana's image               
              | Always                     |
+| lake.storage.class            | storage class for lake's volume              
              | ""                         |
+| lake.storage.size             | volume size for lake's data                  
              | 100Mi                      |
+| lake.image.repository         | repository for lake's image                  
              | apache/devlake             |
+| lake.image.pullPolicy         | pullPolicy for lake's image                  
              | Always                     |
+| lake.loggingDir               | log dir for the lake server                  
              | /app/logs                  |
+| lake.loggingLevel             | log level for the lake server                
              | info                       |
+| lake.dotenv                   | initial configurations for injecting to 
lake's .env        | see Values.yaml            |
+| ui.image.repository           | repository for ui's image                    
              | apache/devlake-config-ui   |
+| ui.image.pullPolicy           | pullPolicy for ui's image                    
              | Always                     |
+| ui.basicAuth.enabled          | If the basic auth in ui is enabled           
              | false                      |
+| ui.basicAuth.user             | The user name for the basic auth             
              | "admin"                    |
+| ui.basicAuth.password         | The password for the basic auth              
              | "admin"                    |
+| service.type                  | Service type for exposed service             
              | NodePort                   |
+| service.uiPort                | Node port for config ui                      
              | 32001                      |
+| service.ingress.enabled       | If enable ingress                            
              | false                      |
+| service.ingress.enableHttps   | If enable https                              
              | false                      |
+| service.ingress.className     | Class name for ingressClass. leave empty for 
using default | ""                         |
+| service.ingress.hostname      | The hostname/domainname for ingress          
              | localhost                  |
+| service.ingress.prefix        | The prefix for endpoints, currently not used 
              | /                          |
+| service.ingress.tlsSecretName | The secret name for tls's certificate for 
https            | ""                         |
+| service.ingress.httpPort      | The http port for ingress                    
              | 80                         |
+| service.ingress.httpsPort     | The https port for ingress                   
              | 443                        |
+| option.localtime              | The hostpath for mount as /etc/localtime     
              | /etc/localtime             |
+| option.database               | The database type, valids: mysql, pgsql      
              | mysql                      |
+
+## FAQ
+1. Can I use a managed Cloud database service instead of running database in 
docker?
+
+  Yes, it just set useExternal value to true while you deploy devlake with 
helm chart. Below we'll use MySQL on AWS RDS as an example.
+  1. (Optional) Create a MySQL instance on AWS RDS following this 
[doc](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.MySQL.html),
 skip this step if you'd like to use an existing instance
+  2. Proviede below values while install from helm:
+    * `mysql.useExternal`: this should be `true`
+    * `mysql.externalServer`: use your RDS instance's IP address or domain 
name.
+    * `mysql.externalPort`: use your RDS instance's database port.
+    * `mysql.username`: use your `username` for access RDS instance's DB
+    * `mysql.password`: use your `password` for access RDS instance's DB
+    * `mysql.database`: use your RDS instance's DB name, you may need to 
create a database first with `CREATE DATABASE <DB name>;`
+  
+  Here is the example:
+  ```
+  helm repo add devlake https://apache.github.io/incubator-devlake-helm-chart
+  helm repo update
+  helm install devlake devlake/devlake \
+    --set mysql.useExternal=true \
+    --set mysql.externalServer=db.example.com \
+    --set mysql.externalPort=3306 \
+    --set mysql.username=admin \
+    --set mysql.password=password_4_admin \
+    --set mysql.database=devlake
+  ```
+  
 
 ## Troubleshooting
 

Reply via email to