Coding Week 4
Meeting 0
Organizer
- Gaurav Mishra
Attendees
- Omar AbdelSamea
Outcomes
- Discussed the issue of meta-agents folder, currently, the scheduler looks for meta-agents in /etc/fossology/mods-enabled inside it's pod which doesn't contain any agent.
- As hot fix, Gaurav suggested implementing to mount mods-enabled folder to a PVC.
- To continue development until a final decision is taken from the mentors, all required agents will be copied to meta-agents folder inside the scheduler pod.
Meeting 1
Organizer
- Gaurav Mishra
Attendees
- Ayush Bharadwaj
- Klaus Gmeinwieser
- Kaushlendra Singh
- Shreya Pratap
- Omar AbdelSamea
Outcomes
- Presented how communication between the scheduler and agents will be implemented using
kubectl
exec instead of ssh. - Tested it with fixed pod name and fixed commands and showed initial good results.
Using kubectl
instead of SSH
- As mentioned in this thread using SSH between pods is not recommended.
Using kubectl
inside pod
- To use
kubectl
inside pod, special permissions needs to be granted fro this pod to be able to access the resources data inside the cluster. These permissions are granted using K8s service account - Scheduler pod needs permissions so it can access pods and use exec command.
- Implemented service-account for scheduler is here https://github.com/OmarAbdelSamea/fossology/blob/OmarAbdelSamea/GSoC/Microservices/k8s/service-account-scheduler.yaml
Issues
1- error: error loading config file "/root/.kube/config": open /root/.kube/config: permission denied
Description
- this issue occurs as .kube folder is created by default inside the root home directory and fossy folder doesn't have permissions to access this folder
Hot Fix
- add o+rwx permissions to /root/.kube permission
End of the week results
- Initially implemented usage of
kubectl
instead of SSH on agent nomos with a fixed pod name and fixed command. - Implemented multistage build for
fossology:packages
base image bringing it down from 2.1GB to 10MB. - Implemented service-account for scheduler to grant needed permission to run
kubectl exec
.