Jenkins на узле Kubernetes жалуется, что его плагинам нужна более новая версия Jenkins, но они не хотят терять данные - PullRequest
1 голос
/ 12 июня 2019

Jenkins (на узле Kubernetes) жалуется, что для запуска некоторых из моих плагинов требуется более новая версия Jenkins.

SEVERE: Не удалось загрузить плагин Модуль стратегии авторизации матрицы v2.4.2 (matrix-auth) java.io.IOException: не удалось загрузить подключаемый модуль стратегии авторизации матрицы v2.4.2.- Вы должны обновить Jenkins с v2.121.2 до v2.138.3 или новее, чтобы запустить этот плагин.

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

SEVERE: Не удалось загрузить глобальную конфигурацию java.io.IOException: Невозможно прочитать /var/jenkins_home/config.xml

Я бы хотел отключить плагины, вызывающие проблему, чтобы я мог видеть пользовательский интерфейс Jenkins и управлять плагинамиоттуда, или я бы хотел обновить Jenkins таким образом, чтобы НЕ УДАЛЯТЬ МОИ ПОЛЬЗОВАТЕЛЬСКИЕ ДАННЫЕ И КОНФИГ. ДАННЫЕ ЗАДАНИЯ.

До сих пор я пытался отключить ВСЕ плагины, добавив файлы .disabled вПапка плагинов Jenkins.Это избавило от большинства ошибок, но все же пожаловалось на плагин выше.Поэтому я удалил файл .disabled для этого, и теперь он жалуется на то, что Jenkins снова не является достаточно новой версией (ошибка выше).

Примечание: в этой установке Jenkins используется постоянный том хранения, смонтированный сEFS.Так что это, вероятно, поможет ослабить некоторые ограничения, связанные с обновлением Jenkins, если это то, что нам нужно сделать.

Наконец, что бы мы ни делали с плагинами и версией Jenkins, мне нужно убедиться, что изменениябудет сохраняться, если Kubernetes перезапустит узел в будущем.К сожалению, я довольно незнаком с Kubernetes, и я еще не обнаружил, где эти изменения должны быть сделаны.Я предполагаю файл, который управляет конфигурацией развертывания Kubernetes?

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

1 Ответ

0 голосов
/ 21 июня 2019

Мы столкнулись с той же проблемой с нашим кластером, и у нас есть базовое объяснение по этому поводу, но мы не уверены в этом (следующее исправление работает)

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

Чтобы исправить текущую ошибку, вы должны указать свой плагин в параметре master.installPLugins. Если вы выполнили обычную установку, просто перейдите на кластер и

helm get values jenkins_release_name

Так что у вас может быть что-то подобное:

master:
  enableRawHtmlMarkupFormatter: true
  installPlugins:
  - kubernetes:1.16.0
  - workflow-job:2.32

По умолчанию некоторые значения «внедряются» Хелмом, чтобы убедиться, что Дженкинс работает, смотрите здесь для более подробной информации: Диаграммы Github Helm Jenkins

Итак, просто скопируйте его в файл с таким же синтаксисом и добавьте свои плагины с их версиями. После этого вам просто нужно использовать команду обновления helm с вашим файлом в вашем выпуске:

helm upgrade [RELEASE] [CHART] -f your_file.yaml

Удачи!

...