feat: remove svc/endpoint of datasource and use bare ip:port && use urlOverride to fully custom jdbc url (#30)
* feat: remove svc/endpoint of datasource and use bare ip:port
Signed-off-by: Bird <aflybird0@gmail.com>
* feat: use urlOverride to fully custom jdbc url
Signed-off-by: Bird <aflybird0@gmail.com>
---------
Signed-off-by: Bird <aflybird0@gmail.com>
diff --git a/charts/shenyu/Chart.yaml b/charts/shenyu/Chart.yaml
index ea0d050..64b3dc3 100644
--- a/charts/shenyu/Chart.yaml
+++ b/charts/shenyu/Chart.yaml
@@ -2,7 +2,7 @@
name: shenyu
description: Helm Chart for deploying Apache ShenYu in Kubernetes
type: application
-version: 0.6.0
+version: 0.6.1
appVersion: "2.5.1"
icon: https://shenyu.apache.org/img/logo.png
maintainers:
diff --git a/charts/shenyu/templates/ConfigMap.yaml b/charts/shenyu/templates/ConfigMap.yaml
index 9dd59cd..cfcc946 100644
--- a/charts/shenyu/templates/ConfigMap.yaml
+++ b/charts/shenyu/templates/ConfigMap.yaml
@@ -25,7 +25,7 @@
init_enable: {{ .Values.dataSource.initEnabled }}
spring:
datasource:
- url: jdbc:h2:mem:~/shenyu;DB_CLOSE_DELAY=-1;MODE=MySQL;
+ url: {{ template "shenyu.h2.url" . }}
username: {{ required ".dataSource.h2.username is required" .Values.dataSource.h2.username }}
password: {{ required ".dataSource.h2.password is required" .Values.dataSource.h2.password }}
driver-class-name: org.h2.Driver
@@ -38,7 +38,7 @@
init_enable: {{ .Values.dataSource.initEnabled }}
spring:
datasource:
- url: jdbc:mysql://{{ template "common.names.fullname" . }}-mysql.{{.Release.Namespace}}.svc.cluster.local:3306/{{ required "" .Values.dataSource.mysql.database | default "shenyu" }}?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=convertToNull
+ url: {{ template "shenyu.mysql.url" . }}
username: {{ required ".dataSource.mysql.username is required" .Values.dataSource.mysql.username }}
password: {{ required "`dataSource.mysql.password` is required" .Values.dataSource.mysql.password }}
driver-class-name: {{ .Values.dataSource.mysql.driverClass }}
@@ -52,7 +52,7 @@
spring:
datasource:
- url: jdbc:postgresql://{{ template "common.names.fullname" . }}-pg.{{.Release.Namespace}}.svc.cluster.local:5432/{{ .Values.dataSource.pg.database | default "shenyu" }}
+ url: {{ template "shenyu.pg.url" . }}
username: {{ required ".dataSource.pg.username is required" .Values.dataSource.pg.username }}
password: {{ required "`dataSource.pg.password` is required" .Values.dataSource.pg.password }}
driver-class-name: {{ .Values.dataSource.pg.driverClass }}
@@ -69,7 +69,7 @@
spring:
datasource:
- url: jdbc:oracle:thin:@{{ template "common.names.fullname" . }}-oracle.{{.Release.Namespace}}.svc.cluster.local:1521/{{ .Values.dataSource.oracle.serviceName | default "shenyu" }}
+ url: {{ template "shenyu.oracle.url" . }}
username: {{ required ".dataSource.oracle.username is required" .Values.dataSource.oracle.username }}
password: {{ required "`dataSource.oracle.password` is required" .Values.dataSource.oracle.password }}
driver-class-name: oracle.jdbc.OracleDriver
diff --git a/charts/shenyu/templates/_helpers.tpl b/charts/shenyu/templates/_helpers.tpl
index e69de29..6a9e01e 100644
--- a/charts/shenyu/templates/_helpers.tpl
+++ b/charts/shenyu/templates/_helpers.tpl
@@ -0,0 +1,33 @@
+{{- define "shenyu.h2.url" }}
+ {{- .Values.dataSource.h2.url | default "jdbc:h2:mem:~/shenyu;DB_CLOSE_DELAY=-1;MODE=MySQL;" }}
+{{- end -}}
+
+{{- define "shenyu.mysql.url" -}}
+{{- with .Values.dataSource.mysql -}}
+ {{- if .urlOverride -}}
+ {{- .urlOverride | quote -}}
+ {{- else -}}
+ jdbc:mysql://{{ required ".dataSource.mysql.ip is required" .ip }}:{{ .port }}/{{ required "" .database | default "shenyu" }}?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=convertToNull
+ {{- end }}
+{{- end }}
+{{- end -}}
+
+{{- define "shenyu.pg.url" -}}
+{{- with .Values.dataSource.pg -}}
+ {{- if .urlOverride -}}
+ {{- .urlOverride -}}
+ {{- else -}}
+ jdbc:postgresql://{{ .ip }}:{{ .port }}/{{ .database | default "shenyu" }}
+ {{- end }}
+{{- end }}
+{{- end -}}
+
+{{- define "shenyu.oracle.url" -}}
+{{- with .Values.dataSource.oracle -}}
+ {{- if .urlOverride -}}
+ {{- .urlOverride -}}
+ {{- else -}}
+ jdbc:oracle:thin:@{{ .ip }}:{{ .port }}/{{ .serviceName | default "shenyu" }}
+ {{- end }}
+{{- end }}
+{{- end -}}
diff --git a/charts/shenyu/templates/shenyu-datasource.yaml b/charts/shenyu/templates/shenyu-datasource.yaml
deleted file mode 100644
index 605c065..0000000
--- a/charts/shenyu/templates/shenyu-datasource.yaml
+++ /dev/null
@@ -1,84 +0,0 @@
-{{- if .Values.admin.enabled -}}
-{{ if eq .Values.dataSource.active "mysql" -}}
-############# MySQL Begin #############
-kind: Service
-apiVersion: v1
-metadata:
- name: {{ template "common.names.fullname" . }}-mysql
- namespace: {{ .Release.Namespace }}
-spec:
- ports:
- - port: 3306
- name: mysql
- targetPort: {{ required "database.mysql.port is required" .Values.dataSource.mysql.port }}
----
-kind: Endpoints
-apiVersion: v1
-metadata:
- name: {{ template "common.names.fullname" . }}-mysql
- namespace: {{ .Release.Namespace }}
-subsets:
-- addresses:
- - ip: {{ required "database.mysql.ip is required" .Values.dataSource.mysql.ip }}
- ports:
- - port: {{ required "database.mysql.port is required" .Values.dataSource.mysql.port }}
- name: mysql
-{{ end -}}
-
----
-
-{{ if eq .Values.dataSource.active "pg" -}}
-############# PostgreSQL Begin #############
-kind: Service
-apiVersion: v1
-metadata:
- name: {{ template "common.names.fullname" . }}-pg
- namespace: {{ .Release.Namespace }}
-spec:
- ports:
- - port: 5432
- name: pg
- targetPort: {{ required "database.pg.port is required" .Values.dataSource.pg.port }}
----
-kind: Endpoints
-apiVersion: v1
-metadata:
- name: {{ template "common.names.fullname" . }}-pg
- namespace: {{ .Release.Namespace }}
-subsets:
- - addresses:
- - ip: {{ required "database.pg.ip is required" .Values.dataSource.pg.ip }}
- ports:
- - port: {{ required "database.pg.port is required" .Values.dataSource.pg.port }}
- name: pg
-{{ end -}}
-
----
-
-{{ if eq .Values.dataSource.active "oracle" -}}
-############# Oracle Begin #############
-kind: Service
-apiVersion: v1
-metadata:
- name: {{ template "common.names.fullname" . }}-oracle
- namespace: {{ .Release.Namespace }}
-spec:
- ports:
- - port: 1521
- name: oracle
- targetPort: {{ required "database.oracle.port is required" .Values.dataSource.oracle.port }}
----
-kind: Endpoints
-apiVersion: v1
-metadata:
- name: {{ template "common.names.fullname" . }}-oracle
- namespace: {{ .Release.Namespace }}
-subsets:
-- addresses:
- - ip: {{ required "database.oracle.ip is required" .Values.dataSource.oracle.ip }}
- ports:
- - port: {{ required "database.oracle.port is required" .Values.dataSource.oracle.port }}
- name: oracle
-{{ end -}}
-
-{{- end -}}
diff --git a/charts/shenyu/values.yaml b/charts/shenyu/values.yaml
index 2aadd58..a128001 100644
--- a/charts/shenyu/values.yaml
+++ b/charts/shenyu/values.yaml
@@ -96,9 +96,13 @@
# init database and tables
initEnabled: true
h2:
+ # use custom datasource url, default is jdbc:h2:mem:~/shenyu;DB_CLOSE_DELAY=-1;MODE=MySQL;
+ url: ""
username: sa
password: sa
mysql:
+ # use custom datasource url and ignore other configs, the format is jdbc:mysql://xxxxxxx
+ urlOverride: ""
ip:
port: 3306
username: root
@@ -110,6 +114,8 @@
driverClass: com.mysql.cj.jdbc.Driver
connectorVersion: 8.0.23
pg:
+ # use custom datasource url and ignore other configs, the format is jdbc:postgresql://xxxxxxx
+ urlOverride: ""
ip:
port: 5432
username: postgres
@@ -119,6 +125,8 @@
driverClass: org.postgresql.Driver
connectorVersion: 42.5.0
oracle:
+ # use custom datasource url and ignore other configs, the format is jdbc:oracle:xxxxxx
+ urlOverride: ""
ip:
port: 1521
username: root