-
Notifications
You must be signed in to change notification settings - Fork 40k
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
Improve guestbook.sh end-to-end test to become actual test #3693
Comments
What should we do about this test? The current test in Was the point of that test case to test Does it make sense to rewrite this test in Go or do we already have more test coverage from e.g. If it makes sense to rewrite it in Go, what should we accomplish with this test? |
How about a functional test that inserts some names and tries to retrieve them i.e. enough to know that the service has basic functionality? |
+1 to an actual functional test. The service is basic enough, it should be straightforward to do the same POST/GET from go that the js on the guestbook homepage does. |
@jlowdermilk and I talked about this and #3694 for a while and think that they should remain as |
After change test waits until pods come up, then adds entry to guestbook and verify if operation succeed This fixes kubernetes#3693
guestbook.sh has not passed on gce or gke-ci since around 11am this morning (around when this PR was merged). @piosz Can you look at the Jenkins logs and try to figure out what is going wrong? |
The problem is with guestbook itself not with the test. The frontend cannot connect to redis data base so it returns error response to the user. I created issue #5091 for that |
I have been 100% absorbed for weeks with my own e2e test so I've not paid much attention to this. Does the test connect to the service via an external load balancer? |
Nope. It's using proxy. For example: |
Is this a reasonable use of the proxy service? Today @bgrant0607 told me that the proxy service is fine for contacting cluster-level services (note the dash Brian) but for regular applications we should use some other mechanism (e.g. external load balancer). @bgrant0607 ? |
My first idea was to use ELB but it requires to create also firewall-rules using. I'm not sure if we want to do it. |
PR #4588 has been reverted by @roberthbailey The test is passing for me locally. I'll updated #5091. Is there any chance that using proxy instead of ELB can cause the problem? |
Personally, I think -- for now -- using an ELB is fine -- by setting the use external load balancer field in the System specification. I am working on a PR to fix an issue relating to the use of application endpoints using the proxy server (to address issue #4977 -- which can bite you if one of the fields of a JSON response contains a field called |
It sounds to me like there are 2 issues:
I think these are 2 totally different things. The right answer to (1) is clearly external IPs. That's what we want to teach users to do. (2) likely doesn't have the same requirements. Conflating the 2 cases might not be helpful. However, if you want to do that, use the external load balancer, not the proxy. |
Yes, I am torn about this too. Another thing to consider is that a test that uses an external load balancer is going to take longer because it takes much longer to create a service with an external load balancer (almost instant with ELB vs. perhaps up to a minute with a load balancer) and then there is a teardown step as well when you delete the service (which deletes the forwarding rules etc.). As a point of principle we should decide if it is an approved use of the proxy mechansim for use in tests in order to make them more lightweight vs. using an ELB. |
So there is agreement to use ELB. What about firewall rule? Port 8000 should be opened, I can do it by using gcloud, however it's not provider agnostic operation. Is there any other option for that? |
Sadly not:
I suggest just using gcloud / making the API calls for the firewall and keep this as a GCE specific test. Which is indeed a shame. |
Reopening since the PR was reverted in #5088 |
After change test waits until pods come up and frotend starts serving content, then adds entry to guestbook and verify if operation succeed This fixes kubernetes#3693
After change test waits until pods come up, then adds entry to guestbook and verify if operation succeed This fixes #3693
After change test waits until pods come up and frotend starts serving content, then adds entry to guestbook and verify if operation succeed This fixes #3693
Part of issue #3130.
Re-write test in Go, generate unique names for top level resources, ensure test is idempotent, clean up all resources at end of test.
The text was updated successfully, but these errors were encountered: