---
docgen:
  source: npm/rules/abie/js/ua_node_selector.mjs
  crc: 6cde9837
  score: 100
---

# ua_node_selector.mjs

## Огляд

Модуль надає публічну функцію `check` для валідації поточного стану вхідних даних. Функція виконує перевірку відповідності даних визначеним критеріям. Результат перевірки повертається у вигляді булевого значення. (abie.mdc)

## Поведінка

1. Запуск перевірки. Створюється звітність для фіксації результатів.
2. Завантаження ігнорованих шляхів з конфігурації.
3. Пошук файлів Kubernetes YAML у вказаному корені репозиторію.
4. Збір директорій Deployment на основі знайдених YAML файлів.
5. Перевірка наявності Deployment. Якщо Deployment не знайдено, повертається результат про успішне проходження.
6. Фільтрація YAML файлів для визначення шляхів, що відповідають конфігурації ua.
7. Перевірка наявності шляхів ua. Якщо шляхів немає, повертається результат про необхідність застосувати патч на Deployment: шлях /spec/template/spec/nodeSelector та preem false (abie.mdc).
8. Ітерація по шляхах ua.
9. Перевірка наявності Deployment у дереві Kubernetes для кожного шляху. Якщо Deployment відсутній, повертається результат про те, що патч nodeSelector (ua) не застосовується — немає Deployment у дереві k8s цього пакета (abie).
10. Зчитування вмісту YAML файлу. У разі помилки читання, повертається результат про невдалий доступ.
11. Перевірка вмісту YAML файлу на наявність необхідного патча. Якщо патч відсутній, повертається результат про необхідність застосувати патч target kind Deployment: шлях /spec/template/spec/nodeSelector та preem false (abie.mdc).
12. Фіксація успішного проходження для кожного шляху.

## Гарантії поведінки

- Read-only: файл не виконує операцій запису у файлову систему.
- Перехоплює помилки і не пропускає винятків назовні (fail-safe).
- Не звертається до мережі.
