| {{- 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 -}} |