This is an automated email from the ASF dual-hosted git repository.
klesh pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-devlake-website.git
The following commit(s) were added to refs/heads/main by this push:
new fd85cbfc65 Documentation for use external grafana (#529)
fd85cbfc65 is described below
commit fd85cbfc655bc6636148c84e1cce128d422ac770
Author: Ji Bin <[email protected]>
AuthorDate: Thu May 18 11:54:37 2023 +0800
Documentation for use external grafana (#529)
Signed-off-by: Ji Bin <[email protected]>
---
docs/GettingStarted/HelmSetup.md | 216 ++++++++++++--------
.../version-v0.16/GettingStarted/HelmSetup.md | 193 +++++++++++-------
.../version-v0.17/GettingStarted/HelmSetup.md | 220 +++++++++++++--------
3 files changed, 393 insertions(+), 236 deletions(-)
diff --git a/docs/GettingStarted/HelmSetup.md b/docs/GettingStarted/HelmSetup.md
index d792615a70..0473f20b7e 100644
--- a/docs/GettingStarted/HelmSetup.md
+++ b/docs/GettingStarted/HelmSetup.md
@@ -10,14 +10,13 @@ sidebar_position: 2
- Helm >= 3.6.0
- Kubernetes >= 1.19.0
-
## Quick Start
#### You can also check https://github.com/apache/incubator-devlake-helm-chart
to make contribution
### Install
-To install the chart with the release name `devlake``:
+To install the chart with release name `devlake`:
```shell
helm repo add devlake https://apache.github.io/incubator-devlake-helm-chart
@@ -29,31 +28,31 @@ And visit your devlake from the node port (32001 by
default).
http://YOUR-NODE-IP:32001
-#### Tips:
-If you are using Minikube inside your Mac, please use the following command to
forward the port:
+#### Tips:
+
+If you are using minikube inside your mac, please use the following command to
forward the port:
+
```shell
kubectl port-forward service/devlake-ui 30090:4000
```
+
and open another terminal:
+
```shell
kubectl port-forward service/devlake-grafana 30091:3000
```
Then you can visit:
-Config UI URL `http://YOUR-NODE-IP:30090`
-Grafana URL `http://YOUR-NODE-IP:30091`
+config-ui by url `http://YOUR-NODE-IP:30090`
+grafana by url `http://YOUR-NODE-IP:30091`
-### Upgrade
-
-Please note: **Back up your Grafana dashboards** before upgrade if you have
modified/customized any dashboards. You can re-import these dashboards to
Grafana after the upgrade.
+### Update
```shell
helm repo update
helm upgrade --install devlake devlake/devlake --version=0.17.0-beta5
```
-Please check the [upgrade doc](Upgrade.md) for more information.
-
### Uninstall
To uninstall/delete the `devlake` release:
@@ -62,46 +61,50 @@ To uninstall/delete the `devlake` release:
helm uninstall devlake
```
-
## Some example deployments
### Deploy with NodePort
Conditions:
- - IP Address of Kubernetes node: 192.168.0.6
- - Want to visit devlake with port 30000.
+
+- IP Address of Kubernetes node: 192.168.0.6
+- Want to visit devlake with port 30000.
```
helm install devlake devlake/devlake --set service.uiPort=30000
```
-After the deployment, visit devlake at: http://192.168.0.6:30000
+After deployed, visit devlake: http://192.168.0.6:30000
### Deploy with Ingress
Conditions:
- - I have already configured the default ingress for the Kubernetes cluster
- - I want to use http://devlake.example.com for visiting devlake
+
+- I have already configured default ingress for the Kubernetes cluster
+- I want to use http://devlake.example.com for visiting devlake
```
helm install devlake devlake/devlake --set
"ingress.enabled=true,ingress.hostname=devlake.example.com"
```
-After the deployment, visit devlake at: http://devlake.example.com, and
Grafana at http://devlake.example.com/grafana
+After deployed, visit devlake: http://devlake.example.com, and grafana at
http://devlake.example.com/grafana
### Deploy with Ingress (Https)
Conditions:
- - I have already configured ingress(class: nginx) for the Kubernetes cluster,
and the https using 8443 port.
- - I want to use https://devlake-0.example.com:8443 for visiting devlake.
- - The https certificates are generated by letsencrypt.org, and the
certificate and key files: `cert.pem` and `key.pem`
+
+- I have already configured ingress(class: nginx) for the Kubernetes cluster,
and the https using 8443 port.
+- I want to use https://devlake-0.example.com:8443 for visiting devlake.
+- The https certificates are generated by letsencrypt.org, and the certificate
and key files: `cert.pem` and `key.pem`
First, create the secret:
+
```
kubectl create secret tls ssl-certificate --cert cert.pem --key secret.pem
```
Then, deploy the devlake:
+
```
helm install devlake devlake/devlake \
--set
"ingress.enabled=true,ingress.enableHttps=true,ingress.hostname=devlake-0.example.com"
\
@@ -109,70 +112,99 @@ helm install devlake devlake/devlake \
--set "ingress.tlsSecretName=ssl-certificate"
```
-After the deployment, visit devlake at: https://devlake-0.example.com:8443,
and Grafana at https://devlake-0.example.com:8443/grafana
-
+After deployed, visit devlake: https://devlake-0.example.com:8443, and grafana
at https://devlake-0.example.com:8443/grafana
## Parameters
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 |
-| 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 |
-| 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 ingress is enabled
| false |
-| service.ingress.enableHttps | If https is enabled
| 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
| mysql |
+| 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 |
+| mysql.extraLabels | extra labels for mysql's
statefulset | {} |
+| mysql.securityContext | pod security context values
| {} |
+| mysql.containerSecurityContext | container security context
values | {} |
+| grafana.image.repository | repository for grafana's image
| apache/devlake-dashboard |
+| grafana.image.pullPolicy | pullPolicy for grafana's image
| Always |
+| grafana.useExternal | If use external grafana server
| false |
+| grafana.externalUrl | external grafana server if use
external | "" |
+| grafana.extraLabels | extra labels for grafana's
statefulset | {} |
+| grafana.securityContext | pod security context values
| {} |
+| grafana.containerSecurityContext | container security context
values | {} |
+| grafana.oauthEnabled | enable oauth for grafana
| false |
+| grafana.oauthConfig | a list of env vars used for
oauth | {} |
+| 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 |
+| lake.extraLabels | extra labels for lake's
statefulset | {} |
+| lake.securityContext | pod security context values
| {} |
+| lake.containerSecurityContext | container security context
values | {} |
+| 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" |
+| ui.basicAuth.useSecret | If use secret instead of
configmap for basic auth | false |
+| ui.basicAuth.autoCreateSecret | If let the helm chart create the
secret | true |
+| ui.basicAuth.secretName | The basic auth secret name
| devlake-auth |
+| ui.extraLabels | extra labels for ui's
statefulset | {} |
+| ui.securityContext | pod security context values
| {} |
+| ui.containerSecurityContext | container security context
values | {} |
+| 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 | 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
| mysql |
+| option.useConnectionDetailsSecret | If use secret instead of
configmap for db connection | false |
+| option.connectionSecretName | The database connection details
secret name | devlake-db-connection |
+| option.autoCreateSecret | If let the helm chart create the
secret | true |
+| awsCognitoAuth.enabled | use AWS cognito for
authentication | false |
+| awsCognitoAuth.awsAuthRegion | aws Cognito auth region
| "" |
+| awsCognitoAuth.awsAuthUserPoolID | aws Cognito user pool ID
| "" |
+| awsCognitoAuth.awsAuthUserPoolWebClientID | aws Cognito web client ID for
the user pool | "" |
## FAQ
-### 1. Can I use a managed cloud database service instead of running database
in Docker?
-
- Yes, you can just set useExternal value to true while deploying devlake with
helm chart. Below we will 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 would like to use an existing instance.
-2. Provide the following 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>;`
-
+
+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.
+
+ a. (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
+ b. 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
@@ -184,8 +216,34 @@ Some useful parameters for the chart, you could also check
them in values.yaml
--set mysql.password=password_4_admin \
--set mysql.database=devlake
```
-
+
+2. Can I use a secret to store the database connection details?
+
+ Yes, to do so, you need to have a secret in your Kubernetes Cluster that
contains the following values:
+
+ - `MYSQL_USER`: The user to connect to your DB.
+ - `MYSQL_PASSWORD`: The password to connect to your DB.
+ - `MYSQL_DATABASE`: The database to connect to your DB.
+ - `MYSQL_ROOT_PASSWORD`: The root password to connect to your DB.
+ - `DB_URL`:
mysql://`username`:`password`@`dbserver`:`port`/`database`?charset=utf8mb4&parseTime=True
+
+ The secret name needs to be the same as the value
`option.connectionSecretName`
+
+3. Can I use an external Grafana instead of running built-in Grafana?
+
+ Yes, the devlake helm chart supports using an external Grafana. You can set
the following values while installing from helm:
+ - `grafana.useExternal`: this should be `true`
+ - `grafana.externalUrl`: use your Grafana's URL, e.g.
`https://grafana.example.com`
+
+ 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 grafana.useExternal=true \
+ --set grafana.externalUrl=https://grafana.example.com
+ ```
## Troubleshooting
-If you run into any problems, please check the
[Troubleshooting](/Troubleshooting/Installation.md) or [create an
issue](https://github.com/apache/incubator-devlake/issues)
+If you run into any problem, please check the
[Troubleshooting](/Troubleshooting/Installation.md) or [create an
issue](https://github.com/apache/incubator-devlake/issues)
diff --git a/versioned_docs/version-v0.16/GettingStarted/HelmSetup.md
b/versioned_docs/version-v0.16/GettingStarted/HelmSetup.md
index cb586c7236..2ac0ce1770 100644
--- a/versioned_docs/version-v0.16/GettingStarted/HelmSetup.md
+++ b/versioned_docs/version-v0.16/GettingStarted/HelmSetup.md
@@ -10,7 +10,6 @@ sidebar_position: 2
- Helm >= 3.6.0
- Kubernetes >= 1.19.0
-
## Quick Start
#### You can also check https://github.com/apache/incubator-devlake-helm-chart
to make contribution
@@ -29,29 +28,30 @@ And visit your devlake from the node port (32001 by
default).
http://YOUR-NODE-IP:32001
-#### Tips:
+#### Tips:
+
If you are using minikube inside your mac, please use the following command to
forward the port:
+
```shell
kubectl port-forward service/devlake-ui 30090:4000
```
+
and open another terminal:
+
```shell
kubectl port-forward service/devlake-grafana 30091:3000
```
Then you can visit:
-Config UI URL `http://YOUR-NODE-IP:30090`
-Grafana URL `http://YOUR-NODE-IP:30091`
-
-### Upgrade
+config-ui by url `http://YOUR-NODE-IP:30090`
+grafana by url `http://YOUR-NODE-IP:30091`
-Please note: **Back up your Grafana dashboards** before upgrade if you have
modified/customized any dashboards. You can re-import these dashboards to
Grafana after the upgrade.
+### Update
```shell
helm repo update
helm upgrade --install devlake devlake/devlake --version=0.16.1-beta1
```
-Please check the [upgrade doc](Upgrade.md) for more information.
### Uninstall
@@ -61,46 +61,50 @@ To uninstall/delete the `devlake` release:
helm uninstall devlake
```
-
## Some example deployments
### Deploy with NodePort
Conditions:
- - IP Address of Kubernetes node: 192.168.0.6
- - Want to visit devlake with port 30000.
+
+- IP Address of Kubernetes node: 192.168.0.6
+- Want to visit devlake with port 30000.
```
helm install devlake devlake/devlake --set service.uiPort=30000
```
-After the deployment, visit devlake at: http://192.168.0.6:30000
+After deployed, visit devlake: http://192.168.0.6:30000
### Deploy with Ingress
Conditions:
- - I have already configured default ingress for the Kubernetes cluster
- - I want to use http://devlake.example.com for visiting devlake
+
+- I have already configured default ingress for the Kubernetes cluster
+- I want to use http://devlake.example.com for visiting devlake
```
helm install devlake devlake/devlake --set
"ingress.enabled=true,ingress.hostname=devlake.example.com"
```
-After the deployment, visit devlake at: http://devlake.example.com, and
Grafana at http://devlake.example.com/grafana
+After deployed, visit devlake: http://devlake.example.com, and grafana at
http://devlake.example.com/grafana
### Deploy with Ingress (Https)
Conditions:
- - I have already configured ingress(class: nginx) for the Kubernetes cluster,
and the https using 8443 port.
- - I want to use https://devlake-0.example.com:8443 for visiting devlake.
- - The https certificates are generated by letsencrypt.org, and the
certificate and key files: `cert.pem` and `key.pem`
+
+- I have already configured ingress(class: nginx) for the Kubernetes cluster,
and the https using 8443 port.
+- I want to use https://devlake-0.example.com:8443 for visiting devlake.
+- The https certificates are generated by letsencrypt.org, and the certificate
and key files: `cert.pem` and `key.pem`
First, create the secret:
+
```
kubectl create secret tls ssl-certificate --cert cert.pem --key secret.pem
```
Then, deploy the devlake:
+
```
helm install devlake devlake/devlake \
--set
"ingress.enabled=true,ingress.enableHttps=true,ingress.hostname=devlake-0.example.com"
\
@@ -108,70 +112,81 @@ helm install devlake devlake/devlake \
--set "ingress.tlsSecretName=ssl-certificate"
```
-After the deployment, visit devlake at: https://devlake-0.example.com:8443,
and Grafana at https://devlake-0.example.com:8443/grafana
-
+After deployed, visit devlake: https://devlake-0.example.com:8443, and grafana
at https://devlake-0.example.com:8443/grafana
## Parameters
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 |
-| 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 |
-| 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 ingress is enabled
| false |
-| service.ingress.enableHttps | If https is enabled
| 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
| mysql |
+| 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 |
+| grafana.image.repository | repository for grafana's image
| apache/devlake-dashboard |
+| grafana.image.pullPolicy | pullPolicy for grafana's image
| Always |
+| grafana.useExternal | If use external grafana server
| false |
+| grafana.externalUrl | external grafana server if use external
| "" |
+| 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" |
+| ui.basicAuth.useSecret | If use secret instead of configmap for
basic auth | false |
+| ui.basicAuth.autoCreateSecret | If let the helm chart create the secret
| true |
+| ui.basicAuth.secretName | The basic auth secret name
| devlake-auth |
+| 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 | 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
| mysql |
+| option.useConnectionDetailsSecret | If use secret instead of configmap for
db connection | false |
+| option.connectionSecretName | The database connection details secret
name | devlake-db-connection |
+| option.autoCreateSecret | If let the helm chart create the secret
| true |
## FAQ
-### 1. Can I use a managed Cloud database service instead of running database
in Docker?
-
- Yes, you can just set useExternal value to true while deploying devlake with
helm chart. Below we will 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 would like to use an existing instance.
-2. Provide the following 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>;`
-
+
+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.
+
+ a. (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
+ b. 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
@@ -183,8 +198,34 @@ Some useful parameters for the chart, you could also check
them in values.yaml
--set mysql.password=password_4_admin \
--set mysql.database=devlake
```
-
+
+2. Can I use a secret to store the database connection details?
+
+ Yes, to do so, you need to have a secret in your Kubernetes Cluster that
contains the following values:
+
+ - `MYSQL_USER`: The user to connect to your DB.
+ - `MYSQL_PASSWORD`: The password to connect to your DB.
+ - `MYSQL_DATABASE`: The database to connect to your DB.
+ - `MYSQL_ROOT_PASSWORD`: The root password to connect to your DB.
+ - `DB_URL`:
mysql://`username`:`password`@`dbserver`:`port`/`database`?charset=utf8mb4&parseTime=True
+
+ The secret name needs to be the same as the value
`option.connectionSecretName`
+
+3. Can I use an external Grafana instead of running built-in Grafana?
+
+ Yes, the devlake helm chart supports using an external Grafana. You can set
the following values while installing from helm:
+ - `grafana.useExternal`: this should be `true`
+ - `grafana.externalUrl`: use your Grafana's URL, e.g.
`https://grafana.example.com`
+
+ 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 grafana.useExternal=true \
+ --set grafana.externalUrl=https://grafana.example.com
+ ```
## Troubleshooting
-If you run into any problems, please check the
[Troubleshooting](/Troubleshooting/Installation.md) or [create an
issue](https://github.com/apache/incubator-devlake/issues)
+If you run into any problem, please check the
[Troubleshooting](/Troubleshooting/Installation.md) or [create an
issue](https://github.com/apache/incubator-devlake/issues)
diff --git a/versioned_docs/version-v0.17/GettingStarted/HelmSetup.md
b/versioned_docs/version-v0.17/GettingStarted/HelmSetup.md
index a408e5531b..0473f20b7e 100644
--- a/versioned_docs/version-v0.17/GettingStarted/HelmSetup.md
+++ b/versioned_docs/version-v0.17/GettingStarted/HelmSetup.md
@@ -10,50 +10,49 @@ sidebar_position: 2
- Helm >= 3.6.0
- Kubernetes >= 1.19.0
-
## Quick Start
#### You can also check https://github.com/apache/incubator-devlake-helm-chart
to make contribution
### Install
-To install the chart with the release name `devlake``:
+To install the chart with release name `devlake`:
```shell
helm repo add devlake https://apache.github.io/incubator-devlake-helm-chart
helm repo update
-helm install devlake devlake/devlake --version=0.16.1-beta1
+helm install devlake devlake/devlake --version=0.17.0-beta5
```
And visit your devlake from the node port (32001 by default).
http://YOUR-NODE-IP:32001
-#### Tips:
-If you are using Minikube inside your Mac, please use the following command to
forward the port:
+#### Tips:
+
+If you are using minikube inside your mac, please use the following command to
forward the port:
+
```shell
kubectl port-forward service/devlake-ui 30090:4000
```
+
and open another terminal:
+
```shell
kubectl port-forward service/devlake-grafana 30091:3000
```
Then you can visit:
-Config UI URL `http://YOUR-NODE-IP:30090`
-Grafana URL `http://YOUR-NODE-IP:30091`
+config-ui by url `http://YOUR-NODE-IP:30090`
+grafana by url `http://YOUR-NODE-IP:30091`
-### Upgrade
-
-Please note: **Back up your Grafana dashboards** before upgrade if you have
modified/customized any dashboards. You can re-import these dashboards to
Grafana after the upgrade.
+### Update
```shell
helm repo update
-helm upgrade --install devlake devlake/devlake --version=0.17.0-beta4
+helm upgrade --install devlake devlake/devlake --version=0.17.0-beta5
```
-Please check the [upgrade doc](Upgrade.md) for more information.
-
### Uninstall
To uninstall/delete the `devlake` release:
@@ -62,46 +61,50 @@ To uninstall/delete the `devlake` release:
helm uninstall devlake
```
-
## Some example deployments
### Deploy with NodePort
Conditions:
- - IP Address of Kubernetes node: 192.168.0.6
- - Want to visit devlake with port 30000.
+
+- IP Address of Kubernetes node: 192.168.0.6
+- Want to visit devlake with port 30000.
```
helm install devlake devlake/devlake --set service.uiPort=30000
```
-After the deployment, visit devlake at: http://192.168.0.6:30000
+After deployed, visit devlake: http://192.168.0.6:30000
### Deploy with Ingress
Conditions:
- - I have already configured the default ingress for the Kubernetes cluster
- - I want to use http://devlake.example.com for visiting devlake
+
+- I have already configured default ingress for the Kubernetes cluster
+- I want to use http://devlake.example.com for visiting devlake
```
helm install devlake devlake/devlake --set
"ingress.enabled=true,ingress.hostname=devlake.example.com"
```
-After the deployment, visit devlake at: http://devlake.example.com, and
Grafana at http://devlake.example.com/grafana
+After deployed, visit devlake: http://devlake.example.com, and grafana at
http://devlake.example.com/grafana
### Deploy with Ingress (Https)
Conditions:
- - I have already configured ingress(class: nginx) for the Kubernetes cluster,
and the https using 8443 port.
- - I want to use https://devlake-0.example.com:8443 for visiting devlake.
- - The https certificates are generated by letsencrypt.org, and the
certificate and key files: `cert.pem` and `key.pem`
+
+- I have already configured ingress(class: nginx) for the Kubernetes cluster,
and the https using 8443 port.
+- I want to use https://devlake-0.example.com:8443 for visiting devlake.
+- The https certificates are generated by letsencrypt.org, and the certificate
and key files: `cert.pem` and `key.pem`
First, create the secret:
+
```
kubectl create secret tls ssl-certificate --cert cert.pem --key secret.pem
```
Then, deploy the devlake:
+
```
helm install devlake devlake/devlake \
--set
"ingress.enabled=true,ingress.enableHttps=true,ingress.hostname=devlake-0.example.com"
\
@@ -109,70 +112,99 @@ helm install devlake devlake/devlake \
--set "ingress.tlsSecretName=ssl-certificate"
```
-After the deployment, visit devlake at: https://devlake-0.example.com:8443,
and Grafana at https://devlake-0.example.com:8443/grafana
-
+After deployed, visit devlake: https://devlake-0.example.com:8443, and grafana
at https://devlake-0.example.com:8443/grafana
## Parameters
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 |
-| 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 |
-| 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 ingress is enabled
| false |
-| service.ingress.enableHttps | If https is enabled
| 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
| mysql |
+| 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 |
+| mysql.extraLabels | extra labels for mysql's
statefulset | {} |
+| mysql.securityContext | pod security context values
| {} |
+| mysql.containerSecurityContext | container security context
values | {} |
+| grafana.image.repository | repository for grafana's image
| apache/devlake-dashboard |
+| grafana.image.pullPolicy | pullPolicy for grafana's image
| Always |
+| grafana.useExternal | If use external grafana server
| false |
+| grafana.externalUrl | external grafana server if use
external | "" |
+| grafana.extraLabels | extra labels for grafana's
statefulset | {} |
+| grafana.securityContext | pod security context values
| {} |
+| grafana.containerSecurityContext | container security context
values | {} |
+| grafana.oauthEnabled | enable oauth for grafana
| false |
+| grafana.oauthConfig | a list of env vars used for
oauth | {} |
+| 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 |
+| lake.extraLabels | extra labels for lake's
statefulset | {} |
+| lake.securityContext | pod security context values
| {} |
+| lake.containerSecurityContext | container security context
values | {} |
+| 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" |
+| ui.basicAuth.useSecret | If use secret instead of
configmap for basic auth | false |
+| ui.basicAuth.autoCreateSecret | If let the helm chart create the
secret | true |
+| ui.basicAuth.secretName | The basic auth secret name
| devlake-auth |
+| ui.extraLabels | extra labels for ui's
statefulset | {} |
+| ui.securityContext | pod security context values
| {} |
+| ui.containerSecurityContext | container security context
values | {} |
+| 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 | 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
| mysql |
+| option.useConnectionDetailsSecret | If use secret instead of
configmap for db connection | false |
+| option.connectionSecretName | The database connection details
secret name | devlake-db-connection |
+| option.autoCreateSecret | If let the helm chart create the
secret | true |
+| awsCognitoAuth.enabled | use AWS cognito for
authentication | false |
+| awsCognitoAuth.awsAuthRegion | aws Cognito auth region
| "" |
+| awsCognitoAuth.awsAuthUserPoolID | aws Cognito user pool ID
| "" |
+| awsCognitoAuth.awsAuthUserPoolWebClientID | aws Cognito web client ID for
the user pool | "" |
## FAQ
-### 1. Can I use a managed cloud database service instead of running database
in Docker?
-
- Yes, you can just set useExternal value to true while deploying devlake with
helm chart. Below we will 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 would like to use an existing instance.
-2. Provide the following 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>;`
-
+
+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.
+
+ a. (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
+ b. 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
@@ -184,8 +216,34 @@ Some useful parameters for the chart, you could also check
them in values.yaml
--set mysql.password=password_4_admin \
--set mysql.database=devlake
```
-
+
+2. Can I use a secret to store the database connection details?
+
+ Yes, to do so, you need to have a secret in your Kubernetes Cluster that
contains the following values:
+
+ - `MYSQL_USER`: The user to connect to your DB.
+ - `MYSQL_PASSWORD`: The password to connect to your DB.
+ - `MYSQL_DATABASE`: The database to connect to your DB.
+ - `MYSQL_ROOT_PASSWORD`: The root password to connect to your DB.
+ - `DB_URL`:
mysql://`username`:`password`@`dbserver`:`port`/`database`?charset=utf8mb4&parseTime=True
+
+ The secret name needs to be the same as the value
`option.connectionSecretName`
+
+3. Can I use an external Grafana instead of running built-in Grafana?
+
+ Yes, the devlake helm chart supports using an external Grafana. You can set
the following values while installing from helm:
+ - `grafana.useExternal`: this should be `true`
+ - `grafana.externalUrl`: use your Grafana's URL, e.g.
`https://grafana.example.com`
+
+ 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 grafana.useExternal=true \
+ --set grafana.externalUrl=https://grafana.example.com
+ ```
## Troubleshooting
-If you run into any problems, please check the
[Troubleshooting](/Troubleshooting/Installation.md) or [create an
issue](https://github.com/apache/incubator-devlake/issues)
+If you run into any problem, please check the
[Troubleshooting](/Troubleshooting/Installation.md) or [create an
issue](https://github.com/apache/incubator-devlake/issues)