Получение x509: сертификат, подписанный неизвестным органом при обращении к реестру docker от jenkins (агент dind)

#docker #jenkins-pipeline #jenkins-plugins #docker-in-docker #jenkins-kubernetes

#docker #дженкинс-конвейер #дженкинс-плагины #docker-in-docker #jenkins-kubernetes

Вопрос:

У меня есть частный реестр, с которым я использую свои собственные SSL-сертификаты. Чего я не могу сделать, так это заставить агента (шаблон модуля Kubernetes pod) войти (или нажать) в реестр, я потратил много часов, пытаясь выяснить, как все это склеивается.

 pipeline {

agent {
    kubernetes {
        label "saas-fwk-deploy-${cto.devops.jenkins.Utils.getTimestamp()}"
        inheritFrom 'k8s-dind'
        yaml """
        spec:
          containers:
          - name: opstools
            image: registry/tools:latest
            workingDir: /home/jenkins
            command:
            - cat
            tty: true
            env:
            - name: DOCKER_HOST
              value: "tcp://127.0.0.1:2375"
            securityContext:
              allowPrivilegeEscalation: true
            privileged: true
        """
        
    }
}

options {
    timeout(time: 12, unit: 'HOURS')
    buildDiscarder(logRotator(daysToKeepStr: '7', artifactDaysToKeepStr: '0'))
    skipDefaultCheckout()
    disableConcurrentBuilds()
    timestamps()
}



stages {

    stage('deploy') {
        steps {
            container('opstools') {
                sh "docker --version"
                sh """
                pwd
                ls -al
                mkdir -p ~/.docker/certs.d/harbor.net
                curl -k -b cookie -o ~/.docker/certs.d/harbor.net/ca.crt https://saas2.cert.com/api/v1/pub/ingressca
                cat ~/.docker/certs.d/harbor.net/ca.crt
                docker info 
                docker login -u superadmin -p example harbor.net
                """
            }
        }
    }
}
  

и я получил эту ошибку :

  docker login -u superadmin -p example harbor.net
21:01:55  WARNING! Using --password via the CLI is insecure. Use --password-stdin.
21:01:55  Error response from daemon: Get https://harbor.net/v2/: x509: certificate signed by unknown authority
  

сертификат не учитывается, и даже когда я меняю его место на /etc/docker/certs.d/*

По сути, я знаю, что docker должен иметь мой сертификат CA, но я не могу понять, как я передаю его агенту (или контейнеру docker dind, который использует агент). (Я могу войти в свой реестр и, как правило, извлекать / отправлять изображения, поэтому я знаю, что мои SSL-сертификаты в порядке).

Где / как мне предоставить docker мой сертификат ca?

Комментарии:

1. У меня такая же проблема. Вы смогли это выяснить?