feat: support oracle (#21)
Signed-off-by: Bird <aflybird0@gmail.com>
Signed-off-by: Bird <aflybird0@gmail.com>
diff --git a/README.md b/README.md
index 00c7532..ec42681 100644
--- a/README.md
+++ b/README.md
@@ -4,10 +4,10 @@
[Apache/ShenYu](https://shenyu.apache.org/docs/index/) is an asynchronous, high-performance, cross-language, responsive API gateway.
-Helm installation documentation is available on the official website [Helm Deployment](https://shenyu.apache.org/docs/deployment/deployment-helm/).
+Helm installation documentation is available on the official website [Helm Deployment](https://shenyu.apache.org/helm/index/).
## 简体中文
[Apache/ShenYu](https://shenyu.apache.org/zh/docs/index) 是一个异步的,高性能的,跨语言的,响应式的 API 网关。
-Helm 安装文档详见官网 [Helm 部署](https://shenyu.apache.org/zh/docs/deployment/deployment-helm)。
+Helm 安装文档详见官网 [Helm 部署](https://shenyu.apache.org/zh/helm/index)。
diff --git a/charts/shenyu/Chart.yaml b/charts/shenyu/Chart.yaml
index 193ac4a..b6a33a7 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.4.0
+version: 0.5.0
appVersion: "2.5.0"
icon: https://shenyu.apache.org/img/logo.png
maintainers:
diff --git a/charts/shenyu/README.md b/charts/shenyu/README.md
index 00c7532..ec42681 100644
--- a/charts/shenyu/README.md
+++ b/charts/shenyu/README.md
@@ -4,10 +4,10 @@
[Apache/ShenYu](https://shenyu.apache.org/docs/index/) is an asynchronous, high-performance, cross-language, responsive API gateway.
-Helm installation documentation is available on the official website [Helm Deployment](https://shenyu.apache.org/docs/deployment/deployment-helm/).
+Helm installation documentation is available on the official website [Helm Deployment](https://shenyu.apache.org/helm/index/).
## 简体中文
[Apache/ShenYu](https://shenyu.apache.org/zh/docs/index) 是一个异步的,高性能的,跨语言的,响应式的 API 网关。
-Helm 安装文档详见官网 [Helm 部署](https://shenyu.apache.org/zh/docs/deployment/deployment-helm)。
+Helm 安装文档详见官网 [Helm 部署](https://shenyu.apache.org/zh/helm/index)。
diff --git a/charts/shenyu/templates/ConfigMap.yaml b/charts/shenyu/templates/ConfigMap.yaml
index e798d32..3c3766e 100644
--- a/charts/shenyu/templates/ConfigMap.yaml
+++ b/charts/shenyu/templates/ConfigMap.yaml
@@ -35,7 +35,7 @@
init_enable: {{ .Values.dataSource.initEnabled }}
spring:
datasource:
- url: jdbc:mysql://{{ template "common.names.fullname" . }}-mysql.{{.Release.Namespace}}.svc.cluster.local:3306/shenyu?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=convertToNull
+ 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
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 }}
@@ -49,7 +49,7 @@
spring:
datasource:
- url: jdbc:postgresql://{{ template "common.names.fullname" . }}-pg.{{.Release.Namespace}}.svc.cluster.local:5432/shenyu
+ url: jdbc:postgresql://{{ template "common.names.fullname" . }}-pg.{{.Release.Namespace}}.svc.cluster.local:5432/{{ .Values.dataSource.pg.database | default "shenyu" }}
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 }}
@@ -66,7 +66,7 @@
spring:
datasource:
- url: jdbc:oracle:thin:@{{ template "common.names.fullname" . }}-oracle.{{.Release.Namespace}}.svc.cluster.local:1521/shenyu
+ url: jdbc:oracle:thin:@{{ template "common.names.fullname" . }}-oracle.{{.Release.Namespace}}.svc.cluster.local:1521/{{ .Values.dataSource.oracle.serviceName | default "shenyu" }}
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/shenyu-admin-deployment.yaml b/charts/shenyu/templates/shenyu-admin-deployment.yaml
index 2f793c3..d90ce27 100644
--- a/charts/shenyu/templates/shenyu-admin-deployment.yaml
+++ b/charts/shenyu/templates/shenyu-admin-deployment.yaml
@@ -24,57 +24,58 @@
"app.kubernetes.io/instance": "{{ .Release.Name }}"
spec:
{{/* check if database type is valid */}}
- {{- $dataSourceTypeValid := has .Values.dataSource.active (list "h2" "mysql" "pg") -}}
- {{- if not $dataSourceTypeValid -}}{{- required "Invalid `.dataSource.active`. Must be one of h2, mysql, pg" "" -}}{{- end}}
+ {{- $dataSourceTypeValid := has .Values.dataSource.active (list "h2" "mysql" "pg" "oracle") -}}
+ {{- if not $dataSourceTypeValid -}}{{- required "Invalid `.dataSource.active`. Must be one of 'h2', 'mysql', 'pg', 'oracle'" -}}{{- end}}
{{- if eq .Values.dataSource.active "mysql"}}
{{- $mysqlConnectorVersion := (required "once `dataSource.active` is set to 'mysql', `dataSource.mysql.connectorVersion` should not be empty" .Values.dataSource.mysql.connectorVersion)}}
+ {{- $mysqlJarName := (print "mysql-connector-java-" $mysqlConnectorVersion ".jar") -}}
initContainers:
- name: download-mysql-jar
image: busybox:1.35.0
command:
- "sh"
- "-c"
- - "wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/{{$mysqlConnectorVersion}}/mysql-connector-java-{{$mysqlConnectorVersion}}.jar;
- wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/{{$mysqlConnectorVersion}}/mysql-connector-java-{{$mysqlConnectorVersion}}.jar.md5;
- if [ $(md5sum mysql-connector-java-{{$mysqlConnectorVersion}}.jar | cut -d ' ' -f1) = $(cat mysql-connector-java-{{$mysqlConnectorVersion}}.jar.md5) ];
+ - "wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/{{$mysqlConnectorVersion}}/{{$mysqlJarName}};
+ wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/{{$mysqlConnectorVersion}}/{{$mysqlJarName}}.md5;
+ if [ $(md5sum {{$mysqlJarName}} | cut -d ' ' -f1) = $(cat {{$mysqlJarName}}.md5) ];
then echo success;
- else echo failed;exit 1;fi;mv /mysql-connector-java-{{$mysqlConnectorVersion}}.jar /opt/shenyu-admin/ext-lib/mysql-connector.jar"
+ else echo failed;exit 1;fi;mv /{{$mysqlJarName}} /opt/shenyu-admin/ext-lib/mysql-connector.jar"
volumeMounts:
- name: mysql-connector-volume
mountPath: /opt/shenyu-admin/ext-lib
{{- end }}
{{- if eq .Values.dataSource.active "pg"}}
{{- $pgConnectorVersion := (required "once `dataSource.active` is set to 'pg', `dataSource.pg.connectorVersion` should not be empty" .Values.dataSource.pg.connectorVersion)}}
+ {{- $pgJarName := (print "postgresql-" $pgConnectorVersion ".jar") -}}
initContainers:
- name: download-pg-jar
image: busybox:1.35.0
command:
- "sh"
- "-c"
- - "wget https://repo1.maven.org/maven2/org/postgresql/postgresql/{{$pgConnectorVersion}}/postgresql-{{$pgConnectorVersion}}.jar;
- wget https://repo1.maven.org/maven2/org/postgresql/postgresql/{{$pgConnectorVersion}}/postgresql-{{$pgConnectorVersion}}.jar.md5;
- if [ $(md5sum postgresql-{{$pgConnectorVersion}}.jar | cut -d ' ' -f1) = $(cat postgresql-{{$pgConnectorVersion}}.jar.md5) ];
+ - "wget https://repo1.maven.org/maven2/org/postgresql/postgresql/{{$pgConnectorVersion}}/{{$pgJarName}};
+ wget https://repo1.maven.org/maven2/org/postgresql/postgresql/{{$pgConnectorVersion}}/{{$pgJarName}}.md5;
+ if [ $(md5sum {{$pgJarName}} | cut -d ' ' -f1) = $(cat {{$pgJarName}}.md5) ];
then echo success;
- else echo failed;exit 1;fi;mv /postgresql-{{$pgConnectorVersion}}.jar /opt/shenyu-admin/ext-lib/postgresql-connector.jar"
+ else echo failed;exit 1;fi;mv /{{$pgJarName}} /opt/shenyu-admin/ext-lib/postgresql-connector.jar"
volumeMounts:
- name: pg-connector-volume
mountPath: /opt/shenyu-admin/ext-lib
{{- end }}
- # same as oracle
{{- if eq .Values.dataSource.active "oracle"}}
{{- $oracleConnectorVersion := (required "once `dataSource.active` is set to 'oracle', `dataSource.oracle.connectorVersion` should not be empty" .Values.dataSource.oracle.connectorVersion)}}
+ {{- $oracleJarName := (print "ojdbc8-" $oracleConnectorVersion ".jar") -}}
initContainers:
- name: download-oracle-jar
image: busybox:1.35.0
command:
- # fixme: oracle jdbc driver is not free, so we can't download it from maven central, we need to download it from oracle official website
- "sh"
- "-c"
- - "wget https://repo1.maven.org/maven2/com/oracle/ojdbc/ojdbc8/{{$oracleConnectorVersion}}/ojdbc8-{{$oracleConnectorVersion}}.jar;
- wget https://repo1.maven.org/maven2/com/oracle/ojdbc/ojdbc8/{{$oracleConnectorVersion}}/ojdbc8-{{$oracleConnectorVersion}}.jar.md5;
- if [ $(md5sum ojdbc8-{{$oracleConnectorVersion}}.jar | cut -d ' ' -f1) = $(cat ojdbc8-{{$oracleConnectorVersion}}.jar.md5) ];
+ - "wget https://repo1.maven.org/maven2/com/oracle/ojdbc/ojdbc8/{{$oracleConnectorVersion}}/{{$oracleJarName}};
+ wget https://repo1.maven.org/maven2/com/oracle/ojdbc/ojdbc8/{{$oracleConnectorVersion}}/{{$oracleJarName}}.md5;
+ if [ $(md5sum {{$oracleJarName}} | cut -d ' ' -f1) = $(cat {{$oracleJarName}}.md5) ];
then echo success;
- else echo failed;exit 1;fi;mv /ojdbc8-{{$oracleConnectorVersion}}.jar /opt/shenyu-admin/ext-lib/oracle-connector.jar"
+ else echo failed;exit 1;fi;mv /{{$oracleJarName}} /opt/shenyu-admin/ext-lib/oracle-connector.jar"
volumeMounts:
- name: oracle-connector-volume
mountPath: /opt/shenyu-admin/ext-lib
diff --git a/charts/shenyu/values.yaml b/charts/shenyu/values.yaml
index d2dbcbd..9bf77cf 100644
--- a/charts/shenyu/values.yaml
+++ b/charts/shenyu/values.yaml
@@ -40,7 +40,7 @@
#################################################
dataSource:
- # options: [h2, mysql, pg]
+ # options: [h2, mysql, pg, oracle]
active: h2
# init database and tables
initEnabled: true
@@ -52,6 +52,7 @@
port: 3306
username: root
password:
+ database: shenyu
# mysql driver class name
# mysql5 : com.mysql.jdbc.Driver
# mysql6-8 : com.mysql.cj.jdbc.Driver
@@ -62,6 +63,7 @@
port: 5432
username: postgres
password:
+ database: shenyu
# pg driver class name
driverClass: org.postgresql.Driver
connectorVersion: 42.5.0
@@ -70,6 +72,7 @@
port: 1521
username: root
password:
+ serviceName: shenyu
# oracle driver class name
driverClass: oracle.jdbc.OracleDriver
connectorVersion: 19.3.0.0