Add initial docs for flake hunting.
Adding ListMinions() API to pkg/client.
Allow field/label users to get info from fields

Allows a consumer to get at the information stored in the field selector
for querying an underlying data store.  Not generic, but offers a
simple start.
Move EndpointsController to its own package

Avoids recursive loop with endpoint registry defined
Expose REST resource for endpoints and watch on services/endpoints

Will allow kube-proxies to listen on endpoints.
kube-proxy can read config from the apiserver

All clients that talk to a "master" as a host:port or URL
(scheme://host:port) parameter.  Add tests.
Merge pull request #899 from smarterclayton/watch_services_and_endpoints

Allow Kube proxy to watch for service/endpoint changes
Do not set IFS to the wrong value

The correct way to reset it to the default would be IFS=$' \t\n', but
there's no reason to assume a wrong setting here, in fact, nothing this
script does should depend on an IFS setting, so let's just drop this
line altogether.

Tested:
- Ran "release/build-release.sh <instance>" before and after this
  change. Compared the two trees for differences, only difference was
  the SHA1 in output/release/master-release/src/saltbase/pillar/common.sls

    $ diff -Naur output.orig/release/master-release/ output/release/master-release/
    diff -Naur output.orig/release/master-release/src/saltbase/pillar/common.sls output/release/master-release/src/saltbase/pillar/common.sls
    --- output.orig/release/master-release/src/saltbase/pillar/common.sls   2014-08-27 13:28:52.104241577 -0700
    +++ output/release/master-release/src/saltbase/pillar/common.sls        2014-08-27 13:29:28.296087806 -0700
    @@ -1,2 +1,2 @@
     instance_prefix: MY_INSTANCE_NAME-minion
    -go_opt: -ldflags "-X github.com/GoogleCloudPlatform/kubernetes/pkg/version.commitFromGit 'e169da2abfbf'"
    +go_opt: -ldflags "-X github.com/GoogleCloudPlatform/kubernetes/pkg/version.commitFromGit '8aea0d85e447-dirty'"

Signed-off-by: Filipe Brandenburger <filbranden@google.com>
Merge pull request #1060 from filbranden/clear_ifs1

Do not set IFS to the wrong value
Fix commitFromGit -> gitCommit in release/build-release.sh

This caused Jenkins break on e2e-test because the version of server and
client did not match exactly, as the server was built without the
version ldflags.

Tested:
- Ran "release/build-release.sh ${instance_name}" and confirmed that
  output/release/master-release/src/saltbase/pillar/common.sls has the
  git version under version.gitCommit no longer version.commitFromGit.

Fixes: b777eb19e25240520b5122de299d9ee270c76017
Add unit tests for pkg/client.ListMinions()
Merge pull request #1062 from filbranden/versioning_fixes3

Fix commitFromGit -> gitCommit in release/build-release.sh
Merge pull request #1058 from vishh/add_list_minions

Adding ListMinions() API to pkg/client.
Added getting started guide for Azure.
Merge pull request #1067 from MSOpenTech/azure-readme

Added getting started guide for Azure.
Fix e2d tests w/ http prefix in kube client init
Merge pull request #1068 from jbeda/fix-e2e

Fix e2e tests w/ http prefix in kube client init
Move go detection and environment setup into its own function

This way hack/config-go.sh can be used in environments where Go is not
available, such as running release/build-release.sh for Vagrant.

(The intention is to make config-go.sh a general library of helper
functions and import it from most other shell scripts.)

Fixes Issue #1057.

Tested:
- Built it and made sure it works.
  $ hack/build-go.sh
  $ output/go/bin/kubelet -version
  Kubernetes version 0.1+, build 0766e7a411c7-dirty

- Ran unit tests.
  $ hack/test-go.sh
  ok      github.com/GoogleCloudPlatform/kubernetes/examples      1.105s  coverage: 0.0% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/api       6.188s  coverage: 86.1% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/api/errors        1.015s  coverage: 81.8% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/apiserver 1.806s  coverage: 85.1% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/client    1.211s  coverage: 67.2% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/client/cache      1.115s  coverage: 95.5% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/cloudprovider/gce 1.052s  coverage: 7.3% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/cloudprovider/vagrant     1.045s  coverage: 76.8% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/constraint        1.038s  coverage: 100.0% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/controller        1.559s  coverage: 78.8% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/conversion        3.440s  coverage: 72.4% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/election  1.034s  coverage: 71.4% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/health    1.043s  coverage: 94.5% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/healthz   1.034s  coverage: 100.0% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/httplog   1.027s  coverage: 82.4% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/kubecfg   6.081s  coverage: 58.5% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet   1.400s  coverage: 72.2% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet/config    1.139s  coverage: 90.1% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/labels    1.041s  coverage: 98.7% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/master    1.033s  coverage: 33.3% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/proxy     1.095s  coverage: 86.5% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/proxy/config      1.038s  coverage: 39.2% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/registry/binding  1.046s  coverage: 100.0% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/registry/controller       1.039s  coverage: 43.6% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/registry/endpoint 1.029s  coverage: 25.0% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/registry/etcd     1.110s  coverage: 79.5% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/registry/minion   1.048s  coverage: 72.3% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/registry/pod      1.052s  coverage: 62.1% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/registry/service  1.054s  coverage: 80.0% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/scheduler 1.030s  coverage: 90.4% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/service   1.363s  coverage: 83.8% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/tools     1.136s  coverage: 81.9% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/util      1.049s  coverage: 83.9% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/util/config       1.036s  coverage: 92.9% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/util/wait 1.029s  coverage: 86.7% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/volume    1.032s  coverage: 83.3% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/watch     1.040s  coverage: 100.0% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/plugin/pkg/scheduler  1.026s  coverage: 90.9% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/plugin/pkg/scheduler/factory  1.075s  coverage: 85.4% of statements
  ?       github.com/GoogleCloudPlatform/kubernetes/test/integration      [no test files]

- Ran release/build-release.sh without go or godep in my $PATH.
  $ PATH=...
  $ which go
  $ which godep
  $ release/build-release.sh MYTEST
  Building release tree
  ~/devel/kubernetes ~/devel/kubernetes
  ~/devel/kubernetes
  Packaging release
  $ cat output/release/master-release/src/saltbase/pillar/common.sls
  instance_prefix: MYTEST-minion
  go_opt: -ldflags "-X
  github.com/GoogleCloudPlatform/kubernetes/pkg/version.gitCommit '0766e7a411c7-dirty'"
  $ find output/release/master-release/ | wc -l
  598

Signed-off-by: Filipe Brandenburger <filbranden@google.com>
Merge pull request #1069 from filbranden/vagrant_config1

Move go detection and environment setup into its own function.  Fixes #1057.
Grab complete version information from git

This replaces the gitcommit() shell function with kube::version_ldflags()
which prepares a string suitable for Go's -ldflags parameter that fills
in the git version fields in pkg/version/base.go.

The gitCommit is now a full 40-character SHA1, the gitVersion will be
filled from `git describe` output (which will only be available once we
have annotated git tags) and gitTreeState will be filled with either
"clean" or "dirty" depending on the tree status at the time of the
build.

Use a kube:: "namespace" (there's really no such a thing in shell, but
the illusion still makes it nice) in order to make this nice to import
into existing shell scripts or on a shell session. (In the future, I'm
planning to introduce more functions and convert some of the top-level
commands into other kube::* shell functions.)

There's a difference now that -version will report a full SHA1, this
will be improved in a follow up change which will improve the Go code
for -version handling to give a more meaningful string that should be
enough to identify the origin of the binary in git.

Tested:
- Built it and checked output of -version:
  $ hack/build-go.sh
  $ output/go/bin/kubelet -version
  Kubernetes version 0.1+, build 3ff7ee4b8c843c7767cd856fbf7d3027cd5410e6

- Ran the release script and checked output of the common.sls file:
  $ release/build-release.sh TESTINSTANCE
  $ cat output/release/master-release/src/saltbase/pillar/common.sls
  instance_prefix: TESTINSTANCE-minion
  go_opt: -ldflags '-X github.com/GoogleCloudPlatform/kubernetes/pkg/version.gitCommit 3ff7ee4b8c843c7767cd856fbf7d3027cd5410e6 -X github.com/GoogleCloudPlatform/kubernetes/pkg/version.gitTreeState clean'

- Successful run of hack/e2e-test.sh end-to-end tests.

Signed-off-by: Filipe Brandenburger <filbranden@google.com>