2017-05-16 10 views
0

Fabric8についてもっと知りたいと思っていましたが、非常に簡単なプロジェクトでさえ構築することはできません。私はそれをMinikubeクラスター上でローカルに実行しています。Fabric8/Minikube:認可問題のためにJenkinsのビルドに失敗しています

セットアップは次のとおりです。

  • のMac OSシエラ
  • Minikubeのv0.18.0
  • Fabric8のv0.4.122

だから私は、地元のGogsリポジトリ内の単純な春のブートアプリケーションを持っています。このメッセージで失敗しているのビルド:

/usr/bin/git checkout -f d8af29f8af7a498331a244d245fb321003ef110d 
/usr/bin/git rev-list d8af29f8af7a498331a244d245fb321003ef110d # timeout=10 
[Pipeline] End of Pipeline 
io.fabric8.kubernetes.client.KubernetesClientException: An error has occurred. 
at io.fabric8.kubernetes.client.KubernetesClientException.launderThrowable(KubernetesClientException.java:57) 
at io.fabric8.kubernetes.client.utils.HttpClientUtils.createHttpClient(HttpClientUtils.java:153) 
[...] 
Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 
at sun.security.ssl.Alerts.getSSLException(Alerts.java:192) 
at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1949) 
at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:302) 

だから私はMinikubeからca.crtを取った(〜/ minikube/ca.crt)とそのジェンキンス-のgit-sshの秘密に(base64エンコード)を追加/var/run/secrets/kubernetes.io/serviceaccountのJenkinsポッドにマウントされます。このエラーで終了し、次のビルド:私はMinikubeからapiserver.crtを使用する場合

/usr/bin/git checkout -f d8af29f8af7a498331a244d245fb321003ef110d 
/usr/bin/git rev-list d8af29f8af7a498331a244d245fb321003ef110d # timeout=10 
[Pipeline] End of Pipeline 
io.fabric8.kubernetes.client.KubernetesClientException: Failure executing: GET at: https://kubernetes.default/. Message: Unauthorized 
. 

同じことが起こります。

代わりca.pemを使用する場合は、私が得る:

Caused by: java.security.cert.CertificateException: Unable to initialize, java.io.IOException: extra data given to DerValue constructor 
at sun.security.x509.X509CertImpl.<init>(X509CertImpl.java:198) 
at sun.security.provider.X509Factory.engineGenerateCertificate(X509Factory.java:102) 

私は秘密にapiserver.crtとapiserver.keyの両方を追加する場合にのみ、ジェンキンスポッドからKubernetes APIにアクセスすることができます。

curl -k --cert apiserver.crt --key apiserver.key https://kubernetes.default/. 

が成功しましたが、Jenkinsのビルドはまだ失敗しています。

私はここで少し失われています。誰もどのように続けるか考えていますか?

おかげに関して、 ダニエル

答えて

1

我々は修正を持っていますが、それはまだリリースされていません。詳細はhttps://github.com/fabric8io/fabric8/issues/6829#issuecomment-301467664であり、回避策についても説明しています。

TL; DRあなたはジェンキンスサービスアカウントを編集して、ジェンキンスマスターポッドを再起動する前に次の行を削除することができます役立ちます

-secrets:  
-- name: "jenkins-git-ssh"  
-- name: "jenkins-master-ssh"  
-- name: "jenkins-release-gpg" 

希望を。

+0

ありがとう、それは問題を解決しました。 – danielh1307

関連する問題