This project was moved and incorporated by kedge project and is maintained here: https://github.com/improbable-eng/kedge/tree/master/pkg/resolvers/k8s Please feel free to add issue to this project if you would like to have standalone library instead for this useful feature.
Kubernetes resolver based on endpoint API
Inspired by https://github.com/sercand/kuberesolver but more suitable for our needs.
Features:
- K8s resolver that watches endpoint API
- Different types of auth for kube-apiserver access. (You can run it easily from your local machine as well!)
- URL in common kube-DNS format:
<service>.<namespace>(|.<any suffix>):<port|port name>
Still todo:
- Metrics
- Fallback to SRV (?)
See example
resolver, err := k8sresolver.NewFromFlags()
if err != nil {
// handle err.
}
watcher, err := resolver.Resolve(target)
if err != nil {
// handle err.
}
// Wait for next updates.
updates, err := watcher.Next()
if err != nil {
// handle err.
}