This is an automated email from the ASF dual-hosted git repository. chengpan pushed a commit to branch supervisor in repository https://gitbox.apache.org/repos/asf/kyuubi.git
commit cf3f113e11f6ddf70fb02cfae4633c9a52b245dd Author: Cheng Pan <[email protected]> AuthorDate: Mon May 15 02:38:01 2023 +0800 [K8S][HELM] Use supervisor to run kyuubi process --- charts/kyuubi/templates/kyuubi-deployment.yaml | 4 ++-- docker/Dockerfile | 26 +++++++++++++++++++++----- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/charts/kyuubi/templates/kyuubi-deployment.yaml b/charts/kyuubi/templates/kyuubi-deployment.yaml index 79d49a653..39c85bc5e 100644 --- a/charts/kyuubi/templates/kyuubi-deployment.yaml +++ b/charts/kyuubi/templates/kyuubi-deployment.yaml @@ -68,7 +68,7 @@ spec: {{- if .Values.livenessProbe.enabled }} livenessProbe: exec: - command: ["/bin/bash", "-c", "bin/kyuubi status"] + command: ["/usr/bin/supervisorctl status kyuubi"] initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }} periodSeconds: {{ .Values.livenessProbe.periodSeconds }} timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds }} @@ -78,7 +78,7 @@ spec: {{- if .Values.readinessProbe.enabled }} readinessProbe: exec: - command: ["/bin/bash", "-c", "$KYUUBI_HOME/bin/kyuubi status"] + command: ["/usr/bin/supervisorctl status kyuubi"] initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }} periodSeconds: {{ .Values.readinessProbe.periodSeconds }} timeoutSeconds: {{ .Values.readinessProbe.timeoutSeconds }} diff --git a/docker/Dockerfile b/docker/Dockerfile index 0440022de..5f9ca69f4 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -50,11 +50,29 @@ ENV KYUUBI_WORK_DIR_ROOT ${KYUUBI_HOME}/work RUN set -ex && \ sed -i 's/http:\/\/deb.\(.*\)/https:\/\/deb.\1/g' /etc/apt/sources.list && \ apt-get update && \ - apt-get install -y bash tini libc6 libpam-modules krb5-user libnss3 procps && \ + apt-get install -y bash tini libc6 libpam-modules krb5-user libnss3 procps supervisor && \ ln -snf /bin/bash /bin/sh && \ useradd -u ${kyuubi_uid} -g root kyuubi -d /home/kyuubi -m && \ mkdir -p ${KYUUBI_HOME} ${KYUUBI_LOG_DIR} ${KYUUBI_PID_DIR} ${KYUUBI_WORK_DIR_ROOT} && \ - rm -rf /var/cache/apt/* + rm -rf /var/cache/apt/* && rm -rf /var/lib/apt/lists/* + +COPY <<"EOF" /etc/supervisor/conf.d/supervisord.conf +[supervisord] +nodaemon = true +logfile = /var/log/supervisor/supervisord.log +pidfile = /var/run/supervisord.pid +childlogdir = /var/log/supervisor +EOF + +# stop the supervisord once kyuubi process is stopped, see details at +# https://github.com/Supervisor/supervisor/issues/712 +COPY <<"EOF" /etc/supervisor/conf.d/kyuubi.conf +[program:kyuubi] +command = bash -c "${KYUUBI_HOME}/bin/kyuubi run && kill -s SIGINT `cat supervisord.pid`" +stopasgroup = true +user=${kyuubi_uid} +directory=${KYUUBI_HOME} +EOF COPY LICENSE NOTICE RELEASE ${KYUUBI_HOME}/ COPY bin ${KYUUBI_HOME}/bin @@ -68,6 +86,4 @@ RUN chown -R kyuubi:root ${KYUUBI_HOME} && \ chmod ug+rw -R ${KYUUBI_HOME} && \ chmod a+rwx -R ${KYUUBI_WORK_DIR_ROOT} -CMD [ "./bin/kyuubi", "run" ] - -USER ${kyuubi_uid} +CMD ["/usr/bin/supervisord"]
