From 01ee2b32110371b9588e7e69984a2db8e8ac599e Mon Sep 17 00:00:00 2001 From: chengshiwen Date: Wed, 17 Feb 2021 01:37:55 +0800 Subject: [PATCH 01/13] [Improvement][K8s] Adapt to the latest alert-server with updated config and port 50052 --- .../dolphinscheduler/templates/NOTES.txt | 9 ++- .../configmap-dolphinscheduler-alert.yaml | 14 ---- .../deployment-dolphinscheduler-alert.yaml | 73 +---------------- .../deployment-dolphinscheduler-api.yaml | 2 +- .../statefulset-dolphinscheduler-worker.yaml | 79 +------------------ .../templates/svc-dolphinscheduler-alert.yaml | 35 ++++++++ .../kubernetes/dolphinscheduler/values.yaml | 30 ++----- 7 files changed, 55 insertions(+), 187 deletions(-) create mode 100644 docker/kubernetes/dolphinscheduler/templates/svc-dolphinscheduler-alert.yaml diff --git a/docker/kubernetes/dolphinscheduler/templates/NOTES.txt b/docker/kubernetes/dolphinscheduler/templates/NOTES.txt index 8afe766d27..6e2800a9cc 100644 --- a/docker/kubernetes/dolphinscheduler/templates/NOTES.txt +++ b/docker/kubernetes/dolphinscheduler/templates/NOTES.txt @@ -15,17 +15,18 @@ # limitations under the License. # -** Please be patient while the chart Dolphinscheduler {{ .Chart.AppVersion }} is being deployed ** +** Please be patient while the chart DolphinScheduler {{ .Chart.AppVersion }} is being deployed ** -Get the Dolphinscheduler URL by running: +Access DolphinScheduler by: {{- if .Values.ingress.enabled }} - export HOSTNAME=$(kubectl get ingress --namespace {{ .Release.Namespace }} {{ template "dolphinscheduler.fullname" . }} -o jsonpath='{.spec.rules[0].host}') - echo "Dolphinscheduler URL: http://$HOSTNAME/" + DolphinScheduler URL: http://{{ .Values.ingress.host }}/dolphinscheduler {{- else }} kubectl port-forward --namespace {{ .Release.Namespace }} svc/{{ template "dolphinscheduler.fullname" . }}-api 12345:12345 + DolphinScheduler URL: http://127.0.0.1:12345/dolphinscheduler + {{- end }} diff --git a/docker/kubernetes/dolphinscheduler/templates/configmap-dolphinscheduler-alert.yaml b/docker/kubernetes/dolphinscheduler/templates/configmap-dolphinscheduler-alert.yaml index 2c7dd67c57..b5ffadd4bd 100644 --- a/docker/kubernetes/dolphinscheduler/templates/configmap-dolphinscheduler-alert.yaml +++ b/docker/kubernetes/dolphinscheduler/templates/configmap-dolphinscheduler-alert.yaml @@ -26,18 +26,4 @@ metadata: data: DOLPHINSCHEDULER_OPTS: {{ .Values.alert.configmap.DOLPHINSCHEDULER_OPTS | quote }} ALERT_PLUGIN_DIR: {{ .Values.alert.configmap.ALERT_PLUGIN_DIR | quote }} - XLS_FILE_PATH: {{ .Values.alert.configmap.XLS_FILE_PATH | quote }} - MAIL_SERVER_HOST: {{ .Values.alert.configmap.MAIL_SERVER_HOST | quote }} - MAIL_SERVER_PORT: {{ .Values.alert.configmap.MAIL_SERVER_PORT | quote }} - MAIL_SENDER: {{ .Values.alert.configmap.MAIL_SENDER | quote }} - MAIL_USER: {{ .Values.alert.configmap.MAIL_USER | quote }} - MAIL_PASSWD: {{ .Values.alert.configmap.MAIL_PASSWD | quote }} - MAIL_SMTP_STARTTLS_ENABLE: {{ .Values.alert.configmap.MAIL_SMTP_STARTTLS_ENABLE | quote }} - MAIL_SMTP_SSL_ENABLE: {{ .Values.alert.configmap.MAIL_SMTP_SSL_ENABLE | quote }} - MAIL_SMTP_SSL_TRUST: {{ .Values.alert.configmap.MAIL_SMTP_SSL_TRUST | quote }} - ENTERPRISE_WECHAT_ENABLE: {{ .Values.alert.configmap.ENTERPRISE_WECHAT_ENABLE | quote }} - ENTERPRISE_WECHAT_CORP_ID: {{ .Values.alert.configmap.ENTERPRISE_WECHAT_CORP_ID | quote }} - ENTERPRISE_WECHAT_SECRET: {{ .Values.alert.configmap.ENTERPRISE_WECHAT_SECRET | quote }} - ENTERPRISE_WECHAT_AGENT_ID: {{ .Values.alert.configmap.ENTERPRISE_WECHAT_AGENT_ID | quote }} - ENTERPRISE_WECHAT_USERS: {{ .Values.alert.configmap.ENTERPRISE_WECHAT_USERS | quote }} {{- end }} \ No newline at end of file diff --git a/docker/kubernetes/dolphinscheduler/templates/deployment-dolphinscheduler-alert.yaml b/docker/kubernetes/dolphinscheduler/templates/deployment-dolphinscheduler-alert.yaml index e4a2b21ffa..f66427e470 100644 --- a/docker/kubernetes/dolphinscheduler/templates/deployment-dolphinscheduler-alert.yaml +++ b/docker/kubernetes/dolphinscheduler/templates/deployment-dolphinscheduler-alert.yaml @@ -67,6 +67,9 @@ spec: imagePullPolicy: {{ .Values.image.pullPolicy }} args: - "alert-server" + ports: + - containerPort: 50052 + name: "alert-port" env: - name: TZ value: {{ .Values.timezone }} @@ -80,76 +83,6 @@ spec: configMapKeyRef: key: ALERT_PLUGIN_DIR name: {{ include "dolphinscheduler.fullname" . }}-alert - - name: XLS_FILE_PATH - valueFrom: - configMapKeyRef: - key: XLS_FILE_PATH - name: {{ include "dolphinscheduler.fullname" . }}-alert - - name: MAIL_SERVER_HOST - valueFrom: - configMapKeyRef: - key: MAIL_SERVER_HOST - name: {{ include "dolphinscheduler.fullname" . }}-alert - - name: MAIL_SERVER_PORT - valueFrom: - configMapKeyRef: - key: MAIL_SERVER_PORT - name: {{ include "dolphinscheduler.fullname" . }}-alert - - name: MAIL_SENDER - valueFrom: - configMapKeyRef: - key: MAIL_SENDER - name: {{ include "dolphinscheduler.fullname" . }}-alert - - name: MAIL_USER - valueFrom: - configMapKeyRef: - key: MAIL_USER - name: {{ include "dolphinscheduler.fullname" . }}-alert - - name: MAIL_PASSWD - valueFrom: - configMapKeyRef: - key: MAIL_PASSWD - name: {{ include "dolphinscheduler.fullname" . }}-alert - - name: MAIL_SMTP_STARTTLS_ENABLE - valueFrom: - configMapKeyRef: - key: MAIL_SMTP_STARTTLS_ENABLE - name: {{ include "dolphinscheduler.fullname" . }}-alert - - name: MAIL_SMTP_SSL_ENABLE - valueFrom: - configMapKeyRef: - key: MAIL_SMTP_SSL_ENABLE - name: {{ include "dolphinscheduler.fullname" . }}-alert - - name: MAIL_SMTP_SSL_TRUST - valueFrom: - configMapKeyRef: - key: MAIL_SMTP_SSL_TRUST - name: {{ include "dolphinscheduler.fullname" . }}-alert - - name: ENTERPRISE_WECHAT_ENABLE - valueFrom: - configMapKeyRef: - key: ENTERPRISE_WECHAT_ENABLE - name: {{ include "dolphinscheduler.fullname" . }}-alert - - name: ENTERPRISE_WECHAT_CORP_ID - valueFrom: - configMapKeyRef: - key: ENTERPRISE_WECHAT_CORP_ID - name: {{ include "dolphinscheduler.fullname" . }}-alert - - name: ENTERPRISE_WECHAT_SECRET - valueFrom: - configMapKeyRef: - key: ENTERPRISE_WECHAT_SECRET - name: {{ include "dolphinscheduler.fullname" . }}-alert - - name: ENTERPRISE_WECHAT_AGENT_ID - valueFrom: - configMapKeyRef: - key: ENTERPRISE_WECHAT_AGENT_ID - name: {{ include "dolphinscheduler.fullname" . }}-alert - - name: ENTERPRISE_WECHAT_USERS - valueFrom: - configMapKeyRef: - key: ENTERPRISE_WECHAT_USERS - name: {{ include "dolphinscheduler.fullname" . }}-alert - name: DATABASE_TYPE {{- if .Values.postgresql.enabled }} value: "postgresql" diff --git a/docker/kubernetes/dolphinscheduler/templates/deployment-dolphinscheduler-api.yaml b/docker/kubernetes/dolphinscheduler/templates/deployment-dolphinscheduler-api.yaml index f4b4795c28..b6af321d73 100644 --- a/docker/kubernetes/dolphinscheduler/templates/deployment-dolphinscheduler-api.yaml +++ b/docker/kubernetes/dolphinscheduler/templates/deployment-dolphinscheduler-api.yaml @@ -132,7 +132,7 @@ spec: {{- end }} - name: ZOOKEEPER_QUORUM {{- if .Values.zookeeper.enabled }} - value: "{{ template "dolphinscheduler.zookeeper.quorum" . }}" + value: {{ template "dolphinscheduler.zookeeper.quorum" . }} {{- else }} value: {{ .Values.externalZookeeper.zookeeperQuorum }} {{- end }} diff --git a/docker/kubernetes/dolphinscheduler/templates/statefulset-dolphinscheduler-worker.yaml b/docker/kubernetes/dolphinscheduler/templates/statefulset-dolphinscheduler-worker.yaml index 7ca548c763..0b12ed714d 100644 --- a/docker/kubernetes/dolphinscheduler/templates/statefulset-dolphinscheduler-worker.yaml +++ b/docker/kubernetes/dolphinscheduler/templates/statefulset-dolphinscheduler-worker.yaml @@ -117,56 +117,8 @@ spec: configMapKeyRef: name: {{ include "dolphinscheduler.fullname" . }}-common key: DOLPHINSCHEDULER_DATA_BASEDIR_PATH - - name: ALERT_PLUGIN_DIR - valueFrom: - configMapKeyRef: - key: ALERT_PLUGIN_DIR - name: {{ include "dolphinscheduler.fullname" . }}-alert - - name: XLS_FILE_PATH - valueFrom: - configMapKeyRef: - key: XLS_FILE_PATH - name: {{ include "dolphinscheduler.fullname" . }}-alert - - name: MAIL_SERVER_HOST - valueFrom: - configMapKeyRef: - key: MAIL_SERVER_HOST - name: {{ include "dolphinscheduler.fullname" . }}-alert - - name: MAIL_SERVER_PORT - valueFrom: - configMapKeyRef: - key: MAIL_SERVER_PORT - name: {{ include "dolphinscheduler.fullname" . }}-alert - - name: MAIL_SENDER - valueFrom: - configMapKeyRef: - key: MAIL_SENDER - name: {{ include "dolphinscheduler.fullname" . }}-alert - - name: MAIL_USER - valueFrom: - configMapKeyRef: - key: MAIL_USER - name: {{ include "dolphinscheduler.fullname" . }}-alert - - name: MAIL_PASSWD - valueFrom: - configMapKeyRef: - key: MAIL_PASSWD - name: {{ include "dolphinscheduler.fullname" . }}-alert - - name: MAIL_SMTP_STARTTLS_ENABLE - valueFrom: - configMapKeyRef: - key: MAIL_SMTP_STARTTLS_ENABLE - name: {{ include "dolphinscheduler.fullname" . }}-alert - - name: MAIL_SMTP_SSL_ENABLE - valueFrom: - configMapKeyRef: - key: MAIL_SMTP_SSL_ENABLE - name: {{ include "dolphinscheduler.fullname" . }}-alert - - name: MAIL_SMTP_SSL_TRUST - valueFrom: - configMapKeyRef: - key: MAIL_SMTP_SSL_TRUST - name: {{ include "dolphinscheduler.fullname" . }}-alert + - name: ALERT_LISTEN_HOST + value: {{ include "dolphinscheduler.fullname" . }}-alert - name: DATABASE_TYPE {{- if .Values.postgresql.enabled }} value: "postgresql" @@ -221,7 +173,7 @@ spec: {{- end }} - name: ZOOKEEPER_QUORUM {{- if .Values.zookeeper.enabled }} - value: "{{ template "dolphinscheduler.zookeeper.quorum" . }}" + value: {{ template "dolphinscheduler.zookeeper.quorum" . }} {{- else }} value: {{ .Values.externalZookeeper.zookeeperQuorum }} {{- end }} @@ -263,31 +215,6 @@ spec: key: fs-s3a-secret-key name: {{ printf "%s-%s" .Release.Name "fs-s3a" }} {{- end }} - - name: ENTERPRISE_WECHAT_ENABLE - valueFrom: - configMapKeyRef: - key: ENTERPRISE_WECHAT_ENABLE - name: {{ include "dolphinscheduler.fullname" . }}-alert - - name: ENTERPRISE_WECHAT_CORP_ID - valueFrom: - configMapKeyRef: - key: ENTERPRISE_WECHAT_CORP_ID - name: {{ include "dolphinscheduler.fullname" . }}-alert - - name: ENTERPRISE_WECHAT_SECRET - valueFrom: - configMapKeyRef: - key: ENTERPRISE_WECHAT_SECRET - name: {{ include "dolphinscheduler.fullname" . }}-alert - - name: ENTERPRISE_WECHAT_AGENT_ID - valueFrom: - configMapKeyRef: - key: ENTERPRISE_WECHAT_AGENT_ID - name: {{ include "dolphinscheduler.fullname" . }}-alert - - name: ENTERPRISE_WECHAT_USERS - valueFrom: - configMapKeyRef: - key: ENTERPRISE_WECHAT_USERS - name: {{ include "dolphinscheduler.fullname" . }}-alert {{- if .Values.worker.resources }} resources: limits: diff --git a/docker/kubernetes/dolphinscheduler/templates/svc-dolphinscheduler-alert.yaml b/docker/kubernetes/dolphinscheduler/templates/svc-dolphinscheduler-alert.yaml new file mode 100644 index 0000000000..404c2e4827 --- /dev/null +++ b/docker/kubernetes/dolphinscheduler/templates/svc-dolphinscheduler-alert.yaml @@ -0,0 +1,35 @@ +# +# 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. +# +apiVersion: v1 +kind: Service +metadata: + name: {{ include "dolphinscheduler.fullname" . }}-alert + labels: + app.kubernetes.io/name: {{ include "dolphinscheduler.fullname" . }}-alert + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/managed-by: {{ .Release.Service }} +spec: + ports: + - port: 50052 + targetPort: alert-port + protocol: TCP + name: alert-port + selector: + app.kubernetes.io/name: {{ include "dolphinscheduler.fullname" . }}-alert + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + app.kubernetes.io/component: alert \ No newline at end of file diff --git a/docker/kubernetes/dolphinscheduler/values.yaml b/docker/kubernetes/dolphinscheduler/values.yaml index 99979af9d4..da282d8698 100644 --- a/docker/kubernetes/dolphinscheduler/values.yaml +++ b/docker/kubernetes/dolphinscheduler/values.yaml @@ -31,7 +31,7 @@ image: pullPolicy: "IfNotPresent" pullSecrets: [] -# If not exists external database, by default, Dolphinscheduler's database will use it. +## If not exists external database, by default, Dolphinscheduler's database will use it. postgresql: enabled: true postgresqlUsername: "root" @@ -42,8 +42,8 @@ postgresql: size: "20Gi" storageClass: "-" -# If exists external database, and set postgresql.enable value to false. -# external database will be used, otherwise Dolphinscheduler's database will be used. +## If exists external database, and set postgresql.enable value to false. +## external database will be used, otherwise Dolphinscheduler's database will be used. externalDatabase: type: "postgresql" driver: "org.postgresql.Driver" @@ -52,10 +52,10 @@ externalDatabase: username: "root" password: "root" database: "dolphinscheduler" - # multi params should join with & char + ## multi params should join with & char params: "characterEncoding=utf8" -# If not exists external zookeeper, by default, Dolphinscheduler's zookeeper will use it. +## If not exists external zookeeper, by default, Dolphinscheduler's zookeeper will use it. zookeeper: enabled: true fourlwCommandsWhitelist: srvr,ruok,wchs,cons @@ -67,8 +67,8 @@ zookeeper: storageClass: "-" zookeeperRoot: "/dolphinscheduler" -# If exists external zookeeper, and set zookeeper.enable value to false. -# If zookeeper.enable is false, Dolphinscheduler's zookeeper will use it. +## If exists external zookeeper, and set zookeeper.enable value to false. +## If zookeeper.enable is false, Dolphinscheduler's zookeeper will use it. externalZookeeper: zookeeperQuorum: "127.0.0.1:2181" zookeeperRoot: "/dolphinscheduler" @@ -283,21 +283,7 @@ alert: ## ConfigMap configmap: DOLPHINSCHEDULER_OPTS: "" - ALERT_PLUGIN_DIR: "/opt/dolphinscheduler/alert/plugin" - XLS_FILE_PATH: "/tmp/xls" - MAIL_SERVER_HOST: "" - MAIL_SERVER_PORT: "" - MAIL_SENDER: "" - MAIL_USER: "" - MAIL_PASSWD: "" - MAIL_SMTP_STARTTLS_ENABLE: false - MAIL_SMTP_SSL_ENABLE: false - MAIL_SMTP_SSL_TRUST: "" - ENTERPRISE_WECHAT_ENABLE: false - ENTERPRISE_WECHAT_CORP_ID: "" - ENTERPRISE_WECHAT_SECRET: "" - ENTERPRISE_WECHAT_AGENT_ID: "" - ENTERPRISE_WECHAT_USERS: "" + ALERT_PLUGIN_DIR: "lib/plugin/alert" ## 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: From 79b5f8c79158d587fc496bfaf182fdf5a963bedb Mon Sep 17 00:00:00 2001 From: chengshiwen Date: Sun, 28 Feb 2021 12:08:44 +0800 Subject: [PATCH 02/13] [Improvement][K8s] Optimize ingress compatibility --- docker/kubernetes/dolphinscheduler/README.md | 3 +-- .../deployment-dolphinscheduler-api.yaml | 2 +- .../dolphinscheduler/templates/ingress.yaml | 22 +++++++++++++++---- .../templates/svc-dolphinscheduler-api.yaml | 4 ++-- .../kubernetes/dolphinscheduler/values.yaml | 4 +--- 5 files changed, 23 insertions(+), 12 deletions(-) diff --git a/docker/kubernetes/dolphinscheduler/README.md b/docker/kubernetes/dolphinscheduler/README.md index 0a5efe3163..05bf24e89a 100644 --- a/docker/kubernetes/dolphinscheduler/README.md +++ b/docker/kubernetes/dolphinscheduler/README.md @@ -253,9 +253,8 @@ The Configuration file is `values.yaml`, and the following tables lists the conf | | | | | `ingress.enabled` | Enable ingress | `false` | | `ingress.host` | Ingress host | `dolphinscheduler.org` | -| `ingress.path` | Ingress path | `/` | +| `ingress.path` | Ingress path | `/dolphinscheduler` | | `ingress.tls.enabled` | Enable ingress tls | `false` | -| `ingress.tls.hosts` | Ingress tls hosts | `dolphinscheduler.org` | | `ingress.tls.secretName` | Ingress tls secret name | `dolphinscheduler-tls` | ## FAQ diff --git a/docker/kubernetes/dolphinscheduler/templates/deployment-dolphinscheduler-api.yaml b/docker/kubernetes/dolphinscheduler/templates/deployment-dolphinscheduler-api.yaml index f4b4795c28..f25a16a9e5 100644 --- a/docker/kubernetes/dolphinscheduler/templates/deployment-dolphinscheduler-api.yaml +++ b/docker/kubernetes/dolphinscheduler/templates/deployment-dolphinscheduler-api.yaml @@ -69,7 +69,7 @@ spec: - "api-server" ports: - containerPort: 12345 - name: tcp-port + name: "api-port" env: - name: TZ value: {{ .Values.timezone }} diff --git a/docker/kubernetes/dolphinscheduler/templates/ingress.yaml b/docker/kubernetes/dolphinscheduler/templates/ingress.yaml index 6edc82b12a..329ba2c24c 100644 --- a/docker/kubernetes/dolphinscheduler/templates/ingress.yaml +++ b/docker/kubernetes/dolphinscheduler/templates/ingress.yaml @@ -15,7 +15,13 @@ # limitations under the License. # {{- if .Values.ingress.enabled }} +{{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" }} +apiVersion: networking.k8s.io/v1 +{{- else if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1/Ingress" }} apiVersion: networking.k8s.io/v1beta1 +{{- else }} +apiVersion: extensions/v1beta1 +{{- end }} kind: Ingress metadata: name: {{ include "dolphinscheduler.fullname" . }} @@ -30,14 +36,22 @@ spec: paths: - path: {{ .Values.ingress.path }} backend: + {{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" }} + service: + name: {{ include "dolphinscheduler.fullname" . }}-api + port: + name: api-port + {{- else }} serviceName: {{ include "dolphinscheduler.fullname" . }}-api - servicePort: tcp-port + servicePort: api-port + {{- end }} + {{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" }} + pathType: Prefix + {{- end }} {{- if .Values.ingress.tls.enabled }} tls: hosts: - {{- range .Values.ingress.tls.hosts }} - - {{ . | quote }} - {{- end }} + - {{ .Values.ingress.host }} secretName: {{ .Values.ingress.tls.secretName }} {{- end }} {{- end }} \ No newline at end of file diff --git a/docker/kubernetes/dolphinscheduler/templates/svc-dolphinscheduler-api.yaml b/docker/kubernetes/dolphinscheduler/templates/svc-dolphinscheduler-api.yaml index 4d07ade242..5daa7c47df 100644 --- a/docker/kubernetes/dolphinscheduler/templates/svc-dolphinscheduler-api.yaml +++ b/docker/kubernetes/dolphinscheduler/templates/svc-dolphinscheduler-api.yaml @@ -25,9 +25,9 @@ metadata: spec: ports: - port: 12345 - targetPort: tcp-port + targetPort: api-port protocol: TCP - name: tcp-port + name: api-port selector: app.kubernetes.io/name: {{ include "dolphinscheduler.fullname" . }}-api app.kubernetes.io/instance: {{ .Release.Name }} diff --git a/docker/kubernetes/dolphinscheduler/values.yaml b/docker/kubernetes/dolphinscheduler/values.yaml index 99979af9d4..b68dd65b5b 100644 --- a/docker/kubernetes/dolphinscheduler/values.yaml +++ b/docker/kubernetes/dolphinscheduler/values.yaml @@ -390,9 +390,7 @@ api: ingress: enabled: false host: "dolphinscheduler.org" - path: "/" + path: "/dolphinscheduler" tls: enabled: false - hosts: - - "dolphinscheduler.org" secretName: "dolphinscheduler-tls" \ No newline at end of file From 61f4086e841c44c9ee0fa8bf04c6b7eb08dee822 Mon Sep 17 00:00:00 2001 From: chengshiwen Date: Sat, 27 Feb 2021 14:18:14 +0800 Subject: [PATCH 03/13] [Fix-4897][Docker] Support supervisor management and fix log stdout --- .licenserc.yaml | 1 + docker/build/Dockerfile | 3 +- .../logback/logback-alert.xml | 9 ++ .../dolphinscheduler/logback/logback-api.xml | 9 ++ .../logback/logback-master.xml | 9 ++ .../logback/logback-worker.xml | 9 ++ .../supervisor/supervisor.ini | 92 +++++++++++++++++++ docker/build/startup-init-conf.sh | 19 +++- docker/build/startup.sh | 79 +++++----------- script/dolphinscheduler-daemon.sh | 47 +++++----- 10 files changed, 188 insertions(+), 89 deletions(-) create mode 100644 docker/build/conf/dolphinscheduler/supervisor/supervisor.ini diff --git a/.licenserc.yaml b/.licenserc.yaml index ea6909e240..8f69da5608 100644 --- a/.licenserc.yaml +++ b/.licenserc.yaml @@ -34,6 +34,7 @@ header: - '**/*.md' - '**/*.json' - '**/*.iml' + - '**/*.ini' - '**/.babelrc' - '**/.eslintignore' - '**/.gitignore' diff --git a/docker/build/Dockerfile b/docker/build/Dockerfile index eeea20d482..97a99e6df0 100644 --- a/docker/build/Dockerfile +++ b/docker/build/Dockerfile @@ -28,7 +28,7 @@ ENV DOCKER true # RUN sed -i "s/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g" /etc/apk/repositories # RUN sed -i 's/dl-cdn.alpinelinux.org/mirror.tuna.tsinghua.edu.cn/g' /etc/apk/repositories RUN apk update && \ - apk add --no-cache tzdata dos2unix bash python2 python3 procps sudo shadow tini postgresql-client && \ + apk add --no-cache tzdata dos2unix bash python2 python3 supervisor procps sudo shadow tini postgresql-client && \ cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \ apk del tzdata && \ rm -rf /var/cache/apk/* @@ -44,6 +44,7 @@ COPY ./startup-init-conf.sh /root/startup-init-conf.sh COPY ./startup.sh /root/startup.sh COPY ./conf/dolphinscheduler/*.tpl /opt/dolphinscheduler/conf/ COPY ./conf/dolphinscheduler/logback/* /opt/dolphinscheduler/conf/ +COPY ./conf/dolphinscheduler/supervisor/supervisor.ini /etc/supervisor.d/ COPY ./conf/dolphinscheduler/env/dolphinscheduler_env.sh.tpl /opt/dolphinscheduler/conf/env/ RUN dos2unix /root/checkpoint.sh && \ dos2unix /root/startup-init-conf.sh && \ diff --git a/docker/build/conf/dolphinscheduler/logback/logback-alert.xml b/docker/build/conf/dolphinscheduler/logback/logback-alert.xml index eec78385db..1718947dd1 100644 --- a/docker/build/conf/dolphinscheduler/logback/logback-alert.xml +++ b/docker/build/conf/dolphinscheduler/logback/logback-alert.xml @@ -20,6 +20,14 @@ + + + + [%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %msg%n + + UTF-8 + + ${log.base}/dolphinscheduler-alert.log @@ -37,6 +45,7 @@ + diff --git a/docker/build/conf/dolphinscheduler/logback/logback-api.xml b/docker/build/conf/dolphinscheduler/logback/logback-api.xml index 9dcec7afce..bec3d9aa49 100644 --- a/docker/build/conf/dolphinscheduler/logback/logback-api.xml +++ b/docker/build/conf/dolphinscheduler/logback/logback-api.xml @@ -20,6 +20,14 @@ + + + + [%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %msg%n + + UTF-8 + + @@ -47,6 +55,7 @@ + diff --git a/docker/build/conf/dolphinscheduler/logback/logback-master.xml b/docker/build/conf/dolphinscheduler/logback/logback-master.xml index 202369c8dc..f0d2c81df2 100644 --- a/docker/build/conf/dolphinscheduler/logback/logback-master.xml +++ b/docker/build/conf/dolphinscheduler/logback/logback-master.xml @@ -20,6 +20,14 @@ + + + + [%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %msg%n + + UTF-8 + + @@ -66,6 +74,7 @@ + diff --git a/docker/build/conf/dolphinscheduler/logback/logback-worker.xml b/docker/build/conf/dolphinscheduler/logback/logback-worker.xml index bf4dd46332..7127219873 100644 --- a/docker/build/conf/dolphinscheduler/logback/logback-worker.xml +++ b/docker/build/conf/dolphinscheduler/logback/logback-worker.xml @@ -20,6 +20,14 @@ + + + + [%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %msg%n + + UTF-8 + + + diff --git a/docker/build/conf/dolphinscheduler/supervisor/supervisor.ini b/docker/build/conf/dolphinscheduler/supervisor/supervisor.ini new file mode 100644 index 0000000000..c8c4e126c2 --- /dev/null +++ b/docker/build/conf/dolphinscheduler/supervisor/supervisor.ini @@ -0,0 +1,92 @@ +; 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. + +; program config file + +[program:master] +command=%(ENV_DOLPHINSCHEDULER_BIN)s/dolphinscheduler-daemon.sh start master-server +directory=%(ENV_DOLPHINSCHEDULER_HOME)s +priority=999 +autostart=%(ENV_MASTER_START_ENABLED)s +autorestart=true +startsecs=10 +stopwaitsecs=3 +exitcodes=0 +stopasgroup=true +killasgroup=true +redirect_stderr=true +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 + +[program:worker] +command=%(ENV_DOLPHINSCHEDULER_BIN)s/dolphinscheduler-daemon.sh start worker-server +directory=%(ENV_DOLPHINSCHEDULER_HOME)s +priority=999 +autostart=%(ENV_WORKER_START_ENABLED)s +autorestart=true +startsecs=10 +stopwaitsecs=3 +exitcodes=0 +stopasgroup=true +killasgroup=true +redirect_stderr=true +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 + +[program:api] +command=%(ENV_DOLPHINSCHEDULER_BIN)s/dolphinscheduler-daemon.sh start api-server +directory=%(ENV_DOLPHINSCHEDULER_HOME)s +priority=999 +autostart=%(ENV_API_START_ENABLED)s +autorestart=true +startsecs=10 +stopwaitsecs=3 +exitcodes=0 +stopasgroup=true +killasgroup=true +redirect_stderr=true +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 + +[program:alert] +command=%(ENV_DOLPHINSCHEDULER_BIN)s/dolphinscheduler-daemon.sh start alert-server +directory=%(ENV_DOLPHINSCHEDULER_HOME)s +priority=999 +autostart=%(ENV_ALERT_START_ENABLED)s +autorestart=true +startsecs=5 +stopwaitsecs=3 +exitcodes=0 +stopasgroup=true +killasgroup=true +redirect_stderr=true +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 + +[program:logger] +command=%(ENV_DOLPHINSCHEDULER_BIN)s/dolphinscheduler-daemon.sh start logger-server +directory=%(ENV_DOLPHINSCHEDULER_HOME)s +priority=999 +autostart=%(ENV_LOGGER_START_ENABLED)s +autorestart=true +startsecs=5 +stopwaitsecs=3 +exitcodes=0 +stopasgroup=true +killasgroup=true +redirect_stderr=true +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 diff --git a/docker/build/startup-init-conf.sh b/docker/build/startup-init-conf.sh index 89be05eaf6..c4109dd0f2 100755 --- a/docker/build/startup-init-conf.sh +++ b/docker/build/startup-init-conf.sh @@ -92,11 +92,20 @@ export ALERT_LISTEN_HOST=${ALERT_LISTEN_HOST:-"127.0.0.1"} #============================================================================ export ALERT_PLUGIN_DIR=${ALERT_PLUGIN_DIR:-"lib/plugin/alert"} -echo "generate app config" -find ${DOLPHINSCHEDULER_HOME}/conf/ -name "*.tpl" | while read file; do +echo "generate dolphinscheduler config" +ls ${DOLPHINSCHEDULER_HOME}/conf/ | grep ".tpl" | while read line; do eval "cat << EOF -$(cat ${file}) +$(cat ${DOLPHINSCHEDULER_HOME}/conf/${line}) EOF -" > ${file%.*} +" > ${DOLPHINSCHEDULER_HOME}/conf/${line%.*} done -find ${DOLPHINSCHEDULER_HOME}/conf/ -name "*.sh" -exec chmod +x {} \; + +# generate dolphinscheduler env only in docker +DOLPHINSCHEDULER_ENV_PATH=${DOLPHINSCHEDULER_HOME}/conf/env/dolphinscheduler_env.sh +if [ -z "${KUBERNETES_SERVICE_HOST}" ] && [ -r "${DOLPHINSCHEDULER_ENV_PATH}.tpl" ]; then +eval "cat << EOF +$(cat ${DOLPHINSCHEDULER_ENV_PATH}.tpl) +EOF +" > ${DOLPHINSCHEDULER_ENV_PATH} +chmod +x ${DOLPHINSCHEDULER_ENV_PATH} +fi diff --git a/docker/build/startup.sh b/docker/build/startup.sh index 5c00c272c2..934fac3ae7 100755 --- a/docker/build/startup.sh +++ b/docker/build/startup.sh @@ -18,9 +18,12 @@ set -e -DOLPHINSCHEDULER_BIN=${DOLPHINSCHEDULER_HOME}/bin -DOLPHINSCHEDULER_SCRIPT=${DOLPHINSCHEDULER_HOME}/script -DOLPHINSCHEDULER_LOGS=${DOLPHINSCHEDULER_HOME}/logs +export DOLPHINSCHEDULER_BIN=${DOLPHINSCHEDULER_HOME}/bin +export MASTER_START_ENABLED=false +export WORKER_START_ENABLED=false +export API_START_ENABLED=false +export ALERT_START_ENABLED=false +export LOGGER_START_ENABLED=false # wait database waitDatabase() { @@ -54,7 +57,7 @@ waitDatabase() { # init database initDatabase() { echo "import sql data" - ${DOLPHINSCHEDULER_SCRIPT}/create-dolphinscheduler.sh + ${DOLPHINSCHEDULER_HOME}/script/create-dolphinscheduler.sh } # check ds version @@ -102,41 +105,6 @@ waitZK() { done } -# start master-server -initMasterServer() { - echo "start master-server" - ${DOLPHINSCHEDULER_BIN}/dolphinscheduler-daemon.sh stop master-server - ${DOLPHINSCHEDULER_BIN}/dolphinscheduler-daemon.sh start master-server -} - -# start worker-server -initWorkerServer() { - echo "start worker-server" - ${DOLPHINSCHEDULER_BIN}/dolphinscheduler-daemon.sh stop worker-server - ${DOLPHINSCHEDULER_BIN}/dolphinscheduler-daemon.sh start worker-server -} - -# start api-server -initApiServer() { - echo "start api-server" - ${DOLPHINSCHEDULER_BIN}/dolphinscheduler-daemon.sh stop api-server - ${DOLPHINSCHEDULER_BIN}/dolphinscheduler-daemon.sh start api-server -} - -# start logger-server -initLoggerServer() { - echo "start logger-server" - ${DOLPHINSCHEDULER_BIN}/dolphinscheduler-daemon.sh stop logger-server - ${DOLPHINSCHEDULER_BIN}/dolphinscheduler-daemon.sh start logger-server -} - -# start alert-server -initAlertServer() { - echo "start alert-server" - ${DOLPHINSCHEDULER_BIN}/dolphinscheduler-daemon.sh stop alert-server - ${DOLPHINSCHEDULER_BIN}/dolphinscheduler-daemon.sh start alert-server -} - # print usage printUsage() { echo -e "Dolphin Scheduler is a distributed and easy-to-expand visual DAG workflow scheduling system," @@ -157,38 +125,33 @@ case "$1" in waitZK waitDatabase initDatabase - initMasterServer - initWorkerServer - initApiServer - initAlertServer - initLoggerServer - LOGFILE=${DOLPHINSCHEDULER_LOGS}/dolphinscheduler-api.log + export MASTER_START_ENABLED=true + export WORKER_START_ENABLED=true + export API_START_ENABLED=true + export ALERT_START_ENABLED=true + export LOGGER_START_ENABLED=true ;; (master-server) waitZK waitDatabase - initMasterServer - LOGFILE=${DOLPHINSCHEDULER_LOGS}/dolphinscheduler-master.log + export MASTER_START_ENABLED=true ;; (worker-server) waitZK waitDatabase - initWorkerServer - initLoggerServer - LOGFILE=${DOLPHINSCHEDULER_LOGS}/dolphinscheduler-worker.log + export WORKER_START_ENABLED=true + export LOGGER_START_ENABLED=true ;; (api-server) waitZK waitDatabase initDatabase - initApiServer - LOGFILE=${DOLPHINSCHEDULER_LOGS}/dolphinscheduler-api.log + export API_START_ENABLED=true ;; (alert-server) waitDatabase checkInitDatabase - initAlertServer - LOGFILE=${DOLPHINSCHEDULER_LOGS}/dolphinscheduler-alert.log + export ALERT_START_ENABLED=true ;; (help) printUsage @@ -200,8 +163,8 @@ case "$1" in ;; esac -# init directories and log files -mkdir -p ${DOLPHINSCHEDULER_LOGS} && cat /dev/null >> ${LOGFILE} +# init directories +mkdir -p ${DOLPHINSCHEDULER_HOME}/logs -echo "tail begin" -exec bash -c "tail -n 1 -f ${LOGFILE}" +# start supervisord +supervisord -n -u root diff --git a/script/dolphinscheduler-daemon.sh b/script/dolphinscheduler-daemon.sh index a87e62e187..08aaa14d02 100755 --- a/script/dolphinscheduler-daemon.sh +++ b/script/dolphinscheduler-daemon.sh @@ -54,42 +54,36 @@ fi log=$DOLPHINSCHEDULER_LOG_DIR/dolphinscheduler-$command-$HOSTNAME.out pid=$DOLPHINSCHEDULER_PID_DIR/dolphinscheduler-$command.pid -# print logs to /dev/null in docker -if [ "$DOCKER" = "true" ]; then - echo "start in docker" - log=/dev/null -fi - cd $DOLPHINSCHEDULER_HOME if [ "$command" = "api-server" ]; then HEAP_INITIAL_SIZE=1g HEAP_MAX_SIZE=1g - HEAP_NEW_GENERATION__SIZE=500m + HEAP_NEW_GENERATION_SIZE=512m LOG_FILE="-Dlogging.config=classpath:logback-api.xml -Dspring.profiles.active=api" CLASS=org.apache.dolphinscheduler.api.ApiApplicationServer elif [ "$command" = "master-server" ]; then HEAP_INITIAL_SIZE=4g HEAP_MAX_SIZE=4g - HEAP_NEW_GENERATION__SIZE=2g + HEAP_NEW_GENERATION_SIZE=2g LOG_FILE="-Dlogging.config=classpath:logback-master.xml -Ddruid.mysql.usePingMethod=false" CLASS=org.apache.dolphinscheduler.server.master.MasterServer elif [ "$command" = "worker-server" ]; then HEAP_INITIAL_SIZE=2g HEAP_MAX_SIZE=2g - HEAP_NEW_GENERATION__SIZE=1g + HEAP_NEW_GENERATION_SIZE=1g LOG_FILE="-Dlogging.config=classpath:logback-worker.xml -Ddruid.mysql.usePingMethod=false" CLASS=org.apache.dolphinscheduler.server.worker.WorkerServer elif [ "$command" = "alert-server" ]; then HEAP_INITIAL_SIZE=1g HEAP_MAX_SIZE=1g - HEAP_NEW_GENERATION__SIZE=500m + HEAP_NEW_GENERATION_SIZE=512m LOG_FILE="-Dlogback.configurationFile=conf/logback-alert.xml" CLASS=org.apache.dolphinscheduler.alert.AlertServer elif [ "$command" = "logger-server" ]; then HEAP_INITIAL_SIZE=1g HEAP_MAX_SIZE=1g - HEAP_NEW_GENERATION__SIZE=500m + HEAP_NEW_GENERATION_SIZE=512m CLASS=org.apache.dolphinscheduler.server.log.LoggerServer elif [ "$command" = "zookeeper-server" ]; then #note: this command just for getting a quick experience,not recommended for production. this operation will start a standalone zookeeper server @@ -100,26 +94,29 @@ else exit 1 fi -export DOLPHINSCHEDULER_OPTS="-server -Xms$HEAP_INITIAL_SIZE -Xmx$HEAP_MAX_SIZE -Xmn$HEAP_NEW_GENERATION__SIZE -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -Xss512k -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:LargePageSizeInBytes=128m -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 -XX:+PrintGCDetails -Xloggc:gc.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=dump.hprof $DOLPHINSCHEDULER_OPTS" +export DOLPHINSCHEDULER_OPTS="-server -Xms$HEAP_INITIAL_SIZE -Xmx$HEAP_MAX_SIZE -Xmn$HEAP_NEW_GENERATION_SIZE -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -Xss512k -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:LargePageSizeInBytes=128m -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 -XX:+PrintGCDetails -Xloggc:$DOLPHINSCHEDULER_LOG_DIR/gc.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=dump.hprof $DOLPHINSCHEDULER_OPTS" case $startStop in (start) - [ -w "$DOLPHINSCHEDULER_PID_DIR" ] || mkdir -p "$DOLPHINSCHEDULER_PID_DIR" + exec_command="$LOG_FILE $DOLPHINSCHEDULER_OPTS -classpath $DOLPHINSCHEDULER_CONF_DIR:$DOLPHINSCHEDULER_LIB_JARS $CLASS" + if [ "$DOCKER" = "true" ]; then + echo "start in docker" + $JAVA_HOME/bin/java $exec_command + else + [ -w "$DOLPHINSCHEDULER_PID_DIR" ] || mkdir -p "$DOLPHINSCHEDULER_PID_DIR" - if [ -f $pid ]; then - if kill -0 `cat $pid` > /dev/null 2>&1; then - echo $command running as process `cat $pid`. Stop it first. - exit 1 + if [ -f $pid ]; then + if kill -0 `cat $pid` > /dev/null 2>&1; then + echo $command running as process `cat $pid`. Stop it first. + exit 1 + fi fi - fi - - echo starting $command, logging to $log - exec_command="$LOG_FILE $DOLPHINSCHEDULER_OPTS -classpath $DOLPHINSCHEDULER_CONF_DIR:$DOLPHINSCHEDULER_LIB_JARS $CLASS" - - echo "nohup $JAVA_HOME/bin/java $exec_command > $log 2>&1 &" - nohup $JAVA_HOME/bin/java $exec_command > $log 2>&1 & - echo $! > $pid + echo starting $command, logging to $log + echo "nohup $JAVA_HOME/bin/java $exec_command > $log 2>&1 &" + nohup $JAVA_HOME/bin/java $exec_command > $log 2>&1 & + echo $! > $pid + fi ;; (stop) From 53aedc50eca8bad176e1c9dfbec6d38b9c34cd4b Mon Sep 17 00:00:00 2001 From: JuFeng Li <920347627@qq.com> Date: Wed, 3 Mar 2021 20:36:41 +0800 Subject: [PATCH 04/13] [Fix-4934][UI] Fix task statics info bug (#4935) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * ui statics info bug fix Co-authored-by: 李巨丰 --- .../src/js/conf/home/pages/projects/pages/index/index.vue | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/index/index.vue b/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/index/index.vue index 1fdf8a8561..661f46ecdd 100644 --- a/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/index/index.vue +++ b/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/index/index.vue @@ -98,6 +98,8 @@ this.searchParams.projectId = this.id === 0 ? 0 : localStore.getItem('projectId') this.dataTime[0] = dayjs().format('YYYY-MM-DD 00:00:00') this.dataTime[1] = dayjs().format('YYYY-MM-DD HH:mm:ss') + this.searchParams.startDate = this.dataTime[0] + this.searchParams.endDate = this.dataTime[1] }, components: { mListConstruction, From 658a7f5661a3bee4f6bfb72d6981eb8d1c428e77 Mon Sep 17 00:00:00 2001 From: JuFeng Li <920347627@qq.com> Date: Wed, 3 Mar 2021 20:37:35 +0800 Subject: [PATCH 05/13] [Fix-4940][UI]Fix when upload a file to directory call resources/list-paging error (#4941) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix resource page call list-page error Co-authored-by: 李巨丰 --- .../home/pages/resource/pages/file/pages/subdirectory/index.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/resource/pages/file/pages/subdirectory/index.vue b/dolphinscheduler-ui/src/js/conf/home/pages/resource/pages/file/pages/subdirectory/index.vue index 6c19297e6d..50c0ecfa0c 100755 --- a/dolphinscheduler-ui/src/js/conf/home/pages/resource/pages/file/pages/subdirectory/index.vue +++ b/dolphinscheduler-ui/src/js/conf/home/pages/resource/pages/file/pages/subdirectory/index.vue @@ -112,6 +112,7 @@ this.isLeft = true } this.isLoading = !flag + this.searchParams.id = this.$route.params.id this.getResourcesListP(this.searchParams).then(res => { if (this.searchParams.pageNo > 1 && res.totalList.length === 0) { this.searchParams.pageNo = this.searchParams.pageNo - 1 From e5fb79b433d01b97b99ffb7b9d40c9d78bf4fb76 Mon Sep 17 00:00:00 2001 From: zhuangchong <37063904+zhuangchong@users.noreply.github.com> Date: Wed, 3 Mar 2021 20:38:14 +0800 Subject: [PATCH 06/13] the instance page duration field content added empty filter processing. (#4938) --- .../pages/instance/pages/list/_source/list.vue | 6 +++++- .../projects/pages/taskInstance/_source/list.vue | 12 ++++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/instance/pages/list/_source/list.vue b/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/instance/pages/list/_source/list.vue index cc0e51345a..554654e4cb 100644 --- a/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/instance/pages/list/_source/list.vue +++ b/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/instance/pages/list/_source/list.vue @@ -56,7 +56,11 @@ {{scope.row.endTime | formatDate}} - + + + diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/taskInstance/_source/list.vue b/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/taskInstance/_source/list.vue index b5bb553865..d8d1b6cdb9 100644 --- a/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/taskInstance/_source/list.vue +++ b/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/taskInstance/_source/list.vue @@ -53,9 +53,17 @@ {{scope.row.endTime | formatDate}} - - + + + + + +