From 0530291b09bc053f6609c06e61ceb38c7d9fc2d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Han?= Date: Thu, 23 Sep 2021 15:31:17 +0200 Subject: [PATCH] ceph: add signal handling for log collector MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The log collector was not responding to SIGINT or SIGTERM correctly since the parent bash process did not have the job control functionality enabled. Now any signal received on bash will exit the container immediately. Signed-off-by: Sébastien Han --- pkg/operator/ceph/controller/spec.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/pkg/operator/ceph/controller/spec.go b/pkg/operator/ceph/controller/spec.go index 8e58b752fd566..e8fd2778d5494 100644 --- a/pkg/operator/ceph/controller/spec.go +++ b/pkg/operator/ceph/controller/spec.go @@ -66,8 +66,6 @@ var logger = capnslog.NewPackageLogger("github.com/rook/rook", "ceph-spec") var ( cronLogRotate = ` -set -xe - CEPH_CLIENT_ID=%s PERIODICITY=%s LOG_ROTATE_CEPH_FILE=/etc/logrotate.d/ceph @@ -624,13 +622,18 @@ func LogCollectorContainer(daemonID, ns string, c cephv1.ClusterSpec) *v1.Contai Name: logCollector, Command: []string{ "/bin/bash", - "-c", + "-c", // Command to run + "-x", // Print commands and their arguments as they are executed + "-e", // Exit immediately if a command exits with a non-zero status. + "-m", // Terminal job control, allows job to be terminated by SIGTERM fmt.Sprintf(cronLogRotate, daemonID, c.LogCollector.Periodicity), }, Image: c.CephVersion.Image, VolumeMounts: DaemonVolumeMounts(config.NewDatalessDaemonDataPathMap(ns, c.DataDirHostPath), ""), SecurityContext: PodSecurityContext(), Resources: cephv1.GetLogCollectorResources(c.Resources), + // We need a TTY for the bash job control (enabled by -m) + TTY: true, } }