Skip to main content

Week 3

(June 17, 2025 - June 23, 2025)

Challenges I Faced

Database Connection Trouble: The web pod was starting before the database is ready, showing "Could not connect to FOSSology database.

Reboot Glitch: After a reboot, the UI sometimes reverted to the default Debian Apache screen.

Image Pull Issues: Kubernetes couldn’t grab the fossology/scheduler:3.11.0 image from Docker Hub, causing ImagePullBackOff errors.

Fixed Scheduler Build Error: I ran into a no curl.h file error while building the scheduler. I added libcurl4-openssl-dev to Dockerfile and Dockerfile.pkg to fix it, so the scheduler could build properly.

Scheduler Pod Keeps Crashing: The scheduler pod wass stucked in a CrashLoopBackOff loop because of a PostgreSQL error: tables can have at most 1600 columns when adding a new column to the license_candidate table. This happens during database updates and makes the pod crash every time it restarts.

What I Got Done

Checked Database Connection: I made sure the database was working:

  • Ran kubectl get svc to see the database service on port 5432:30543/TCP.

  • Used a debug pod with kubectl run -it --rm debug-pod --image=postgres --restart=Never -- bash and connected with psql -h db -U fossy -d fossology to confirm the database was up.

  • Tested with kubectl port-forward svc/db 5432:5432 and checked web pod settings with kubectl exec -it web-pod -- env | grep -i db. Everything checked out locally!

Debugged Kubernetes Pods: I dug into the scheduler issues with:

  • kubectl get pods to spot CrashLoopBackOff and ImagePullBackOff.

  • kubectl logs scheduler-cf985bd75-tbf22 to check the error details.

  • kubectl rollout restart deployment scheduler and kubectl delete pod scheduler-cf985bd75-tbf22 to restart the pod.

  • Built a custom scheduler Dockerfile and loaded it into Minikube to work around the image pull issue, though it’s a temporary fix.

Fixed Web Pod Startup: To stop the web pod from starting too early, I updated k8s/20-web-deployment.yaml with a wait-for-db section using BusyBox. It checks if the database is ready with nc -z $(FOSSOLOGY_DB_HOST) 5432.

After running kubectl apply -f k8s/20-web-deployment.yaml, the logs showed “Fossology initialisation complete; Starting up...”.

Cleared Database Issues: To fix the PostgreSQL column error, I reset the database by running kubectl delete pod db-0, kubectl delete pvc database, and kubectl apply -f k8s/ to start fresh.

Got the FOSSology UI Working: I built the web pod with docker build -t fossology/web:3.11.0-fixed . and the FOSSology UI popped up at http://192.168.49.2:30745. Below are the ss of FOSSology UI.

FOSSology UI Pic 1

FOSSology UI Pic 2

Meeting 1

(June 18, 2025)

I was supposed to meet with my mentor Avinal, but he was out of the country and couldn’t make it. I shared a Google Docs link with my progress to keep him updated and we planned to catch up around June 22.

Meeting 2

(June 19, 2025)

I shared all my progress with the FOSSology team in community meeting, from getting the database connection working and the scheduler’s ImagePullBackOff error and building my own Dockerfile for temporary testing. I also talked about the web pod starting too early and the CrashLoopBackOff issue. The mentors suggested trying Helm Charts to make deployments easier.

Meeting 3

(June 23, 2025)

I had an awesome call with my mentor Avinal. We went over everything: the FOSSology UI is up and running, most pods (like db-0 and web) are working great, but the scheduler pod’s CrashLoopBackOff is messing with the upload and copyright features. We used K9s to check the pod logs and figure out what’s causing the crashes. Together, we cleaned up some unnecessary changes and got a better understanding of how everything connects. We didn’t fully fix the scheduler, but we end the call with a clear plan and tons of motivation!

This week gave me a deeper understanding of Microservice deployments, container orchestration and Kubernetes troubleshooting. The UI loading successfully is the big win, but the scheduler pod still needs Running status.

Planning Next Week

For Week 4, I’m ready to dive into:

  • Fix the scheduler pod’s CrashLoopBackOff issue and make sure the database updates work smoothly.

  • Work on getting all pods up and running properly and test the overall functionality on the FOSSology UI.

  • Once everything is stable, I’ll test the upload and copyright features to confirm that all parts of FOSSology are working correctly.

  • I also plan to clean up and finalize all proposed changes in the code.

  • After resolving any conflicts and verifying the changes, I will commit and push the updates to get feedback from my mentors.