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 2022/10/26 12:08:07 UTC

[incubator-devlake-helm-chart] branch main updated: update chart (#39)

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 f2465a6  update chart (#39)
f2465a6 is described below

commit f2465a6870adc329ffcae2c971e99bdce8d55060
Author: Warren Chen <yi...@merico.dev>
AuthorDate: Wed Oct 26 20:08:01 2022 +0800

    update chart (#39)
---
 charts/devlake/README.md                   | 80 +++++++++++++++---------------
 charts/devlake/templates/_helpers.tpl      | 40 ++++++++-------
 charts/devlake/templates/deployments.yaml  | 44 ++++++++--------
 charts/devlake/templates/services.yaml     |  2 +
 charts/devlake/templates/statefulsets.yaml |  1 +
 charts/devlake/values.yaml                 |  1 -
 6 files changed, 87 insertions(+), 81 deletions(-)

diff --git a/charts/devlake/README.md b/charts/devlake/README.md
index deac790..3542420 100644
--- a/charts/devlake/README.md
+++ b/charts/devlake/README.md
@@ -74,44 +74,44 @@ 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.0.26  |
-| mysql.image.pullPolicy  | pullPolicy for mysql'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  |
-| 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  | 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  |
+| 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.26  |
+| mysql.image.pullPolicy  | pullPolicy for mysql'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  |
+| 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  | 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  |
 
diff --git a/charts/devlake/templates/_helpers.tpl b/charts/devlake/templates/_helpers.tpl
index 5167bfd..e786642 100644
--- a/charts/devlake/templates/_helpers.tpl
+++ b/charts/devlake/templates/_helpers.tpl
@@ -1,20 +1,3 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
 {{/*
 Expand the name of the chart.
 */}}
@@ -112,3 +95,26 @@ The ui endpoint
 {{- end }}
 {{- end }}
 {{- end }}
+
+{{/*
+The mysql server
+*/}}
+{{- define "mysql.server" -}}
+{{- if .Values.mysql.useExternal }}
+{{- .Values.mysql.externalServer }}
+{{- else }}
+{{- print (include "devlake.fullname" . ) "-mysql" }}
+{{- end }}
+{{- end }}
+
+
+{{/*
+The mysql port
+*/}}
+{{- define "mysql.port" -}}
+{{- if .Values.mysql.useExternal }}
+{{- .Values.mysql.externalPort }}
+{{- else }}
+{{- 3306 }}
+{{- end }}
+{{- end }}
diff --git a/charts/devlake/templates/deployments.yaml b/charts/devlake/templates/deployments.yaml
index 62c0db5..b3ac074 100644
--- a/charts/devlake/templates/deployments.yaml
+++ b/charts/devlake/templates/deployments.yaml
@@ -42,9 +42,11 @@ spec:
             - 'sh'
             - '-c'
             - |
-              until nc -z -w 2 {{ include "devlake.fullname" . }}-mysql 3306 && echo mysql is ready ; do
+              until nc -z -w 2 {{ include "mysql.server" . }} {{ include "mysql.port" . }} ; do
+                echo wait for mysql ready ...
                 sleep 2
               done
+              echo mysql is ready
       containers:
         - name: grafana
           image: "{{ .Values.grafana.image.repository }}:{{ .Values.grafana.image.tag }}"
@@ -67,16 +69,16 @@ spec:
             - configMapRef:
                 name: {{ include "devlake.fullname" . }}-config
           env:
-            - name: GF_SERVER_ROOT_URL
-              value: "%(protocol)s://%(domain)s:%(http_port)s/grafana/"
-            - name: MYSQL_URL
-              value: {{ include "devlake.fullname" . }}-mysql:3306
+              - name: GF_SERVER_ROOT_URL
+                value: "%(protocol)s://%(domain)s:%(http_port)s/grafana/"
+                - name: MYSQL_URL
+                  value: {{ include "mysql.server" . }}:{{ include "mysql.port" . }}
       volumes:
-        {{- if ne .Values.option.localtime "" }}
-        - name: {{ include "devlake.fullname" . }}-grafana-localtime
-          hostPath:
-            path: {{ .Values.option.localtime }}
-            type: File
+          {{- if ne .Values.option.localtime "" }}
+            - name: {{ include "devlake.fullname" . }}-grafana-localtime
+            hostPath:
+              path: {{ .Values.option.localtime }}
+              type: File
         {{- end }}
 
 ---
@@ -108,20 +110,16 @@ spec:
             - configMapRef:
                 name: {{ include "devlake.fullname" . }}-config
           env:
-            - name: DEVLAKE_ENDPOINT
-              # TODO: remove hardcoded `cluster.local`
-              value: {{ include "devlake.fullname" . }}-lake.{{ .Release.Namespace }}.svc.cluster.local:8080
-            - name: GRAFANA_ENDPOINT
-              value: {{ include "devlake.fullname" . }}-grafana.{{ .Release.Namespace }}.svc.cluster.local:3000
-            # - name: ADMIN_USER
-            #   value: "admin"
-            # - name: ADMIN_PASS
-            #   value: "admin"
+              - name: DEVLAKE_ENDPOINT
+            # TODO: remove hardcoded `cluster.local`
+                value: {{ include "devlake.fullname" . }}-lake.{{ .Release.Namespace }}.svc.cluster.local:8080
+                - name: GRAFANA_ENDPOINT
+                value: {{ include "devlake.fullname" . }}-grafana.{{ .Release.Namespace }}.svc.cluster.local:3000
           volumeMounts:
-            {{- if ne .Values.option.localtime "" }}
-            - name: {{ include "devlake.fullname" . }}-ui-localtime
-              mountPath: /etc/localtime
-              readOnly: true
+              {{- if ne .Values.option.localtime "" }}
+                - name: {{ include "devlake.fullname" . }}-ui-localtime
+                mountPath: /etc/localtime
+                readOnly: true
             {{- end }}
       volumes:
         {{- if ne .Values.option.localtime "" }}
diff --git a/charts/devlake/templates/services.yaml b/charts/devlake/templates/services.yaml
index 8921f23..73e9662 100644
--- a/charts/devlake/templates/services.yaml
+++ b/charts/devlake/templates/services.yaml
@@ -16,6 +16,7 @@
 #
 # mysql services
 ---
+{{- if not .Values.mysql.useExternal }}
 apiVersion: v1
 kind: Service
 metadata:
@@ -31,6 +32,7 @@ spec:
       name: mysql
       port: 3306
       targetPort: 3306
+{{- end }}
 
 # grafana services
 ---
diff --git a/charts/devlake/templates/statefulsets.yaml b/charts/devlake/templates/statefulsets.yaml
index cbb6860..74a7f82 100644
--- a/charts/devlake/templates/statefulsets.yaml
+++ b/charts/devlake/templates/statefulsets.yaml
@@ -16,6 +16,7 @@
 #
 ---
 # mysql statefulset
+{{- if not .Values.mysql.useExternal }}
 apiVersion: apps/v1
 kind: StatefulSet
 metadata:
diff --git a/charts/devlake/values.yaml b/charts/devlake/values.yaml
index 09d2ad1..c8c91cf 100644
--- a/charts/devlake/values.yaml
+++ b/charts/devlake/values.yaml
@@ -21,7 +21,6 @@ replicaCount: 1
 mysql:
   # if use external mysql server, please set true
   #   by default using false, chart will create a single mysql instance
-  # TODO(matrixji): add support external mysql server
   useExternal: false
 
   # the external mysql server address