-
Notifications
You must be signed in to change notification settings - Fork 39k
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
Node Conformance Test: Package Node Conformance Test #30174
Comments
I'd prefer including kubelet also in the static binary and unifying conformance testing and node e2e. We can run kubelet as part of testing in node e2e and not run in the case of conformance testing. The default can be that of not running kubelet. |
There are 2 questions about this:
If the theory makes sense, then both node conformance test and node e2e test don't need to link in kubelet. :) 2) Should we start kubelet in the test suite? If we start kubelet outside of the test suite, the framework could be shared in node conformance test and node e2e test. For node conformance test:
Step 3: The node test script starts node test container with current kubelet flag as one of the arguments. For node e2e test: In this way, we can:
@vishh @dchen1107 WDYT? |
…ate-process Automatic merge from submit-queue Node Conformance Test: Start e2e services in a separate process For #30122. This is the first step of #30174. This PR added a `start-services-only` mode in the test suite, and start all e2e services in a separate process by run the test binary again in `start-services-only` mode.
Automatic merge from submit-queue Node Conformance Test: Statically link etcd For #30122, #30174. This PR is part of our roadmap to package node conformance test. It statically linked etcd into the node e2e framework. In the future all e2e services will be linked in, and print log into the same log file `services.log`. @dchen1107 @vishh /cc @kubernetes/sig-node
…o-services Automatic merge from submit-queue Node Conformance Test: Move namespace controller to services For #30122, #30174. Based on #30116, #30198. **Please only review the 3rd PR.** This PR is part of our roadmap to package node conformance test. The 1st commit is from #30116, which started e2e services in a separate process. The 2nd commit is from #30198, it statically linked etcd into the node e2e framework. The 3rd commit is new, it moved namespace controller into e2e services. @dchen1107 @vishh /cc @kubernetes/sig-node @kubernetes/sig-testing
Automatic merge from submit-queue Node Conformance Test: Statically link apiserver For #30122, #30174. Based on #30116, #30198, #30200. **Please only review the 4th PR.** This PR is part of our roadmap to package node conformance test. The 1st commit is from #30116, which started e2e services in a separate process. The 2nd commit is from #30198, it statically linked etcd into the node e2e framework. The 3rd commit is from #30200, it moved namespace controller into e2e services. The 4th commit is new, it statically linked apiserver into the node e2e framework. @dchen1107 @vishh /cc @kubernetes/sig-node @kubernetes/sig-testing
Automatic merge from submit-queue Node Conformance Test: Remove unnecessary binary copy For #30122, #30174. This PR removed unnecessary dependencies in the node e2e test framework, because we've statically linked these dependencies. @dchen1107 @vishh /cc @kubernetes/sig-node @kubernetes/sig-testing
Automatic merge from submit-queue Node Conformance Test: Refactor node e2e framework For #30122, #30174. Based on #30348. **Please only review the last 3 commits.** This PR is part of our roadmap to package node conformance test. The 1st commit is from #30348, it removed unnecessary dependencies in the node e2e test framework, because we've statically linked these dependencies. The PR refactored the node e2e framework. Moving different utilities into different packages under `pkg/`. We need to do this because: 1) Files like e2e_remote.go and e2e_build.go should only be used by runner, but they were compiled into the test suite because they were placed in the same package. The worst thing is that it will introduce some never used flags in the test suite binary. 2) Make the directory structure more clear. Only test should be placed in `test/e2e_node`, other utilities should be placed in different packages in `pkg/`. @dchen1107 @vishh /cc @kubernetes/sig-node @kubernetes/sig-testing
Automatic merge from submit-queue Node Conformance Test: Containerize the node e2e test For #30122, #30174. Based on #32427, #32454. **Please only review the last 3 commits.** This PR packages the node e2e test into a docker image: - 1st commit: Add `NodeConformance` flag in the node e2e framework to avoid starting kubelet and collecting system logs. We do this because: - There are all kinds of ways to manage kubelet and system logs, for different situation we need to mount different things into the container, run different commands. It is hard and unnecessary to handle the complexity inside the test suite. - 2nd commit: Remove all `sudo` in the test container. We do this because: - In most container, there is no `sudo` command, and there is no need to use `sudo` inside the container. - It introduces some complexity to use `sudo` inside the test. (#29211, #26748) In fact we just need to run the test suite with `sudo`. - 3rd commit: Package the test into a docker container with corresponding `Makefile` and `Dockerfile`. We also added a `run_test.sh` script to start kubelet and run the test container. The script is only for demonstration purpose and we'll also use the script in our node e2e framework. In the future, we should update the script to start kubelet in production way (maybe with `systemd` or `supervisord`). @dchen1107 @vishh /cc @kubernetes/sig-node @kubernetes/sig-testing **Release note**: <!-- Steps to write your release note: 1. Use the release-note-* labels to set the release note state (if you have access) 2. Enter your extended release note in the below block; leaving it blank means using the PR title as the release note. If no release note is required, just write `NONE`. --> ``` release-note Release alpha version node test container gcr.io/google_containers/node-test-ARCH:0.1 for users to verify their node setup. ```
@Random-Liu all issues must be labeled either release blocker or non release blocking by end of day 18 November 2016 PST. (or please move it to 1.6) cc @kubernetes/sig-node |
All work items listed in this issue were addressed. There are several enhancement related to the node conformance test being tracked through #30122. |
For #30122.
In 1.4, we plan to provide part of the node e2e test to the user as the node conformance test.
For user adoption, We should package the node conformance test well to make it easy to ship and for the user to use.
After discussion with @dchen1107 and @vishh, here is the current plan:
ginkgo
is more powerful, e.g. we still needginkgo
to run test in parallel. So it is nice to have.run-services-mode
and start dependent services in a separate process. The reason why we need to do this:glog
, butglog
can only be configured at process level. After we statically link all the services with the test, there's no way to distinguish their log from test result. To solve this, we need to start all services in another process and configure its log separately.run-services-mode
mode.@dchen1107 @vishh
/cc @kubernetes/sig-node
The text was updated successfully, but these errors were encountered: