Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support conformance tests w/ minikube #609

Closed
bobcatfish opened this issue Apr 9, 2018 · 5 comments
Closed

Support conformance tests w/ minikube #609

bobcatfish opened this issue Apr 9, 2018 · 5 comments
Labels
area/test-and-release It flags unit/e2e/conformance/perf test issues for product features kind/feature Well-understood/specified features, ready for coding.

Comments

@bobcatfish
Copy link
Contributor

bobcatfish commented Apr 9, 2018

Expected Behavior

As pointed out by @grantr current conformance tests probably do not support minikube due to the need to use the node ip and node port directly when running with minikube.

Actual Behavior

Tests can either:

Steps to Reproduce the Problem

  1. Start a minikube cluster that meets the conformance test requirements (elafros, pizzaplanet namespace, docker repo with the required images (e.g. gcr))
  2. Run conformance tests - will probably either fail on:
    a. "Make a request to the Revision that is now deployed and serving traffic"
    b. "The Revision will be updated when it is ready to serve traffic" <-- if the controller isn't handling the case where the IP isn't assigned to the ingress

Additional Info

An unknown in this is how we can implement automated testing for this scenario.

@mattmoor mattmoor added the area/test-and-release It flags unit/e2e/conformance/perf test issues for product features label Apr 9, 2018
@bobcatfish
Copy link
Contributor Author

A small bug has snuck into the conformance tests that would have to be resolved for this to work - the ingress IP should not be used at all in the --resolvableDomain case - and also in can case added/modified to support minikube

@evankanderson
Copy link
Member

/kind feature

Is this still under consideration?

@google-prow-robot google-prow-robot added the kind/feature Well-understood/specified features, ready for coding. label Jun 22, 2018
@bobcatfish
Copy link
Contributor Author

Is this still under consideration?

This one for reals is under construction (unlike #608).

@bobcatfish
Copy link
Contributor Author

Looks like I won't be getting to this after all, but @jessiezcc + co will be!

@bobcatfish bobcatfish removed their assignment Jul 9, 2018
@jcrossley3
Copy link
Contributor

I have both e2e and conformance tests passing via go test ... on minikube in a branch based on #1792. The tests pass for two reasons:

  1. I'm tagging the test images to avoid the default pull policy of Always for latest tags, though I think I've done it in a way that won't conflict with the latest images pushed by e2e-tests.sh
  2. I'm using a hack to make minikube provision LoadBalancer type services

The hack amounts to these two commands:

sudo ip route add $(cat ~/.minikube/profiles/minikube/config.json | jq -r ".KubernetesConfig.ServiceCIDR") via $(minikube ip)
kubectl run minikube-lb-patch --replicas=1 --image=elsonrodriguez/minikube-lb-patch:0.1 --namespace=kube-system

As odious as those might be, I would argue that they simplify the knative-on-minikube user experience considerably:

  • no special s/LoadBalancer/NodePort/ install instructions
  • no special minikube-only way of obtaining the $SERVICE_IP in the samples
  • no need to configure a docker registry in minikube
  • and most importantly... all the tests pass.

And since minikube considers its lack of LoadBalancer support to be a bug anyway, it's hopefully only a temporary hack.

I've begun work on the docs in my branch already, but I wanted to get some feedback before documenting the samples, which are in a different repo.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/test-and-release It flags unit/e2e/conformance/perf test issues for product features kind/feature Well-understood/specified features, ready for coding.
Projects
None yet
Development

No branches or pull requests

5 participants