This service is a controller service making sure we always have a certain number of hot pods running and listening to the queues. Ready to get a file for processing.
When it starts
- It will start an amount of pods
- It will monitor their status and in case one of them get completed it triggers a new one
These environment variables are needed by the service
- POD_COUNT : Count of pods to start
- MINIO_USER : Minio access key
- MINIO_PASSWORD : Minio access secret
- PROCESS_IMAGE : Request processing pod image and tag that will be use
- MINIO_ENDPOINT : Minio endpoint that will be injected to processing pods
- PROCESS_POD_CPU_REQUEST : Processing pod cpu
- PROCESS_POD_CPU_LIMIT : Processing pod cpu limit (if it's more than the request it means we can have a burst)
- PROCESS_POD_MEMORY_REQUEST : Processing pod memory
- PROCESS_POD_MEMORY_LIMIT : Processing pod memory limit (if it's more than the request it means we can have a burst)
- JAEGER_AGENT_HOST : Jaeger host
- JAEGER_AGENT_PORT : Jaeger port
- JAEGER_AGENT_ON : If the agent is enabled or disabled
- MESSAGE_BROKER_USER : Message bbroker instance(rabbitmq) username
- MESSAGE_BROKER_PASSWORD : Message bbroker instance(rabbitmq) password
- PROCESS_POD_NAMESPACE : namespace where rebuild pods will be scheduled
- To build the docker image
docker build -t <docker_image_name> .
- This works only on a kubernetes cluster, deploiement steps available on https://github.com/k8-proxy/go-k8s-infra
- Log in to the VM
- Make sure that all the pods are running
kubectl -n icap-adaptation get pods
- To test, just try to rebuild a file, a rebuild pod will pick it up and a new one should be created
During the test review the pods logs (icap-server, adaptation-service, any rebuild pods)