From 6f3a7c27f04fa83755a32ad8548a41f2a0daee6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mika=C3=ABl=20Cluseau?= Date: Sun, 6 Oct 2024 23:45:08 +0200 Subject: [PATCH] fix(pkg/repository/maintenance): don't panic when there's no container statuses MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mikaƫl Cluseau --- changelogs/unreleased/8271-mcluseau | 1 + pkg/repository/maintenance.go | 10 +++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 changelogs/unreleased/8271-mcluseau diff --git a/changelogs/unreleased/8271-mcluseau b/changelogs/unreleased/8271-mcluseau new file mode 100644 index 0000000000..189d797bc8 --- /dev/null +++ b/changelogs/unreleased/8271-mcluseau @@ -0,0 +1 @@ +fix(pkg/repository/maintenance): don't panic when there's no container statuses diff --git a/pkg/repository/maintenance.go b/pkg/repository/maintenance.go index 1a137cba90..7105c8315d 100644 --- a/pkg/repository/maintenance.go +++ b/pkg/repository/maintenance.go @@ -117,7 +117,15 @@ func GetMaintenanceResultFromJob(cli client.Client, job *batchv1.Job) (string, e } // we only have one maintenance pod for the job - return podList.Items[0].Status.ContainerStatuses[0].State.Terminated.Message, nil + pod := podList.Items[0] + + statuses := pod.Status.ContainerStatuses + if len(statuses) == 0 { + return "", fmt.Errorf("no container statuses found for job %s", job.Name) + } + + // we only have one maintenance container + return statuses[0].State.Terminated.Message, nil } func GetLatestMaintenanceJob(cli client.Client, ns string) (*batchv1.Job, error) {