Налаштування назви та логотипу платформи

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

Адміністратор повинен мати можливість обрати назву для платформи, а також логотип для платформи.

Актори та ролі користувачів

  • Адміністратор платформи

  • Технічний адміністратор реєстру

Функціональні сценарії

  • Зміна назви платформи у налаштуваннях control-plane-console.

  • Зміна логотипів платформи у налаштуваннях control-plane-console.

Загальні принципи та положення

  • Логотип на control-plane-console має застосовуватись у наступних контекстах:

    • Логотип у навігаційному меню

    • Логотип у вкладці браузера (favicon)

    • Логотип у лоадеру (поки не буде застосовуватись саме на control-plane-console)

  • Логотипи у всіх трьох випадках - різні. Навіть їх формат різний. Тому необхідно надати можливість додавати окремі іконки у якості цих логотипів

    • Формат головного логотипу - svg

    • Формат логотипу лоадера - svg

    • Формат favicon - png, 32*32 px. Всі сучасні браузери підтримують цей формат та розмір.

  • Формат svg обраний для адаптивності та можливості легкого темування.

Компоненти системи та їх призначення в рамках дизайну рішення

У даному розділі наведено перелік компонент системи, які залучені або потребують змін в рамках реалізації функціональних вимог.

Підсистема Компонент Опис змін

Підсистема управління Платформою та Реєстрами

control-plane-console

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

Сценарії використання (user flow)

Зміна назви платформи

  • перехід у налаштування платформи

  • перехід на вкладку Загальне

  • на цій вкладці обрати нову назву платформи

  • прийняти зміни та дочекатись редеплою платформи з новою env змінною.

Зміна логотипів платформи

  • перехід у налаштування платформи

  • перехід на вкладку Загальне

  • на цій вкладці обрати нові файли для логотипів платформи

    • Окреме поле для головного логотипу

    • Окреме поле для логотипу лоадера

    • Окреме поле для favicon

  • прийняти зміни та дочекатись редеплою платформи з новою Config Map

Інтерфейси адміністратора

Зміна лого на платформі:

platform logo

Міграція існуючих реєстрів при оновленні

Усі існуючи екземпляри платформи отримають назву платформи та логотипи у рамках оновлення у якості значень за замовчуванням.

Технічне рішення

Експертизи

  • Devops

  • BE (Go)

  • FE (vue)

Високорівневий дизайн рішення

logo platform
Figure 1. Передача назви платформи та логотипів
cluster-mgmt/deploy-templates/values.yaml
global:
  platformName: test
  logosPath: "configmap:platform-logos:<timestamp>"
platform-logos.yaml
kind: ConfigMap
name: platform-logos
data:
  logoMain: base64
  logoLoader: base64
  logoFavicon: base64
control-plane-console/deploy-templates/templates/admin_console_deployment.yaml
env:
  - name: PLATFORM_NAME
    value: {{ .Values.global.platformName }}

План розробки

Вибір параметрів

  • Додати у control-plane-console на вкладку Загальне налаштувань платформи:

    • поле для вводу імені платформи

    • поле для завантаження файлу головного логотипу

    • поле для завантаження файлу логотипу лоадера

    • поле для завантаження файлу favicon

  • Файли повинні перетворюватись на base64 текст та у цьому вигляді зберігатись через go backend

  • Додати валідацію для файлів:

    • *.svg для головного логотипу

    • *.svg для логотипу лоадера

    • *.png для файлу favicon. Розмір у px не валідується.

  • Ім’я платформи зберегти у values.yaml - у полі global.platformName.

  • platformName у вигляді environment змінних потрапляють у control-plane-console (Devops)

  • Файли логотипів у вигляді base64 зберегти у Config Map platform-logos

  • Використати логотипи з Config Map platform-logos у control-plane-console через прямий виклик з golang частини (так само як у швидких посиланнях)

  • Додати існуючи логотипи та назву у якості значень за замовчуванням у cluster-mgmt/deploy-templates/values.yaml та Config Map platform-logos.

Використання параметрів

  • Змінна імені платформи використовується при відмальовуванні golang шаблону заголовку сторінки

  • Змінна головного логотипу використовується при відмальовуванні golang шаблону заголовку сторінки

  • Додати favicon до control-plane-console (наразі не має ніякого) та брати його значення з параметра

Поза скоупом

  • Лоадер для control-plane-console