Динамічні змінні у документації
Загальний опис
У цій статті буде розглянута можливість подання актуальної інформації для користувачів конкретної платформи. У поточній реалізації неможливо використовувати актуальні посилання чи іншу інформацію, що стосується платформи на якій розгорнута документація та її реєстрів.
Необхідно, щоб така можливість була для зручності використання. Також у рамках цього дизайна враховується необхідність робити посилання на демо реєстр, що потребує можливості обирати основний демо реєстр для таких посилань.
Цільовий дизайн управління налаштуваннями
Компоненти системи та їх призначення в рамках дизайну рішення
У даному розділі наведено перелік компонент системи, які задіяні або потребують змін/створення в рамках реалізації функціональних вимог згідно технічного дизайну рішення.
Компонент | Службова назва | Призначення / Суть змін |
---|---|---|
Документація |
ddm-architecture |
Зміни в структурі файлів що використовують змінні, оновлення пайплайнів розгортання |
Control plane консоль |
control-plane-console |
Додати можливість позначати реєстр як демо-реєстр та обрати демо реєстр за замовчуванням |
План змін
Рішення має враховувати наступні факти:
-
актуальні змінні не відомі на момент build фази документації
-
частина змінних відома на момент встановлення платформи
-
інша частина залежить від налаштуваннь платформи у процесі експлуатації (наприклад, посилання на демо-реєстр)
-
у випадку посиланнь на демо-реєстр необхідно залишити у документації інформацію про те, як формується це посилання
-
посилання на демо-реєстр враховуючи попердній пункт будуть мати однакову структуру тому треба знайти підхід який спростить формування таких посиланнь
Необхідні зміни у репозиторію документації
1. Використання змінних
У adoc файлах документації знайдено наступні змінні (на другому рівні те, як ці змінні використовувались у самих файлах):
-
krrt-stage
-
<cluster-name>
-
<назва-кластера>
-
-
demo-registry
-
<registry-name>
-
<registry_name>
-
<REGISTRY-NAME>
-
<назва-реєстру>
-
<openshift-project-name>
-
<project-name>
-
{NAME_REGISTRy}
-
{CP-NAMESPACE}
-
<службова-назва-реєстру>
-
-
apps.krrt-stage.ncr.gov.ua
-
{DNS-WILDCARD}
-
<dns-wildcard>
-
<base-domain>
-
<dnsWildcard>
-
.dnsWildcard
-
<registry.platform-domain>
-
План дій:
-
Всі змінні треба привести до єдиної конвенції:
Нова змінна: {{{my-variable}}}
-
Створення окремої папки
ROOT/partials/links
у якій розмістити файли для посиланнь -
Використати include цих файлів де це необхідно
-
Заміна текста документації з адаптацію до нової можливості використання змінних де це необхідно
Приклад використання include:
include::ROOT:partials$/links/nexus.adoc
Приклад файла для посилання на jenkins nexus.adoc
:
https://nexus-krrt-stage.apps.krrt-stage.ncr.gov.ua/ footnote:[cluster-name -- назва namespace (простору імен) у Nexus; dns-wildcard -- значення dns-wildcard;]
krrt-stage та apps.krrt-stage.ncr.gov.ua трансформуються у актуальні дані в процесі розгортання.
2. Зміни процесу розгортання
Всі змінні які підходять під паттерн обраний на минулому кроці треба замінити на актуальні дані у процесі розгортання документації. Таким чином ми уникнемо помилок та легко досягнемо необхідного рівня гнучкості (а саме, можливості змінювати посилання у процесі життя платформи). Це включає:
-
додавання відомих змінних у структуру
ddm-architecture/deploy-templates/values.yaml
-
Наразі це тільки
registry-name
-
для кожної змінної треба задати значення за замовчуванням
-
-
написання скрипта якій замінить усі входження змінних за паттерном
-
паттерн -
{{{variable}}}
-
при відсутності даних для зазначеної назви змінної - залишити текст без змін
-
значення змінних беруться з environment змінних (див. наступний крок)
-
-
застосування скрипта для розгортання платформи
-
зміни стосуються файла
ddm-architecture/deploy-templates/templates/deployment.yaml
-
у секції
env
цього файлу треба додати змінні які заповнюються зvalues.yaml
чи з інших джерел (якщо це платформені змінні):-
cluster-name - {{ env "dnsWildcard" }}
-
dns-wildcard - {{ env "clusterNameShort" }}
-
-
-
застосування скрипта для зовнішього розгортання документації (github)
-
зміни стосуються файла
ddm-architecture/.github/workflows/antora-build.yml
-
тут використовуються лише змінні за замовчуванням із файла
ddm-architecture/deploy-templates/values.yaml
-
перед застосуванням цих змін у master необхідно перевірити разгортання документації через github
-
Control plane
1. Вибір демо-реєстру за замовчуванням
-
У вкладці
КЕРУВАННЯ ПЛАТФОРМОЮ
при переході у редагування треба додати нову вкладкуДОКУМЕНТАЦІЯ
. -
На цій новій вкладці
ДОКУМЕНТАЦІЯ
додати компонент Select, який буде дозволяти обрати зі всіх наявних реєстрів -
Опції для вибору треба взяти з переліку Codebase ресурсів
-
Зберігати обране значення треба у файлі
values.yaml
репозиторія cluster-mgmt разом з іншими параметрами платформи вкладкиКЕРУВАННЯ ПЛАТФОРМОЮ
-
Назва параметра -
registry-name
-
Зміни цього
values.yaml
вже перерозгортають документацію тому додатково змін до цього процесу не передбачується

Якщо реєстр який обрано демо-реєстром за замовчуванням був видалений, то це ніяк не впливає на |
Помилка у разі того, якщо обраний раніше демо реєстр вже не актуальний:
