Skip to content

Commit 1b3f558

Browse files
authored
[Feature] Previous Pod Logs in DebugPackage (#1899)
1 parent a43424b commit 1b3f558

File tree

2 files changed

+37
-0
lines changed

2 files changed

+37
-0
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
- (Feature) Windows Platform CLI
1313
- (Feature) (Platform) Auth User Creation
1414
- (Maintenance) Add Common Api Import
15+
- (Feature) Previous Pod Logs in DebugPackage
1516

1617
## [1.2.48](https://github.com/arangodb/kube-arangodb/tree/1.2.48) (2025-05-08)
1718
- (Maintenance) Extend Documentation

pkg/debug_package/generators/kubernetes/kubernetes_core_pods.go

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,10 @@ func kubernetesCorePodLogs(ctx context.Context, logger zerolog.Logger, client kc
4545
}
4646

4747
files <- kubernetesCorePodLogsExtract(ctx, client, item, s[id].Name)
48+
49+
if s[id].RestartCount > 0 {
50+
files <- kubernetesPreviousCorePodLogsExtract(ctx, client, item, s[id].Name)
51+
}
4852
}
4953
}
5054

@@ -55,6 +59,10 @@ func kubernetesCorePodLogs(ctx context.Context, logger zerolog.Logger, client kc
5559
}
5660

5761
files <- kubernetesCorePodLogsExtract(ctx, client, item, s[id].Name)
62+
63+
if s[id].RestartCount > 0 {
64+
files <- kubernetesPreviousCorePodLogsExtract(ctx, client, item, s[id].Name)
65+
}
5866
}
5967
}
6068

@@ -65,12 +73,40 @@ func kubernetesCorePodLogs(ctx context.Context, logger zerolog.Logger, client kc
6573
}
6674

6775
files <- kubernetesCorePodLogsExtract(ctx, client, item, s[id].Name)
76+
77+
if s[id].RestartCount > 0 {
78+
files <- kubernetesPreviousCorePodLogsExtract(ctx, client, item, s[id].Name)
79+
}
6880
}
6981
}
7082

7183
return nil
7284
}
7385

86+
func kubernetesPreviousCorePodLogsExtract(ctx context.Context, client kclient.Client, item *core.Pod, container string) shared.File {
87+
return shared.NewFile(fmt.Sprintf("logs/container/%s.previous", container), func() ([]byte, error) {
88+
res := client.Kubernetes().CoreV1().Pods(item.GetNamespace()).GetLogs(item.GetName(), &core.PodLogOptions{
89+
Container: container,
90+
Timestamps: true,
91+
Previous: true,
92+
})
93+
94+
q, err := res.Stream(ctx)
95+
if err != nil {
96+
return nil, err
97+
}
98+
99+
defer q.Close()
100+
101+
d, err := io.ReadAll(q)
102+
if err != nil {
103+
return nil, err
104+
}
105+
106+
return d, nil
107+
})
108+
}
109+
74110
func kubernetesCorePodLogsExtract(ctx context.Context, client kclient.Client, item *core.Pod, container string) shared.File {
75111
return shared.NewFile(fmt.Sprintf("logs/container/%s", container), func() ([]byte, error) {
76112
res := client.Kubernetes().CoreV1().Pods(item.GetNamespace()).GetLogs(item.GetName(), &core.PodLogOptions{

0 commit comments

Comments
 (0)