This is a second attempt at this commit and it fixes the cause for its
flakiness in the first attempt.
The ability to SSH into individual nodes, described by api.Node, and running
commands on them appears to be useful for other e2e tests too. So, move
issueSSHCommand utility function to e2e util file.
Also, modify waitForNodeToBe e2e util function to take any node condition. The
current implementation only takes api.NodeReady condition into consideration.
This change makes the function take any node condition.
- Remove "Suite" from e2e tag names
- Move grouping e2e tags to the front of the test, describe or context name
- Move Conformance e2e tags to the end of test names (test specific)
- Move Skipped e2e tags to the end of names, but to as high a context as applicable
The ability to SSH into individual nodes, described by api.Node, and running
commands on them appears to be useful for other e2e tests too. So, move
issueSSHCommand utility function to e2e util file.
Also, modify waitForNodeToBe e2e util function to take any node condition. The
current implementation only takes api.NodeReady condition into consideration.
This change makes the function take any node condition.
- document needed packages in hostexec image
- add RunHostCmdOrDie
- kube-proxy e2e: port from ssh to hostexec
- use preset NodeName to schedule test pods to different nodes
- parallel launch of pods
- port from ssh to hostexec
- add timeout because nc might block on udp
- delete test container without grace period
- PrivilegedPod e2e: port from ssh to hostexec
- NodePort e2e: port from ssh to hostexec
- cluster/mesos/docker: Enable privileged pods
added deployment-based e2e tests for horizontal pod autoscaling
adjusted to changes from PR #16330
changed test titles according to PR comments & to merge change from PR #16895
Kube-ui pods do not have the {"name":rcName} label like pods created in
e2e tests. Hence, we cannot use the waitForRCPods function directly, but
have to pass a custom label.
Not all clients and systems can support SPDY protocols. This commit adds
support for two new websocket protocols, one to handle streaming of pod
logs from a pod, and the other to allow exec to be tunneled over
websocket.
Browser support for chunked encoding is still poor, and web consoles
that wish to show pod logs may need to make compromises to display the
output. The /pods/<name>/log endpoint now supports websocket upgrade to
the 'binary.k8s.io' subprotocol, which sends chunks of logs as binary to
the client. Messages are written as logs are streamed from the container
daemon, so flushing should be unaffected.
Browser support for raw communication over SDPY is not possible, and
some languages lack libraries for it and HTTP/2. The Kubelet supports
upgrade to WebSocket instead of SPDY, and will multiplex STDOUT/IN/ERR
over websockets by prepending each binary message with a single byte
representing the channel (0 for IN, 1 for OUT, and 2 for ERR). Because
framing on WebSockets suffers from head-of-line blocking, clients and
other server code should ensure that no particular stream blocks. An
alternative subprotocol 'base64.channel.k8s.io' base64 encodes the body
and uses '0'-'9' to represent the channel for ease of use in browsers.
kubelet sends up status updates to flip the ready condition of a pod after the
pod is already in the running state. RunRC should wait until the pod condition
is ready to make sure there is no pending status update which may affect the
follow-up performance test.
In many cases clients may wish to view not ready addresses for endpoints
in order to do set membership prior to a pod being ready. For instance,
a pod that uses the service endpoints to connect to other pods under
the same service, but does not want to signal ready before it has
contacted at least a minimal number of other pods.
This is backwards compatible with old servers and clients. There is
an additional cost in size of endpoints before services ramp up, which
will add minor CPU and memory use for services that have a significant
number of pods which have not become ready.