charts/apache-shardingsphere-proxy-charts/templates/deployment.yaml (135 lines of code) (raw):

# # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You under the Apache License, Version 2.0 # (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # Check Zookeeper settings # if enabled zookeeper's persistence, should set correct storageClass for it {{- if .Values.governance.zookeeper.persistence.enabled }} {{- required "Detected .Values.governance.zookeeper.persistence.enabled is true, please set a correct .Values.governance.zookeeper.persistence.storageClass !" .Values.governance.zookeeper.persistence.storageClass -}} {{- end }} --- apiVersion: apps/v1 kind: Deployment metadata: labels: app: {{ template "common.names.fullname" . }} name: {{ template "common.names.fullname" . }} spec: replicas: {{ .Values.compute.replicas | default 1 }} selector: matchLabels: app: {{ template "common.names.fullname" . }} strategy: rollingUpdate: maxSurge: 25% maxUnavailable: 25% type: RollingUpdate template: metadata: annotations: {{- if .Values.compute.agent.enabled }} prometheus.io/path: /metrics prometheus.io/port: "9090" prometheus.io/scrape: "true" {{- end }} labels: app: {{ template "common.names.fullname" . }} spec: {{- if .Values.compute.mysqlConnector.version }} initContainers: - name: download-mysql-jar image: busybox:1.36 command: ["sh","-c","wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/{{.Values.compute.mysqlConnector.version}}/mysql-connector-java-{{.Values.compute.mysqlConnector.version}}.jar; wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/{{.Values.compute.mysqlConnector.version}}/mysql-connector-java-{{.Values.compute.mysqlConnector.version}}.jar.md5; if [ $(md5sum /mysql-connector-java-{{.Values.compute.mysqlConnector.version}}.jar | cut -d ' ' -f1) = $(cat /mysql-connector-java-{{.Values.compute.mysqlConnector.version}}.jar.md5) ]; then echo success; else echo failed;exit 1;fi;mv /mysql-connector-java-{{.Values.compute.mysqlConnector.version}}.jar /opt/shardingsphere-proxy/ext-lib"] volumeMounts: - name: mysql-connect-jar mountPath: /opt/shardingsphere-proxy/ext-lib {{- end }} {{- if .Values.compute.agent.enabled }} - name: agent-metrics-jar image: busybox:1.36 command: ["sh","-c","wget https://archive.apache.org/dist/shardingsphere/{{ .Values.compute.image.tag | default .Chart.AppVersion }}/apache-shardingsphere-{{ .Values.compute.image.tag | default .Chart.AppVersion }}-shardingsphere-agent-bin.tar.gz; mkdir /opt/shardingsphere-proxy/agent; tar -zxvf apache-shardingsphere-{{ .Values.compute.image.tag | default .Chart.AppVersion }}-shardingsphere-agent-bin.tar.gz -C /opt/shardingsphere-proxy/agent --strip-component 1"] volumeMounts: - name: metrics-jar mountPath: /opt/shardingsphere-proxy/agent {{- if eq .Values.compute.image.tag "5.3.2" }} - name: replace-start-script image: "{{ .Values.compute.image.repository }}:{{ .Values.compute.image.tag | default .Chart.AppVersion }}" command: ["sh","-c","sed -i 's#exec $JAVA ${JAVA_OPTS} ${JAVA_MEM_OPTS} -classpath ${CLASS_PATH} ${MAIN_CLASS}#exec $JAVA ${JAVA_OPTS} ${JAVA_MEM_OPTS} -classpath ${CLASS_PATH} ${AGENT_PARAM} ${MAIN_CLASS}#g' /opt/shardingsphere-proxy/bin/start.sh; cp /opt/shardingsphere-proxy/bin/start.sh /opt/shardingsphere-proxy/tmpbin/start.sh;"] volumeMounts: - name: replace-start-script mountPath: /opt/shardingsphere-proxy/tmpbin {{- end }} {{- end }} containers: - image: "{{ .Values.compute.image.repository }}:{{ .Values.compute.image.tag | default .Chart.AppVersion }}" imagePullPolicy: {{ .Values.compute.image.pullPolicy }} name: shardingsphere-proxy startupProbe: tcpSocket: port: {{ .Values.compute.startPort }} failureThreshold: 6 periodSeconds: 10 livenessProbe: periodSeconds: 5 tcpSocket: port: {{ .Values.compute.startPort }} readinessProbe: periodSeconds: 5 tcpSocket: port: {{ .Values.compute.startPort }} env: - name: PORT value: "{{ .Values.compute.startPort }}" {{- if .Values.compute.agent.enabled}} - name: "JAVA_TOOL_OPTIONS" value: "-javaagent:/opt/shardingsphere-proxy/agent/shardingsphere-agent-{{ .Values.compute.image.tag | default .Chart.AppVersion }}.jar" {{- end }} ports: - name: start-port containerPort: {{ .Values.compute.startPort }} {{- if .Values.compute.resources }} resources: {{- toYaml .Values.compute.resources | nindent 12 }} {{- end }} volumeMounts: {{- if .Values.compute.agent.enabled}} - name: metrics-jar mountPath: /opt/shardingsphere-proxy/agent - name: agent-config mountPath: /opt/shardingsphere-proxy/agent/conf {{- if eq .Values.compute.image.tag "5.3.2" }} - name: replace-start-script mountPath: /opt/shardingsphere-proxy/bin {{- end }} {{- end }} - name: config mountPath: /opt/shardingsphere-proxy/conf {{- if .Values.compute.mysqlConnector.version }} - name: mysql-connect-jar mountPath: /opt/shardingsphere-proxy/ext-lib {{- end }} imagePullSecrets: {{- toYaml .Values.compute.imagePullSecrets | nindent 8 }} volumes: {{- if .Values.compute.agent.enabled}} {{- if eq .Values.compute.image.tag "5.3.2" }} - name: replace-start-script emptyDir: { } {{- end }} {{- end }} - name: config configMap: name: {{ printf "%s-configuration" (include "common.names.fullname" .) }} {{- if .Values.compute.mysqlConnector.version}} - name: mysql-connect-jar emptyDir: { } {{- end}} {{- if .Values.compute.agent.enabled}} - name: metrics-jar emptyDir: { } - name: agent-config configMap: name: {{ printf "%s-agent-configuration" (include "common.names.fullname" .) }} items: - key: agent.yaml path: agent.yaml {{- end}}