MinIO CloudEvents Service consumes MinIO events from a Kafka topic in
S3/MinIO format, converts them to CloudEvents, and sends them to a
cloudevents
topic in Kafka.
In essence it's a workaround for the fact that MinIO does not allow natively sending CloudEvents since it implements the same API surface that AWS S3 also provides.
To acheive this, we implement a simple S3 CloudEvents Adapter.
Run the container to see all available configuration options and their corresponding environment variables.
podman run --rm ghcr.io/radiorabe/minioevents:latest --help
python -mvenv venv
. venv/bin/activate
pip install poetry
poetry install
pytest
The CI/CD setup uses semantic commit messages following the conventional commits standard. The workflow is based on the RaBe shared actions and uses go-semantic-commit to create new releases.
The commit message should be structured as follows:
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
The commit contains the following structural elements, to communicate intent to the consumers of your library:
- fix: a commit of the type
fix
patches gets released with a PATCH version bump - feat: a commit of the type
feat
gets released as a MINOR version bump - BREAKING CHANGE: a commit that has a footer
BREAKING CHANGE:
gets released as a MAJOR version bump - types other than
fix:
andfeat:
are allowed and don't trigger a release
If a commit does not contain a conventional commit style message you can fix it during the squash and merge operation on the PR.
The CI/CD setup uses Docker build-push Action to publish container images. The workflow is based on the RaBe shared actions.
This application is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, version 3 of the License.
Copyright (c) 2023 Radio Bern RaBe