我很难让spin-igor从我们的Jenkins上查看作业。
Spinnaker 1.17.6
我们在jenkins上使用自定义CA。我已经使用以下命令将PKS信任存储添加到HAL配置中:
hal config webhook trust edit --trustStore /tmp/our-int.jks --trustStorePassword
然后手动将信任库信息添加到hal配置的jenkins master部分:
trustStore: /tmp/our-int.jks
trustStoreType: jks
trustStorePassword: thepassword日志只是显示一个500尝试读取,然后添加信任存储信息,我收到PKI错误,所以看起来信任存储正在工作。
我验证了我可以通过允许自签名证书的DNS从spin-igor容器获取文件,但是/api/xml被拒绝了(预计还没有进行身份验证):
bash-4.4$ wget --no-check-certificate https://jenkins.jx.internal.dns/login
Connecting to jenkins.jx.internal.dns (10.11.33.181:443)
login 100% |*************************************************************************************************************************************************************************************************************************| 1485 0:00:00 ETA
bash-4.4$ wget --no-check-certificate https://jenkins.jx.internal.dns/api/xml
Connecting to jenkins.jx.internal.dns (10.11.33.181:443)
wget: server returned error: HTTP/1.1 403 Forbidden配置中的用户名/密码正确。我可以将它们从配置中复制出来并进行连接。为了连接,我还可以看些什么?下面是config的jenkins部分:
devops@a21de9934279:/home/spinnaker/.hal$ sudo cat /home/spinnaker/.hal/config | yq .deploymentConfigurations[].ci
{
"jenkins": {
"enabled": true,
"masters": [
{
"name": "jenkins",
"permissions": {},
"address": "https://jenkins.jx.internal.dns/",
"username": "admin",
"password": "XXXXXXX",
"csrf": true,
"trustStore": "/tmp/out-int.jks",
"trustStoreType": "jks",
"trustStorePassword": "password"
}
]
}以下是我能在spin-igor容器上找到的最相关的日志:
2020-01-20 19:02:30.680 ERROR 1 --- [RxIoScheduler-3] c.n.s.igor.jenkins.JenkinsBuildMonitor : Failed to update monitor items for monitor=JenkinsBuildMonitor:partition=jenkins
com.netflix.hystrix.exception.HystrixRuntimeException: jenkins-covr-jenkins-getProjects failed and no fallback available.
at com.netflix.hystrix.AbstractCommand$22.call(AbstractCommand.java:822) ~[hystrix-core-1.5.18.jar:1.5.18]
at com.netflix.hystrix.AbstractCommand$22.call(AbstractCommand.java:807) ~[hystrix-core-1.5.18.jar:1.5.18]和
Caused by: retrofit.RetrofitError: 500 Server Error
at retrofit.RetrofitError.httpError(RetrofitError.java:40) ~[retrofit-1.9.0.jar:na]
at retrofit.RestAdapter$RestHandler.invokeRequest(RestAdapter.java:388) ~[retrofit-1.9.0.jar:na]
at retrofit.RestAdapter$RestHandler.invoke(RestAdapter.java:240) ~[retrofit-1.9.0.jar:na]如果我通过网络浏览器登录到jenkins并点击/api/xml,我确实会得到数据,所以我有点困惑,不知道还能做什么。
我还按照说明在Jenkins上启用了CSRF。
谢谢!
发布于 2020-01-22 02:19:09
看起来我找到了另一个用户发布的解决方案(变通方法):https://github.com/spinnaker/spinnaker/issues/892#issuecomment-320336522 good 'ol #Jankins
tl/dr进入安全设置,将身份验证模式从"servlet容器“切换到"jenkins own”,然后手动添加用户..显然,k8s身份验证不知何故被破坏了
https://stackoverflow.com/questions/59831176
复制相似问题