blob: d90ce27e5d9771ddcc87840444e662de1dd919c0 [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" "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}}/{{$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 /{{$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}}/{{$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 /{{$pgJarName}} /opt/shenyu-admin/ext-lib/postgresql-connector.jar"
volumeMounts:
- name: pg-connector-volume
mountPath: /opt/shenyu-admin/ext-lib
{{- end }}
{{- 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:
- "sh"
- "-c"
- "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 /{{$oracleJarName}} /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 -}}