-
Bug
-
Resolution: Unresolved
-
Major
-
None
Hi,
This PR https://github.com/jenkinsci/kubernetes-plugin/pull/1699 was intended to improve the 'KubernetesComputer' container logs.
However, logs for a container always give the message: 'Pod not found'.
After a quick look at the source code, the error became clear very quickly.
In short, the query param 'containerId' is used to find the 'PodResource'. I believe the correct value should be the pod name, which is passed as a path param.
public void doContainerLog(@QueryParameter String containerId, StaplerRequest2 req, StaplerResponse2 rsp) throws KubernetesAuthException, IOException { String podName = req.getContextPath() Jenkins.get().checkPermission(Computer.EXTENDED_READ); ByteBuffer outputStream = new ByteBuffer(); LargeText text = new LargeText(outputStream, false); KubernetesSlave slave = getNode(); if (slave != null) { KubernetesCloud cloud = slave.getKubernetesCloud(); String namespace = StringUtils.defaultIfBlank(slave.getNamespace(), cloud.getNamespace()); PodResource resource = cloud.getPodResource(namespace, containerId); // ...
A request's context looks like this:
/jenkins/computer/mypodname/containerLog?containerId=jnlp