Commit Graph

343 Commits

Author SHA1 Message Date
Janet Kuo
45de9fbe34 Add e2e test for statefulset updates 2016-11-15 14:55:08 -08:00
Kevin
6211669a19 fix kubectl taint test flake 2016-11-15 23:02:48 +08:00
shashidharatd
bade01694a Add Guestbook App to k8s upgrade tests 2016-11-15 09:59:51 +05:30
Kubernetes Submit Queue
ee029d9f3f Merge pull request #33850 from ymqytw/add_e2e_test_for_kubectl_in_pod
Automatic merge from submit-queue

add e2e test for kubectl in a Pod

Add a e2e test to make sure kubectl can talk to the api server when it is mounted in a pod.
Fixes: #33138
2016-11-08 21:00:53 -08:00
Maciej Szulik
0b5ef16008 Support ScheduledJob name 2016-11-07 10:14:12 +01:00
Maciej Szulik
41d88d30dd Rename ScheduledJob to CronJob 2016-11-07 10:14:12 +01:00
Kubernetes Submit Queue
47519962bf Merge pull request #35484 from smarterclayton/delete_warning
Automatic merge from submit-queue

Add --force to kubectl delete and explain force deletion

--force is required for --grace-period=0. --now is == --grace-period=1.
Improve command help to explain what graceful deletion is and warn about
force deletion.

Part of #34160 & #29033

```release-note
In order to bypass graceful deletion of pods (to immediately remove the pod from the API) the user must now provide the `--force` flag in addition to `--grace-period=0`.  This prevents users from accidentally force deleting pods without being aware of the consequences of force deletion.  Force deleting pods for resources like StatefulSets can result in multiple pods with the same name having running processes in the cluster, which may lead to data corruption or data inconsistency when using shared storage or common API endpoints.
```
2016-11-05 11:19:04 -07:00
deads2k
61673c4b39 make kubectl get generic with respect to objects 2016-11-04 09:04:57 -04:00
Clayton Coleman
6e25830378
Add --force to kubectl delete and explain force deletion
--force is required for --grace-period=0. --now is == --grace-period=1.
Improve command help to explain what graceful deletion is and warn about
force deletion.
2016-11-02 17:44:05 -04:00
ymqytw
89cd3f9b84 add a gke-only e2e test for kubectl in a Pod 2016-10-31 16:05:16 -07:00
deads2k
fde2fedfa6 fix kubectl e2e test to avoid alpha versions unless needed 2016-10-24 14:39:55 -04:00
Jan Chaloupka
4fde09d308 Replace client with clientset in code 2016-10-23 22:00:35 +02:00
gmarek
7681a1bdff Move RunRC-like functions to test/utils 2016-10-12 15:06:56 +02:00
Kevin
b8b92a1116 fix kubectl taint e2e flake: add retries for removing taint 2016-09-30 16:14:24 +08:00
deads2k
48ac4d549d change e2e scale to avoid adapter 2016-09-26 07:58:01 -04:00
deads2k
c22f076561 remove almost all usages of clientadapter 2016-09-26 07:53:03 -04:00
nikhiljindal
bbb27cde10 Dumping federation events if federation test failed 2016-09-20 23:56:23 -07:00
Kevin
c47bb43c81 fix node update taints conflict in kubectl taint e2e 2016-09-20 09:58:03 +08:00
Kubernetes Submit Queue
6910d40337 Merge pull request #32484 from soltysh/sj_e2e_kubectl
Automatic merge from submit-queue

Add kubectl run ScheduledJob e2e test

**What this PR does / why we need it**:
This add another `kubectl run` e2e test, this time verifying proper creation of a ScheduledJob. 

@janetkuo ptal
@deads2k that should give you more confidence when ditching manual clients
2016-09-16 04:23:34 -07:00
Kubernetes Submit Queue
c3374a0d49 Merge pull request #32782 from guangxuli/k8s_opts
Automatic merge from submit-queue

add break when found value
2016-09-16 02:11:46 -07:00
Janet Kuo
e39b777746 Revert "Add test for --quiet flag for kubectl run"
This reverts commit 9e52d1cfd0.
2016-09-15 11:11:09 -07:00
guangxuli
dc5c6c4f7e add break when typestr == n 2016-09-15 21:13:29 +08:00
Maciej Szulik
f0b97b8ffa Add kubectl run ScheduledJob e2e test 2016-09-14 14:20:56 +02:00
Kubernetes Submit Queue
1443fffc5d Merge pull request #30701 from ardnaxelarak/28695_suppress_noisy_output
Automatic merge from submit-queue

Add test for --quiet flag for kubectl run

This adds a test for the changes introduced in #30247 and #28801.

Ref #28695
2016-09-13 23:28:47 -07:00
Janet Kuo
79373b698e Skip kubectl tests (create quota and exit code) on not supported versions 2016-09-13 17:25:19 -07:00
Kubernetes Submit Queue
8f2f836e4e Merge pull request #32106 from jellonek/fd_leaks
Automatic merge from submit-queue

Ensure that we are closing files.

**What this PR does / why we need it**: In several places we are leaking file descriptors. This could be problematic on systems with low ulimits for them.

**Release note**:
```release-note
```
2016-09-12 23:43:38 -07:00
deads2k
519c13745f convert rest of kubectl to generated clients 2016-09-12 08:22:34 -04:00
Piotr Skamruk
dc3674c8d0 Ensure that we are closing files. 2016-09-12 09:33:24 +02:00
Kubernetes Submit Queue
64e914b8da Merge pull request #32365 from lojies/addporttokubectl
Automatic merge from submit-queue

add targetport to framework.Failf()

add target port value to framework.Failf()
2016-09-12 00:08:19 -07:00
Kubernetes Submit Queue
ce1c113442 Merge pull request #32046 from guangxuli/close_readBytesFromFile
Automatic merge from submit-queue

close the open file

the open file should be close.
2016-09-11 10:21:13 -07:00
Kevin
fff139ce32 update taints e2e, respect that taint is unique by key, effect 2016-09-09 19:15:11 +08:00
lojies
fe6359b98d add targetport to Failf 2016-09-09 17:35:21 +08:00
Jess Frazelle
0a384e32ed
test/e2e: fix upgrade test to not run describe cross version
Signed-off-by: Jess Frazelle <me@jessfraz.com>
2016-09-06 11:40:15 -07:00
Kubernetes Submit Queue
8f54ab1766 Merge pull request #31451 from jfrazelle/27532-fix-kubectl-on-delete-flake
Automatic merge from submit-queue

test/e2e: fix flake for on delete on namespace

<!--  Thanks for sending a pull request!  Here are some tips for you:
1. If this is your first time, read our contributor guidelines https://github.com/kubernetes/kubernetes/blob/master/CONTRIBUTING.md and developer guide https://github.com/kubernetes/kubernetes/blob/master/docs/devel/development.md
2. If you want *faster* PR reviews, read how: https://github.com/kubernetes/kubernetes/blob/master/docs/devel/faster_reviews.md
3. Follow the instructions for writing a release note: https://github.com/kubernetes/kubernetes/blob/master/docs/devel/pull-requests.md#release-notes
-->

**What this PR does / why we need it**:

**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #

**Special notes for your reviewer**:

**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
NONE
```

Fixes #27532
2016-09-05 11:47:09 -07:00
guangxuli
294558be84 close the open file 2016-09-04 21:17:01 +08:00
Kubernetes Submit Queue
c337778803 Merge pull request #31356 from jfrazelle/29227-fix-e2e-http-request-flake
Automatic merge from submit-queue

test/e2e: fix flake in kubelet expose should create services for rc

<!--  Thanks for sending a pull request!  Here are some tips for you:
1. If this is your first time, read our contributor guidelines https://github.com/kubernetes/kubernetes/blob/master/CONTRIBUTING.md and developer guide https://github.com/kubernetes/kubernetes/blob/master/docs/devel/development.md
2. If you want *faster* PR reviews, read how: https://github.com/kubernetes/kubernetes/blob/master/docs/devel/faster_reviews.md
3. Follow the instructions for writing a release note: https://github.com/kubernetes/kubernetes/blob/master/docs/devel/pull-requests.md#release-notes
-->

**What this PR does / why we need it**:

**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #

**Special notes for your reviewer**:

**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
NONE
```

Add a loop to retry the request to account for the TLS Timeout and API
credential error responses outlined by the flakes in #29227.

Fixes #29227
2016-09-02 13:55:52 -07:00
Jess Frazelle
7ca6673e01
fixes upgrade tests for kubectl skew from 1.3 to master
Signed-off-by: Jess Frazelle <me@jessfraz.com>
2016-09-01 10:51:45 -07:00
Kara Alexandra
9e52d1cfd0 Add test for --quiet flag for kubectl run
Signed-off-by: Kara Alexandra <kalexandra@us.ibm.com>
2016-08-31 13:48:42 -07:00
Jess Frazelle
c2cf99c165
test/e2e: fix flake in kubelet expose should create services for rc
Add a loop to retry the request to account for the TLS Timeout and API
credential error responses outlined by the flakes in #29227.

Fixes #29227

Signed-off-by: Jess Frazelle <me@jessfraz.com>
2016-08-29 13:45:09 -07:00
Jeff Mendoza
95b73058d2 Removed non-md files from docs. Moved doc yamls to test/fixtures.
Most of the contents of docs/ has moved to kubernetes.github.io.
Development of the docs and accompanying files has continued there, making
the copies in this repo stale. I've removed everything but the .md files
which remain to redirect old links. The .yaml config files in the docs
were used by some tests, these have been moved to test/fixtures/doc-yaml,
and can remain there to be used by tests or other purposes.
2016-08-25 15:09:27 -07:00
Jess Frazelle
e39acca2d9
test/e2e: fix flake for on delete on namespace
Signed-off-by: Jess Frazelle <me@jessfraz.com>
2016-08-25 11:47:37 -07:00
bindata-mockuser
e792d4117d Add return code support to kubectl-exec and -run 2016-08-20 15:58:47 +02:00
Kevin
1e2d560253 make taints unique by <key, effect> on a node 2016-08-17 15:40:33 +08:00
Harry Zhang
c495397cae Refactor uuid into its own pkg 2016-07-30 00:07:02 -04:00
Dr. Stefan Schimanski
199f991f6a Add --scopes to kubectl-create-quota and add tests 2016-07-26 14:12:35 +02:00
Dr. Stefan Schimanski
36afe2a43a Fix nsFlag scope in kubectl-run e2e test 2016-07-26 11:32:08 +02:00
Davanum Srinivas
87771957d0
E2E test for kubectl replace
Fixes #10764
2016-07-09 09:41:01 -04:00
David McMahon
ef0c9f0c5b Remove "All rights reserved" from all the headers. 2016-06-29 17:47:36 -07:00
Manuel de Brito Fontes
ec5cc59696 Remove duplicated nginx image. Use nginx-slim 2016-06-28 17:35:38 -04:00
k8s-merge-robot
700fbd0543 Merge pull request #27461 from euank/e2e-rkt-runtime
Automatic merge from submit-queue

e2e: Allow skipping tests for specific runtimes, skip a few tests under rkt

The main benefit of this is that it gives a developer more useful output (more signal to noise) for things that are known broken on that runtime.

cc @kubernetes/rktnetes-maintainers , @ixdy 

I'll run this PR through our jenkins and make sure things look happy and compare to the e2e results for this PR.
2016-06-26 18:47:42 -07:00
Buddha Prakash
c3551ae6cd Refactor qos package
Signed-off-by: Buddha Prakash <buddhap@google.com>
2016-06-24 15:36:04 -07:00
Janet Kuo
7fd9a60617 Wait for frontend pods Running before verifying its service in guestbook e2e test 2016-06-22 16:43:39 -07:00
Euan Kemp
e50a821aa8 e2e: Skip attach tests for rkt runtime 2016-06-15 11:50:58 -07:00
derekwaynecarr
89ff3b2530 Update kubectl describe pod to use pod level qos 2016-06-03 15:32:32 -04:00
k8s-merge-robot
d957e78a41 Merge pull request #25253 from soltysh/issue24533
Automatic merge from submit-queue

kubectl run --restart=Never creates pods

Fixes #24533.

@bgrant0607 @janetkuo ptal
/fyi @thockin

```release-note
* kubectl run --restart=Never creates pods
```
[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/.github/PULL_REQUEST_TEMPLATE.md?pixel)]()
2016-05-31 11:44:05 -07:00
k8s-merge-robot
a9f96da679 Merge pull request #25291 from janetkuo/describe-rc-pods-non-flake
Automatic merge from submit-queue

Remove kubectl describe test from flaky list

## Pull Request Guidelines

1. Please read our [contributor guidelines](https://github.com/kubernetes/kubernetes/blob/master/CONTRIBUTING.md).
1. See our [developer guide](https://github.com/kubernetes/kubernetes/blob/master/docs/devel/development.md).
1. Follow the instructions for [labeling and writing a release note for this PR](https://github.com/kubernetes/kubernetes/blob/master/docs/devel/pull-requests.md#release-notes) in the block below.

```release-note
* Use the release-note-* labels to set the release note state 
* Clear this block to use the PR title as the release note 
-OR-
* Enter your extended release note here
```

Ref #25083 #25911

[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/.github/PULL_REQUEST_TEMPLATE.md?pixel)]()
2016-05-30 03:10:49 -07:00
k8s-merge-robot
04bdd37bc4 Merge pull request #25972 from luxas/remove_arch_constants
Automatic merge from submit-queue

Use pause image depending on the server's platform when testing

Removed all pause image constant strings, now the pause image is chosen by arch. Part of the effort of making e2e arch-agnostic.

The pause image name and version is also now only in two places, and it's documented to bump both
Also removed "amd64" constants in the code. Such constants should be replaced by `runtime.GOARCH` or by looking up the server platform

Fixes: #22876 and #15140
Makes it easier for: #25730
Related: #17981

This is for `v1.3`
@ixdy @thockin @vishh @kubernetes/sig-testing @andyzheng0831 @pensu
2016-05-28 04:48:59 -07:00
Maciej Szulik
d76fa8a119 kubectl run --restart=Never creates pods 2016-05-28 07:08:32 +02:00
k8s-merge-robot
35922bdcbd Merge pull request #26378 from pwittrock/fix-26138
Automatic merge from submit-queue

Retry concurrency exceptions in e2e/kubectl.go.  Fixes #26138





[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/.github/PULL_REQUEST_TEMPLATE.md?pixel)]()
2016-05-27 02:21:21 -07:00
Phillip Wittrock
feaa3aba82 Retry concurrency exceptions in e2e/kubectl.go. Fixes #26138 2016-05-26 14:44:51 -07:00
Lucas Käldström
79ca1911e1 Removed all pause image constant strings, now the pause image is chosen by arch. Part of the effort of making e2e arch-agnostic 2016-05-26 19:16:43 +03:00
Alex Mohr
e3404d32ff Merge pull request #26155 from kubernetes/sttts-flake-26126
Flake 26126: use framework.podStartTimeout for kubectl e2e test pod launch
2016-05-25 22:20:56 -07:00
Janet Kuo
f433d21a90 Use gcr.io tagged images when testing 2016-05-25 17:25:02 -07:00
k8s-merge-robot
2524cadeee Merge pull request #25171 from bprashanth/rolling
Automatic merge from submit-queue

Wait for RC to stabilize in rolling-update e2e

https://github.com/kubernetes/kubernetes/issues/25170
2016-05-25 00:09:00 -07:00
Dr. Stefan Schimanski
d3f8eaba7f Use framework.podStartTimeout for kubectl test pod launch 2016-05-24 13:10:56 +02:00
k8s-merge-robot
086ace44b8 Merge pull request #25548 from jlowdermilk/lower-ginkgo-parallelism
Automatic merge from submit-queue

Lower ginkgo parallelism and move same image rolling-update test out of flaky

Tentative fix for #25140.
2016-05-22 18:43:57 -07:00
Andy Goldstein
f83a286fbc Check status of framework.CheckPodsRunningReady
Check status of framework.CheckPodsRunningReady and fail test if it's false, instead of silently
ignoring the failure.
2016-05-20 20:21:11 -04:00
Kris
f4cf45ee94 Removing indirection from proxy exec test
I removed the netexec and goproxy pods from the proxy exec test. Instead
it now runs kubectl locally and the proxy is running in-process. Since
Go won't proxy for localhost requests, this test cannot pass if the API
server is local. However it was already disabled for local clusters.
2016-05-20 09:16:23 -07:00
Filip Grzadkowski
afea2e2f95 Merge pull request #25780 from andyzheng0831/test-case
e2e: simple pod HTTP proxy test should use amd64 kubectl for GCI
2016-05-20 10:27:17 +02:00
Janet Kuo
6ca3c16f4c Remove kubectl describe test from flaky list 2016-05-18 21:27:29 -07:00
Daniel Smith
c4889dd826 Merge pull request #25781 from pwittrock/issue-25657
Clean up kubectl test to use the blessed e2e test redis configs and t…
2016-05-18 17:22:54 -07:00
Andy Zheng
25c9764f29 e2e: use amd64 kubectl for simple pod HTTP proxy test 2016-05-18 10:29:00 -07:00
Kevin
52fb89ff73 implement taints and tolerations 2016-05-18 15:06:23 +00:00
pwittrock
c7bfbe6460 Clean up kubectl test to use the blessed e2e test redis configs and to output debug info when failing. Debugs #25657. 2016-05-18 04:22:09 +00:00
Janet Kuo
e428b77cbe Fix e2e test failure: pull redis image from gcr instead of docker 2016-05-17 15:12:09 -07:00
Jeff Lowdermilk
6a15e0a9c2 e2e: make ForEach fail if filter is empty, fix no-op tests 2016-05-13 14:56:50 -07:00
Jeff Lowdermilk
4aabafe4c3 Merge pull request #25519 from jlowdermilk/no-trim
Don't trim whitespace from kubectl output in e2e tests
2016-05-13 13:01:22 -07:00
k8s-merge-robot
4bb30e0097 Merge pull request #24806 from jayunit100/kubectl-stdin
Automatic merge from submit-queue

[e2e] kubectl stdin

Problem:  Currently kubectl heavily relies on files which have to be (for lack of a better word :):):)) "written" to the file system.  This hinders adoption of something like gobindata, by forcing an intermediary generated-assets directory type thing.

Solution: Lets migrate `kubectl.go` testing over to using standard input streams.

cc @kubernetes/sig-testing @timothysc
2016-05-13 00:10:43 -07:00
Jeff Lowdermilk
9dab67d106 move same image rolling-update test out of Flaky 2016-05-12 14:22:23 -07:00
Jeff Lowdermilk
5f0d1f04b8 Don't trim whitespace from kubectl output in e2e tests 2016-05-12 09:00:51 -07:00
Fabio Yeon
0809b2be4d Merge pull request #25119 from XiaoningDing/api-shared-annotations
move shared annotations to new api/annotations package
2016-05-10 19:34:17 -07:00
Jay Vyas
801c968fff Standard input for kubectl tests
rebased to include gobindata as well.
2016-05-10 14:16:50 -04:00
Kris
d63a215b23 Adding extra logging in case of error. 2016-05-09 11:40:05 -07:00
jianhuiz
441e206671 move server client shared annotations to new api/annotations package 2016-05-09 11:10:44 -07:00
k8s-merge-robot
53b3ef2122 Merge pull request #23988 from php-coder/kubectl_describe_multiline_labels
Automatic merge from submit-queue

kubectl describe: show multiple labels/annotations on multiple lines

Small UX improvement: when there is more than one label/annotation, it's more readable to see them on the different lines.

Before:
```console
$ kubectl describe svc
Name:			s2i-test
Namespace:		test2
Labels:			app=s2i-test,foo=bar
...
```
After:
```console
$ kubectl describe svc
Name:			s2i-test
Namespace:		test2
Labels:			app=s2i-test
				foo=bar
...
```
This change affects output of the labels/annotations in many of the sub-commands of the `kubectl describe`.

PTAL @smarterclayton @kargakis
2016-05-08 12:51:45 -07:00
k8s-merge-robot
601e09852c Merge pull request #23590 from kargakis/timeout-logs-attach
Automatic merge from submit-queue

kubectl: more sophisticated pod selection for logs and attach

Trying to get the logs or attach to an object other than a pod
will poll forever if that object has no replicas. This commit adds
a 20s timeout for polling.

@kubernetes/kubectl @deads2k @fabianofranz
2016-05-08 10:51:00 -07:00
Robert Bailey
18a829e7a4 Merge pull request #24512 from freehan/goproxyflake
reuse goproxy pod and avoid race between kubectl exec and goproxy readiness
2016-05-06 14:46:30 -07:00
Prashanth Balasubramanian
2d7e2eb09f Modify e2e to wait for RC to stabilize before test 2016-05-05 09:27:19 -07:00
Joe Finney
81bb39c3c0 Mark two kubectl tests flaky. 2016-05-04 10:19:05 -07:00
k8s-merge-robot
1642083e60 Merge pull request #24645 from jlowdermilk/rolling-update
Automatic merge from submit-queue

kubectl rolling-update support for same image

Fixes #23497.

Enables `kubectl rolling-update --image` to the same image, adding a `--image-pull-policy` flag to remove ambiguity. This allows rolling-update to behave as an "update and/or restart" (https://github.com/kubernetes/kubernetes/issues/23497#issuecomment-212349730), or as a forced update when the same tag can mean multiple versions (e.g. `:latest`). cc @janetkuo @nikhiljindal
2016-05-04 07:24:22 -07:00
k8s-merge-robot
3b63b06b1b Merge pull request #24849 from fejta/flake
Automatic merge from submit-queue

Use tagged redis image for kubectl test, move json test file out of deprecated examples

Closes #24642

Changes the redis image to use the :e2e tagged version on gcr.io.

Since the examples/ subdir is deprecated in favor of the new kubernetes/kubernetes.github.io I just copied this file to test-manifests/kubectl like some other files.
2016-05-04 05:53:17 -07:00
Michail Kargakis
a25088fe15 kubectl: more sophisticated pod selection for logs and attach 2016-05-02 15:56:36 +02:00
Clayton Coleman
fdb110c859
Fix the rest of the code 2016-04-29 17:12:10 -04:00
Slava Semushin
72b4b54f28 kubectl describe: show multiple labels/annotations on multiple lines.
When there is more than one label/annotation, it's more readable to see
them on the different lines.
2016-04-28 18:37:41 +02:00
Erick Fejta
08c5af6e45 Use tagged redis image for kubectl test, move json test file out of deprecated examples 2016-04-26 21:43:19 -07:00
Minhan Xia
1993bf901a reuse goproxy pod and avoid race between kubectl exec and goproxy readiness 2016-04-26 16:45:10 -07:00
Jeff Lowdermilk
9b91750284 add e2e test for same-image rolling-update 2016-04-25 13:38:45 -07:00
Jay Vyas
fcf254591f Slow down redis pod polling, ensure no flakiness in kubectl service
test.
2016-04-23 00:53:24 -04:00
k8s-merge-robot
3753e2bded Merge pull request #24180 from AdoHe/reuse_node_port
Automatic merge from submit-queue

Fix unintended change of Service.spec.ports[].nodePort during kubectl apply

Please refer #23551 for more detail. @bgrant0607 I think this simple fix should be ok to reuse nodePort. @thockin ptal.

Release note: Fix unintended change of `Service.spec.ports[].nodePort` during `kubectl apply`.
2016-04-20 08:51:40 -07:00
k8s-merge-robot
15ed9dbd02 Merge pull request #23771 from jayunit100/ClusterVerificationFramework
Automatic merge from submit-queue

Cluster Verification Framework

I've spent the last few days looking at the general patterns of verification we have that we tend to reuse in the e2es.  Basically, we need 
 
- label filters
- forEach and WaitFor (where forEach doesn't necessarily waitFor anything).
- timeouts
- multiple phases (reusable definition of state)
- an extensible way to define cluster state that can evolve over time in a data object rather than as a set of parameters that have magic semantics

This PR 
- implements the abstract above functionality declaratively, and w/o hidden semantics.
- addresses the sprawling duplicate methods in #23540, so that we can phase out the wrapper methods and replace them with well defined, extensible semantics for cluster state.
- fixes the recently discovered #23730 issue (where kubectl.go is relying on examples.go, which is obviously wacky) by using the new framework to implement forEachPod in just a couple of lines and migrating the wrapper function into framework.go.

There is some cleanup to do here, but this is seemingly working for a couple of use cases that are important (spark,cassandra,...,kubectl) tests. - i played with a few different ideas and this wound up seeming to be the most natural implementation from a usability standpoint... 

in any case, just thought id push this up as a first iteration, open to feedback.

@kubernetes/sig-testing @timothysc
2016-04-20 04:23:21 -07:00