Настройка пользовательских сертификатов
Это руководство предназначено для администраторов кластера, которым необходимо настроить PAC для доверия самоподписанным сертификатам или сертификатам пользовательского центра сертификации (CA) для Git-провайдеров.
Примечание: В этом документе <pac-namespace> или tekton-pipelines обозначают пространство имён, в котором развернут PAC. По умолчанию это tekton-pipelines, но вы можете изменить его через параметр targetNamespace в CR OpenShiftPipelinesAsCode. Замените <pac-namespace> или tekton-pipelines на фактическое имя вашего пространства имён, если оно отличается.
В этом руководстве объясняется, как настроить PAC для работы с Git-хостингами, использующими самоподписанные сертификаты или сертификаты, подписанные пользовательским CA. Эта настройка применима ко всем Git-провайдерам (GitHub Enterprise, GitLab self-hosted, Bitbucket Server и др.).
Содержание
Предварительные требованияОбзорШаг 1: Подготовка сертификата CAШаг 2: Создание ConfigMap с сертификатом CAМетод 1: Из файлаМетод 2: Ручное созданиеШаг 3: Монтирование сертификата в контроллер PACДля CROpenShiftPipelinesAsCodeДля CR TektonConfigШаг 4: Применение конфигурацииШаг 5: Проверка настройки сертификатаПроверка монтирования сертификатаПроверка логов контроллера PACТест с репозиториемУстранение неполадокПроверка, что сертификат не доверенПроверка срока действия сертификатаНеправильный сертификатПод не перезапускаетсяНесколько сертификатовВариант 1: Объединить сертификаты в одном ConfigMapВариант 2: Использовать отдельные ConfigMapЛучшие практики1. Управление сертификатами2. Безопасность3. Устранение неполадокСледующие шагиПредварительные требования
Перед настройкой пользовательских сертификатов убедитесь, что у вас есть:
- Развернутый компонент PAC
- Права администратора кластера
- Доступ к файлу сертификата CA
- Возможность изменять CR
OpenShiftPipelinesAsCodeили CRTektonConfig
Обзор
Если ваш Git-хостинг использует самоподписанные сертификаты или сертификаты, подписанные пользовательским CA, то поды контроллера PAC должны доверять этим сертификатам для успешного подключения к Git-сервису. Для этого необходимо:
- Создать ConfigMap с сертификатом CA
- Смонтировать сертификат в поды контроллера PAC
- Настроить Git на использование этого сертификата
Шаг 1: Подготовка сертификата CA
Получите файл сертификата CA у администратора вашего Git-хостинга или у центра сертификации вашей организации.
Распространённые места расположения сертификатов CA:
- Self-hosted GitLab: обычно доступен в установке GitLab или у вашего CA организации
- GitHub Enterprise: доступен у администратора GitHub Enterprise Server
- Bitbucket Server: доступен у администратора Bitbucket Server
Файл сертификата должен быть в формате PEM:
Шаг 2: Создание ConfigMap с сертификатом CA
Создайте ConfigMap, содержащий сертификат CA, в пространстве имён PAC (по умолчанию: tekton-pipelines, замените на ваше пространство имён, если оно отличается):
Метод 1: Из файла
Пример вывода:
Метод 2: Ручное создание
Создайте YAML-файл git-ca-cert-configmap.yaml:
Примените его:
Пример вывода:
Примечание: Замените <your-ca-certificate-content> на фактическое содержимое сертификата.
Шаг 3: Монтирование сертификата в контроллер PAC
Смонтируйте сертификат в поды контроллера PAC, обновив CR OpenShiftPipelinesAsCode или CR TektonConfig.
Для CR OpenShiftPipelinesAsCode
Если вы используете CR OpenShiftPipelinesAsCode:
Для CR TektonConfig
Если вы используете CR TektonConfig (для развертываний OpenShift):
Важно:
- Сертификат монтируется в контейнер по пути
/etc/ssl/certs/git-ca.crt - Переменные окружения
GIT_SSL_CAINFOиSSL_CERT_FILEуказывают Git использовать этот сертификат - После обновления CR оператор автоматически перезапустит поды контроллера PAC
Шаг 4: Применение конфигурации
Примените обновлённый CR:
Пример вывода:
Дождитесь перезапуска подов контроллера PAC:
Пример вывода:
Шаг 5: Проверка настройки сертификата
Проверка монтирования сертификата
Убедитесь, что сертификат смонтирован в поде контроллера PAC:
Пример вывода:
Вы должны увидеть конфигурацию тома, показывающую, что сертификат смонтирован.
Проверка логов контроллера PAC
Проверьте логи контроллера PAC на наличие ошибок, связанных с сертификатами:
Если настройка выполнена правильно, в логах не должно быть ошибок SSL/TLS сертификатов.
Тест с репозиторием
Запустите тестовый pipeline из репозитория, размещённого на вашем Git-сервисе:
Пример вывода:
Проверьте, что PipelineRun создан успешно:
Пример вывода:
Устранение неполадок
Проверка, что сертификат не доверен
Проблема: PAC по-прежнему не может подключиться к Git-сервису из-за проблем с сертификатом.
Решения:
- Проверьте формат сертификата: Убедитесь, что сертификат в формате PEM с правильными маркерами BEGIN/END
- Проверьте путь сертификата: Убедитесь, что сертификат смонтирован по правильному пути
- Проверьте переменные окружения: Убедитесь, что
GIT_SSL_CAINFOиSSL_CERT_FILEустановлены корректно - Проверьте ConfigMap: Убедитесь, что ConfigMap существует и содержит сертификат:
Пример вывода:
Проверка срока действия сертификата
Проблема: Сертификат CA истёк.
Решения:
-
Получите новый сертификат CA у вашего центра сертификации
-
Обновите ConfigMap:
Пример вывода:
-
Перезапустите поды контроллера PAC:
Неправильный сертификат
Проблема: Используется неправильный сертификат CA для вашего Git-сервиса.
Решения:
- Убедитесь, что используете правильный сертификат CA для вашего Git-хостинга
- Для self-hosted сервисов получите сертификат непосредственно от сервиса
- Для корпоративных сервисов обратитесь к администратору за правильным сертификатом
Под не перезапускается
Проблема: Поды контроллера PAC не перезапускаются после обновления CR.
Решения:
-
Проверьте статус CR:
Пример вывода:
-
Проверьте логи оператора:
Пример вывода (пример записей в логе):
- Перезапустите деплоймент вручную:
Несколько сертификатов
Если необходимо доверять нескольким сертификатам CA (например, для нескольких Git-хостингов), можно:
Вариант 1: Объединить сертификаты в одном ConfigMap
Объедините несколько сертификатов в одном файле:
Вариант 2: Использовать отдельные ConfigMap
Используйте отдельные ConfigMap и монтируйте их в разные места, затем настройте Git на использование бандла сертификатов:
Создайте бандл сертификатов, объединив все сертификаты в один файл.
Лучшие практики
1. Управление сертификатами
- Храните безопасно: Храните сертификаты CA в защищённом хранилище
- Контроль версий: Отслеживайте изменения сертификатов в системе контроля версий (если это не чувствительная информация)
- Документирование: Документируйте используемые сертификаты и их источники
- Отслеживание срока действия: Следите за сроками действия сертификатов
2. Безопасность
- Минимальные права: Предоставляйте доступ только к необходимым сертификатам
- Ротация: Регулярно обновляйте сертификаты
- Проверка: Проверяйте сертификаты перед развертыванием
3. Устранение неполадок
- Тестируйте сначала: Проверяйте настройку сертификатов на тестовом репозитории перед применением в продакшене
- Мониторинг логов: Регулярно проверяйте логи контроллера PAC на ошибки сертификатов
- Резервное копирование: Храните резервные копии рабочих конфигураций сертификатов
Следующие шаги
- Configure Authentication for Private Repositories - Настройка аутентификации для приватных репозиториев
- Manage PAC Component - Узнайте о управлении развертыванием PAC
- Configure GitLab Repository - Руководство по настройке GitLab
- Common Issues - Руководство по устранению неполадок