Обновление Системы

Перед обновлением Системы рекомендуется очистить БД 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

img

Полученное наименование секрета необходимо прописать в «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:» добавить полученный секрет в формате «ключ: значение».

img

  • В строке «repository» указать внешний репозиторий «nexus.ldm.ru:8081».
  • Для ingress указать свой host, на котором разворачивается инфраструктура.

img

  • Заменить все IP-адреса (192.168.1.45), встречающиеся в файле, на IP-адреса хоста, на котором разворачивается инфраструктура.

img

  • Получить ранее сгенерированный секретный ключ командой:
kubectl get secrets

Скопировать наименование ключа из колонки «NAME» и вставить его в строку «secretName» для tls.

img

  • Заменить 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».

img

Повторить эти действия для каждого клиента – dh-backend, dh-webclient, ldm-client.

В файле «values.yaml» для dh-backend значения переменной «KEYCLOAK_CLIENT_SECRET» заменить на ключ, полученный в карточке клиента dh-backend, для всех микросервисов.

img

После замены с помощью поиска убедиться, что прежнее значение в файле больше не встречается.

Для 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