Skip to content

feat: replace MinIO with SeaweedFS - #7

Merged
eugene-panin merged 1 commit into
mainfrom
agent/replace-minio-seaweedfs
Jul 31, 2026
Merged

feat: replace MinIO with SeaweedFS#7
eugene-panin merged 1 commit into
mainfrom
agent/replace-minio-seaweedfs

Conversation

@eugene-panin

Copy link
Copy Markdown
Contributor

Результат

  • MinIO заменён на SeaweedFS 4.40 в профиле local-objects.
  • Сохранены conn_id local_s3, bucket etl-local, path-style addressing и внешний S3-порт 59000.
  • Smoke-DAG теперь проверяет запись, чтение, list и удаление объекта с идемпотентным ключом на run_id.
  • Добавлен расширенный S3 contract: put, metadata, get, list, presigned GET, copy, multipart и обязательный cleanup.
  • Добавлен одноразовый compose.minio-migration.yaml: копирует текущий bucket из старого MinIO volume и завершает работу с ошибкой при расхождении mc diff.

Почему

Обычный runtime больше не зависит от MinIO, при этом pipeline сохраняют прежний S3-контракт. Форматы volumes несовместимы, поэтому миграция сделана явной и обратимой: старый minio-data не удаляется автоматически.

Проверка

  • docker compose config для base, local и migration override
  • 3 launcher unit tests
  • Python compileall
  • DagBag import двух example DAG в Airflow 3.3.0
  • scripts/check-public-boundary.sh
  • реальный S3 contract в изолированном Compose-проекте через Airflow local_s3
  • реальная MinIO -> SeaweedFS миграция тестового объекта и чтение результата
  • команда contract-проверки из README запущена с чистыми временными volumes

Внешний gate

Текущий локальный Workbench этим PR не передеплоен. Перед обновлением существующего stack нужно проверить volume etl-workbench_minio-data и, если в нём есть нужные объекты, выполнить documented one-time migration. API keys и Airflow Connections не меняются.

Откат

Остановить новый stack без --volumes и запустить предыдущий release с сохранённым minio-data. Новый seaweedfs-data при этом также остаётся доступен для повторной проверки или обратного копирования.

@eugene-panin
eugene-panin marked this pull request as ready for review July 31, 2026 07:59
@eugene-panin
eugene-panin merged commit 6d87345 into main Jul 31, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant