我的系统是OKD 3.11,Jenkins最近在其自己的项目中运行。
我的公司使用内部CA权威。一切都由它签名。这本身就是一个痛苦,但是我试图让我的OKD集群与Jenkins一起构建项目。我让它创建了pod等等,但是当JNPL容器启动时,它会失败,令人沮丧
java.io.IOException: Failed to connect to https://jenkins.apps.lab.mycompany.com/tcpSlaveAgentListener/: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at org.jenkinsci.remoting.engine.JnlpAgentEndpointResolver.resolve(JnlpAgentEndpointResolver.java:197)
at hudson.remoting.Engine.innerRun(Engine.java:523)
at hudson.remoting.Engine.run(Engine.java:474)
我的问题是,如何将根CA注入Pod正在使用的jvm密钥库中?我真的希望您不要告诉我,我必须构建一个自定义docker映像。我真的希望有一种方法可以将愚蠢的东西导入到现有的东西中,以降低维护成本。
我的Jenkinsfile
pipeline {
agent {
kubernetes {
label 'sample-app'
yamlFile 'KubernetesBuildPod.yaml'
}
}
options {
skipDefaultCheckout(true) // to avoid force checkouts on every node in a first stage
disableConcurrentBuilds() // to avoid concurrent builds on same nodes
}
stages {
stage('Build') {
steps {
checkout scm
sh 'ls -alh'
}
}
}
}
和豆荚豆
apiVersion: v1
kind: Pod
metadata:
labels:
component: ci
spec:
# Use service account that can deploy to all namespaces
serviceAccountName: jenkins
containers:
- name: gcc-cmake
image: rikorose/gcc-cmake:latest
command:
- cat
tty: true
和jenkins配置中的pod模板。