Skip to content

Commit 039113f

Browse files
authored
Merge pull request #266 from gocardless/CI-1438/add-console-exit-code
Emit exit codes of console containers when terminating
2 parents c6396c4 + 90ae22a commit 039113f

File tree

3 files changed

+11
-7
lines changed

3 files changed

+11
-7
lines changed

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
3.8.2
1+
3.9.0

apis/workloads/v1alpha1/lifecycle_recorder.go

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -197,17 +197,19 @@ func (l *lifecycleEventRecorderImpl) ConsoleAttach(ctx context.Context, csl *Con
197197

198198
func (l *lifecycleEventRecorderImpl) ConsoleTerminate(ctx context.Context, csl *Console, timedOut bool, pod *corev1.Pod) error {
199199
containerStatuses := make(map[string]string)
200+
exitCodes := make(map[string]int32)
200201
if pod != nil {
201-
appendStatusMessages(containerStatuses, pod.Status.InitContainerStatuses)
202-
appendStatusMessages(containerStatuses, pod.Status.ContainerStatuses)
203-
appendStatusMessages(containerStatuses, pod.Status.EphemeralContainerStatuses)
202+
appendStatusMessages(containerStatuses, exitCodes, pod.Status.InitContainerStatuses)
203+
appendStatusMessages(containerStatuses, exitCodes, pod.Status.ContainerStatuses)
204+
appendStatusMessages(containerStatuses, exitCodes, pod.Status.EphemeralContainerStatuses)
204205
}
205206

206207
event := &events.ConsoleTerminatedEvent{
207208
CommonEvent: l.makeConsoleCommonEvent(events.EventTerminated, csl),
208209
Spec: events.ConsoleTerminatedSpec{
209210
TimedOut: timedOut,
210211
ContainerStatuses: containerStatuses,
212+
ExitCodes: exitCodes,
211213
},
212214
}
213215

@@ -222,7 +224,7 @@ func (l *lifecycleEventRecorderImpl) ConsoleTerminate(ctx context.Context, csl *
222224
return nil
223225
}
224226

225-
func appendStatusMessages(result map[string]string, containerStatuses []corev1.ContainerStatus) {
227+
func appendStatusMessages(containerStatusResult map[string]string, exitCodeResult map[string]int32, containerStatuses []corev1.ContainerStatus) {
226228
if containerStatuses == nil {
227229
return
228230
}
@@ -241,7 +243,8 @@ func appendStatusMessages(result map[string]string, containerStatuses []corev1.C
241243
if s.Message != "" {
242244
message.WriteString(fmt.Sprintf(". Message: %s", s.Message))
243245
}
244-
result[containerStatus.Name] = message.String()
246+
containerStatusResult[containerStatus.Name] = message.String()
247+
exitCodeResult[containerStatus.Name] = s.ExitCode
245248
} else if containerStatus.State.Waiting != nil {
246249
s := containerStatus.State.Waiting
247250
var message strings.Builder
@@ -252,7 +255,7 @@ func appendStatusMessages(result map[string]string, containerStatuses []corev1.C
252255
if s.Message != "" {
253256
message.WriteString(fmt.Sprintf(" Message: %s", s.Message))
254257
}
255-
result[containerStatus.Name] = message.String()
258+
containerStatusResult[containerStatus.Name] = message.String()
256259
}
257260
}
258261
}

pkg/workloads/console/events/events.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ type ConsoleAttachEvent struct {
8585
type ConsoleTerminatedSpec struct {
8686
TimedOut bool `json:"timed_out"`
8787
ContainerStatuses map[string]string `json:"container_statuses"`
88+
ExitCodes map[string]int32 `json:"exit_codes"`
8889
}
8990

9091
type ConsoleTerminatedEvent struct {

0 commit comments

Comments
 (0)