Week 7 Outreachy Blog Post.
About: The Project progress and its future goals. 
Tags: outreachy, programming, opensource, operations
Published: 2022-01-30 16:09:41

My internship got started on 6th Dec, In the first week of the internship, we all discussed how to achieve things and discussed resources. Further, I have gone through the codebase of the FLINT Reporting tool. Where I need to update the code concerning its version and automate some of the tasks in that. All of my dealings were at the backend side of the code. 

_Goals Achieved:_

- 
Discussed what exactly the reporting tool does and how to set up it.

- 
Set up the environment of the Reporting tool. 

- 
Written the superscript for setting up the environment over the server and locally. 

- 
Updated the Angular version of the code to make it streamline.

At the end of December, I have to set up the CI/CD for the Reporting tool frontend. So After learning about CI/CD I have implemented the Continuous integration pipeline for the reporting tool.

In the start of January, I have to set up the CI/CD for the FLINT Cloud and test its docker file, I have updated the docker files of the FLINT Cloud and implemented the CI/CD pipeline for building and publishing the FLINT Cloud images on the GitHub Container Registry.  

In the second week of January, We have discussed the FLINT and its Implementation. How FLINT works and its resources. FLINT doesn’t give outputs unless it gets combined with FLINT implementation. The FLINT is considered a library by itself - it doesn't do much unless we attach modules to it and make it an implementation. 


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/go68302syzpvgglhz0nl.png)

After learning about FLINT and FLINT implementation, Understanding how the base image is built for the FLINT as a part of setting up the CI/CD. I have updated the links and version of the FLINT base image docker file. 

_Problems faced during building the FLINT Base images:_

- The image size was too large due to which the image crashes most of the time while building.

- The versions and links were not updated in the base image. 

- Updating the FLINT library image, POCO header file error comes, which unable the image to get built. (Error is still not resolved yet).

In the 3rd and 4th week of January, I have learned about Spring Boot and Angular for containerizing the client of the FLINT reporting tool, after this I have implemented the CI/CD pipeline for building and publishing the client image on the GitHub Container Registry.

FLINT Reporting tool comprises 31 microservices and each microservice has its docker files. After learning about Spring Boot and its containerization, I have updated the docker files of microservices of the reporting tool. 

Now, coming to the second half of the internship that has left, My plans for that are:

I have to deploy each microservices of the Reporting tool on the Kubernetes cluster. In order to implement the CI/CD for the reporting tool backend. 

I have to learn about the services, deployments, and ingresses

References:-

a) Services
https://kubernetes.io/docs/concepts/services-networking/service/

b) Deployment
https://kubernetes.io/docs/concepts/workloads/controllers/deployment/

c) Ingress
https://kubernetes.io/docs/concepts/services-networking/ingress/

I have to define services, deployments, or ingresses more efficiently or differently with the selection of different plugins. 

I have to set up the FLINT and its Implementation for the demo run, for the FLINT implementation we will use the SLEEK (Standard Land extraction and emissions of Kenya). 
Firstly, I want to investigate how is it that one should build/implement the SLEEK (flint implementation). I have to update the FLINT Implementation images and produce the docs for future devs and users. 

In the end, I have to build and publish all the docker images of the remaining Moja Global repositories on the GitHub Container Registry. I have to produce the docs for all the implementations and changes I made in the Reporting tool and FLINT/FLINT implementation. 

Lastly, we have to get results from FLINT extending the FLINT implementation as we know the FLINT extends the FLINT implementation and gives results in the form of flux, metadata, and stocks data. Then we will give this data as the input to the FLINT Reporting tool, gets reports as output, and create the demo run for it.