diff --git a/acceptanceTests/logs_test.go b/acceptanceTests/logs_test.go index 5508fdb11..d2808da97 100644 --- a/acceptanceTests/logs_test.go +++ b/acceptanceTests/logs_test.go @@ -81,11 +81,16 @@ func TestLogs(t *testing.T) { logsFileNames = append(logsFileNames, file.Name) } - if !Contains(logsFileNames, "mizu.mizu-api-server.log") { + if !Contains(logsFileNames, "mizu.mizu-api-server.mizu-api-server.log") { t.Errorf("api server logs not found") return } + if !Contains(logsFileNames, "mizu.mizu-api-server.basenine.log") { + t.Errorf("basenine logs not found") + return + } + if !Contains(logsFileNames, "mizu_cli.log") { t.Errorf("cli logs not found") return @@ -174,11 +179,16 @@ func TestLogsPath(t *testing.T) { logsFileNames = append(logsFileNames, file.Name) } - if !Contains(logsFileNames, "mizu.mizu-api-server.log") { + if !Contains(logsFileNames, "mizu.mizu-api-server.mizu-api-server.log") { t.Errorf("api server logs not found") return } + if !Contains(logsFileNames, "mizu.mizu-api-server.basenine.log") { + t.Errorf("basenine logs not found") + return + } + if !Contains(logsFileNames, "mizu_cli.log") { t.Errorf("cli logs not found") return diff --git a/acceptanceTests/tap_test.go b/acceptanceTests/tap_test.go index 52a9410fa..4a4606046 100644 --- a/acceptanceTests/tap_test.go +++ b/acceptanceTests/tap_test.go @@ -862,11 +862,16 @@ func TestTapDumpLogs(t *testing.T) { logsFileNames = append(logsFileNames, file.Name) } - if !Contains(logsFileNames, "mizu.mizu-api-server.log") { + if !Contains(logsFileNames, "mizu.mizu-api-server.mizu-api-server.log") { t.Errorf("api server logs not found") return } + if !Contains(logsFileNames, "mizu.mizu-api-server.basenine.log") { + t.Errorf("basenine logs not found") + return + } + if !Contains(logsFileNames, "mizu_cli.log") { t.Errorf("cli logs not found") return diff --git a/acceptanceTests/testsUtils.go b/acceptanceTests/testsUtils.go index 2a2701d28..58f4d69bd 100644 --- a/acceptanceTests/testsUtils.go +++ b/acceptanceTests/testsUtils.go @@ -92,7 +92,7 @@ func getDefaultCommandArgs() []string { setFlag := "--set" telemetry := "telemetry=false" agentImage := "agent-image=gcr.io/up9-docker-hub/mizu/ci:0.0.0" - imagePullPolicy := "image-pull-policy=Never" + imagePullPolicy := "image-pull-policy=IfNotPresent" headless := "headless=true" return []string{setFlag, telemetry, setFlag, agentImage, setFlag, imagePullPolicy, setFlag, headless} diff --git a/cli/mizu/fsUtils/mizuLogsUtils.go b/cli/mizu/fsUtils/mizuLogsUtils.go index fe79936cc..d43cfe5b6 100644 --- a/cli/mizu/fsUtils/mizuLogsUtils.go +++ b/cli/mizu/fsUtils/mizuLogsUtils.go @@ -38,18 +38,20 @@ func DumpLogs(ctx context.Context, provider *kubernetes.Provider, filePath strin defer zipWriter.Close() for _, pod := range pods { - logs, err := provider.GetPodLogs(ctx, pod.Namespace, pod.Name) - if err != nil { - logger.Log.Errorf("Failed to get logs, %v", err) - continue - } else { - logger.Log.Debugf("Successfully read log length %d for pod: %s.%s", len(logs), pod.Namespace, pod.Name) - } + for _, container := range pod.Spec.Containers { + logs, err := provider.GetPodLogs(ctx, pod.Namespace, pod.Name, container.Name) + if err != nil { + logger.Log.Errorf("Failed to get logs, %v", err) + continue + } else { + logger.Log.Debugf("Successfully read log length %d for pod: %s.%s.%s", len(logs), pod.Namespace, pod.Name, container.Name) + } - if err := AddStrToZip(zipWriter, logs, fmt.Sprintf("%s.%s.log", pod.Namespace, pod.Name)); err != nil { - logger.Log.Errorf("Failed write logs, %v", err) - } else { - logger.Log.Debugf("Successfully added log length %d from pod: %s.%s", len(logs), pod.Namespace, pod.Name) + if err := AddStrToZip(zipWriter, logs, fmt.Sprintf("%s.%s.%s.log", pod.Namespace, pod.Name, container.Name)); err != nil { + logger.Log.Errorf("Failed write logs, %v", err) + } else { + logger.Log.Debugf("Successfully added log length %d from pod: %s.%s.%s", len(logs), pod.Namespace, pod.Name, container.Name) + } } } diff --git a/docs/CONFIGURATION.md b/docs/CONFIGURATION.md index 50609f4ab..7282bc141 100644 --- a/docs/CONFIGURATION.md +++ b/docs/CONFIGURATION.md @@ -25,7 +25,7 @@ Please make sure to use full option name (`tap.dry-run` as opposed to `dry-run` * `dump-logs` - if set to `true`, saves log files for all Mizu components (tapper, api-server, CLI) in a zip file under `$HOME/.mizu`. Default value is `false` -* `image-pull-policy` - container image pull policy for Kubernetes, default value `Always`. Other accepted values are `Never` or `IfNotExist`. Please mind the implications when changing this. +* `image-pull-policy` - container image pull policy for Kubernetes, default value `Always`. Other accepted values are `Never` or `IfNotPresent`. Please mind the implications when changing this. * `kube-config-path` - path to alternative kubeconfig file to use for all interactions with Kubernetes cluster. By default - `$HOME/.kubeconfig` diff --git a/shared/kubernetes/provider.go b/shared/kubernetes/provider.go index ffdcc6e4f..1d5615b6c 100644 --- a/shared/kubernetes/provider.go +++ b/shared/kubernetes/provider.go @@ -943,8 +943,8 @@ func (provider *Provider) ListAllNamespaces(ctx context.Context) ([]core.Namespa return namespaces.Items, err } -func (provider *Provider) GetPodLogs(ctx context.Context, namespace string, podName string) (string, error) { - podLogOpts := core.PodLogOptions{} +func (provider *Provider) GetPodLogs(ctx context.Context, namespace string, podName string, containerName string) (string, error) { + podLogOpts := core.PodLogOptions{Container: containerName} req := provider.clientSet.CoreV1().Pods(namespace).GetLogs(podName, &podLogOpts) podLogs, err := req.Stream(ctx) if err != nil {