Issue
- Kubernetes plugin is throwing errors while provisioning the agents pointing to
io.fabric8.kubernetes.client.KubernetesClientException
with a similar stacktrace like the following:
Error in provisioning; agent=KubernetesSlave name: python-pod-0ppnb-qnvc7, template=PodTemplate{, name='python-pod-0ppnb', namespace='jenkins', label='python-pod', nodeUsageMode=EXCLUSIVE, containers=[ContainerTemplate{name='python-agent', image='quay.io/dghubble/python-agent:4462978780179489a5608c480d9c64f8cb61bc7f', workingDir='/home/jenkins/agent', command='cat', ttyEnabled=true}], annotations=[org.csanchez.jenkins.plugins.kubernetes.PodAnnotation@aab9c821]}
io.fabric8.kubernetes.client.KubernetesClientException:
at io.fabric8.kubernetes.client.dsl.internal.WatchConnectionManager$1.onFailure(WatchConnectionManager.java:198)
at okhttp3.internal.ws.RealWebSocket.failWebSocket(RealWebSocket.java:571)
at okhttp3.internal.ws.RealWebSocket$2.onResponse(RealWebSocket.java:198)
at okhttp3.RealCall$AsyncCall.execute(RealCall.java:206)
at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Environment
- CloudBees CI (CloudBees Core)
- CloudBees CI (CloudBees Core) on modern cloud platforms - Managed Master
- CloudBees CI (CloudBees Core) on modern cloud platforms - Operations Center
- CloudBees CI (CloudBees Core) on traditional platforms - Client Master
- CloudBees CI (CloudBees Core) on traditional platforms - Operations Center
- CloudBees Jenkins Enterprise
- CloudBees Jenkins Enterprise - Managed Master
- CloudBees Jenkins Enterprise - Operations Center
- CloudBees Jenkins Platform - Client Master
- CloudBees Jenkins Platform - Operations Center
- CloudBees Jenkins Distribution
- Kubernetes plugin < 1.18.2
Related Issues
Explanation
The problem is caused by the issue fabric8io/kubernetes-client #1667 that is a dependency of the kubernetes plugin. This issue prevents agent provisioning when the kubernetes URL that configured in the Kubernetes Cloud does not specify any port, for example https://kubernetes.default
.
The issue has been resolved in version 4.4.0 of the kubernetes client. The fix is included 1.18.2 of the kubernetes plugin.
Resolution
The solution is to upgrade Kubernetes Plugin to version 1.18.2 or later.
Workaround
The workaround is to change the Kubernetes URL of the Kubernetes Cloud configure under Manage Jenkins > Configure System > Cloud so that the URL contains a specific port. For example change https://kubernetes.default
to https://kubernetes.default:443
.
0 Comments