Моя система - OKD 3.11, последняя версия Jenkins работает в своем собственном проекте.
Моя компания использует внутренний центр сертификации. И все это подписано. Что само по себе является болью, но я пытаюсь заставить свой кластер OKD строить проекты с Дженкинсом. У меня есть создание пакетов и тому подобное, но когда запускается контейнер 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 в хранилище ключей jvm, которое использует модуль? Я действительно надеюсь, что вы не скажете мне, что я должен создать собственный образ докера. Я действительно надеюсь, что есть способ просто импортировать эту глупую вещь в существующую, чтобы сократить расходы на техническое обслуживание.
Мой 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
и шаблон pod в конфигурации jenkins.