В конвейере Jenkins появляется «ошибка: отсутствует или неполная информация о конфигурации. Пожалуйста, укажите на существующий, полный файл конфигурации» - PullRequest
0 голосов
/ 04 апреля 2020

Я пытаюсь реализовать CICD, используя Jenkins, хотя триггерный конвейер, я получаю ошибку ниже. Пожалуйста, совет по этому вопросу. Я новичок в этой теме. Дайте мне знать, если потребуется дополнительная информация.

У меня есть следующий сценарий Groovy для достижения:

node{
    stage('Git Hub Checkout')
    {
        git credentialsId: 'GitHubCredentials', url: 'https://github.com/account/app'
    }
    stage('Build Docker Image')
    {
        bat 'docker build -t imagename/demo:v2 .'
    }
    stage('Push Docker Image Into Docker Hub')
    {
        withCredentials([string(credentialsId: 'Docker_Password', variable: 'Docker_Password')]) 
        {
            bat "docker login -u imagename -p ${Docker_Password}"
        }
        bat 'docker push imagename/demo:v2'
    }
    **stage ('Deployment Into Azure')
    {
        bat 'kubectl apply -f deployment-service.yaml'
    }**

}

Во время сборки "stage ('Deployment Into Azure')", который я получаю следующая ошибка. Пожалуйста, помогите.

C: \ Program Files (x86) \ Jenkins \ workspace \ sampleapplication> kubectl apply -f deploy-service.yaml Ошибка: отсутствует или неполная информация о конфигурации. Укажите существующий полный файл конфигурации:

  1. С помощью флага командной строки --kubeconfig
  2. Через переменную среды KUBECONFIG
  3. В вашем домашнем каталоге: ~ / .kube / config

Чтобы просмотреть или настроить конфигурацию напрямую, используйте команду «config». ОШИБКА: скрипт вернул код завершения 1

Примечание: 1. C: \ Users \ username.kube -> Это место, где находится файл конфигурации kubernetes.

Пожалуйста, обратитесь к следующей ссылке : 1:

C:\Windows\system32>kubectl version
Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.0", GitCommit:"9e991415386e4cf155a24b1da15becaa390438d8", GitTreeState:"clean", BuildDate:"2020-03-25T14:58:59Z", GoVersion:"go1.13.8", Compiler:"gc", Platform:"windows/amd64"}
Server Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.5", GitCommit:"20c265fef0741dd71a66480e35bd69f18351daea", GitTreeState:"clean", BuildDate:"2019-10-15T19:07:57Z", GoVersion:"go1.12.10", Compiler:"gc", Platform:"linux/amd64"}

2: Я установил docker для windows. Я включил Kubernetes для этого docker для windows плагина. См. Прикрепленные изображения.

docker для windows с плагином kubernetes

снимок экрана журнала сборки jenkins

файл конфигурации kubernetes

kubectl --kubeconfig = "путь"

kubectl-get-pods

1 Ответ

2 голосов
/ 05 апреля 2020

Согласно @ har sh Совет Manvar, я решил вышеуказанную проблему.

Теперь вы можете сделать одну вещь в своем коде конвейера, просто добавив: - kubeconfig="path of file" после каждой команды kubectl. Убедитесь, что ваш файл kubeconfig доступен на сервере jenkin. Рекомендуется хранить файл конфигурации в учетных данных.

Например: >> kubectl --kubeconfig="C:\Users\username\.kube\config" cluster-info

cluster-info --> Here you can apply your Kubernetes command.
In my case :  bat """kubectl --kubeconfig=C:\\Users\\username\\.kube\\config apply -f deployment-service.yaml"""

Примечание. В Groovy проблема с символом экранирования сценария цель, которую я добавил """

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...