Отладка проблем с оператором fas2discourse
Рабочая нагрузка
Оператор работает в пространстве имён fas2discourse-operator как на тестовом, так и на производственном кластерах OpenShift.
Запущен один под. В первую очередь следует изучить его журналы.
По умолчанию подробность журналов низкая. Чтобы повысить её до уровня отладки, добавьте следующую аннотацию к объекту Fas2DiscourseConfig в пространстве имён fas2discourse-operator:
apiVersion: fas2discourse.apps.fedoraproject.org/v1alpha1
kind: Fas2discourseConfig
metadata:
annotations:
ansible.sdk.operatorframework.io/verbosity: '5'
Это включит полный вывод журналирования, что может помочь в отладке.
Внутри оператора содержится следующий список задач. Этот список повторяется в цикле согласования, который в настоящее время настроен на запуск каждые 20 минут. Цикл согласования можно настроить в файле watches.yaml.
# файл задач для Fas2discourseConfig - include_tasks: retrieve_openshift_secrets.yml # Получает секреты, такие как ключ API Discourse и т.д., и заполняет переменные для последующих задач - include_tasks: kerberos_auth.yml # Аутентификация в fasjson через keytab - include_tasks: retrieve_discourse_groups.yml # Обращается к API Discourse, получает список групп и список пользователей в каждой группе - include_tasks: retrieve_ipa_groups.yml # Обращается к fasjson, используя список групп Discourse, получает состав участников каждой группы в IPA - include_tasks: sync_group_membership.yml # С помощью функций множеств определяет, кто отсутствует в группе Discourse, но есть в IPA: добавляет их. Кто есть в Discourse, но отсутствует в IPA: удаляет их.
Результаты каждого вызова в рабочем процессе выводятся в журнал. Если какая-либо задача завершается ошибкой, весь цикл останавливается и повторяется.
Участники
Простое руководство по устранению неисправностей в контейнерах CodeReady.
-
Внесите изменение
-
Пометьте тегом, создайте новый образ и отправьте в реестр
Откройте Makefile и увеличьте версию
makepodman push quay.io/fedora/fas2discourse-operator:<ВЕРСИЯ>Если у вас нет прав на отправку в репозитории в пространстве имён fedora, отправьте образ в своё пространство имён в quay.io и извлеките его в CRC оттуда.
-
Запустите CRC и войдите
crc startoc login -u kubeadmin https://api.crc.testing:6443 -
Разверните контроллер в кластере k8s:
make deploy -
Удалите развёртывание и разверните заново
oc get deploymentsoc delete <ИМЯ_РАЗВЁРТЫВАНИЯ>make deploy -
Проверьте, находитесь ли вы в правильном проекте
oc project fas2discourse-operator -
Примените пользовательский ресурс Fas2DiscourseConfig
oc apply -f config/samples/_v1alpha1_fas2discourseconfig.yaml -
Проверьте журналы:
oc get podsoc logs -f <ИМЯ_ПОДА>
Локальное тестирование или разработка
Руководство выше будет работать только при запуске в кластере. Для локального тестирования необходимо создать секрет. Для этого нужно создать [ключ API Discourse] (https://meta.discourse.org/t/create-and-configure-an-api-key/230124) (вероятно, на тестовом экземпляре Discourse) и действующий билет Kerberos.
Создание секрета
С помощью команды oc create secret generic. Назовём его fas2discourse-operator-discourse-apikey-secret.
FAS2DISCOURSE_API_KEY=<вставьте ваш ключ API Discourse> DISCOURSE_HOST=https://askfedora.staged-by-discourse.com/ KEYTAB_NAME=<вставьте имя файла keytab> KEYTAB_PATH=<вставьте путь к файлу keytab>
Например: oc create secret generic fas2discourse-operator-discourse-apikey-secret -n fas2discourse-operator --from-literal fas2discourse-discourse-apikey=$FAS2DISCOURSE_API_KEY --from-literal discourse-host="$DISCOURSE_HOST"
oc create secret generic fas2discourse-operator-keytab-secret --from-file=$KEYTAB_NAME="$KEYTAB_PATH"
Чтобы подтвердить создание секрета, выполните: oc get secrets
Продолжите применение пользовательского ресурса Fas2DiscourseConfig.
Want to help? Learn how to contribute to Fedora Docs ›