
Привет! На связи снова Саша Хренников, руководитель DevOps-юнита в KTS.
На прошлой неделе мы запустили испытание для DevOps-инженеров, приуроченное к дате первого полета человека в космос. Участникам было необходимо найти и исправить ошибку в конфигурации ArgoCD, чтобы обеспечить корректный запуск приложения. Как мы и обещали, 10 победителей испытания получат наш фирменный мерч, но перед тем, как огласить их список, я предлагаю познакомиться с решением.
Spoiler alert: мы оставляем доступ к этому испытанию (и ко всем предыдущим) открытым, чтобы вы могли потренироваться перед будущими челленджами. Если вы еще не пытались решить его, не торопитесь читать разгадку — лучше попробуйте найти ее самостоятельно. Сделать это вы можете в нашем боте.
Для тех же, кому не терпится узнать ответ, продолжаем.
Решение
В первую очередь посмотрим в ArgoCD. Для этого найдем адрес его интерфейса в svc и откроем в браузере.

В интерфейсе видим единственное приложение, которое встречает нас интересной ошибкой:

Заглянем в манифест:

Похоже, что в манифесте пропущен дефолтный адрес сервера server: "https://kubernetes.default.svc"
. Даже если мы попробуем его добавить, то сохранения не произойдет, и через некоторое время мы увидим новую ошибку:

Судя по всему, ArgoCD не может достучаться до репозитория. Проверим доступность адреса. ssh доступен, похоже, что возникла какая-то проблема со связностью у самого сервиса.

Заглянем в список NetworkPolicy. Похоже, что repo-server может обращаться только к локальной сети из-за добавленного Egress-правила:

Для исправления ситуации удалим проблемную NetworkPolicy:

Теперь вернемся в интерфейс ArgoCD и восстановим нарушенный манифест:

Остается только запустить синхронизацию заново и проследить за тем, что приложение запустилось:

Победители
А теперь самое приятное — церемония награждения. Вот список участников, которые справились с испытанием быстрее всех остальных:
Место | Имя пользователя | Время |
1 | Виталий aka @anoshkinvv | 9 мин 1 сек |
2 | BesCo aka @eBesCo | 9 мин 4 сек |
3 | Andrey Koregin aka @Joyjey | 14 мин 25 сек |
4 | Свят aka @soklomentorat | 17 мин 2 сек |
5 | Skyxer aka @skyxer | 17 мин 17 сек |
6 | Danye Kash aka @danyekash | 21 мин 45 сек |
7 | Mike aka @freelook | 21 мин 59 сек |
8 | Kiiiiiira aka @kiiiiiirra | 24 мин 3 сек |
9 | I Fatkullin aka @fatkulllin | 27 мин 27 сек |
10 | Anton Donskoy aka @a_donskoy | 28 мин 12 сек |
Поздравляем с победой! Фирменные футболки KTS отправятся по почте к своим новым владельцам, а остальных участников челленджа и тех, кто в этот раз не смог проверить свои силы, мы призываем не расстраиваться и ждать новых испытаний.
Чтобы подготовиться, вы можете почитать описания наших архивных челленджей:
Назад в прошлое: запускаем k8s v.0.1 из 2014 и анонсируем челлендж
DevOps Challenge: восстановите работу MySQL и выиграйте крутой мерч
DevOps Challenge: помогите Деду Морозу с оповещениями и получите новогодний мерч
А еще лучше — попробуйте пройти их, все предыдущие задания доступны в боте по ссылке.
Удачи!