-
Notifications
You must be signed in to change notification settings - Fork 23
Closed
Description
The idea of this project is that we can provide a simple, single-pod S3 object storage system for developers and for light-weight clusters.
The following tasks need to be done to get this project ready for a 0.0.1 release:
- Create a repository that follows the standard Deis pattern for Kubernetes components
- Kubernetes service defined
- Kubernetes RC defined, scaling to 1 by default (Minio doesn't yet support multiple replicas)
- Build Minio from source from the master branch, and create a Docker image
- Create Minio admin account locally, and then upload the credential as a Kubernetes secret. There should be a Makefile target for this. (fix(Makefile): enumerate both the admin and user secrets #13)
- Create a shared account (Token/Secret) that all other Deis services can use to work with minio, and upload that as a Kubernetes secret. This can use the same Makefile target as the above. (fix(Makefile): enumerate both the admin and user secrets #13)
- Configure Minio to use those secrets in its RC
- Add support for generating an SSL certificate locally, and then storing that in a secret. There should be a Makefile target for this (
make ssl-cert). Self-signed is fine for now. (feat(Makefile, genssl/gen.sh): add script and makefile target for generating SSL certs #15) - Configure Minio to read the SSL key and cert from the secret and use it in the RC (feat(*): configuring minio with SSL certs #17)
- Create a Minio MC pod to be used for testing Minio from within a Kubernetes cluster (feat(*): build mc from master, push, make pod available for testing #19)
- Write an entry point on the MC pod that will run integration tests against the Minio RC to verify that it is up, running, and correctly configured. (feat(*): build mc from master, push, make pod available for testing #19)
- Update the README file with information on how to install and configure this package (docs(README.md,_docs/README.md): add install and usage instructions #14)
- Add an example in the
_docsdirectory for accessing and using Minio object storage from another pod. (docs(README.md,_docs/README.md): add install and usage instructions #14) - Test this installation on the below installs. It must run on both with no modifications to the underlying environment.
- Kubernetes + Vagrant (local)
- GKE
A few guidelines:
- For now, we are not assuming persistent storage. (Later, we will add volumes to the RC to provide that)
- All installation and configuration should be done in the Makefile. No shell scripts unless absolutely necessary.
- All code in the container should be written in Go. If you need a bootstrapping program, it should be called
boot.go, located in the root of this repository, and when compiled should be placed inrootfs/bin/boot. - As far as is possible, we should be working off of Minio's master branch, not a snapshot of an older version.