This is an automated email from the ASF dual-hosted git repository.
fanjia pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/seatunnel.git
The following commit(s) were added to refs/heads/dev by this push:
new ae0e6951bc [Improve][deploy] helm chart config improve (#8954)
ae0e6951bc is described below
commit ae0e6951bccfb06e24be5340794e2da681083ca8
Author: huangkuilin <[email protected]>
AuthorDate: Thu Mar 13 20:11:35 2025 +0800
[Improve][deploy] helm chart config improve (#8954)
---
.../jvm_client_options} | 27 ++++++------------
.../jvm_master_options} | 33 +++++++++-------------
.../jvm_worker_options} | 33 +++++++++-------------
deploy/kubernetes/seatunnel/templates/NOTES.txt | 24 +---------------
.../kubernetes/seatunnel/templates/configmap.yaml | 14 +++------
.../templates/deployment-seatunnel-master.yaml | 26 +++++++++--------
.../templates/deployment-seatunnel-worker.yaml | 28 +++++++++---------
deploy/kubernetes/seatunnel/templates/ingress.yaml | 3 ++
.../templates/service-master-headless.yaml | 4 +--
deploy/kubernetes/seatunnel/values.yaml | 24 ++++++++--------
10 files changed, 86 insertions(+), 130 deletions(-)
diff --git a/deploy/kubernetes/seatunnel/templates/service-master-headless.yaml
b/deploy/kubernetes/seatunnel/conf/jvm_client_options
similarity index 63%
copy from deploy/kubernetes/seatunnel/templates/service-master-headless.yaml
copy to deploy/kubernetes/seatunnel/conf/jvm_client_options
index 63aff3ba75..462e1374c1 100644
--- a/deploy/kubernetes/seatunnel/templates/service-master-headless.yaml
+++ b/deploy/kubernetes/seatunnel/conf/jvm_client_options
@@ -14,22 +14,11 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
----
-# use for access seatunnel from outside system via rest api
-apiVersion: v1
-kind: Service
-metadata:
- name: {{ include "seatunnel.fullname" . }}-master
- labels:
- {{- include "seatunnel.master.labels" . | nindent 4 }}
- namespace: {{ .Values.namespace }}
-spec:
- clusterIP: "None"
- ports:
- - name: "master-port"
- port: 8080
- targetPort: 8080
- protocol: TCP
- selector:
- {{- include "seatunnel.master.labels" . | nindent 4 }}
----
+
+# JVM Heap
+-Xms256m
+-Xmx512m
+
+# JVM Dump
+-XX:+HeapDumpOnOutOfMemoryError
+-XX:HeapDumpPath=/tmp/seatunnel/dump/zeta-client
\ No newline at end of file
diff --git a/deploy/kubernetes/seatunnel/templates/service-master-headless.yaml
b/deploy/kubernetes/seatunnel/conf/jvm_master_options
similarity index 63%
copy from deploy/kubernetes/seatunnel/templates/service-master-headless.yaml
copy to deploy/kubernetes/seatunnel/conf/jvm_master_options
index 63aff3ba75..d435a7d275 100644
--- a/deploy/kubernetes/seatunnel/templates/service-master-headless.yaml
+++ b/deploy/kubernetes/seatunnel/conf/jvm_master_options
@@ -14,22 +14,17 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
----
-# use for access seatunnel from outside system via rest api
-apiVersion: v1
-kind: Service
-metadata:
- name: {{ include "seatunnel.fullname" . }}-master
- labels:
- {{- include "seatunnel.master.labels" . | nindent 4 }}
- namespace: {{ .Values.namespace }}
-spec:
- clusterIP: "None"
- ports:
- - name: "master-port"
- port: 8080
- targetPort: 8080
- protocol: TCP
- selector:
- {{- include "seatunnel.master.labels" . | nindent 4 }}
----
+
+# JVM Heap
+# -Xms2g
+# -Xmx2g
+
+# JVM Dump
+-XX:+HeapDumpOnOutOfMemoryError
+-XX:HeapDumpPath=/tmp/seatunnel/dump/zeta-server
+
+# Metaspace
+-XX:MaxMetaspaceSize=2g
+
+# G1GC
+-XX:+UseG1GC
diff --git a/deploy/kubernetes/seatunnel/templates/service-master-headless.yaml
b/deploy/kubernetes/seatunnel/conf/jvm_worker_options
similarity index 63%
copy from deploy/kubernetes/seatunnel/templates/service-master-headless.yaml
copy to deploy/kubernetes/seatunnel/conf/jvm_worker_options
index 63aff3ba75..d435a7d275 100644
--- a/deploy/kubernetes/seatunnel/templates/service-master-headless.yaml
+++ b/deploy/kubernetes/seatunnel/conf/jvm_worker_options
@@ -14,22 +14,17 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
----
-# use for access seatunnel from outside system via rest api
-apiVersion: v1
-kind: Service
-metadata:
- name: {{ include "seatunnel.fullname" . }}-master
- labels:
- {{- include "seatunnel.master.labels" . | nindent 4 }}
- namespace: {{ .Values.namespace }}
-spec:
- clusterIP: "None"
- ports:
- - name: "master-port"
- port: 8080
- targetPort: 8080
- protocol: TCP
- selector:
- {{- include "seatunnel.master.labels" . | nindent 4 }}
----
+
+# JVM Heap
+# -Xms2g
+# -Xmx2g
+
+# JVM Dump
+-XX:+HeapDumpOnOutOfMemoryError
+-XX:HeapDumpPath=/tmp/seatunnel/dump/zeta-server
+
+# Metaspace
+-XX:MaxMetaspaceSize=2g
+
+# G1GC
+-XX:+UseG1GC
diff --git a/deploy/kubernetes/seatunnel/templates/NOTES.txt
b/deploy/kubernetes/seatunnel/templates/NOTES.txt
index d06fe5d3ba..781923c98b 100644
--- a/deploy/kubernetes/seatunnel/templates/NOTES.txt
+++ b/deploy/kubernetes/seatunnel/templates/NOTES.txt
@@ -26,7 +26,7 @@ Access seatunnel UI URL by:
For more restapi please refer to https://seatunnel.apache.org/docs/{{
.Chart.AppVersion }}/seatunnel-engine/rest-api-v2
-{{- else if eq .Values.master.service.type "ClusterIP" }}
+{{- else }}
kubectl port-forward -n {{ .Release.Namespace }} svc/{{ template
"seatunnel.fullname" . }}-master 8080:8080
@@ -34,28 +34,6 @@ Access seatunnel UI URL by:
seatunnel restapi URL for system monitoring information:
http://127.0.0.1:8080/system-monitoring-information
For more restapi please refer to https://seatunnel.apache.org/docs/{{
.Chart.AppVersion }}/seatunnel-engine/rest-api-v2
-
-
-{{- else if eq .Values.master.service.type "NodePort" }}
-
- NODE_IP=$(kubectl get no -n {{ .Release.Namespace }} -o
jsonpath="{.items[0].status.addresses[0].address}")
- NODE_PORT=$(kubectl get svc {{ template "seatunnel.fullname" . }}-master -n
{{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}")
- seatunnel restapi URL for running jobs:
http://$NODE_IP:$NODE_PORT/running-jobs
- seatunnel restapi URL for system monitoring information:
http://$NODE_IP:$NODE_PORT/system-monitoring-information
-
- For more restapi please refer to https://seatunnel.apache.org/docs/{{
.Chart.AppVersion }}/seatunnel-engine/rest-api-v2
-{{- else if eq .Values.master.service.type "LoadBalancer" }}
-
- NOTE: It may take a few minutes for the LoadBalancer IP to be available.
- You can watch the status of by running 'kubectl get svc {{ template
"seatunnel.fullname" . }}-master -n {{ .Release.Namespace }} -w'
-
- SERVICE_IP=$(kubectl get svc {{ template "seatunnel.fullname" . }}-master -n
{{ .Release.Namespace }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
- echo http://$SERVICE_IP:8080/running-jobs
-
- seatunnel resetapi URL for running jobs: http://$SERVICE_IP:8080/running-jobs
- seatunnel resetapi URL for system monitoring information:
http://$SERVICE_IP:8080/system-monitoring-information
-
- For more restapi please refer to https://seatunnel.apache.org/docs/{{
.Chart.AppVersion }}/seatunnel-engine/rest-api-v2
{{- end }}
Or you can just go into master pod, and use local curl command.
diff --git a/deploy/kubernetes/seatunnel/templates/configmap.yaml
b/deploy/kubernetes/seatunnel/templates/configmap.yaml
index 5eface25f6..c5182c4b3a 100644
--- a/deploy/kubernetes/seatunnel/templates/configmap.yaml
+++ b/deploy/kubernetes/seatunnel/templates/configmap.yaml
@@ -22,14 +22,8 @@ metadata:
app.kubernetes.io/name: {{ include "seatunnel.fullname" . }}-configs
{{- include "seatunnel.master.labels" . | nindent 4 }}
data:
- hazelcast-master.yaml: |-
- {{ tpl (.Files.Get "conf/hazelcast-master.yaml") $ | nindent 4 }}
- hazelcast-worker.yaml: |-
- {{ tpl (.Files.Get "conf/hazelcast-worker.yaml") $ | nindent 4 }}
- hazelcast-client.yaml: |-
- {{ tpl (.Files.Get "conf/hazelcast-client.yaml") $ | nindent 4 }}
- seatunnel.yaml: |-
- {{ tpl (.Files.Get "conf/seatunnel.yaml") $ | nindent 4 }}
- log4j2.properties: |-
- {{ tpl (.Files.Get "conf/log4j2.properties") $ | nindent 4 }}
+ {{- range $path, $_ := .Files.Glob "conf/*" }}
+ {{- base $path | nindent 2 }}: |-
+ {{- tpl ($.Files.Get $path) $ | nindent 4 -}}
+ {{- end }}
diff --git
a/deploy/kubernetes/seatunnel/templates/deployment-seatunnel-master.yaml
b/deploy/kubernetes/seatunnel/templates/deployment-seatunnel-master.yaml
index 517fc3ac53..3bbf06cf36 100644
--- a/deploy/kubernetes/seatunnel/templates/deployment-seatunnel-master.yaml
+++ b/deploy/kubernetes/seatunnel/templates/deployment-seatunnel-master.yaml
@@ -65,7 +65,11 @@ spec:
name: "hazelcast-port"
- containerPort: 8080
name: "master-port"
+ {{- if .Values.master.command }}
+ command: {{ .Values.master.command }}
+ {{- else }}
command: ["/bin/sh","-c","/opt/seatunnel/bin/seatunnel-cluster.sh -r
master"]
+ {{- end }}
{{- if .Values.master.resources }}
resources:
{{- toYaml .Values.master.resources | nindent 12 }}
@@ -74,19 +78,17 @@ spec:
livenessProbe:
{{- toYaml .Values.master.livenessProbe | nindent 12 }}
{{- end }}
+ {{- if .Values.env }}
+ env:
+ {{- toYaml .Values.env | nindent 12 }}
+ {{- end }}
volumeMounts:
- - mountPath: "/opt/seatunnel/config/hazelcast-master.yaml"
- name: seatunnel-configs
- subPath: hazelcast-master.yaml
- - mountPath: "/opt/seatunnel/config/hazelcast-client.yaml"
- name: seatunnel-configs
- subPath: hazelcast-client.yaml
- - mountPath: "/opt/seatunnel/config/seatunnel.yaml"
- name: seatunnel-configs
- subPath: seatunnel.yaml
- - mountPath: "/opt/seatunnel/config/log4j2.properties"
- name: seatunnel-configs
- subPath: log4j2.properties
+ # config mount
+ {{- range $path, $_ := .Files.Glob "conf/*" }}
+ - name: seatunnel-configs
+ mountPath: /opt/seatunnel/config/{{ base $path }}
+ subPath: {{ base $path }}
+ {{- end }}
volumes:
- name: seatunnel-configs
configMap:
diff --git
a/deploy/kubernetes/seatunnel/templates/deployment-seatunnel-worker.yaml
b/deploy/kubernetes/seatunnel/templates/deployment-seatunnel-worker.yaml
index d56263f908..4c0b7329d0 100644
--- a/deploy/kubernetes/seatunnel/templates/deployment-seatunnel-worker.yaml
+++ b/deploy/kubernetes/seatunnel/templates/deployment-seatunnel-worker.yaml
@@ -63,7 +63,11 @@ spec:
ports:
- containerPort: 5801
name: "hazelcast-port"
+ {{- if .Values.worker.command }}
+ command: {{ .Values.worker.command }}
+ {{- else }}
command: ["/bin/sh","-c","/opt/seatunnel/bin/seatunnel-cluster.sh -r
worker"]
+ {{- end }}
{{- if .Values.worker.resources }}
resources:
{{- toYaml .Values.worker.resources | nindent 12 }}
@@ -72,20 +76,18 @@ spec:
livenessProbe:
{{- toYaml .Values.worker.livenessProbe | nindent 12 }}
{{- end }}
+ {{- if .Values.env }}
+ env:
+ {{- toYaml .Values.env | nindent 12 }}
+ {{- end }}
volumeMounts:
- - mountPath: "/opt/seatunnel/config/hazelcast-worker.yaml"
- name: seatunnel-configs
- subPath: hazelcast-worker.yaml
- - mountPath: "/opt/seatunnel/config/hazelcast-client.yaml"
- name: seatunnel-configs
- subPath: hazelcast-client.yaml
- - mountPath: "/opt/seatunnel/config/seatunnel.yaml"
- name: seatunnel-configs
- subPath: seatunnel.yaml
- - mountPath: "/opt/seatunnel/config/log4j2.properties"
- name: seatunnel-configs
- subPath: log4j2.properties
+ # config mount
+ {{- range $path, $_ := .Files.Glob "conf/*" }}
+ - name: seatunnel-configs
+ mountPath: /opt/seatunnel/config/{{ base $path }}
+ subPath: {{ base $path }}
+ {{- end }}
volumes:
- name: seatunnel-configs
configMap:
- name: {{ include "seatunnel.fullname" . }}-configs
+ name: {{ include "seatunnel.fullname" . }}-configs
\ No newline at end of file
diff --git a/deploy/kubernetes/seatunnel/templates/ingress.yaml
b/deploy/kubernetes/seatunnel/templates/ingress.yaml
index 97319a956d..0ccb1e04a3 100644
--- a/deploy/kubernetes/seatunnel/templates/ingress.yaml
+++ b/deploy/kubernetes/seatunnel/templates/ingress.yaml
@@ -33,6 +33,9 @@ metadata:
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
+ {{- if .Values.ingress.className }}
+ ingressClassName: {{ .Values.ingress.className }}
+ {{- end }}
rules:
- host: "{{ .Values.ingress.host }}"
http:
diff --git a/deploy/kubernetes/seatunnel/templates/service-master-headless.yaml
b/deploy/kubernetes/seatunnel/templates/service-master-headless.yaml
index 63aff3ba75..29d800d9dc 100644
--- a/deploy/kubernetes/seatunnel/templates/service-master-headless.yaml
+++ b/deploy/kubernetes/seatunnel/templates/service-master-headless.yaml
@@ -14,7 +14,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
----
# use for access seatunnel from outside system via rest api
apiVersion: v1
kind: Service
@@ -31,5 +30,4 @@ spec:
targetPort: 8080
protocol: TCP
selector:
- {{- include "seatunnel.master.labels" . | nindent 4 }}
----
+ {{- include "seatunnel.master.labels" . | nindent 4 }}
\ No newline at end of file
diff --git a/deploy/kubernetes/seatunnel/values.yaml
b/deploy/kubernetes/seatunnel/values.yaml
index b5fd60b750..ec91284f5a 100644
--- a/deploy/kubernetes/seatunnel/values.yaml
+++ b/deploy/kubernetes/seatunnel/values.yaml
@@ -19,16 +19,20 @@
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
-timezone: "Asia/Shanghai"
-
-
image:
registry: "apache/seatunnel"
tag: ""
pullPolicy: "IfNotPresent"
pullSecret: ""
+# The env for pod
+env:
+ - name: TZ
+ value: Asia/Shanghai
+
master:
+ ## The command to start master.
+ command: []
## The deployment strategy to use to replace existing pods with new ones.
strategy:
type: RollingUpdate
@@ -67,11 +71,6 @@ master:
# cpu: "500m"
## Periodic probe of container liveness. Container will be restarted if the
probe fails. Cannot be updated.
## More info:
https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
-
- ## service config for restApi
- service:
- type: "ClusterIP"
-
livenessProbe:
tcpSocket:
port: hazelcast-port
@@ -91,6 +90,8 @@ master:
successThreshold: 1
worker:
+ ## The command to start worker.
+ command: []
## The deployment strategy to use to replace existing pods with new ones.
strategy:
type: RollingUpdate
@@ -130,8 +131,6 @@ worker:
# cpu: "500m"
## Periodic probe of container liveness. Container will be restarted if the
probe fails. Cannot be updated.
## More info:
https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
-
-
livenessProbe:
tcpSocket:
port: hazelcast-port
@@ -152,8 +151,9 @@ worker:
ingress:
enabled: false
- host: "seatunnel.org"
- path: "/"
+ className: ""
+ host: seatunnel.k8s.local
+ path: /
annotations: {}
tls:
enabled: false