I wrote an integration test for my Kubernetes operator using envtest and local Minikube cluster.
The controller I'm testing is making an http request to one of the pods by IP address. The address i get like this:
endpoints := &corev1.Endpoints{}
client.Get(context.TODO(), types.NamespacedName{Namespace: "ns", Name: "cluster"}, endpoints)
url = fmt.Sprintf("%s:%s", endpoints.Subsets[0].Addresses[0].IP, "8081")
This code works if i deploy operator to Kubernetes cluster.
But when running the test I get the error:
Post \"http://172.17.0.3:8081": dial tcp 172.17.0.3:8081: connect: no route to host
This is due to the fact that earlier the http call was made from the pod with the operator, but now from the envtest?
How to write tests for controllers correctly?
Aucun commentaire:
Enregistrer un commentaire