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:PutObjectAcl",
"s3:PutObject",
"s3:ListMultipartUploadParts",
"s3:ListBucketMultipartUploads",
"s3:ListBucket",
"s3:GetObjectAcl",
"s3:GetObject",
"s3:GetBucketLocation",
"s3:GetBucketAcl",
"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 для массовой миграции файлов.
Убедитесь, что целевой сервис хранения запущен и доступен с вашего компьютера.
В вашем файле .env добавьте параметры подключения к целевому сервису хранения:
TESTOPS_S3_URL_NEW
— URL-адрес сервера;TESTOPS_S3_BUCKET_NEW
— имя S3-бакета;TESTOPS_S3_ACCESS_KEY_NEW
— ключ доступа для подключения к S3-бакету;TESTOPS_S3_SECRET_KEY_NEW
— секретный ключ для подключения к S3-бакету.
В вашем файле docker-compose.yml добавьте конфигурацию сервиса
minio-migrate
:yamlservices: 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}/" # ...
Перейдите в директорию, где расположены файлы docker-compose.yml и .env, и выполните команду:
shdocker compose run minio-migrate