Skip to content

Commit

Permalink
ceph: add signal handling for log collector
Browse files Browse the repository at this point in the history
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 <seb@redhat.com>
  • Loading branch information
leseb committed Sep 27, 2021
1 parent 76b2ebb commit a649f64
Showing 1 changed file with 6 additions and 3 deletions.
9 changes: 6 additions & 3 deletions pkg/operator/ceph/controller/spec.go
Expand Up @@ -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
Expand Down Expand Up @@ -624,13 +622,18 @@ func LogCollectorContainer(daemonID, ns string, c cephv1.ClusterSpec) *v1.Contai
Name: logCollector,
Command: []string{
"/bin/bash",
"-c",
"-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
"-c", // Command to run
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,
}
}

Expand Down

0 comments on commit a649f64

Please sign in to comment.