Giter Club home page Giter Club logo

minio-manager's Introduction

minio-manager

Release Build status Commit activity License

Declare what MinIO buckets, IAM policies, ILM policies you want, and let MinIO Manager do the work.

Description

The concept for management is to have so-called "bucket groups".

Each bucket group is managed by an account that only has access to buckets in that group.

It should be noted that this is explicitly intended for the creation and updating of resources in MinIO. It does not delete any resources anywhere.

Requirements

Getting started with your project

Install the environment and the pre-commit hooks with

make install

You are now ready to start development on your project! The CI/CD pipeline will be triggered when you open a pull request, merge to main, or when you create a new release.

To finalize the set-up for publishing to PyPi or Artifactory, see here. For activating the automatic documentation with MkDocs, see here. To enable the code coverage reports, see here.

To do features

Check the open enhancement issues.


Repository initiated with fpgmaas/cookiecutter-pdm.

minio-manager's People

Contributors

alveel avatar

Stargazers

Nikolaus Schlemm avatar

Watchers

 avatar

minio-manager's Issues

Catch that a policy has more rights than the parent user

The current MinIO (or S3?) behaviour is that it will fall back to the most rights instead of outright denying the application of the policy.

This means the service account (for example) has way more permissions than intended: instead of to a single bucket, to all buckets with the specified wildcard.

Implement automatic configuration of a service account specific to a bucket

Implement automatic configuration of a service account specific to a bucket.

Currently, this is done in a bit of a convoluted way:

buckets:
  - name: infra-test-bucket-1

service_accounts:
  - name: infra-test-bucket-1
    bucket: infra-test-bucket-1

Having the ability to do this with one line in the same resource configuration would be a significantly better user experience.

Create dry-run functionality

Right now there is no way to see what would change when running the application.

Introducing dry-run would allow running the application twice, requiring manual approval for the second, non-dry-run.

Alert when resources exist that are not present in the configuration

The application is largely unaware of already existing resources.

In most places it does validate whether a resource exists and matches the configuration we have, but we do not check if there are for example any buckets that are not present in our resources.

We should inform users when this happens to reduce stale/lingering resources within MinIO/S3.

Implement bucket name prefix

If we can hard-code a limit for the allowed buckets to be created, we can deny buckets in the parse stage before attempting to create them at all.

For example MINIO_MANAGER_ALLOWED_BUCKET_PREFIX=infra-test- would deny the following resources:

buckets:
  - name: infra-acpt-deploy-1

Improve logging not to show stack trace when log level isn't DEBUG

Currently for most errors we catch we raise a custom exception. However this means we also get a full stack trace. Instead what we should get is a more concrete and informational log message with what went wrong and possible causes and fixes.

aka only throw exceptions when we're at a loss. If we kinda know what's going on, handle more gracefully.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.