Обновление Системы¶
Перед обновлением Системы рекомендуется очистить БД Apache Kafka во избежание возможных конфликтов.
Для обновления Системы предыдущей версии на релиз 1.11.1 необходимо выполнить следующие действия:
1. Использовать namespace в пространстве Kubernetes, в котором ранее была установлена Платформа.
2. Для возможности скачивания образов из защищенного репозитория необходимо предварительно убедиться, что есть:
- Адрес registry: nexus.ldm.ru:8081;
- Логин и пароль (например, ci-user / my-secret-pass);
- Доступ к кластеру Kubernetes через kubectl;
- Права на создание secret в нужном namespace.
3. Создать секрет:
kubectl create secret docker-registry nexus-secret \
--docker-server=nexus.ldm.ru:8081 \
--docker-username='имя пользователя от nexus' \
--docker-password='пароль от nexus' \
--namespace='где развернута Система'
4. Получить наименование секрета, в данном случае «nexus-secret», используя команду:
kubectl get secret | grep nexus
Полученное наименование секрета необходимо прописать в «values.yaml» на шаге 11.
5. Обновить репозиторий:
helm repo update
6. Показать список доступных версий командой:
helm search repo ldm --versions
7. Найти нужную версию:
helm search repo ldm --versions | grep 1.10.4
8. Перейти в директорию для сохранения и распаковки.
cd charts/
9. Скачать в созданную директорию образы:
helm pull ldm/platform --version 1.10.4
10. Распаковать командой:
tar xvzf platform-1.10.4.tgz
11. После распаковки открыть файл «values.yaml» и внести изменения.
- В блоке «default» найти строку «pullSecrets», удалить квадратные скобки и через «- name:» добавить полученный секрет в формате «ключ: значение».
- В строке «repository» указать внешний репозиторий «nexus.ldm.ru:8081».
- Для ingress указать свой host, на котором разворачивается инфраструктура.
- Заменить все IP-адреса (192.168.1.45), встречающиеся в файле, на IP-адреса хоста, на котором разворачивается инфраструктура.
- Получить ранее сгенерированный секретный ключ командой:
kubectl get secrets
Скопировать наименование ключа из колонки «NAME» и вставить его в строку «secretName» для tls.
- Заменить ENVIRONMENT_PREFIX и все вхождения «demo» на те префиксы, которые будут использоваться в микросервисах.
Между сервисами будет нарушено функциональное взаимодействие, если для них будут указаны разные префиксы.
- Заменить все порты «9200» в файле, в частности «ELASTICSEARCH_PORT: 9200», на свои.
- Для «dh-email-notifications-service» в строках «DH_EMAIL_SERVICE_EMAIL_HOST» и «DH_EMAIL_SERVICE_EMAIL_PORT» указать адрес используемого SMTP-сервера.
- Заменить все Keycloak ключи для клиентов dh-backend, dh-webclient, ldm-client на свои.
Для получения Keycloak ключей необходимо авторизоваться в Keycloak, перейти в реалм DH, открыть раздел Client. Открыть карточку клиента, перейти на вкладку Credentials, скопировать ключ в строке «Secret».
Повторить эти действия для каждого клиента – dh-backend, dh-webclient, ldm-client.
В файле «values.yaml» для dh-backend значения переменной «KEYCLOAK_CLIENT_SECRET» заменить на ключ, полученный в карточке клиента dh-backend, для всех микросервисов.
После замены с помощью поиска убедиться, что прежнее значение в файле больше не встречается.
Для dh-webclient значения переменной «KEYCLOAK_WEBCLIENT_SECRET» заменить на ключ, полученный в карточке клиента dh-webclient, для всех микросервисов. После замены с помощью поиска убедиться, что прежнее значение в файле больше не встречается.
Для ldm-client значения переменной «OAUTH2_KEYCLOAK_CLIENT_SECRET» заменить на ключ, полученный в карточке клиента ldm-client, для всех микросервисов. После замены с помощью поиска убедиться, что прежнее значение в файле больше не встречается.
- Заменить значение переменной «PUBLIC_URL» на необходимый адрес, используя который пользователи будут попадать в Систему.
12. Находясь в директории Системы произвести обновление:
helm upgrade platform ldm/platform --version 1.10.4 -f values.yaml
13. Проверить наличие Системы в списке установленных релизов текущего кластера:
helm list
Для обновленной Системы изменится значение «Revision» и версия чарта.
Вывести список сервисов для отслеживания их состояния:
kubectl get pods | grep 0/1






