39
39
import io .fabric8 .kubernetes .client .DefaultKubernetesClient ;
40
40
import io .fabric8 .kubernetes .client .KubernetesClient ;
41
41
import jenkins .model .Jenkins ;
42
+ import org .jenkinsci .plugins .docker .commons .credentials .DockerServerCredentials ;
42
43
import org .jenkinsci .plugins .kubernetes .credentials .TokenProducer ;
43
44
import org .jenkinsci .plugins .plaincredentials .FileCredentials ;
44
45
import org .jenkinsci .plugins .plaincredentials .StringCredentials ;
@@ -152,6 +153,10 @@ public KubernetesClient createClient() throws NoSuchAlgorithmException, Unrecove
152
153
builder .withClientCertData (Base64 .encodeBase64String (certificate .getEncoded ()))
153
154
.withClientKeyData (pemEncodeKey (key ))
154
155
.withClientKeyPassphrase (Secret .toString (certificateCredentials .getPassword ()));
156
+ } else if (credentials instanceof DockerServerCredentials ) {
157
+ DockerServerCredentials certificateCredentials = (DockerServerCredentials ) credentials ;
158
+ builder .withClientCertData (certificateCredentials .getClientCertificate ())
159
+ .withClientKeyData (certificateCredentials .getClientKey ());
155
160
}
156
161
157
162
if (skipTlsVerify ) {
@@ -160,7 +165,11 @@ public KubernetesClient createClient() throws NoSuchAlgorithmException, Unrecove
160
165
161
166
if (caCertData != null ) {
162
167
// JENKINS-38829 CaCertData expects a Base64 encoded certificate
163
- builder .withCaCertData (Base64 .encodeBase64String (caCertData .getBytes (UTF_8 )));
168
+ if (credentials instanceof DockerServerCredentials ) {
169
+ builder .withCaCertData (org .apache .commons .codec .binary .StringUtils .newStringUtf8 (caCertData .getBytes (UTF_8 )));
170
+ } else {
171
+ builder .withCaCertData (Base64 .encodeBase64String (caCertData .getBytes (UTF_8 )));
172
+ }
164
173
}
165
174
166
175
builder = builder .withRequestTimeout (readTimeout * 1000 ).withConnectionTimeout (connectTimeout * 1000 );
0 commit comments