blob: 2f793c38d227c6dcec4aa120c3a99f0e60603ed8 [file] [log] [blame]
{{- if .Values.admin.enabled -}}
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: {{ .Release.Namespace }}
name: {{ template "common.names.fullname" . }}-admin
labels:
"app.kubernetes.io/name": '{{ template "common.names.name" . }}-admin'
"app.kubernetes.io/managed-by": "{{ .Release.Service }}"
"app.kubernetes.io/component": "shenyu-admin"
"app.kubernetes.io/instance": "{{ .Release.Name }}"
spec:
selector:
matchLabels:
"app.kubernetes.io/component": "shenyu-admin"
"app.kubernetes.io/instance": "{{ .Release.Name }}"
replicas: {{ .Values.replicas }}
template:
metadata:
labels:
"app.kubernetes.io/name": '{{ template "common.names.name" . }}-admin'
"app.kubernetes.io/managed-by": "{{ .Release.Service }}"
"app.kubernetes.io/component": "shenyu-admin"
"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}}
{{- 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)}}
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) ];
then echo success;
else echo failed;exit 1;fi;mv /mysql-connector-java-{{$mysqlConnectorVersion}}.jar /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)}}
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) ];
then echo success;
else echo failed;exit 1;fi;mv /postgresql-{{$pgConnectorVersion}}.jar /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)}}
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) ];
then echo success;
else echo failed;exit 1;fi;mv /ojdbc8-{{$oracleConnectorVersion}}.jar /opt/shenyu-admin/ext-lib/oracle-connector.jar"
volumeMounts:
- name: oracle-connector-volume
mountPath: /opt/shenyu-admin/ext-lib
{{- end }}
containers:
- name: shenyu-admin
image: {{ .Values.admin.image }}:{{ required "A valid .Values.version entry required!" .Values.version }}
imagePullPolicy: Always
ports:
- containerPort: 9095
env:
- name: 'TZ'
value: 'Asia/Beijing'
- name: ADMIN_JVM
value: {{ .Values.admin.javaOpts | quote }}
resources:
{{- toYaml .Values.admin.resources | nindent 12 }}
volumeMounts:
- name: shenyu-admin-config
mountPath: /opt/shenyu-admin/conf/application.yml
subPath: application.yml
{{- if eq .Values.dataSource.active "mysql" }}
- name: mysql-connector-volume
mountPath: /opt/shenyu-admin/ext-lib
- name: shenyu-admin-config
mountPath: /opt/shenyu-admin/conf/application-mysql.yml
subPath: application-mysql.yml
{{- end}}
{{- if eq .Values.dataSource.active "pg" }}
- name: pg-connector-volume
mountPath: /opt/shenyu-admin/ext-lib
- name: shenyu-admin-config
mountPath: /opt/shenyu-admin/conf/application-pg.yml
subPath: application-pg.yml
{{- end}}
{{- if eq .Values.dataSource.active "oracle" }}
- name: oracle-connector-volume
mountPath: /opt/shenyu-admin/ext-lib
- name: shenyu-admin-config
mountPath: /opt/shenyu-admin/conf/application-oracle.yml
subPath: application-oracle.yml
{{- end}}
volumes:
{{- if eq .Values.dataSource.active "mysql" }}
- name: mysql-connector-volume
emptyDir: { }
{{- end }}
{{- if eq .Values.dataSource.active "pg" }}
- name: pg-connector-volume
emptyDir: { }
{{- end }}
{{- if eq .Values.dataSource.active "oracle" }}
- name: oracle-connector-volume
emptyDir: { }
{{- end }}
- name: shenyu-admin-config
configMap:
name: {{ template "common.names.fullname" . }}-configmap
items:
- key: application-admin.yml
path: application.yml
{{- if eq .Values.dataSource.active "h2" }}
- key: application-h2.yml
path: application-h2.yml
{{- end }}
{{- if eq .Values.dataSource.active "mysql" }}
- key: application-mysql.yml
path: application-mysql.yml
{{- end }}
{{- if eq .Values.dataSource.active "pg" }}
- key: application-pg.yml
path: application-pg.yml
{{- end }}
{{- if eq .Values.dataSource.active "oracle" }}
- key: application-oracle.yml
path: application-oracle.yml
{{- end }}
{{- end -}}