Improve Kubernetes Operators support for Fablo
Description
Fablo is a Hyperledger Labs project that aims to manage a local Hyperledger Fabric network on Docker. Previous edition of Hyperledger Mentorship Program resulted with the implementation of the initial, experimental support for Kubernetes Operators (using Bevel Operator).
The overall objective of the current mentorship program is to improve test coverage for Kubernetes Operators support for Fablo, implement crucial missing features and fix most important issues that come up as a result of testing.
First, the mentee is responsible for implementing Bash scripts with automatic tests of a running HLF network, in a similar manner it is already done for Fablo on Docker. Tests need to verify the support for Fablo’s features, like network lifecycle support, using Fablo hooks, managing complex HLF network topologies, and others. On the basis of it, the mentee is going to create a set of issues and start working on them in the second part of the internship. Additionally the project includes implementing a few Fablo features supporting testing: `fablo invoke/query`, `fablo enroll` and `fablo chaincode list`.
Additional Information
The project results are going to be merged and released often.
- Before the the mentorship experimental support for Kubernetes is going to be merged and released by Fablo maintainers.
- 1st quarter of the mentorship focuses on getting mentee familiar with Fablo and writing automatic tests
- 2nd and 3rd quarter of the mentorship focus on improving Fablo by resolving found issues and improving our tests base
- We expect at least two new Fablo releases, after 2nd and 3rd quarter of the mentorship
Useful resources:
- Sample Bash script with automatic tests: https://github.com/hyperledger-labs/fablo/blob/main/e2e-network/test-01-simple.sh
- Tested features matrix for Docker (we want to have something similar for Kubernetes Operators): https://github.com/hyperledger-labs/fablo/blob/main/e2e-network/TEST_CASES.md
- Issue with a list of features to be verified for Kubernetes Operators: https://github.com/hyperledger-labs/fablo/issues/351
- Branch with initial support for Kubernetes Operators: https://github.com/hyperledger-labs/fablo/tree/kubernetes and related PR https://github.com/hyperledger-labs/fablo/pull/361
Learning Objectives
- General software engineering skills - the understanding of the importance of automatic tests, even for the infrastructure, in the process of delivering the quality software; looking from edge cases, problem solving
- Bash scripting skills
- Experience with Kubernetes Operators, Hyperledger Bevel and Fablo
- Hyperledger Fabric network topology, setup and operation
Expected Outcome
- Bash scripts with automatic tests covering Fablo/K8s and HLF features
- Tested features matrix for Fablo with Kubernetes Operators
- A list of issues documenting missing features and errors in the current implementation
- Implementation resolving part of the created issues
Relation to Hyperledger
- Fablo - Hyperledger Labs (https://github.com/hyperledger-labs/fablo) - the internship outcome improves Fablo code base
- Hyperledger Fabric, Hyperledger Bevel - mentee uses their features
Mentee Skills
- Basic Bash scripting skills
- Basic programming knowledge in any common language
- Knowledge of Docker or any other containerization tool
- Node.js is a nice to have
Future plans
Improving support for Kubernetes Operators in Fablo is going to allow reaching a new group of users. It will also make it possible for Fablo to become a part of the production HLF network toolkit.
Mentor(s) Names and Contact Info
- Jakub Dzikowski (github/dzikowski, jakub@dzikowski.online, CEST time zone)