Skip to content

S3-совместимое хранилище

ТестОпс хранит артефакты из результатов тестов и тест-кейсов в отдельном объектном хранилище (см. Архитектура).

Требования и рекомендации к S3-совместимому хранилищу

Производственная среда

Не размещайте хранилище артефактов на одном диске с базой данных ТестОпс. Разделение позволит избежать конкуренции за ресурсы ввода-вывода и гарантирует стабильную работу как хранилища, так и базы данных.

Если вы используете Kubernetes, подключайте хранилище с помощью CSI-драйвера.

Аппаратное обеспечение

Для хранения артефактов в S3-совместимом хранилище используйте только SSD, предпочтительно корпоративного класса. HDD ухудшат производительность ТестОпс по мере увеличения количества хранимых артефактов.

Класс хранения

Используйте стандартный класс хранения, рассчитанный на частый доступ к данным. Классы для «холодного» хранения (например, Reduced Redundancy Storage, Cold Tier) могут значительно замедлить работу с артефактами и повлиять на производительность всей системы.

Решения для S3-совместимых хранилищ

Наиболее надежный и производительный вариант объектного хранилища, который рекомендуется использовать для крупных развертываний ТестОпс с высокой нагрузкой, — Amazon S3. Объектное хранилище также может быть реализовано с помощью MinIO, Google Cloud Storage или любого другого решения, совместимого с S3.

Amazon S3

Чтобы использовать хранилище Amazon S3 с ТестОпс, создайте следующую политику доступа в консоли AWS:

json
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "S3assets",
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:ListBucket",
        "s3:GetObject",
        "s3:DeleteObject"
      ],
      "Resource": ["arn:aws:s3:::<ALLURE_S3_BUCKET_NAME>/*", "arn:aws:s3:::<ALLURE_S3_BUCKET_NAME>"]
    }
  ]
}

Google Cloud Storage

Для использования Google Cloud Storage в качестве хранилища ТестОпс вам нужно создать бакет с типом контроля доступа fine-grained и настроить списки контроля доступа (ACL) для разрешения доступа к бакету.

В качестве URL-адреса сервера в файле конфигурации ТестОпс укажите https://storage.googleapis.com.

Миграция данных в MinIO

Если вы используете версию ТестОпс для демонстрационного развертывания (testops-demo) и планируете переход на производственную среду, следуйте инструкции ниже, чтобы перенести артефакты ТестОпс в отдельное хранилище MinIO. Эта инструкция также может быть полезна, если вы работаете с развертыванием Docker Compose в течение долгого времени и артефакты ТестОпс хранятся в файловой системе Docker-томов.

Важно

Прямое копирование файлов может привести к неправильным правам доступа и неточным метаданным MinIO. Мы настоятельно рекомендуем использовать приложение MinIO CLI для массовой миграции файлов.

  1. Убедитесь, что целевой сервис хранения запущен и доступен с вашего компьютера.

  2. В вашем файле .env добавьте параметры подключения к целевому сервису хранения:

    • TESTOPS_S3_URL_NEW — URL-адрес сервера;
    • TESTOPS_S3_BUCKET_NEW — имя S3-бакета;
    • TESTOPS_S3_ACCESS_KEY_NEW — ключ доступа для подключения к S3-бакету;
    • TESTOPS_S3_SECRET_KEY_NEW — секретный ключ для подключения к S3-бакету.
  3. В вашем файле docker-compose.yml добавьте конфигурацию сервиса minio-migrate:

    yaml
    services:
      minio-migrate:
        restart: "no"
        image: minio/mc
        container_name: minio-migrate
        depends_on:
          - minio-local
        networks:
          - testops-net
        entrypoint: "/bin/sh -c"
        command: >
          "mc config host add minio-old ${DEMO_INSTANCE_S3_URL} ${DEMO_INSTANCE_S3_ACCESS_KEY} ${DEMO_INSTANCE_S3_SECRET_KEY} --api S3v4 &&
           mc config host add s3-new ${TESTOPS_S3_URL_NEW} ${TESTOPS_S3_ACCESS_KEY_NEW} ${TESTOPS_S3_SECRET_KEY_NEW} --api S3v4 &&
           mc cp -r minio-old/${DEMO_INSTANCE_S3_BUCKET}/v2 s3-new/${TESTOPS_S3_BUCKET_NEW}/"
    
      # ...
  4. Перейдите в директорию, где расположены файлы docker-compose.yml и .env, и выполните команду:

    sh
    docker compose run minio-migrate

Logo © 2025 Все права защищены. Сайт принадлежит компании ООО «Инструменты тестирования»