openMF / ph-ee-env-labs

Actual configurations of lab environment, BPMN flows, and Helm Charts

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[DMP 2024]: Implement Kubernetes Operator for Mifos/Fineract and/or PH-EE

DavidH-1 opened this issue · comments

Ticket Contents

Description

The goal of this project is to improve the deployability of key projects of our stack like Mifos/Fineract and Payment Hub EE.
Kubernetes operators give kubernetes application dev/ops a great deal of reliability and architectural control over kubernetes applications deployments. Reference Operator pattern for details on the benefits of Kubernetes operators. The benefits of Kubernetes operators can also be quite tangible and visibile by looking at those under development from peer projects in the financial inclusion space like Mojaloop vNext whom are building out a Kubernetes operator as a means to improve quality, simplify deployment, and improve reliability and testing.

Goals & Mid-Point Milestone

Goals

  • [1] [Gather learnings around Kubernetes operators and their patterns in general (i.e. Monga, Kafka, etc]
  • [2] [Design Kubernetes operator based on the above learnings ]
  • [3] [Identify what to move from existing Helm chart to Operator ]
  • [4] [Implement operator and implement a small helm chart to deploy the operator itself]
  • [5] [Project Documentation]
  • [6] [Goal - Design and Implement Kubernetes Operator that replaces helm chart and provide a small helm chart for deployment of operator]

Setup/Installation

No response

Expected Outcome

DevOps and Sys Admins running our projects would experience a more simplified deployment with greater degree of control, improved quality of their builds and greater reliability and ease of testing.

Acceptance Criteria

No response

Implementation Details

Mifos PH-EE Kubernetes Operator

Tech Skills Needed
Docker, Kubernetes, Jenkins, Bash, Java - Spring, PostgreSQL, MariaDB, Cassandra, TDD With JUnit 4, Gradle

Mockups/Wireframes

No response

Product Name

Mifos PH-EE Kubernetes Operator

Organisation Name

The Mifos Initiative

Domain

Financial Inclusion

Tech Skills Needed

Docker, Java, Jenkins, Kubernetes, Spring Boot, Other

Mentor(s)

@tdaly61

Category

Backend, CI/CD, Delpoyment, Other

@DavidH-1 @tdaly61 , i am highly interested to work on this project. I was a selected contributor for last year cohort of C4GT , as per me the following are to be done:

  • Design the architecture and functionality of the Mifos PH-EE Kubernetes operator.
  • Identify components from existing Helm charts suitable for migration to the operator.
  • Develop and implement the Kubernetes operator using Docker, Java, Spring Boot, and other relevant technologies.

Hi @tdaly61, I would like to work on this project. My tech stack includes core Java, Spring Boot, and JPA. Is there any smaller issue to work on this first?

Do not ask process related questions about how to apply and who to contact in the above ticket. The only questions allowed are about technical aspects of the project itself. If you want help with the process, you can refer instructions listed on Unstop and any further queries can be taken up on our Discord channel titled DMP queries. Here's a Video Tutorial on how to submit a proposal for a project.

hi @AieshaShetty , @NEGRAH-S Can I suggest you join the c4gt-mojafos-2024 channel on the Mifos slack and also look at https://github.com/openMF/mojafos. best regards

@tdaly61 Sure sir. I'll look into it.

@tdaly61 okh sir

Hi @tdaly61 I am totally interested on working on this project as I am working on this tech stack for around 2 years and I wanted to include all my experience by helping in this project.

Hi @tdaly61 I am totally interested on working on this project as I am working on this tech stack for around 2 years and I wanted to include all my experience by helping in this project.

G'Day @abhinavkumar1122 , this is great, can I ask you to please join the c4gt-mojafos-2024 slack channel on the Mifos slack and say hi. thanks and regards Tom

Weekly Learnings & Updates (To be filled by contributor)

Week 1

  • Explored the Project Repository to understand project architecture and Helm deployment configurations.
  • Studies core concepts, architecture, and components like CRDs and Controllers in Kubernetes Operators.
  • Researched design patterns and methods to create operators using Go, Helm, and Ansible.
  • Researched Kubernetes and Helm to understand their working better.

Week 2

  • Worked on setting up existing operators from operatorhub.io to understand structure and functionality.
  • Developed a custom Go-based operator for a three-tier test application.
  • Researched reconciliation logic and controller loop to manage the state of the pods.

Week 3

  • Created a Helm-based operator for a test Helm chart.
  • Conducted tests on custom operators by writing and applying custom resources.
  • Applied Helm chart deployment for a test operator and associated CRDs.

Week 4

  • Worked on deploying PHEE (PaymentHub) on an Azure AKS cluster.
  • Deployed PaymentHub on an 8GB Ubuntu OS system using a Minikube cluster.
  • Deployed PaymentHub using Mojafos on an 8GB Ubuntu OS VM.
  • Researched the resource requirements and Configurations of PHEE Deployments.

Week 5

Replaced by openMF/mifos-operators#1 this ticket is now closed.