Kubernetes Pod Logs Feature Fails for Pods With > 1 Container
Summary
Kubernetes/GitLab environment pod log feature does not work for pods with more than one container.
Steps to reproduce
- Using an existing project with a working Kubernetes integration.
- Create a pod with > 1 container.
- View that environment's pod's logs.
Example Project
Unfortunately all of our org's projects are private.
What is the current bug behavior?
Viewing a pod with > 1 container fails with the red UI banner error: Something went wrong on our end
(screenshot below). The controller API endpoint responds to the browser with 500 Internal Server Error.
What is the expected correct behavior?
Viewing a pod with > 1 container should work. Specifically:
- Describe the pod first to ascertain its containers and display the first element of the array/list of containers.
- The
Pod logs from
dropdown should list the containers in the current pod. Currently the dropdown contains the pod name which doesn't make sense to me given the current page/view is for a specific pod (the URL even has the pod name in the query string).
Relevant logs and/or screenshots
Output of checks
This bug happens on GitLab.com
Possible fixes
- Controller
environments_controller.rb
logs.json
endpoint - Calls platform
kubernetes.rb
read_pod_logs
method without optional argumentcontainer
which - Calls
kubeclient
get_pod_log
method - Calls Kubernetes API
log endpoint
https://kubernetes/api/v1/namespaces/{namespace}/pods/{pod}/log?tailLines=500 - Which fails with 400 Bad Request
- Which controller
environments_controller.rb
responds with 500 Internal Server Error
Edited by Cameron Boulton