This adds a new interface that a provider can implement which enables async notifications of pod status changes rather than the existing loop which goes through every pod in k8s and checks the status in the provider. In practice this should be significantly more efficient since we are not constantly listing all pods and then looking up the status in the provider. For providers that do not support this interface, the old method is still used to sync state from the provider. This commit does not update any of the providers to support this interface.
Follow these steps to be accepted as a provider within the Virtual Kubelet repo.
- Replicate the life-cycle of a pod for example creation and deletion of a pod and how that maps to your service.
- Create a new provider folder with a descriptive name and the necessary code.
- When committing your code add a README.md, helm chart, dockerfile and specify a maintainer of the provider.
- Within the PR itself add a justification for why the provider should be accepted, as well as customer use cases if applicable.
Some providers are translations of Virtual Kubelet to allow others to adapt their service or applications that are written in other languages.