Запуск Integration API

Подготовка к запуску

Сначала необходимо извлечь docker-образ Integration API из дистрибутива. Далее запускаем терминал и выполняем в нем команды, настраивающие его на работу с хранилищем docker-образов в Minikube:

minikube docker-env
eval $(minikube -p minikube docker-env)

Примечание

В примерах будет использоваться полный номер версии TerraLink xDE Pro 3.2403.23145.1, который включает номер релиза и билда. В случае использования другого номера версии, замените его во всех приведенных примерах команд и содержимого файлов.

Загрузка docker-образа

Переходим в папку Integration.REST и загружаем docker-образ из tar-файла:

docker load -i terralink-xdepro-integration-rest-3.2403.23145.1.tar

Результатом выполнения команды будет сообщение о загрузке образа:

Загрузка docker-образа из файла

Создание приложения

Создаем файл rest-api-integration-deployment.yaml с конфигурацией приложения:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: rest-api-integration
  labels:
    name: xdepro
    component: rest-api-integration
spec:
  replicas: 3
  selector:
    matchLabels:
      name: xdepro
      component: rest-api-integration
  template:
    metadata:
      labels:
        name: xdepro
        component: rest-api-integration
    spec:
      volumes:
        - name: rest-api-integration-logs-storage
          persistentVolumeClaim:
            claimName: logs-pv-claim
      containers:
        - name: rest-api-integration-container
          image: terralink-xdepro-integration-rest:3.2403.23145.1
          imagePullPolicy: Never
          ports:
            - containerPort: 80
          volumeMounts:
            - mountPath: "/usr/share/TerraLink.xDEPro"
              name: rest-api-integration-logs-storage
          env:
            - name: DOCFLOW_CONNECTION_STRING
              value: "User ID=LOGIN;Password=PASSWORD;Host=100.100.100.100;Port=5434;Database=DOCFLOW_DB;MaxPoolSize=500"
            - name: DOCFLOW_LOG_TARGET
              value: "AsyncFileLog"
            - name: DOCFLOW_PROVIDER_NAME
              value: "Npgsql"
            - name: DOCFLOW_APPSETTINGS
              value: "{\"Jwt\":{\"Key\":\"831AAB02-60F3-440F-80F6-2D5C5DAC2DCA\"},\"DataProtectionKey\":\"d416487fa3ac4a1ca4e342b8c5971d18\"}"

В этой конфигурации:

  • создается 3 реплики;

  • в папку /usr/share/TerraLink.xDEPro монтируется том с логами logs-pv-claim, созданный ранее;

  • для создания контейнеров используется образ terralink-xdepro-integration-rest:3.2403.23145.1;

  • параметры контейнера указываются в переменных окружения, хранящихся в поле .spec.template.spec.containers.env.

Применяем конфигурацию:

kubectl apply -f rest-api-integration-deployment.yaml

Создание сервиса

Теперь необходимо создать сервис для доступа к приложению извне. Для этого создадим файл rest-api-integration-service.yaml с конфигурацией сервиса:

apiVersion: v1
kind: Service
metadata:
  name: rest-api-integration-service
  labels:
    name: xdepro
    component: rest-api-integration
spec:
  selector:
    name: xdepro
    component: rest-api-integration
  ports:
    - port: 80
      targetPort: 80
  type: LoadBalancer

Применяем конфигурацию:

kubectl apply -f rest-api-integration-service.yaml

Получение адреса сервиса

Получаем адрес, по которому можно подключиться к созданному сервису:

minikube service --url rest-api-integration-service

Команда выведет URL-адрес сервиса, который будет использован другими модулями для подключения к Integration API.

Получение url сервиса

Проверка установленного компонента

В качестве проверки успешности запуска Integration API можно открыть страницу в браузере и перейти по полученному адресу. Должна открыться страница Swagger UI.