Enable Kubernetes Operators support for Fablo
Description
Fablo is a tool to generate the Hyperledger Fabric blockchain network and run it on Docker. It's main goal is to provide a super-easy start with Hyperledger Fabric.
It has a declarative approach - a whole network is described in a single file. Right now only the Docker environment is supported and we want add support for Kubertnetes Operators.
Participating in the project will allow you to gain significant experience with Hyperledger Fabric network lifecycle and Kubernetes Operators. You will work with a "translation" of the current Docker-backed flow to Kubernetes.
Additional Information
Fablo's GitHub repository: https://github.com/hyperledger-labs/fablo
Learning Objectives
- Learn Hyperledger Fabric network lifecycle by implementing support for it for different environment
- Learn Kubernetes Operators
- Work with Bash and TypeScript
- Get hands on experience with professional software development process (mentoring, PRs, code reviews, working CI process)
The expertise gained with working on the project is a good start in a broad range of professional careers related with Hyperledger Fabric and/or Kubernetes. It is also a great warmup before Certificated Fabric Administrator and for Kubernetes certifications.
Expected Outcome
Fablo generates Docker compose file and some bash scripts for automation of the network configuration. We want to add an option to generate network configuration for Kubernetes Operators. We expect the following outcome:
- Fablo is able to generate YAMLs needed for K8S deployment. It can be implemented as a single YAML file deployed by single organization (minimal approach). It can be also splitted for multiple organizations for independent deployments (nice to have).
- Fablo supports current Docker features for K8S (like, up, down, prune, chaincode upgrade etc.). The scope of supported features is flexible and depends on the work required for adding basic support for K8S.
Relation to Hyperledger
- Hyperledger Fabric
- Fablo (Hyperledger Labs)
Education Level
Undergraduate or graduate
Skills
A candidate should feel comfortable with command line and working with Linux or OS X environment.
Nice to have:
- Some experience with Bash, TypeScript and YAML
- Knowledge of Docker or any other containerization tool
Future plans
Adding support for Kubernetes is a major step for Fablo, since it will make us closer to working with production networks. It will also allow to start complex networks, when local computer resources are insufficient. We will be happy to have our mentee working with us on Fablo with related issues, when the internship ends.
Preferred Hours and Length of Internship
Both full time and part time are acceptable, however we prefer part time.
Mentor(s) Names and Contact Info
- Piotr Hejwowski (Hejwo, piotr.hejwowski@softwaremill.com)
- Jakub Dzikowski (dzikowski, jakub.dzikowski@softwaremill.com)