Конвейер Jenkins: команда kubectl не найдена

Я запускаю Jenkins локально, и это последний этап моего Jenkinsfile (после выполнения этого туториала):

stage('Deploy to K8s') {
    steps {
        sshagent(credentials: ['k8s_key']) {
            sh 'scp -r -o StrictHostKeyChecking=no localPath/deployment-remes-be.yaml <user>@<ip_address>:/opt/kubernetes-system/backend'
            script {
                try {
                    sh 'ssh <user>@<ip_address> kubectl apply -f /opt/kubernetes-system/backend/deployment-remes-be.yaml --kubeconfig=~/.kube/config'
                }
                catch(error) {

                }
            }
        }
    }
}

Когда я запускаю конвейер, он завершается без блокирующих ошибок, но когда я проверяю журналы, я вижу это:

Копия перед командой применения работает. У меня есть microk8s, установленный на сервере Debian, на который я пытаюсь выполнить развертывание, и если я запускаю команду применения вручную, она работает нормально. Я создал файл .kube/config, как показано здесь, но использование файла --kubeconfig не имеет никакого значения. Также не имеет значения, использую ли я microk8s.kubectl, я всегда получаю это сообщение.

У меня установлены эти плагины:

Что я могу сделать здесь, чтобы приложение работало из конвейера?

Ошибка гласит, что kubectl не находится на пути пользователя, поэтому первым шагом по устранению неполадок будет предоставление абсолютного пути к исполняемому файлу.

Matt Schuchard 10.01.2023 14:33

Вы правы, мне нужно было именно так /snap/bin/microk8s.kubectl apply. Пожалуйста, напишите свой комментарий как ответ, чтобы я мог его принять. Спасибо

cs.kali 10.01.2023 14:50
Laravel с Turbo JS
Laravel с Turbo JS
Turbo - это библиотека JavaScript для упрощения создания быстрых и высокоинтерактивных веб-приложений. Она работает с помощью техники под названием...
Типы ввода HTML: Лучшие практики и советы
Типы ввода HTML: Лучшие практики и советы
HTML, или HyperText Markup Language , является стандартным языком разметки, используемым для создания веб-страниц. Типы ввода HTML - это различные...
Аутсорсинг разработки PHP для индивидуальных веб-решений
Аутсорсинг разработки PHP для индивидуальных веб-решений
Услуги PHP-разработки могут быть экономически эффективным решением для компаний, которые ищут высококачественные услуги веб-разработки по доступным...
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
Слишком много useState? Давайте useReducer!
Слишком много useState? Давайте useReducer!
Современный фронтенд похож на старую добрую веб-разработку, но с одной загвоздкой: страница в браузере так же сложна, как и бэкенд.
Узнайте, как использовать теги &lt;ul&gt; и &lt;li&gt; для создания неупорядоченных списков в HTML
Узнайте, как использовать теги <ul> и <li> для создания неупорядоченных списков в HTML
HTML предоставляет множество тегов для структурирования и организации содержимого веб-страницы. Одним из наиболее часто используемых тегов для...
2
2
103
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В этой ситуации, когда возникает ошибка, заключающаяся в том, что исполняемая команда не найдена в пути, в качестве первого шага следует попытаться ввести абсолютный путь. Метод шага оболочки можно соответствующим образом обновить:

sh 'ssh <user>@<ip_address> /path/to/kubectl apply -f /opt/kubernetes-system/backend/deployment-remes-be.yaml --kubeconfig=~/.kube/config'

Другие вопросы по теме