Налаштування доступу до реєстрів

1. Загальний опис

Налаштування доступу між реєстрами відбувається в адміністративній панелі керування кластером та реєстрами Control Plane.

Адміністратор може налаштувати доступ до даних цільового реєстру (майстер) для інших реєстрів, що розгорнуті на цій Платформі, або для зовнішніх систем. Для цього в майстер-реєстрі за запитом буде створено окремого користувача реєстру-клієнта, від імені якого здійснюватиметься доступ до майстер-реєстру.

Процес формування запита про надання доступу можна умовно поділити на такі етапи:
  1. Формування запита про надання доступу до реєстру в адміністративній панелі Control Plane.

  2. Проходження процедури перевірки коду та підтвердження запита.

  3. Контроль за виконанням збірки коду в Jenkins.

Окрім надання доступу до реєстру в адмін-консолі Control Plane, адміністратор регламенту має також відкрити доступ до відповідних представлень та REST API реєстру на рівні моделі даних (детальну інструкцію ви можете переглянути на сторінці Налаштування доступу до API-представлень реєстру).

2. Формування запита про надання доступу до реєстру

Щоб створити запит про надання доступу до реєстру, необхідно виконати наступні кроки:

  1. Увійдіть до адміністративної панелі керування кластером та реєстрами Control Plane.

    update cluster mgmt 01

  2. Відкрийте меню Реєстри.

  3. Увійдіть до налаштувань реєстру.

    cp registry grant access 1

  4. Перейдіть до секції Доступ до реєстрів Платформи та зовнішніх систем і натисніть + Надати доступ.

    cp registry grant access 2

  5. Оберіть тип системи, для якої потрібно надати доступ:

    Це може бути як реєстр, розгорнутий на Платформі, так і зовнішня система (сервіс/реєстр поза межами кластера Платформи).
    • Оберіть опцію Внутрішній реєстр платформи. Оберіть реєстр з переліку, для якого необхідно відкрити доступ.

      Якщо реєстру немає в переліку — його потрібно створити заздалегідь (див. детальніше — Розгортання екземпляра реєстру).

      cp registry grant access 3

    • Оберіть опцію Зовнішня система та введіть назву системи.

      Допустимі символи: "a-z", 0-9, "-". Назва не може перевищувати довжину у 32 символи. Назва повинна починатись і закінчуватися символами латинського алфавіту або цифрами.

      cp registry grant access 4

      Пароль буде створено автоматично. Його можна буде перевірити після налагодження доступу до майстер-реєстру (див. розділ Зміна пароля доступу до реєстру).
  6. Натисніть Надати, щоб сформувати запит.

    В результаті буде сформовано запит про надання доступу. Він набуде статусу виконання Новий.

    Неможливо виконати 2 і більше запитів про надання доступу підряд. Кожен запит має бути перевірений та підтверджений уповноваженою особою, і тільки після цього можливо сформувати наступний запит. Тобто запити формують та підтверджують по одному.

    cp registry grant access 5

    Далі відбудеться передача змін (git push) до репозиторію Gerrit для подальшої перевірки коду та підтвердження змін (детальніше — див. у розділі Підтвердження запита про надання доступу до реєстру).

Є також можливість заблокувати, розблокувати доступ до реєстру або повністю його скасувати. Механізм формування запитів на блокування, розблокування або скасування є ідентичним до механізму надання доступу.

Приклад. Блокування доступу до реєстру для іншого реєстру на Платформі

cp registry grant access 9

Приклад. Розблокування доступу до реєстру для іншого реєстру на Платформі

cp registry grant access 10

Приклад. Скасування доступу до реєстру для іншого реєстру на Платформі

cp registry grant access 11

3. Підтвердження запита про надання доступу до реєстру

Після успішного створення запита про надання доступу до реєстру в інтерфейсі Control Plane, необхідно пройти процедуру перевірки коду. Це можна зробити як в інтерфейсі Control Plane, так і в системі Gerrit.

Для цього виконайте наступні кроки:

  1. Відкрийте Control Plane.

  2. Перейдіть до секції Запити на оновлення та знайдіть попередньо сформований запит.

    cp registry grant access 5

  3. Відкрийте сформований запит, натиснувши іконку перегляду — 👁.

    Запропоновані зміни вносяться до конфігурації файлу deploy-templates/values.yaml у разі підтвердження.
  4. У новому вікні зіставте 2 версії змін, переконайтеся, що внесені вами дані вірні, та натисніть Підтвердити.

    cp registry grant access 6

    У вікні для порівняння можна зручно перевірити 2 версії змін: поточну (зліва) та нову (справа).
  5. Після підтвердження, відбудеться автоматичний запуск процесу збірки внесених змін інструментом Jenkins (детальніше — у розділі Контроль за виконанням збірки коду інструментом Jenkins)

    Ви також можете перейти до інтерфейсу Gerrit за відповідним посиланням, щоб підтвердити запит там.

    1. Виконайте перевірку коду та підтвердьте внесення змін (git merge) до master-гілки репозиторію.

      cp registry grant access 7

      Підтверджений запит на створення доступу у секції Запити на оновлення набуде статусу Підтверджено.

      cp registry grant access 8

      У секції Доступ до реєстрів платформи та зовнішніх систем відображатиметься статус доступу — "Активний".

      cp registry grant access 12

      За фактом злиття змін до master-гілки репозиторію у Gerrit, відбудеться автоматичний запуск процесу збірки внесених змін інструментом Jenkins.

4. Контроль за виконанням збірки коду інструментом Jenkins

Після успішного надходження змін до master-гілки репозиторію в Gerrit, необхідно переконатися, що Jenkins-pipeline Master-Build-<registry-name> запустився й успішно завершився.

<registry-name> — назва реєстру, в якому ви налаштовуєте доступ.
  1. Відкрийте консоль керування кластером у Control Plane.

  2. Перейдіть до секції Конфігурація > CI.

  3. Перейдіть до інтерфейсу Jenkins за відповідним посиланням.

    cp registry grant access 13

  4. Дочекайтеся виконання всіх кроків збірки Master-Build-<registry-name>. Це може зайняти до 15 хвилин.

    cp registry grant access 6 1

Після успішної збірки зміни набувають чинності.

5. Зміна пароля доступу до реєстру

Після формування запита про надання доступу, система автоматично генерує пароль доступу до реєстру.

cp registry grant access 15 1

Пароль зберігається до сховища секретів Vault. Іконку згенерованого пароля можна побачити в інтерфейсі Control Plane. Ви можете переглянути, або скопіювати його пароль за необхідності.

Також пароль зберігається у зашифрованому вигляді до Keycloak для подальшої аутентифікації реєстрів та зовнішніх систем, а також перевірки створеного секрету у Vault.

Якщо необхідно змінити пароль доступу:
  1. Скасуйте старий доступ для реєстру або зовнішньої системи. Для цього перейдіть до секції Доступ для реєстрів Платформи та зовнішніх систем та натисніть Скасувати доступ.

    cp registry grant access 11

  2. Надайте доступ повторно. Тобто сформуйте та підтвердьте новий запит про надання доступу.

    cp registry grant access 2

    В результаті старий пароль буде анульовано, а новий пароль згенерується автоматично.