You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@devlake.apache.org by wa...@apache.org on 2023/02/27 04:29:11 UTC
[incubator-devlake-helm-chart] branch main updated: docs: refine setup guide (#78)
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-helm-chart.git
The following commit(s) were added to refs/heads/main by this push:
new e6ca440 docs: refine setup guide (#78)
e6ca440 is described below
commit e6ca44075e97725a4e910220f32639271b853a27
Author: Ji Bin <ma...@live.com>
AuthorDate: Mon Feb 27 12:29:05 2023 +0800
docs: refine setup guide (#78)
- remove README.md in chart
- add HelmSetup.md which align with in website repo
---
.github/workflows/deploy-test.yml | 1 +
.github/workflows/lint-chart-and-app-versions.yml | 1 +
.github/workflows/release.yaml | 1 +
HelmSetup.md | 198 ++++++++++++++++++++++
README.md | 4 +
charts/devlake/README.md | 131 --------------
6 files changed, 205 insertions(+), 131 deletions(-)
diff --git a/.github/workflows/deploy-test.yml b/.github/workflows/deploy-test.yml
index 9d83e64..36d77dc 100644
--- a/.github/workflows/deploy-test.yml
+++ b/.github/workflows/deploy-test.yml
@@ -29,6 +29,7 @@ on:
paths:
- charts/devlake/**
- .github/workflows/deploy-test.yml
+ - '!**.md'
jobs:
deploy-with-helm:
diff --git a/.github/workflows/lint-chart-and-app-versions.yml b/.github/workflows/lint-chart-and-app-versions.yml
index 4a78521..ec28be3 100644
--- a/.github/workflows/lint-chart-and-app-versions.yml
+++ b/.github/workflows/lint-chart-and-app-versions.yml
@@ -5,6 +5,7 @@ on:
- main
paths:
- charts/**
+ - '!**.md'
jobs:
check_chart_version_matches_app_version:
name: chart version matches app version
diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml
index 3a496ab..de9d994 100644
--- a/.github/workflows/release.yaml
+++ b/.github/workflows/release.yaml
@@ -6,6 +6,7 @@ on:
- main
paths:
- charts/**
+ - '!**.md'
jobs:
release:
runs-on: ubuntu-latest
diff --git a/HelmSetup.md b/HelmSetup.md
new file mode 100644
index 0000000..69539fb
--- /dev/null
+++ b/HelmSetup.md
@@ -0,0 +1,198 @@
+---
+title: "Install via Helm"
+description: >
+ The steps to install Apache DevLake via Helm for Kubernetes
+sidebar_position: 2
+---
+
+## Prerequisites
+
+- 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 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.15.1-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:
+```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 by url `http://YOUR-NODE-IP:30090`
+grafana by url `http://YOUR-NODE-IP:30091`
+
+### Update
+
+```shell
+helm repo update
+helm upgrade --install devlake devlake/devlake --version=0.15.1-beta5
+```
+
+### Uninstall
+
+To uninstall/delete the `devlake` release:
+
+```shell
+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.
+
+```
+helm install devlake devlake/devlake --set service.uiPort=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
+
+```
+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
+
+### 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`
+
+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" \
+ --set "ingress.className=nginx,ingress.httpsPort=8443" \
+ --set "ingress.tlsSecretName=ssl-certificate"
+```
+
+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 |
+| 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
+
+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/README.md b/README.md
index 7c7760e..59f4b0c 100644
--- a/README.md
+++ b/README.md
@@ -71,3 +71,7 @@ https://github.com/apache/incubator-devlake/pulls?q=is%3Apr+helm+is%3Aclosed
## Original pr in apache/incubator-devlake
https://github.com/apache/incubator-devlake/pulls?q=is%3Apr+helm+is%3Aclosed
+
+
+## More
+You could find more examples and details in [HelmSetup.md](HelmSetup.md)
\ No newline at end of file
diff --git a/charts/devlake/README.md b/charts/devlake/README.md
deleted file mode 100644
index de98b3c..0000000
--- a/charts/devlake/README.md
+++ /dev/null
@@ -1,131 +0,0 @@
-# Deploy devlake with helm
-
-## Prerequisites
-
-- Helm >= 3.6.0
-- Kubernetes >= 1.19.0
-
-
-## Quick Install
-
-clone the code
-```
-helm install devlake charts/devlake
-```
-
-And visit your devlake Config-UI from the nodePort (32001 by default) and Grafana Dashboard from the nodePort ( 32002 by default.)
-
-http://YOUR-NODE-IP:32001 for Config-UI
-http://YOUR-NODE-IP:32002 for Grafana Dashboard
-
-Note : You must provide the connection to the port through the Inbound rules of the cluster. You may found it in the cluster security group or the cluster firewall.
-
-
-## Some example deployments
-
-### Deploy with NodePort
-
-Conditions:
- - IP Address of Kubernetes node: 192.168.0.6
- - Want to visit devlake with port 30000.
-
-```
-helm install devlake . --set service.uiPort=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
-
-```
-helm install 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
-
-### 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`
-
-First, create the secret:
-```
-kubectl create secret tls ssl-certificate --cert cert.pem --key secret.pem
-```
-
-Then, deploy the devlake:
-```
-helm install 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"
-```
-
-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 |
-| 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.0.31 |
-| 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 | mericodev/grafana |
-| 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 | mericodev/lake |
-| lake.image.tag | image tag for lake's image | latest |
-| 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 | mericodev/config-ui |
-| ui.image.tag | image tag for ui's image | latest |
-| 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 |