My LFX Mentorship experience with OpenELB

This page summarizes the projects mentioned and recommended in the original post on dev.to

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • openelb

    Load Balancer Implementation for Kubernetes in Bare-Metal, Edge, and Virtualization

  • My project was "CNCF - OpenELB: Provide the OpenELB Web UI for managing EIP and IP pool". I had to develop a web console for creating and managing the OpenELB resources. Now you might be wondering what is OpenELB. Well, OpenELB is an open-source load balancer implementation designed for exposing the LoadBalancer type of Kubernetes services in bare metal, edge, and virtualization environments. You can learn more about it here https://openelb.io/. Here's the project URL https://github.com/openelb/openelb. It is a sandbox project in CNCF.

  • cobra

    A Commander for modern Go CLI interactions

  • Then I started walking through the codebase of the OpenELB project. The other mentee of the OpenELB project Amal Thundiyil helped me in that process. I learned that there is a component named manager, that manages most of the tasks in OpenELB. It used Cobra CLI, so I had to learn enough to use it. During that time, I learned about the custom resource definitions of OpenELB as well and also a little about Kubebuilder and Kustomize. The book Programming Kubernetes by Michael Hausenblas, and Stefan Schimanski also helped quite a lot. I also had to go through Kubernetes docs to improve my understanding of the Kubernetes API. The Kubebuilder book was also very useful for me. After that, I also learned to use Makefiles and was ready to contribute to the OpenELB project.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • kubebuilder

    Kubebuilder - SDK for building Kubernetes APIs using CRDs

  • Then I started walking through the codebase of the OpenELB project. The other mentee of the OpenELB project Amal Thundiyil helped me in that process. I learned that there is a component named manager, that manages most of the tasks in OpenELB. It used Cobra CLI, so I had to learn enough to use it. During that time, I learned about the custom resource definitions of OpenELB as well and also a little about Kubebuilder and Kustomize. The book Programming Kubernetes by Michael Hausenblas, and Stefan Schimanski also helped quite a lot. I also had to go through Kubernetes docs to improve my understanding of the Kubernetes API. The Kubebuilder book was also very useful for me. After that, I also learned to use Makefiles and was ready to contribute to the OpenELB project.

  • client-go

    Go client for Kubernetes.

  • Then on June 18th, 2022, I got a chance to meet our mentors and the other mentee of OpenELB (the mentee and the mentors of OpenFunction were also there). There I was informed about how to start working on the project, so I started learning about using the Kubernetes API client. After experimenting with the official Kubernetes Client, I learned that it's not very feasible to use that for dealing with CRDs (custom resource definitions), so I explored the controller-runtime client as per what I found in many sources, and found that it was a great fit for the backend of our project. During that time, I also built a simple project to see if everything would work as expected or not (as this was the first time I dealt with a Kubernetes client, I considered that debugging would be easier in a smaller project).

  • Then on June 18th, 2022, I got a chance to meet our mentors and the other mentee of OpenELB (the mentee and the mentors of OpenFunction were also there). There I was informed about how to start working on the project, so I started learning about using the Kubernetes API client. After experimenting with the official Kubernetes Client, I learned that it's not very feasible to use that for dealing with CRDs (custom resource definitions), so I explored the controller-runtime client as per what I found in many sources, and found that it was a great fit for the backend of our project. During that time, I also built a simple project to see if everything would work as expected or not (as this was the first time I dealt with a Kubernetes client, I considered that debugging would be easier in a smaller project).

  • console

    KubeSphere Console is the web-based UI for KubeSphere clusters. (by kubesphere)

  • After that, we started planning for the frontend. I was informed that it would be similar to the Kubesphere-Console. So I tried out Kubesphere from the user perspective and started going through the codebase. In the beginning, the Kubesphere-Console was very overwhelming for me as I never worked with any large-scale React project before. I also didn't work with any React project with class-based components. In the meantime, I was also provided with designs in Figma. Sadly, I never used Figma earlier, but with the help of my kind mentors, I quickly learned to use it. After consulting with my mentor Changjiang Li, we decided to use React function-based components and Typescript for this project (in contrast to Kubesphere-console, where React class-based components and Javascript were used). I chose to use Typescript because debugging larger Javascript codebases is usually very challenging.

  • console

    OpenELB Console is the web-based UI for OpenELB. (by openelb)

  • I have completed the basic setup of a React project along with a few UI components like Navbar and created a pull request in the OpenELB-Console repository. It's worth noting that the use of Kube-design components boosted our productivity in the frontend. Then I was trying to develop a complicated component that was the table shown below.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • kube-design

    Kube Design for KubeSphere Console

  • I have completed the basic setup of a React project along with a few UI components like Navbar and created a pull request in the OpenELB-Console repository. It's worth noting that the use of Kube-design components boosted our productivity in the frontend. Then I was trying to develop a complicated component that was the table shown below.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts