Project Plan - expand minifabric with k8s operator
Mentor and Mentee
Mentor: Tong Li
Timezone: EDT
Discord (hyperledger): tongliofcary#5114
Mentee: Christopher Ryan Humphrey
Timezone: EDT
Fork of official repository for this project: https://github.com/hyperledger-labs/minifabric
Deliverables
- Review/Get familiar with technologes:
- Docker
- K8S
- Git/Yaml/Ansible
- K8S operator
- Blockchain/Hyperledger Fabric
- Setup Fabric network using Minifabric in docker env.
- deploy example chaincode
- create channel
- run operations like join new org, add new node, upgrade chaincode
- Add option to deploy fabric onto K8S (currently deploy onto docker and K8S but using a file indicator rather than an explicit flag)
- Deploy Fabric K8S operator controller
- Deploy Fabric hyperledger fabric peer and orderer nodes onto K8S using fabric operator
- Expose peer and orderer nodes outside of K8S cluster
Milestones
Evaluation 1:
- Familiar with technologies
Evaluation 2:
- Run minifabric in docker env to ensure fabric network is up running.
- chaincode can be installed
- channel can be created, peers can be joined
- transactions can be made
Evaluation 3:
- New option is added to deploy fabric k8s operator controller to k8s
- operator controller can be deployed onto k8s cluster
- peer and orderer nodes are deployed
Evaluation 4:
- Operators such as channel,chaincode can be operated on against the fabric running on k8s cluster
- Write a complete documentation for the project
Timeline
Week # | Week | Activity | Status |
1-2 | July 11 - July 22 Evaluation 1 | familiar with the technologies and tools needed as these skills were required to successfully complete the project, here is a list of things: Docker, K8S, git, yaml, ansible, K8S operator, Blockchain, Hyperledger Fabric etc. | |
3 | July 25 - July 29 Evaluation 2 | Run Minifabric locally, setup env to run Minifabric in docker env so that Fabric network is up running, deploy an example chain code, create channels, and run all other operations such as join new org, add new node, upgrade chain code. | |
5-6 | Aug 1 - Aug 12 | Add flag to run Minifabric command against k8s env instead of against docker, deploy Fabric K8S operator controller onto K8S | |
7-9 | Aug 15 - Sept 2 Evaluation 3.1 | Deploy peer node onto K8S | |
9 - 10 | Sept 5 - Sept 16 Evaluation 3.2 | Deploy Orderer node onto K8S | |
11 - 12 | Sept 19 - Sept 30 Evaluation 3.3 | Expose node endpoints outside of K8S clusters (this task can be combined with deploy nodes) | |
13 - 15 | Oct 3 - Oct 21 Evaluation 4.1 | Modify existing channel create command to support channel creation against the nodes running in k8s (using operator way), join nodes to the channel, chain code operations | |
16 - 17 | Oct 24 - Nov 4 Evaluation 4.2 | Modify existing org join commands to support org join, peer join. | |
18 - 21 | Nov 7 - Dec 2 Evaluation 4.3 | Provide tests, documentation, videos | |
22-24 | Dec 5 - Dec 23 Evaluation 4.4 | Bug fixes |
Methodology
We will be using Agile development model, git PR should be created and reviewed, then merged after review. design should be discussed and confirmed with mentors. Test cases should be created when new code is added, code without tests should not be merged. Using git issue tracking to track issues and provide fixes.