This is an automated email from the ASF dual-hosted git repository.
hez 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 d9cc870f docs: updated k8s deployment / added RDS doc (#132)
d9cc870f is described below
commit d9cc870ff45e8f48df2db410e1651d81ee9d065b
Author: Klesh Wong <[email protected]>
AuthorDate: Fri Jul 29 12:40:02 2022 +0800
docs: updated k8s deployment / added RDS doc (#132)
* docs: updated k8s deployment / added RDS doc
* fix: added GF_SERVER_ROOT_URL
* docs: update k8s setup
Co-authored-by: Hezheng Yin <[email protected]>
---
docs/QuickStart/KubernetesSetup.md | 54 ++++++++++++++++++++++++--------------
1 file changed, 35 insertions(+), 19 deletions(-)
diff --git a/docs/QuickStart/KubernetesSetup.md
b/docs/QuickStart/KubernetesSetup.md
index 692639fc..fa298cdc 100644
--- a/docs/QuickStart/KubernetesSetup.md
+++ b/docs/QuickStart/KubernetesSetup.md
@@ -5,29 +5,45 @@ description: >
sidebar_position: 2
---
+We provide a sample
[k8s-deploy.yaml](https://github.com/apache/incubator-devlake/blob/main/k8s-deploy.yaml)
to help deploy DevLake to Kubernetes
-We provide a sample
[k8s-deploy.yaml](https://github.com/apache/incubator-devlake/blob/main/k8s-deploy.yaml)
for users interested in deploying Apache DevLake on a k8s cluster.
-
-[k8s-deploy.yaml](https://github.com/apache/incubator-devlake/blob/main/k8s-deploy.yaml)
will create a namespace `devlake` on your k8s cluster, and use `nodePort
30004` for `config-ui`, `nodePort 30002` for `grafana` dashboards. If you
would like to use certain version of Apache DevLake, please update the image
tag of `grafana`, `devlake` and `config-ui` services to specify versions like
`v0.10.1`.
+[k8s-deploy.yaml](https://github.com/apache/incubator-devlake/blob/main/k8s-deploy.yaml)
will create a namespace `devlake` on your k8s cluster, and use `nodePort
30004` for `config-ui`, `nodePort 30002` for `grafana` dashboards. If you
would like to use a specific version of Apache DevLake, please update the image
tag of `grafana`, `devlake` and `config-ui` deployments.
## Step-by-step guide
-1. Download
[k8s-deploy.yaml](https://github.com/apache/incubator-devlake/blob/main/k8s-deploy.yaml)
to local machine
-2. Some key points:
- - `config-ui` deployment:
- * `GRAFANA_ENDPOINT`: FQDN of grafana service which can be reached from
user's browser
- * `DEVLAKE_ENDPOINT`: FQDN of devlake service which can be reached within
k8s cluster, normally you don't need to change it unless namespace was changed
+1. Download
[k8s-deploy.yaml](https://github.com/apache/incubator-devlake/blob/main/k8s-deploy.yaml)
+2. Customize the settings (`devlake-config` config map):
+ - Settings shared between `grafana` and `mysql`
+ * `MYSQL_ROOT_PASSWORD`: set root password for `mysql`
+ * `MYSQL_USER`: shared between `mysql` and `grafana`
+ * `MYSQL_PASSWORD`: shared between `mysql` and `grafana`
+ * `MYSQL_DATABASE`: shared between `mysql` and `grafana`
+ - Settings used by `grafana`
+ * `MYSQL_URL`: set MySQL URL for `grafana` in `$HOST:$PORT` format
+ * `GF_SERVER_ROOT_URL`: Public URL to the `grafana`
+ - Settings used by `config-ui`:
+ * `GRAFANA_ENDPOINT`: FQDN of grafana which can be reached within k8s
cluster, normally you don't need to change it unless namespace was changed
+ * `DEVLAKE_ENDPOINT`: FQDN of devlake which can be reached within k8s
cluster, normally you don't need to change it unless namespace was changed
* `ADMIN_USER`/`ADMIN_PASS`: Not required, but highly recommended
- - `devlake-config` config map:
- * `MYSQL_USER`: shared between `mysql` and `grafana` service
- * `MYSQL_PASSWORD`: shared between `mysql` and `grafana` service
- * `MYSQL_DATABASE`: shared between `mysql` and `grafana` service
- * `MYSQL_ROOT_PASSWORD`: set root password for `mysql` service
- - `devlake` deployment:
+ - Settings used by `devlake`:
* `DB_URL`: update this value if `MYSQL_USER`, `MYSQL_PASSWORD` or
`MYSQL_DATABASE` were changed
3. The `devlake` deployment store its configuration in `/app/.env`. In our
sample yaml, we use `hostPath` volume, so please make sure directory
`/var/lib/devlake` exists on your k8s workers, or employ other techniques to
persist `/app/.env` file. Please do NOT mount the entire `/app` directory,
because plugins are located in `/app/bin` folder.
-4. Finally, execute the following command, Apache DevLake should be up and
running:
- ```sh
- kubectl apply -f k8s-deploy.yaml
- ```
-<br/><br/><br/>
+4. Finally, execute the following command and DevLake should be up and running:
+ ```sh
+ kubectl apply -f k8s-deploy.yaml
+ ```
+
+
+## FAQ
+
+- Can I use a managed Cloud database service instead of running database in
docker?
+ Yes, it only takes a few changes in the sample yaml file to make it happen.
Below we'll use MySQL on AWS RDS as an example.
+ 0. (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
+ 1. Remove the `mysql` deployment and service sections from `k8s-deploy.yaml`
+ 2. Update `devlake-config` configmap according to your RDS instance setup:
+ * `MYSQL_ROOT_PASSWORD`: remove this line
+ * `MYSQL_USER`: use your RDS instance's master username
+ * `MYSQL_PASSWORD`: use your RDS instance's password
+ * `MYSQL_DATABASE`: use your RDS instance's DB name, you may need to
create a database first with `CREATE DATABASE <DB name>;`
+ * `MYSQL_URL`: set this for `grafana` in `$HOST:$PORT` format, where $HOST
and $PORT should be your RDS instance's endpoint and port respectively
+ * `DB_URL`: update the connection string with your RDS instance's info for
`devlake`